今天小編給大家分享一下apollo Can總線與定位模塊怎么實現(xiàn)的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網站空間、營銷軟件、網站建設、循化網站維護、網站推廣。
Can總線接收和執(zhí)行來自控制模塊的命令,收集汽車底盤的狀態(tài)信息并反饋給控制模塊。
控制命令
底盤狀態(tài)
底盤各部件消息狀態(tài)
Canbus模塊主要包括以下幾個部分:
車輛:車輛本身,包括車輛控制器和消息管理器
CAN 客戶端— CAN 客戶端已被移動到/modules/drivers/canbus 目錄下,因為它已經被使用canbus 協(xié)議的不同傳感器共享。
通過繼承CanClient類的方式,您可以在文件夾can_client中實現(xiàn)自己的CAN 客戶端。
注意:
不要忘了在‘CanClientFactory’(Can客戶端工廠)類中注冊您自己的CAN 客戶端。
在文件夾vehicle下,您也可以通過繼承VehicleController
MessageManager類的方式實現(xiàn)自己的車輛控制器和消息管理器。
注意:
不要忘了在`VehicleFactory`類中注冊您的車輛。
該模塊提供定位服務。定位模塊中提供了以下兩種方法:
基于 RTK(Real Time Kinematic,實時動態(tài)定位)的方法,該方法結合GPS和IMU(慣性測量單元)信息。
多傳感器融合方法,該方法采用GPS,IMU和激光雷達的信息。
在基于RTK的定位方法中,有兩個輸入:
GPS – 全球地理信息定位系統(tǒng)
IMU – 慣性測量單元
在多傳感器融合的定位方法中,由如下三個輸入:
GPS – 全球地理信息定位系統(tǒng)
IMU – 慣性測量單元
LiDAR – 激光雷達傳感器
輸出為一個由Protobuf 格式定義的對象實例LocalizationEstimate,該實例可在localization/proto/localization.proto 文件中查找到。
當前,基于RTK的定位方法由RTKLocalization類實現(xiàn)。如果您正在實現(xiàn)一個新的定位算法,例如FooLocalization,您可能需要執(zhí)行以下步驟:
1. 在 proto/localization_config.
proto文件中, 在LocalizationType 中添加一個值為FOO的枚舉類型。
2. 切換到 modules/localization 目錄, 然后創(chuàng)建一個名為 foo 的文件夾。在 foo 文件夾中,參照 rtk目錄下RTKLocalization 類的代碼實現(xiàn)自己的定位算法類FooLocalization。FooLocalization 必須是LocalizationBase 的子類。另外,參照 rtk/BUILD文件創(chuàng)建一個名為 Also foo/BUILD 的文件。
3. 您需要在函數(shù)Localization::RegisterLocalizationMethods()中注冊您的新類FooLocalization,該函數(shù)在文件 localization.cc 中實現(xiàn)。您可以在該函數(shù)的最后插入以下代碼來注冊自己添加的類:
localization_factory_.Register(LocalizationConfig::FOO, []()->LocalizationBase* { return new FooLocalization(); });
4.確保您的代碼編譯時包含定義FooLocalization 類的頭文件FooLocalization。
5. 現(xiàn)在您可以回到apollo的根目錄,使用bash apollo.sh build命令編譯您的代碼。
以上就是“apollo Can總線與定位模塊怎么實現(xiàn)”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。