![]() |
sbg_driver package from sbg_driver reposbg_driver |
|
Package Summary
Tags | No category tags. |
Version | 3.1.1 |
License | MIT |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/SBG-Systems/sbg_ros_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2022-08-29 |
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
Additional Links
Maintainers
- SBG Systems
Authors
- SBG Systems
sbg_driver
Overview
ROS package for SBG Systems IMU.
The driver allows the user to configure the IMU (if possible, according to the device), to receive messages from the Sbg message protocol, publish ROS standard messages , and to calibrate the magnetometers.
Initial work has been done by ENSTA Bretagne.
Author : SBG Systems
Maintainer : SBG Systems, support@sbg-systems.com
Installation
Installation from Packages
User can install the sbg_ros_driver through the standard ROS installation system.
- Melodic
sudo apt-get install ros-melodic-sbg-driver
* Noeticsudo apt-get install ros-noetic-sbg-driver
Building from sources
Dependencies
- Robot Operating System (ROS)
- SBG communication protocol sbgECom, v1.11.920-stable (full compatible with firmwares from 1.7.x).
Building
- Clone the repository (use a Release version)
- Build using the normal ROS catkin build system
cd catkin_ws/src
git clone https://github.com/SBG-Systems/sbg_ros_driver.git
cd ../
catkin_make
Usage
To run the default Ros node with the default configuration
roslaunch sbg_driver sbg_device.launch
To run the magnetic calibration node
roslaunch sbg_driver sbg_device_mag_calibration.launch
Config files
Default config files
Every configuration file is defined according to the same structure.
-
sbg_device_uart_default.yaml
This config file is the default one for Uart connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
-
sbg_device_udp_default.yaml
This config file is the default one for an Udp connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
Example config files
ellipse_A_default.yaml
Default config file for an Ellipse-A.ellipse_E_default.yaml
Default config file for an Ellipse-E with an external antenna and external Gnss.ellipse_N_default.yaml
Default config file for an Ellipse-N with an external antenna and internal Gnss.ellipse_D_default.yaml
Default config file for an Ellipse-D.
Launch files
Default launch files
sbg_device.launch
Launch the sbg_device node to handle the receivde data, and load thesbg_device_uart_default.yaml
configuration.sbg_device_mag_calibration.launch
Launch the sbg_device_mag node to calibrate the magnetometers, and load theellipse_E_default.yaml
configuration.
Nodes
sbg_device
The sbg_device node handles the communication with the connected device, and publishes the SBG output to the Ros environment.
Published Topics
SBG specific topics
-
/sbg/status
sbg_driver/SbgStatus
Provides informations about the general status (Communication, Aiding, etc..).
-
/sbg/utc_time
sbg_driver/SbgUtcTime
Provides UTC time reference.
-
/sbg/imu_data
sbg_driver/SbgImuData
IMU status, and sensors values.
-
/sbg/ekf_euler
sbg_driver/SbgEkfEuler
Computed orientation using Euler angles.
-
/sbg/ekf_quat
sbg_driver/SbgEkfQuat
Computed orientation using Quaternion.
-
/sbg/ekf_nav
sbg_driver/SbgEkfNav
Computed navigation data.
-
/sbg/mag
sbg_driver/SbgMag
Magnetic data.
-
/sbg/mag_calib
sbg_driver/SbgMagCalib
Magnetometer calibration data.
-
/sbg/ship_motion
sbg_driver/SbgShipMotion
Heave, surge and sway data.
-
/sbg/gps_vel
sbg_driver/SbgGpsVel
GPS velocities from GPS receiver.
-
/sbg/gps_pos
sbg_driver/SbgGpsPos
GPS positions from GPS receiver.
-
/sbg/gps_hdt
sbg_driver/SbgGpsHdt
GPS true heading from dual antenna system.
-
/sbg/gps_raw
sbg_driver/SbgGpsRaw
GPS raw data for post processing.
-
/sbg/odo_vel
sbg_driver/SbgOdoVel
Odometer velocity.
-
/sbg/event[ABCDE]
sbg_driver/SbgEvent
Event on sync in the corresponding pin.
-
/sbg/pressure
sbg_driver/SbgPressure
Pressure data.
ROS standard topics
In order to define ROS standard topics, it requires sometimes several SBG messages, to be merged. For each ROS standard, you have to activate the needed SBG outputs.
-
/imu/data
sensor_msgs/Imu
IMU data.
Requires /sbg/imu_data
and /sbg/ekf_quat
.
-
/imu/temp
sensor_msgs/Temperature
IMU temperature data.
Requires /sbg/imu_data
.
-
/imu/velocity
geometry_msgs/TwistStamped
IMU velocity data.
Requires /sbg/imu_data
and /sbg/ekf_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
-
/imu/mag
sensor_msgs/MagneticField
IMU magnetic field.
Requires /sbg/mag
.
-
/imu/pres
sensor_msgs/FluidPressure
IMU pressure data.
Requires /sbg/pressure
.
-
/imu/pos_ecef
geometry_msgs/PointStamped
Earth-Centered Earth-Fixed position.
Requires /sbg/ekf_nav
.
-
/imu/utc_ref
sensor_msgs/TimeReference
UTC time reference.
Requires /sbg/utc_time
.
-
/imu/nav_sat_fix
sensor_msgs/NavSatFix
Navigation satellite fix for any Global Navigation Satellite System.
Requires /sbg/gps_pos
.
-
/imu/odometry
nav_msgs/Odometry
UTM projected position relative to the first valid INS position.
Requires /sbg/imu_data
and /sbg/ekv_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
Disabled by default, set odometry.enable in configuration file.
sbg_device_mag
The sbg_device_mag node handles the magnetic calibration for suitable devices.
Services
-
/sbg/mag_calibration
std_srvs/Trigger
Service to start/stop the magnetic calibration.
-
/sbg/mag_calibration_save
std_srvs/Trigger
Service to save the magnetic calibration to the connected device.
How To
Configure the SBG device
The SBG Ros driver allows the user to configure the device before starting the data handling.
To do so, set the corresponding parameter in the used config file.
# Configuration of the device with ROS.
confWithRos: true
Then, modify the desired parameters in the config file, using the SBG Firmware Manual, to see which features are configurable, and which parameter values are available.
Calibrate the magnetometers
Ellipse-A/E/N use magnemoter to provide heading. A calibration is then required to compensate soft and hard iron distortions due to the environmenent (motors, batteries, ...). The magnetic calibration procedure should be held in a non magnetic area (outside of buildings).
roslaunch sbg_driver sbg_device_mag_calibration.launch
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration process started."
Proceed rotations of the IMU (every orientation if possible).
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration is finished. See the output console to get calibration informations."
If the magnetic calibration is satisfaying (Quality, Confidence), it could be uploaded/saved to the device.
rosservice call /sbg/mag_calibration_save
success: True
message: "Magnetometer calibration has been uploaded to the device."
Enable communication with the SBG device
To be able to communicate with the device, be sure that your user is part of the dialout group.
Once added, restart your machine to save and apply the changes.
sudo adduser $USER dialout
Create udev rules
Udev rules can be defined for communication port, in order to avoid modifying the port in configuration if it has changed. Udev documentation
A symlink can be configured and defined to uniquely identify the connected device.
Once it is done, configuration file could be updated portName: "/dev/sbg"
.
See the docs folder, to see an example of rules with the corresponding screenshot using the udev functions.
Time source & reference
ROS uses an internal system time to time stamp messages. This time stamp is generally gathered when the message is processed and published. As a result, the message is not time stamped accurately due to transmission and processing delays.
SBG Systems INS however provides a very accurate timing based on GNSS time if available. The following conditions have to be met to get absolute accurate timing information: * The ELLIPSE-N or D should have a connected GNSS antenna with internal GNSS enabled * The ELLIPSE-E should be connected to an external GNSS receiver with a PPS signal * A valid GNSS position has to be available to get UTC data * The ELLIPSE internal clock should be aligned to PPS signal (clock status) * The ELLIPSE should be setup to send SBG_ECOM_LOG_UTC message
You can select which time source to use with the parameter time_reference
to time stamp messages published by this driver:
* ros
: The header.stamp member contains the current ROS system time when the message has been processed.
* ins_unix
: The header.stamp member contains an absolute and accurate time referenced to UNIX epoch (00:00:00 UTC on 1 January 1970)
Configuration example to use an absolute and accurate time reference to UNIX epoch:
# Time reference:
time_reference: "ins_unix"
Change frame parameters
Frame ID
The frame_id of the header can be set with this parameter:
# Frame convention
frame_id: "imu_link_ned"
Frame convention
The frame convention can be set to NED or ENU * In NED convention axises are the same as device axises. * In ENU convention (x = X, y = -Y, z = -Z).
# Frame convention:
use_enu: true
Troubleshooting
If you experience higher latency than expected and have connected the IMU via an USB interface, you can enable the serial driver low latency mode:
/bin/setserial /dev/<device> low_latency
Contributing
Bugs and issues
Please report bugs and/or issues using the Issue Tracker
Features requests or additions
In order to contribute to the code, please use Pull requests to the devel
branch.
If you have some feature requests, use the Issue Tracker as well.
Changelog for package sbg_driver
3.1.1 (2021-10-15)
- fix missing dependencies and build status link
- missing dep on nav_msgs, tf2_geometry_msgs, tf2_ros and tf2_msgs
- fix build status link in readme
- update doc with odometry message
- Contributors: Michael Zemb
3.1.0 (2021-10-06)
- Feature #44 - odometry output
- fix #66 - status description for SbgGpsHdt msg
- fix #66 - missing heading and pitch accuracies in sbgGpsHdt msg
- add ellipse D default configuration
- update README
- Contributors: Michael Zemb
3.0.0 (2021-08-31)
- Merge pull request #62 from SBG-Systems/devel Devel
- Merge pull request #61 from SBG-Systems/fix-frame-convention Fix frame convention errors
- Make sure only delta angles/velocities are used
- syntax fixes
- Improved comments & README file
- Fix missing checks on UTC / Unix time computation
- Updated sbgECom messages definitions
- Update README.md and releasePackage.md
- Clean up readme
- Fix position accuracy
- Replace pow by multiplication
- Complete README.md
- Fix bugs in message wrapper and complete message definitions
- Fix Z GPS velocity
- Fix frame convention errors
- Merge pull request #59 from SBG-Systems/fix-frame-id Fix param name
- Fix param name
- Fix inconsistent tab and spaces usages. Now all files are using spaces
- Add wrap 2PI
- Fix bugs
- Fix matrix accuracy
- Fix course
- wrapper: Fix ENU->NED for GPS messages
- warpper: Change createrVector3 names
- wrapper: Fix setter
- wrapper: Fix missing ENU conversion an add comment for cov
- wrapper: Fix regresion
- coding style : Remove tables
- publisher: Configure the wrapper before init the publisher
- main: Fix loopFrequency type
- config: Restore output configuration
- config: Replace enu by use_enu
- enu: Replace enu by use_enu and rename frame convertion function
- frame_id: Change default value
- clean up
- #51 - Correctly fill convariances parameters
- project: Update maintainer
- config: Update parameters
- #45-#50 - Add parameters to set frame ID and ENU convention
- #48 - # 52 Add a parameter to select header stamp source and read ROS time when publishing the message
- #47 Remove node ros::Rate period auto computation and only read it from a node parameter
- clean up: Remove blank spaces
- Merge pull request #35 from ShepelIlya/patch-1 Fixed time_stamp value initializing in SbgEkfNavMessage.
- Added/updated license to MIT
- Updated maintainer
- Fixed timeStamp value initializing in SbgEkfNavMessage.
- Contributors: Michael Zemb, Raphael Siryani, ShepelIlya, bsaussay, rsiryani
2.0.3 (2020-04-01)
- Improve matrix handling
- Fix body velocity computation (Issue #31)
2.0.1 (2020-01-24)
- Improve vector handling
- Fix include file (Issue #26)
2.0.0 (2020-01-06)
- Fix integer type
- Update sbgECom messages (AirData, ImuShort)
- Update sbgECom library to 1.11.920-stable
- Improve numeric type
- Improve configuration applier
- Improve error handling
- Code improvement
- Improve device configuration
- Update changelog
- Update and improve README.md
- Update magnetic services
- Improve message timestamping
- Add some ROS standard sensor messages (Issue #17)
- Comply file structure to ROS best pratices
- Add a processing time to improve message handling
- Add udev rules to documentation (Issue #21)
- Improve magnetometers calibration
- Update maintainer of the package (Issue #20)
- Enable/Disable the configuration of the device (Issue #19)
- Define unified class and launch files for all SBG devices
- Define classes for device configuration
- Merge pull request #18 from SBG-Systems/messagePublisherRework
- Integrate new message publisher to the Ellipse class (Issue #15)
- Define a class to publish messages
- Define class to wrap SBG logs to Ros messages
- Merge pull request #16 from SBG-Systems/v4.3
- [src] Update SDK version + add LogE support
- Merge pull request #13 from nicolaje/remove-non-ascii-char
- [conf] Removed non-ASCII characters, (Issue #8)
- [msg] Remove non ascii characters
1.1.7 (2018-07-19)
- [src] Change SbgEkfEuler comments
- [src] Move .h to include folder + test new method for time saving in calib
1.1.6 (2018-03-18)
- [config, src] Update default port for gps aiding (Ellipse-E) + add save & reboot for mag calibration
- [build] Add include for debian jessie arm64 build issue
1.1.5 (2018-03-12 23:49)
- [src] Update mag calibration
1.1.4 (2018-03-12 23:10)
- [catkin] Update install launch & config
- [src] Update library + Correction bugs
1.1.3 (2018-03-12 11:46)
- Update dependencies to std_srvs
1.1.2 (2018-03-12 09:54)
- [ChangeLog] Remove
- [ChangeLog] Update
- [Changelog] Test
- [test] Changelog
- [Changelog] Update
- [CMake] Correction of message dependency
1.1.1 (2018-03-11)
- [xml] Update version number
- [src] Correction of small bugs + add publisher only on activated log
- [merge] Finalize merge from devel branch (master divergence issue)
- [lib] Update the library sbgECom version after merging from devel
- [Merge]
- Merge branch \'master\' of https://github.com/ENSTABretagneRobotics/sbg_ros_driver
- [src] Update doc
- [src] Update magnetic calibration node
- Revert \"1.0.7\" This reverts commit 8f57f9e578937ac23383e39ebf616d1039384b09.
- Update README
- Merge pull request #2 from rpng/master Upgrade sbg_ros_driver
- Moved the logging function into the class
- Added - Start of heading code
- Refactor and added new publishers
- Increased rates
- refactoring use a class for callbacks changed callbacks around a bit, now shows raw data rather than ekf logs
- use gps log message for NavSatFix message
- add extra debug messages
- use private namespace
- modified launch file moved to launch folder and added optional arguments
- updated sbgECom library
1.1.0 (2018-03-10)
- [src] Update Events
- [src] Add params
- [src] Update (add configuration of the ellipse)
- [src] Update messages
- [src] Start creating sbg messages
1.0.7 (2017-04-01)
- [src][minor] Correct launch file
1.0.6 (2017-03-31)
- CHANGELOG
- [src] Add launch example
- [src] Change imu data & add gyroscopes
1.0.5 (2016-11-17 00:04)
1.0.4 (2016-11-17 00:02)
1.0.3 (2016-11-16 23:59)
- [src][minor] Correction of Project name in CmakeList
1.0.2 (2016-11-16 22:58)
- [doc] minor
- [doc] Update Package
1.0.1 (2016-11-16 22:30)
- [doc] Update package version to 1.0.0
- [doc] Add Changelog
- [src] Update of deprecated function
- [src] Update (correcting cmake sub project)
- [src] Correct cmake subdirectory issue
- Initial commit
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
2 | roscpp | |
2 | sensor_msgs | |
2 | std_msgs | |
3 | std_srvs | |
2 | geometry_msgs | |
1 | message_generation | |
2 | nav_msgs | |
3 | tf2_ros | |
3 | tf2_msgs | |
3 | tf2_geometry_msgs | |
1 | catkin | |
1 | message_runtime |
System Dependencies
Dependant Packages
Launch files
Messages
- msg/SbgEkfQuat.msg
- msg/SbgStatusCom.msg
- msg/SbgGpsVel.msg
- msg/SbgMag.msg
- msg/SbgShipMotionStatus.msg
- msg/SbgImuData.msg
- msg/SbgUtcTimeStatus.msg
- msg/SbgShipMotion.msg
- msg/SbgGpsPosStatus.msg
- msg/SbgImuStatus.msg
- msg/SbgStatus.msg
- msg/SbgStatusAiding.msg
- msg/SbgUtcTime.msg
- msg/SbgAirDataStatus.msg
- msg/SbgEkfNav.msg
- msg/SbgEkfEuler.msg
- msg/SbgMagCalib.msg
- msg/SbgGpsRaw.msg
- msg/SbgGpsHdt.msg
- msg/SbgEkfStatus.msg
- msg/SbgStatusGeneral.msg
- msg/SbgGpsPos.msg
- msg/SbgAirData.msg
- msg/SbgMagStatus.msg
- msg/SbgOdoVel.msg
- msg/SbgImuShort.msg
- msg/SbgGpsVelStatus.msg
- msg/SbgEvent.msg
Services
Plugins
Recent questions tagged sbg_driver at answers.ros.org
![]() |
sbg_driver package from sbg_driver reposbg_driver |
|
Package Summary
Tags | No category tags. |
Version | 3.1.1 |
License | MIT |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/SBG-Systems/sbg_ros_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2022-08-29 |
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
Additional Links
Maintainers
- SBG Systems
Authors
- SBG Systems
sbg_driver
Overview
ROS package for SBG Systems IMU.
The driver allows the user to configure the IMU (if possible, according to the device), to receive messages from the Sbg message protocol, publish ROS standard messages , and to calibrate the magnetometers.
Initial work has been done by ENSTA Bretagne.
Author : SBG Systems
Maintainer : SBG Systems, support@sbg-systems.com
Installation
Installation from Packages
User can install the sbg_ros_driver through the standard ROS installation system.
- Melodic
sudo apt-get install ros-melodic-sbg-driver
* Noeticsudo apt-get install ros-noetic-sbg-driver
Building from sources
Dependencies
- Robot Operating System (ROS)
- SBG communication protocol sbgECom, v1.11.920-stable (full compatible with firmwares from 1.7.x).
Building
- Clone the repository (use a Release version)
- Build using the normal ROS catkin build system
cd catkin_ws/src
git clone https://github.com/SBG-Systems/sbg_ros_driver.git
cd ../
catkin_make
Usage
To run the default Ros node with the default configuration
roslaunch sbg_driver sbg_device.launch
To run the magnetic calibration node
roslaunch sbg_driver sbg_device_mag_calibration.launch
Config files
Default config files
Every configuration file is defined according to the same structure.
-
sbg_device_uart_default.yaml
This config file is the default one for Uart connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
-
sbg_device_udp_default.yaml
This config file is the default one for an Udp connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
Example config files
ellipse_A_default.yaml
Default config file for an Ellipse-A.ellipse_E_default.yaml
Default config file for an Ellipse-E with an external antenna and external Gnss.ellipse_N_default.yaml
Default config file for an Ellipse-N with an external antenna and internal Gnss.ellipse_D_default.yaml
Default config file for an Ellipse-D.
Launch files
Default launch files
sbg_device.launch
Launch the sbg_device node to handle the receivde data, and load thesbg_device_uart_default.yaml
configuration.sbg_device_mag_calibration.launch
Launch the sbg_device_mag node to calibrate the magnetometers, and load theellipse_E_default.yaml
configuration.
Nodes
sbg_device
The sbg_device node handles the communication with the connected device, and publishes the SBG output to the Ros environment.
Published Topics
SBG specific topics
-
/sbg/status
sbg_driver/SbgStatus
Provides informations about the general status (Communication, Aiding, etc..).
-
/sbg/utc_time
sbg_driver/SbgUtcTime
Provides UTC time reference.
-
/sbg/imu_data
sbg_driver/SbgImuData
IMU status, and sensors values.
-
/sbg/ekf_euler
sbg_driver/SbgEkfEuler
Computed orientation using Euler angles.
-
/sbg/ekf_quat
sbg_driver/SbgEkfQuat
Computed orientation using Quaternion.
-
/sbg/ekf_nav
sbg_driver/SbgEkfNav
Computed navigation data.
-
/sbg/mag
sbg_driver/SbgMag
Magnetic data.
-
/sbg/mag_calib
sbg_driver/SbgMagCalib
Magnetometer calibration data.
-
/sbg/ship_motion
sbg_driver/SbgShipMotion
Heave, surge and sway data.
-
/sbg/gps_vel
sbg_driver/SbgGpsVel
GPS velocities from GPS receiver.
-
/sbg/gps_pos
sbg_driver/SbgGpsPos
GPS positions from GPS receiver.
-
/sbg/gps_hdt
sbg_driver/SbgGpsHdt
GPS true heading from dual antenna system.
-
/sbg/gps_raw
sbg_driver/SbgGpsRaw
GPS raw data for post processing.
-
/sbg/odo_vel
sbg_driver/SbgOdoVel
Odometer velocity.
-
/sbg/event[ABCDE]
sbg_driver/SbgEvent
Event on sync in the corresponding pin.
-
/sbg/pressure
sbg_driver/SbgPressure
Pressure data.
ROS standard topics
In order to define ROS standard topics, it requires sometimes several SBG messages, to be merged. For each ROS standard, you have to activate the needed SBG outputs.
-
/imu/data
sensor_msgs/Imu
IMU data.
Requires /sbg/imu_data
and /sbg/ekf_quat
.
-
/imu/temp
sensor_msgs/Temperature
IMU temperature data.
Requires /sbg/imu_data
.
-
/imu/velocity
geometry_msgs/TwistStamped
IMU velocity data.
Requires /sbg/imu_data
and /sbg/ekf_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
-
/imu/mag
sensor_msgs/MagneticField
IMU magnetic field.
Requires /sbg/mag
.
-
/imu/pres
sensor_msgs/FluidPressure
IMU pressure data.
Requires /sbg/pressure
.
-
/imu/pos_ecef
geometry_msgs/PointStamped
Earth-Centered Earth-Fixed position.
Requires /sbg/ekf_nav
.
-
/imu/utc_ref
sensor_msgs/TimeReference
UTC time reference.
Requires /sbg/utc_time
.
-
/imu/nav_sat_fix
sensor_msgs/NavSatFix
Navigation satellite fix for any Global Navigation Satellite System.
Requires /sbg/gps_pos
.
-
/imu/odometry
nav_msgs/Odometry
UTM projected position relative to the first valid INS position.
Requires /sbg/imu_data
and /sbg/ekv_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
Disabled by default, set odometry.enable in configuration file.
sbg_device_mag
The sbg_device_mag node handles the magnetic calibration for suitable devices.
Services
-
/sbg/mag_calibration
std_srvs/Trigger
Service to start/stop the magnetic calibration.
-
/sbg/mag_calibration_save
std_srvs/Trigger
Service to save the magnetic calibration to the connected device.
How To
Configure the SBG device
The SBG Ros driver allows the user to configure the device before starting the data handling.
To do so, set the corresponding parameter in the used config file.
# Configuration of the device with ROS.
confWithRos: true
Then, modify the desired parameters in the config file, using the SBG Firmware Manual, to see which features are configurable, and which parameter values are available.
Calibrate the magnetometers
Ellipse-A/E/N use magnemoter to provide heading. A calibration is then required to compensate soft and hard iron distortions due to the environmenent (motors, batteries, ...). The magnetic calibration procedure should be held in a non magnetic area (outside of buildings).
roslaunch sbg_driver sbg_device_mag_calibration.launch
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration process started."
Proceed rotations of the IMU (every orientation if possible).
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration is finished. See the output console to get calibration informations."
If the magnetic calibration is satisfaying (Quality, Confidence), it could be uploaded/saved to the device.
rosservice call /sbg/mag_calibration_save
success: True
message: "Magnetometer calibration has been uploaded to the device."
Enable communication with the SBG device
To be able to communicate with the device, be sure that your user is part of the dialout group.
Once added, restart your machine to save and apply the changes.
sudo adduser $USER dialout
Create udev rules
Udev rules can be defined for communication port, in order to avoid modifying the port in configuration if it has changed. Udev documentation
A symlink can be configured and defined to uniquely identify the connected device.
Once it is done, configuration file could be updated portName: "/dev/sbg"
.
See the docs folder, to see an example of rules with the corresponding screenshot using the udev functions.
Time source & reference
ROS uses an internal system time to time stamp messages. This time stamp is generally gathered when the message is processed and published. As a result, the message is not time stamped accurately due to transmission and processing delays.
SBG Systems INS however provides a very accurate timing based on GNSS time if available. The following conditions have to be met to get absolute accurate timing information: * The ELLIPSE-N or D should have a connected GNSS antenna with internal GNSS enabled * The ELLIPSE-E should be connected to an external GNSS receiver with a PPS signal * A valid GNSS position has to be available to get UTC data * The ELLIPSE internal clock should be aligned to PPS signal (clock status) * The ELLIPSE should be setup to send SBG_ECOM_LOG_UTC message
You can select which time source to use with the parameter time_reference
to time stamp messages published by this driver:
* ros
: The header.stamp member contains the current ROS system time when the message has been processed.
* ins_unix
: The header.stamp member contains an absolute and accurate time referenced to UNIX epoch (00:00:00 UTC on 1 January 1970)
Configuration example to use an absolute and accurate time reference to UNIX epoch:
# Time reference:
time_reference: "ins_unix"
Change frame parameters
Frame ID
The frame_id of the header can be set with this parameter:
# Frame convention
frame_id: "imu_link_ned"
Frame convention
The frame convention can be set to NED or ENU * In NED convention axises are the same as device axises. * In ENU convention (x = X, y = -Y, z = -Z).
# Frame convention:
use_enu: true
Troubleshooting
If you experience higher latency than expected and have connected the IMU via an USB interface, you can enable the serial driver low latency mode:
/bin/setserial /dev/<device> low_latency
Contributing
Bugs and issues
Please report bugs and/or issues using the Issue Tracker
Features requests or additions
In order to contribute to the code, please use Pull requests to the devel
branch.
If you have some feature requests, use the Issue Tracker as well.
Changelog for package sbg_driver
3.1.1 (2021-10-15)
- fix missing dependencies and build status link
- missing dep on nav_msgs, tf2_geometry_msgs, tf2_ros and tf2_msgs
- fix build status link in readme
- update doc with odometry message
- Contributors: Michael Zemb
3.1.0 (2021-10-06)
- Feature #44 - odometry output
- fix #66 - status description for SbgGpsHdt msg
- fix #66 - missing heading and pitch accuracies in sbgGpsHdt msg
- add ellipse D default configuration
- update README
- Contributors: Michael Zemb
3.0.0 (2021-08-31)
- Merge pull request #62 from SBG-Systems/devel Devel
- Merge pull request #61 from SBG-Systems/fix-frame-convention Fix frame convention errors
- Make sure only delta angles/velocities are used
- syntax fixes
- Improved comments & README file
- Fix missing checks on UTC / Unix time computation
- Updated sbgECom messages definitions
- Update README.md and releasePackage.md
- Clean up readme
- Fix position accuracy
- Replace pow by multiplication
- Complete README.md
- Fix bugs in message wrapper and complete message definitions
- Fix Z GPS velocity
- Fix frame convention errors
- Merge pull request #59 from SBG-Systems/fix-frame-id Fix param name
- Fix param name
- Fix inconsistent tab and spaces usages. Now all files are using spaces
- Add wrap 2PI
- Fix bugs
- Fix matrix accuracy
- Fix course
- wrapper: Fix ENU->NED for GPS messages
- warpper: Change createrVector3 names
- wrapper: Fix setter
- wrapper: Fix missing ENU conversion an add comment for cov
- wrapper: Fix regresion
- coding style : Remove tables
- publisher: Configure the wrapper before init the publisher
- main: Fix loopFrequency type
- config: Restore output configuration
- config: Replace enu by use_enu
- enu: Replace enu by use_enu and rename frame convertion function
- frame_id: Change default value
- clean up
- #51 - Correctly fill convariances parameters
- project: Update maintainer
- config: Update parameters
- #45-#50 - Add parameters to set frame ID and ENU convention
- #48 - # 52 Add a parameter to select header stamp source and read ROS time when publishing the message
- #47 Remove node ros::Rate period auto computation and only read it from a node parameter
- clean up: Remove blank spaces
- Merge pull request #35 from ShepelIlya/patch-1 Fixed time_stamp value initializing in SbgEkfNavMessage.
- Added/updated license to MIT
- Updated maintainer
- Fixed timeStamp value initializing in SbgEkfNavMessage.
- Contributors: Michael Zemb, Raphael Siryani, ShepelIlya, bsaussay, rsiryani
2.0.3 (2020-04-01)
- Improve matrix handling
- Fix body velocity computation (Issue #31)
2.0.1 (2020-01-24)
- Improve vector handling
- Fix include file (Issue #26)
2.0.0 (2020-01-06)
- Fix integer type
- Update sbgECom messages (AirData, ImuShort)
- Update sbgECom library to 1.11.920-stable
- Improve numeric type
- Improve configuration applier
- Improve error handling
- Code improvement
- Improve device configuration
- Update changelog
- Update and improve README.md
- Update magnetic services
- Improve message timestamping
- Add some ROS standard sensor messages (Issue #17)
- Comply file structure to ROS best pratices
- Add a processing time to improve message handling
- Add udev rules to documentation (Issue #21)
- Improve magnetometers calibration
- Update maintainer of the package (Issue #20)
- Enable/Disable the configuration of the device (Issue #19)
- Define unified class and launch files for all SBG devices
- Define classes for device configuration
- Merge pull request #18 from SBG-Systems/messagePublisherRework
- Integrate new message publisher to the Ellipse class (Issue #15)
- Define a class to publish messages
- Define class to wrap SBG logs to Ros messages
- Merge pull request #16 from SBG-Systems/v4.3
- [src] Update SDK version + add LogE support
- Merge pull request #13 from nicolaje/remove-non-ascii-char
- [conf] Removed non-ASCII characters, (Issue #8)
- [msg] Remove non ascii characters
1.1.7 (2018-07-19)
- [src] Change SbgEkfEuler comments
- [src] Move .h to include folder + test new method for time saving in calib
1.1.6 (2018-03-18)
- [config, src] Update default port for gps aiding (Ellipse-E) + add save & reboot for mag calibration
- [build] Add include for debian jessie arm64 build issue
1.1.5 (2018-03-12 23:49)
- [src] Update mag calibration
1.1.4 (2018-03-12 23:10)
- [catkin] Update install launch & config
- [src] Update library + Correction bugs
1.1.3 (2018-03-12 11:46)
- Update dependencies to std_srvs
1.1.2 (2018-03-12 09:54)
- [ChangeLog] Remove
- [ChangeLog] Update
- [Changelog] Test
- [test] Changelog
- [Changelog] Update
- [CMake] Correction of message dependency
1.1.1 (2018-03-11)
- [xml] Update version number
- [src] Correction of small bugs + add publisher only on activated log
- [merge] Finalize merge from devel branch (master divergence issue)
- [lib] Update the library sbgECom version after merging from devel
- [Merge]
- Merge branch \'master\' of https://github.com/ENSTABretagneRobotics/sbg_ros_driver
- [src] Update doc
- [src] Update magnetic calibration node
- Revert \"1.0.7\" This reverts commit 8f57f9e578937ac23383e39ebf616d1039384b09.
- Update README
- Merge pull request #2 from rpng/master Upgrade sbg_ros_driver
- Moved the logging function into the class
- Added - Start of heading code
- Refactor and added new publishers
- Increased rates
- refactoring use a class for callbacks changed callbacks around a bit, now shows raw data rather than ekf logs
- use gps log message for NavSatFix message
- add extra debug messages
- use private namespace
- modified launch file moved to launch folder and added optional arguments
- updated sbgECom library
1.1.0 (2018-03-10)
- [src] Update Events
- [src] Add params
- [src] Update (add configuration of the ellipse)
- [src] Update messages
- [src] Start creating sbg messages
1.0.7 (2017-04-01)
- [src][minor] Correct launch file
1.0.6 (2017-03-31)
- CHANGELOG
- [src] Add launch example
- [src] Change imu data & add gyroscopes
1.0.5 (2016-11-17 00:04)
1.0.4 (2016-11-17 00:02)
1.0.3 (2016-11-16 23:59)
- [src][minor] Correction of Project name in CmakeList
1.0.2 (2016-11-16 22:58)
- [doc] minor
- [doc] Update Package
1.0.1 (2016-11-16 22:30)
- [doc] Update package version to 1.0.0
- [doc] Add Changelog
- [src] Update of deprecated function
- [src] Update (correcting cmake sub project)
- [src] Correct cmake subdirectory issue
- Initial commit
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
2 | roscpp | |
2 | sensor_msgs | |
2 | std_msgs | |
3 | std_srvs | |
2 | geometry_msgs | |
1 | message_generation | |
2 | nav_msgs | |
3 | tf2_ros | |
3 | tf2_msgs | |
3 | tf2_geometry_msgs | |
1 | catkin | |
1 | message_runtime |
System Dependencies
Dependant Packages
Launch files
Messages
- msg/SbgEkfQuat.msg
- msg/SbgStatusCom.msg
- msg/SbgGpsVel.msg
- msg/SbgMag.msg
- msg/SbgShipMotionStatus.msg
- msg/SbgImuData.msg
- msg/SbgUtcTimeStatus.msg
- msg/SbgShipMotion.msg
- msg/SbgGpsPosStatus.msg
- msg/SbgImuStatus.msg
- msg/SbgStatus.msg
- msg/SbgStatusAiding.msg
- msg/SbgUtcTime.msg
- msg/SbgAirDataStatus.msg
- msg/SbgEkfNav.msg
- msg/SbgEkfEuler.msg
- msg/SbgMagCalib.msg
- msg/SbgGpsRaw.msg
- msg/SbgGpsHdt.msg
- msg/SbgEkfStatus.msg
- msg/SbgStatusGeneral.msg
- msg/SbgGpsPos.msg
- msg/SbgAirData.msg
- msg/SbgMagStatus.msg
- msg/SbgOdoVel.msg
- msg/SbgImuShort.msg
- msg/SbgGpsVelStatus.msg
- msg/SbgEvent.msg
Services
Plugins
Recent questions tagged sbg_driver at answers.ros.org
![]() |
sbg_driver package from sbg_driver reposbg_driver |
|
Package Summary
Tags | No category tags. |
Version | 3.1.1 |
License | MIT |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/SBG-Systems/sbg_ros_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2022-08-29 |
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
Additional Links
Maintainers
- SBG Systems
Authors
- SBG Systems
sbg_driver
Overview
ROS package for SBG Systems IMU.
The driver allows the user to configure the IMU (if possible, according to the device), to receive messages from the Sbg message protocol, publish ROS standard messages , and to calibrate the magnetometers.
Initial work has been done by ENSTA Bretagne.
Author : SBG Systems
Maintainer : SBG Systems, support@sbg-systems.com
Installation
Installation from Packages
User can install the sbg_ros_driver through the standard ROS installation system.
- Melodic
sudo apt-get install ros-melodic-sbg-driver
* Noeticsudo apt-get install ros-noetic-sbg-driver
Building from sources
Dependencies
- Robot Operating System (ROS)
- SBG communication protocol sbgECom, v1.11.920-stable (full compatible with firmwares from 1.7.x).
Building
- Clone the repository (use a Release version)
- Build using the normal ROS catkin build system
cd catkin_ws/src
git clone https://github.com/SBG-Systems/sbg_ros_driver.git
cd ../
catkin_make
Usage
To run the default Ros node with the default configuration
roslaunch sbg_driver sbg_device.launch
To run the magnetic calibration node
roslaunch sbg_driver sbg_device_mag_calibration.launch
Config files
Default config files
Every configuration file is defined according to the same structure.
-
sbg_device_uart_default.yaml
This config file is the default one for Uart connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
-
sbg_device_udp_default.yaml
This config file is the default one for an Udp connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
Example config files
ellipse_A_default.yaml
Default config file for an Ellipse-A.ellipse_E_default.yaml
Default config file for an Ellipse-E with an external antenna and external Gnss.ellipse_N_default.yaml
Default config file for an Ellipse-N with an external antenna and internal Gnss.ellipse_D_default.yaml
Default config file for an Ellipse-D.
Launch files
Default launch files
sbg_device.launch
Launch the sbg_device node to handle the receivde data, and load thesbg_device_uart_default.yaml
configuration.sbg_device_mag_calibration.launch
Launch the sbg_device_mag node to calibrate the magnetometers, and load theellipse_E_default.yaml
configuration.
Nodes
sbg_device
The sbg_device node handles the communication with the connected device, and publishes the SBG output to the Ros environment.
Published Topics
SBG specific topics
-
/sbg/status
sbg_driver/SbgStatus
Provides informations about the general status (Communication, Aiding, etc..).
-
/sbg/utc_time
sbg_driver/SbgUtcTime
Provides UTC time reference.
-
/sbg/imu_data
sbg_driver/SbgImuData
IMU status, and sensors values.
-
/sbg/ekf_euler
sbg_driver/SbgEkfEuler
Computed orientation using Euler angles.
-
/sbg/ekf_quat
sbg_driver/SbgEkfQuat
Computed orientation using Quaternion.
-
/sbg/ekf_nav
sbg_driver/SbgEkfNav
Computed navigation data.
-
/sbg/mag
sbg_driver/SbgMag
Magnetic data.
-
/sbg/mag_calib
sbg_driver/SbgMagCalib
Magnetometer calibration data.
-
/sbg/ship_motion
sbg_driver/SbgShipMotion
Heave, surge and sway data.
-
/sbg/gps_vel
sbg_driver/SbgGpsVel
GPS velocities from GPS receiver.
-
/sbg/gps_pos
sbg_driver/SbgGpsPos
GPS positions from GPS receiver.
-
/sbg/gps_hdt
sbg_driver/SbgGpsHdt
GPS true heading from dual antenna system.
-
/sbg/gps_raw
sbg_driver/SbgGpsRaw
GPS raw data for post processing.
-
/sbg/odo_vel
sbg_driver/SbgOdoVel
Odometer velocity.
-
/sbg/event[ABCDE]
sbg_driver/SbgEvent
Event on sync in the corresponding pin.
-
/sbg/pressure
sbg_driver/SbgPressure
Pressure data.
ROS standard topics
In order to define ROS standard topics, it requires sometimes several SBG messages, to be merged. For each ROS standard, you have to activate the needed SBG outputs.
-
/imu/data
sensor_msgs/Imu
IMU data.
Requires /sbg/imu_data
and /sbg/ekf_quat
.
-
/imu/temp
sensor_msgs/Temperature
IMU temperature data.
Requires /sbg/imu_data
.
-
/imu/velocity
geometry_msgs/TwistStamped
IMU velocity data.
Requires /sbg/imu_data
and /sbg/ekf_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
-
/imu/mag
sensor_msgs/MagneticField
IMU magnetic field.
Requires /sbg/mag
.
-
/imu/pres
sensor_msgs/FluidPressure
IMU pressure data.
Requires /sbg/pressure
.
-
/imu/pos_ecef
geometry_msgs/PointStamped
Earth-Centered Earth-Fixed position.
Requires /sbg/ekf_nav
.
-
/imu/utc_ref
sensor_msgs/TimeReference
UTC time reference.
Requires /sbg/utc_time
.
-
/imu/nav_sat_fix
sensor_msgs/NavSatFix
Navigation satellite fix for any Global Navigation Satellite System.
Requires /sbg/gps_pos
.
-
/imu/odometry
nav_msgs/Odometry
UTM projected position relative to the first valid INS position.
Requires /sbg/imu_data
and /sbg/ekv_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
Disabled by default, set odometry.enable in configuration file.
sbg_device_mag
The sbg_device_mag node handles the magnetic calibration for suitable devices.
Services
-
/sbg/mag_calibration
std_srvs/Trigger
Service to start/stop the magnetic calibration.
-
/sbg/mag_calibration_save
std_srvs/Trigger
Service to save the magnetic calibration to the connected device.
How To
Configure the SBG device
The SBG Ros driver allows the user to configure the device before starting the data handling.
To do so, set the corresponding parameter in the used config file.
# Configuration of the device with ROS.
confWithRos: true
Then, modify the desired parameters in the config file, using the SBG Firmware Manual, to see which features are configurable, and which parameter values are available.
Calibrate the magnetometers
Ellipse-A/E/N use magnemoter to provide heading. A calibration is then required to compensate soft and hard iron distortions due to the environmenent (motors, batteries, ...). The magnetic calibration procedure should be held in a non magnetic area (outside of buildings).
roslaunch sbg_driver sbg_device_mag_calibration.launch
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration process started."
Proceed rotations of the IMU (every orientation if possible).
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration is finished. See the output console to get calibration informations."
If the magnetic calibration is satisfaying (Quality, Confidence), it could be uploaded/saved to the device.
rosservice call /sbg/mag_calibration_save
success: True
message: "Magnetometer calibration has been uploaded to the device."
Enable communication with the SBG device
To be able to communicate with the device, be sure that your user is part of the dialout group.
Once added, restart your machine to save and apply the changes.
sudo adduser $USER dialout
Create udev rules
Udev rules can be defined for communication port, in order to avoid modifying the port in configuration if it has changed. Udev documentation
A symlink can be configured and defined to uniquely identify the connected device.
Once it is done, configuration file could be updated portName: "/dev/sbg"
.
See the docs folder, to see an example of rules with the corresponding screenshot using the udev functions.
Time source & reference
ROS uses an internal system time to time stamp messages. This time stamp is generally gathered when the message is processed and published. As a result, the message is not time stamped accurately due to transmission and processing delays.
SBG Systems INS however provides a very accurate timing based on GNSS time if available. The following conditions have to be met to get absolute accurate timing information: * The ELLIPSE-N or D should have a connected GNSS antenna with internal GNSS enabled * The ELLIPSE-E should be connected to an external GNSS receiver with a PPS signal * A valid GNSS position has to be available to get UTC data * The ELLIPSE internal clock should be aligned to PPS signal (clock status) * The ELLIPSE should be setup to send SBG_ECOM_LOG_UTC message
You can select which time source to use with the parameter time_reference
to time stamp messages published by this driver:
* ros
: The header.stamp member contains the current ROS system time when the message has been processed.
* ins_unix
: The header.stamp member contains an absolute and accurate time referenced to UNIX epoch (00:00:00 UTC on 1 January 1970)
Configuration example to use an absolute and accurate time reference to UNIX epoch:
# Time reference:
time_reference: "ins_unix"
Change frame parameters
Frame ID
The frame_id of the header can be set with this parameter:
# Frame convention
frame_id: "imu_link_ned"
Frame convention
The frame convention can be set to NED or ENU * In NED convention axises are the same as device axises. * In ENU convention (x = X, y = -Y, z = -Z).
# Frame convention:
use_enu: true
Troubleshooting
If you experience higher latency than expected and have connected the IMU via an USB interface, you can enable the serial driver low latency mode:
/bin/setserial /dev/<device> low_latency
Contributing
Bugs and issues
Please report bugs and/or issues using the Issue Tracker
Features requests or additions
In order to contribute to the code, please use Pull requests to the devel
branch.
If you have some feature requests, use the Issue Tracker as well.
Changelog for package sbg_driver
3.1.1 (2021-10-15)
- fix missing dependencies and build status link
- missing dep on nav_msgs, tf2_geometry_msgs, tf2_ros and tf2_msgs
- fix build status link in readme
- update doc with odometry message
- Contributors: Michael Zemb
3.1.0 (2021-10-06)
- Feature #44 - odometry output
- fix #66 - status description for SbgGpsHdt msg
- fix #66 - missing heading and pitch accuracies in sbgGpsHdt msg
- add ellipse D default configuration
- update README
- Contributors: Michael Zemb
3.0.0 (2021-08-31)
- Merge pull request #62 from SBG-Systems/devel Devel
- Merge pull request #61 from SBG-Systems/fix-frame-convention Fix frame convention errors
- Make sure only delta angles/velocities are used
- syntax fixes
- Improved comments & README file
- Fix missing checks on UTC / Unix time computation
- Updated sbgECom messages definitions
- Update README.md and releasePackage.md
- Clean up readme
- Fix position accuracy
- Replace pow by multiplication
- Complete README.md
- Fix bugs in message wrapper and complete message definitions
- Fix Z GPS velocity
- Fix frame convention errors
- Merge pull request #59 from SBG-Systems/fix-frame-id Fix param name
- Fix param name
- Fix inconsistent tab and spaces usages. Now all files are using spaces
- Add wrap 2PI
- Fix bugs
- Fix matrix accuracy
- Fix course
- wrapper: Fix ENU->NED for GPS messages
- warpper: Change createrVector3 names
- wrapper: Fix setter
- wrapper: Fix missing ENU conversion an add comment for cov
- wrapper: Fix regresion
- coding style : Remove tables
- publisher: Configure the wrapper before init the publisher
- main: Fix loopFrequency type
- config: Restore output configuration
- config: Replace enu by use_enu
- enu: Replace enu by use_enu and rename frame convertion function
- frame_id: Change default value
- clean up
- #51 - Correctly fill convariances parameters
- project: Update maintainer
- config: Update parameters
- #45-#50 - Add parameters to set frame ID and ENU convention
- #48 - # 52 Add a parameter to select header stamp source and read ROS time when publishing the message
- #47 Remove node ros::Rate period auto computation and only read it from a node parameter
- clean up: Remove blank spaces
- Merge pull request #35 from ShepelIlya/patch-1 Fixed time_stamp value initializing in SbgEkfNavMessage.
- Added/updated license to MIT
- Updated maintainer
- Fixed timeStamp value initializing in SbgEkfNavMessage.
- Contributors: Michael Zemb, Raphael Siryani, ShepelIlya, bsaussay, rsiryani
2.0.3 (2020-04-01)
- Improve matrix handling
- Fix body velocity computation (Issue #31)
2.0.1 (2020-01-24)
- Improve vector handling
- Fix include file (Issue #26)
2.0.0 (2020-01-06)
- Fix integer type
- Update sbgECom messages (AirData, ImuShort)
- Update sbgECom library to 1.11.920-stable
- Improve numeric type
- Improve configuration applier
- Improve error handling
- Code improvement
- Improve device configuration
- Update changelog
- Update and improve README.md
- Update magnetic services
- Improve message timestamping
- Add some ROS standard sensor messages (Issue #17)
- Comply file structure to ROS best pratices
- Add a processing time to improve message handling
- Add udev rules to documentation (Issue #21)
- Improve magnetometers calibration
- Update maintainer of the package (Issue #20)
- Enable/Disable the configuration of the device (Issue #19)
- Define unified class and launch files for all SBG devices
- Define classes for device configuration
- Merge pull request #18 from SBG-Systems/messagePublisherRework
- Integrate new message publisher to the Ellipse class (Issue #15)
- Define a class to publish messages
- Define class to wrap SBG logs to Ros messages
- Merge pull request #16 from SBG-Systems/v4.3
- [src] Update SDK version + add LogE support
- Merge pull request #13 from nicolaje/remove-non-ascii-char
- [conf] Removed non-ASCII characters, (Issue #8)
- [msg] Remove non ascii characters
1.1.7 (2018-07-19)
- [src] Change SbgEkfEuler comments
- [src] Move .h to include folder + test new method for time saving in calib
1.1.6 (2018-03-18)
- [config, src] Update default port for gps aiding (Ellipse-E) + add save & reboot for mag calibration
- [build] Add include for debian jessie arm64 build issue
1.1.5 (2018-03-12 23:49)
- [src] Update mag calibration
1.1.4 (2018-03-12 23:10)
- [catkin] Update install launch & config
- [src] Update library + Correction bugs
1.1.3 (2018-03-12 11:46)
- Update dependencies to std_srvs
1.1.2 (2018-03-12 09:54)
- [ChangeLog] Remove
- [ChangeLog] Update
- [Changelog] Test
- [test] Changelog
- [Changelog] Update
- [CMake] Correction of message dependency
1.1.1 (2018-03-11)
- [xml] Update version number
- [src] Correction of small bugs + add publisher only on activated log
- [merge] Finalize merge from devel branch (master divergence issue)
- [lib] Update the library sbgECom version after merging from devel
- [Merge]
- Merge branch \'master\' of https://github.com/ENSTABretagneRobotics/sbg_ros_driver
- [src] Update doc
- [src] Update magnetic calibration node
- Revert \"1.0.7\" This reverts commit 8f57f9e578937ac23383e39ebf616d1039384b09.
- Update README
- Merge pull request #2 from rpng/master Upgrade sbg_ros_driver
- Moved the logging function into the class
- Added - Start of heading code
- Refactor and added new publishers
- Increased rates
- refactoring use a class for callbacks changed callbacks around a bit, now shows raw data rather than ekf logs
- use gps log message for NavSatFix message
- add extra debug messages
- use private namespace
- modified launch file moved to launch folder and added optional arguments
- updated sbgECom library
1.1.0 (2018-03-10)
- [src] Update Events
- [src] Add params
- [src] Update (add configuration of the ellipse)
- [src] Update messages
- [src] Start creating sbg messages
1.0.7 (2017-04-01)
- [src][minor] Correct launch file
1.0.6 (2017-03-31)
- CHANGELOG
- [src] Add launch example
- [src] Change imu data & add gyroscopes
1.0.5 (2016-11-17 00:04)
1.0.4 (2016-11-17 00:02)
1.0.3 (2016-11-16 23:59)
- [src][minor] Correction of Project name in CmakeList
1.0.2 (2016-11-16 22:58)
- [doc] minor
- [doc] Update Package
1.0.1 (2016-11-16 22:30)
- [doc] Update package version to 1.0.0
- [doc] Add Changelog
- [src] Update of deprecated function
- [src] Update (correcting cmake sub project)
- [src] Correct cmake subdirectory issue
- Initial commit
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
2 | roscpp | |
2 | sensor_msgs | |
2 | std_msgs | |
3 | std_srvs | |
2 | geometry_msgs | |
1 | message_generation | |
2 | nav_msgs | |
3 | tf2_ros | |
3 | tf2_msgs | |
3 | tf2_geometry_msgs | |
1 | catkin | |
1 | message_runtime |
System Dependencies
Dependant Packages
Launch files
Messages
- msg/SbgEkfQuat.msg
- msg/SbgStatusCom.msg
- msg/SbgGpsVel.msg
- msg/SbgMag.msg
- msg/SbgShipMotionStatus.msg
- msg/SbgImuData.msg
- msg/SbgUtcTimeStatus.msg
- msg/SbgShipMotion.msg
- msg/SbgGpsPosStatus.msg
- msg/SbgImuStatus.msg
- msg/SbgStatus.msg
- msg/SbgStatusAiding.msg
- msg/SbgUtcTime.msg
- msg/SbgAirDataStatus.msg
- msg/SbgEkfNav.msg
- msg/SbgEkfEuler.msg
- msg/SbgMagCalib.msg
- msg/SbgGpsRaw.msg
- msg/SbgGpsHdt.msg
- msg/SbgEkfStatus.msg
- msg/SbgStatusGeneral.msg
- msg/SbgGpsPos.msg
- msg/SbgAirData.msg
- msg/SbgMagStatus.msg
- msg/SbgOdoVel.msg
- msg/SbgImuShort.msg
- msg/SbgGpsVelStatus.msg
- msg/SbgEvent.msg
Services
Plugins
Recent questions tagged sbg_driver at answers.ros.org
![]() |
sbg_driver package from sbg_driver reposbg_driver |
|
Package Summary
Tags | No category tags. |
Version | 3.1.1 |
License | MIT |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/SBG-Systems/sbg_ros_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2022-08-29 |
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
Additional Links
Maintainers
- SBG Systems
Authors
- SBG Systems
sbg_driver
Overview
ROS package for SBG Systems IMU.
The driver allows the user to configure the IMU (if possible, according to the device), to receive messages from the Sbg message protocol, publish ROS standard messages , and to calibrate the magnetometers.
Initial work has been done by ENSTA Bretagne.
Author : SBG Systems
Maintainer : SBG Systems, support@sbg-systems.com
Installation
Installation from Packages
User can install the sbg_ros_driver through the standard ROS installation system.
- Melodic
sudo apt-get install ros-melodic-sbg-driver
* Noeticsudo apt-get install ros-noetic-sbg-driver
Building from sources
Dependencies
- Robot Operating System (ROS)
- SBG communication protocol sbgECom, v1.11.920-stable (full compatible with firmwares from 1.7.x).
Building
- Clone the repository (use a Release version)
- Build using the normal ROS catkin build system
cd catkin_ws/src
git clone https://github.com/SBG-Systems/sbg_ros_driver.git
cd ../
catkin_make
Usage
To run the default Ros node with the default configuration
roslaunch sbg_driver sbg_device.launch
To run the magnetic calibration node
roslaunch sbg_driver sbg_device_mag_calibration.launch
Config files
Default config files
Every configuration file is defined according to the same structure.
-
sbg_device_uart_default.yaml
This config file is the default one for Uart connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
-
sbg_device_udp_default.yaml
This config file is the default one for an Udp connection with the device.
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node).
It defines a few outputs for the device :-
/sbg/imu_data
,/sbg/ekf_quat
at 25Hz - ROS standard outputs
/imu/data
,/imu/velocity
,/imu/temp
at 25Hz -
/sbg/status
,/sbg/utc_time
and/imu/utc_ref
at 1Hz.
-
Example config files
ellipse_A_default.yaml
Default config file for an Ellipse-A.ellipse_E_default.yaml
Default config file for an Ellipse-E with an external antenna and external Gnss.ellipse_N_default.yaml
Default config file for an Ellipse-N with an external antenna and internal Gnss.ellipse_D_default.yaml
Default config file for an Ellipse-D.
Launch files
Default launch files
sbg_device.launch
Launch the sbg_device node to handle the receivde data, and load thesbg_device_uart_default.yaml
configuration.sbg_device_mag_calibration.launch
Launch the sbg_device_mag node to calibrate the magnetometers, and load theellipse_E_default.yaml
configuration.
Nodes
sbg_device
The sbg_device node handles the communication with the connected device, and publishes the SBG output to the Ros environment.
Published Topics
SBG specific topics
-
/sbg/status
sbg_driver/SbgStatus
Provides informations about the general status (Communication, Aiding, etc..).
-
/sbg/utc_time
sbg_driver/SbgUtcTime
Provides UTC time reference.
-
/sbg/imu_data
sbg_driver/SbgImuData
IMU status, and sensors values.
-
/sbg/ekf_euler
sbg_driver/SbgEkfEuler
Computed orientation using Euler angles.
-
/sbg/ekf_quat
sbg_driver/SbgEkfQuat
Computed orientation using Quaternion.
-
/sbg/ekf_nav
sbg_driver/SbgEkfNav
Computed navigation data.
-
/sbg/mag
sbg_driver/SbgMag
Magnetic data.
-
/sbg/mag_calib
sbg_driver/SbgMagCalib
Magnetometer calibration data.
-
/sbg/ship_motion
sbg_driver/SbgShipMotion
Heave, surge and sway data.
-
/sbg/gps_vel
sbg_driver/SbgGpsVel
GPS velocities from GPS receiver.
-
/sbg/gps_pos
sbg_driver/SbgGpsPos
GPS positions from GPS receiver.
-
/sbg/gps_hdt
sbg_driver/SbgGpsHdt
GPS true heading from dual antenna system.
-
/sbg/gps_raw
sbg_driver/SbgGpsRaw
GPS raw data for post processing.
-
/sbg/odo_vel
sbg_driver/SbgOdoVel
Odometer velocity.
-
/sbg/event[ABCDE]
sbg_driver/SbgEvent
Event on sync in the corresponding pin.
-
/sbg/pressure
sbg_driver/SbgPressure
Pressure data.
ROS standard topics
In order to define ROS standard topics, it requires sometimes several SBG messages, to be merged. For each ROS standard, you have to activate the needed SBG outputs.
-
/imu/data
sensor_msgs/Imu
IMU data.
Requires /sbg/imu_data
and /sbg/ekf_quat
.
-
/imu/temp
sensor_msgs/Temperature
IMU temperature data.
Requires /sbg/imu_data
.
-
/imu/velocity
geometry_msgs/TwistStamped
IMU velocity data.
Requires /sbg/imu_data
and /sbg/ekf_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
-
/imu/mag
sensor_msgs/MagneticField
IMU magnetic field.
Requires /sbg/mag
.
-
/imu/pres
sensor_msgs/FluidPressure
IMU pressure data.
Requires /sbg/pressure
.
-
/imu/pos_ecef
geometry_msgs/PointStamped
Earth-Centered Earth-Fixed position.
Requires /sbg/ekf_nav
.
-
/imu/utc_ref
sensor_msgs/TimeReference
UTC time reference.
Requires /sbg/utc_time
.
-
/imu/nav_sat_fix
sensor_msgs/NavSatFix
Navigation satellite fix for any Global Navigation Satellite System.
Requires /sbg/gps_pos
.
-
/imu/odometry
nav_msgs/Odometry
UTM projected position relative to the first valid INS position.
Requires /sbg/imu_data
and /sbg/ekv_nav
and either /sbg/ekf_euler
or /sbg/ekf_quat
.
Disabled by default, set odometry.enable in configuration file.
sbg_device_mag
The sbg_device_mag node handles the magnetic calibration for suitable devices.
Services
-
/sbg/mag_calibration
std_srvs/Trigger
Service to start/stop the magnetic calibration.
-
/sbg/mag_calibration_save
std_srvs/Trigger
Service to save the magnetic calibration to the connected device.
How To
Configure the SBG device
The SBG Ros driver allows the user to configure the device before starting the data handling.
To do so, set the corresponding parameter in the used config file.
# Configuration of the device with ROS.
confWithRos: true
Then, modify the desired parameters in the config file, using the SBG Firmware Manual, to see which features are configurable, and which parameter values are available.
Calibrate the magnetometers
Ellipse-A/E/N use magnemoter to provide heading. A calibration is then required to compensate soft and hard iron distortions due to the environmenent (motors, batteries, ...). The magnetic calibration procedure should be held in a non magnetic area (outside of buildings).
roslaunch sbg_driver sbg_device_mag_calibration.launch
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration process started."
Proceed rotations of the IMU (every orientation if possible).
rosservice call /sbg/mag_calibration
success: True
message: "Magnetometer calibration is finished. See the output console to get calibration informations."
If the magnetic calibration is satisfaying (Quality, Confidence), it could be uploaded/saved to the device.
rosservice call /sbg/mag_calibration_save
success: True
message: "Magnetometer calibration has been uploaded to the device."
Enable communication with the SBG device
To be able to communicate with the device, be sure that your user is part of the dialout group.
Once added, restart your machine to save and apply the changes.
sudo adduser $USER dialout
Create udev rules
Udev rules can be defined for communication port, in order to avoid modifying the port in configuration if it has changed. Udev documentation
A symlink can be configured and defined to uniquely identify the connected device.
Once it is done, configuration file could be updated portName: "/dev/sbg"
.
See the docs folder, to see an example of rules with the corresponding screenshot using the udev functions.
Time source & reference
ROS uses an internal system time to time stamp messages. This time stamp is generally gathered when the message is processed and published. As a result, the message is not time stamped accurately due to transmission and processing delays.
SBG Systems INS however provides a very accurate timing based on GNSS time if available. The following conditions have to be met to get absolute accurate timing information: * The ELLIPSE-N or D should have a connected GNSS antenna with internal GNSS enabled * The ELLIPSE-E should be connected to an external GNSS receiver with a PPS signal * A valid GNSS position has to be available to get UTC data * The ELLIPSE internal clock should be aligned to PPS signal (clock status) * The ELLIPSE should be setup to send SBG_ECOM_LOG_UTC message
You can select which time source to use with the parameter time_reference
to time stamp messages published by this driver:
* ros
: The header.stamp member contains the current ROS system time when the message has been processed.
* ins_unix
: The header.stamp member contains an absolute and accurate time referenced to UNIX epoch (00:00:00 UTC on 1 January 1970)
Configuration example to use an absolute and accurate time reference to UNIX epoch:
# Time reference:
time_reference: "ins_unix"
Change frame parameters
Frame ID
The frame_id of the header can be set with this parameter:
# Frame convention
frame_id: "imu_link_ned"
Frame convention
The frame convention can be set to NED or ENU * In NED convention axises are the same as device axises. * In ENU convention (x = X, y = -Y, z = -Z).
# Frame convention:
use_enu: true
Troubleshooting
If you experience higher latency than expected and have connected the IMU via an USB interface, you can enable the serial driver low latency mode:
/bin/setserial /dev/<device> low_latency
Contributing
Bugs and issues
Please report bugs and/or issues using the Issue Tracker
Features requests or additions
In order to contribute to the code, please use Pull requests to the devel
branch.
If you have some feature requests, use the Issue Tracker as well.
Changelog for package sbg_driver
3.1.1 (2021-10-15)
- fix missing dependencies and build status link
- missing dep on nav_msgs, tf2_geometry_msgs, tf2_ros and tf2_msgs
- fix build status link in readme
- update doc with odometry message
- Contributors: Michael Zemb
3.1.0 (2021-10-06)
- Feature #44 - odometry output
- fix #66 - status description for SbgGpsHdt msg
- fix #66 - missing heading and pitch accuracies in sbgGpsHdt msg
- add ellipse D default configuration
- update README
- Contributors: Michael Zemb
3.0.0 (2021-08-31)
- Merge pull request #62 from SBG-Systems/devel Devel
- Merge pull request #61 from SBG-Systems/fix-frame-convention Fix frame convention errors
- Make sure only delta angles/velocities are used
- syntax fixes
- Improved comments & README file
- Fix missing checks on UTC / Unix time computation
- Updated sbgECom messages definitions
- Update README.md and releasePackage.md
- Clean up readme
- Fix position accuracy
- Replace pow by multiplication
- Complete README.md
- Fix bugs in message wrapper and complete message definitions
- Fix Z GPS velocity
- Fix frame convention errors
- Merge pull request #59 from SBG-Systems/fix-frame-id Fix param name
- Fix param name
- Fix inconsistent tab and spaces usages. Now all files are using spaces
- Add wrap 2PI
- Fix bugs
- Fix matrix accuracy
- Fix course
- wrapper: Fix ENU->NED for GPS messages
- warpper: Change createrVector3 names
- wrapper: Fix setter
- wrapper: Fix missing ENU conversion an add comment for cov
- wrapper: Fix regresion
- coding style : Remove tables
- publisher: Configure the wrapper before init the publisher
- main: Fix loopFrequency type
- config: Restore output configuration
- config: Replace enu by use_enu
- enu: Replace enu by use_enu and rename frame convertion function
- frame_id: Change default value
- clean up
- #51 - Correctly fill convariances parameters
- project: Update maintainer
- config: Update parameters
- #45-#50 - Add parameters to set frame ID and ENU convention
- #48 - # 52 Add a parameter to select header stamp source and read ROS time when publishing the message
- #47 Remove node ros::Rate period auto computation and only read it from a node parameter
- clean up: Remove blank spaces
- Merge pull request #35 from ShepelIlya/patch-1 Fixed time_stamp value initializing in SbgEkfNavMessage.
- Added/updated license to MIT
- Updated maintainer
- Fixed timeStamp value initializing in SbgEkfNavMessage.
- Contributors: Michael Zemb, Raphael Siryani, ShepelIlya, bsaussay, rsiryani
2.0.3 (2020-04-01)
- Improve matrix handling
- Fix body velocity computation (Issue #31)
2.0.1 (2020-01-24)
- Improve vector handling
- Fix include file (Issue #26)
2.0.0 (2020-01-06)
- Fix integer type
- Update sbgECom messages (AirData, ImuShort)
- Update sbgECom library to 1.11.920-stable
- Improve numeric type
- Improve configuration applier
- Improve error handling
- Code improvement
- Improve device configuration
- Update changelog
- Update and improve README.md
- Update magnetic services
- Improve message timestamping
- Add some ROS standard sensor messages (Issue #17)
- Comply file structure to ROS best pratices
- Add a processing time to improve message handling
- Add udev rules to documentation (Issue #21)
- Improve magnetometers calibration
- Update maintainer of the package (Issue #20)
- Enable/Disable the configuration of the device (Issue #19)
- Define unified class and launch files for all SBG devices
- Define classes for device configuration
- Merge pull request #18 from SBG-Systems/messagePublisherRework
- Integrate new message publisher to the Ellipse class (Issue #15)
- Define a class to publish messages
- Define class to wrap SBG logs to Ros messages
- Merge pull request #16 from SBG-Systems/v4.3
- [src] Update SDK version + add LogE support
- Merge pull request #13 from nicolaje/remove-non-ascii-char
- [conf] Removed non-ASCII characters, (Issue #8)
- [msg] Remove non ascii characters
1.1.7 (2018-07-19)
- [src] Change SbgEkfEuler comments
- [src] Move .h to include folder + test new method for time saving in calib
1.1.6 (2018-03-18)
- [config, src] Update default port for gps aiding (Ellipse-E) + add save & reboot for mag calibration
- [build] Add include for debian jessie arm64 build issue
1.1.5 (2018-03-12 23:49)
- [src] Update mag calibration
1.1.4 (2018-03-12 23:10)
- [catkin] Update install launch & config
- [src] Update library + Correction bugs
1.1.3 (2018-03-12 11:46)
- Update dependencies to std_srvs
1.1.2 (2018-03-12 09:54)
- [ChangeLog] Remove
- [ChangeLog] Update
- [Changelog] Test
- [test] Changelog
- [Changelog] Update
- [CMake] Correction of message dependency
1.1.1 (2018-03-11)
- [xml] Update version number
- [src] Correction of small bugs + add publisher only on activated log
- [merge] Finalize merge from devel branch (master divergence issue)
- [lib] Update the library sbgECom version after merging from devel
- [Merge]
- Merge branch \'master\' of https://github.com/ENSTABretagneRobotics/sbg_ros_driver
- [src] Update doc
- [src] Update magnetic calibration node
- Revert \"1.0.7\" This reverts commit 8f57f9e578937ac23383e39ebf616d1039384b09.
- Update README
- Merge pull request #2 from rpng/master Upgrade sbg_ros_driver
- Moved the logging function into the class
- Added - Start of heading code
- Refactor and added new publishers
- Increased rates
- refactoring use a class for callbacks changed callbacks around a bit, now shows raw data rather than ekf logs
- use gps log message for NavSatFix message
- add extra debug messages
- use private namespace
- modified launch file moved to launch folder and added optional arguments
- updated sbgECom library
1.1.0 (2018-03-10)
- [src] Update Events
- [src] Add params
- [src] Update (add configuration of the ellipse)
- [src] Update messages
- [src] Start creating sbg messages
1.0.7 (2017-04-01)
- [src][minor] Correct launch file
1.0.6 (2017-03-31)
- CHANGELOG
- [src] Add launch example
- [src] Change imu data & add gyroscopes
1.0.5 (2016-11-17 00:04)
1.0.4 (2016-11-17 00:02)
1.0.3 (2016-11-16 23:59)
- [src][minor] Correction of Project name in CmakeList
1.0.2 (2016-11-16 22:58)
- [doc] minor
- [doc] Update Package
1.0.1 (2016-11-16 22:30)
- [doc] Update package version to 1.0.0
- [doc] Add Changelog
- [src] Update of deprecated function
- [src] Update (correcting cmake sub project)
- [src] Correct cmake subdirectory issue
- Initial commit
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
2 | roscpp | |
2 | sensor_msgs | |
2 | std_msgs | |
3 | std_srvs | |
2 | geometry_msgs | |
1 | message_generation | |
2 | nav_msgs | |
3 | tf2_ros | |
3 | tf2_msgs | |
3 | tf2_geometry_msgs | |
1 | catkin | |
1 | message_runtime |
System Dependencies
Dependant Packages
Launch files
Messages
- msg/SbgEkfQuat.msg
- msg/SbgStatusCom.msg
- msg/SbgGpsVel.msg
- msg/SbgMag.msg
- msg/SbgShipMotionStatus.msg
- msg/SbgImuData.msg
- msg/SbgUtcTimeStatus.msg
- msg/SbgShipMotion.msg
- msg/SbgGpsPosStatus.msg
- msg/SbgImuStatus.msg
- msg/SbgStatus.msg
- msg/SbgStatusAiding.msg
- msg/SbgUtcTime.msg
- msg/SbgAirDataStatus.msg
- msg/SbgEkfNav.msg
- msg/SbgEkfEuler.msg
- msg/SbgMagCalib.msg
- msg/SbgGpsRaw.msg
- msg/SbgGpsHdt.msg
- msg/SbgEkfStatus.msg
- msg/SbgStatusGeneral.msg
- msg/SbgGpsPos.msg
- msg/SbgAirData.msg
- msg/SbgMagStatus.msg
- msg/SbgOdoVel.msg
- msg/SbgImuShort.msg
- msg/SbgGpsVelStatus.msg
- msg/SbgEvent.msg