ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算

这篇具有很好参考价值的文章主要介绍了ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

起因,imu解算出了加速度 角速度,但原始数据是没有单位的,只是在一个精度范围的值,要使用这些数据,就需要把这些没有单位的数据换算成带单位的数据,下面解说一下换算原理。

imu读取数据代码参考上期的博客:

ros2 c++实现JY_95T IMU解算三轴 加速度 角速度 欧拉角 磁力计 四元数_JT_BOT的博客-CSDN博客

单位转换依据imu使用说明

ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算,机器人,单片机

ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算,机器人,单片机

ros2 ium数据填充要求:加速度单位:m/s^2  角速度: rad/sec  四元数没有单位

ros2 interface show sensor_msgs/msg/Imu

# This is a message to hold data from an IMU (Inertial Measurement Unit)
#
# Accelerations should be in m/s^2 (not in g's), and rotational velocity should be in rad/sec
#加速度应以m/s ^2为单位(而不是以g's为单位),旋转速度应以rad/sec为单位
#
# If the covariance of the measurement is known, it should be filled in (if all you know is the
# variance of each measurement, e.g. from the datasheet, just put those along the diagonal)
# A covariance matrix of all zeros will be interpreted as "covariance unknown", and to use the
# data a covariance will have to be assumed or gotten from some other source
#
# If you have no estimate for one of the data elements (e.g. your IMU doesn't produce an
# orientation estimate), please set element 0 of the associated covariance matrix to -1
# If you are interpreting this message, please check for a value of -1 in the first element of each
# covariance matrix, and disregard the associated estimate.

std_msgs/Header header

geometry_msgs/Quaternion orientation
float64[9] orientation_covariance # Row major about x, y, z axes

geometry_msgs/Vector3 angular_velocity
float64[9] angular_velocity_covariance # Row major about x, y, z axes

geometry_msgs/Vector3 linear_acceleration
float64[9] linear_acceleration_covariance # Row major x, y z

先拿加速度做示范,加速度的默认测量范围是-16G—+16G,G就是gravity,是重力加速度9.8m/s²,数据存储在2个字节一共16位2进制数据,扣除第一位符号位,2的15次方数据范围是-7FFF-7FFF (-32767~32767)

ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算,机器人,单片机

 所以在解算出加速度的原始数据要 acc/2048*9.8单位才是m/s^2,imu c++完整代码看上期博客。

 加速度解算代码:

// 加速度
acc_x = ((double)((short)(data[index + 5]<<8 | data[index + 4])))/2048 * 9.8;  //单位m/s^2
acc_y = ((double)((short)(data[index + 7]<<8 | data[index + 6])))/2048 * 9.8;
acc_z = ((double)((short)(data[index + 9]<<8 | data[index + 8])))/2048 * 9.8;

陀螺仪角速度和这个算法是一样的,正负2000对应正负32767,32767/2000 = 16.4

角速度解算代码:

// 陀螺仪角速度  
gyro_x = ((double)((short)(data[index + 11]<<8 | data[index + 10])))/16.4/57.3; //单位rad/sec 360/2.314=57.3
gyro_y = ((double)((short)(data[index + 13]<<8 | data[index + 12])))/16.4/57.3;  
gyro_z = ((double)((short)(data[index + 15]<<8 | data[index + 14])))/16.4/57.3;  

其他数据像磁力计解算原理是一样的,刻官可以自行推导。

这里要注意,因为每个数据都是2个字节拼出来的,拼出来的数据是short类型,需要整体加小括号变成double类型在进行乘除运算,否则会降低数据精度,表现在rviz2可视化数据的时候像动画一样卡顿。文章来源地址https://www.toymoban.com/news/detail-538578.html

到了这里,关于ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Isaac Sim教程05 机器人简单组装及传感器

    熟悉Isaac Sim中机器人的关节及关节驱动配置 了解Isaac Sim中关节树的概念 熟悉Isaac Sim中的传感器配置 熟悉Isaac Sim的视口调整 初级 中级 高级 √ 25 mins 对象 类型 状态 Ubuntu22.04操作系统 软件 已确认 Isaac Sim 软件 已配置 Isaac Sim基本概念 知识 已了解 Isaac Sim基本使用 知识 已了解

    2024年02月04日
    浏览(53)
  • 机器人仿真-gazebo学习笔记(4)xacro和传感器添加

    URDF文件不具备代码复用的特性(在上一篇文章也能发现,其实左右轮是极其相似的但还是要单独描述),一个复杂的机器人模型会拥有大量了的传感器和关节组件,这时候使用URDF文件就太难阅读了。精简化、可复用、模块化的xacro文件来了。 1.优势: ·精简模型代码: xacro是一

    2024年02月06日
    浏览(61)
  • 六足灾后探测机器人:设计、结构、传感器与控制系统

    本文介绍了中国石油大学(北京)研究团队设计的六足灾后探测机器人,包括机器人的设计背景、场景设计、技术路线、技术实现和项目创新点。详细介绍了机器人的机械结构、传感器系统和控制系统,以及未来的发展方向和优化建议。

    2024年01月24日
    浏览(56)
  • Arduino开发实例-DIY超声波传感器避障机器人

    在本应用中,我们将使用一个超声波传感器与两个直流电机和一个伺服电机相结合,Arduino作为主控板创建一个简单的避障机器人。 超声波传感器发送和接收信号以确定物体的距离。 如果距离小于 15 厘米有物体,机器人将停止。 然后它环顾四周,转向一个它什么都感觉不到

    2023年04月08日
    浏览(63)
  • 通过旋转指针分区在非凸环境中优化机器人传感器网络覆盖研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 1. 对扰动

    2024年02月03日
    浏览(51)
  • Arduino UNO的线路跟随机器人车,L298N驱动器,红外传感器

    原文 一些机器人制作项目 展示如何使用 Arduino UNO 和 2 个红外传感器模块制作线路跟随机器人汽车 。 Line follower 名称表示全自动 汽车 。这遵循嵌入任何地板或任何表面上的视觉线(很可能是白色或黑色)。 该项目基于Arduino微控制器。是一条基本的 线路跟随机器人项目 。

    2024年02月11日
    浏览(58)
  • 使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥   🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 使用

    2024年02月14日
    浏览(48)
  • 搬运机器人RFID传感器CNS-RFID-01|1S的RS485(MODBUS|HS协议)通讯连接方法

    搬运机器人RFID传感器CNS-RFID-01|1S支持RS485通信,可支持RS485(MODBUS RTU)协议、RS485-HS协议,广泛应用于物流仓储,立库 AGV|无人叉车|搬送机器人等领域,常用定位、驻车等,本篇重点介绍CNS-RFID-01|1S RFID传感器的RS485通信连接方法。 CNS-RFID-01|1S RFID传感器 1、RS485连接方法 用线缆

    2024年02月04日
    浏览(55)
  • 【ROS2机器人入门到实战】ROS2话题入门

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 话题是ROS2中最常用的通信方式之一,话题通信采取的是订阅发布

    2024年02月04日
    浏览(66)
  • 【ROS2机器人入门到实战】ROS2节点介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn ROS2中每一个节点也是只负责一个单独的模块化的功能(比如一个

    2024年02月06日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包