给定任务(航路点)状态,行为和运动状态的车辆软件包,用于管理车辆状态。
每个状态由状态机管理。
Parameter|Type|Description
auto_mission_reload|Bool|(default: *false*)
如果设置为true,则Decision Maker会在上一个任务完成后自动将任务重新加载为新任务。
auto_engage|Bool|(default: *false*)
如果设置为true,则Decision Maker在准备开车后会立即自动参与。
auto_mission_change|Bool|(default: *false*)
如果将其设置为true,则在驾驶过程中加载新任务时,决策者无需state_cmd即可自动更改任务(航路点)。
use_fms|Bool|(default: *false*)
为了与[Autoware Management System]合作,这必须是true(https://github.com/CPFL/AMS)
disuse_vector_map|Bool|(default: *false*)
如果设置为* true *,则即使未成功加载矢量地图,decision_maker也将退出“ MapInitState”。
num_of_steer_behind|Int|(default: *20*)
沿航路点查找距离以确定转向状态(直线,向右转或向左转)
change_threshold_dist|Double|(default: *1*)
仅当* use_fms *为* true *时,这才是相关事件。
如果新任务中车辆到最近的路点的距离大于* change_threshold_dist * [m],则任务更改失败。
change_threshold_angle|Double|(default:*15*)
仅当* use_fms *为* true *时,这才是相关的。
如果新任务中从车辆到最近航路点的角度大于此* change_threshold_dist * [deg],则任务更改失败。
time_to_avoidance|Double|(default: *3*)
如果车辆在* time_to_avoidance *秒内被卡住(例如,由于障碍物),则状态从“开始”转换为“避免”。
goal_threshold_dist|Double|(default: *3*)
用于检查车辆是否已达到目标(即航点终点)的阈值。 车辆必须小于目标的* goal_threshold_dist * [m]。
goal_threshold_vel|Double|(default: *0.1*)
用于检查车辆是否已达到目标(即航点终点)的阈值。 车辆必须小于* goal_threshold_vel * [m / s]才能视为目标到达。
## ROS Parameters
Parameter|Type|Description
state_vehicle_file_name|string|file 定义车辆状态转换
state_mission_file_name|string|file 定义任务状态转换
state_behavior_file_name|string|file 定义行为状态转换
state_motion_file_name|string|file 定义运动状态转换
stopline_reset_count|int| 如果车辆停在停车线并向后移动而不越过停车线,则使用此参数。 当车辆通过此路点计数向后移动时,将再次识别停止线。
## Subscribed topics
Topic|Type|Objective
/based/lane_waypoints_array|autoware_msgs/LaneArray 车辆遵循的航路点。 (例如,从waypoint_loader节点提供的路标)
/change_flag|std_msgs/Int32|Vehicle 如果设置了此标志,车辆将尝试更改车道。 发布/ lamp_cmd以根据此标志更改信号灯。 (0 =直,1 =右,2 =左)
/closest_waypoint|std_msgs/Int32|Closest /based / lane_waypoints_array所指定的航路点中最接近的航路点索引。
/config/decision_maker|autoware_config_msgs::ConfigDecisionMaker 参数从运行时管理设置
/current_pose|geometry_msgs/PoseStamped| 车辆当前姿态
/current_velocity|geometry_msgs/TwistStamped| 车辆当前速度
/filtered_points|sensor_msgs/PointCloud2| 用于检查传感器数据是否准备就绪。同时为了提供用于ndt_matching的点云数据。
/final_waypoints|autoware_msgs/Lane| 来自计划者节点的合成航路点,例如 来自velocity_set节点。
/obstacle_waypoint|std_msgs/Int32 障碍物路点索引。 在“执行”状态下使用。
/state_cmd|std_msgs/String Decision_maker将尝试根据此主题提供的密钥转换状态。
/state/stop_order_wpidx|std_msgs/Int32 车辆将尝试在此航点索引处停止。 在“ OrderedStop”状态下使用。
/vector_map_info/area|vector_map_msgs/AreaArray| 矢量地图的区域信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此设置。
/vector_map_info/cross_road|vector_map_msgs/CrossRoadArray| 从矢量地图的交叉路信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此设置。
/vector_map_info/line|vector_map_msgs/LineArray| 矢量地图中的线信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此设置。
/vector_map_info/point|vector_map_msgs/PointArray| 矢量地图中的点信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此信息。
/vector_map_info/road_sign|vector_map_msgs/RoadSignArray| 从矢量地图的路标信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此设置。
/vector_map_info/stop_line|vector_map_msgs/StopLineArray| 矢量地图中的停线信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此信息。
/vector_map_info/vector|vector_map_msgs/VectorArray| 矢量地图中的矢量信息。
除非订阅了area,cross_road,line,point,road_sign,stop_line和vector,否则将忽略此设置。
## Published topics
Topic|Type|Objective
/decision_maker/available_transition|std_msgs/String 从当前状态的可用过渡
/decision_maker/operator_help_text|jsk_rviz_plugins/OverlayText 操作过程中的帮助信息
/decision_maker/state|std_msgs/String| “车辆”,“任务”和“驾驶”状态机的当前状态。
/decision_maker/state_msg|autoware_msgs/State| 带标题的“车辆”,“任务”和“驾驶”状态机的当前状态。
/lamp_cmd|autoware_msgs/LampCmd 车辆的信号灯命令(0 =直行,1 =右,2 =左)
/lane_waypoints_array|autoware_msgs/LaneArray 航点传递给后续计划者。 (例如lane_rule)
/light_color_managed|autoware_msgs/TrafficLight| 旨在发布light_color状态。 尚未实施。
/decision_maker/state_overlay|jsk_rviz_plugins/OverlayText 当前状态为overlay_txt。
/state/stopline_wpidx|std_msgs/Int32| 车辆停止的航点索引。
/decision_maker/target_velocity_array|std_msgs/Float64MultiArray| 从final_waypoints获得的目标速度数组。
/stop_location|autoware_msgs/VehicleLocation| 关于`/ state_stop_order_wpidx`主题的fms的反馈。 它包含车辆将要停止的索引以及该车辆当时正在使用的lane_array的ID。\
## State Description
### Vehicle States
State name|Required topic|Description|Implementation
Init|-| 以下状态的父状态-
SensorInit|/filtered_points| 等待所有传感器准备就绪 |直到接收到/ filtered_points为止,除非启动wf_simulator节点。
MapInit| 等到矢量图准备好|如果将disuse_vector_map设置为false,则等待直到订阅了vector_map。
LocalizationInit|/current_pose|Waits until localizer is ready | Waits until current_pose is converged. (i.e. ndt_matching is stable.)
PlanningInit|/closest_waypoint|Waits unil planners are ready | Subscriber is set for /closest_waypoint.
VehicleInit|-|等待直到车辆准备出发.|没有实现会直接进入车辆就绪状态.
VehicleReady|-|车辆已准备好移动。|当给出“紧急”键时,退出到车辆紧急状态state_cmd或其他状态设置为“ emergency_flag
BatteryCharging Charging the battery|Waits until `charging_end` key by state_cmd from other nodes(e.g. by AMS).
VehicleEmergency Emergency is detected somewhere in the system. |Waits until `return_from_emergency` or `return_to_ready` key is by /state_cmd (e.g. by DecisionMakerPanel)