AMCL: No laser scan received
Hello everyone!
After generating a map with a SLAM, I wanted to localize my robot in this map. For that purpose I want to use AMCL package. But I keep getting the same error:
[ WARN] [1560764535.601073091, 398.853000000]: No laser scan received (and thus no pose updates have been published) for 398.853000 seconds. Verify that data is being published on the /amazon_warehouse_robot/laser/scan topic.
[ WARN] [1560764535.614184813, 398.865000000]: MessageFilter [target=odom ]: Dropped 100.00% of messages so far. Please turn the [ros.amcl.message_notifier] rosconsole logger to DEBUG for more information.
I use the ROS Kinetic, Ubuntu 16.04, Gazebo
I do the following:
roslaunch amazon_navigation amazonrobot_1_warehouse.launch
rosrun map_server map_server map.yaml
rosrun amcl amcl scan:=amazon_warehouse_robot/laser/scan _odom_frame:=amazon_warehouse_robot/odom
and
rostopic echo /amazon_warehouse_robot/laser/scan
gives:
header:
seq: 2
stamp:
secs: 1
nsecs: 101000000
frame_id: "amazon_warehouse_robot/hokuyo_link"
angle_min: -1.57000005245
angle_max: 1.57000005245
angle_increment: 0.0175419002771
time_increment: 0.0
scan_time: 0.0
range_min: 0.0799999982119
range_max: 10.0
ranges: [inf, inf, 6.664645671844482, 4.669021129608154, 3.3098554611206055, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, 5.578123569488525, ....]
intensities: [0.0, 0.0, 0.0, ...]
rostopic echo /amazon_warehouse_robot/odom
header:
seq: 1785
stamp:
secs: 178
nsecs: 601000000
frame_id: "amazon_warehouse_robot/odom"
child_frame_id: "amazon_warehouse_robot/base"
pose:
pose:
position:
x: 0.000142417215952
y: 0.00111615755185
z: 0.050002391371
orientation:
x: -1.3005763226e-07
y: -2.34663847428e-07
z: 4.42450664072e-05
w: 0.999999999021
covariance: [1e-05, 0.0, 0.0, 0.0, 0.0, 0.0, ...]
twist:
twist:
linear:
x: 0.000189513575366
y: 0.000217444901386
z: 0.0
angular:
x: 0.0
y: 0.0
z: 2.97531367781e-06
covariance: [0.0, 0.0, 0.0,...]
rostopic list
/amazon_warehouse_robot/cmd_vel
/amazon_warehouse_robot/joint_cmd
/amazon_warehouse_robot/joint_states
/amazon_warehouse_robot/laser/scan
/amazon_warehouse_robot/odom
/amcl/parameter_descriptions
/amcl/parameter_updates
/amcl_pose
/clock
/gazebo/link_states
/gazebo/model_states
/gazebo/parameter_descriptions
/gazebo/parameter_updates
/gazebo/set_link_state
/gazebo/set_model_state
/gazebo_gui/parameter_descriptions
/gazebo_gui/parameter_updates
/initialpose
/map
/map_metadata
/particlecloud
/rosout
/rosout_agg
/tf
/tf_static
tf tree looks like this:
amazon_warehouse_robot/odom
⇩
amazon_warehouse_robot/base
⇩
amazon_warehouse_robot/hokuyo_link
I also did a transform:
<node pkg="tf" type="static_transform_publisher" name="map_to_odom"
args="0 0 0.1 0 0 0 1.0 /map /amazon_warehouse_robot/odom 100" />
but it didn't had any effect. As I am aware, AMCL should publish its own transform
I have gone through all similar answers, but still nothing changed. One of them was suggesting that if you have non integer value "inf" for me, that may be the cause of the problem, but I have added a filter to laserscan and result was the same.
Any help is appreciated!! I don't know what to do now
$ roswtf
the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'
No package or stack in context
================================================================================
Static checks summary:
Found 1 error(s).
ERROR ROS Dep database not updated: Please update rosdep database with 'rosdep update'.
================================================================================
Beginning tests of your ROS graph. These may take awhile...
analyzing graph...
... done analyzing graph
running graph rules...
... done running graph rules
Online ...
My launch file is following:
What is the frame_id of the map that you are loading? Try adding this as a parameter in the map_server node and set it to "/map" and see if anything changes
Just to be sure, try changing
rosrun amcl amcl scan:=amazon_warehouse_robot/laser/scan _odom_frame:=amazon_warehouse_robot/odom
torosrun amcl amcl scan:=/amazon_warehouse_robot/laser/scan _odom_frame:=/amazon_warehouse_robot/odom
namespacing has gotten me a couple times.
Hi @kosmastsk! I have added the following:
and get the following warning:
But if I change the value to map (without a /) warning disappears, but I keep getting the same error as in the question
@ChuiV the problem is still there :(
Could you post the output of
rosnode info /amcl
,rostopic info /amazon_warehouse_robot/laser/scan
androstopic info /amazon_warehouse_robot/odom
? Also, try runningroswtf
and post your rqt_graph.@damjan
@damjan I also have added more info to the question. Please have a look, thanks for help :)