主要内容

生成手动部署ROS节点的代码金宝app

这个例子向你展示了如何从Simulink生成c++代码金宝app®模型部署为独立的ROS节点。该代码在您的计算机上生成,必须手动转移到目标ROS设备。生成代码不需要连接到硬件。ROS节点的自动部署请参见从Simulink®生成一个独立的ROS节点金宝app

先决条件

  • 这个例子需要金宝app仿真软件编码器™和Embedded Coder™。

  • 构建和运行生成的c++代码需要一个带有ROS的Ubuntu Linux系统。您可以使用自己的Ubuntu ROS系统,也可以使用用于ROS工具箱™示例的Linux虚拟机。看到开始使用凉亭和模拟乌龟机器人有关如何安装和使用虚拟机的说明。

  • 检查ros机器人的反馈控制示例,它详细说明了生成代码的Simulink模型。金宝app

为代码生成配置模型

配置一个模型来为独立的ROS节点生成c++代码配置参数.本文所采用的模型是本文所介绍的比例控制器ros机器人的反馈控制的例子。

打开比例控制器模型。

编辑robotROSFeedbackControlExample

将整个模型复制到一个新的空白Simulink模型。金宝app

删除仿真速度控制块。

在“应用程序”选项卡下控制系统,点击机器人操作系统(ROS)

机器人操作系统(ROS)对话框,选择机器人操作系统(ROS)ROS网络下拉。这就打开了ROS选项卡中显示指定的ROS网络连接部分。

准备下节ROS选项卡上,单击硬件设置打开模型配置参数对话框。

硬件板设置节包含特定于生成的ROS包的设置,如package.xml文件。改变维护人员的名字ROS示例用户并点击好吧

解算器面板的配置参数对话框中,确保类型被设置为固定步,解算器被设置为ode3 (Bogacki-Shampine)固定的大小被设置为0.05.在生成的代码中,固定步长定义用于模型更新循环的实际时间步长。看到执行由模型生成的代码(金宝app仿真软件编码器)为更多的信息。

代码生成窗格中,确保适应信号启用。

点击好吧关闭配置参数对话框。将模型保存为RobotController.slx

配置代码生成的生成选项

在配置模型之后,您必须为目标硬件指定构建选项,并设置文件夹或构建生成的代码。

点击部署ROS选项卡。然后下部署,点击构建模型此设置确保为ROS节点生成代码,而不是在外部ROS设备上构建代码。

生成和部署代码

在MATLAB中开始一个ROS master®.这个ROS主程序被Simulink用于代码生成步骤。金宝app

在MATLAB中命令窗口类型:

rosinit

将当前文件夹设置为可写目录。当您构建模型时,此文件夹是将存储生成代码的位置。

C代码选项卡上,单击生成代码或按Ctrl + B开始模型的代码生成。

构建完成后,将向文件夹中写入两个新文件。

  • RobotController.tgz——包含c++代码的归档文件

  • build_ros_model.sh——用于提取和构建c++代码的shell脚本

手动将这两个文件传输到目标机器。如果您使用rosdevice,您可以发送文件使用putFile.否则,此步骤假定您使用的是Robotics System Toolbox™示例中使用的Linux虚拟机。虚拟机被配置为接受SSH和SCP连接。如果您正在使用自己的Linux系统,请咨询系统管理员以获得传输文件的安全方法。

确保您的主机系统(系统与您的RobotController.tgzbuild_ros_model.sh文件)具有SCP客户端。对于Windows®,下一步假设PuTTY SCP客户端(pcsp.exe)安装。

使用SCP将文件传输到Linux虚拟机的用户主目录。用户名是用户和密码是密码.取代< virtual_machine_ip >使用您的虚拟机IP地址。

  • Windows主机系统:

    pscp.exe RobotController。tgz build_ros_model.sh user@ < virtual_machine_ip >:
  • Linux或macOS主机系统:

    scp RobotController。tgz build_ros_model.sh user@ < virtual_machine_ip >:

build_ros_model.sh文件不是特定于此模型的。对于多个模型,只需要传输一次。

在Linux系统上,执行以下命令来创建Catkin工作区。您可以使用现有的Catkin工作区。

Mkdir -p ~/catkin_ws_金宝appsimulink/src CD ~/catkin_ws_simulink/src catkin_init_workspace

在Linux中使用以下命令解压并构建该节点。取代< path_to_catkin_ws >通往你的柳絮工作区的路径。

cd ~ ./build_ros_model.sh RobotController. sh说明tgz < path_to_catkin_ws >

如果这不起作用,请确保build_ros_model.sh通过输入以下命令将其设置为可执行文件。

chmod + x build_ros_model.sh

生成的源代码在~ / catkin_w金宝apps_simulink / src / robotcontroller /.复习内容package.xml文件。验证节点可执行文件是使用以下方法创建的:

文件~ / catkin_ws_s金宝appimulink /猛击/ lib / robotcontroller / robotcontroller_node

如果成功创建了可执行文件,该命令将列出关于文件的信息。

该模型现在可以作为设备上的独立ROS节点运行了。

可选:然后可以使用此命令运行节点。取代< path_to_catkin_ws >通往你的柳絮工作区的路径。

~ / < path_to_catkin_workspace > /猛击/ lib / robotcontroller / robotcontroller_node

相关的话题