91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CAN總線在無人駕駛上的應用

ml8z_IV_Technol ? 來源:未知 ? 作者:胡薇 ? 2018-07-15 09:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

本文主要內容是——無人駕駛中的CAN(Controller Area Network )總線。

CAN總線在整個無人駕駛系統中有著十分重要的作用。除了在VCU信號需要通過CAN總線進行傳輸外,無人車上的某些傳感器(如雷達、Mobileye)的信號傳遞也是通過CAN實現的。

我在無人駕駛,個人如何研究?中提到過實現一個無人駕駛系統,會有幾個層級: 感知層 → 融合層 → 規劃層 → 控制層 更具體一點為: 傳感器層 → 驅動層 → 信息融合層 → 決策規劃層 → 底層控制層

“傳感器層”在之前的分享中已經介紹過了,這次主要介紹的是“驅動層”相關的內容。

正文

CAN通信是一套高性能、高可靠性的通信機制,目前已廣泛應用在汽車電子領域。有關CAN的總線的原理及特性并不是本次分享的重點。本文的重點在無人駕駛系統獲取到CAN消息后,如何根據CAN協議,解析出想要的數據。從CAN總線中解析出傳感器的信息,可以說是每個自動駕駛工程師,甚至每一個汽車電子工程師必備的技能。

認識CAN消息

以百度推出的Apollo開源的代碼為例做CAN消息的講解,我們先看到每一幀的CAN消息是如何被定義的。

可以看到這個名為CanFrame的消息結構中包含4個關鍵信息,分別是:

1. uint32_tid

CAN消息的ID號。

由于CAN總線上傳播著大量CAN消息,因此兩個節點進行通信時,會先看id號,以確保這是節點想要的CAN消息。最初的CAN消息id號的范圍是000-7FF(16進制數),但隨著汽車電控信號的增多,需要傳遞的消息變多,信息不太夠用了。工程師在CAN消息基礎上,擴展了id號的范圍,大大增加了id號的上限,并將改進后的CAN消息稱為“擴展幀”,舊版CAN消息稱為“普通幀”。

如果拿寫信做比較,這個id就有點類似寫在信件封面上的名字。

2. uint8_tlen

CAN消息的有效長度。

每一幀CAN消息能夠傳遞最多8個無符號整形數據,或者說能夠傳遞8*8的bool類型的數據。這里的len最大值為8,如果該幀CAN消息中有些位沒有數據,這里的len就會小于8。

3. uint8_tdata[8]

CAN消息的實際數據。

正如剛才提到的,每一幀CAN消息都包含至多8*8個bool類型的數據,因此可以通過8*8個方格,可視化CAN消息中的data。如下圖所示:

在沒有CAN協議幫助我們解析的情況下,這里的數據無異于亂碼,根本無法得到有用的消息,這也是CAN消息難以破解的原因之一。

4.timestamp

CAN消息的時間戳。

時間戳表示的是收到該CAN消息的時刻。通過連續多幀的時間戳,可以計算出CAN消息的發送周期,也可以用于判斷CAN消息是否被持續收到。

綜上,每幀CAN消息中最重要的部分其實是data,即8*8的bool值。所謂解析CAN消息,其實就是解析這8*8個bool類型的值。

認識CAN協議

目前業界的CAN協議,都是以后綴名為dbc的文件進行存儲的。德國Vector公司提供CANdb++ Editor是一款專門用于閱讀dbc文件的軟件。

如下圖所示,為Mobileye提供的車道線的dbc文件。(文末提供CANdb++ Editor安裝包和Mobileye車道線的dbc文件的獲取方法)

以id號為0x766的LKA_Left_Lane_A為例,這是Mobileye檢測無人車左側車道線的部分信息,包括了左側車道線的偏移量,曲率等。該幀CAN消息(Message)中的五個信號(Signal),分別是Lane_Type、Quality、Curvature、Curvature_Derivative、Width_left_marking、Position。

每個信號的具體描述顯示在軟件右側,其中與解析直接相關的三個要素已用綠色框選中。

1. Value Type(Unsigned或Signed)

某些物理量在描述時是有符號的,比如溫度。而描述另外一些量時,是沒有符號的,即均為正數,比如說曲率。

2. Factor 和 Offset

這兩個參數需要參與實際的物理量運算,Factor是倍率,Offset是偏移量。例如Lane_Type和Quality信號的Factor為1,Offset為0,而其他信號的Factor均為小數。具體的計算方法請往下看。

