【EHub_tx1_tx2_E100】Ubuntu18.04 + ROS_ Melodic + LingAo IMU 测试及RVIZ展示

news2024/9/22 17:18:59

简介:介绍LingAo 的6自由度IMU模块 在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS驱动,打开使用RVIZ 查看IMU数据,本文的前提条件是你的TX1里已经安装了ROS版本:Melodic。

关于测试硬件EHub_tx1_tx2_E100载板请查看:EdgeBox_EHub_tx1_tx2_E100 开发板评测_机器人虎哥的博客-CSDN博客

目录

一、IMU介绍

二、LingAo 6自由度IMU(Isens-ZEN)介绍

三、LingAo 6自由度IMU(Isens-ZEN) ROS驱动

3.1 建立工作空间

3.2克隆代码

3.3 编译源码包

3.4 将IMU通过USB 接入系统

3.5 启动IMU驱动

3.6 启动polt绘制姿态、加速度这一些值

3.7 启动RVIZ 查看IMU

四、ISENS ZEN API

4.1 发布的话题

4.2 服务

4.3 参数

五:附件

5.1 zen_imu.launch 内容


一、IMU介绍

        惯性测量模块(IMU,Inertial Measurement Unit)组成。IMU提供飞行器在空间姿态的传感器原始数据,一般由陀螺仪传感器/加速度传感器/电子罗盘提供飞行器9DOF数据。该单元能够反馈自身的运动状态(加速度)和位姿,是机器人身上最重要的传感器之一。IMU能够应用在在机器人导航,机器人控制等诸多方面,可以说IMU的好坏对于一个机器人来说有着近乎决定性的作用

        IMU中使用的传感器基本上都是微机电系统(MEMS),是半导体工业中非常重要的一个分支。

        IMU的选型方案非常多,从几十到几千乃至上万不等。一般IMU内部会包含陀螺仪和加速度计,陀螺仪用来反馈角速度和计算位姿,加速度计用于反馈线速度,陀螺仪和加速度各自提供三个轴向的速度数据,所以一般这种IMU被称为六轴IMU。基于不同原理去制作的陀螺仪和加速度计,能够达到的精度范围也有一定的区别。

        但是对于IMU来说,总会有一个难以克服的问题,即累积误差。由于IMU通过是通过对内部的陀螺仪获取的角速度数据对时间进行积分获取角度数据的,无论一个陀螺仪的精度有多高,总是会在每个时刻产生一些误差,随着积分效应,误差逐渐累积,最后就会产生累积误差。

        为了解决累积误差问题,一般厂家会在IMU内部再集成一个三轴磁力计,从而构成一个所谓的九轴IMU。磁力计的作用是对IMU计算出的位姿定期进行较准,从而解决累积误差。但是磁力计不适合在电磁环境复杂的场合下使用,如果附近有能够产生强磁场的设备,会对磁力计的数据产生非常大的影响。

二、LingAo 6自由度IMU(Isens-ZEN)介绍

参数介绍:

双接口支持

产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-22807296995.13.34342243aQhMdQ&id=664948690062

三、LingAo 6自由度IMU(Isens-ZEN) ROS驱动

3.1 建立工作空间

mkdir -p ~/Lsens_ws/src
cd ~/Lsens_ws/
catkin_make
source devel/setup.bash

3.2克隆代码

cd ~/Lsens_ws/src
git clone https://e.coding.net/lingao/LingAoPackage/lingao_isens_ros.git

3.3 编译源码包

cd ~/Lsens_ws
catkin_make --pkg lingao_isens_ros

 编译完成。

3.4 将IMU通过USB 接入系统

lsusb

 ls /dev

 配置打开USB转串口权限

KERNEL=="ttyUSB[0-9]*", MODE="0666"

3.5 启动IMU驱动

cd ~/Lsens_ws
source devel/setup.bash 
roslaunch lingao_isens_ros zen_imu.launch

现在通过以下命令在ROS 上打印 IMU 值:

