主要内容

自动停车员2 ROS在仿真软件金宝app

这个例子展示了如何将自动停车员在ROS 2网络中各个节点中应用仿真软件®和部署它们作为独立的ROS 2节点。金宝app这个例子扩展了自动停车员(自动驾驶工具箱)在自动驾驶的工具箱™。使用仿真软件模型在仿金宝app真软件中自动停车员的例子中,调整计划、控制器和车辆动态参数分区模型到ROS之前2节点。

先决条件:自动停车员(自动驾驶工具箱),从模型生成一个独立的ROS 2节点®金宝app

介绍

这种自主车辆应用程序有以下组件。

这个例子集中于模拟规划,控制车辆组件。为本地化这个示例使用预先录制好的定位地图数据。的规划组件是进一步分为行为计划路径规划组件。这导致ROS 2网络由四个ROS 2节点:行为计划,路径规划,控制器车辆。下图显示了每个ROS 2节点之间的关系网络中,每个使用的主题。

探索模型ROS 2节点和金宝app连接

观察组件的划分成四个独立的仿真软件模型。金宝app每个仿真软金宝app件模型代表一个ROS 2节点。

车辆节点

1。打开车辆模型。

open_system (“ROS2ValetVehicleExample”);

2。的订阅子系统包含ROS 2订阅块读取输入数据控制器节点。

3所示。的汽车模型子系统包含一个自行车模型(自动驾驶工具箱)块,车辆身体3自由度,模拟车辆控制器效果和发送的车辆信息通过活性氧ROS 2网络2发布块的发布子系统。

行为计划节点

1。开放的行为规划模型。

open_system (“ROS2ValetBehavioralPlannerExample”);

2。这个模型从ROS 2读取当前车辆信息网络,发送下一个目标,并检查车辆是否已达到最后的姿势段使用rosAutomatedValetHelperGoalChecker

3所示。的行为规划师目标检查程序子系统运行新消息时可用/ currentvel/ currentpose

4所示。模型发送状态时,如果车辆已达到最后目标使用停车/ reachgoal话题,它使用一个std_msgs / Bool消息类型。所有的模型模拟此消息时停止真正的

路径规划节点

1。打开路径规划模型。

open_system (“ROS2ValetPathPlannerExample”);

2。这个模型计划通过环境地图使用的可行路径pathPlannerRRT(自动驾驶工具箱)对象,它实现了最优迅速探索随机树(RRT *)算法和将计划发送到控制器的ROS 2网络。

3所示。的路径规划子系统运行新消息时可用/ plannerConfig/ nextgoal的话题。

控制器节点

1。打开车辆控制器模型。

open_system (“ROS2ValetControllerExample”);

2。这个模型计算并发送ROS的转向和速度命令2网络。

3所示。控制器子系统运行在当一个新消息/ velprofile的话题。

模拟ROS 2节点验证分区

验证模型的行为是相同的分区后,系统分为四个ROS 2节点。

1。加载预先录制好的定位地图数据在MATLAB基础工作空间使用exampleHelperROSValetLoadLocalizationDatahelper函数。

exampleHelperROSValetLoadLocalizationData;

2。打开仿真模型。

open_system (“ROS2ValetSimulationExample.slx”);

在左停车选择区,您也可以选择一个位置。默认的停车位是顶部的第六位。

3所示。在模拟选项卡中,单击运行模拟节或运行sim (“ROS2ValetSimulationExample.slx”)在MATLAB命令窗口。图打开,显示了车辆跟踪参考路径。蓝线代表参考路径,而红线是实际的路径乘汽车旅行。所有模型的仿真停止当车辆到达最后一个停车位。

sim卡(“ROS2ValetSimulationExample.slx”);

仿真结果

可视化子系统在车辆模型为这个示例生成的结果。

open_system (“ROS2ValetVehicleExample /车辆模型可视化”);

visualizePath块负责创建和更新显示的车辆路径的情节。车辆速度和转向命令显示在一个范围。

open_system (“ROS2ValetVehicleExample /车辆模型/可视化/命令”)

部署ROS 2个节点

产生ROS 2申请行为计划,路径规划控制器节点。模拟车辆节点在MATLAB和比较结果与仿真。

