溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

apollo Can總線與定位模塊怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2022-03-22 16:43:44 來源:億速云 閱讀:175 作者:iii 欄目:云計(jì)算

今天小編給大家分享一下apollo Can總線與定位模塊怎么實(shí)現(xiàn)的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Can總線

簡(jiǎn)介

Can總線接收和執(zhí)行來自控制模塊的命令,收集汽車底盤的狀態(tài)信息并反饋給控制模塊。

輸入

  • 控制命令

輸出

  • 底盤狀態(tài)

  • 底盤各部件消息狀態(tài)

實(shí)現(xiàn)

Canbus模塊主要包括以下幾個(gè)部分:

  • 車輛:車輛本身,包括車輛控制器和消息管理器

  • CAN 客戶端— CAN 客戶端已被移動(dòng)到/modules/drivers/canbus 目錄下,因?yàn)樗呀?jīng)被使用canbus 協(xié)議的不同傳感器共享。

通過繼承CanClient類的方式,您可以在文件夾can_client中實(shí)現(xiàn)自己的CAN 客戶端。

注意:

不要忘了在‘CanClientFactory’(Can客戶端工廠)類中注冊(cè)您自己的CAN 客戶端。

在文件夾vehicle下,您也可以通過繼承VehicleController

MessageManager類的方式實(shí)現(xiàn)自己的車輛控制器和消息管理器。

注意:

不要忘了在`VehicleFactory`類中注冊(cè)您的車輛。

定位模塊

簡(jiǎn)介

該模塊提供定位服務(wù)。定位模塊中提供了以下兩種方法:

  • 基于 RTK(Real Time Kinematic,實(shí)時(shí)動(dòng)態(tài)定位)的方法,該方法結(jié)合GPS和IMU(慣性測(cè)量單元)信息。

  • 多傳感器融合方法,該方法采用GPS,IMU和激光雷達(dá)的信息。

輸入

在基于RTK 的定位方法中,有兩個(gè)輸入:

  • GPS – 全球地理信息定位系統(tǒng)

  • IMU – 慣性測(cè)量單元

多傳感器融合的定位方法中,由如下三個(gè)輸入:

  • GPS – 全球地理信息定位系統(tǒng)

  • IMU – 慣性測(cè)量單元

  • LiDAR – 激光雷達(dá)傳感器

輸出

輸出為一個(gè)由Protobuf 格式定義的對(duì)象實(shí)例LocalizationEstimate,該實(shí)例可在localization/proto/localization.proto 文件中查找到。

定位模塊的實(shí)現(xiàn)

當(dāng)前,基于RTK的定位方法由RTKLocalization類實(shí)現(xiàn)。如果您正在實(shí)現(xiàn)一個(gè)新的定位算法,例如FooLocalization,您可能需要執(zhí)行以下步驟:

1. 在 proto/localization_config.

proto文件中, 在LocalizationType 中添加一個(gè)值為FOO的枚舉類型。

2. 切換到 modules/localization  目錄, 然后創(chuàng)建一個(gè)名為  foo 的文件夾。在  foo  文件夾中,參照  rtk目錄下RTKLocalization 類的代碼實(shí)現(xiàn)自己的定位算法類FooLocalization。FooLocalization 必須是LocalizationBase 的子類。另外,參照 rtk/BUILD文件創(chuàng)建一個(gè)名為 Also foo/BUILD  的文件。

3. 您需要在函數(shù)Localization::RegisterLocalizationMethods()中注冊(cè)您的新類FooLocalization,該函數(shù)在文件 localization.cc  中實(shí)現(xiàn)。您可以在該函數(shù)的最后插入以下代碼來注冊(cè)自己添加的類:

localization_factory_.Register(LocalizationConfig::FOO, []()->LocalizationBase* { return     new FooLocalization(); });

4.確保您的代碼編譯時(shí)包含定義FooLocalization 類的頭文件FooLocalization。

5. 現(xiàn)在您可以回到apollo的根目錄,使用bash apollo.sh build命令編譯您的代碼。

以上就是“apollo Can總線與定位模塊怎么實(shí)現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI