当我们用simulink完成控制程序的搭建后,我们期望下一次可以直接对ROS进行控制,而不是每次都需要启动matlab和simulink,因此我们可以使用simulink的代码生成器,生成ROS代码
1、生成代码前需要进行如下的设置
(1)按下图所示,打开设置,选择Hardware implementation,然后选择Robot….(ROS)
(2)按下图所示,检查Solver中的Type是否为Fixed-step
(3)保存一下,准备工作完成
2、若程序内容中涉及一些需要从ROS中读取的内容,比如说Current Time模块,则需要在生成代码前先建立起ROS与MATLAB的通讯(方法前面的文档已经介绍过了),否则可能报错
3、按下图所示,点击Build Model
等待一会儿,报告会显示已经成功生成代码,如下所示:
4、Simulink生成一个sh文件和一个tgz文件
5、将这两个文件复制到虚拟机中(可新建一个文件夹存放)
6、在这两个文件所在的文件夹下,右键在终端打开,输入以下指令
./build_ros_model.sh QUST_ROS_Test_Code_1.tgz ~/catkin_ws/
其中QUST_ROS_Test_Code_1.tgz是生成的tgz文件的名字,成功后会显示如下界面:
7、检查一下在如图所示的路径中(最后一级文件夹名字跟你的tgz文件名是相同的),会有一个可执行的文件
8、由于我们在工作空间内添加了新的内容,因此需要执行下面的指令去编译工作空间,并设置环境变量
cd ~/catkin_ws/
catkin_make
source ~/catkin_ws/devel/setup.bash
9、在一个新的终端中输入以下指令运行该节点
source ~/catkin_ws/devel/setup.bash
rosrun qust_ros_test_code_1 qust_ros_test_code_1_node
(qust_ros_test_code_1是最后一级文件夹名字,qust_ros_test_code_ 1_node是该文件的名字)
显示如下界面说明该节点已经成功运行了