学生休息室

分享技术和现实生活中的例子,学生如何在他们的日常项目中使用MATLAB和Simulink # studentsuccess万博1manbetx

开始使用MATLAB仿真软件,ROS万博1manbetx

塞巴斯蒂安·卡斯特罗回到谈论连接MATLAB和Simulink仿真的基础知识吗万博1manbetx机器人操作系统(ROS)

注意:R2015a,机器人系统工具箱MATLAB和Simulink装备ROS万博1manbetx官方接口。在R2019b,这已经搬到新的功能ROS工具箱。这篇文章和视频创建R2019b释放之前,你可能会发现一些不同的语法和产品命名。

概述

机器人操作系统(ROS)是一种常用的设计复杂机械系统的框架。它是受欢迎的为构建分布式机器人软件系统,以及为模拟集成包,可视化,机器人算法等等。ROS工业已成为越来越受欢迎,尤其是在自动车辆的发展。

ROS工具箱提供的ROS接口允许您:

总之,基于MATLAB和Simulink可以共万博1manbetx存与ROS工作流通过桌面原型,部署独立的ROS节点,或两者兼而有之。如果你想设计一个小的组成部分在MATLAB和Simulink系统,保持阅读!万博1manbetx

连接MATLAB和活性氧

机器人系统工具箱提供了一个接口与ROS MATLAB脚本和桌面原型。这包括功能:

  • 开始或连接到一个ROS的主人
  • 使用主题(发布/订阅),服务,行动,和服务器的参数
  • 阅读专业信息(如图像、激光雷达扫描点云,和占用网格)

一个简单的基于MATLAB代码片段的发布和订阅控制算法如下。

在上面的示例中,该算法使用while循环管理,这意味着循环迭代尽快处理。有一些额外的方法安排MATLAB代码的执行。

  • 利率:您可以使用rosrate放慢速度控制回路基于CPU的挂钟或者ROS主时钟,分别。
  • 定时器:创建MATLAB定时器对象可以安排在不同的时间表没有阻塞函数调用。这意味着您可以有多个定时器在后台运行,同时获得MATLAB命令窗口。

注意:所有的代码运行在定时器和ROS订户回调将执行在一个线程,用户由于MATLAB环境是单线程(尽管一些内置函数在内部使用多线程)。

ROS在MATLAB接口的更多信息,请看下面的视频。
[视频]MATLAB和Simulink万博1manbetx仿真机器人领域:开始使用MATLAB和活性氧

连接模型和活性氧万博1manbetx

活性氧ROS的工具箱还包括一块模型库连接。万博1manbetx这包括功能:

通过仿真软万博1manbetx件,您可以利用块样品时间和速度转换构建多重速率的算法,如下所示。

模型的另一个好处是能够结合MATLAB,仿真软万博1manbetx件,Stateflow建模语言对不同算法组件。

  • MATLAB代码有利于组件最好的表达了与文本编程,比如数组/矩阵操作和机器学习。如果你有MATLAB编写的算法,你可以叫他们在仿真软件中使用万博1manbetxMATLAB函数块
  • 万博1manbetx块有利于控制算法,通常表示为方框图。还可以利用内置块库为信号处理、计算机视觉、机器人算法等等。
  • Stateflow图表是好的决定逻辑、状态机、表格的逻辑,和基于时间或基于事件的调度。

在仿真软件界面ROS的更多信息,请看下面的视频。万博1manbetx
[视频]MATLAB和Simulink万博1manbetx仿真机器人领域:开始使用仿真软件和活性氧

生成独立的ROS节点

我们讨论了MATLAB和Simulink如何帮助您设计和万博1manbetx验证机器人算法从桌面。即使你的机器人的机载计算机安装和运行MATLAB符合要求,你可能不需要这些的开销在最终系统设计和验证工具。另一方面,为低成本的安装MATLAB是完全不可能的ROS启用平台等覆盆子π

作为你过渡到最终实现,您可以手动MATLAB和Simulink模型算法移植到你的机器人。万博1manbetx或者,你可以考虑用代码生成自动化这个过程。这可以加快开发过程和消除手动实现错误。

两种代码生成的方法是:

  • 生成可重用的代码:使用MATLAB编码器,万博1manbetx仿真软件编码器,嵌入式编码器生成独立的C / c++文件从MATLAB文件或库和仿真软件模型。万博1manbetx这种方法是灵活的,你可以集成框架生成的代码与任何你可能已经到位,但它仍然需要一些手工工作运行。
  • 产生ROS节点:ROS工具箱,您可以直接从模型生成基于c++的ROS节点模型(回想一下,MATLAB代码可以从仿真软件调用模型)。万博1manbetx相比以前的方法,生成入口点算法,生成的代码还将包括ROS功能(发布、订阅等)和算法调度基于样例次中指定的模式。

ROS节点生成方法也可以自动化这个过程除了生成代码,如下所示。这包括移动文件到目标系统的编译文件使用柔荑花序构建系统,并运行生成的可执行节点。

使用生成的节点

一旦你从模型生成活性氧节点,有几个方法你可以使用它。万博1manbetx

  • 启动和停止节点从MATLAB使用rosdevice,或直接运行它从你的ROS机通过生成的可执行文件或使用rosrun
  • 使用外部模式调整参数和可视化数据直接在仿真软件模型中,虽然本身是在目标计算机上运行的代码。万博1manbetx代码将生成一个TCP / IP接口仿真软件模型运行在桌面。万博1manbetx虽然这有一些处理开销,它可以是一个很好的调试步骤而你还设计算法。
  • 配置您的算法来发送或接收ROS在参数服务器消息或值。这允许您从MATLAB与部署的节点,仿真软件或其他ROS节点和目标机器上的终端。万博1manbetx

更多信息作为独立的ROS节点部署算法,并使用已部署的节点,请看下面的视频。
MATLAB和Simu万博1manbetxlink机器人领域:ROS部署算法
MATLAB和Simu万博1manbetxlink机器人领域:设计与ROS的分布式系统


结论

你见过的概述如何原型算法在MATLAB和仿真软件,以及他们如何可以成为独立的基于c++的ROS节点。万博1manbetx如果你想知道更多,让我们评论或文章Facebook群组

您可以下载的视频所示的模板和示例MATLAB中央文件交换。例子中使用的虚拟机可以从下载MathWorks网站

——塞巴斯蒂安

MATLAB和Simulink仿真与ROS的一个例万博1manbetx子,如图所示的ROS效用rqt_graph

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。