生成和部署行为计划,路径规划控制器节点的应用程序使用exampleHelperROS2ValetDeployNodeshelper函数。辅助函数调用slbuild(金宝app模型)仿真软件模型的命令的名称作为输入参数,对于每个模型,生成c金宝app++代码和部署主机上的应用程序。

exampleHelperROS2ValetDeployNodes ();%生成c++代码和部署应用程序ROS 2节点
# # #开始构建过程:ROS2ValetBehavioralPlannerExample和工件生成代码的# # # # # #生成模型特定的文件夹结构代码构建文件夹:C:\Users\joshchen\OneDrive——MathWorks \ \ MATLAB文件\ \ ros-ex88924338 \ ROS2ValetBehavioralPlannerExample_ert_rtw例子
# # #为“ROS2ValetBehavioralPlannerExample”所生成的代码是最新的,因为没有结构,参数或代码替换库的变化被发现。评估模型中指定PostCodeGenCommand # # # # # #使用工具链:Colcon工具# # #建筑“ROS2ValetBehavioralPlannerExample”:所有正在运行的Colcon建立文件夹C: /用户/ joshchen / OneDrive - MathWorks /文件/ MATLAB /例子/ ros-ex88924338 .Done。# # #成功成功地生成所有二进制输出。# # #成功完成构建过程:ROS2ValetBehavioralPlannerExample ROS2ValetBehavioralPlannerExample_codegen_rpt # # #创建HTML报告文件。html构建模型建立目标:总结模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ROS2ValetBehavioralPlannerExample编译的代码编译工件都过时了。1 1模型的建立(0模型已经更新)构建持续时间:0 h 1米32.504秒# # #开始构建过程:ROS2ValetPathPlannerExample # # #生成代码和工件模型特定的文件夹结构生成代码# # #为建立文件夹:C:\Users\joshchen\OneDrive——MathWorks MATLAB \ \ ros-ex88924338例子\ \文件\ ROS2ValetPathPlannerExample_ert_rtw # # #为“ROS2ValetPathPlannerExample”所生成的代码是最新的,因为没有结构,参数或代码替换库的变化被发现。评估模型中指定PostCodeGenCommand # # # # # #使用工具链:Colcon工具# # #建筑“ROS2ValetPathPlannerExample”:所有正在运行的Colcon建立文件夹C: /用户/ joshchen / OneDrive - MathWorks /文件/ MATLAB /例子/ ros-ex88924338 .Done。# # #成功成功地生成所有二进制输出。# # #成功完成构建过程:ROS2ValetPathPlannerExample ROS2ValetPathPlannerExample_codegen_rpt # # #创建HTML报告文件。html构建模型建立目标:总结模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ROS2ValetPathPlannerExample编译的代码编译工件都过时了。 1 of 1 models built (0 models already up to date) Build duration: 0h 1m 53.874s ### Starting build procedure for: ROS2ValetControllerExample ### Generating code and artifacts to 'Model specific' folder structure ### Generating code into build folder: C:\Users\joshchen\OneDrive - MathWorks\Documents\MATLAB\Examples\ros-ex88924338\ROS2ValetControllerExample_ert_rtw ### Generated code for 'ROS2ValetControllerExample' is up to date because no structural, parameter or code replacement library changes were found. ### Evaluating PostCodeGenCommand specified in the model ### Using toolchain: Colcon Tools ### Building 'ROS2ValetControllerExample': all Running colcon build in folder 'C:/Users/joshchen/OneDrive - MathWorks/Documents/MATLAB/Examples/ros-ex88924338'.Done. Success ### Successfully generated all binary outputs. ### Successful completion of build procedure for: ROS2ValetControllerExample ### Creating HTML report file ROS2ValetControllerExample_codegen_rpt.html Build Summary Top model targets built: Model Action Rebuild Reason ==================================================================================== ROS2ValetControllerExample Code compiled Compilation artifacts were out of date. 1 of 1 models built (0 models already up to date) Build duration: 0h 2m 1.851s

打开车辆模型,并开始仿真。

open_system (“ROS2ValetVehicleExample”);set_param (“ROS2ValetVehicleExample”,“SimulationCommand”,“开始”);

验证模拟结果与已部署的ROS 2节点。