razor_imu_9dof package from razor_imu_9dof repo

razor_imu_9dof

Package Summary

Tags No category tags.
Version 1.2.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/KristofRobot/razor_imu_9dof.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-01-20
Dev Status MAINTAINED
Released RELEASED

Package Description

razor_imu_9dof is a package that provides a ROS driver for the Sparkfun Razor IMU 9DOF. It also provides Arduino firmware that runs on the Razor board, and which must be installed on the Razor board for the system to work. A node which displays the attitude (roll, pitch and yaw) of the Razor board (or any IMU) is provided for testing.

Additional Links

Maintainers

  • Kristof Robot

Authors

  • Tang Tiong Yew
  • Kristof Robot
  • Paul Bouchier
  • Peter Bartz

Official ROS Documentation

A much more extensive and standard ROS-style version of this documentation can be found on the ROS wiki at:

http://wiki.ros.org/razor_imu_9dof

Install and Configure ROS Package

1) Install dependencies:

$ sudo apt-get install python-visual

2) Download code:

$ cd ~/catkin_workspace/src
$ git clone https://github.com/KristofRobot/razor_imu_9dof.git
$ cd ..
$ catkin_make

Install Arduino firmware

1) For SEN-14001 (9DoF Razor IMU M0), you will need to follow the same instructions as for the default firmware on https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide and use an updated version of SparkFun_MPU-9250-DMP_Arduino_Library from https://github.com/lebarsfa/SparkFun_MPU-9250-DMP_Arduino_Library (an updated version of the default firmware is also available on https://github.com/lebarsfa/9DOF_Razor_IMU).

2) Open src/Razor_AHRS/Razor_AHRS.ino in Arduino IDE. Note: this is a modified version of Peter Bartz' original Arduino code (see https://github.com/ptrbrtz/razor-9dof-ahrs). Use this version - it emits linear acceleration and angular velocity data required by the ROS Imu message

3) Select your hardware here by uncommenting the right line in src/Razor_AHRS/Razor_AHRS.ino, e.g.

// HARDWARE OPTIONS
/*****************************************************************/
// Select your hardware here by uncommenting one line!
//#define HW__VERSION_CODE 10125 // SparkFun "9DOF Razor IMU" version "SEN-10125" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10736 // SparkFun "9DOF Razor IMU" version "SEN-10736" (HMC5883L magnetometer)
#define HW__VERSION_CODE 14001 // SparkFun "9DoF Razor IMU M0" version "SEN-14001"
//#define HW__VERSION_CODE 10183 // SparkFun "9DOF Sensor Stick" version "SEN-10183" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10321 // SparkFun "9DOF Sensor Stick" version "SEN-10321" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10724 // SparkFun "9DOF Sensor Stick" version "SEN-10724" (HMC5883L magnetometer)

4) Upload Arduino sketch to the Sparkfun 9DOF Razor IMU board

Configure

In its default configuration, razor_imu_9dof expects a yaml config file my_razor.yaml with: * USB port to use * Calibration parameters

An examplerazor.yaml file is provided. Copy that file to my_razor.yaml as follows:

$ roscd razor_imu_9dof/config
$ cp razor.yaml my_razor.yaml

Then, edit my_razor.yaml as needed

Launch

Publisher and 3D visualization:

$ roslaunch razor_imu_9dof razor-pub-and-display.launch

Publisher only:

$ roslaunch razor_imu_9dof razor-pub.launch

Publisher only with diagnostics:

$ roslaunch razor_imu_9dof razor-pub-diags.launch

3D visualization only:

$ roslaunch razor_imu_9dof razor-display.launch

Calibrate

For best accuracy, follow the tutorial to calibrate the sensors:

http://wiki.ros.org/razor_imu_9dof

An updated version of Peter Bartz's magnetometer calibration scripts from https://github.com/ptrbrtz/razor-9dof-ahrs is provided in the magnetometer_calibration directory.

Update my_razor.yaml with the new calibration parameters.

Dynamic Reconfigure

After having launched the publisher with one of the launch commands listed above, it is possible to dynamically reconfigure the yaw calibration.

1) Run:

$ rosrun rqt_reconfigure rqt_reconfigure 

2) Select imu_node.

3) Change the slider to move the calibration +/- 10 degrees. If you are running the 3D visualization you'll see the display jump when the new calibration takes effect.

