The goal of this was to investigate teleoperated control of a Baxter using a Razer Hydra controller. The Hydra is a set of joystick controllers that fit one in each hand, and communicate with a base station via a weak magnetic field to allow accurate position and orientation tracking. They come with 8 buttons on each controller, as well as a joystick. For our purposes we only use the motion tracking plus the 'bumper' and 'trigger' buttons. In addition a neck mounted Xtion PRO and an Oculus Rift were added to the demo, allowing the user to view the world through the robots eyes. This component is optional if you do not have an Oculus Rift.
- Baxter Robot v0.7.0 or v1.0.0
- Razer Hydra
- Oculus Rift (optional)
- Xtion PRO or similar RGBD camera (optional)
- Way to mount the RGBD camera (optional)
sudo apt-get install ros-hydro-razer-hydra
from your top level catkin workspace directory run 'catkin_make'
roslaunch baxter_hydra_teleop hydra_teleop.launch
(Optional, for Oculus Rift) sudo apt-get install ros-hydro-oculus-rviz-plugins ros-hydro-oculus-sdk
Set up a transform from Baxter to your RGBD camera.
As you move the controllers around, you should see their visualization moving around in rviz. When using the controllers, each controller has a 'trigger' button and a 'bumper' button, borrowing from the XBox Controller Nomenclature. The trigger button is placed higher and will cause the robots end effectors to move to the visualized position of the Hydra. You can press and release, or hold down the trigger and the robot will continually mimic you. The 'bumper' button operates the respective hands gripper. The faces was an extra component that displays a small amount of feedback. If Baxter cannot reach the controllers position, he does a sad face, otherwise happy face.
Oculus Rift device not found
Make sure the Oculus Rift is plugged in properly, and it is using a USB 2.0 port, USB 3.0 will not work. verify that it shows up as a monitor device, and the resolution is set to 1280×800.