ROS学习篇之传感器(二)IMU(超核IMU HI266)

news2024/9/23 5:26:23

文章目录

  • 一.确定IMU型号
  • 二.安装驱动
    • 1.找到驱动的包
    • 2.解压该压缩包
    • 3.安装步骤说明
    • 4.具体安装
    • 5.检查IMU的usb接口是否插到电脑
  • 三.在RVIZ中的显示
    • 1.复制示例下的src里的文件复制到自己的src下
    • 2.自己的文件目录
    • 3.尝试编译一下
    • 4.示例的文件说明
    • 5.运行Demo
    • 6.配置Rviz
  • 四.查看IMU的实时数据
    • 1.运行消息包的launch文件
    • 2.消息包的数据解释

一.确定IMU型号

超核IMU HI266 六轴IMU

官网:http://www.hipnuc.com/product_attitude_ch10x.html

示例代码:https://gitee.com/yandld/products/tree/master/examples

二.安装驱动

1.找到驱动的包

在示例代码下的如下文件里,如下图
在这里插入图片描述

2.解压该压缩包

在这里插入图片描述

3.安装步骤说明

在这里插入图片描述

这里我们是在ubuntu里安装驱动,看上图ubuntu的安装步骤即可,需要注意的是 <kernel-version>需要改成自己电脑的内核版本,在命令行输入:
uname -r
在这里插入图片描述
所以我的<kernel-version>是5.15.0-76-generic

4.具体安装

在驱动解压的目录“Linux_3.x.x_VCP_Driver_Source”下,打开终端输入

make
sudo cp cp210x.ko /lib/modules/5.15.0-76-generic/kernel/drivers/usb/serial/
sudo insmod /lib/modules/5.15.0-76-generic/kernel/drivers/usb/serial/usbserial.ko
sudo insmod cp210x.ko

5.检查IMU的usb接口是否插到电脑

IMU没有插到电脑usb之前,使用命令:

ls -l /dev/ttyUSB*

无法访问;

插入接口之后,再使用该命令

ls -l /dev/ttyUSB*

可以看到是ttyUSB0–表示已经接上IMU了。

三.在RVIZ中的显示

1.复制示例下的src里的文件复制到自己的src下

在这里插入图片描述

2.自己的文件目录

在这里插入图片描述

3.尝试编译一下

退到自己的工作空间下,输入编译指令

catkin_make

报错信息如下:
在这里插入图片描述

报错说明:缺少serial库。
安装对应的包即可:
sudo apt-get install ros-noetic-serial
其中noetic改成自己ros对应的版本。

再次尝试编译:(100%表示编译完成)
在这里插入图片描述

4.示例的文件说明

在这里插入图片描述

5.运行Demo

先配置环境路径

source ./devel/setup.bash

运行imu_rviz.launch

roslaunch imu_launch imu_rviz.launch

报错信息
在这里插入图片描述

报错说明,要么是IMU没有插到电脑的USB口里,要么是端口的权限不够,我们在连接好的情况下,赋予端口权限即可。
sudo chmod 777 /dev/ttyUSB0

6.配置Rviz

我们成功运行launch文件后,并不能实时显示IMU的数据,还需要简单的配置一下
步骤1: 先安装一个RVIZ插件(一会儿需要用到)

sudo apt install ros-noetic-rviz-imu-plugin

步骤2: 添加IMU可视信息
在这里插入图片描述
步骤3: 配置坐标和话题数据
在这里插入图片描述
不错意外的话,你手动旋转IMU,在Rviz里也会随之改变。

四.查看IMU的实时数据

1.运行消息包的launch文件

先配置环境路径

source ./devel/setup.bash

运行imu_msg.launch

roslaunch imu_launch imu_msg.launch

不错意外的话,在运行的终端会实时刷新IMU的数据。

2.消息包的数据解释

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

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

相关文章

【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)

全方面带你透彻探索服务优化技术方案&#xff08;服务器系统性能调优&#xff09; 调优意义计划分析 流程相关分析优化分析Nginx请求服务日志将请求热度最高的接口进行优化异步调用优化方式注意要点 分析调用链路追踪体系建立切面操作分析性能和数据统计存储相关的调用以及耗时…

Pycharm中画图警告:MatplotlibDeprecationWarning

前言&#xff1a; \textcolor{Green}{前言&#xff1a;} 前言&#xff1a; &#x1f49e;这是由于在python中画图出现的问题&#xff0c;一般不会有错。因为它只是个警告&#xff0c;但是我们也可以知道解决这个问题的方法&#xff0c;防止后面出问题的时候知道怎么解决。 前因…

窗口函数 OVER(PARTITION BY ...)

开窗函数的语法结构&#xff1a;分析函数() over(partition by 分组列名 order by 排序列名 rows between 开始位置 and 结束位置) over()函数中包括三个函数&#xff1a;分区partition by 列名、排序order by 列名、指定窗口范围rows between 开始位置 and 结束位置 rows bet…

Win10共享文件|文件夹 电脑之间快速传输文件的方法

一、设置共享的文件或文件夹 1、A电脑上的文件要共享 进行如下设置&#xff1a; 右击要共享的就文件或文件夹->属性->"共享 "选项卡->"共享"按扭->选择共享的用户 下拉选择"Everyone"->单击"添加"按扭->根据需要设…

PVE8.0内核构建支持IOMMU拆分

PVE直通SATA控制器给群晖的时候&#xff0c;发现网卡、USB、SATA控制器都在一个IOMMU上。 直通完了&#xff0c;PVE直接失联了。这肯定不行。百度了一下说是要编译内核把IOMMU拆开。下面记录一下编译内核的过程。 准备编译环境 我直接用pve物理机编译&#xff0c;怕破坏环境的…

