Matlab/Simulink链接ROS

前言

  • Matlab版本:R2021b
  • 工具包:ROS toolbox、Simulink Coder、MATLAB Coder
  • 虚拟机:VMware Workstation Pro
  • Ubuntu版本:18.04
  • ROS版本:melodic

一、Ubuntu中的配置

  1. 打开虚拟机,Ctrl+Alt+T新建终端,输入ifconfig,查看Ubuntu的IP地址
    在这里插入图片描述
    192.168.31.139 即为Ubuntu的IP地址

  2. 打开主文件夹,Ctrl+H显示隐藏文件,找到 .bashrc文件
    在这里插入图片描述
    在文件末尾添加以下两行代码,保存退出

export ROS_MASTER_URI=http://192.168.31.139:11311  # 192.168.31.139为Ubuntu的IP地址
export ROS_HOSTNAME=192.168.31.139

在这里插入图片描述

  1. Ctrl+Alt+T新建终端,运行roscore,出现如下部分表明Ubuntu下配置完成
    在这里插入图片描述

二、Matlab中的配置

  1. 在Matlab的命令行中分别输入
setenv('ROS_MASTER_URI','http://192.168.31.139:11311')
rosinit

出现以下信息表明成功建立通信
在这里插入图片描述

  1. 在Matlab的命令行中输入 rosnode list ,会显示对应的/matlab_global_node_46066节点
    在这里插入图片描述

  2. 在Ubuntu中,Ctrl+Alt+T新建终端,输入rosnode list,会出现相同信息
    在这里插入图片描述

至此,Matlab与ROS已成功建立通信

三、以小海龟为例

  1. 在Ubuntu中,Ctrl+Alt+T新建终端,输入
rosrun turtlesim turtlesim_node

运行小海龟
在这里插入图片描述

  1. 在Matlab的命令行中输入rostopic list,会显示下列几个话题
    在这里插入图片描述

四、Simulink中的配置

在Mabtlab中新建一个Simulink文件
在这里插入图片描述

发布指令

  1. 添加ROS Toolbox中的Publish模块,选择Topic为“/turtle1/cmd_vel”
    在这里插入图片描述B
  2. 添加ROS Toolbox中的Blank Message模块,选择Message type为“geometry_msgs/Twist”
    在这里插入图片描述
  3. 添加Bus Assignment模块,与Blank Message模块连接,展开“Linear”和“Angular”属性,分别选择“Linear.X”和“Angular.Z”参数
    在这里插入图片描述
  4. 添加两个Constant模块,并将各模块连接
    在这里插入图片描述
  5. 将停止时间设置为“inf”,运行simulink文件,将看到小海龟做圆周运动
    在这里插入图片描述

接收信息

  1. 添加ROS Toolbox中的Subscribe模块,选择Topic为“/turtle1/pose”
    在这里插入图片描述
  2. 添加Bus Selector模块,与Subscribe模块连接,选择“X”和“Y”元素
    在这里插入图片描述
  3. 添加Scope模块和XY Graph模块,并将各模块连接
    在这里插入图片描述

生成ROS包

  1. 打开模型设置,求解器选择中的类型设置为定步长,硬件实现中的Hardware board设置为Robot operating System(ROS)
    在这里插入图片描述
    在这里插入图片描述

  2. 保存文件后编译
    在这里插入图片描述
    出现下列信息表示编译过程已成功完成
    在这里插入图片描述

  3. 在simulink文件保存路径下,产生.sh文件和.tgz文件,将文件拷贝至ROS中并编译,运行ROS节点
    在这里插入图片描述

  • 10
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值