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

For frame[base_link]: No transform to fixed frame using IMU

asked 2015-05-11 10:50:35 -0600

Naman gravatar image

updated 2015-05-12 21:22:48 -0600

Hi all,

I have a mobile robot and I would like it to navigate around a room and I already have a map of the room. I am using rotary encoders for odometry. I am using robot_pose_ekf to merge data from rotary encoders and IMU. I am using amcl for localization and move_base for planning. Now the problem is, when I set the fixed frame in RVIZ as map, the status of IMU keeps on oscillating from Status:OK to following:

image description

The tf tree is shown which looks good to me: C:\fakepath\tf_tree.png

IMU part of the Code
For IMU, I am using http://wiki.ros.org/phidgets_imu and http://wiki.ros.org/imu_filter_madgwick .

<!-- IMU -->
<node pkg="phidgets_imu" type="phidgets_imu_node" name="IMU_node1" output="screen">
    <param name="frame_id" value="base_link"/>
</node>
<node pkg="imu_filter_madgwick" type="imu_filter_node" name="IMU_node2" output="screen">
    <param name="use_mag" value="false"/>
    <param name="publish_tf" value="false"/>
    <param name="fixed_frame" value="odom_combined"/>
    <remap from="/imu/data" to="/imu_data"/>    
</node>

I am not able to figure out why is this happening because frame id of IMU is base_link and transformation exists between it and the map as can be seen in the tf tree. Does anyone have any idea as to what might be causing this?

Thanks a lot.
Naman Kumar

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2015-05-13 04:18:43 -0600

updated 2015-05-13 04:19:48 -0600

I think the reason why it flickers is that at the time the IMU message arrives, the TF that you're missing is not there yet most of the time. There's a race condition: when the TF with time stamp "t1" arrives before the IMU message with time stamp "t2", where t1 >= t2, it flickers to black, and otherwise to red.

The solution would be to fix the IMU RViz plugin: there should probably be a tf::waitForTransform() in there. But the problem is purely cosmetic; everything else should be working, right?

edit flag offensive delete link more

Comments

That makes sense. I changed the parameter period in the phidgets_imu from 8 ms to 32 ms and the issue got resolved. Yaa.. everything else seems to be working...Thanks!

Naman gravatar image Naman  ( 2015-05-13 16:48:13 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2015-05-11 10:50:35 -0600

Seen: 2,200 times

Last updated: May 13 '15