ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

So as far as I know, there's no real official, universal teleop package currently for robots.

My current advice is to just write your own nodes that take an input from a joystick and will output a /cmd_vel Twist. See http://www.ros.org/wiki/joystick_drivers. This makes an especially useful challenge for people new to ROS, as it requires using a provided driver for their XBOX/PS3/Wiimote and then interfacing that to their robot through their own small, easy segment of code.

The same could easily be done for keyboard input.

I'd recommend looking at our teleop node that takes in an XBOX 360 controller as /joy and outputs a twist if you need to see how someone else did it.

For keyboard related teleop, the hardest part would be capturing the key presses. You might find something useful in the old teleop_base code. The segment for capturing key-presses should still be valid, just be sure the dependencies are all still good or that you can find useful versions of them. You may also want to check out the brown-ros-pkg teleop_twist_keyboard code to see if there are useful hints there.

My guess is that joysticks vary too much in number and order of axes that no one would find a more universal driver that useful. It would seem that we would end up with XBOX->Twist, PS3->Twist, and WiiMoteNunchuk->Twist, so it's probably better to quickly whip up your own.