Apollo 10.0
自动驾驶开放平台
|
external-command-lane-follow
是用来处理转发外部命令apollo::external_command::LaneFollowCommand
的处理模块。它接收通过cyber Service调用的LaneFollowCommand命令,提取其中的点到点行驶信息,转换成planning模块需要的apollo::planning::PlanningCommand
的channel信息并发布给planning模块。
apollo::external_command::LaneFollowCommand
是planning最常用的行驶命令,适用于结构化道路点到点沿道路行驶的场景。它主要包含以下信息:
LaneFollowCommandProcessor继承自模板类MotionCommandProcessorBase<LaneFollowCommand>,因此它具有父类的以下特性:
特别地,在LaneFollowCommandProcessor中,实现了对LaneFollowCommand的转换。主要有两种情况:
apollo::routing::RoutingRequest
的起终点位置发送即可。如果外部命令LaneFollowCommand中没有指定起点位置,获取车辆当前的位姿作为起点位置处理。apollo::planning::LaneFollowCommandProcessor
插件的输入有两个:
1.**执行导航命令**:用户通过cyber Service调用命令,执行点到点沿道路行驶的任务。
service 名 | Request类型 | Response类型 | 描述 |
---|---|---|---|
/apollo/external_command/lane_follow | apollo::external_command::LaneFollowCommand | apollo::external_command::CommandStatus | 沿道路点对点行驶命令 |
2.**获取命令状态**:通过cyber Reader监听planning模块发布的命令执行状态。
Channel 名 | 类型 | 描述 |
---|---|---|
/apollo/planning/command_status | apollo::external_command::CommandStatus | 接收planning模块发布的命令执行状态的topic |
插件的输出为命令转换的最终结果(PlanningCommand)和中间结果(RoutingResponse):
Channel 名 | 类型 | 描述 |
---|---|---|
/apollo/planning/command | apollo::planning::PlanningCommand | 具有导航动作的外部命令转换成的内部命令,发送给planning模块 |
/apollo/routing_response | apollo::routing::RoutingResponse | 在高精地图上沿车道线点对点行驶的外部命令,预处理时生成的routing线路,用于HMI显示时使用 |
文件路径 | 类型/结构 | 说明 |
---|---|---|
modules/external_command/command_processor/lane_follow_command_processor/conf/config.pb.txt | apollo::planning::CommandProcessorConfig | 配置文件,外部命令处理器输入输出的channel或service名称等信息 |
如果使用包管理的方式运行apollo,在包管理的cyber.xml文件中添加对插件的依赖:
所有外部命令的插件都是在external-command-process包中加载运行的,需要支持对LaneFollowCommand外部命令处理时,在配置文件modules/external_command/process_component/conf/config.pb.txt中添加以下配置:
如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。