本方法基于Ubuntu 18.04 ROS Melodic 和 MATLAB 2023a 软件制作
进入 Ubuntu 系统,打开终端,输入ifconfig
查看IP地址
打开~/.bashrc
文件,根据IP地址添加如下语句
1export ROS_IP=IP地址
如图所示:
若找不到~/.bashrc
文件,可以尝试如下步骤:
在 Ubuntu 系统命令行中输入roscore
启动 ROS master
在 MATLAB 命令行中,根据 Ubuntu 系统的 IP 地址输入如下命令:
xxxxxxxxxx
11setenv('ROS_MASTER_URI','192.168.106.129:11311')
继续输入rosinit
让 MATLAB 与 ROS 建立连接
输入rostopic list
可以查看已经注册到 ROS master 的话题
在 Ubuntu 系统的命令行输入如下命令运行小乌龟
xxxxxxxxxx
11rosrun turtlesim turtlesim_node
在Simulink中主要使用到的模块有:
模块 | 功能 |
---|---|
Blank Message | 用于选择话题的数据类型 |
Bus Assignment | 用于给话题赋值 |
Bus Selector | 用于选择话题中的某些变量 |
Publish | 用于发布话题 |
Subscribe | 用于接收话题 |
Real-Time Synchronization | 用于与现实时间同步 |
如果在simulink仿真时提示Real-Time Kernel
未安装,可以在MATLAB命令行中输入如下命令
xxxxxxxxxx
11sldrtkernel -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 < 8
4 y = 0.5;
5else
6 y = 0;
7end
点击运行后,可以看到小乌龟向前运动了一段距离,XY Graph
模块中可以得到小乌龟的轨迹