I am trying to setup Turtlebot simulation and navigation setup for multi-robot system. I have all the individual robot topics in a group so they get their appropriate namespaces. Ex. /turtle01/amcl_pose
, /turtle01/scan
, etc. I have created seperate tf trees for all the robots as well. The robots share a common map.
I am having a problem with the amcl node. AFAIK the amcl node will publish the map->odom
tf link. When I run the amcl node, I get this error
[ WARN] [1513896260.323745414, 2886.280000000]: No laser scan received (and thus no pose updates have been published) for 2886.280000 seconds. Verify that data is being published on the /turtle01/scan topic.
The topics are active and the data is getting published. Here is the output when I echo /turtle01/scan
.
header:
seq: 43096
stamp:
secs: 5676
nsecs: 620000000
frame_id: /turtle01/camera_depth_frame
angle_min: -0.521567881107
angle_max: 0.524276316166
angle_increment: 0.00163668883033
time_increment: 0.0
scan_time: 0.0329999998212
range_min: 0.449999988079
range_max: 10.0
ranges: [nan, nan, nan, nan, nan,...]
intensities: []
This is what I get when I print the output from rostopic info /turtle01/scan
Type: sensor_msgs/LaserScan
Publishers:
* /turtle01/laserscan_nodelet_manager (http://192.168.1.111:38147/)
Subscribers:
* /echo_192.168.1.111/turtle01/scan (http://192.168.1.111:32936/)
* /turtle01/amcl (http://192.168.1.111:34047/)
* /rviz (http://192.168.1.111:41689/)
I have added some changes to the amcl file as follows:
<param name="odom_frame_id" value="turtle01_tf/odom"/>
<param name="base_frame_id" value="turtle01_tf/base_footprint"/>
<param name="global_frame_id" value="/map"/>
<param name="tf_broadcast" value="true"/>
<param name="use_map_topic" value="true"/>
<param name="tf_prefix" value="turtle01_tf"/>
<param name="initial_pose_x" value="0"/>
<param name="initial_pose_y" value="0"/>
<remap from="map" to="/map"/>
This is my output from view_frames.
I have been following this guide for the setup and I am editing the amcl_demo file to make changes to include multiple robots.
I have spent considerable time to debug this silly issue but had no success.
Also, since I wanted the fake laser to publish the scan under the namespace, I made some following changes.
<!-- Fake laser -->
<node pkg="nodelet" type="nodelet" name="laserscan_nodelet_manager" args="manager"/>
<node pkg="nodelet" type="nodelet" name="depthimage_to_laserscan"
args="load depthimage_to_laserscan/DepthImageToLaserScanNodelet laserscan_nodelet_manager">
<param name="scan_height" value="10"/>
<param name="range_min" value="0.45"/>
<param name="output_frame_id" value="/$(arg robot_name)/camera_depth_frame"/>
<remap from="image" to="/$(arg robot_name)/camera/depth/image_raw"/>
</node>
Originally posted by VickyD on ROS Answers with karma: 23 on 2017-12-21
Post score: 1
Original comments
Comment by jayess on 2017-12-21:
Can you please insert those images into the question instead of linking to them? Also, instead of using screen shots of terminal output it's better to copy and paste the output. Thanks.
Comment by jayess on 2017-12-21:
Did you set the use_sim_time
parameter to true
?
Comment by VickyD on 2017-12-21:
Made the changes. Thank you for suggesting this. I'll keep this in mind next time I post a question.
Comment by VickyD on 2017-12-21:
No, can you please explain why that is required? I did not see this requirement on the amcl documentation page. Nevertheless, it is not helping. I still get the same error.
Comment by jayess on 2017-12-21:
See http://wiki.ros.org/Clock#Using_Simulation_Time_from_the_.2BAC8-clock_Topic
Comment by jayess on 2017-12-21:
Are you running this from a bag file? https://answers.ros.org/question/126111/no-laser-scan-received/?answer=126246#post-id-126246
Comment by VickyD on 2017-12-22:
No I'm not making use of rosbag files.
Comment by clyde on 2017-12-23:
Have you tried roswtf? You can also run rqt and look at the node graph and topics in real time. Something isn't connected correctly, but I can't quite tell from what you've posted so far.
Comment by chung on 2018-01-07:
I think it lacks the transformation from footprint to laser scan.
Because I cannot read all of your frame tree from the image you provided, could you show the result of the following command?
rosrun tf tf_monitor /turtle01_tf/base_footprint /turtle01/camera_depth_frame