主要内容

从模型生成一个独立的ROS 2节点万博1manbetx

这个例子向您展示了如何生成和建立一个独立的ROS 2节点从一个仿真软件®模型。万博1manbetx你配置一个模型为一个独立的ROS生成c++代码2节点。然后,构建和运行ROS 2节点主机。

先决条件

为代码生成配置模型

配置一个模型为一个独立的ROS生成c++代码2节点。模型中引入的比例控制器反馈控制的ROS-Enabled机器人/ ROS 2的例子。

  • 打开机器人的反馈控制模型配置为ROS 2。另外,电话open_system (“robotControllerROS2”)

  • ROS选项卡,在准备,点击硬件设置。在硬件实现窗格中,硬件板设置部分包含设置特定的ROS生成2包,如信息包含在package.xml文件。改变维护人员的名字ROS 2例用户

  • 该模型需要大小可变的数组。要启用这个选项,检查适应信号代码生成>界面>软件环境

  • 解算器窗格中,确保解决者类型被设置为固定步,并设置固定的大小0.05。在生成的代码中,固定的大小定义实际的时间步,在几秒钟内,用于模型更新循环(见执行从模型生成的代码(万博1manbetx仿真软件编码器))。它可以做得更小(例如,0.001或0.0001),但对于当前目的0.05就足够了。

  • 指定外部ROS包依赖关系:指定外部ROS 2包依赖关系的ROS生成2节点,指定适当的工具链选项。下的配置参数,代码生成>工具链设置,指定构建配置作为指定从下拉。然后,您可以指定需要包,包括目录、链接库,库路径定义了基于外部ROS 2包,你想结合生成的活性氧2节点。

  • 点击好吧

配置到ROS 2的连接设备

一个ROS 2设备是任何Linux系统,ROS 2安装和构建和运行一个ROS 2节点的能力。如果你有仿真软件编码器,万博1manbetx可以为一个独立的ROS生成代码2节点。如果您的系统是连接到一个ROS 2设备仿真软件还可以将生成的代码的ROS 2设备,建立一个可执万博1manbetx行文件,并运行产生的ROS 2节点(这被称为“部署”ROS节点)。

在这个任务中,你决定,如果你想ROS生成代码2节点或如果你想构建和ROS 2设备上运行它。如果你连接到一个ROS 2设备,您可以配置仿真软件使用它作为你的ROS 2节点的部署目标。万博1manbetx

  • 建模选项卡上,单击模型设置

  • 硬件实现面板的配置参数对话框中,选择一个建立行动硬件板硬件资源>组>设置>目标构建选项。选择构建行动影响的行为模型在构建模型。万博1manbetx没有一个(默认设置)只生成活性氧的代码2节点,没有建立在外部ROS 2设备。构建和负载生成的代码,传输到外部设备,构建一个ROS 2节点执行。如果您选择构建和运行,生成的节点执行开始自动的构建。

  • 设置建立行动构建和运行。

  • 配置连接到外部ROS 2设备。下ROS选项卡,从部署到下拉,点击管理远程设备。这将打开连接到一个ROS设备对话框。在这个对话框中,你可以输入所有的信息模型需要部署ROS 2节点。万博1manbetx这包括你的IP地址或主机名称ROS 2设备,您的登录凭证,柔荑花序工作区。改变柔荑花序工作区~ / ros2_ws_test

ROS 2文件夹ROS的位置2 ROS 2设备上安装。如果你不指定此文件夹,设置测试(见下一步)试图确定正确的文件夹。

  • 如果ROS 2设备是打开的,可以从你的电脑,你可以通过点击验证连接设置测试。测试验证每个设备设置和显示警告和错误的模型诊断观众如果找到问题。万博1manbetx如果可能的话,测试也表明如何固定的问题。点击测试现在。

  • 最有可能的是,柔荑花序工作区中~ / ros2_ws_test目标设备上是不存在的。测试检测到这个问题,建议创建文件夹和初始化工作空间。点击修复自动应用这个动作。几秒钟后,您应该看到一个绿色的注意,成功创建了文件夹。在下图中可以看到成功的一个例子创建的文件夹。柔荑花序工作区现在可以验证,点击测试在连接设置对话框中。警告已经消失了,柔荑花序工作区准备构建ROS 2节点。

  • 改变设备连接设置和测试它们,直到没有任何警告或错误显示。如果一个自动修复您的设置是可行的,仿真软件显示显示万博1manbetx修复按钮。一旦你有了一套好的设置,点击好吧在连接设置对话框中保存设置。

连接设置并不特定于单个模型,但在仿真软件适用于所有ROS 2模型。万博1manbetx

生成c++ ROS 2节点

在这个任务中,你为一个独立的ROS 2节点生成代码,并自动构建和运行它在主机电脑。

  • 在MATLAB®,改变当前文件夹到一个位置,你有写权限。

  • 模拟选项卡,在准备中,选择ROS工具箱> ROS网络

  • 设置域ID的活性氧(ROS 2) 2网络。这个示例使用域ID作为25。

  • 如果你是部署到本地设备,设置环境变量ROS_DOMAIN_ID使用价值25日setenv在MATLAB。

  • 设置活性氧ROS 2网络的中间件(ROS 2)。这个示例使用ROS中间件rmw_cyclonedds_cpp

  • 如果你是部署到本地设备,设置环境变量RMW_IMPLEMENTATIONrmw_cyclonedds_cpp,使用setenv在MATLAB。

  • ROS选项卡,从部署部分下拉,点击构建和运行。如果你得到任何关于总线类型不匹配的错误,关闭模式,清除所有变量从基MATLAB工作区,并重新打开模型。点击视图诊断模型的底部链接工具栏看到构建过程的输出。

代码生成完成后,ROS 2节点构建在当前工作目录开始自动运行同步的方式基于模型的采样时间。当运行在Windows®中,打开一个命令窗口。不关闭窗口,但使用Ctrl + C关闭ROS 2节点。

使用ros2节点列出所有正在运行的节点是ROS 2网络。robotControllerROS2应该显示的节点列表。

ros2 (“节点”,“列表”)
/ robotControllerROS2 ros_bridge

验证部署节点发布数据ROS 2的话题,/ cmd_vel控制模拟机器人的运动。

ros2 (“主题”,“列表”)
/时钟/ cmd_vel /露台/ link_states /露台/ model_states / imu / joint_states /奥多姆/ parameter_events / rosout / rosout_agg /扫描/特遣部队

指定代码生成和构建选项

你可以选择不同的代码生成和构建行为通过指定其中的一个部署从下将来发布选项ROS选项卡。

  • 生成代码——生成活性氧包源代码localhost或远程设备上。

  • 构建模型——生成活性氧包源代码和构建独立的本地或远程设备上执行。

  • 构建和运行——生成活性氧包源代码,构建独立的可执行文件和本地或远程设备上开始运行它。