SBG ROS 节点 时间戳 话题

SBG EllipseE型号IMU 用ROS的驱动sbg_driver读取数据 阅读详情

1. 概述

阅读SBG在ROS下IMU节点源代码,将有用的部分总结一下,主要是时间戳以及topic的处理。

2. 参数设置

SBG节点提供了较多的launch文件,分别对应不同的传感器,如下

robots@Robots-ubuntu1604:~/catkin_ws$ roslaunch sbg_driver sbg_
sbg_device.launch                  sbg_ellipseE.launch
sbg_device_mag_calibration.launch  sbg_ellipseN.launch
sbg_ellipseA.launch  

对于sbg_device.launch应该适合所有传感器,而对于其他的launch文件会有一些设置上的差异,sbg_device.launch会载入参数信息 /config/sbg_device_uart_default.yaml

# Configuration file for SBG device through an Uart interface.

# Configuration of the device with ROS.
confWithRos: false

# Uart configuration
uartConf:
  # Port Name
  portName: "/dev/sbg"

  # Baude rate (4800 ,9600 ,19200 ,38400 ,115200 [default],230400 ,460800 ,921600)
  baudRate: 115200

  # Port Id
  # 0 PORT_A: Main communication interface. Full duplex.
  # 1 PORT_B: Auxiliary input interface for RTCM
  # 2 PORT_C: Auxiliary communication interface. Full duplex.
  # 3 PORT_D: Auxiliary input interface
  # 4 PORT_E: Auxiliary input/output interface
  portID: 0

# Sensor Parameters
sensorParameters:
  # Initial latitude (°)
  initLat: 48.419727
  # Initial longitude (°)
  initLong: -4.472119
  # Initial altitude (above WGS84 ellipsoid) (m)
  initAlt: 100.0
  # Year at startup
  year: 2018
  # month in year at startup
  month: 03
  # day in month at startup
  day: 10

  # Montion profile ID
  # 1 GENERAL_PURPOSE Should be used as a default when other profiles do not apply
  # 2 AUTOMOTIVE      Dedicated to car applications
  # 3 MARINE          Used in marine and underwater applications
  # 4 AIRPLANE        For fixed wings aircraft
  # 5 HELICOPTER      For rotary wing aircraft
  motionProfile: 1

# IMU_ALIGNMENT_LEVER_ARM
imuAlignementLeverArm:
  # IMU X axis direction in vehicle frame
  # 0 ALIGNMENT_FORWARD   IMU Axis is turned in vehicle's forward direction
  # 1 ALIGNMENT_BACKWARD  IMU Axis is turned in vehicle's backward direction
  # 2 ALIGNMENT_LEFT      IMU Axis is turned in vehicle's left direction
  # 3 ALIGNMENT_RIGHT     IMU Axis is turned in vehicle's right direction
  # 4 ALIGNMENT_UP        IMU Axis is turned in vehicle's up direction
  # 5 ALIGNMENT_DOWN      IMU Axis is turned in vehicle's down direction
  axisDirectionX: 0
  # IMU Y axis direction in vehicle frame
  # 0 ALIGNMENT_FORWARD   IMU Axis is turned in vehicle's forward direction
  # 1 ALIGNMENT_BACKWARD  IMU Axis is turned in vehicle's backward direction
  # 2 ALIGNMENT_LEFT      IMU Axis is turned in vehicle's left direction
  # 3 ALIGNMENT_RIGHT     IMU Axis is turned in vehicle's right direction
  # 4 ALIGNMENT_UP        IMU Axis is turned in vehicle's up direction
  # 5 ALIGNMENT_DOWN      IMU Axis is turned in vehicle's down direction
  axisDirectionY: 3
  # Residual roll error after axis alignment rad
  misRoll: 0
  # Residual pitch error after axis alignment rad
  misPitch: 0
  # Residual yaw error after axis alignment rad
  misYaw: 0
  # X Primary lever arm in IMU X axis (once IMU alignment is applied) m
  leverArmX: 0
  # Y Primary lever arm in IMU Y axis (once IMU alignment is applied) m
  leverArmY: 0
  # Z Primary lever arm in IMU Z axis (once IMU alignment is applied) m
  leverArmZ: 0

