可能有些初学者bringup节点遇到启动报错, 内容是The IMU seems to be in free fall, cannot determine gravity direction, Still waiting for data on topic /imu/data_raw…
解决方法
- 重新校准IMU后重启bringup,详见http://www.elelab.net/angular-velocity-calibration-and-imu-calibration.html
-
如果还是无法解决并且滤波后线加速度数据为0,可能是地球重力加速度参数设置错误造成,在
imu_calib
里面需要重新设置重力加速度。 -
还是无法解决!!!更换IMU,重新分析IMU数据是否正确,数据传送是否突变,等原因。
问题分析
使用rostopic查看IMU数据
rostopic echo list
rostopic echo /raw_imu
IMU原始数据正常
接着查看/imu/data_raw校准后的数据
rostopic echo /imu/data_raw
可发现问题linear_acceleration
线加速度无数据,校准节点imu_calib
出现问题导致滤波融合节点imu_filter_madgwick
报错MU似乎处于自由落体状态。
为什么imu_calib会发出0的值,是因为校准的数据有问题,也可能是do_calib校准时候设置的重力加速度reference_acceleration
有问题。