百度Apollo学习:Canbus模块结构和源码

本文深入探讨百度Apollo中的Canbus模块,解释其作为自动驾驶系统与车体间桥梁的角色。介绍了Canbus模块的主要流程,包括输入输出、Canbus驱动以及车辆控制器的工作原理。此外,还详细阐述了Canbus的接收与发送机制,以及消息管理器、CanReceiver和CanSender的功能。
摘要由CSDN通过智能技术生成

百度Apollo学习:Canbus模块结构和源码

image

附赠自动驾驶学习资料和量产经验:链接

Canbus模块介绍

我们先看下什么是Canbus: 控制器局域网 (Controller Area Network,简称CAN或者CAN bus) 是一种车用总线标准。被设计用于在不需要主机(Host)的情况下,允许网络上的节点相互通信。采用广播机制,并利用标识符来定义内容和消息的优先顺序,使得canbus的扩展性良好,同时不基于特殊类型(Host)的节点,增加了升级网络的便利性。

这里的Canbus模块其实可以称为Chassis模块,主要的作用是反馈车当前的状态(航向,角度,速度等信息),并且发送控制命令到车线控底盘,可以说Canbus模块是车和自动驾驶软件之间的桥梁。由于这个模块和"drivers/canbus"的联系紧密,因此也一起在这里介绍。

Canbus模块是车和自动驾驶软件之间的桥梁,通过canbus驱动(drivers/canbus)来实现将车身信息发送给apollo上层软件,同时接收控制命令,发送给汽车线控底盘实现对汽车的控制。

那么canbus模块的输入是什么?输出是什么呢?

image

可以看到canbus模块:

  • 输入- 1. ControlCommand(控制命令)

  • 输出- 1. Chassis(汽车底盘信息), 2. ChassisDetail(汽车底盘信息详细信息)

Canbus模块的输入是control模块发送的控制命令,输出汽车底盘信息,这里apollo的上层模块被当做一个can_client来处理,实现接收和发送canbus上的消息。

Canbus模块的目录结构如下:

├── BUILD                    // bazel编译文件
├── canbus_component.cc      // canbus主入口
├── canbus_compon
  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值