The intent of this feature is to let you tune the alignment of the AHRS to the direction of the robot driving direction, so that if you can determine that, for example, the AHRS reads 30 degrees when the robot is actually going at 35 degrees as shown by e.g. GPS, you can tune the calibration to make it read 35. It's the compass-equivalent of bore-sighting a camera.

CHANGELOG

Changelog for package razor_imu_9dof

1.2.0 (20-12-2017)

  • Adding firmware support for SEN-14001 (9DoF Razor IMU M0) (lebarsfa)

1.1.1 (02-07-2016)

  • Passing razor_config_file as ros parameter in launch file (Daniel Koguciuk)

1.1.0 (08-03-2015)

  • Resolving bug in exiting display_3D_visualization (#15)
  • Adding dynamic reconfigure for yaw calibration (Paul Bouchier)
  • Moving calibration values from firmware to ROS yaml file (#13)

    • Note: this is a BREAKING CHANGE - requires firmware update (updated firmware provided)
  • Refactoring code: moved scripts to nodes, renamed node.py to imu_node.py (Paul Bouchier)

  • Adding diagnostic status reporting (Paul Bouchier)

1.0.5 (15-11-2014)

  • Moving scripts from nodes to scripts dir
  • Installing files in src and magnetometer_calibration
  • Major cleanup of package.xml and CMakeLists.txt

1.0.4 (15-11-2014)

  • Adding press \'a\' to align feature
  • Moving magnetometer calibration sketches under dedicated magnetometer_calibration directory
  • Adding magnetometer calibration sketches for Processing and Matlab (Paul Bouchier)
  • Setting default USB port to /dev/ttyUSB0 in all files
  • Adding graceful exit in case USB port not found
  • Adding queue_size=1
  • Fixing x linear accelerations sign

1.0.3 (02-11-2014)

  • Moving all file one directory up
  • Changing axis orientation in 3D visualization to be in line with REP 103
  • Additional output of linear accelerationa and angular velocity in 3D visualization
  • Adding units of measurement to 3D visualization
  • Major graphical improvements to the 3D visualization
  • Adding explanation on different launch files

1.0.2 (31-10-2014)

  • Adding valid covariances (Paul Bouchier)
  • Fixing incorrect direction of yaw & pitch orientation (Paul Bouchier)
  • Fix Readme references & instructions (Paul Bouchier)
  • Converting acceleration to m/s^2 (Paul Bouchier)
  • Adapting to new output message YPRAG instead of YPRAMG (Paul Bouchier)
  • Updating package.xml links to ahrs site (Paul Bouchier)
  • Upgrading Arduino package to 1.4.2 from Peter Bartz\' site (Paul Bouchier)
  • Fixing link to Peter Bartz\' site (Paul Bouchier)
  • Documenting #ox output mode (Paul Bouchier)
  • Renaming new mode #define to better reflect what it does (Paul Bouchier)
  • Adding #ox output mode back into Peter\'s code (Paul Bouchier)

1.0.1 (15-03-2014)

  • Cleaning up code based on catkin_lint report
  • Creating additional launch files for display/publishing
  • Implementing flush of first IMU results
  • Changing default port, and adding output showing which port was selected
  • Removing obsolete roslib import and roslib.load_manifest

1.0.0 (29-12-2013)

  • First catkinized version

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged razor_imu_9dof at answers.ros.org

razor_imu_9dof package from razor_imu_9dof repo

razor_imu_9dof

Package Summary

Tags No category tags.
Version 1.2.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/KristofRobot/razor_imu_9dof.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-01-20
Dev Status MAINTAINED
Released RELEASED

Package Description

razor_imu_9dof is a package that provides a ROS driver for the Sparkfun Razor IMU 9DOF. It also provides Arduino firmware that runs on the Razor board, and which must be installed on the Razor board for the system to work. A node which displays the attitude (roll, pitch and yaw) of the Razor board (or any IMU) is provided for testing.

Additional Links

Maintainers

  • Kristof Robot

Authors

  • Tang Tiong Yew
  • Kristof Robot
  • Paul Bouchier
  • Peter Bartz

Official ROS Documentation

A much more extensive and standard ROS-style version of this documentation can be found on the ROS wiki at:

http://wiki.ros.org/razor_imu_9dof

Install and Configure ROS Package

1) Install dependencies:

$ sudo apt-get install python-visual

2) Download code:

