MATLAB/Simulink 与 ROS 连接方法

本方法基于Ubuntu 18.04 ROS Melodic 和 MATLAB 2023a 软件制作

Ubuntu设置

  1. 进入 Ubuntu 系统,打开终端,输入ifconfig查看IP地址

    image-20230605203042349

  2. 打开~/.bashrc文件,根据IP地址添加如下语句

    如图所示:

    image-20230605203637676

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

    image-20230605203901964

将 MATLAB 与 ROS 连接

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

    image-20230605210520082

  2. 在 MATLAB 命令行中,根据 Ubuntu 系统的 IP 地址输入如下命令:

    image-20230605204603999

  3. 继续输入rosinit让 MATLAB 与 ROS 建立连接

    image-20230605210825052

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

    image-20230605211802900

前期准备

  1. 在 Ubuntu 系统的命令行输入如下命令运行小乌龟

  2. 在Simulink中主要使用到的模块有:

    模块功能
    Blank Message用于选择话题的数据类型
    Bus Assignment用于给话题赋值
    Bus Selector用于选择话题中的某些变量
    Publish用于发布话题
    Subscribe用于接收话题
    Real-Time Synchronization用于与现实时间同步

    如果在simulink仿真时提示Real-Time Kernel未安装,可以在MATLAB命令行中输入如下命令

  3. 考虑到 ROS 的通信频率为20Hz,将 Simulink 的基础采样时间设置为0.02,如图所示:

    image-20230606090754279

  1. 打开 Simulink 按下图搭建仿真:

    image-20230606085025418

  2. 上述模块分别设置如下:

    • Real-Time Synchronization

      image-20230606091236551

    • Blank Message

      image-20230605214100064

    • Bus Assignment

      image-20230605214512340

    • Publish

      image-20230605214608798

    • Subscribe

      image-20230606085353327

    • Bus Selector

      image-20230606085720813

  3. 在 MATLAB function 模块中可以设计函数控制小乌龟的运动,举例如下:

  4. 点击运行后,可以看到小乌龟向前运动了一段距离,XY Graph模块中可以得到小乌龟的轨迹

    image-20230606093637918

    image-20230606093718612