Ask Your Question
7

teleop_base deprecated, need generic teleop package

asked Feb 25 '11

JeffRousseau gravatar image JeffRousseau
1141 15 21 34
http://jeffrousseau.info/

updated Feb 26 '11

joq gravatar image joq
7304 29 68 133
http://www.austinrobot.co...

Hi All,

It looks like teleop_base is deprecated according to its manifest.

So my question is this: is pr2_teleop the new "generic" teleop package? If so, why the "pr2" prefix? I have a bunch of heterogeneous robots, whats the best "universal" teleop package? I need joystick and keyboard support at a minimum.

delete close flag offensive retag edit

5 Answers

Sort by ยป oldest newest most voted
3

answered Feb 26

leblanc_kevin gravatar image leblanc_kevin
58 3 7
http://www.skynetish.com/

updated Mar 09

Hi!

I've recently announced a teleop stack which allows generic tele-operation "source" devices (such as keyboards, joysticks, etc.) to be used interchangeably to control generic tele-operation "sink" devices (such as robot bases, pan-tilt units, robot arms, etc.).

The code can be downloaded here: https://github.com/skynetish/generic_teleop

More information can be found here: https://github.com/skynetish/generic_teleop/wiki

Comments and feedback welcome!

Best, Kevin

link delete flag offensive edit

Comments

These links gives 404 error

prince (Mar 09)edit

Thanks for letting me know, I've updated the links (I announced the changed links to the mailing list, but forgot to update this post). Between the time I started and announced my "teleop" stack someone else created a package named "teleop". I've renamed my stack to "generic_teleop".

leblanc_kevin (Mar 09)edit
5

answered Mar 08 '11

Chad Rockey gravatar image Chad Rockey flag of Chad
1914 17 32 57
http://chadrockey.com/

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 https://github.com/cwru-robotics/cwru-ros-pkg/blob/master/cwru_semi_stable/cwru_teleop/src/teleop_cwru_joy.cpp">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.

link delete flag offensive edit
1

answered Mar 08 '11

raphael favier gravatar image raphael favier
1122 5 18 33
http://www.turtlebot.eu/

updated Mar 08 '11

Hey Jeff,

In my experience, you should use the code shown in the turotial Writing a Teleoperation Node for a Linux-Supported Joystick.

It creates a very handy joystick teleop system. You can easily associate one axis with one velocity command type and set its output range directly from the launch file:

<launch>
...
 <!-- Axes -->
  <param name="axis_linear" value="1" type="int"/>
  <param name="axis_angular" value="0" type="int"/>
  <param name="scale_linear" value="2" type="double"/>
  <param name="scale_angular" value="2" type="double"/>

  <node pkg="turtle_teleop" type="turtle_teleop_joy" name="teleop"/>

</launch>

Still, as Chad said, you need to make the node output a cmd_vel twist message.

Raph

link delete flag offensive edit
1

answered Mar 09 '11

mikepurvis gravatar image mikepurvis
96 7
http://clearpathrobotics....

We provide a fairly generic Joy->Twist node in this package, which you're welcome to use: clearpath_teleop

There's no keyboard component at this point, though you'd be welcome to contribute one. Also, it's rospy, which may be problematic depending on your environment and needs.

link delete flag offensive edit
1

answered Apr 28 '11

Marcus gravatar image Marcus
180 1 3 11
http://www.yujinrobot.com...

Hi there!

We recently used the teleop_base package to move our robot (in Gazebo) with our Logitech RumblePad 2 controller.

We ran into a major bug, which made the node crash. My question now is, should I file a ticket although the package is deprecated?

The effort for fixing the bug would be small. I think this package is still useful, since people with a similar controller to the PS3/Logitech RumblePad can easily set up a teleop pipeline without doing any/a lot of coding.

:-) Marcus

PS: for fixing the bug we changed

00193 
00194   ros::Rate pub_rate(20);
00195 
00196   TeleopBase teleop_base(no_publish);
00197   teleop_base.init();
00198

to

00193 
00194   TeleopBase teleop_base(no_publish);
00195   teleop_base.init();
00196   
00197   ros::Rate pub_rate(20); 
00198
link delete flag offensive edit

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[hide preview]

Question tools

Follow

subscribe to rss feed

Stats

Asked: Feb 25 '11

Seen: 601 times

Last updated: Mar 09