丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
智能駕駛 正文
發(fā)私信給大壯旅
發(fā)送

0

Comma.ai開發(fā)了一款駕駛助理openpilot,它是如何工作的?

本文作者: 大壯旅 2017-07-02 09:15
導(dǎo)語:openpilot 能實現(xiàn)對油門、剎車和方向的自主控制,控制時長最高可達 6 分鐘(使用時駕駛員請注意觀察路況)。

雷鋒網(wǎng)按:近日,“神奇小子”George Hotz 創(chuàng)辦的自動駕駛初創(chuàng)公司 Comma.ai 在Medium 撰文分享了其開發(fā)的一款開源駕駛助理 openpilot。

據(jù)雷鋒網(wǎng)了解,Comma.ai 發(fā)布的第一款產(chǎn)品 Comma One 因為無法證明其安全性,一個月后被美國公路交通安全管理局叫停。隨后 Hotz 轉(zhuǎn)換思路,將 Comma.ai 的自動駕駛軟件進行開源,甚至還提供了一份硬件組裝指南,指導(dǎo)極客用戶自己動手打造一個即插即用的輔助駕駛套件。

openpilot 便是這一思路下的產(chǎn)物。具體來說,openpilot 能實現(xiàn)對油門、剎車和方向的自主控制,控制時長最高可達 6 分鐘(使用時駕駛員請注意觀察路況)。我們來看看 openpilot 是如何工作的,也希望業(yè)內(nèi)的行家來評判這種方式是否靠譜。

Comma.ai開發(fā)了一款駕駛助理openpilot,它是如何工作的?

使用中的openpilot

如何與汽車交流?

現(xiàn)在的市售車輛中,大多數(shù)都是通過多條控制器局域網(wǎng)路(CAN)總線將車輛的多個模組連接在一起的。其中一條 CAN 總線會連接在汽車自診系統(tǒng)(OBD-II)上,其他的則大多數(shù)被隱藏在車輛內(nèi)部面板之下。

Comma.ai開發(fā)了一款駕駛助理openpilot,它是如何工作的?

圖1:panda

openpilot 可以用 NEO 或 panda 作為 CAN 的接口。由于 openpilot 采用開源設(shè)計,因此它還能支持OpenXC、Kvaser 或者 CANBus Triple。

在 openpilot 最先支持的本田思域和 ILX 兩款車上,所有的通訊只需要兩條 CAN 總線就能完成,一條是車輛 CAN 總線,一條則為雷達 CAN 總線。不過,其他車輛可能會有所不同。

汽車能說哪國語言?

其實 CAN 是一種非常簡單的協(xié)議,只靠一條總線,任何設(shè)備都能給局域網(wǎng)路上的其他設(shè)備發(fā)送信息。信息內(nèi)會含有標(biāo)識符,標(biāo)準(zhǔn)的 CAN 協(xié)議識別符長度為 11 比特,擴展版則為 29 比特。一條信息最長為 8 字節(jié)。

Comma.ai開發(fā)了一款駕駛助理openpilot,它是如何工作的?

標(biāo)準(zhǔn)的 CAN 信息

標(biāo)識符會決定如何解析信息,而DBC文件是指定解析方法的標(biāo)準(zhǔn)方式。下面這段代碼就是從參與測試本田思域的 DBC 文件中截取出來的,從中我們可以看出轉(zhuǎn)向控制包是如何解析的:

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

這段代碼第一行的信息標(biāo)識符是 228 或 0xE4,其他四行則展示了將四個字段打包填充進 5 字節(jié)信息的方法。

如果想看到更多解析 CAN 信息的代碼,可以在 GitHub 上搜索 can_parser.py 和 dbc.py。

如何完成精確的轉(zhuǎn)向?