$ cd ~/catkin_workspace/src
$ git clone https://github.com/KristofRobot/razor_imu_9dof.git
$ cd ..
$ catkin_make

Install Arduino firmware

1) For SEN-14001 (9DoF Razor IMU M0), you will need to follow the same instructions as for the default firmware on https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide and use an updated version of SparkFun_MPU-9250-DMP_Arduino_Library from https://github.com/lebarsfa/SparkFun_MPU-9250-DMP_Arduino_Library (an updated version of the default firmware is also available on https://github.com/lebarsfa/9DOF_Razor_IMU).

2) Open src/Razor_AHRS/Razor_AHRS.ino in Arduino IDE. Note: this is a modified version of Peter Bartz' original Arduino code (see https://github.com/ptrbrtz/razor-9dof-ahrs). Use this version - it emits linear acceleration and angular velocity data required by the ROS Imu message

3) Select your hardware here by uncommenting the right line in src/Razor_AHRS/Razor_AHRS.ino, e.g.

// HARDWARE OPTIONS
/*****************************************************************/
// Select your hardware here by uncommenting one line!
//#define HW__VERSION_CODE 10125 // SparkFun "9DOF Razor IMU" version "SEN-10125" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10736 // SparkFun "9DOF Razor IMU" version "SEN-10736" (HMC5883L magnetometer)
#define HW__VERSION_CODE 14001 // SparkFun "9DoF Razor IMU M0" version "SEN-14001"
//#define HW__VERSION_CODE 10183 // SparkFun "9DOF Sensor Stick" version "SEN-10183" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10321 // SparkFun "9DOF Sensor Stick" version "SEN-10321" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10724 // SparkFun "9DOF Sensor Stick" version "SEN-10724" (HMC5883L magnetometer)

4) Upload Arduino sketch to the Sparkfun 9DOF Razor IMU board

Configure

In its default configuration, razor_imu_9dof expects a yaml config file my_razor.yaml with: * USB port to use * Calibration parameters

An examplerazor.yaml file is provided. Copy that file to my_razor.yaml as follows:

$ roscd razor_imu_9dof/config
$ cp razor.yaml my_razor.yaml

Then, edit my_razor.yaml as needed

Launch

Publisher and 3D visualization:

$ roslaunch razor_imu_9dof razor-pub-and-display.launch

Publisher only:

$ roslaunch razor_imu_9dof razor-pub.launch

Publisher only with diagnostics:

$ roslaunch razor_imu_9dof razor-pub-diags.launch

3D visualization only:

$ roslaunch razor_imu_9dof razor-display.launch

Calibrate

For best accuracy, follow the tutorial to calibrate the sensors:

http://wiki.ros.org/razor_imu_9dof

An updated version of Peter Bartz's magnetometer calibration scripts from https://github.com/ptrbrtz/razor-9dof-ahrs is provided in the magnetometer_calibration directory.

Update my_razor.yaml with the new calibration parameters.

Dynamic Reconfigure

After having launched the publisher with one of the launch commands listed above, it is possible to dynamically reconfigure the yaw calibration.

1) Run:

$ rosrun rqt_reconfigure rqt_reconfigure 

2) Select imu_node.

3) Change the slider to move the calibration +/- 10 degrees. If you are running the 3D visualization you'll see the display jump when the new calibration takes effect.

The intent of this feature is to let you tune the alignment of the AHRS to the direction of the robot driving direction, so that if you can determine that, for example, the AHRS reads 30 degrees when the robot is actually going at 35 degrees as shown by e.g. GPS, you can tune the calibration to make it read 35. It's the compass-equivalent of bore-sighting a camera.

CHANGELOG

Changelog for package razor_imu_9dof

1.2.0 (20-12-2017)

  • Adding firmware support for SEN-14001 (9DoF Razor IMU M0) (lebarsfa)

1.1.1 (02-07-2016)

  • Passing razor_config_file as ros parameter in launch file (Daniel Koguciuk)

