【ROS学习】编写自定义消息

最近在捣鼓我自己制作的IMU模块,STM32通过IIC读取MPU9250的原始数据,然后通过串口发送给ros端,ros端进行解析,并通过话题发布出去!这时我就考虑了,未来可能出现的数据情况,如下:

解算后的姿态角度:

俯仰角float64pitch
偏航角float64yaw
翻滚角float64roll
旋转角float64w

原始加速度和角速度的数据:

原始加速度x轴

int32linear_acceleration_raw_x
原始加速度y轴int32linear_acceleration_raw_y
原始加速度z轴int32linear_acceleration_raw_z

原始角速度x轴

int32angular_velocity_raw_x
原始角速度y轴int32angular_velocity_raw_y
原始角速度z轴int32angular_velocity_raw_z

换算后有物理量的加速度和角速度数据:

加速度x轴

int32linear_acceleration_x
加速度y轴int32linear_acceleration_y
加速度z轴int32linear_acceleration_z

角速度x轴

int32angular_velocity_x
角速度y轴int32angular_velocity_y
角速度z轴int32angular_velocity_z

 决定好具体有啥类型的数据后,开始搞起来!

1、首先创建一个存放message文件的文件夹

2、新建三个msg文件

 3、编写message代码

①Imu_data.msg代码:

int32 x 
int32 y 
int32 z

②Orientation_data.msg代码:

float64 pitch 
float64 yaw 
float64 roll 
float64 w

③imu.msg代码:

Orientation_data orientation
Imu_data linear_acceleration_raw
Imu_data angular_velocity_raw
Imu_data linear_acceleration
Imu_data angular_velocity

分析一下:

首先分别定义了两种类型,一种是int32类型和float64类型,然后通过imu.msg进行添加复用!~

4、配置

①配置package.xml

  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

②配置CMakeLists.txt

 

 我们也可以看到生成的消息应该放在msg的文件夹中 

 

5、开始编译 

编译完我们看下我们转换后的文件在哪里~

我们可以看到编译完系统给我们转换为.h头文件,到时直接包含头文件即可~

Python的话可以看下这里

 

 6、查看消息的内容~

rosmsg show robot_start/imu 

 编写代码包含的头文件包含以下即可:

然后在发布话题修改成我们自定义的消息即可~

7、测试效果~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值