< >
Home » ROS2与Matlab入门教程 » ROS2与Matlab入门教程-在Simulink中使用ROS2跟随机器人

ROS2与Matlab入门教程-在Simulink中使用ROS2跟随机器人

说明:

  • 介绍如何使用Simulink通过ROS2网络控制在单独的基于ROS的模拟器上运行的模拟机器人

介绍:

  • 在此示例中,您运行一个模型,该模型实现了符号跟随算法,并控制模拟机器人根据环境中的符号跟随路径

  • 该算法从模拟机器人接收位置信息和摄像头信息,该模拟机器人在单独的基于 ROS 的模拟器中运行

  • 该算法检测标志的颜色,并根据颜色发送速度命令来转动机器人

  • 在这个例子中,算法设计为当机器人遇到蓝色标志时左转,当机器人遇到绿色标志时右转。最后机器人在遇到红色标志时停止

步骤:

  • 启动机器人模拟器

  • 为差动驱动机器人启动基于 ROS 的模拟器,并配置 Simulink 与机器人模拟器的连接

  • 此示例使用可使用Gazebo 和 Simulated TurtleBot 入门中的说明下载的虚拟机 (VM)

  • 启动 Ubuntu 虚拟机桌面

  • 在 Ubuntu 桌面中,单击Gazebo ROS2 Maze图标以启动为此示例构建的 Gazebo 世界

  • 在 MATLAB 命令行窗口中,将ROS_DOMAIN_ID环境变量设置为25以匹配机器人模拟器设置并运行ros2 topic list 以验证机器人模拟器中的主题在 MATLAB 中是否可见

setenv('ROS_DOMAIN_ID','25')
ros2('topic','list')

/parameter_events
  • 打开模型并配置 Simulink

  • 设置 Simulink ROS 首选项以与机器人模拟器通信

  • 打开示例模型

open_system( 'signFollowingRobotROS2.slx' );
  • 为 ROS 2 配置网络设置

  • 在Simulation选项卡下的PREPARE中,选择ROS Toolbox > ROS Network

  • 在配置 ROS 网络地址中,将 ROS 2 域 ID 值设置为25

  • 单击确定以应用更改并关闭对话框

  • 在每个时间步长上,该算法都会从摄像头馈送中检测到一个标志,然后决定转向并驱动它前进。符号检测在模型的图像处理 子系统中完成

open_system('signFollowingRobotROS2/Image Processing');
  • 标志跟踪逻辑子系统 实现了一个 Stateflow® 图,该图从图像处理中获取检测到的图像大小和坐标,并提供 线速度和角速度来驱动机器人
open_system('signFollowingRobotROS2/Sign Tracking Logic');
  • 运行模型

  • 运行模型并在机器人模拟器中观察机器人的行为

  • 视频查看器显示实际的摄像头馈送和检测到的标志图像

  • 在模拟器中,机器人跟随标志并根据颜色转动

  • 一旦机器人到达最后的红色标志,模拟就会自动停止

请输入图片描述

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与matlab入门教程