恐怕你已經(jīng)注意到,轉(zhuǎn)向控制包并未指定車輪轉(zhuǎn)向的精確方位,它控制的是傳導(dǎo)到車輪上的扭矩。這確實是許多車輛轉(zhuǎn)向時的控制方式,不過這里還需要額外加入一些控件來打造閉環(huán)控制系統(tǒng)。此外,CAN 總線上也已經(jīng)整合了車輛的轉(zhuǎn)向角度。

BO_ 330 STEERING_SENSORS: 8 EPS

SG_ STEER_ANGLE : 7|16@0- (-0.1,0) [-500|500] “deg” NEO

這樣一來,預(yù)定角度、當(dāng)前角度和扭矩控制都齊全了,很適合打造 PID 回路。不過,由于扭矩較小,因此只使用 PI 回路就行。

Comma.ai開發(fā)了一款駕駛助理openpilot,它是如何工作的?

如果想看到更多 PI 回路的執(zhí)行方法,可以在 GitHub 上搜索 latcontrol.py。

ROS 2.0

說了這么多,我們也該談?wù)?openpilot 的架構(gòu)。

初看下來,它與 ROS(機器人操作系統(tǒng))非常相似,不過后者 有些臃腫,而且自定義的消息傳遞系統(tǒng)和輸入系統(tǒng)也不招人喜歡。

在 openpilot 上,開發(fā)者用了 ZMQ 發(fā)布/訂閱模型來處理信息傳遞,輸入上則用到了 cap’n proto。有趣的是,ROS 進化到 2.0 時代后,也會用到相同的解決方案。

車輛抽象層

在設(shè)計指出,研發(fā)人員就希望 openpilot 能與不同的車輛進行“交流”。如果想了解車輛抽象層的相關(guān)代碼,可以到 GitHub 上搜索 car.capnp。

自適應(yīng)巡航(縱向)

在 openpilot 中,開發(fā)者將油門/剎車與轉(zhuǎn)向進行了分離。縱向控制上與傳統(tǒng)車輛無異,這里也沒有用到神經(jīng)網(wǎng)絡(luò)。

開發(fā)者還在 GitHub 上公布了 radard.py 的相關(guān)代碼,它可以用來解析車輛雷達傳來的信息。同時,它還與視覺系統(tǒng)進行了基本的融合,最高可以回傳兩輛前車的位置信息。

有了這些信息,自適應(yīng)巡航系統(tǒng)就能決定行駛時車速的高低了。

視覺系統(tǒng)(橫向)

visiond 負(fù)責(zé)控制神經(jīng)網(wǎng)絡(luò),不過由于商業(yè)模式的原因,這部分采用閉源設(shè)計,但 API 是開源的。

struct ModelData {

  frameId @0 :UInt32;

  

  path @1 :PathData;

  leftLane @2 :PathData;

  rightLane @3 :PathData;

  lead @4 :LeadData;

  ...

借助視覺系統(tǒng),openpilot 可以順利完成路線規(guī)劃,同時對左右車道和前車的方位,它也能了如指掌。

借助 pathplanner.py 代碼,各種路線選擇被整合到了一起,隨后它會完成最佳方案的選擇。同時,latcontrol.py 代碼還會為車輛設(shè)定路途中的目標(biāo)點,隨后汽車會跟著這些目標(biāo)點前行。當(dāng)然,現(xiàn)在這套系統(tǒng)還有很大的進步空間,未來會加入更多復(fù)雜的控制策略。

整合

manager.py 負(fù)責(zé)控制車輛的啟動和停止。Boardd、sensord 和 visiond 三個代碼都可以與外界進行交流,loggerd 則負(fù)責(zé)記錄數(shù)據(jù)供機器學(xué)習(xí)使用,plannerd 則負(fù)責(zé)告訴車輛目的地在哪。controlsd 是與車輛交流的主過程,車輛啟動后它就會一同運行起來。

雷鋒網(wǎng)推薦閱讀:

Comma.ai開源后國內(nèi)首個嘗鮮者,嗅到自動駕駛新商機?

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說