主要内容

反馈控制的ROS-Enabled机器人/ ROS 2

这个例子展示了如何使用仿真软件®来控制模拟机器人运行在露台®机器人模万博1manbetx拟器/ ROS 2网络。

介绍

在本例中,您将运行一个模型,实现了一个简单的闭环比例控制器。控制器接收来自模拟机器人的位置信息和发送速度命令驱动机器人到指定的位置。你会调整一些参数在模型运行时,观察对模拟机器人的影响。

下图总结了机器人仿真软件之间的交互和模拟器(图中箭头表示ROS 2消息传输)。万博1manbetx的/奥多姆主题表达位置信息,/ cmd_vel主题传达速度命令。

开始一个机器人模拟器和配置模型万博1manbetx

在这个任务中,你将开始一个ROS-based模拟器差动式驱动机器人,启动ROS桥配置MATLAB®与机器人模拟器。

  • 在Ubuntu桌面,点击露台空图标启动空露台的世界。

  • 单击ROS桥图标开始ROS桥之间传递消息模型ROS 2节点和Turtlebot3 ROS-enabled机器人。万博1manbetx

  • 在MATLAB在你的主机,设置适当的域ID ROS 2网络使用“ROS_DOMAIN_ID”环境变量来25与机器人模拟器ROS桥设置和运行ros2主题列表从机器人模拟器验证主题在MATLAB是可见的。

setenv (“ROS_DOMAIN_ID”,“25”)ros2主题列表
/时钟/露台/ link_states /露台/ model_states /露台/ performance_metrics / imu / joint_states /奥多姆parameter_events / rosout rosout_agg /扫描/特遣部队

打开现有的模型

网络连接的ROS 2后,打开示例模型。

open_system (“robotROS2FeedbackControlExample.slx”);

该模型实现了一个比例控制器差动式驱动移动机器人。在每个时间步,该算法将机器人引向所需的位置和推动它向前。一旦达到所需的位置,算法停止机器人。

open_system (“robotROS2FeedbackControlExample /比例控制器”);

注意,在模型中有四个可调参数(颜色的块)。

  • 期望的职位(在顶层模型):中所需的位置(X, Y)坐标

  • 距离阈值:机器人停止如果拉近这种距离所需的位置

  • 线速度:机器人的线速度

  • 获得:比例增益校正机器人定位

模型也有一个仿真速度控制顶级的块(模型)。这个块确保模拟更新间隔遵循墙上时钟时间。

配置模型和运行模式万博1manbetx

在这个任务中,您将配置模型与ROS-enabled机器人模拟器/ 万博1manbetxROS 2,运行模型,观察机器人在机器人的行为模拟器。

配置网络设置ROS 2。

  • 模拟选项卡,在准备中,选择ROS工具箱> ROS网络

  • ROS配置网络地址2,设置ROS域ID值25并设置ROS 2 RMW实现rmw_fastrtps_cpp

  • 点击好吧申请更改并关闭对话框。

运行模型。

  • 位置窗口在屏幕上,这样您就可以观察仿真软件模型和机器人模拟器。万博1manbetx

  • 点击播放按钮在开始模拟仿真软件。万博1manbetx

  • 在运行模拟时,双击期望的职位阻止和改变定值3 [2]。观察到机器人改变航向。

  • 在模拟运行时,打开比例控制器子系统和双击线速度(滑块)块。移动滑块2。观察机器人速度的增加。

  • 单击停止按钮停止仿真模型。万博1manbetx

观察传入的消息

在这个任务中,您将观察到的时间和速率传入消息。

  • 点击播放按钮在开始模拟仿真软件。万博1manbetx

  • 打开块范围。观察到的IsNew的输出订阅块总是0,表明没有消息接收/奥多姆的话题。情节的水平轴表示仿真时间。

  • 开始在ROS露台模拟器网络和活性氧ROS桥2开始,所以,ROS 2网络可以接收消息发布的露台模拟器。

  • 在显示范围,观察到IsNew输出的值1的近似速度每秒20倍,较多的墙上时钟时间。

墙上时钟的同步时间是由于仿真速度控制块。通常,一个仿真软件仿真执行万博1manbetx的不同步的循环速度取决于模型的复杂性和计算机速度(见模拟循环阶段(万博1manbetx模型))。的仿真速度控制块规范模型执行,以便每个更新在墙上时钟的时候可能需要0万博1manbetx.02秒(这是等于基本模型的采样时间)。有关更多信息,请参见块内的评论。

此外,使子系统的比例控制器和命令速度出版商确保模型只对真正的新消息。如果启用子系统是不习惯,会反复过程模型相同的(最近收到)消息,导致浪费和冗余处理命令消息的发布。

总结

这个例子向您展示了如何使用仿真软件进行简单的模拟闭环控制机器人。万博1manbetx它还展示了如何使用启用ROS 2网络子系统,以减少开销。