# AIDING_ASSIGNMENT
# Note: GNSS1 module configuration can only be set to an external port on Ellipse-E version.
# Ellipse-N users must set this module to MODULE_INTERNAL. On the other hand, rtcmModule is only
# available for Ellipse-N users. This module must be set to MODULE_DISABLED for other users.
aidingAssignment:
  # GNSS module port assignment:
  # 255 Module is disabled
  # 1 Module connected on PORT_B
  # 2 Module connected on PORT_C
  # 3 Module connected on PORT_D
  # 5 Module is connected internally
  gnss1ModulePortAssignment: 255
  # GNSS module sync assignment:
  # 0 Module is disabled
  # 1 Synchronization is done using SYNC_IN_A pin
  # 2 Synchronization is done using SYNC_IN_B pin
  # 3 Synchronization is done using SYNC_IN_C pin
  # 4 Synchronization is done using SYNC_IN_D pin
  # 5 Synchronization is internal
  # 6 Synchronization is done using SYNC_OUT_A pin
  # 7 Synchronization is done using SYNC_OUT_B pin
  gnss1ModuleSyncAssignment: 0
  # RTCM input port assignment for Ellipse-N DGPS
  rtcmPortAssignment: 255
  # Odometer module pin assignment
  # 0 Odometer is disabled
  # 1 Odometer connected only to ODO_A (unidirectional).
  # 2 Odometer connected to both ODO_A (signal A) and ODO_B (Signal B or direction) for bidirectional odometer.
  odometerPinAssignment: 0

magnetometer:
  # Magnetometer model ID
  # 201 Should be used in most applications
  # 202 Should be used in disturbed magnetic environment
  magnetometerModel: 201
  # Magnetometer rejection mode
  # 0 Measurement is not taken into account
  # 1 Measurement is rejected if inconsistent with current estimate (depending on error model)
  # 2 Measurement is always accepted
  magnetometerRejectMode: 1

  # Theses parameters are only used for a calibration run
  calibration:
    # 1 2D Tell the device that the magnetic calibration will be performed with limited motions. 
    #     This calibration mode is only designed to be used when roll and pitch motions are less than ± 5°. 
    #     To work correctly, the device should be rotated through at least a full circle.
    # 2 3D Tell the device to start a full 3D magnetic calibration procedure. The 3D magnetic calibration offers the best accuracy
    mode: 2

    # 0 LOW_BW Use this parameter in case of strong magnetic noise during calibration. 
    #     Motion during calibration is then limited to slow rotations.
    # 1 MEDIUM_BW Tell the device that medium dynamics will be observed during the magnetic calibration process. 
    #     It can be used in case of medium magnetic noise during calibration process. Medium dynamics are used during calibration.
    # 2 HIGH_BW This parameter is suitable to most applications. It can be used when the dynamics during calibration are relatively high.
    bandwidth: 2


# GNSS configuration
# Note: Secondary level arms should only be considered in case of dual antenna GNSS receiver. It can be left to 0 otherwise.
gnss:
  # Gnss Model Id
  # 101 Used on Ellipse-N to setup the internal GNSS in GPS+GLONASS
  # 102 Default mode for Ellipse-E connection to external GNSS
  # 103 Used on Ellipse-N to setup the internal GNSS in GPS+BEIDOU
  # 104 Used on Ellipse-E to setup a connection to ublox in read only mode.
  # 106 Used on Ellipse-E to setup a connection to Novatel receiver in read only mode.
  # 107 Used on Ellipse-D by default
  gnss_model_id: 101

  #GNSS primary antenna lever arm in IMU X axis (m)
  primaryLeverArmX: 0
  #GNSS primary antenna lever arm in IMU Y axis (m)
  primaryLeverArmY: 0
  #GNSS primary antenna lever arm in IMU Z axis (m)
  primaryLeverArmZ: 0
  #GNSS primary antenna precise. Set to true if the primary lever arm has been accurately entered and doesn't need online re-estimation.
  primaryLeverPrecise: true

  #GNSS secondary antenna lever arm in IMU X axis (m)
  secondaryLeverArmX: 0
  #GNSS secondary antenna lever arm in IMU Y axis (m)
  secondaryLeverArmY: 0
  #GNSS secondary antenna lever arm in IMU Z axis (m)
  secondaryLeverArmZ: 0

  # Secondary antenna operating mode.
  # 1 The GNSS will be used in single antenna mode only and the secondary lever arm is not used.
  # 2 [Reserved] The GNSS dual antenna information will be used but the secondary lever arm is not known.
  # 3 The GNSS dual antenna information will be used and we have a rough guess for the secondary lever arm.
  # 4 The GNSS dual antenna information will be used and the secondary lever arm is accurately entered and doesn't need online re-estimation.
  secondaryLeverMode: 1

  # Rejection mode for position
  # 0 Measurement is not taken into account
  # 1 Measurement is rejected if inconsistent with current estimate (depending on error model)
  # 2 Measurement is always accepted
  posRejectMode: 1
  # Rejection mode for velocity (see posRejectMode values)
  velRejectMode: 1
  # Rejection mode for true heading (see posRejectMode values)
  hdtRejectMode: 1

