Ask Your Question

Problem with multirobots navigation

asked 2014-03-15 12:55:16 -0500

Stefano Primatesta gravatar image

updated 2014-03-24 12:30:27 -0500

I'm trying to do a multirobots navigation in Gazebo simulator using two turtlebot. I put the two turtlebot in Gazebo and I see in correct mode the robots in the environment with a correct transformation frame and topic.

This is the transformation frame

and this is what I see with rqt_graph

These are the videos that document the problem:



The video is very slow because of simulation that slow down the pc.

I run Rviz and I see the correct environment, RobotModel and the correct topic in Displays. In the first video (move_Robot1.mp4) I set a robot1/mose_base_simple/goal. In Rviz I see that Robot1 navigation is correct and it reach the goal position, but Robot2 has the same rotation than Robot1, even if it stays in place. Differently in Gazebo Robot2 stops, also in rotation. What I see in Rviz is not what I see in Gazebo. Another problem: as you can see in the second video, when I set a robot2/move_base_simple/goal in Rviz I see Robot2 stops, while in Gazebo Robot2 rotates continuosly, but it doesn't proceed back and forth.

cmd_vel topics seems correct and I supposed that the problem is in navigation driver. But I hope in some help.

This is my .launch file:

<arg name="base"      value="$(optenv TURTLEBOT_BASE kobuki)"/> <!-- create, roomba --> 
<arg name="battery"   value="$(optenv TURTLEBOT_BATTERY /proc/acpi/battery/BAT0)"/>  <!-- /proc/acpi/battery/BAT0 --> 
<arg name="stacks"    value="$(optenv TURTLEBOT_STACKS hexagons)"/>  <!-- circles, hexagons --> 
<arg name="3d_sensor" value="$(optenv TURTLEBOT_3D_SENSOR kinect)"/>  <!-- kinect, asus_xtion_pro --> 

<param name="/use_sim_time" value="true" /> 

<!-- start world --> 
<node name="gazebo" pkg="gazebo_ros" type="gzserver"   args="$(find tesi_gazebo)/worlds/" respawn="false" output="screen" /> 

<!-- start gui --> 
<node name="gazebo_gui" pkg="gazebo_ros" type="gzclient" respawn="false" output="screen"/> 

<!-- BEGIN ROBOT 1--> 
<group ns="robot1"> 
<param name="tf_prefix" value="robot1" /> 
<arg name="robot_name" default="robot1" /> 

<include file="$(find tesi_gazebo)/launch/includes/kobuki.launch.xml"> 
<arg name="base" value="$(arg base)"/> 
<arg name="stacks" value="$(arg stacks)"/> 
<arg name="3d_sensor" value="$(arg 3d_sensor)"/> 
<arg name="init_pose" value="-x 1 -y 0 -z 0" /> 
<arg name="robot_name"  value="robot1" /> 

<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher"> 
<param name="publish_frequency" type="double" value="30.0" /> 
<param name="tf_prefix" type="string" value="robot1" /> 

<!-- Fake laser --> 

<node pkg="nodelet" type="nodelet" name="$(arg robot_name)_laserscan_nodelet_manager" args="manager"/> 
<node pkg="nodelet" type="nodelet" name="depthimage_to_laserscan" 
    args="load depthimage_to_laserscan/DepthImageToLaserScanNodelet $(arg robot_name)_laserscan_nodelet_manager"> 
<param name="scan_height" value="10"/> 
<param name="output_frame_id" value="/$(arg robot_name)/camera_depth_frame"/> 
<param name="range_min" value="0.45"/> 
<remap from="image" to="/$(arg robot_name)/camera/depth/image_raw"/> 
<remap from="scan" to="/$(arg robot_name)/scan"/> 


<!-- BEGIN ROBOT 2--> 
<group ns="robot2"> 
<param name="tf_prefix" value="robot2" /> 
<arg name="robot_name" default="robot2" /> 

<include file="$(find tesi_gazebo)/launch/includes/kobuki.launch.xml"> 
<arg name="base" value="$(arg base)"/> 
<arg name="stacks" value="$(arg stacks)"/> 
<arg name="3d_sensor" value="$(arg 3d_sensor)"/> 
<arg ...
edit retag flag offensive close merge delete


I don't understand the problem. Can you share any video that describes the situation?

jihoonl gravatar image jihoonl  ( 2014-03-17 23:19:33 -0500 )edit

Hi Prima89, I'm interested in muti-robot planning and have tons of questions in how to implementation in ROS. Could you please walk me through the idea? Thank you.

zurish gravatar image zurish  ( 2015-03-20 11:13:26 -0500 )edit

Hi, I am also looking to implement this multi-nav with two turtlebots but am running into a "Waiting on transform from base_footprint to map to become available before running costmap". I made changes in my files to reflect those above but am still having trouble. Could you share any solutions? thx

ggalarza gravatar image ggalarza  ( 2015-07-09 19:26:31 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-03-19 15:29:40 -0500

jihoonl gravatar image

updated 2014-03-19 15:30:01 -0500


It seems like robot1 and robot2 are sharing some topic or TF. I am not sure what are shared from the given information though..


The rotation is recovery behavior of navigation when it fails. You may need to investigate the error message from terminal. Search for extrapolation error. Start with following answers

edit flag offensive delete link more


For the first problem I checked the topic and TF, but I can find any problem. In the previous question I added information to topic and TF.

Stefano Primatesta gravatar image Stefano Primatesta  ( 2014-03-24 12:29:58 -0500 )edit

Sorry. I cannot predict more than this with given information. I would recommend to narrow down the problem whether it is from gazebo or ros first. Start with introspection on robot2's velocity command while robot1 navigation

jihoonl gravatar image jihoonl  ( 2014-03-24 14:33:10 -0500 )edit

When I start robot1 navigation, velocity command are correct, because 'robot2 velocity commands topic' (rostopic echo /robot2/commands/velocity) don't evoque a reaction. But robot2/odom changes (rostopic echo /robot2/odom). This is the problem! I checked my launch file, but I haven't found the problem. I have always differentiated robot1 topic from robot2 topic.

Stefano Primatesta gravatar image Stefano Primatesta  ( 2014-03-26 00:30:59 -0500 )edit

Your Answer

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

Add Answer

Question Tools



Asked: 2014-03-15 12:55:16 -0500

Seen: 695 times

Last updated: Mar 24 '14