1.1.0 (08-03-2015)

  • Resolving bug in exiting display_3D_visualization (#15)
  • Adding dynamic reconfigure for yaw calibration (Paul Bouchier)
  • Moving calibration values from firmware to ROS yaml file (#13)

    • Note: this is a BREAKING CHANGE - requires firmware update (updated firmware provided)
  • Refactoring code: moved scripts to nodes, renamed node.py to imu_node.py (Paul Bouchier)

  • Adding diagnostic status reporting (Paul Bouchier)

1.0.5 (15-11-2014)

  • Moving scripts from nodes to scripts dir
  • Installing files in src and magnetometer_calibration
  • Major cleanup of package.xml and CMakeLists.txt

1.0.4 (15-11-2014)

  • Adding press \'a\' to align feature
  • Moving magnetometer calibration sketches under dedicated magnetometer_calibration directory
  • Adding magnetometer calibration sketches for Processing and Matlab (Paul Bouchier)
  • Setting default USB port to /dev/ttyUSB0 in all files
  • Adding graceful exit in case USB port not found
  • Adding queue_size=1
  • Fixing x linear accelerations sign

1.0.3 (02-11-2014)

  • Moving all file one directory up
  • Changing axis orientation in 3D visualization to be in line with REP 103
  • Additional output of linear accelerationa and angular velocity in 3D visualization
  • Adding units of measurement to 3D visualization
  • Major graphical improvements to the 3D visualization
  • Adding explanation on different launch files

1.0.2 (31-10-2014)

  • Adding valid covariances (Paul Bouchier)
  • Fixing incorrect direction of yaw & pitch orientation (Paul Bouchier)
  • Fix Readme references & instructions (Paul Bouchier)
  • Converting acceleration to m/s^2 (Paul Bouchier)
  • Adapting to new output message YPRAG instead of YPRAMG (Paul Bouchier)
  • Updating package.xml links to ahrs site (Paul Bouchier)
  • Upgrading Arduino package to 1.4.2 from Peter Bartz\' site (Paul Bouchier)
  • Fixing link to Peter Bartz\' site (Paul Bouchier)
  • Documenting #ox output mode (Paul Bouchier)
  • Renaming new mode #define to better reflect what it does (Paul Bouchier)
  • Adding #ox output mode back into Peter\'s code (Paul Bouchier)

1.0.1 (15-03-2014)

  • Cleaning up code based on catkin_lint report
  • Creating additional launch files for display/publishing
  • Implementing flush of first IMU results
  • Changing default port, and adding output showing which port was selected
  • Removing obsolete roslib import and roslib.load_manifest

1.0.0 (29-12-2013)

  • First catkinized version

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged razor_imu_9dof at answers.ros.org

razor_imu_9dof package from razor_imu_9dof repo

razor_imu_9dof

Package Summary

Tags No category tags.
Version 1.2.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/KristofRobot/razor_imu_9dof.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-01-20
Dev Status MAINTAINED
Released RELEASED

Package Description

razor_imu_9dof is a package that provides a ROS driver for the Sparkfun Razor IMU 9DOF. It also provides Arduino firmware that runs on the Razor board, and which must be installed on the Razor board for the system to work. A node which displays the attitude (roll, pitch and yaw) of the Razor board (or any IMU) is provided for testing.

Additional Links

Maintainers

  • Kristof Robot

Authors

  • Tang Tiong Yew
  • Kristof Robot
  • Paul Bouchier
  • Peter Bartz

Official ROS Documentation

A much more extensive and standard ROS-style version of this documentation can be found on the ROS wiki at:

http://wiki.ros.org/razor_imu_9dof

Install and Configure ROS Package

1) Install dependencies:

$ sudo apt-get install python-visual

2) Download code:

$ cd ~/catkin_workspace/src
$ git clone https://github.com/KristofRobot/razor_imu_9dof.git
$ cd ..
$ catkin_make

Install Arduino firmware

1) For SEN-14001 (9DoF Razor IMU M0), you will need to follow the same instructions as for the default firmware on https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide and use an updated version of SparkFun_MPU-9250-DMP_Arduino_Library from https://github.com/lebarsfa/SparkFun_MPU-9250-DMP_Arduino_Library (an updated version of the default firmware is also available on https://github.com/lebarsfa/9DOF_Razor_IMU).

2) Open src/Razor_AHRS/Razor_AHRS.ino in Arduino IDE. Note: this is a modified version of Peter Bartz' original Arduino code (see https://github.com/ptrbrtz/razor-9dof-ahrs). Use this version - it emits linear acceleration and angular velocity data required by the ROS Imu message