【Spring/Java项目】如何利用swagger-parser解析yaml中的api请求类型、注释、接口名等等(含示例代码)

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://zhangxiaofan.blog.csdn.net/article/details/129167371 目录 前言 官方文档 项目配置 示例代码 测试文件 解析代码 运行结果 前言 用到这个工具是因为项目需要&#xff0…

构造函数与成员变量初始化

1 为何需要定义构造函数&#xff1f; 构造函数的主要目的在于对成员变量进行初始化&#xff0c;确保类对象具有良好的初始状态。 2 构造函数对成员变量的初始化 接下来&#xff0c;我们将完善前文中提到的几个构造函数&#xff0c;使其能够有效地完成成员变量的初始化工作。 …

【趣说冒泡排序】

前言 在计算机科学中&#xff0c;排序算法是一种常见且重要的算法。排序算法的目标是将一组无序的数据按照一定的规则进行重新排列&#xff0c;以便更方便地进行搜索、查找或其他操作。 冒泡排序&#xff08;Bubble Sort&#xff09;是最简单的排序算法之一&#xff0c;它的原…

软件测试技能,JMeter压力测试教程,统一随机定时器/高斯随机定时器(十九)

目录 前言 一、统一随机定时器 1、统一随机定时器&#xff08;Uniform Random Timer&#xff09; 2、设置延迟时间 二、高斯随机定时器 1、高斯随机定时器Gaussian Random Timer 2、设置延迟时间 前言 如果想加个随机等待时间可以用到 jmeter 里面的统一随机定时器&…

WPF 样式设计总结

文章目录 行内样式页内样式样式继承控件样式只能继承一个 局部样式窗口控件和用户控件直接的区别使用代码用户控件引用 全局样式 行内样式 我们新建一个简单的样式 <Grid><TextBox Text"我是样式" FontSize"100" /></Grid>这种属性直接…

【QT】常用组件及其用法总结

前面我们看了如何用QT实现纯代码和纯Designer工具的图形化的页面设计&#xff0c;下面我们来看看如何用QT结合两者实现混合界面设计&#xff0c;主要是学习使用一些常用的组件。 目录 信号和槽 菜单栏、状态栏和工具栏 QLabel setGeometry Button pushbutton CheckBox…

SSMP整合案例(10) vue端调整项目环境 发送请求 基本界面编写

好 之前我们已经将后端服务整个写好了 然后 我们就继续回来写我们前端的项目 之前文章SSMP整合案例(1) 构建 Spring Boot Vue MySql项目环境中我们顺手搭建了前端的项目环境 我们打开它 在终端输入 npm i axios0.21.0引入 axios 它是一个专门用来发请求的第三方插件 一定要注…

Nginx(4)nginx的反向代理

反向代理 正向代理反向代理的常用指令反向代理实战 Nginx的安全控制使用SSL对流量进行加密nginx添加SSL的支持Nginx的SSL相关指令生成证书 反向代理系统调优 正向代理代理的对象是客户端&#xff0c;反向代理代理的是服务端&#xff0c;这是两者之间最大的区别。Nginx即可以实现…

Python实现发送电子邮件功能

大家好&#xff0c;以编程方式发送电子邮件可以成为自动化通信过程的一种强大方式&#xff0c;本文将探讨如何使用Python发送电子邮件&#xff0c;介绍如何设置SMTP服务器、为Gmail生成应用程序密码&#xff0c;并提供使用smtplib库发送电子邮件的逐步指南。 在深入研究编码之…

单链表【数据结构】

1、顺序表存在的问题 顺序表存在一些问题&#xff1a; &#xff08;1&#xff09;中间、头部的插入删除&#xff0c;时间复杂度为O(N)&#xff08;2&#xff09;增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗。&#xff08;3&#xff09;增容…

剑指 Offer 42: 连续子数组的最大和

这道题多了第二句&#xff0c;并且作为nums[i]&#xff0c;当前值一定是要取的&#xff0c;只是要不要加上前面那个而已。

uniapp 之 uniapp app 与uniapp H5的通信 webview,以及处理H5页面的手机物理返回问题

目录 app给H5传参&#xff1a;通过h5地址传参app给H5传参&#xff1a;通过方法evalJS传参H5给app传参&#xff1a;通过web-view 组件的message绑定的方法处理H5页面的手机物理返回问题 APP端&#xff1a; <web-view :webview-styles"webviewStyles" :src"sr…

python学习之【继承、封装、多态】

#来评选你心中的TOP1编程语言# 前言 距离上篇文章 python学习之【类和对象】已有三个星期之久&#xff0c;这篇文章介绍 面向对象的三大特征——封装&#xff0c;继承&#xff0c;多态。 对于编程初学者来说&#xff0c;学习python应该是比较好入手的&#xff0c;文末会给大家…

计算机视觉:多相机硬件同步拍摄

计算机视觉&#xff1a;多相机硬件同步拍摄 传感器同步硬件同步信号FSYNC信号STROBE信号 硬件接线硬件设备接线步骤&#xff1a; 软件驱动参考文献 传感器同步 目前主要有两种方法来同步不同传感器的信息&#xff08;帧、IMU数据包、ToF等&#xff09;&#xff1a; 硬件同步&…

2023-07-01:redis过期策略都有哪些?LRU 算法知道吗?

2023-07-01&#xff1a;redis过期策略都有哪些&#xff1f;LRU 算法知道吗&#xff1f; 答案2023-07-01&#xff1a; 缓存淘汰算法&#xff08;过期策略&#xff09; 当Redis的内存超出物理内存限制时&#xff0c;内存中的数据就会频繁地与磁盘进行交换&#xff0c;这个过程…