这个例子展示了如何从Simulink中生成C++代码万博1manbetx®要部署为独立ROS节点的模型。代码在您的计算机上生成,必须手动传输到目标ROS设备。生成代码不需要连接到硬件。有关ROS节点的自动部署,请参阅从Simulink®生成独立的ROS节点万博1manbetx.
这个例子需要万博1manbetxSimulink编码器™嵌入式编码器™ .
一个具有ROS的Ubuntu Linux系统对于生成和运行生成的C++代码是必要的。您可以使用自己的Ubuntu ROS系统,也可以使用用于ROS工具箱的Linux虚拟机™ 例子。看见开始使用露台和模拟的高跷机器人有关如何安装和使用虚拟机的说明。
回顾ROS机器人的反馈控制示例,其中详细说明了生成代码的Simulink模型。万博1manbetx
配置一个模型来生成一个独立的ROS节点的C++代码,使用配置参数.此处使用的模型是在ROS机器人的反馈控制实例
打开比例控制器模型。
编辑robotROSFeedbackControlExample
将整个模型复制到新的空白Simulink模型。万博1manbetx
删除模拟速率控制块
在“应用程序”选项卡上的控制系统点击机器人操作系统(ROS).
在机器人操作系统(ROS)打开的对话框,选择机器人操作系统(ROS)
从ROS网络下拉列表。这打开了活性氧toolstrip中的选项卡,其中显示了中指定的ROS网络连接部分
在准备下节活性氧选项卡,单击硬件设置打开“模型配置参数”对话框。
这个硬件板设置节包含特定于生成的ROS包的设置,例如package.xml
文件改变维护者名称到ROS示例用户
点击好啊.
在解算器窗格配置参数对话框中,确保类型设置为固定步长
这个解算器设置为ode3(博加基三叶草)
和固定步长设置为0.05
. 在生成的代码中,固定步长定义了用于模型更新循环的实际时间步长。看见执行从模型生成的代码(万博1manbetxSimulink编码器)了解更多信息。
在代码生成窗格,确保可变大小信号已启用。
点击好啊关闭配置参数对话框。将模型另存为机器人控制器
.
配置模型后,必须为目标硬件指定生成选项,并设置文件夹或生成代码。
点击部署在活性氧标签。然后在部署点击构建模型。此设置确保为ROS节点生成代码,而无需将其构建在外部ROS设备上。
在MATLAB中启动rosmaster®。Simulink将此ROS主机用于代码生成步骤。万博1manbetx
在MATLAB命令窗口中,键入:
松香
将当前文件夹设置为可写目录。此文件夹是生成模型时将存储代码的位置。
在C代码选项卡,单击生成代码或按Ctrl+B
开始模型的代码生成。
构建完成后,两个新文件将写入您的文件夹。
机器人控制器
阿纳尔-包含C++代码的存档
build_ros_model.sh
一个用于提取和构建C++代码的shell脚本
手动将这两个文件传输到目标计算机。如果您使用罗斯装置
,您可以使用putFile
。否则,此步骤假定您正在使用用于机器人系统工具箱的Linux虚拟机™ 虚拟机配置为接受SSH和SCP连接。如果您使用的是自己的Linux系统,请咨询系统管理员以获得安全的文件传输方式。
确保您的主机系统(具有机器人控制器
和build_ros_model.sh
文件)有一个SCP客户端。窗户®系统,下一步假定PuTTY SCP客户端(pcsp.exe
)已安装。
使用SCP将文件传输到Linux虚拟机上的用户主控制器。用户名是使用者
密码是暗语
代替
使用您的虚拟机IP地址。
Windows主机系统:
pscp.exe RobotController.tgz build_ros_model.sh user@:
Linux或马科斯主机系统:
scp RobotController.tgz build_ros_model.sh user@:
这个build_ros_model.sh
文件不是特定于此模型的。对于多个模型,只需传输一次。
在Linux系统上,执行以下命令以创建Catkin工作区。您可以使用现有的Catkin工作区。
mkdir-p~/catkin_ws_si万博1manbetxmulink/src cd~/catkin_ws_simulink/src catkin_init_工作空间
在Linux中使用以下命令解压缩并在那里构建节点
使用到您的柳絮工作区的路径。
cd~./build_ros_model.sh RobotController.tgz
如果这不起作用,请确保build_ros_model.sh
通过输入以下命令将设置为可执行文件。
chmod+x build\u ros\u model.sh
生成的源代码正在运行~/catkin\u w万博1manbetxs\u simulink/src/robotcontroller/
. 审查报告的内容package.xml
文件验证节点可执行文件是使用以下方法创建的:
文件~/catkin\u ws\u万博1manbetx simulink/devel/lib/robotcontroller/robotcontroller\u节点
如果已成功创建可执行文件,则该命令将列出有关该文件的信息。
该模型现在可以作为设备上的独立ROS节点运行。
可选:然后可以使用此命令运行节点。替换
使用到您的柳絮工作区的路径。
~//devel/lib/robotcontroller/robotcontroller\u节点