#新开一个终端
cd ~/Lsens_ws
source devel/setup.bash 
nvidia@nvidia-desktop:~/Lsens_ws$ rostopic list
/imu/data
/imu/is_autocalibration_active
/imu/mag
/rosout
/rosout_agg
#打印 IMU 值
rostopic echo /imu/data
#默认100HZ的数据输出频率
nvidia@nvidia-desktop:~/Lsens_ws$ rostopic hz /imu/data
subscribed to [/imu/data]
average rate: 99.996
    min: 0.006s max: 0.014s std dev: 0.00070s window: 92
average rate: 100.010
    min: 0.006s max: 0.015s std dev: 0.00079s window: 192
average rate: 100.005
    min: 0.006s max: 0.015s std dev: 0.00066s window: 292

3.6 启动polt绘制姿态、加速度这一些值

#关闭3.5 启动IMU 节点 新开一个终端
cd ~/Lsens_ws
source devel/setup.bash 
#这一条会启动IMU节点和绘图
roslaunch lingao_isens_ros plot_zen_imu.launch

3.7 启动RVIZ 查看IMU

打开终端,启动IMU节点

cd ~/Lsens_ws
source devel/setup.bash 
roslaunch lingao_isens_ros zen_imu.launch

打开新终端,启动rviz

rosrun rviz rviz

Rviz中点击左下角Add添加rviz_imu_plugin,可以看见有坐标系出现,如果没有需要安装 (sudo apt-get install ros-melodic-imu-tools 安装imu功能包)

 这个时候你手动IMU,3个轴会根据IMU的运动而运动

保存RVIZ 配置信息

cd ~/Lsens_ws/src
mkdir rviz
cd rviz

当你想下次继续RVIZ看数据的时候,就可以简单一点:

rosrun rviz rviz

就省去了刚才那些繁琐的配置和输入

四、ISENS ZEN API

4.1 发布的话题

/imu/data_raw (lingap_msgs/Imu)

  • 主题包括来自 IMU 的惯性数据。包括校准加速度、校准角速率和方向。

/imu/is_autocalibration_active (std_srvs/SetBool)

  • 指示陀螺仪自动校准是否正在运行

#启动IMU节点后,在新的终端查看话题
nvidia@nvidia-desktop:~/Lsens_ws$ rostopic list
/imu/data
/imu/is_autocalibration_active
/imu/mag
/rosout
/rosout_agg

4.2 服务

/imu/calibrate_gyroscope (std_srvs/Empty)

  • 激活 IMU 内部陀螺仪偏置校准。在call service之前请确保 IMU 传感器稳定静置在平台上。请确保传感器静止至少 4 秒钟。校准程序完成后,服务调用将返回成功响应。

/imu/reset_heading (std_srvs/Empty)

  • 此服务将传感器的航向(偏航)角重置为零。

/imu/enable_gyro_autocalibration (std_srvs/SetBool)

  • 打开/关闭 IMU 中的自动校准功能,自动校准状态可通过订阅/imu/is_autocalibration_active主题获取。

nvidia@nvidia-desktop:~/Lsens_ws$ rosservice list
/imu/calibrate_gyroscope
/imu/enable_gyro_autocalibration
/imu/reset_heading
/imu_node/get_loggers
/imu_node/set_logger_level
/rosout/get_loggers
/rosout/set_logger_level

4.3 参数

sensor_name (string, default: null)

  • 默认情况下会自动寻找连接到第一个可用传感器,如需要连接到特定串口号请设置value值devicefile:/dev/ttyUSB0

baudrate (integer, default: 115200)

  • 波特率,默认115200

frame_id (string, default: imu)

  • 关联的坐标系

nvidia@nvidia-desktop:~/Lsens_ws$ rosparam list
/imu_node/baudrate
/imu_node/frame_id
/rosdistro
/roslaunch/uris/host_nvidia_desktop__33189
/rosversion
/run_id
​
nvidia@nvidia-desktop:~/Lsens_ws$ rosparam get /imu_node/frame_id
imu_link
nvidia@nvidia-desktop:~/Lsens_ws$ rosparam get /imu_node/baudrate
115200

五:附件

5.1 zen_imu.launch 内容

<launch>
    <!-- ISENS IMU  Sensor-->
    <node pkg="lingao_isens_ros" type="zen_sensor_node" name="imu_node" output="screen">
        <!-- <param name="sensor_name" value="devicefile:/dev/ttyUSB0" /> -->
        <param name="baudrate" value="115200" />
        <param name="frame_id" value="imu_link" />
