Ming,
In addition to setting the "robot_base_frame" and "global_frame" on the global._costmap, you'll also need to set it on the local_costmap which is used for obstacle avoidance and often operates in a different frame from the local map. The local_costmap is probably the one giving the error message you're describing.
Please see the following page for an explanation of configuring the two costmaps used by the navigation stack: http://www.ros.org/wiki/navigation/Tutorials/RobotSetup#Costmap_Configuration_.28local_costmap.29_.26_.28global_costmap.29.
Hope all is well,
Eitan
Hi everyone,
Thanks for you kind and prompt replies.
But the move_base is still asking for a frame with frame_id /base_link (output in rxconsole):Waiting on transform from base_link to /map to become available before running costmap, tf error: Frame id /base_link does not exist!when I launch the launch-file as below, where of course I have corrected the naive spelling mistake @-| , as:
<launch>
<param name="global_costmap/robot_base_frame" value="/robot_base"/>
<param name="global_costmap/global_frame" value="/world"/>
<node name="move_base" pkg="move_base" type="move_base" respawn="true">
</node>
</launch>
We had a transformation .yaml before, which I forgot to mention.
The result of$ rosrun tf view_frames
$ evince frames.pdfshowed that the frames are correctly linked.
The result of$rosrun tf tf_echo /robot_base /worldreturns correct transformation when I move the robot around.
I also output the parameters got by "move_base" node, by adding:
ROS_INFO("FrameIDs: %s %s", robot_base_frame_.c_str(), global_frame_.c_str());
to move_base.cpp:66. The output from the rxconsole is FrameIDs: /robot_base /world which is correct.It sounds like the parameters are not correctly passed to the costmap or else nodes. Any other hints?
Best regards,
Ming
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users