我是靠谱客的博主 单身洋葱,最近开发中收集的这篇文章主要介绍使用MATALB来辅助ROS开发时常用的simulink模块介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

   最近,在探索使用MATLAB来辅助ROS开发,当我们想要实现某项功能或者完成某项任务的时候,不知道有哪些已有的工具可以使用也是开发过程中的阻碍之一,本篇文章介绍一下我对相关的simulink模块的使用探索

   本文以MATLAB2020B的Simulink模块为例进行介绍



注:本文转载于古月居,原文链接如下:

            https://www.guyuehome.com/36019

   本篇文章我首发在古月居,因版权原因,在CSDN不能放全文,只能放一小部分(本篇文章共七部分,在CSDN仅放第1到3部分),欢迎大家前往古月居查看完整文章!!!链接如上↑↑↑,或者你可以点击下面的超链接跳转:

   使用MATALB来辅助ROS开发时常用的simulink模块介绍(点击可跳转)




   目录:

   1、Subscribe模块与Bus selector模块
   2、MATLAB Function模块
   3、Blank Message模块、Bus Assignment模块与Publish模块
   4、Current Time模块
   5、Get Parameter模块与Set Parameter模块
   6、Read Image模块与Video Viewer模块
   7、Read Point Could模块


   1、Subscribe模块与Bus selector模块

   Subscribe模块可以创建一个订阅者,接收来自ROS网络的消息。它的输出Msg是一个ROS消息(总线信号)。Msg一般需要接一个Bus selector模块来选择提取总线中我们想要处理的信号。

   该模块可以创建一个订阅者,接收来自ROS网络的消息。它的输出Msg是一个ROS消息(总线信号)。Msg一般需要接一个Bus selector模块来选择提取总线中我们想要处理的信号。

   如下图所示,我订阅了ROS发布的话题/imu_data,并使用Bus selector模块选择了从总线中提取我们需要的惯性传感器IMU输出的四元数

   经过转换公式与角度变化,将其转换成欧拉角,就可以使用MATLAB实时观测小车的姿态信息了,如下面的动图所示:

在这里插入图片描述

   Subscribe模块的输出IsNew是一个布尔值,表示在上一个时间步骤中是否收到了消息。当IsNew为真时,Msg持有新收到的消息。当IsNew为假时,Msg持有最后收到的消息。如果我们对该输出此并不关心,可以连一个terminator模块,terminator的作用是终止未连接的输出端口。使用Terminator模块去盖住不与其他模块连接的模块的输出。如果我们需要对其进行观测,则可以连一个Scope模块,如下图所示:

在这里插入图片描述


   2、MATLAB Function模块

   simulink的使用,通过模块化的编程方式,看似是简单了,但是当面对比较复杂的数学公式的时候,使用simulink搭建速度就变慢了,这个时候就可以使用MATLAB Function模块了,它允许我们在simulink中嵌入MATLAB代码,比如上面读取四元数转化为欧拉角,并进行进制转换的例子中,转化公式就可以通过MATLAB Function来实现,编写快速,也很方便
在这里插入图片描述


   3、Blank Message模块、Bus Assignment模块与Publish模块

   Blank Message模块可以用指定的消息或服务类型创建一个空白消息。这里的空白消息的消息类型,根据我们的需要进行设定,它的输出Msg是一个空白的ROS消息(总线信号)。设置Class参数可以在ROS消息、服务请求和服务响应消息之间进行选择。一般接到使用总线分配块Bus Assignment的Bus接口,来使用Bus Assignment模块修改总线信号中的特定字段。Bus Assignment模块允许总线中的元素被分配新的值。左边的列表框显示输入总线中的元素。使用选择按钮来选择要分配的元素。右边的列表框显示选择的内容。使用向上、向下或移除按钮重新排列选择。

   比如我选择指定了名为ackermann_msgs/AckermannDriveStamped消息,并通过Bus Assignment模块对我们想要指定的值SteeringAngle和Speed进行赋值

   到这里,我们需要发布的消息就配置完成了,接下来就要通过Publish模块将其发送出去了

   Publish模块用于向ROS网络发送消息。它的输入需要接一个一个ROS消息(总线信号)。该信号一般由Bus Assignment模块提供

   在这个例子里,我们将配置好的消息以话题的形式发布出去,在ROS中已经写好了一个订阅者,它会订阅名为/ackermann_cmd_mux/output的话题,然后控制小车按照接收到的数据运动,因此我们需要将已经配置好的运动信息以话题/ackermann_cmd_mux/output的形式发布出去,我们将SteeringAngle设为-0.4,Speed设为0.7就可以让小车画圆,如下图所示

在这里插入图片描述


   4、Current Time模块

   请前往古月居查看原文,阅读本部分内容 https://www.guyuehome.com/36019


   5、Get Parameter模块与Set Parameter模块

   请前往古月居查看原文,阅读本部分内容 https://www.guyuehome.com/36019


   6、Read Image模块与Video Viewer模块

   请前往古月居查看原文,阅读本部分内容 https://www.guyuehome.com/36019


   7、Read Point Could模块

   请前往古月居查看原文,阅读本部分内容 https://www.guyuehome.com/36019

在这里插入图片描述


  




注:本文转载于古月居,原文链接如下:

            https://www.guyuehome.com/36019

   本篇文章我首发在古月居,因版权原因,在CSDN不能放全文,只能放一小部分(本篇文章共七部分,在CSDN仅放第1到3部分),欢迎大家前往古月居查看完整文章!!!链接如上↑↑↑,或者你可以点击下面的超链接跳转:

   使用MATALB来辅助ROS开发时常用的simulink模块介绍(点击可跳转)



最后

以上就是单身洋葱为你收集整理的使用MATALB来辅助ROS开发时常用的simulink模块介绍的全部内容,希望文章能够帮你解决使用MATALB来辅助ROS开发时常用的simulink模块介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部