# Odometer configuration
odom:
  # Odometer's gain Pulses/m
  gain: 4800 
  # User gain average error (%)
  gain_error: 0.1 
  # Odometer's direction
  # 0: positive
  # 1: negative
  direction: 0

  # Odometer lever arm in IMU X axis (m)
  leverArmX: 0
  # Odometer lever arm in IMU Y axis (m)
  leverArmY: 0
  # Odometer lever arm in IMU Z axis<
从传感器到标定板:手把手教你用Kalibr完成Kinect V1与SBG IMU的联合标定实战 本文详细介绍了如何使用Kalibr标定工具箱完成Kinect V1与SBG IMU的联合标定实战。从环境准备、数据采集到参数文件解析,再到联合标定流程和工程实践中的疑难解答,手把手指导读者完成多传感器融合的关键步骤。特别针对Ubuntu18.04系统下的安装编译和配置要点进行了详细说明,帮助开发者规避常见问题。 阅读详情

相关推荐

从传感器到数据:手把手教你用Kalibr完成Kinect V1与SBG IMU的联合标定实战

本文详细介绍了使用Kalibr工具箱完成Kinect V1与SBG IMU联合标定的全流程,包括Ubuntu18.04环境配置、传感器数据采集、标定参数提取及实战问题解决方案。通过具体代码示例和操作步骤,帮助读者掌握多传感器融合中的关键标定技术,提升机器人感知系统的定位精度。

weixin_27741699的博客 182

ORBSLAM3运行记录(单目+IMU)

ORBSLAM3运行记录1.单目+IMU数据集运行记录自己做的其它测试2.单目+IMU自己采集数据运行记录测试结果 1.单目+IMU数据集运行记录 ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monoc

yys2324826380的博客 1万+

SBG Ellipse系列传感器Ubuntu下进行ROS节点配置

SBG ROS 节点配置概述SBG DriverSBG ROS DriverSBG TopicSBG自定义消息ROS标准参考链接 概述 主要介绍Ubuntu下SBG公司Ellipse N系列传感器驱动安装以及ROS下的节点配置。 SBG Driver 使用bash命令可以直接安装SBG公司驱动,如下,melodic注意换成自己Ubuntu的版本代号,我的是kinetic。 $ sudo apt-get install ros-melodic-sbg-driver SBG ROS Driver 1 现在还需

robots的博客 3032

一.开发记录之AHRS、惯导传感器SBG-Ellipse-N传感器配置和使用

一、 磁力计校准 Window上位机连接上模块 在室外点击Calibrate Magnetometers,然后按手册进行校准,让传感器尽可能在多的不同方向旋转。校准结束,按下“Calibrate”按钮,点击OK,上位机会有参数值示意,达到1左右就可以了。 二、 惯导ROS驱动yaml文件修改 惯导ROS驱动包yaml文件可以修改传感器参数,但是不建议。建议的做法是在上位机进行修改,修改后yaml文件也同步进行修改。比如: 1) 需要找到传感器的串口号,然后更改portName: "/dev/t

weixin_36773706的博客 2260

惯导传感器SBG说明书

法国SBG公司开发的Ellipse传感器说明书。主要用于惯性导航系统,包含三轴陀螺和三轴加速度计,具有较高精度。该datasheet主要包含传感器的数据指标、数据协议及功能介绍。