3) Select your hardware here by uncommenting the right line in src/Razor_AHRS/Razor_AHRS.ino, e.g.

// HARDWARE OPTIONS
/*****************************************************************/
// Select your hardware here by uncommenting one line!
//#define HW__VERSION_CODE 10125 // SparkFun "9DOF Razor IMU" version "SEN-10125" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10736 // SparkFun "9DOF Razor IMU" version "SEN-10736" (HMC5883L magnetometer)
#define HW__VERSION_CODE 14001 // SparkFun "9DoF Razor IMU M0" version "SEN-14001"
//#define HW__VERSION_CODE 10183 // SparkFun "9DOF Sensor Stick" version "SEN-10183" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10321 // SparkFun "9DOF Sensor Stick" version "SEN-10321" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10724 // SparkFun "9DOF Sensor Stick" version "SEN-10724" (HMC5883L magnetometer)

4) Upload Arduino sketch to the Sparkfun 9DOF Razor IMU board

Configure

In its default configuration, razor_imu_9dof expects a yaml config file my_razor.yaml with: * USB port to use * Calibration parameters

An examplerazor.yaml file is provided. Copy that file to my_razor.yaml as follows:

$ roscd razor_imu_9dof/config
$ cp razor.yaml my_razor.yaml

Then, edit my_razor.yaml as needed

Launch

Publisher and 3D visualization:

$ roslaunch razor_imu_9dof razor-pub-and-display.launch

Publisher only:

$ roslaunch razor_imu_9dof razor-pub.launch

Publisher only with diagnostics:

$ roslaunch razor_imu_9dof razor-pub-diags.launch

3D visualization only:

$ roslaunch razor_imu_9dof razor-display.launch

Calibrate

For best accuracy, follow the tutorial to calibrate the sensors:

http://wiki.ros.org/razor_imu_9dof

An updated version of Peter Bartz's magnetometer calibration scripts from https://github.com/ptrbrtz/razor-9dof-ahrs is provided in the magnetometer_calibration directory.

Update my_razor.yaml with the new calibration parameters.

Dynamic Reconfigure

After having launched the publisher with one of the launch commands listed above, it is possible to dynamically reconfigure the yaw calibration.

1) Run:

$ rosrun rqt_reconfigure rqt_reconfigure 

2) Select imu_node.

3) Change the slider to move the calibration +/- 10 degrees. If you are running the 3D visualization you'll see the display jump when the new calibration takes effect.

The intent of this feature is to let you tune the alignment of the AHRS to the direction of the robot driving direction, so that if you can determine that, for example, the AHRS reads 30 degrees when the robot is actually going at 35 degrees as shown by e.g. GPS, you can tune the calibration to make it read 35. It's the compass-equivalent of bore-sighting a camera.

CHANGELOG

Changelog for package razor_imu_9dof

1.2.0 (20-12-2017)

  • Adding firmware support for SEN-14001 (9DoF Razor IMU M0) (lebarsfa)

1.1.1 (02-07-2016)

  • Passing razor_config_file as ros parameter in launch file (Daniel Koguciuk)

