Ask Your Question
11

teleop_base deprecated, need generic teleop package

asked 2011-02-25 05:53:19 -0500

updated 2011-02-26 02:53:43 -0500

joq gravatar image

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.

edit retag flag offensive close merge delete

7 Answers

Sort by ยป oldest newest most voted
2

answered 2015-03-28 22:13:32 -0500

ahendrix gravatar image

There is now a github organization for generic teleop tools in ros: https://github.com/ros-teleop

For teleop using a keyboard, there is teleop_twist_keyboard

For teleop using a joystick there is a new package in ROS Indigo called teleop_twist_joy

edit flag offensive delete link more
6

answered 2012-02-26 07:46:34 -0500

updated 2012-03-08 18:35:02 -0500

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

edit flag offensive delete link more

Comments

These links gives 404 error

prince gravatar imageprince ( 2012-03-08 18:09:24 -0500 )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 gravatar imageleblanc_kevin ( 2012-03-08 18:36:41 -0500 )edit

Hi Kevin, I downloaded generic_teleop in my catkin_ws_hydro then i did rosmake generic_teleop. Is it proper way to install? How can i execute to teleop my robot my keyboard? thanks

cognitiveRobot gravatar imagecognitiveRobot ( 2013-10-22 23:16:50 -0500 )edit

The generic_teleop is for master version. If you look at the contents of the generic_teleop, they utilise stack.xml instead of package.xml (which Hydro is based on). So I am guessing there is much to change before it can be used.

Quadrobo gravatar imageQuadrobo ( 2014-01-09 04:09:01 -0500 )edit

Sorry for not responding sooner, for some reason I didn't get any notifications about your comments. I haven't updated my stack to catkin yet. I've changed jobs and as such I'm having trouble finding free time to work on this. But I hope to get around to it soon-ish!

leblanc_kevin gravatar imageleblanc_kevin ( 2014-04-20 11:22:22 -0500 )edit

Hi leblanc_kevin,

Did you update your stack to catkin?

Best,

andrestoga gravatar imageandrestoga ( 2015-03-28 20:42:51 -0500 )edit

I've removed this as an accepted answer because it's no longer being maintained.

ahendrix gravatar imageahendrix ( 2015-03-28 22:10:09 -0500 )edit

Sorry for not being in touch earlier, I accidentally turned off notifications from ROS answers. I've been out of the robotics branch for a while now. I keep hoping I'll have time to stay at it in my spare time, but it's proving to be more difficult than I thought. I'll shout if anything changes!

leblanc_kevin gravatar imageleblanc_kevin ( 2016-03-10 01:39:00 -0500 )edit
5

answered 2011-03-08 06:46:28 -0500

Chad Rockey gravatar image

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.

edit flag offensive delete link more
1

answered 2011-04-27 21:21:44 -0500

bit-pirate gravatar image

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
edit flag offensive delete link more
1

answered 2011-03-08 07:29:31 -0500

raphael favier gravatar image

updated 2011-03-08 07:34:50 -0500

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

edit flag offensive delete link more
1

answered 2014-06-08 12:32:01 -0500

For Hydro, this one seemed cool ! http://wiki.ros.org/teleop_twist_keyboard

edit flag offensive delete link more
1

answered 2011-03-09 00:37:36 -0500

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.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2011-02-25 05:53:19 -0500

Seen: 4,175 times

Last updated: Mar 28 '15