Wiki

  Show EOL distros: 

imu_tools: imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

imu_tools: imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

imu_tools: imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>, Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • Author: Ivan Dryanovski
  • License: GPL
  • Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: hydro)
imu_tools: imu_complementary_filter | imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>, Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • Author: Ivan Dryanovski
  • License: GPL
  • Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: indigo)
imu_tools: imu_complementary_filter | imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>, Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • Author: Ivan Dryanovski
  • License: GPL
  • Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: jade)
imu_tools: imu_complementary_filter | imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>
  • Author: Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • License: GPL
  • Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: kinetic)
imu_tools: imu_complementary_filter | imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>, Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • Author: Ivan Dryanovski
  • License: GPL
  • Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: lunar)
imu_tools: imu_complementary_filter | imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>
  • Author: Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • License: GPL
  • Source: git https://github.com/CCNYRoboticsLab/imu_tools.git (branch: melodic)
imu_tools: imu_complementary_filter | imu_filter_madgwick | rviz_imu_plugin

Package Summary

Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation. Based on code by Sebastian Madgwick, http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms.

  • Maintainer status: developed
  • Maintainer: Martin Günther <martin.guenther1980 AT gmail DOT com>
  • Author: Ivan Dryanovski <ivan.dryanovski AT gmail DOT com>
  • License: GPL
  • Source: git https://github.com/CCNYRoboticsLab/imu_tools.git (branch: noetic)

Details

The imu_filter_madgwick package is used to filter and fuse raw data from IMU devices. It fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into an orientation quaternion, and publishes the fused data on the imu/data topic. The package has been tested using the raw data output of a Phidgets IMU (Spatial 3/3/3) device. The package is a wrapper of Sebastian Madgwick's IMU filter [1].

Supported devices

The filter should be general enough to use with any IMU which publishes angular velocities and linear accelerations (and optionally magnetic field).

It has been tested with:

Phidgets Spatial 3/3/3

Example

Here's an example of the non-ROS version of the code, courtesy of Sebastian Madgwick.

Todo: similar video from rviz.

ROS API

Two drivers are available: imu_filter_node and imu_filter_nodelet. Their parameters and topics are identical.

Subscribed Topics

imu/data_raw (sensor_msgs/Imu) imu/mag (sensor_msgs/MagneticField)

Published Topics

imu/data (sensor_msgs/Imu)

Parameters

Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters. ~gain (double, default: 0.1) ~zeta (double, default: 0.0) ~mag_bias_x (double, default: 0.0) ~mag_bias_y (double, default: 0.0) ~mag_bias_z (double, default: 0.0) ~orientation_stddev (double, default: 0.0)
Not Dynamically Reconfigurable Parameters
~world_frame (string, default: "nwu" for Indigo - Kinetic, "enu" for Lunar+) ~use_mag (bool, default: true) ~use_magnetic_field_msg (bool, default: false for Hydro and Indigo, true for Jade+) ~fixed_frame (string, default: odom) ~publish_tf (bool, default: true) ~reverse_tf (bool, default: false) ~constant_dt (double, default: 0.0) ~publish_debug_topics (bool, default: false) ~stateless (bool, default: false) ~remove_gravity_vector (bool, default: false)

References

[1] http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/

Bug Reports & Feature Requests

We appreciate the time and effort spent submitting bug reports and feature requests.

Use GitHub to report bugs or submit feature requests. [View active issues]

Wiki: imu_filter_madgwick (last edited 2022-04-11 10:53:56 by MartinGuenther)