1.1.0 (08-03-2015)

  • Resolving bug in exiting display_3D_visualization (#15)
  • Adding dynamic reconfigure for yaw calibration (Paul Bouchier)
  • Moving calibration values from firmware to ROS yaml file (#13)

    • Note: this is a BREAKING CHANGE - requires firmware update (updated firmware provided)
  • Refactoring code: moved scripts to nodes, renamed node.py to imu_node.py (Paul Bouchier)

  • Adding diagnostic status reporting (Paul Bouchier)

1.0.5 (15-11-2014)

  • Moving scripts from nodes to scripts dir
  • Installing files in src and magnetometer_calibration
  • Major cleanup of package.xml and CMakeLists.txt

1.0.4 (15-11-2014)

  • Adding press \'a\' to align feature
  • Moving magnetometer calibration sketches under dedicated magnetometer_calibration directory
  • Adding magnetometer calibration sketches for Processing and Matlab (Paul Bouchier)
  • Setting default USB port to /dev/ttyUSB0 in all files
  • Adding graceful exit in case USB port not found
  • Adding queue_size=1
  • Fixing x linear accelerations sign

1.0.3 (02-11-2014)

  • Moving all file one directory up
  • Changing axis orientation in 3D visualization to be in line with REP 103
  • Additional output of linear accelerationa and angular velocity in 3D visualization
  • Adding units of measurement to 3D visualization
  • Major graphical improvements to the 3D visualization
  • Adding explanation on different launch files

1.0.2 (31-10-2014)

  • Adding valid covariances (Paul Bouchier)
  • Fixing incorrect direction of yaw & pitch orientation (Paul Bouchier)
  • Fix Readme references & instructions (Paul Bouchier)
  • Converting acceleration to m/s^2 (Paul Bouchier)
  • Adapting to new output message YPRAG instead of YPRAMG (Paul Bouchier)
  • Updating package.xml links to ahrs site (Paul Bouchier)
  • Upgrading Arduino package to 1.4.2 from Peter Bartz\' site (Paul Bouchier)
  • Fixing link to Peter Bartz\' site (Paul Bouchier)
  • Documenting #ox output mode (Paul Bouchier)
  • Renaming new mode #define to better reflect what it does (Paul Bouchier)
  • Adding #ox output mode back into Peter\'s code (Paul Bouchier)

1.0.1 (15-03-2014)

  • Cleaning up code based on catkin_lint report
  • Creating additional launch files for display/publishing
  • Implementing flush of first IMU results
  • Changing default port, and adding output showing which port was selected
  • Removing obsolete roslib import and roslib.load_manifest

1.0.0 (29-12-2013)

  • First catkinized version

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged razor_imu_9dof at answers.ros.org

razor_imu_9dof package from razor_imu_9dof repo

razor_imu_9dof

Package Summary

Tags No category tags.
Version 1.1.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/KristofRobot/razor_imu_9dof.git
VCS Type git
VCS Version hydro-devel
Last Updated 2016-07-02
Dev Status MAINTAINED
Released RELEASED

Package Description

razor_imu_9dof is a package that provides a ROS driver for the Sparkfun Razor IMU 9DOF. It also provides Arduino firmware that runs on the Razor board, and which must be installed on the Razor board for the system to work. A node which displays the attitude (roll, pitch and yaw) of the Razor board (or any IMU) is provided for testing.

Additional Links

Maintainers

  • Kristof Robot

Authors

  • Tang Tiong Yew
  • Kristof Robot
  • Paul Bouchier
  • Peter Bartz

Official ROS Documentation

A much more extensive and standard ROS-style version of this documentation can be found on the ROS wiki at:

http://wiki.ros.org/razor_imu_9dof

Install and Configure ROS Package

1) Install dependencies:

$ sudo apt-get install python-visual

2) Download code:

$ cd ~/catkin_workspace/src
$ git clone https://github.com/KristofRobot/razor_imu_9dof.git
$ cd ..
$ catkin_make

Install Arduino firmware

1) Open src/Razor_AHRS/Razor_AHRS.ino in Arduino IDE. Note: this is a modified version of Peter Bartz' original Arduino code (see https://github.com/ptrbrtz/razor-9dof-ahrs). Use this version - it emits linear acceleration and angular velocity data required by the ROS Imu message

2) Select your hardware here by uncommenting the right line in src/Razor_AHRS/Razor_AHRS.ino, e.g.

// HARDWARE OPTIONS
/*****************************************************************/
// Select your hardware here by uncommenting one line!
//#define HW__VERSION_CODE 10125 // SparkFun "9DOF Razor IMU" version "SEN-10125" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10736 // SparkFun "9DOF Razor IMU" version "SEN-10736" (HMC5883L magnetometer)
//#define HW__VERSION_CODE 10183 // SparkFun "9DOF Sensor Stick" version "SEN-10183" (HMC5843 magnetometer)
//#define HW__VERSION_CODE 10321 // SparkFun "9DOF Sensor Stick" version "SEN-10321" (HMC5843 magnetometer)
#define HW__VERSION_CODE 10724 // SparkFun "9DOF Sensor Stick" version "SEN-10724" (HMC5883L magnetometer)

3) Upload Arduino sketch to the Sparkfun 9DOF Razor IMU board

Configure

In its default configuration, razor_imu_9dof expects a yaml config file my_razor.yaml with: * USB port to use * Calibration parameters

An examplerazor.yaml file is provided. Copy that file to my_razor.yaml as follows:

$ roscd razor_imu_9dof/config
$ cp razor.yaml my_razor.yaml

Then, edit my_razor.yaml as needed

