2024年最全【ROS2】获取imu数据并可视化保姆级教程(C++)_imu可视化,2024年最新面试官问的那些Linux运维原理你都懂吗

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

成功安装后也可以用cuecom看下有无收到数据(看完记得把cuecom关了,不然影响后续的调试),cuecom安装命令:

sudo apt install cutecom

前面的步骤完成后,可以在终端输入下面指令查看映射的串口号:

ls /dev/ttyUSB*

串口号后续我们需要使用,一般来说是返回/dev/ttyUSB0

2.安装ros2-serial

这个是串口字符数据转发到标准ROS2通信的库,安装步骤如下:

git clone https://github.com/RoverRobotics-forks/serial-ros2.git
cd serial-ros2
mkdir build
cd build
cmake ..
make
sudo make install

3.创建工作空间

先创建文件架,编译一个空的工作空间:

mkdir -p ~/imu_test_ws/src
cd ~/imu_test_ws
colcon build

再创建一个基于c++功能包,用于解析和读取imu数据:

ros2 pkg create --build-type ament_cmake imu_get

在imu_get功能包下的src文件夹里面创建下面三个文件后续在里面编写代码:

sudo gedit transform.hpp
sudo gedit publisher_imu.cpp
sudo gedit sub_imu.cpp

transform.hpp文件用于解析从imu受到的原始数据,publisher_imu.cpp用于发布imu数据的相关话题,sub_imu.cpp用于订阅话题。

接下来,我们就要编写三个文件里面的代码了。

4.编写transform.hpp

在coding之前,我们需要看一下imu的协议说明,大部分imu的协议都是大同小异的,只要能看明白一个型号的imu协议,其他型号也大差不差。我的imu协议说明如下:
在这里插入图片描述
在这里插入图片描述这里以加速度为例,角度度和角度同理。一个完整的数据帧有11个字节,我们首先要读到协议头,以确保我们获取到一段完整的数据帧,然后识别数据类型,最后在根据协议给出的说明获取需要的数据,温度数据我这里没有用到,所以只对加速度数据的六个字节进行位运算。transform.hpp的代码如下:

#include <string>
#include <ctype.h>
#include <float.h>
#include <math.h>
class transform\_imu
{
private:
    char \*stcTime;
    char \*stcAcc;
    char \*stcGyro;
    char \*stcAngle;

public:
    struct Acc
    {
        double x;
        double y;
        double z;
    }acc{0,0,0};
    struct Gyro
    {
        double x;
        double y;
        double z;
    }gyro{0,0,0};
    struct Angle
    {
        double r;
        double p;
        double y;
    }angle{0,0,0};
    
/\*public:
 transform\_imu(double,double,double);
 //构造函数,也可尝试用初始化列表方式\*/

    void FetchData(auto &data, int usLength)
{   
    int i
  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值