此示例显示了如何从Simulink生成C ++代码金宝app®模型要部署为独立ROS节点。代码在您的计算机上生成,必须手动传输到目标ROS设备。对于生成代码,不需要与硬件连接。有关ROS节点的自动部署,请参阅从Simulink®生成独立ROS节点金宝app。
这个例子需要金宝appSimulink Coder™和嵌入式编码器™。
具有ROS的Ubuntu Linux系统是构建和运行生成的C ++代码所必需的。您可以使用自己的Ubuntu ROS系统,或者您可以使用用于ROS Toolbox™示例的Linux虚拟机。看开始凉亭和模拟的火炬有关如何安装和使用虚拟机的说明。
点评审查反馈控制ROS的机器人示例,详细介绍了代码正在生成的Simulink模型。金宝app
配置模型以生成使用的独立ROS节点的C ++代码配置参数。这里使用的模型是引入的比例控制器反馈控制ROS的机器人例子。
打开比例控制器模型。
编辑RobotrosFeedbackControlExample.
将整个模型复制到新的空白Simulink模型。金宝app
删除仿真速率控制块。
在“应用”选项卡上控制系统,点击机器人操作系统(ROS)。
当机器人操作系统(ROS)对话框打开,选择机器人操作系统(ROS)
从这一点来ROS网络下拉。这打开了罗斯ToolStrip中的选项卡显示指定的ROS网络连接部分。
当准备部分罗斯选项卡,单击硬件设置要打开“模型配置参数”对话框。
当硬件板设置部分包含特定于生成的ROS包的设置,例如包含在内的信息package.xml.
文件。改变维护者名称到目前为止ROS示例用户
然后点击好的。
当求解器窗格的配置参数对话框,确保type设置为固定步骤
,这求解器设置为Ode3(Bogacki-Shampine)
和固定阶梯设置为0.05
。在生成的代码中,固定步长定义用于模型更新循环的实际时间步骤。看执行模型生成的代码(金宝appSimulink编码器)有关更多信息。
当代码生成窗格,确保可变尺寸信号已启用。
点击好的关闭配置参数对话框。保存模型RobotController.slx.
。
配置模型后,必须为目标硬件指定构建选项,并设置文件夹或构建生成的代码。
点击部署根据罗斯标签。然后是部署,点击构建模型这一设置可确保为ROS节点生成代码,而无需将其构建在外部ROS设备上。
在Matlab开始一个ROS主人®。此ROS主机用于代码生成步骤的Simulink使用。金宝app
在MATLAB命令窗口类型中:
罗斯尼特
将当前文件夹设置为可写目录。此文件夹是在构建模型时生成代码的位置。
根据C代码选项卡,单击生成代码或者按Ctrl + B.
启动模型的代码生成。
构建完成后,将写入两个新文件。
RobotController.Tgz.
- 包含C ++代码的存档
build_ros_model.sh.
- 用于提取和构建C ++代码的shell脚本
手动将两个文件传输到目标机器。如果您使用的连接到ROS设备Rosdevice.
,您可以使用文件发送文件putfile.
。否则,此步骤假定您正在使用用于机器人系统工具箱™示例的Linux虚拟机。虚拟机配置为接受SSH和SCP连接。如果您使用自己的Linux系统,请咨询系统管理员以获得安全的方式来传输文件。
确保您的主机系统(与您的系统RobotController.Tgz.
和build_ros_model.sh.
文件)有一个SCP客户端。适用于Windows.®系统,下一步假设腻子SCP客户端(pcsp.exe.
)安装了。
使用SCP将文件传输到Linux虚拟机上的用户主任。用户名是用户
和密码是密码
。替换
使用您的虚拟机IP地址。
Windows主机系统:
pscp.exe robotcontroller.tgz build_ros_model.sh用户@:
Linux或者麦克斯主机系统:
scp robotcontroller.tgz build_ros_model.sh用户@:
当build_ros_model.sh.
文件不具体到此模型。只需要为多个模型传输一次。
在Linux系统上,执行以下命令以创建Catkin工作区。您可以使用现有的Catkin工作区。
mkdir -p〜/ catkin_ws_金宝appsimulink / src cd〜/ catkin_ws_simulink / src catkin_init_workspace
解压缩并在Linux中使用以下命令构建节点。替换
与您的Catkin工作区的道路。
CD〜./build_ros_model.sh robotcontroller.tgz
如果这不起作用,请确保build_ros_model.sh.
通过输入以下命令设置为可执行文件。
chmod + x build_ros_model.sh
生成的源代码在下面〜/ catkin_ws金宝app_simulink / src / robotcontroller /
。审查内容package.xml.
文件。验证是否使用以下内容创建了节点可执行文件:
文件〜/ catkin_ws_si金宝appmulink / devel / lib / grobotController / RobotController_node
如果可执行文件已成功创建,则该命令列出了有关该文件的信息。
该模型现在可以在设备上作为独立ROS节点运行。
可选:然后,您可以使用此命令运行节点。替换
与您的Catkin工作区的道路。
〜// devel / lib / cobotController / RobotController_node