项目作者: marooncn

项目描述 :
IMU filter for ROS
高级语言: C++
项目地址: git://github.com/marooncn/imu_filter.git
创建时间: 2017-07-18T10:43:24Z
项目社区:https://github.com/marooncn/imu_filter

开源协议:

下载


imu_filter

This is a project that uses IMU filter algorithm in ROS(Robot Operating System). The IMU I use is ICM 20602, consisting of a tri-axis gyroscope and a tri-axis accelerometer.

ROS API

Subscribed Topics

Message containing raw IMU data, including angular velocities and linear accelerations.

imu0(sensor_msgs/Imu)

Published Topics

The fused pose representation.

quaternion(geometry_msg/QuaternionStamped)

ypr(geometry_msgs/Vector3Stamped)

Parameters

Dynamically Reconfigurable Parameters

(Mahony_filter) twoKp twoKi

(Madgwick_filter) beta

To tune the dynamic parameters after runnig the node, input

  1. rosrun rqt_configure rqt_reconfigure

According to Madgwick’s thesis, the suggested beta = sqrt(3.0f / 4.0f) * gyroMeasError. ICM20602’s gyroscope
sensitivity erroris ±1%. Thus the default beta is setting to 0.1088. As the specific application, the value
can be tuned accoring to response and requriments.

Non-dynamically Reconfigurable Parameters

sampleFreq(float, default: 400.0)

You can change its value at the beginning, Such as:

  1. rosrun filter Madgwick_filter _sampleFreq:=200

provied tf Transforms

odom -> imu
So you can open rviz and set the fixed frame “odom”, add TF then you can use it to verify the effect directly.
Alt Text

Result

The Madgwick_filter node’s effect is acceptable, but the Mahony_filter is disappointing.