ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Is robot_pose_ekf acting correctly?

asked 2012-01-08 13:02:37 -0500

weiin gravatar image

I'm working towards getting gmapping to work on my turtlebot clone right now but I keep getting the following

[ WARN] [1326075941.066724233]: Costmap2DROS transform timeout. Current time: 1326075941.0667, global_pose stamp: 1326075940.4574, tolerance: 0.3000
[ WARN] [1326075941.066806436]: Could not get robot pose, cancelling reconfiguration

So I try rosrun tf view_frames to see if there's anything wrong: view_frames.png

Seems like the only weird area is the broadcast rate of /odom->/base_footprint of 10000Hz. So I did a rosservice call /robot_pose_ekf/get_status

status: Input:
 * Odometry sensor
   - is active
   - received 2578 messages
   - listens to topic /odom
 * IMU sensor
   - is NOT active
   - received 2686 messages
   - listens to topic /imu/data
 * Visual Odometry sensor
   - is NOT active
   - received 0 messages
   - listens to topic 
Output:
 * Robot pose ekf filter
   - is active
   - sent 215 messages
   - pulishes on topics /robot_pose_ekf/odom and /tf

What I find odd is the IMU is supposedly not active yet rostopic hz /imu/data shows

    subscribed to [/imu/data]
average rate: 20.001
    min: 0.048s max: 0.052s std dev: 0.00078s window: 20
average rate: 20.001
    min: 0.048s max: 0.052s std dev: 0.00066s window: 40
average rate: 20.000
    min: 0.048s max: 0.052s std dev: 0.00054s window: 60

Anybody has any idea how I can fix this problem? Or am I looking at the wrong area (robot_pose_ekf seems to be the issue right now since I'm using it to handle my transform broadcast)?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2012-01-08 17:11:39 -0500

weiin gravatar image

Found where the problem was by looking through the rxconsole printouts:

[WARN]    Could not transform imu message from IMU to base_footprint. Imu will not be activated yet.

Turns out that the frame_id when I published the /imu/data was not set to gyro_link to match the URDF. That's why robot_pose_ekf could not work properly.

For those of you reading this who are just starting out ROS/navigation stack, it would be good to remember the difference between "topic" and "frame", and the need to connect the two when publishing the topic.

edit flag offensive delete link more

Comments

Hey, I get the same error . When I echo the /imu/data I see that the frame_id was set to gyro_link. Could there be any other cause for the problem?

rohan gravatar image rohan  ( 2012-05-23 03:51:54 -0500 )edit

check all the topics frame_id and compare with what you have in your tf tree (rosrun tf view_frames). they should match. robot_pose_ekf provides the transform odom->base_footprint, so ensure this is broadcast

weiin gravatar image weiin  ( 2012-05-23 14:46:30 -0500 )edit

I had the same problem, TF tree was connected but had the same error, Could not transform imu message from /base_imu to /base_footprint. It was solved by changing the frame id of IMU to /base_footprint............Thats it

sai gravatar image sai  ( 2012-10-01 18:02:26 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2012-01-08 13:02:37 -0500

Seen: 3,133 times

Last updated: Jan 08 '12