​
    </node>
​
</launch>

如果你想对串口和波特率之类的有变动,可以在这里启动lanuch 文件做变更

纠错,疑问,交流: 911946883@qq.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot+Mybatis+layui框架实现的前后端分离的医院药品管理系统源码+数据库

springboot layui药品管理系统 介绍 前后端分离的药品管理系统。 完整代码下载地址&#xff1a;Spring BootMybatislayui框架实现的前后端分离的医院药品管理系统源码数据库 软件架构 前端&#xff1a;layui框架 后端&#xff1a;Spring BootMybatis 数据库&#xff1a;…

静态库和动态库

&#xff08;1&#xff09;什么是库 &#xff08;2&#xff09;静态库的制作 汇编 生成对应的.o文件&#xff08;命令&#xff1a;gcc -c add.c div.c mult.c sub.c&#xff09;创建静态库&#xff08;命令&#xff1a;ar rcs libcalc.a add.o div.o mult.o sub.o&#xff09;…

数据结构-栈和队列

目录&#x1f921;前言&#x1f44d;栈&#x1f620;栈的概念及结构&#x1f620;栈的实现&#x1f44d;队列&#x1f620;队列的概念及结构&#x1f620;队列的实现&#x1f4a1;总结&#x1f921;前言 本篇博客主要记录的是栈和队列的学习和总结。 &#x1f44d;栈 &#…

虹科分享 | 如何解决CAN与以太网之间的信息有效传递与智能变送难题?

背景 在工业中&#xff0c;一般把现场总线应用于车间、生产现场等生产第一线&#xff0c;作为控制网络&#xff0c;而以太网主要应用于企业管理层和生产监控层。由于不同现场总线之间没有统一标准、难以接入因特网等缺点&#xff0c;使得目前大部分企业控制网络与信息网络相互…

猎聘和BOSS直聘谁会成为在线招聘的最后赢家?

文|螳螂观察 作者|易不二 在线招聘行业正在焕发新的巨大活力。 12月22日&#xff0c;BOSS直聘正式在港交所主板完成双重主要上市。BOSS直聘创始人赵鹏扬言&#xff0c;公司未来三年内有一个获取一亿用户的“小目标”&#xff0c;纯蓝领市场是公司完成这一目标的重要增长动力…

移位操作符和位操作符(从概念到相关算法题详解)

目录 概念 基础知识 左移操作符(<<) 右移操作符(>>) 按位与(&) 按位或(|) 异或(^) 相关算法题 1.不能创建临时变量(第三个变量),实现俩个数的交换 方法1: 方法2: 写一个方法,返回参数中二进制中1的个数 方法1: 方法2: 方法3: 俩个int(32位)整…

2019年数维杯国际大学生数学建模C题猪肉价格波动分析求解全过程文档及程序

2019年数维杯国际大学生数学建模 C题 猪肉价格波动分析 问题重述&#xff1a; 中国是一个育种大国。猪肉产业在畜牧业中起着主导作用。同时&#xff0c;猪肉已成为人们餐桌上的主要肉类来源之一。随着人口的增加&#xff0c;消费和生活也得到了改善。 2018年8月3日&#xff0…

Android Studio中设置Compose 代码模版

File Templates 有两种方式能找到编辑File Templates的入口 在 File -> New -> Edit File Templates 或者 在项目结构目录中点击右键菜单 New -> Edit File Templates 在设置界面中的 Editor -> File and Code Templates #if (${PACKAGE_NAME} && ${…

dwg怎么转成dxf格式?手机也能轻松操作

dwg怎么转成dxf格式呢&#xff1f;相信很多小伙伴应该知道这两种格式都是CAD图纸中的一种&#xff0c;那么它们有什么区别呢&#xff1f;第一&#xff0c;性质不同dwg图形文件是计算机辅助设计软件AutoCAD用来保存设计数据的专有文件格式。dxf图形文件是DWG格式的ASCII格式变体…

Codeforces Global Round 14 E Phoenix and Computers

