生成代码手动部署ROS从节点万博1manbetx

这个例子说明了如何从Simulink中生成C ++代码万博1manbetx®模型部署作为一个独立的ROS节点。该代码在计算机上产生的,并且必须手动传输到目标设备的ROS。对生成的代码到硬件不需要进行连接。对于ROS节点的自动部署,请参阅生成的Simulink单机ROS节点万博1manbetx.

先决条件

  • 此示例要求万博1manbetx仿真软件编码器™和嵌入式编码器™。

  • 甲Ubuntu的Linux系统与ROS是必要的用于构建和运行生成C ++代码。您可以使用自己的Ubuntu系统ROS,或者您可以使用用于ROS工具箱™例子Linux虚拟机。看到开始与Gazebo和一个模拟的龟甲机器人有关如何安装和使用虚拟机指令。

  • 查看一个ROS启用机器人的反馈控制例如,其中详细Simulink模型正在被从所生成的代码万博1manbetx。

配置模型代码生成

类来为独立的ROS节点生成c++代码配置参数.这里使用的模型是在引入比例控制器一个ROS启用机器人的反馈控制的例子。

打开比例控制器模型。

编辑robotROSFeedbackControlExample

整个模型复制到一个新的空白Simulink模型。万博1manbetx

删除模拟速率控制块。

打开配置参数对话框。在下面模拟选项卡,单击模型设置.

硬件实现面板中,将硬板机器人操作系统(ROS).

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

解算器的窗格配置参数对话框中,确保了类型被设置为固定步长中,解算器被设置为ode3 (Bogacki-Shampine)固定步长被设置为0.05.在生成的代码中,固定步长定义了用于模型更新循环的实际时间步长。看到代码的执行从模型生成(万博1manbetxSimulink编码器)获取更多信息。

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

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

为代码生成配置构建选项

配置模式后,必须指定目标硬件上的构建选项和设置文件夹或建立生成的代码。

打开配置参数对话框。在下面模拟选项卡,单击模型设置.

硬件实现选项卡,在目标硬件资源,单击构建选项组。设置建立行动没有一个.此设置可确保为ROS节点生成的代码无需在外部ROS设备上构建。

生成和部署代码

在启动一个MATLAB高手ROS®.此ROS master是代码生成步骤中使用由Simul万博1manbetxink中。

在MATLAB命令窗口类型:

rosinit

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

在下面C代码选项卡,单击生成代码或按Ctrl + B开始为模型生成代码。

一旦构建完成,两个新文件写入您的文件夹。

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

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

手动将这两个文件传输到目标机器。如果您使用rosdevice,您可以用发送文件putFile.否则,此步骤假设你正在使用用于机器人系统工具箱™例子Linux虚拟机。虚拟机被配置成接受SSH和SCP的连接。如果您正在使用自己的Linux系统,请向系统管理员咨询传输文件的安全方法。

确保您的主机系统(该系统的RobotController.tgzbuild_ros_model.sh有一个SCP客户端。对于Windows®系统,下一步假定腻子SCP客户端(pcsp.exe)安装。

使用SCP将文件传输到Linux虚拟机上的用户主控制器。用户名是用户和密码密码.更换使用您的虚拟机IP地址。

  • Windows主机系统:

    pscp.exe RobotController.tgz build_ros_model.sh用户@ 
  • Linux或macOS主机系统:

    SCP RobotController.tgz build_ros_model.sh用户@ 

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

在Linux系统中,执行下面的命令来创建一个柳絮工作区。您可以使用现有的柳絮工作区。

如果结果不是/ catkin_ws_sim万博1manbetxulink / src目录CD〜/ catkin_ws_simulink / src目录catkin_init_workspace

使用在Linux下面的命令解压缩并建立节点出现。更换< path_to_catkin_ws >与路径到您的柳絮工作区。

cd ~ ./build_ros_model.sh机器人控制器。tgz < path_to_catkin_ws >

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

使用chmod + X build_ros_model.sh

生成的源代码在下面〜/ catkin_ws万博1manbetx_simulink / SRC / robotcontroller /.审查的内容package.xml中文件。验证节点可执行文件是使用以下命令创建的:

文件〜/ catkin_ws_si万博1manbetxmulink / devel的/ lib目录/ robotcontroller / robotcontroller_node

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

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

可选:然后可以使用此命令运行节点。更换< path_to_catkin_ws >与路径到您的柳絮工作区。

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

相关的话题