matlab怎么生成mif_Simulink生成ROS代码详细攻略

本文详细介绍如何在Ubuntu系统上配置ROS与MATLAB之间的通信,包括设置环境变量、创建节点及使用Simulink进行仿真。并通过控制turtlesim中的小乌龟实现数据交互,最终自动生成ROS代码。
摘要由CSDN通过智能技术生成

前期准备

系统:Ubuntu 16.04 LTS

软件版本:ROS Kinetic、MATLAB 2018a linux版

查看本机IP

首先打开终端输入

ifconfig

可以查看

e70dc362df240e96039a7e5134d23cc6.png

MATLAB与ROS建立通讯连接

在HOME文件夹下通过 ctrl+H 可以查看隐藏文件,找到 .bashrc文件

57372a8696529630d908005b3fbbd239.png

打开 .bashrc文件,并在文件末端添加你的IP,然后保存退出。

例如

export ROS_IP=192.169.0.9

07d95cff24e8e7cc07f9ff70abd099ad.png

现在在终端种运行roscore可以看到

8130b0e6370766d492306bb9200396d8.png

然后打开你的matlab。

在命令行窗口输入

setenv(‘ROS_MASTER_URI’,‘http://192.168.0.9:11311’)

建立连接

然后继续输入rosinit,测试是否可以与Master主节点建立通讯,若通讯成功可以看到:

ec40816991504c6c3c8c29cb7675fac0.png

为了方便测试,仿真使用ROS自带的turtlesim

rosrun turtlesim turtlesim_node

rosrun turtlesim turtle_teleop_key

现在正常应该通过键盘的方向键控制小乌龟运动

4cdff6893e9efe650d539bd5bd07b4cb.png

现在可以查看当前的topic

使用 rostopic list查看

9777239d0825c764a4e9eaefe895bc33.png

然后可以建立simulink模型

使用Robotics System Toolbox工具箱中的ROS工具包。其中的Subscribe模块可以接收当前的运行中的topic信息。

dc3aeb19f729d76a6259ce9b1b46e749.png

通过搭建模型查看当前topic中的信息

fd4fcaa259c453f6f474eba0737856a1.png

再次使用键盘控制小乌龟运动,数据就会被scope记录下来

ea752457a22e2c94a9bd9c2ecb6d3ee5.png

simulink自动生成ROS代码

首先查看cmd_vel的数据类型

rostopic info /turtle1/cmd_vel

0044fe826571ca9c6877ccaf31964130.png

进一步查看msg的类型

rosmsg show geometry_msgs/Twist

7b58f215933276ee9a37f0e747d70eff.png

使用ROS工具包中的Blank Message模块接收数据

使用ROS工具包中的Publish模块发送信息

4a0418787dd74c1fb9900d88fc879d81.png

0bbbdd25e0e2e198ab1509fdacb2cd99.png

想要控制小乌龟做圆环运动只需要发送X线速度和Z角速度

9bd1c95a848283233f7e44b33641a706.png

然后运行就可以看到小乌龟做圆周运动

5261298f5ac3c22502a0db47760d8059.png

代码生成需要对simulink进行一些设置

在Simulink的Model Configuration Parameters—Hardware Implementation中选中Robot Operating System后点击确定,同时还要注意求解器一定要选离散型。

a6b3c316f1a884cdd9f9f3f89e0aa0e6.png

7c3020dc222f196b89cbd4e306f078f8.png

再点击代码生成按钮,即可生成相应的C++代码。

e3c7ae756c64dc16cdd2e2f745289368.png

cf7dbce4339adee57ea9c949e17b502d.png

显示这里说明代码生成成功

文件目录下会出现编译好的文件

382d59aca4b20a6615353fce778ca1ee.png

然后在这个目录下进行编译

./build_ros_model.sh rostest2.tgz ~/catkin_ws/

24b0d2c597dca3a2bbb63f9742ec433f.png

显示编译成功

在catkin_ws下catkin_make编译一下就可以使用了.就可以看到小乌龟和刚才仿真的那样开始做相同的圆周运动了。

rosrun rostest2 rostest2_node

8dfa9860ad8bcf072b9df3762d0adbcd.png

纯属自己的学习记录,欢迎各位大佬指正交流!

教学视频:待上传

demo代码:simulink代码生成ros包demo-交通代码类资源-CSDN下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值