Show EOL distros:
Package Summary
Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into a quaternion to represent the orientation of the device wrt the global frame. Based on the algorithm by Roberto G. Valenti etal. described in the paper "Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs" available at http://www.mdpi.com/1424-8220/15/8/19302 .
- Maintainer status: developed
- Maintainer: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- Author: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- License: BSD
- External website: http://www.mdpi.com/1424-8220/15/8/19302
- Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: indigo)
Package Summary
Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into a quaternion to represent the orientation of the device wrt the global frame. Based on the algorithm by Roberto G. Valenti etal. described in the paper "Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs" available at http://www.mdpi.com/1424-8220/15/8/19302 .
- Maintainer status: developed
- Maintainer: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- Author: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- License: BSD
- External website: http://www.mdpi.com/1424-8220/15/8/19302
- Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: jade)
Package Summary
Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into a quaternion to represent the orientation of the device wrt the global frame. Based on the algorithm by Roberto G. Valenti etal. described in the paper "Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs" available at http://www.mdpi.com/1424-8220/15/8/19302 .
- Maintainer status: developed
- Maintainer: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- Author: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- License: BSD
- External website: http://www.mdpi.com/1424-8220/15/8/19302
- Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: kinetic)
Package Summary
Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into a quaternion to represent the orientation of the device wrt the global frame. Based on the algorithm by Roberto G. Valenti etal. described in the paper "Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs" available at http://www.mdpi.com/1424-8220/15/8/19302 .
- Maintainer status: developed
- Maintainer: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- Author: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- License: BSD
- External website: http://www.mdpi.com/1424-8220/15/8/19302
- Source: git https://github.com/ccny-ros-pkg/imu_tools.git (branch: lunar)
Package Summary
Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into a quaternion to represent the orientation of the device wrt the global frame. Based on the algorithm by Roberto G. Valenti etal. described in the paper "Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs" available at http://www.mdpi.com/1424-8220/15/8/19302 .
- Maintainer status: developed
- Maintainer: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- Author: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- License: BSD
- External website: http://www.mdpi.com/1424-8220/15/8/19302
- Source: git https://github.com/CCNYRoboticsLab/imu_tools.git (branch: melodic)
Package Summary
Filter which fuses angular velocities, accelerations, and (optionally) magnetic readings from a generic IMU device into a quaternion to represent the orientation of the device wrt the global frame. Based on the algorithm by Roberto G. Valenti etal. described in the paper "Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs" available at http://www.mdpi.com/1424-8220/15/8/19302 .
- Maintainer status: developed
- Maintainer: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- Author: Roberto G. Valenti <robertogl.valenti AT gmail DOT com>
- License: BSD
- External website: http://www.mdpi.com/1424-8220/15/8/19302
- Source: git https://github.com/CCNYRoboticsLab/imu_tools.git (branch: noetic)
Contents
Details
Supported devices
The filter should be general enough to use with any IMU which publishes angular velocities and linear accelerations (and optionally magnetic filed).
It has been tested with:
Example
Here's an example of the filter in operation:
ROS API
complementary_filter_node
Subscribed Topics
imu/data_raw (sensor_msgs/Imu)- Message containing raw IMU data, including angular velocities and linear accelerations.
- [optional] Magnetic field vector
Published Topics
imu/data (sensor_msgs/Imu)- The fused Imu message, containing the orientation.
- Debug only: The roll, pitch and yaw angles corresponding to the orientation published on the imu_data topic. (only published when ~publish_debug_topics == true)
- Debug only: Whether we are in the steady state when doing bias estimation. (only published when ~publish_debug_topics == true)
Parameters
Not Dynamically Reconfigurable Parameters
- Gain for the complementary filter, belongs in [0, 1].
- Gain for the complementary filter, belongs in [0, 1].
- Bias estimation gain, belongs in [0, 1].
- Whether to do bias estimation of the angular velocity (gyroscope readings) or not.
- Whether to do adaptive gain or not.
- Whether to use the magnetic field data in the data fusion.
- The parent frame to be used in publish_tf.
- Whether to publish a TF transform that represents the orientation of the IMU, using the frame specified in fixed_frame as the parent frame and the frame given in the input imu message as the child frame.
- If set to true, publish transforms from imu_frame to fixed frame instead of the other way around.
- The dt to use; if 0.0 (default), compute dt dynamically from message headers.
- If set to true, publish a couple of debug topics.
Provided tf Transforms
fixed_frame → imu_frame- Only for debug purposes! This is a transform from the fixed frame (specified in the parameter fixed_frame, default: "odom") to the header.frame_id frame from the incoming imu messages. Only the rotation is valid.
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]