imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 2.1.5 |
License | GPL |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-10-01 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
2.1.5 (2024-10-01)
2.1.4 (2024-04-26)
- Show remapped topic names (#196)
- Set read-only parameters as read_only (#185)
- Contributors: Christoph Fröhlich, Tamaki Nishino
2.1.3 (2022-12-07)
- Update CMakeLists to use targets
- Remove node_ prefix. (#163)
- Contributors: Martin Günther, Max Polzin
2.1.2 (2022-07-14)
- Enable on Windows (#162)
- Contributors: Lou Amadio
2.1.1 (2022-05-24)
2.1.0 (2022-05-02)
- Switch to non-deprecated hpp header The .h header became deprecated after galactic.
- Add missing test dependency
- Contributors: Martin Günther
2.0.0 (2022-04-12)
- Initial release into ROS2 foxy, galactic and rolling
- Fix gcc warnings + clang-tidy suggestions
- Fix CMakeLists
- Reformat python code using black
- Manually reformat licenses + defines
- Reformat everything using clang-format
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Change to allow the usage of imu_filter_madgwick as a library (#129)
- imu_filter_madgwick: Install headers
- Remove double configuration steps. (#122) Fixes #118.
- Add declination and yaw offset. (#121) Fixes #120.
- Madgwick for eloquent (#110)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Contributors: Martin Günther, boiscljo, tgreier
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gtest | |
rclcpp | |
rclcpp_action | |
rclcpp_lifecycle | |
visualization_msgs | |
nav_msgs | |
geometry_msgs | |
builtin_interfaces | |
tf2_ros | |
tf2_geometry_msgs | |
sensor_msgs |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools | |
rtabmap_examples | |
clearpath_control |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 2.1.5 |
License | GPL |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2024-10-01 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
2.1.5 (2024-10-01)
2.1.4 (2024-04-26)
- Show remapped topic names (#196)
- Set read-only parameters as read_only (#185)
- Contributors: Christoph Fröhlich, Tamaki Nishino
2.1.3 (2022-12-07)
- Update CMakeLists to use targets
- Remove node_ prefix. (#163)
- Contributors: Martin Günther, Max Polzin
2.1.2 (2022-07-14)
- Enable on Windows (#162)
- Contributors: Lou Amadio
2.1.1 (2022-05-24)
2.1.0 (2022-05-02)
- Switch to non-deprecated hpp header The .h header became deprecated after galactic.
- Add missing test dependency
- Contributors: Martin Günther
2.0.0 (2022-04-12)
- Initial release into ROS2 foxy, galactic and rolling
- Fix gcc warnings + clang-tidy suggestions
- Fix CMakeLists
- Reformat python code using black
- Manually reformat licenses + defines
- Reformat everything using clang-format
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Change to allow the usage of imu_filter_madgwick as a library (#129)
- imu_filter_madgwick: Install headers
- Remove double configuration steps. (#122) Fixes #118.
- Add declination and yaw offset. (#121) Fixes #120.
- Madgwick for eloquent (#110)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Contributors: Martin Günther, boiscljo, tgreier
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gtest | |
rclcpp | |
rclcpp_action | |
rclcpp_lifecycle | |
visualization_msgs | |
nav_msgs | |
geometry_msgs | |
builtin_interfaces | |
tf2_ros | |
tf2_geometry_msgs | |
sensor_msgs |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools | |
rtabmap_examples |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 2.1.5 |
License | GPL |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2024-10-01 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
2.1.5 (2024-10-01)
2.1.4 (2024-04-26)
- Show remapped topic names (#196)
- Set read-only parameters as read_only (#185)
- Contributors: Christoph Fröhlich, Tamaki Nishino
2.1.3 (2022-12-07)
- Update CMakeLists to use targets
- Remove node_ prefix. (#163)
- Contributors: Martin Günther, Max Polzin
2.1.2 (2022-07-14)
- Enable on Windows (#162)
- Contributors: Lou Amadio
2.1.1 (2022-05-24)
2.1.0 (2022-05-02)
- Switch to non-deprecated hpp header The .h header became deprecated after galactic.
- Add missing test dependency
- Contributors: Martin Günther
2.0.0 (2022-04-12)
- Initial release into ROS2 foxy, galactic and rolling
- Fix gcc warnings + clang-tidy suggestions
- Fix CMakeLists
- Reformat python code using black
- Manually reformat licenses + defines
- Reformat everything using clang-format
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Change to allow the usage of imu_filter_madgwick as a library (#129)
- imu_filter_madgwick: Install headers
- Remove double configuration steps. (#122) Fixes #118.
- Add declination and yaw offset. (#121) Fixes #120.
- Madgwick for eloquent (#110)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Contributors: Martin Günther, boiscljo, tgreier
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gtest | |
rclcpp | |
rclcpp_action | |
rclcpp_lifecycle | |
visualization_msgs | |
nav_msgs | |
geometry_msgs | |
builtin_interfaces | |
tf2_ros | |
tf2_geometry_msgs | |
sensor_msgs |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools | |
rtabmap_examples |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 2.2.0 |
License | GPL |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | rolling |
Last Updated | 2024-10-01 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
2.2.0 (2024-10-01)
2.1.4 (2024-04-26)
- Show remapped topic names (#196)
- Set read-only parameters as read_only (#185)
- Contributors: Christoph Fröhlich, Tamaki Nishino
2.1.3 (2022-12-07)
- Update CMakeLists to use targets
- Remove node_ prefix. (#163)
- Contributors: Martin Günther, Max Polzin
2.1.2 (2022-07-14)
- Enable on Windows (#162)
- Contributors: Lou Amadio
2.1.1 (2022-05-24)
2.1.0 (2022-05-02)
- Switch to non-deprecated hpp header The .h header became deprecated after galactic.
- Add missing test dependency
- Contributors: Martin Günther
2.0.0 (2022-04-12)
- Initial release into ROS2 foxy, galactic and rolling
- Fix gcc warnings + clang-tidy suggestions
- Fix CMakeLists
- Reformat python code using black
- Manually reformat licenses + defines
- Reformat everything using clang-format
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Change to allow the usage of imu_filter_madgwick as a library (#129)
- imu_filter_madgwick: Install headers
- Remove double configuration steps. (#122) Fixes #118.
- Add declination and yaw offset. (#121) Fixes #120.
- Madgwick for eloquent (#110)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Contributors: Martin Günther, boiscljo, tgreier
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gtest | |
rclcpp | |
rclcpp_action | |
rclcpp_lifecycle | |
visualization_msgs | |
nav_msgs | |
geometry_msgs | |
builtin_interfaces | |
tf2_ros | |
tf2_geometry_msgs | |
sensor_msgs |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 1.2.6 |
License | GPL |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-04-26 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
1.2.6 (2024-01-12)
- Merge pull request #192 from enwaytech/av/remove_launchers Increase max stddev, add pose visualization, fix error messages
- add timeout to lookupTransform Otherwise there are a lot of warnings of [lookup would require extrapolation into the future]{.title-ref}
- publish orientation as Pose to vis on rviz
- show correct topics even if remapped
- increase max covariance
- Contributors: Adi Vardi, Martin Günther
1.2.5 (2022-08-19)
- Added ability to reset IMU filters when ROS time jumps back. (#165)
- Contributors: Martin Pecka
1.2.4 (2022-04-12)
- Reformat everything using clang-format
- Fix package dependencies
- Fix trailing whitespace
- Fix typo
- Add declination and yaw offset. (#121) Fixes #120.
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Contributors: Martin Günther, tgreier
1.2.3 (2021-04-09)
- Fix "non standard content" warning in imu_tools metapackage Fixes #135.
- Add example launch file for imu_filter_madgwick (#132)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Set cmake_policy CMP0048 to fix warning
- Contributors: Martin Günther, pietrocolombo
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
dynamic_reconfigure | |
geometry_msgs | |
message_filters | |
nodelet | |
pluginlib | |
roscpp | |
sensor_msgs | |
tf2 | |
tf2_geometry_msgs | |
tf2_ros | |
catkin | |
rosunit |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools | |
phidgets_spatial | |
rtabmap_examples | |
rm_common |
Launch files
- launch/imu_filter_madgwick.launch
- Node for merging magnetometer and accelerometer data into a single imu message
-
Messages
No message files found.
Services
No service files found
Plugins
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 2.0.3 |
License | GPL |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2022-07-14 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
2.0.3 (2022-07-14)
- Enable on Windows (#162)
- Contributors: Lou Amadio
2.0.2 (2022-05-24)
2.0.1 (2022-05-02)
- Add missing test dependency
- Contributors: Martin Günther
2.0.0 (2022-04-12)
- Initial release into ROS2 foxy, galactic and rolling
- Fix gcc warnings + clang-tidy suggestions
- Fix CMakeLists
- Reformat python code using black
- Manually reformat licenses + defines
- Reformat everything using clang-format
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Change to allow the usage of imu_filter_madgwick as a library (#129)
- imu_filter_madgwick: Install headers
- Remove double configuration steps. (#122) Fixes #118.
- Add declination and yaw offset. (#121) Fixes #120.
- Madgwick for eloquent (#110)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Contributors: Martin Günther, boiscljo, tgreier
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gtest | |
rclcpp | |
rclcpp_action | |
rclcpp_lifecycle | |
visualization_msgs | |
nav_msgs | |
geometry_msgs | |
builtin_interfaces | |
tf2_ros | |
tf2_geometry_msgs | |
sensor_msgs |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 2.0.3 |
License | GPL |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | foxy |
Last Updated | 2022-07-14 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
2.0.3 (2022-07-14)
- Enable on Windows (#162)
- Contributors: Lou Amadio
2.0.2 (2022-05-24)
2.0.1 (2022-05-02)
- Add missing test dependency
- Contributors: Martin Günther
2.0.0 (2022-04-12)
- Initial release into ROS2 foxy, galactic and rolling
- Fix gcc warnings + clang-tidy suggestions
- Fix CMakeLists
- Reformat python code using black
- Manually reformat licenses + defines
- Reformat everything using clang-format
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Change to allow the usage of imu_filter_madgwick as a library (#129)
- imu_filter_madgwick: Install headers
- Remove double configuration steps. (#122) Fixes #118.
- Add declination and yaw offset. (#121) Fixes #120.
- Madgwick for eloquent (#110)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Contributors: Martin Günther, boiscljo, tgreier
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gtest | |
rclcpp | |
rclcpp_action | |
rclcpp_lifecycle | |
visualization_msgs | |
nav_msgs | |
geometry_msgs | |
builtin_interfaces | |
tf2_ros | |
tf2_geometry_msgs | |
sensor_msgs |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
imu_tools | |
jackal_control | |
rtabmap_examples |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged imu_filter_madgwick at Robotics Stack Exchange
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
imu_filter_madgwick package from imu_tools repoimu_complementary_filter imu_filter_madgwick imu_tools rviz_imu_plugin |
|
Package Summary
Tags | No category tags. |
Version | 1.2.5 |
License | GPL |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/CCNYRoboticsLab/imu_tools.git |
VCS Type | git |
VCS Version | melodic |
Last Updated | 2022-08-19 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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.
Additional Links
Maintainers
- Martin Günther
Authors
- Ivan Dryanovski
README
No README found.
See repository README.
CHANGELOG
Changelog for package imu_filter_madgwick
1.2.5 (2022-08-19)
- Added ability to reset IMU filters when ROS time jumps back. (#165)
- Contributors: Martin Pecka
1.2.4 (2022-04-12)
- Reformat everything using clang-format
- Fix package dependencies
- Fix trailing whitespace
- Fix typo
- Add declination and yaw offset. (#121) Fixes #120.
- Add license files The "COPYING" file incorrectly had the text of the LGPL, but the original Madgwick filter [1], [2] is GPL licensed. The source code headers correctly have the GPLv3 license text. [1]: https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/ [2]: https://github.com/xioTechnologies/Fusion
- Contributors: Martin Günther, tgreier
1.2.3 (2021-04-09)
- Fix "non standard content" warning in imu_tools metapackage Fixes #135.
- Add example launch file for imu_filter_madgwick (#132)
- Update maintainers in package.xml
- Fix warnings: reordering and unused vars
- Set cmake_policy CMP0048 to fix warning
- Contributors: Martin Günther, pietrocolombo
1.2.2 (2020-05-25)
- Drop the signals component of Boost (#103)
- Add the option to remove the gravity vector (#101)
- fix install path & boost linkage issues
- Contributors: Alexis Paques, Martin Günther, Mike Purvis, Sean Yen
1.2.1 (2019-05-06)
- Skip messages and warn if computeOrientation fails
- Contributors: Martin Günther
1.2.0 (2018-05-25)
- Remove outdated Makefile
- Add warning when IMU time stamp is zero Closes #82.
- update to use non deprecated pluginlib macro (#77)
- Contributors: Martin Günther, Mikael Arguedas
1.1.5 (2017-05-24)
- Initial release into Lunar
- Remove support for Vector3 mag messages
- Change default world_frame = enu
- Rewrite rosbags: Use MagneticField for magnetometer
- Contributors: Martin Günther
1.1.4 (2017-05-22)
- Print warning if waiting for topic Closes #61.
- Fix boost::lock_error on shutdown
- Contributors: Martin Günther
1.1.3 (2017-03-10)
- Return precisely normalized quaternions Fixes #67 : TF_DENORMALIZED_QUATERNION warning added in TF2 0.5.14.
- Tests: Check that output quaternions are normalized
- Fixed lock so it stays in scope until end of method.
- Contributors: Jason Mercer, Martin Guenther, Martin Günther
1.1.2 (2016-09-07)
- Add missing dependency on tf2_geometry_msgs
- Contributors: Martin Guenther
1.1.1 (2016-09-07)
- Add parameter "world_frame": optionally use ENU or NED instead of NWU convention (from #60; closes #36)
- Add parameter "stateless" for debugging purposes: don't do any stateful filtering, but instead publish the orientation directly computed from the latest accelerometer (+ optionally magnetometer) readings alone
- Replace the (buggy) Euler-angle-based initialization routine (ImuFilterRos::computeRPY) by a correct transformation matrix based one (StatelessOrientation::computeOrientation) and make it available as a library function
- Refactor madgwickAHRSupdate() (pull out some functions, remove micro optimizations to improve readability)
- Add unit tests
- Contributors: Martin Guenther, Michael Stoll
1.1.0 (2016-04-25)
1.0.11 (2016-04-22)
- Jade: Change default: use_magnetic_field_msg = true
- Contributors: Martin Guenther
1.0.10 (2016-04-22)
1.0.9 (2015-10-16)
1.0.8 (2015-10-07)
1.0.7 (2015-10-07)
1.0.6 (2015-10-06)
- Split ImuFilter class into ImuFilter and ImuFilterRos in order to have a C++ API to the Madgwick algorithm
- Properly install header files.
- Contributors: Martin Günther, Michael Stoll
1.0.5 (2015-06-24)
- Add "~use_magnetic_field_msg" param. This allows the user to subscribe to the /imu/mag topic as a sensor_msgs/MagneticField rather than a geometry_msgs/Vector3Stamped. The default for now is false, which preserves the legacy behaviour via a separate subscriber which converts Vector3Stamped to MagneticField and republishes.
- Contributors: Mike Purvis, Martin Günther
1.0.4 (2015-05-06)
- update dynamic reconfigure param descriptions
- only advertise debug topics if they are used
- allow remapping of the whole imu namespace with this change, all topics can be remapped at once, like this: rosrun imu_filter_madgwick imu_filter_node imu:=my_imu
- Contributors: Martin Günther
1.0.3 (2015-01-29)
- Add std dev parameter to orientation estimate covariance matrix
- Port imu_filter_madgwick to tf2
- Switch to smart pointer
- Contributors: Paul Bovbel, Martin Günther
1.0.2 (2015-01-27)
- fix tf publishing (switch parent + child frames) The orientation is
between a fixed inertial frame (
fixed_frame_
) and the frame that the IMU is mounted in (imu_frame_
). Also,imu_msg.header.frame
should beimu_frame_
, but the corresponding TF goes fromfixed_frame_
toimu_frame_
. This commit fixes that; for thereverse_tf
case, it was already correct. Also see http://answers.ros.org/question/50870/what-frame-is-sensor_msgsimuorientation-relative-to/. Note that tf publishing should be enabled for debug purposes only, since we can only provide the orientation, not the translation. - Add ~reverse_tf parameter for the robots which does not have IMU on root-link
- Log mag bias on startup to assist with debugging.
- add boost depends to CMakeLists All non-catkin things that we expose in our headers should be added to the DEPENDS, so that packages which depend on our package will also automatically link against it.
- Contributors: Martin Günther, Mike Purvis, Ryohei Ueda
1.0.1 (2014-12-10)
- add me as maintainer to package.xml
- turn mag_bias into a dynamic reconfigure param Also rename mag_bias/x --> mag_bias_x etc., since dynamic reconfigure doesn't allow slashes.
- gain and zeta already set via dynamic_reconfigure Reading the params explicitly is not necessary. Instead, dynamic_reconfigure will read them and set them as soon as we call config_server->setCallback().
- reconfigure server: use proper namespace Before, the reconfigure server used the private namespace of the nodelet manager instead of the nodelet, so the params on the parameter server and the ones from dynamic_reconfigure were out of sync.
- check for NaNs in magnetometer message Some magnetometer drivers (e.g. phidgets_drivers) output NaNs, which is a valid way of saying that this measurement is invalid. During initialization, we simply wait for the first valid message, assuming there will be one soon.
- magnetometer msg check: isnan() -> !isfinite() This catches both inf and NaN. Not sure whether sending inf in a Vector3 message is valid (Nan is), but this doesn't hurt and is just good defensive programming.
- Initialize yaw from calibrated magnetometer data
- Add magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- Initialize yaw orientation from magnetometer reading.
- Add imu/rpy/raw and imu/rpy/filtered as debug topics. imu/rpy/raw can be used for computing magnetometer biases. imu/rpy/filtered topic is for user readability only.
- Contributors: Martin Günther, Shokoofeh Pourmehr
1.0.0 (2014-09-03)
- First public release
- Remove setting imu message frame to fixed/odom
- CMakeLists: remove unnecessary link_directories, LIBRARY_OUTPUT_PATH
- add missing build dependency on generated config This removes a racing condition from the build process.
- install nodelet xml file Otherwise the nodelet can't be found
- fix implementation of invSqrt() The old invSqrt() implementation causes the estimate to diverge under constant input. The problem was the line [long i = (long)&y;]{.title-ref}, where 64 bits are read from a 32 bit number. Thanks to \@tomas-c for spotting this and pointing out the solution.
- catkinization of imu_tools metapackage
- fix typo: zeta ->
zeta_
- fix initialization of initial rotation
- gyro drift correction function added in MARG implementation
- set "zeta" as a parameter for dynamic reconfigure in the .cfg file
- add new test bag: phidgets_imu_upside_down
- add parameter publish_tf When the imu is used together with other packages, such as robot_pose_ekf, publishing the transform often interferes with those packages. This parameter allows to disable tf publishing.
- add some sample imu data
- more informative constant_dt message. Reverts to 0.0 on illegal param value
- imu_filter_madgwick manifest now correctly lists the package as GPL license.
- orientation is initialized from acceleration vector on first message received
- added dynamic reconfigure for gain parameter. Added better messages about constant_dt param at startup
- the tf published is now timestamped as the imu msg, and not as now(). Also added constant dt option for the imu+mag callback
- fix the transform publish -- from the fixed frame to the frame of the imu
- add a tf broadcaster with the orientation
- as per PaulKemppi: added option to set constant dt
- walchko: Needed to add namespace: std::isnan() and needed to add rosbuild_link_boost(imu_filter signals) to CMakeLists.txt
- added sebastian's name and link to the manifest
- renamed imu_filter to imu_filter_madgwick
- Contributors: Ivan Dryanovski, Martin Günther, Mike Purvis, Sameer Parekh, TUG-DESTOP, Francisco Vina, Michael Görner, Paul Kemppi, Tomas Cerskus, Kevin Walchko
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
dynamic_reconfigure | |
geometry_msgs | |
message_filters | |
nodelet | |
pluginlib | |
roscpp | |
sensor_msgs | |
tf2 | |
tf2_geometry_msgs | |
tf2_ros | |
catkin | |
rosunit |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
adi_driver | |
heron_gazebo | |
husky_bringup | |
imu_tools | |
phidgets_imu |
Launch files
- launch/imu_filter_madgwick.launch
- Node for merging magnetometer and accelerometer data into a single imu message
-
Messages
No message files found.
Services
No service files found