大意&#xff1a; 一排电脑&#xff0c;每次可以选择打开一台电脑&#xff0c;如果某一台电脑相邻的左边和右边都被打开了&#xff0c;它会自动打开。问打开n台电脑的方案数 思路&#xff1a; O(n^3)做法 不难发现&#xff0c;在操作过程中&#xff0c;一台台电脑其实就是被…

电磁明渠流量计怎么安装?

1、设备介绍 电磁明渠流量计是由流量显示仪、流速计、液位计组成的流速面积法测流量的明渠测量流量系统。 工作原理&#xff1a;基于法拉第电磁感应定律&#xff0c;当导电流体流过电磁式流速仪的磁场时&#xff0c;在与流速和磁场两者相垂直的方向就会产生与平均流速成正比的…

C++ 数学与算法系列之牛顿、二分迭代法求解非线性方程

1. 前言 前文介绍了如何使用“高斯消元法”求解线性方程组。 本文秉承有始有终的态度&#xff0c;继续介绍“非线性方程”的求解算法。 本文将介绍 2 个非线性方程算法&#xff1a; 牛顿迭代法。二分迭代法。 牛顿迭代法&#xff08;Newtons method&#xff09;又称为牛顿…

千万别熬夜:只有睡觉,才能修复DNA损伤

睡眠是人体的一种修复过程&#xff0c;可以恢复精神和解除疲劳。人的一生中&#xff0c;大约三分之一的时间是在睡眠中度过&#xff0c;良好的睡眠是国际社会公认的三项健康标准之一&#xff0c;而睡眠时间过短或睡眠不佳均会影响健康。在中国&#xff0c;超3亿人存在睡眠障碍、…

基于智能电控柜原理的物联网云平台方案

本方案基于智能电控柜的原理&#xff0c;通过无线传输模块将现场采集到的数据经过无线网络发送到物联网云平台&#xff0c;同时可通过云组态和数据中心将现场画面所见即所得的同步到互联网终端。 用户在安装有监控软件后&#xff0c;可以用手机 APP或者在云平台上直接控制电控柜…

Ubuntu自动登录脚本,expect自动切换用户,xshell自动登录脚本

Ubuntu自动登录脚本&#xff0c;expect自动切换用户&#xff0c;xshell自动登录脚本一、!/usr/bin/expect -f的意义二、spawn命令行&#xff1a;三、send命令&#xff1a;四、expect五、interact命令&#xff1a;六、xshell自动化脚本1、怎么使用脚本2、编写脚本3、vbs的不足本…

https访问流程详解

1. 基础知识 1.1 https起源 鲍勃有两把钥匙&#xff0c;一把是公钥&#xff0c;另一把是私钥。 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密&#xff0c;就可以达到保密的效果。 鲍勃收信后&#xf…

jvm-sandbox:基础了解及demo演示

文章目录一、基础准备-被测应用二、代码编写-自定义Module三、jvm-sandbox安装及基础命令四、jvm-sandbox demo演示4.1、改变方法返回4.2、异常注入五、资源链接一、基础准备-被测应用 准备&#xff1a;先创建一个基础的SpringBoot项目并打jar包后在服务器启动 RestControll…

TP5反序列化利用链

说明 该文章来源于同事lu2ker转载至此处&#xff0c;更多文章可参考&#xff1a;https://github.com/lu2ker/ 文章目录说明TP5反序列化利用链下图是Mochazz 大佬画的非常优雅的一张调用链图Action&#xff01;CUT&#xff01;TP5反序列化利用链 本文以第二人称视角重点谈谈给…

max蒙皮动画+动作

首先关于max人物动画&#xff01;如何制作&#xff01; 首先&#xff01; 我们要准备一个模型&#xff01;人物的模型&#xff01; 这是一个人物模型&#xff01;obj的&#xff01;没有任何东西&#xff01;你也可以选择其他&#xff0c;我是从虚幻里面直接导出的&#xff0…

太卷了,华为某领导说招外包只要985!

你听说过华为od吗&#xff1f;od是outsourcing dispatch&#xff08;外包派遣&#xff09;的简称&#xff0c;虽然华为每年会挑选一部分优秀的od员工转为华为正编员工&#xff0c;但od本质上还是外包。最近一位华为员工爆料&#xff1a;太卷了&#xff01;领导说招od员工也要98…