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

Give move_base goalpoints without orientation

asked 2013-02-15 03:15:55 -0600

Peter Roos gravatar image


I would like to know that is it possible to give goalpoints to the move_base (by move_base/goal or move_base_simple/goal) without orientation.

I followed this tutorial:

I've exchanged 'base_link' to 'map' in:

goal.target_pose.header.frame_id = "base_link";

because naturally, I have goalpoints in the map coordinate system.

This works, the robot moves from goalpoint to goalpoint as expected. However, every time it reaches it's destination, it will also turn to the map's x axis (mathematics conventional x axis, so the robot "points to the right"). I suppose this is becuase the tutorial sets an identity quaternion for orientation in the map frame. If I uncomment the line:

goal.target_pose.pose.orientation.w = 1.0;

then the code would not compile.

So basically I want my robot to just arrive to a goalpoint, it's orientation does not matter for me.

edit retag flag offensive close merge delete


Any update from this? Is there a simple way of passing a goal to the navigation stack without orientation constraint? i.e keeping the same end orientation as the path from which the robot arrive? Setting the yaw_goal_tolearence high in my local planner is causing issues (custom implementation)

doisyg gravatar image doisyg  ( 2016-11-17 03:03:22 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2013-02-15 03:54:34 -0600

goal expects a input in form of "pose" which is made of position and orientation. So you cannot skip the orientation part. One thing you can do is either give a constant orientation or use the orientation of robot as goal position orientation so that robot orientation remains constant.

edit flag offensive delete link more

answered 2013-02-15 04:12:36 -0600

dornhege gravatar image

It depends on the planner you use within move_base. Some, which actually plan using the robot's theta will use that information, some others (like AFAIK navfn_ros) might ignore it. Given the default setup with navfn_ros you'd only need to tune the local planner. If that is TrajectoryPlannerROS, set the parameter to something large:

~<name>/yaw_goal_tolerance (double, default: 0.05)
edit flag offensive delete link more


This seems to only avoid the robot positioning itself at the very end, but until it gets near it will still plan a path that will result in the right orientation. So this is only a partial solution.

chfritz gravatar image chfritz  ( 2020-09-09 22:51:29 -0600 )edit

Question Tools


Asked: 2013-02-15 03:15:55 -0600

Seen: 2,655 times

Last updated: Feb 15 '13