本方法基于Ubuntu 18.04 ROS Melodic 和 MATLAB 2023a 软件制作
进入 Ubuntu 系统,打开终端,输入ifconfig查看IP地址

打开~/.bashrc文件,根据IP地址添加如下语句
1export ROS_IP=IP地址
如图所示:

若找不到~/.bashrc文件,可以尝试如下步骤:

在 Ubuntu 系统命令行中输入roscore启动 ROS master

在 MATLAB 命令行中,根据 Ubuntu 系统的 IP 地址输入如下命令:
xxxxxxxxxx11setenv('ROS_MASTER_URI','192.168.106.129:11311')
继续输入rosinit让 MATLAB 与 ROS 建立连接

输入rostopic list可以查看已经注册到 ROS master 的话题

在 Ubuntu 系统的命令行输入如下命令运行小乌龟
xxxxxxxxxx11rosrun turtlesim turtlesim_node在Simulink中主要使用到的模块有:
| 模块 | 功能 |
|---|---|
| Blank Message | 用于选择话题的数据类型 |
| Bus Assignment | 用于给话题赋值 |
| Bus Selector | 用于选择话题中的某些变量 |
| Publish | 用于发布话题 |
| Subscribe | 用于接收话题 |
| Real-Time Synchronization | 用于与现实时间同步 |
如果在simulink仿真时提示Real-Time Kernel未安装,可以在MATLAB命令行中输入如下命令
xxxxxxxxxx11sldrtkernel -install考虑到 ROS 的通信频率为20Hz,将 Simulink 的基础采样时间设置为0.02,如图所示:

打开 Simulink 按下图搭建仿真:

上述模块分别设置如下:
Real-Time Synchronization

Blank Message

Bus Assignment

Publish

Subscribe

Bus Selector

在 MATLAB function 模块中可以设计函数控制小乌龟的运动,举例如下:
x1function y = fcn(t)2
3if t > 3 && t < 84 y = 0.5;5else6 y = 0;7end点击运行后,可以看到小乌龟向前运动了一段距离,XY Graph模块中可以得到小乌龟的轨迹

