MATLAB与ROS联合仿真——订阅ROS消息类功能模块介绍

1、Subscribe Ackermann Location Information C

(1)输入参数:无

(2)输出参数:Xr和Yr是小车当前在世界坐标系下的坐标

(3)主要作用:作为ROS与MATLAB的通讯接口,从ROS中订阅小车当前的位置信息,并输出

(4)内部结构:

(5)具体实现过程:通过ROS工具箱中的Subscribe模块从ROS中订阅话题/gazebo/link_statesa

      通过Bus Selector模块选择ROS总线中的Pose

    使用Selector模块选择其中的第2路信号,并设置维度为1,大小为16

再次使用Bus Selector模块选择Position中的X和Y,即我们需要的位置信息

将分离出的信息输出

(6)其他说明:无

2、Subscribe  Ackermann  Robot Posture C

(1)输入参数:无

(2)输出参数:yaw、pitch、roll是小车姿态的欧拉角信息,本实验中主要使用yaw,即机器人坐标系与世界坐标系的夹角

(3)主要作用:作为ROS与MATLAB的通讯接口,以四元数的形式从ROS中的小车上搭载的IMU传感器中订阅小车当前的姿态信息,并通过转换公式将其转换为欧拉角进行输出。

(4)内部结构:

(5)具体实现过程:通过ROS工具箱中的Subscribe模块从ROS中订阅话题/imu_data

通过Bus Selector模块选择Orientation中的X、Y、Z、W,即四元数

       通过MATLAB Function模块编写将四元数转换为欧拉角的函数,该函数的输入参数为读取到的四元数,输出参数即我们需要的欧拉角,注意所有的角度计算均为弧度制

然后将我们计算出的欧拉角输出就可以了

(6)其他说明:无

3、Subscribe Target Point Information C

(1)输入参数:无

(2)输出参数:X,Y是小车当前的目标点的坐标,也就是小车当前要跟踪的点的坐标

(3)主要作用:作为ROS与MATLAB的通讯接口,从ROS中的订阅小车目标点的位置信息,并输出。

(4)内部结构:

(5)具体实现过程:通过ROS工具箱中的Subscribe模块从ROS中订阅话题/Target_location话题

       通过Bus Selector模块选择其中的X、Y,即我们需要的目标点在世界坐标系下的位置坐标

然后将目标点的位置信息输出

(6)其他说明:注意订阅的/Target_location话题是我们自定义的话题,该模块需要与发布该话题的模块Publish Target Point Information C搭配使用,使用方法为在生成ROS代码的时候将Publish Target Point Information C模块包含在内,这样将生成的代码放到ROS中执行的时候,就会发布这个话题了,此时再在MATLAB中使用Subscribe Target Point Information C模块订阅该话题,就可以对目标点的位置进行观测了。

4、Subscribe to RGB images

(1)输入参数:无

(2)输出参数:无

(3)主要作用:订阅小车搭载的深度相机发布的RGB彩色信息,并以实时图像的形式显示出来

(4)内部结构:

(5)具体实现过程:通过ROS工具箱中的Subscribe模块从ROS中订阅话题/camera/image_raw

将输出端Msg输送给read image模块,双击该模块,设置像素为480x 640

将read image模块的输出端image输送给Video Viewer模块进行显示

(6)其他说明:无

5、Subscribe to depth and point cloud images

(1)输入参数:Directional_angle用于设定点云图像的方向角,一般设置为0,Pitch_angle用于设定点云图像的俯仰角,常用值为-90和0,这两个输入参数均用来调节3D点云图像的视野

(2)输出参数:无

(3)主要作用:订阅小车搭载的深度相机发布的深度信息,并以实时图像的形式显示出其深度图像、点云图像、点云质心

(4)内部结构:

(5)具体实现过程:通过ROS工具箱中的Subscribe模块从ROS中订阅话题/cameraldepth/points

将输出端Msg输送给Read Point Cloud模块,双击该模块,并进行如下图所示的配置

       将Read Point Cloud模块的输出端XYZ输送给pointCloudCOM函数块将坐标矩阵拆分成X、Y、Z的列向量输出,并计算出点云质心进行输出,pointCloudCOM函数块的内容如下:

       将Read Point Cloud模块的输出端RGB输送至Video Viewer模块,显示其深度图像,将pointCloudCOM函数块的输出输送至fcn函数块,分别绘制点云图,及点云质心其内部程序如下所示

(6)其他说明:无

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值