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

Omni-directional navigation

asked 2011-12-15 17:59:57 -0600

Frederik gravatar image

updated 2012-03-29 14:16:27 -0600

Kevin gravatar image

Hi all, i am currently working with an omni-directional platform and try to get the navigation stack running. This already working but only in a differential drive manner. Is there any stack/repository which already implemented a omni-directional path planner/execution? I looked into the tum package, since rosie seems to move in some videos omni-directional.

Regards, Frederik

edit retag flag offensive close merge delete


Just to make sure: Is your local_base_planner ( ) configured with holonomic_robot set to true? Acording to the docs, thats what makes the planner issue strafing commands to the base. Otherwise it uses differential mode. Best regards, Ben
Ben_S gravatar image Ben_S  ( 2011-12-15 20:23:37 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2011-12-16 01:13:22 -0600

DimitriProsser gravatar image

As @Ben_s mentioned, the navigation stack supports holonomic (omni-direction) path planning. The pr2 has this ability. If you set the holonomic_robot parameter to true, move_base will generate plans that contain both x and y motion, and it will output a cmd_vel message with an x, y, and theta component, rather than just an x and theta. It's up to you to interpret this message appropriately for the drive train of your robot.

edit flag offensive delete link more

answered 2012-03-10 03:50:51 -0600

tomas gravatar image


I am trying to setup the omni navigation for my robot. So far I was completely unsuccessful. I have set the holonomic_robot variable to true and I am not getting any y commands at all. I checked the ROS source files for the meaning of the y_vels and it looks like it is a list of permitted y (strafing) velocities. I tried to set up a fine range for it (e.g. -1.0, -0.9, ..., 1.0 (max_vel_x = 1.0)) but still nothing. I checked the parameters on the parameter server using 'rosparam get' and I got:

holonomic_robot = true

y_vels = "default_value (-0.3, -0.1 0.1 -0.3)" - my yaml file has no effect at this at all.

Any suggestions would be greatly appreciated. Thank you

edit flag offensive delete link more


I have gone through a similar exercise with my robot I noticed if the target is say 45 deg to the right it will turn and drive rather than strafe the whole way. The Y vel is mostly used for final position. If you publish X 1 and y1 on cmd_vel dose it travel at 45 degrees?

Peter Heim gravatar image Peter Heim  ( 2012-03-10 10:00:44 -0600 )edit

Yes it does. So far I was using fake odometry (just transforming and integrating the velocity commands) for the simaulations in rviz. I will try to travel to "closer" goals but I would like to travel longer distances sideways. I checked the rxplot for the Y command and it is just a flat line.

tomas gravatar image tomas  ( 2012-03-22 06:06:48 -0600 )edit

You have to change the value of 'y_vels' atribute in the .yaml file. i.e. y_vels: '-0.6, -0.1, 0.1, 0.6' After that, you should see the new value with the command, 'rosparam get foo/y_vels' I hope it helps you.

Jose Luis gravatar image Jose Luis  ( 2013-12-03 21:16:48 -0600 )edit

Question Tools


Asked: 2011-12-15 17:59:57 -0600

Seen: 2,762 times

Last updated: Mar 10 '12