主要内容

自动泊车代客与ROS在Simulink金宝app

在Simulink®中的ROS网络中的各个节点之间分发一个自动泊车代客应用程序。金宝app此示例扩展了自动代泊车员(自动驾驶工具箱)自动驾驶工具箱™中的示例。在Simulink中金宝app的Automated Parking Valet示例中使用Simulink模型,在将模型划分为ROS节点之前,调优规划器、控制器和车辆动力学参数。

先决条件:自动代泊车员(自动驾驶工具箱)从Simulink®生成一个独立的ROS节点金宝app

简介

典型的自动驾驶汽车应用程序具有以下工作流程。

这个示例主要模拟规划控制车辆组件。为本地化,本例使用预先记录的地图本地化数据。的规划组件进一步分为行为计划而且路径规划组件。这就形成了一个由四个ROS节点组成的ROS网络:行为计划路径规划控制器而且车辆Sim.下图显示了网络中每个ROS节点与每个ROS节点中使用的主题之间的关系。

探索Simulink R金宝appOS节点和连接性

观察将组件划分为四个独立的Simulink模型。金宝app每个Sim金宝appulink模型表示一个ROS节点,用于发送和接收关于不同主题的消息。

车载Sim节点

1.打开车辆模型。

open_system (“ROSValetVehicleExample”);

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

3.的汽车模型子系统包含自行车模型(自动驾驶工具箱)块,车身3DOF,以模拟车辆控制器的效果,并通过ROS将车辆信息发送到ROS网络发布块的发布子系统。

行为规划节点

1.打开行为计划器模型。

open_system (“ROSValetBehavioralPlannerExample”);

2.该模型从ROS网络读取当前车辆的姿态、速度和方向,并发送下一个目标。它检查车辆是否已达到所使用的分段的目标姿态exampleHelperROSValetGoalChecker

3.的行为计划而且目标检查程序当其中一个上有新消息可用时,模型将运行/ currentpose/ currentvel

4.模型发送状态,如果车辆已达到停车目标使用/ reachgoal主题,该主题使用std_msgs / Bool消息。当此消息为时,所有模型停止模拟真正的

路径规划节点

1.打开路径规划器模型。

open_system (“ROSValetPathPlannerExample”);

2.该模型通过环境地图规划一条可行的路径pathPlannerRRT(自动驾驶工具箱)对象,该对象实现了最优快速搜索随机树(RRT*)算法,并通过ROS网络将计划发送到控制器。

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

控制器节点

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

open_system (“ROSValetControllerExample”);

2.该模型通过ROS网络计算并发送转向和速度命令。

3.控件上有新消息可用时,Controller子系统将运行/ velprofile的话题。

模拟ROS节点以验证分区

在将系统划分为四个ROS节点之后,验证模型的行为保持不变。

1.运行rosinit在MATLAB®命令窗口中初始化全局节点和ROS master

rosinit
启动ROS Core... ..........耗时10.4244秒。在http://192.168.88.1:56949上初始化ROS master。使用NodeURI http://ah-avijayar:57028/初始化全局节点/matlab_global_node_90052

2.加载预记录的定位地图数据在MATLAB基础工作空间使用exampleHelperROSValetLoadLocalizationDatahelper函数。

exampleHelperROSValetLoadLocalizationData;

3.打开仿真模型。

open_system (“ROSValetSimulationExample.slx”);

在左侧的停车选择区,您也可以选择一个车位。默认的停车位是第一行的第6个位置。

4.在“仿真”页签中,单击运行模拟部分或运行sim(“ROSValetSimulationExample.slx”)在MATLAB命令窗口中。一个图形打开并显示车辆如何跟踪参考路径。蓝线代表参考路径,红线是车辆实际行驶的路径。所有模型的仿真都在车辆到达最终停车点时停止。

sim卡(“ROSValetSimulationExample.slx”);

仿真结果

可视化车辆模型中的子系统为本例生成结果。

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

visualizePathBlock负责创建和更新前面所示的车辆路径图。车辆速度和转向命令显示在一个范围内。

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

部署ROS节点

生成ROS应用程序行为计划路径规划控制器节点,并模拟车辆节点,并与仿真结果进行比较。有关生成ROS注释的更多信息,请参见从Simulink®生成一个独立的ROS节点金宝app

1.部署行为计划路径规划而且控制器ROS节点。

2.打开车辆模型。

open_system (“ROSValetVehicleExample”);

3.从模拟选项卡上,单击运行开始模拟。

4.在图上观察车辆运动,并与仿真运行结果进行比较。

5.关闭ROS网络使用rosshutdown

rosshutdown
使用NodeURI关闭全局节点/matlab_global_node_90052 http://ah-avijayar:57028/在http://192.168.88.1:56949上关闭ROS master。