在Simulink®中,将自动泊车代客应用程序分发到ROS网络中的各个节点。金宝app此示例扩展了自动停车员(自动驾驶工具箱)自动驾驶工具箱™中的例子。使用Simulink金宝app中的Automated Parking Valet例子中的Simulink模型,在将模型划分为ROS节点之前,调整规划器、控制器和车辆动力学参数。
先决条件:自动停车员(自动驾驶工具箱),从Simulink®生成一个独立的ROS节点金宝app
一个典型的自动驾驶汽车应用程序有以下工作流。
这个例子集中在模拟规划,控制和车辆组件。为本地化,本例使用预先录制的地图定位数据。的规划组件进一步分为行为计划和路径规划组件。这就形成了一个由四个ROS节点组成的ROS网络:行为计划
,路径规划
,控制器
和车辆Sim
.下图显示了网络中各个ROS节点之间的关系以及各自使用的主题。
观察将组件划分为四个独立的Simulink模型。金宝app每个Sim金宝appulink模型代表一个ROS节点,用于发送和接收不同主题的消息。
1.打开车辆模型。
open_system (“ROSValetVehicleExample”);
3.的汽车模型
子系统包含一个自行车模型(自动驾驶工具箱)块,车辆身体3自由度
,模拟车辆控制器的作用,通过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节点后保持不变。
1.运行rosinit
在MATLAB®命令窗口中初始化全局节点和主机ROS
rosinit
启动ROS核心... ..........10.4244秒完成。在http://192.168.88.1:56949上初始化ROS master。使用NodeURI http://ah-avijayar:57028/初始化全局节点/matlab_global_node_90052
2.在MATLAB基础工作空间中加载预先录制的定位地图数据exampleHelperROSValetLoadLocalizationData
helper函数。
exampleHelperROSValetLoadLocalizationData;
3.打开仿真模型。
open_system (“ROSValetSimulationExample.slx”);
在左侧的停车选择区,您也可以选择一个车位。默认的车位是排在第6的车位。
4.在“仿真”页签中,单击运行从模拟部分或运行sim(“ROSValetSimulationExample.slx”)
在MATLAB命令窗口。一个图形打开并显示车辆如何跟踪参考路径。蓝线为参考路径,红线为车辆实际行驶路径。所有模型的仿真都是在车辆到达最终停车点时停止的。
sim卡(“ROSValetSimulationExample.slx”);
的可视化
车辆模型中的子系统为本例生成结果。
open_system (“ROSValetVehicleExample /车辆模型可视化”);
visualizePath
Block负责创建和更新前面显示的车辆路径图。车辆的速度和驾驶指令显示在一个范围内。
open_system (“ROSValetVehicleExample /车辆模型/可视化/命令”)
生成ROS应用程序行为计划
,路径规划
,控制器
节点,并模拟车辆
并与仿真结果进行了比较。有关生成ROS笔记的更多信息,请参见从Simulink®生成一个独立的ROS节点金宝app.
1.部署行为计划
,路径规划
和控制器
ROS节点。
2.打开车辆模型。
open_system (“ROSValetVehicleExample”);
3.从模拟选项卡上,单击运行开始模拟。
4.观察车辆在地块上的运动,并比较模拟运行的结果。
5.关闭ROS网络使用rosshutdown
.
rosshutdown
使用NodeURI http://ah-avijayar:57028/关闭全局节点/matlab_global_node_90052。在http://192.168.88.1:56949上关闭ROS master。