Ask Your Question
2

Error in using amcl

asked 2014-02-12 19:16:40 -0500

zero1985 gravatar image

Hello,

I am trying to use amcl for localization of my robot from a pre-saved map. I am using a Hokuyo laser range finder. My command to start amcl is as below:

rosrun hokuyo_node hokuyo_node
rosrun map_server map_server test.yaml
rosrun robot_setup_tf tf_broadcaster
rosrun amcl amcl

However, what I got is the warning code as below:

[ WARN] [1392274402.961608347]: Message from [/hokuyo_node] has a non-fully-qualified frame_id [laser]. Resolved locally to [/laser].  This is will likely not work in multi-robot systems.  This message will only print once.
[ WARN] [1392274417.844748520]: No laser scan received (and thus no pose updates have been published) for 1392274417.844651 seconds.  Verify that data is being published on the /scan topic.
[ WARN] [1392274417.845193549]: Message Filter [target=/odom ]: Dropped 100.00% of messages so far. Please turn the [ros.amcl.message_notifier] ros console logger to DEBUG for more information.

I have tried to run the amcl with both scan:=/scan and scan:=/base_scan before and the tf broadcaster transform the laser frame to base frame. I don't seems to see anything when I echoed amcl_pose. May I know what do I lack in running amcl? Thank you.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2014-02-12 19:31:40 -0500

ahendrix gravatar image

The key error message here is:

[ WARN] [1392274417.845193549]: Message Filter [target=/odom ]: Dropped 100.00% of messages so far. Please turn the [ros.amcl.message_notifier] ros console logger to DEBUG for more information.

What this means is that AMCL is trying to transform laser scans from their incoming frame into the /odom frame and failing because a transform from the laser frame to the odom frame doesn't exist.

You should probably be either running a driver for your robot that publishes odometry as a trasform from the /odom frame to the /base_link frame, or you can try lowering AMCL's reliance on odometry and publishing a static transform from the /odom frame directly to your laser frame.

edit flag offensive delete link more

Comments

Thank you for your answer. I think I got it, but the amcl_pose only update when I input a initial pose for it. After that the pose is not updated when I move my robot. Is it correct?

zero1985 gravatar imagezero1985 ( 2014-02-17 21:32:05 -0500 )edit

AMCL only updates when it thinks your robot has moved. You may want to try setting the update_min_d and update_min_a parameters to 0, or providing fake odometry via the laser_scan_matcher node.

ahendrix gravatar imageahendrix ( 2014-02-17 22:17:01 -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

1 follower

Stats

Asked: 2014-02-12 19:16:40 -0500

Seen: 1,771 times

Last updated: Feb 12 '14