专栏名称: 雷峰网
中国智能硬件第一媒体
目录
相关文章推荐
51好读  ›  专栏  ›  雷峰网

Comma.ai 开发了一款驾驶助理 openpilot,它是如何工作的?

雷峰网  · 公众号  · 科技媒体  · 2017-07-02 10:16

正文

300 + 明星创业公司,3000 + 行业人士齐聚 全球人工智能与机器人峰会 GAIR 2017 ,一同见证 AI 浪潮之巅! 目前仅剩少量余票,有需要的朋友抓紧了。

雷锋网按: 近日,“神奇小子”George Hotz 创办的自动驾驶初创公司 Comma.ai 在 Medium 撰文分享了其开发的一款开源驾驶助理 openpilot。

据雷锋网了解,Comma.ai 发布的第一款产品 Comma One 因为无法证明其安全性,一个月后被美国公路交通安全管理局叫停。随后 Hotz 转换思路,将 Comma.ai 的自动驾驶软件进行开源,甚至还提供了一份硬件组装指南,指导极客用户自己动手打造一个即插即用的辅助驾驶套件。

openpilot 便是这一思路下的产物。具体来说,openpilot 能实现对油门、刹车和方向的自主控制,控制时长最高可达 6 分钟(使用时驾驶员请注意观察路况)。我们来看看 openpilot 是如何工作的,也希望业内的行家来评判这种方式是否靠谱。

使用中的 openpilot

如何与汽车交流?

现在的市售车辆中,大多数都是通过多条控制器局域网路(CAN)总线将车辆的多个模组连接在一起的。其中一条 CAN 总线会连接在汽车自诊系统(OBD-II)上,其他的则大多数被隐藏在车辆内部面板之下。

图 1:panda

openpilot 可以用 NEO 或 panda 作为 CAN 的接口。由于 openpilot 采用开源设计,因此它还能支持 OpenXC、Kvaser 或者 CANBus Triple。

在 openpilot 最先支持的本田思域和 ILX 两款车上,所有的通讯只需要两条 CAN 总线就能完成,一条是车辆 CAN 总线,一条则为雷达 CAN 总线。不过,其他车辆可能会有所不同。

汽车能说哪国语言?

其实 CAN 是一种非常简单的协议,只靠一条总线,任何设备都能给局域网路上的其他设备发送信息。信息内会含有标识符,标准的 CAN 协议识别符长度为 11 比特,扩展版则为 29 比特。一条信息最长为 8 字节。

标准的 CAN 信息

标识符会决定如何解析信息,而 DBC 文件是指定解析方法的标准方式。下面这段代码就是从参与测试本田思域的 DBC 文件中截取出来的,从中我们可以看出转向控制包是如何解析的:

BO_ 228 STEERING_CONTROL: 5 ADAS

SG_ STEER_TORQUE : 7|16@0- (1,0) [-3840|3840] ""  EPS

SG_ STEER_TORQUE_REQUEST : 23|1@0+ (1,0) [0|1] ""  EPS

SG_ CHECKSUM : 39|4@0+ (1,0) [0|15] ""  EPS

SG_ COUNTER : 33|2@0+ (1,0) [0|3] ""  EPS

这段代码第一行的信息标识符是 228 或 0xE4,其他四行则展示了将四个字段打包填充进 5 字节信息的方法。







请到「今天看啥」查看全文