Launch

Publisher and 3D visualization:

$ roslaunch razor_imu_9dof razor-pub-and-display.launch

Publisher only:

$ roslaunch razor_imu_9dof razor-pub.launch

Publisher only with diagnostics:

$ roslaunch razor_imu_9dof razor-pub-diags.launch

3D visualization only:

$ roslaunch razor_imu_9dof razor-display.launch

Calibrate

For best accuracy, follow the tutorial to calibrate the sensors:

http://wiki.ros.org/razor_imu_9dof

A copy of Peter Bartz's magnetometer calibration scripts from https://github.com/ptrbrtz/razor-9dof-ahrs is provided in the magnetometer_calibration directory.

Update my_razor.yaml with the new calibration parameters.

Dynamic Reconfigure

After having launched the publisher with one of the launch commands listed above, it is possible to dynamically reconfigure the yaw calibration.

1) Run:

$ rosrun rqt_reconfigure rqt_reconfigure 

2) Select imu_node.

3) Change the slider to move the calibration +/- 10 degrees. If you are running the 3D visualization you'll see the display jump when the new calibration takes effect.

The intent of this feature is to let you tune the alignment of the AHRS to the direction of the robot driving direction, so that if you can determine that, for example, the AHRS reads 30 degrees when the robot is actually going at 35 degrees as shown by e.g. GPS, you can tune the calibration to make it read 35. It's the compass-equivalent of bore-sighting a camera.

CHANGELOG

Changelog for package razor_imu_9dof

1.1.1 (02-07-2016)

  • Passing razor_config_file as ros parameter in launch file (Daniel Koguciuk)

1.1.0 (08-03-2015)

  • Resolving bug in exiting display_3D_visualization (#15)
  • Adding dynamic reconfigure for yaw calibration (Paul Bouchier)
  • Moving calibration values from firmware to ROS yaml file (#13)

    • Note: this is a BREAKING CHANGE - requires firmware update (updated firmware provided)
  • Refactoring code: moved scripts to nodes, renamed node.py to imu_node.py (Paul Bouchier)

  • Adding diagnostic status reporting (Paul Bouchier)

1.0.5 (15-11-2014)

  • Moving scripts from nodes to scripts dir
  • Installing files in src and magnetometer_calibration
  • Major cleanup of package.xml and CMakeLists.txt

1.0.4 (15-11-2014)

  • Adding press \'a\' to align feature
  • Moving magnetometer calibration sketches under dedicated magnetometer_calibration directory
  • Adding magnetometer calibration sketches for Processing and Matlab (Paul Bouchier)
  • Setting default USB port to /dev/ttyUSB0 in all files
  • Adding graceful exit in case USB port not found
  • Adding queue_size=1
  • Fixing x linear accelerations sign

1.0.3 (02-11-2014)

  • Moving all file one directory up
  • Changing axis orientation in 3D visualization to be in line with REP 103
  • Additional output of linear accelerationa and angular velocity in 3D visualization
  • Adding units of measurement to 3D visualization
  • Major graphical improvements to the 3D visualization
  • Adding explanation on different launch files

1.0.2 (31-10-2014)

  • Adding valid covariances (Paul Bouchier)
  • Fixing incorrect direction of yaw & pitch orientation (Paul Bouchier)
  • Fix Readme references & instructions (Paul Bouchier)
  • Converting acceleration to m/s^2 (Paul Bouchier)
  • Adapting to new output message YPRAG instead of YPRAMG (Paul Bouchier)
  • Updating package.xml links to ahrs site (Paul Bouchier)
  • Upgrading Arduino package to 1.4.2 from Peter Bartz\' site (Paul Bouchier)
  • Fixing link to Peter Bartz\' site (Paul Bouchier)
  • Documenting #ox output mode (Paul Bouchier)
  • Renaming new mode #define to better reflect what it does (Paul Bouchier)
  • Adding #ox output mode back into Peter\'s code (Paul Bouchier)

1.0.1 (15-03-2014)

  • Cleaning up code based on catkin_lint report
  • Creating additional launch files for display/publishing
  • Implementing flush of first IMU results
  • Changing default port, and adding output showing which port was selected
  • Removing obsolete roslib import and roslib.load_manifest

1.0.0 (29-12-2013)

  • First catkinized version

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged razor_imu_9dof at answers.ros.org