# sbg_driver
[![Build Status](https://build.ros.org/buildStatus/icon?job=Mdev__sbg_driver__ubuntu_bionic_amd64&build=lastBuild)](https://build.ros.org/job/Mdev__sbg_driver__ubuntu_bionic_amd64/lastBuild/)
## Overview
ROS package for SBG Systems IMU.<br />
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.
<i>Initial work has been done by [ENSTA Bretagne](https://github.com/ENSTABretagneRobotics).</i>
**Author : [SBG Systems](https://www.sbg-systems.com/)<br />
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```
* Noetic ```sudo apt-get install ros-noetic-sbg-driver```
### Building from sources
#### Dependencies
* [Robot Operating System (ROS)](http://wiki.ros.org/)
* SBG communication protocol sbgECom, v1.11.920-stable (full compatible with firmwares from 1.7.x).
#### Building
1. Clone the repository (use a Release version)
2. 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.<br />
* **sbg_device_uart_default.yaml** <br />
This config file is the default one for Uart connection with the device. <br />
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node). <br />
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** <br />
This config file is the default one for an Udp connection with the device. <br />
It does not configure the device through the ROS node, so it has to be previously configured (manually or with the ROS node). <br />
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** <br />
Default config file for an Ellipse-A.
* **ellipse_E_default.yaml** <br />
Default config file for an Ellipse-E with an external antenna and external Gnss.
* **ellipse_N_default.yaml** <br />
Default config file for an Ellipse-N with an external antenna and internal Gnss.
* **ellipse_D_default.yaml** <br />
Default config file for an Ellipse-D.
## Launch files
### Default launch files
* **sbg_device.launch** <br />
Launch the sbg_device node to handle the receivde data, and load the `sbg_device_uart_default.yaml` configuration.
* **sbg_device_mag_calibration.launch** <br />
Launch the sbg_device_mag node to calibrate the magnetometers, and load the `ellipse_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](http://docs.ros.org/api/sbg_driver/html/msg/SbgStatus.html)
Provides informations about the general status (Communication, Aiding, etc..).
* **`/sbg/utc_time`** [sbg_driver/SbgUtcTime](http://docs.ros.org/api/sbg_driver/html/msg/SbgUtcTime.html)
Provides UTC time reference.
* **`/sbg/imu_data`** [sbg_driver/SbgImuData](http://docs.ros.org/api/sbg_driver/html/msg/SbgImuData.html)
IMU status, and sensors values.
* **`/sbg/ekf_euler`** [sbg_driver/SbgEkfEuler](http://docs.ros.org/api/sbg_driver/html/msg/SbgEkfEuler.html)
Computed orientation using Euler angles.
* **`/sbg/ekf_quat`** [sbg_driver/SbgEkfQuat](http://docs.ros.org/api/sbg_driver/html/msg/SbgEkfQuat.html)
Computed orientation using Quaternion.
* **`/sbg/ekf_nav`** [sbg_driver/SbgEkfNav](http://docs.ros.org/api/sbg_driver/html/msg/SbgEkfNav.html)
Computed navigation data.
* **`/sbg/mag`** [sbg_driver/SbgMag](http://docs.ros.org/api/sbg_driver/html/msg/SbgMag.html)
Magnetic data.
* **`/sbg/mag_calib`** [sbg_driver/SbgMagCalib](http://docs.ros.org/api/sbg_driver/html/msg/SbgMagCalib.html)
Magnetometer calibration data.
* **`/sbg/ship_motion`** [sbg_driver/SbgShipMotion](http://docs.ros.org/api/sbg_driver/html/msg/SbgShipMotion.html)
Heave, surge and sway data.
* **`/sbg/gps_vel`** [sbg_driver/SbgGpsVel](http://docs.ros.org/api/sbg_driver/html/msg/SbgGpsVel.html)
GPS velocities from GPS receiver.
* **`/sbg/gps_pos`** [sbg_driver/SbgGpsPos](http://docs.ros.org/api/sbg_driver/html/msg/SbgGpsPos.html)
GPS positions from GPS receiver.
* **`/sbg/gps_hdt`** [sbg_driver/SbgGpsHdt](http://docs.ros.org/api/sbg_driver/html/msg/SbgGpsHdt.html)
GPS true heading from dual antenna system.
* **`/sbg/gps_raw`** [sbg_driver/SbgGpsRaw](http://docs.ros.org/api/sbg_driver/html/msg/SbgGpsRaw.html)
GPS raw data for post processing.
* **`/sbg/odo_vel`** [sbg_driver/SbgOdoVel](http://docs.ros.org/api/sbg_driver/html/msg/SbgOdoVel.html)
Odometer velocity.
* **`/sbg/event[ABCDE]`** [sbg_driver/SbgEvent](http://docs.ros.org/api/sbg_driver/html/msg/SbgEvent.html)
Event on sync in the corresponding pin.
* **`/sbg/pressure`** [sbg_driver/SbgPressure](http://docs.ros.org/api/sbg_driver/html/msg/SbgPressure.html)
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](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Imu.html)
IMU data.
Requires `/sbg/imu_data` and `/sbg/ekf_quat`.
* **`/imu/temp`** [sensor_msgs/Temperature](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Temperature.html)
IMU temperature data.
Requires `/sbg/imu_data`.
* **`/imu/velocity`** [geometry_msgs/TwistStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/TwistStamped.html)
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](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/MagneticField.html)
IMU magnetic field.
Requires `/sbg/mag`.
* **`/imu/pres`** [sensor_msgs/FluidPressure](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/FluidPressure.html)
IMU pressure data.
Requires `/sbg/pressure`.
* **`/imu/pos_ecef`** [geometry_msgs/PointStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PointStamped.html)
Earth-Centered Earth-Fixed position.
Requires `/sbg/ekf_nav`.
* **`/imu/utc_ref`** [sensor_msgs/TimeReference](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/TimeReference.html)
UTC time reference.
Requires `/sbg/utc_time`.
* **`/imu/nav_sat_fix`** [sensor_msgs/NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html)
Navigation satellite fix for any Global Navigation Satellite System.
Requires `/sbg/gps_pos`.
* **`/imu/odometry`** [nav_msgs/Odometry](http://docs.ros.org/en/melodic/api/nav_msgs/html/msg/Odometry.html)
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
没有合适的资源?快使用搜索试试~ 我知道了~
用于SBG系统IMU/AHRS/INS单元(例如ELLIPSE或QUANTA)的ROS1驱动程序。C++_CMake_下载
共179个文件
h:70个
c:50个
msg:28个
需积分: 14 1 下载量 34 浏览量
2022-08-31
10:14:52
上传
评论
收藏 432KB ZIP 举报
温馨提示
(更多详情、使用方法,请下载后细读README.md文件) as_driver\n概述\n用于 SBG Systems IMU 的 ROS 包。\n该驱动程序允许用户配置 IMU(如果可能,根据设备)、接收来自 Sbg 消息协议的消息、发布 ROS 标准消息以及校准磁力计。\nENSTA Bretagne已经完成了初步工作。\n作者 : SBG Systems\n维护者 : SBG Systems, support@sbg-systems.\n安装\n从包安装\n用户可以通过标准的 ROS 安装系统安装 sbg_ros_driver。\n旋律sudo apt-get install ros-melodic-sbg-driver\n有意识的sudo apt-get install ros-noetic-sbg-driver\n从源头构建\n依赖项\n机器人操作系统(ROS)\nSBG 通信协议 sbgECom,v1.11.920-stable(与 1.7.x 的固件完全兼容)。\n建造\n克隆存储库(使用发布版本)\n使用正常的 ROS catkin 构建系统构建\ncd catkin_
资源推荐
资源详情
资源评论
收起资源包目录
用于SBG系统IMU/AHRS/INS单元(例如ELLIPSE或QUANTA)的ROS1驱动程序。C++_CMake_下载 (179个子文件)
sbgEComCmdOutput.c 24KB
sbgEComTransfer.c 19KB
sbgVersion.c 17KB
sbgEComCmdGnss.c 16KB
sbgEComCmdCommon.c 16KB
sbgEComProtocol.c 16KB
sbgEComCmdSensor.c 15KB
sbgEComCmdOdo.c 15KB
sbgInterfaceUdp.c 13KB
sbgEComCmdMag.c 13KB
sbgInterfaceSerialUnix.c 11KB
sbgEComBinaryLogGps.c 11KB
sbgInterfaceSerialWin.c 11KB
sbgEComBinaryLogImu.c 10KB
sbgCrc.c 10KB
sbgECom.c 9KB
sbgInterfaceFile.c 9KB
sbgEComCmdDvl.c 9KB
sbgEComCmdEvent.c 9KB
sbgEComBinaryLogEkf.c 9KB
sbgEComCmdEthernet.c 9KB
sbgEComCmdAirData.c 8KB
sbgEComCmdAdvanced.c 8KB
sbgEComCmdInterface.c 7KB
sbgEComBinaryLogImuRaw.c 5KB
sbgEComBinaryLogs.c 5KB
sbgEComBinaryLogMag.c 4KB
sbgEComBinaryLogShipMotion.c 4KB
sbgPlatform.c 4KB
sbgEComCmdSettings.c 4KB
sbgNetwork.c 3KB
sbgEComBinaryLogStatus.c 3KB
sbgEComBinaryLogUtc.c 3KB
sbgEComCmdInfo.c 3KB
sbgEComBinaryLogDvl.c 3KB
sbgEComBinaryLogUsbl.c 3KB
sbgEComBinaryLogDebug.c 3KB
sbgEComCmdFeatures.c 3KB
sbgEComBinaryLogEvent.c 2KB
sbgEComBinaryLogAirData.c 2KB
sbgEComBinaryLogOdometer.c 2KB
sbgInterface.c 2KB
sbgEComBinaryLogDiag.c 2KB
sbgEComBinaryLogDepth.c 1KB
sbgEComCmdLicense.c 1KB
sbgEComGetVersion.c 547B
sbgStreamBuffer.c 29B
sbgSplitBuffer.c 28B
sbgEComCmd.c 24B
sbgSwap.c 21B
message_wrapper.cpp 53KB
message_publisher.cpp 19KB
sbg_device.cpp 17KB
config_applier.cpp 17KB
config_store.cpp 16KB
main.cpp 811B
main_mag.cpp 495B
.gitattributes 118B
.gitignore 370B
sbgStreamBufferLE.h 46KB
sbgStreamBufferBE.h 46KB
sbgStreamBufferCommon.h 23KB
message_wrapper.h 23KB
sbgVersion.h 19KB
sbgEComBinaryLogGps.h 18KB
sbgEComIds.h 15KB
config_store.h 14KB
sbgInterface.h 12KB
sbgEComBinaryLogEkf.h 11KB
sbgEComCmdMag.h 11KB
sbgEComCmdOutput.h 11KB
sbgEComBinaryLogStatus.h 10KB
sbgDefines.h 10KB
sbgEComCmdSensor.h 9KB
sbgNetwork.h 9KB
sbgEComCmdGnss.h 9KB
sbg_device.h 8KB
sbgEComCmdCommon.h 8KB
sbgEComBinaryLogImu.h 8KB
sbg_matrix3.h 7KB
config_applier.h 7KB
sbgEComCmdOdo.h 7KB
message_publisher.h 7KB
sbgEComCmdEvent.h 7KB
sbgEComProtocol.h 7KB
sbgSplitBuffer.h 7KB
sbgEComBinaryLogUtc.h 6KB
sbgEComCmdFeatures.h 6KB
sbgInterfaceFile.h 6KB
sbgECom.h 6KB
sbgEComCmdInterface.h 6KB
sbg_vector3.h 5KB
sbgECanId.h 5KB
sbgDebug.h 5KB
sbgEComBinaryLogMag.h 5KB
sbgInterfaceSerial.h 5KB
sbgEComCmdDvl.h 5KB
sbgInterfaceUdp.h 5KB
sbgTypes.h 5KB
sbgEComCmdAirData.h 4KB
共 179 条
- 1
- 2
资源评论
m0_57781768
- 粉丝: 9038
- 资源: 403
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HM2305B-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于52单片机、ADC0832、LCD1602、两个74HC393和一个74HC08的频率测量计 不能用,请私我
- HM2302-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- python实战项目-学生成绩管理系统(基础版)
- 微信小程序源码 实现查公交 滴滴公交 app 源码下载
- HM2302E-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于C#图片相似度比较,感知哈希算法
- VR开发的概要介绍与分析
- 自动驾驶定位系列教程七:点云畸变补偿.pdf
- HM2302D-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功