雙擊LKA_Left_Lane_A,打開Layout頁,會發現很熟悉的方塊陣列,如下圖所示。

工程師真正關心的恰好是這塊彩色圖,因為該圖上的每個小方塊和data中的每一個bool量一一對應。這就是CAN協議的真面目。

解析CAN信號

由于彩色方塊圖與data是一一對應的,我們將兩個圖疊加,將得到如下圖所示的data圖。

每個信號物理量的計算公式為:

1.Factor為1的物理量

由于Lane_Type和Quality的Factor為1,Offset為0,因此十進制值為多少,實際物理量即為多少。

從圖中就能直接看出Quality這個信號占據兩個位,二進制數11,換算為十進制是3(1*2 + 1*1);Lane_Type占據四個位,二進制數為0010,換算為十進制是2(0*8 + 0*4 + 1*2 + 0*1)。

所以這一幀信號表示此時的左車道線Lane_Type值為2,Quality值為3。對于整數值,通信雙方可以約定規則,比如Mobileye就規定了,Quality為0或者1時表示車道線的置信度較低,不推薦使用此時的值;2表示置信度中等,3表示置信度較高,請放心使用。

2.Factor為小數的物理量

對于Factor不為1的物理量,比如Position,需要使用移位的方法進行解析,但解析公式保持不變。以百度 Apollo提供的源碼為例進行講解。

這里的bytes即為CAN消息中的data,首先將Position信號所在的行取出來,將第1行的8個bool值存儲在變量t1中,將第二行的8個bool值存儲在變量t0中。由于在這條CAN消息中,Position同時占據了高8位和低8位,因此需要將第一行和第二行的所有bool位拿來計算,高8位存儲在32位的變量x中,低8位存儲在32位的變量t中。

現在需要將高8位和低8位拼接,將高8位左移8位,然后與低8位求或運算,即可得到Position的二進制值。隨后進行的左移16位,再右移16位的操作是為了將32位的變量x的高16位全部初始化為0。之后將x乘以Factor再加上Offset即可得到真實的Position值,給真實值加上單位meter,即可獲取實際的物理量。

與CAN類似的通信協議

VCU、雷達等通過CAN總線傳遞信號,隨著CAN的負載越來越高,很多傳感器選擇了其他通信方式。比如激光雷達的點云數據量太過龐大,使用的是局域網的方式進行傳遞;再比如GPS和慣導使用的是串口進行通信。

雖然通信方式和通信協議千差萬別,但解析的方法都是一樣的。

結語

好了\(^o^)/~,這篇分享的內容基本上講清楚了CAN總線消息的解析過程。這是無人駕駛系統傳感器驅動層的基本理論。

由于不同ID的CAN消息的結構不一樣,因此在寫解析代碼時,需要十分仔細,否則會給后續處理帶來想不到的bug。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN總線
    +關注

    關注

    145

    文章

    1991

    瀏覽量

    133082
  • 無人駕駛
    +關注

    關注

    99

    文章

    4182

    瀏覽量

    123849

原文標題:自動駕駛技術之——無人駕駛中的CAN總線

