此示例显示了如何从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网络落下。这打开了ROS.ToolStrip中的选项卡显示指定的ROS网络连接部分。
在里面准备部分ROS.选项卡,单击硬件设置要打开“模型配置参数”对话框。
这硬件板设置部分包含特定于生成的ROS包的设置,例如包含在内的信息package.xml.
文件。改变维护者名称到ROS示例用户
然后点击好的。
在里面求解器窗格的配置参数对话框,确保类型被设定为固定步骤
, 这求解器被设定为ODE3(Bogacki-Shampine)
和固定步长被设定为0.05
。在生成的代码中,固定步骤大小定义了用于模型更新循环的实际时间步骤。看执行从模型生成的代码(金宝appSimulink编码器)想要查询更多的信息。
在里面代码生成窗格,确保可变尺寸信号已启用。
点击好的关闭配置参数对话。保存模型RobotController.slx.
。
配置模型后,必须为目标硬件指定构建选项,并设置文件夹或构建生成的代码。
点击部署在下面ROS.标签。然后是部署, 点击构建模型这一设置可确保为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 / robotcontroller / robotcontroller_node