在SVL中记录/回放一个轨迹
Autoware.Auto 能够记录路径点到磁盘的路径,然后加载并尝试遵循该路径。 该演示结合了多个子系统,包括 NDT 定位 和 3D 感知堆栈 。 要测试此功能,请执行以下操作:
先决条件
以下说明假设您在 ADE 中运行演示。 有关设置 ADE 环境的说明,请参阅 使用 ADE 安装 。 有关在没有 ADE 的情况下设置 Autoware.Auto 的说明,请参阅 Installation w/o ADE 。 如果在 ADE 之外运行,请替换 source /opt/AutowareAuto/setup.bash 为 source /<path_to_your_autoware_folder>/install/setup.bash .
指示
1. 使用 Lexus RX 450h 和 AutonomouStuff 停车场地图 启动 SVL 模拟器。 此时不要开始模拟。
2. 在新终端中:
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 autoware_demos 记录replay_planner_demo.launch.py |
3. 在 rviz 中,使用点云作为参考,在 AutonomouStuff 停车场地图中定位车辆的生成点。
SVL 重生点 使用“2D Pose Estimate”工具 rviz 为定位提供初始姿态估计。
初始姿势估计
4. 使用 SVL Web 界面,开始模拟。 一旦定位开始估计车辆的位置,视图 rviz 就会从车辆上跳开。 将车辆的视图重新居中。
5. 在新终端中:
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 action send_goal /planning/recordtrajectory autoware_auto_planning_msgs/action/RecordTrajectory "{record_path: "/tmp/path"}" --feedback |
6. 在 SVL 中,驾驶车辆四处行驶以记录路径。
7. 完成录制后,转到运行 ros2 action send_goal 命令的终端并点击 CTRL+C 停止录制。
8. 在 SVL 中,点击 F12 可将载具重新居中于默认重生点。
9. 通过按下正在运行 CTRL+C 的终端 来停止 Autoware 堆栈。 ros2 launch autoware_demosrecordreplay_planner_demo.launch.py
10. 重复步骤 2 和 3。
11. 要重播记录的路径:
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 action send_goal /planning/replaytrajectory autoware_auto_planning_msgs/action/ReplayTrajectory "{replay_path: "/tmp/path"}" --feedback |
12. 当车辆到达回放轨迹的目标时,规划器会自动停止并输出 status::SUCCEED 到您运行 ros2 action send_goal 命令的终端。
您可以通过调整recordreplay_planner.param.yaml 中的参数来修改结束条件 。 当满足以下两个条件时,计划者终止计划:
goal_distance_threshold_m nav_base :帧与回放轨迹中最后一个点 之间的距离阈值
goal_angle_threshold_rad nav_base :帧与回放轨迹中最后一个点 之间的航向角阈值
控制器选项
默认情况下,上述启动命令将使用 MPC 控制器运行规划器。 您可以通过运行以下命令来运行纯追踪控制器而不是 MPC 控制器,
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 autoware_demos 记录replay_planner_demo.launch.py run_pure_pursuit:=True |
请注意,纯追踪控制器更原始,并且不会停止路径上可能导致碰撞的对象 循环播放
要启用轨迹循环,请修改 recordreplay_planner.param.yaml :
- 设置 loop_trajectory 为 True
- 设置 loop_max_gap_m 为完成循环的起点和终点之间允许的最大间隙(米),例如 10 .
请注意,最好在车辆仍在行驶时停止录制命令。 否则,车辆可能会在轨迹的末端停止,而不是移动到起点。 最好编辑保存的路径文件并优化关节处的速度和姿势。
|