Input Devices
This page describes the use of the different input devices we support.
Joystick
Arm and Vehicle platforms can be controlled using a joystick. To do this, connect a joystick to the USB interface of the host device that will run the Alliander Robotics software stack. To activate joystick control, pass the --joystick or -j flag to the uv run start.py command when launching a configuration.
Meta Quest 3
Arm platforms can be controlled using a Meta Quest 3. To do this, we make use of the meta_quest_teleop tool. Make sure to install the APK on the Quest and enable USB debugging if not done already.
Install ADB
The tool requires Android Debug Bridge (ADB) to work. Make sure to install ADB on the host device that will run the Alliander Robotics software stack:
sudo apt install android-tools-adb
Next, connect the Quest to the host device via USB. You should see the Quest as:
ID XXXX:YYYY Oculus VR, Inc. Quest 3
Where XXXX and YYYY are four numbers. Next, create an udev rule for the Quest, by adding the following line to /etc/udev/rules.d/51-android.rules (create this file of it does not exist yet):
SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", MODE="0666", GROUP="plugdev"
Make sure to replace XXXX and YYYY with the correct numbers. To reload the udev rules after this change, run:
sudo udevadm control --reload-rules
Now, run adb devices and select Always allow from this computer on the Quest. You should see the following response:
List of devices attached
<SERIAL_NUMBER> device
Control an Arm platform using the Quest
Run ADB on host device
Make sure that the ADB deamon is already running on the host device, by checking for the expected response on the adb devices command. If the ADB deamon is not running on the host device, the docker container will launch an ADB deamon. The Quest sees this as a different computer, asking again for USB debugging alowence, failing the Docker container to start.
Run the app and keep Quest on
Next, start the meta_quest_teleop app if not already running. Note that by default, the Quest turns off when you do are not wearing it. To avoid this, you can turn off the proximity sensor using:
adb shell am broadcast -a com.oculus.vrpowermanager.prox_close
You can enable the proximity sensor again using:
shell am broadcast -a com.oculus.vrpowermanager.automation_disable
Start the software stack
To activate Meta Quest control, pass the --meta or -m flag to the uv run start.py command when launching a configuration. When an Arm platform with MoveIt Servo is started, you should be able to switch MoveIt Servo to pose tracking by pressing the Grip button on the side of the right Controller.
Make sure that the Controller is always in view of the Quest Headset and place the Headset statically in the room. The app measures the Controller position relative to the Quest Headset, so movement of the Headset results in Controller movements for the system.
Finally, when you hold the Trigger on the right Controller, the arm should copy the movements made with the Controller. To Home the arm, press the A button.