Apollo 10.0
自动驾驶开放平台
|
apollo::control::ControlCommand
,实现解析底盘数据并将底盘数据写入到 modules/common_msgs/chassis_msgs/chassis.proto
。在车型工厂类 apollo::canbus::AbstractVehicleFactory
内,定义了初始化,启动和关闭,解析控制指令,解析底盘命令,发布底盘消息,发布底盘报文解析数据,更新心跳等方法, 这些方法调用了车辆控制器的对象进行实现。车辆控制器 apollo::canbus::VehicleController
定义了初始化,启动和关闭, 通过底盘反馈报文更新 chassis 数据,处理控制指令方法,处理底盘命令方法,车辆使能方法,实现油门、刹车、转向,档位、驻车、 灯光等车辆的控制逻辑。apollo::canbus::AbstractVehicleFactory
和车辆控制器类 apollo::canbus::VehicleController
,创建 CanClient
客户端,创建 CanSender
、 CanReceiver
对象,实现相应的初始化、更新chassis、处理控制指令等方 法。,创建消息管理器 apollo::drivers::canbus::MessageManager
对象,对该车型的发送/接收报文进行管理。车型的每一条报文 数据格式定义继承 apollo::drivers::canbus::ProtocolData
,并实现报文协议解析。每一类车型代码通过包管理的方式进行组 织,具体车型实现可移动到 modules/canbus_vehicle
进行查看。CanClient
客户端是CAN卡硬件驱动的实例,它是被不同的使用CAN总线协议的传感器共享的。如果现有的CAN卡驱动不满足使用,可以通过继承 apollo::drivers::canbus::CanClient
类在 modules/drivers/canbus/can_client
的文件夹中实现新的CAN卡驱动。 CanClient
客户端可以移动到 modules/drivers/canbus/can_client/
进行查看。apollo::canbus::CanbusComponent
Channel名称 | 类型 | 描述 |
---|---|---|
/apollo/control | apollo::control::ControlCommand | 控制指令 |
/apollo/guardian | apollo::guardian::GuardianCommand | 安全指令 |
/apollo/chassis_control | apollo::external_command::ChassisCommand | 外部底盘命令 |
Channel名称 | 类型 | 描述 |
---|---|---|
/apollo/chassis | apollo::canbus::Chassis | 车辆底盘信息接口数据,包括车辆速度、方向盘转角、档位、底盘状态等信息 |
/apollo/chassis_detail | apollo::${Vehicle_Type} | 车辆底盘详细信息,展示发送和接收底盘报文解析数据 |
文件路径 | 类型/结构 | 说明 |
---|---|---|
modules/canbus/conf/canbus_conf.pb.txt | apollo::canbus::CanbusConf | apollo::canbus::CanbusComponent 的配置文件 |
modules/canbus/conf/canbus.conf | gflags | 命令行参数配置 |
flagfile | 类型 | 描述 |
---|---|---|
modules/canbus/common/canbus_gflags.cc | cc | Canbus组件flags变量定义文件 |
modules/canbus/common/canbus_gflags.h | h | Canbus组件flags声明文件 |
modules/canbus/conf/canbus.conf
配置文件/apollo/chassis_detail
消息,建议调试底盘数据时打开 /apollo/control
数据。注意:如果打开,则接收/apollo/guardian
数据,且需要启动guardian模块 modules/canbus/conf/canbus_conf.pb.txt
配置文件配置can_card_parameter,使用哪个can卡,配置哪个,下图示例是使用HERMES_CAN设备,PCI类型,端口号0,最大端口数8。
如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。