|
|
Autoware.Auto 的系统 |
李澎涛,俎涛 翻译(火龙果软件工程) |
1106 次浏览 |
5次 |
|
|
系统
该 system 子目录包含与系统监控和维护相关的节点和库。
子页面
Autoware状态监控
这是 autoware_state_monitor 包装的设计文件。
目的/用例
的目的 autoware_state_monitor 是以紧凑的形式呈现系统状态。
设计
当前状态是基于对多个源和状态机的观察生成的(下图)。
可能的状态:
- 初始化
- 等待路由
- 规划
- 等待订婚
- 驾驶
- 到达目标
- 敲定
图 TD 开始 --> 初始化 初始化 --> WaitingForRoute 初始化 --> 完成 WaitingForRoute --> 规划 WaitingForRoute --> 完成 计划 --> WaitingForEngage 计划 --> 完成 WaitingForEngage --> 驾驶 WaitingForEngage --> 计划 WaitingForEngage --> ArrivedGoal WaitingForEngage --> 完成 驾驶 --> ArrivedGoal 驾驶 --> WaitingForEngage 驾驶 --> 规划 驾驶 --> 完成 ArrivedGoal --> WaitingForRoute ArrivedGoal --> 完成
在状态机的每次更新中,都会检查输入并生成新状态。 例如,在转换到 ArrivedGoal 状态之前,该组件检查车辆是否接近目标以及车辆是否停止。
输入/输出/API/参数
参数
- update_rate 确定状态机循环频率。
- arrived_distance_threshold 是一个距离阈值,它确定车辆应该离目标多近才能认为目标已达到。
- stopped_velocity_threshold_mps 是一个速度阈值,低于该阈值车辆被认为是停止的。
- stopped_time_threshold 是时间阈值。 如果车辆速度在指定时间内低于阈值,则认为车辆已停止。
- wait_time_after_initializing 是状态后的延迟 Initializing ,在切换到新状态之前
- wait_time_after_planning 是状态后的延迟 Planning ,在切换到新状态之前
- wait_time_after_arrived_goal 是状态后的延迟 ArrivedGoal ,在切换到新状态之前
输入
- autoware_auto_vehicle_msgs/msg/Engage 用于检查车辆是否已启动。
- autoware_auto_planning_msgs/msg/HADMapRoute 用于提取目标点并纠正状态之间的转换。
- autoware_auto_vehicle_msgs/msg/VehicleOdometry 用于计算当前车辆速度。
- autoware_auto_vehicle_msgs/msg/VehicleStateReport 用于确定车辆是处于手动模式还是自动模式。
- tf/tfMessage 用于确定全局框架中的车辆姿态。
输出
- autoware_auto_system_msgs/msg/AutowareState 包含系统状态。
服务
- std_srvs/srv/Trigger (/autoware/shutdown) 用于请求关闭系统(即进入 Finalizing 状态)。
相关问题
- #1236 - 实施 Autoware 状态监视器
- #821 - 检测节点的传入消息何时被跳过
紧急处理程序
这是 emergency_handler 包装的设计文件。
目的/用例
其目的 emergency_handler 是根据输入信息检测紧急状态并生成紧急控制和状态命令。
设计
这些组件检查多个来源并生成带有诊断信息的紧急速度/状态命令。 只要车辆停止或不存在紧急状态,就会发送紧急命令。 DrivingCapability 它还包含心跳检查器(看门狗),如果没有以指定的频率接收到消息 ,则会生成紧急状态。 紧急状态也可以通过特定的服务来清除。
输入/输出/API/参数
输入
- autoware_auto_system_msgs/msg/DrivingCapability 用于确定车辆能力
- autoware_auto_system_msgs/msg/AutowareState 用于确定 Autoware 系统状态。
- autoware_auto_vehicle_msgs/msg/VehicleControlCommand 用于确定当前车轮角度。
- autoware_auto_vehicle_msgs/msg/VehicleStateReport 用于确定车辆是处于手动模式还是自动模式。
- autoware_auto_vehicle_msgs/msg/VehicleOdometry 用于计算当前车辆速度。
输出
- autoware_auto_vehicle_msgs/msg/VehicleControlCommand 包含紧急控制命令。
- autoware_auto_vehicle_msgs/msg/VehicleStateCommand 包含车辆状态命令。
- autoware_auto_system_msgs/msg/EmergencyMode 用于传播有关紧急模式的信息。
- autoware_auto_system_msgs/msg/HazardStatusStamped 包含有关危险状态的详细信息。
- autoware_auto_system_msgs/msg/DiagnosticArray 包含有关当前状态的诊断信息。
服务
- std_srvs/srv/Trigger (/system/clear_emergency) 用于请求清除紧急状态。
参数
- update_rate 是节点循环频率。
- data_ready_timeout 确定紧急处理程序在启动后应等待多长时间以获取必要的输入数据。 如果在指定时间内没有出现数据,则报告紧急模式。
- timeout_driving_capability DrivingCapability 确定随后收到的消息 之间的最长时间。 如果新消息未在指定时间内出现,则报告紧急状态。
- use_emergency_hold 确定是否应保持紧急状态。 如果它被持有,那么它只能由 clear_emergency 服务清除。
- emergency_hazard_level 是危险等级阈值。 如果危险等级大于或等于参数值,则报告紧急模式。
- emergency_stop_acceleration_mps2 是紧急停止期间使用的加速度值。
- use_parking_after_stopped 确定当车辆在紧急模式下停止时是否应发送带有停车模式的状态命令。
- stopped_velocity_threshold 是速度阈值,低于该阈值车辆被视为停止。
相关问题
- #1245 Autoware 监控系统:实施紧急处理程序
- #821 - 检测节点的传入消息何时被跳过
|
|
|
|