欧拉公式求圆周率的matlab代码-sbg_ros_driver:用于SBGSystemsIMU/AHRS/INS单元(例如ELLIPSE或Q

欧拉公式求长期率的matlab代码sbg_driver 概述 SBG Systems IMU的ROS软件包。 该驱动程序允许用户配置IMU(如果可能,根据设备而定),以从Sbg消息协议接收消息,发布ROS标准消息,以及校准磁力计。 的初步工作已由。 作者 : 维护者:SBG Systems, 安装 从软件包安装 用户可以通过标准的ROS安装系统安装sbg_ros_driver。 Melodic sudo apt-get install ros-melodic-sbg-driver Kinectic sudo apt-get install ros-kinetic-sbg-driver 农历sudo apt-get install ros-lunar-sbg-driver 从源头建造 依存关系 SBG通信协议sbgECom,v1.11.920稳定(与1.7.x版的固件完全兼容)。 建造 克隆存储库(使用发行版) 使用普通的ROS catkin构建系统进行构建 cd catkin_ws/src git clone https://github.com/SBG-Systems/sbg_ros

SBG.docx

SBG.docx

LabVIEW与三菱PLC通讯实战:ActiveX控件在FX5U上的应用技巧

本文深入探讨了如何利用三菱MX Component中的ActiveX控件,在LabVIEW中实现与FX5U系列PLC的高效、稳定通讯。文章从环境配置、ActiveX控件生命周期管理、数据读写性能优化及容错机制等实战角度,分享了构建工业级健壮通讯程序的核心技巧与架构设计思路。

qsc9012345的博客 884

单片机技术入门与实战:从零基础到项目开发

单片机(MCU)作为嵌入式系统的核心组件,集成了CPU、内存和各种接口电路,广泛应用于智能家居、工业控制和汽车电子等领域。其工作原理基于实时控制和低功耗设计,通过定时器、中断系统和通信接口等功能模块实现各种控制任务。在物联网和智能硬件快速发展的背景下,掌握单片机开发技术成为电子工程师的重要技能。本文以STM32和PIC系列为例,详细解析单片机的基本概念、功能模块和选型指南,并分享从入门到项目实战的系统学习方法,帮助开发者在3-6个月内快速掌握这一关键技术。

weixin_35753291的博客 649

VOF模型求解方法:从SIMPLEC到PISO的稳定性优化策略

本文深入探讨了VOF模型求解方法中SIMPLEC与PISO算法的稳定性优化策略,重点分析了两种算法在稳态和瞬态问题中的应用差异。通过对比PRESTO离散化方法与其他格式的优劣,提供了针对多相流模拟的实用设置建议和稳定性优化技巧,帮助工程师有效提升计算效率和精度。

yellow的专栏 1148

【具身算法】VLA算法-Diffusion Policy

《扩散策略:多模态机器人控制的新方法》摘要 本文提出了一种基于扩散模型的机器人控制策略(DiffusionPolicy),用于解决视觉运动控制中的多模态行为、高维动作空间和训练稳定性问题。该方法利用去噪扩散概率模型(DDPM)生成动作序列,通过迭代优化处理复杂动作分布,显著提升了性能。实验表明,在15项机器人操作任务中,扩散策略平均性能提升46.9%,有效解决了传统显式/隐式策略的局限性。其核心优势在于:1)优雅建模多模态动作分布;2)适应高维动作空间;3)训练过程稳定。未来工作将探索与强化学习的结合及计算

puzhinan7781的博客 1378

Gazebo仿真环境下的强化学习实现

实际上利用Gazebo进行强化学习无非是环境获取上的不同,Gazebo的环境控制需要使用ROS服务进行控制,状态可以通过Gazebo进行获取,同时某些必要数据需要从话题中获取,最重要的是组织获取 的数据(通过话题等)与控制Gazebo的仿真步骤之间的组合。强化学习的手段与传统算法无异,强化学习方法最重要的是要确定动作空间、状态空间、奖励空间,这三个空间是work的前提。在笔者自己的环境中,将获取里程计的话题以及获取激光点的数据替换成为了自己的本机的仿真环境匹配的话题。

Moresweet 猫甜 6437

【数据集】未来不同情景下预测数据:如人口、土地利用等

未来不同情景下预测数据:如人口、土地利用等

WW、forever的博客 2990

32、高光谱遥感技术在军事领域的应用解析

高光谱遥感技术凭借其高分辨率和精细光谱分析能力,在军事领域广泛应用于战场详细侦察、伪装目标识别及目标实际温度与发射率的检测,显著提升了目标识别精度和作战支持能力。同时,该技术在内陆水体成分反演、海洋环境监测和农业管理等领域也展现出巨大潜力。尽管面临数据量大、处理复杂、技术融合不足和仪器性能限制等挑战,未来通过人工智能融合、高效算法研发和先进仪器开发,高光谱遥感技术将在多领域实现更深入应用与发展。

blue的专栏 226

使用 MATLAB/Simulink 构建一个电机-液压联合控制系统的仿真模型

本文详细介绍了基于Simulink的电机与液压执行机构联合控制系统建模方法。通过7个步骤,系统讲解了从创建项目、搭建PMSM电机模型、建立逆变器与矢量控制模块,到构建液压泵和执行机构模型的完整过程。重点展示了如何设置关键参数、添加测量反馈模块,并提供了实用的代码片段。教程还包含仿真运行流程、结果分析指标及进阶建议,帮助读者掌握多物理场耦合系统建模的核心技术。该方法适用于机电液一体化系统设计,为工程实践提供有效参考。

amy_mhd的博客 606

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: Ubuntu 串口设备 USB tty
下一篇: Nooploop UWB LinkTrack ROS下配置
Robots.
博客等级 码龄8年 157粉丝 48原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值