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

general openrave usage

asked 2011-03-14 02:52:51 -0500

omwdunkley gravatar image

updated 2011-05-18 22:16:48 -0500

Hey guys!

Im attempting to get an arm up and running with openrave (originally I was going to attempt to do it the ros manipulation pipeline way, which looked a bit like overkill to me). A friend introduced me to openrave, which looks faster and easier to setup. I have played around with basic python scripts (non ros) to control openrave, but I am some what confused to what the recommended way to use it with ROS is.

What is your guys general setup for using ROS together with Openrave?

My slight confusion begins with the different openrave_planning sub packages:

  • openraveros
  • openrave_robot_control
  • openrave_actionlib

I think Im missing the overview of the above. How do they work together/can one combine them? What are the typical sorts of usecases for each? What are the other things I need to implement (and with which restrictions?)

As far as I understood, openraveros is basically openrave running with its core functionality exposed to the ros network through services; and openrave_robot_control a way to interface openrave directly with a robot? I see it has simulation server and TF sender too. I originally though that openrave_robot_control was a more specific implementation of openraveros, but its missing lots of the general openrave functionality (ie services) that openraveros provides. Where does openrave_actionlib fit into place/integrate with the rest?

Whats the recommended way to actually move the arm? For now the python scripts I played with outputted a trajectory (time stamp + joint angles). Is it recommened I parse this and send the hardware these angles, or is there a better way?

What are your guys general setups?

Any hints, ideas, etc that you have learnt from experience, what do you recommend?

If you could start over, would you implement it the same way?

I realise I have many vague questions, I purposely left it rather general. I thought I (and anyone else about to dive into the world of ROS&OpenRave) would attempt to learn from your guys experience before I get started (would probably just go with openraveros and use it as I did with the non-ros python scripts).

Any comments appreciated, thanks!

Thanks! -Ollie

PS: I would add "openrave_robot_control" as a tag, but the length is limited to 20chars.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2011-03-14 13:53:42 -0500

  • openrave_robot_control provides a controller that you can plugin to the rest of your system. it is meant for people writing robot drivers to get their robot working.

  • openrave_actionlib is meant to offer the actionlib controllers to openrave.

  • openraveros allows openrave to be controlled through the ROS network, but in reality this is rarely necessary for beginners. Most likely, you will create the openrave core environment, load your scene, and process ROS services or send ROS topics.

The orrosplanning planning has recently got 3 new scripts that connect it to the ROS world and offer planning services:,, and There are test files in the orrosplanning/test folder for each service.

Basically think of openrave as node that can process ROS services like motion planning.

edit flag offensive delete link more

Question Tools



Asked: 2011-03-14 02:52:51 -0500

Seen: 651 times

Last updated: Mar 14 '11