文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    無人駕駛導航平臺

    `` 本帖最后由 hexiaoyan1111 于 2014-11-11 11:27 編輯 無人駕駛導航平臺作者:北京太速科技有限公司發達國家從20世紀70年代開始研究無人駕駛汽車,目前可行性
    發表于 11-11 11:21

    百度無人駕駛車北京完成路測

    國內無人駕駛汽車的消息一直處于沉寂狀態,終于有一家打破國內該行業的平靜局面。12月10日,百度正式對外宣布,百度無人駕駛車首次實現城市、環路及高速道路混合路況下的全自動駕駛,測試時最高速度達到100
    發表于 12-12 16:53

    谷歌欲英國首推無人駕駛汽車

    前兩天,百度已經北京完成路測,如今國外又傳來谷歌無人駕駛汽車的消息。12月14日,谷歌在過去的兩年里,不斷與英國***進行多次會談,希望能在英國推廣無人駕駛汽車。谷歌認為,無人駕駛
    發表于 12-14 14:07

    【話題】無人駕駛汽車,真的要來了么?

    無人駕駛技術中走得比較遠的的一個。已研制出實體產品,并且已經安全無故障地行駛48 萬公里。奔馳作為一家傳統的汽車廠商很久之前就在自己的車型上配備了自動巡航功能,這也是最早自動駕駛技術的雛形,因此奔馳
    發表于 06-24 14:28

    無人駕駛電子與安全

    ,處理器經過數據分析然后根據機器學習長期積累的駕駛經驗選擇最優的解決方案,直接跨越到無人駕駛的階段。基于大數據的分析,將可能出現的各種隱患消除未發生的萌芽中。不管是安全駕駛還是
    發表于 02-22 16:07

    無人駕駛上的車輛傳感器

    近來無人駕駛車輛引起了廣泛熱議。 業界正在努力開發這種技術,將其作為提高安全性和節省費用的方法。 這已不再是遙不可及的構想,寶馬、奔馳和特斯拉等公司均已發布或即將發布可使汽車自動駕駛的車輛系統。一些
    發表于 04-28 17:11

    無人駕駛與自動駕駛的差別性

    自動駕駛領域,目前有兩大技術路徑:一是以特斯拉等汽車廠商為代表的“輔助駕駛”升級路線,其探測技術基礎是攝像頭(機器視覺)、毫米波雷達、超聲雷達;二是以谷歌等互聯網公司為代表的“無人駕駛
    發表于 09-28 16:50

    激光雷達-無人駕駛汽車的必爭之地

    `就在不久前,著名咨詢公司羅蘭貝格發布了《汽車行業顛覆性數據探測》第二期報告,報告指出,全球汽車行業向無人駕駛出行方向的發展速度有一定提升。而其中,提升的關鍵在于,整體變革進程上,各國均呈現出朝
    發表于 10-20 15:49

    無人駕駛汽車的關鍵技術是什么?

    無人駕駛汽車開發的關鍵技術主要有兩個方面:車輛定位和車輛控制技術。這兩方面相輔相成共同構成無人駕駛汽車的基礎。
    發表于 03-18 09:02

    無人駕駛分級及關鍵技術

    無人駕駛分級無人駕駛汽車關鍵技術
    發表于 01-21 07:13

    無人駕駛汽車的工作原理是什么?

    無人駕駛汽車的工作原理是什么?無人駕駛汽車包括哪些技術?
    發表于 06-28 07:19

    介紹無人駕駛硬件平臺設計

    本文是無人駕駛技術系列的第十篇,著重介紹無人駕駛硬件平臺設計。無人駕駛硬件系統是多種技術、多個模塊的集成,主要包括:傳感器平臺、計算平臺、以及控制平臺。本文將詳細介紹這三個平臺以及現有的解決方案
    發表于 09-09 07:37

    無人駕駛硬件系統主要包括哪些

    本文是無人駕駛技術系列的第十篇,著重介紹無人駕駛硬件平臺設計。無人駕駛硬件系統是多種技術、多個模塊的集成,主要包括:傳感器平臺、計算平臺、以及控制平臺。本文將詳細介紹這三個平臺以及現有的解決方案
    發表于 09-09 08:16

    如何實現無人駕駛硬件平臺的設計?

    如何實現無人駕駛硬件平臺的設計?
    發表于 11-02 09:29

    無人駕駛駛向低谷

    無人駕駛上路仍是一個遙遠的未知數。
    的頭像 發表于 06-06 14:57 ?4056次閱讀
    主站蜘蛛池模板: 日日摸夜夜添免费毛片小说 | 5151四虎永久在线精品免费 | 极品国产一区二区三区 | 久久免费香蕉视频 | 在线观看高清视频 | 可以看黄色的网站 | 色淫阁色九九 | 午夜在线观看福利 | 久久免费福利视频 | 国产免费小视频 | 久久中文字幕综合婷婷 | 在线伊人网 | 免费三级毛片 | 免费欧洲美女与动zooz | 5x视频在线观看 | 国产日韩精品一区二区三区 | 五月婷婷久久综合 | 99精品视频免费 | 国产黄在线观看免费观看不卡 | 又粗又大撑满了好爽 | 色精品视频 | brazzers720欧美丰满 | 日韩天堂在线观看 | 欧美一级日韩在线观看 | 国语自产拍在线观看7m | 天天干夜夜爽天天操夜夜爽视频 | 国产巨大bbbb俄罗斯 | 成人在线综合 | 天天做夜夜爽 | 黄色网址网站在线观看 | 免费的毛片 | 国产精品香蕉成人网在线观看 | 最近在线视频免费观看2019 | 日韩一级在线播放免费观看 | 日本免费人成在线网站 | 天天操天天干天天摸 | 正在播放国产乱子伦视频 | 日本特黄特色大片免费看 | 午夜丁香婷婷 | 九九热免费在线观看 | 欧美a免费|