精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Apollo添加新的控制算法步驟

YB7m_Apollo_Dev ? 來源:未知 ? 作者:工程師曾玲 ? 2018-10-02 11:11 ? 次閱讀

Apollo中的控制算法由一個或多個控制器組成,可以輕松更改或替換為不同的算法。 每個控制器將一個或多個控制命令輸出到CANbus。 Apollo中的默認控制算法包含橫向控制器(LatController)和縱向控制器(LonController)。 它們分別負責橫向和縱向的車輛控制。

新的控制算法不必遵循默認模式,例如,一個橫向控制器+一個縱向控制器。 它可以是單個控制器,也可以是任意數量控制器的組合。

添加新的控制算法的步驟:

創建一個控制器

在文件control_config中添加新控制器的配置信息

注冊新控制器

為了更好的理解,下面對每個步驟進行詳細的闡述:

1

創建一個控制器

所有控制器都必須繼承基類Controller,它定義了一組接口。 以下是控制器實現的示例:

123456789101112131415161718 namespace apollo {namespace control {class NewController : public Controller { public: NewController(); virtual ~NewController(); Status Init(const ControlConf* control_conf) override; Status ComputeControlCommand( const localization::LocalizationEstimate* localization, const canbus::Chassis* chassis, const planning::ADCTrajectory* trajectory, ControlCommand* cmd) override; Status Reset() override; void Stop() override; std::string Name() const override;};} // namespace control} // namespace apollo

2添加新控制器的配置信息

按照下面的步驟在文件control_config中添加新控制器的配置信息:

1、根據算法要求為新控制器配置和參數定義proto。作為示例,可以參考以下位置的LatController的proto定義:modules/control/proto/ lat_controller_conf.proto

2、定義新的控制器proto之后,例如new_controller_conf.proto,輸入以下內容:

12345678 syntax = "proto2";package apollo.control;message NewControllerConf { double parameter1 = 1; int32 parameter2 = 2;}

3、參考如下內容更新modules/control/proto/control_conf.proto文件:

1 optional apollo.control.NewControllerConf new_controller_conf = 15;

4、參考以內容更新ControllerType(在modules/control/proto/control_conf.proto中):

12345 enum ControllerType { LAT_CONTROLLER = 0; LON_CONTROLLER = 1; NEW_CONTROLLER = 2; };

protobuf定義完成后,在modules/control/conf/lincoln.pb.txt中相應更新控制配置文件。

注意:上面的"control/conf"文件是Apollo的默認文件。您的項目可能使用不同的控制配置文件。

3注冊新控制器

要激活Apollo系統中的新控制器,請在如下文件中的“ControllerAgent”中注冊新控制器:modules/control/controller/controller_agent.cc

按照如下示例添加注冊信息:

12345 void ControllerAgent::RegisterControllers() { controller_factory_.Register( ControlConf::NEW_CONTROLLER, []() -> Controller * { return new NewController(); });}

在完成以上步驟后,您的新控制器便可在Apollo系統中生效。

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

    關注

    112

    文章

    16214

    瀏覽量

    177479
  • 控制算法
    +關注

    關注

    4

    文章

    166

    瀏覽量

    21691

原文標題:技術文檔 | 如何添加新的控制算法

文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Apollo2_ble 中添加一個service

    導語 Apollo2_ble模塊硬件由Apollo2(ble host)+ em9304(ble controller)組成。軟件上,使用ARM的Cordio Stack and Profiles
    的頭像 發表于 07-02 09:55 ?5230次閱讀

    stm32直流電機控制—PID算法篇 相關資料推薦

    可以自動生成,如何生成可參考右邊的幫助文檔。文章目錄stm32直流電機控制—PID算法篇前言一、pandas是什么?二、使用步驟1.引入庫2.讀入數據總結前言提示:這里可以添加本文要記
    發表于 06-30 06:14

    GPIO的庫函數添加步驟

    。2、添加相關的標準庫在用標準庫配置GPIO的時候,我們需要手動添加這個GPIO的庫函數。如下圖的步驟所示添加添加如第五步里面的幾個庫函數
    發表于 08-24 06:31

    如何對Apollo2.5 CANBUS進行全面調試?

    前言:CANBUS是Apollo需要根據你的底盤寫代碼的地方,感覺也是Apollo最難調試的部分。這部分首先要選好CAN卡,因為不是Apollo推薦的CAN卡,驅動程序和對應接口,可能都需要自己調整
    發表于 08-30 06:02

    apollo2 mcu開發的相關資料分享

    接口從外部打開調試訪問允許訪問所有的內存和外圍設備的MCU。一、Apollo2 MCU 低功耗模式活動模式休眠模式深度模式關機二、中斷事件有哪些呢?NVIC喚醒中斷控制器退出休眠進入休眠,等待中斷在MCU中,多個外設可以產生中斷。在某些情況下,單個外圍設備可能會產生多個不
    發表于 11-01 07:23

    PID算法調試步驟

    0、前言在我看來,其實控制題是較好做(混)的一種題型,你懂我意思吧。控制題簡單概括下,大概就是三個步驟。1、構建整體方案。2、設計整體控制電路。3、軟件程序設計—PID
    發表于 11-30 06:34

    Ambiq Apollo4的相關資料推薦

    今天翻官方的網站,發現了 Apollo4 的鏈接。從其中下來Apollo3-Apollo4-SDK-2020.06.20,發現了\boards\apollo4_eb\examples\u***\tinyu***_cdc這個不錯,
    發表于 12-13 08:30

    Apollo Heritage版音頻接口附帶的插件

     Universal Audio在去年推出的Apollo Heritage版音頻接口提供了5個或10個獲獎的UAD插件,包括Teletronix?、Fairchild?、Pultec?、Helios
    發表于 01-24 08:59

    RT-Thread Nano添加shell的步驟有哪些

    文章目錄前言一、添加Shell包二、使用步驟1.引入庫2.讀入數據總結前言今天來添加Shell,這樣就可以使用控制臺對單片機進行控制了。一、
    發表于 02-22 07:06

    怎么解決Ambiq Apollo3移植鏈接腳本出錯的問題呢?

    移植Apollo3過程中發現官方工程都使用專用的sct腳本,寫法跟MDK默認生成的格式不同。不知道怎么修改內存映射關系。默認MDK生成的是 RW_IRAM1則是定義 #define
    發表于 03-14 10:43

    庫文件添加步驟

    Protel庫文件添加詳細步驟
    發表于 11-04 11:15 ?0次下載

    如何添加NGC文件到工程目錄中的步驟教程

    如何添加NGC文件到工程目錄中的步驟教程,具體的跟隨小編一起來了解一下。
    的頭像 發表于 07-12 03:59 ?1.4w次閱讀
    如何<b class='flag-5'>添加</b>NGC文件到工程目錄中的<b class='flag-5'>步驟</b>教程

    apollo系列之apollo2 mcu開發(基礎篇)之1.1-apollo2 mcu簡介

    更多內容在:apollo系列匯總Apollo2 mcu的架構
    發表于 10-25 17:36 ?20次下載
    <b class='flag-5'>apollo</b>系列之<b class='flag-5'>apollo</b>2 mcu開發(基礎篇)之1.1-<b class='flag-5'>apollo</b>2 mcu簡介

    將RTL模塊添加到Block Design的步驟

    自定義IP,但是一旦設計的文件有問題就需要重新修改,同時需要控制接口時候還需要在AXI總線模板基礎上進行修改,再同時繁瑣的步驟也讓人“望而卻步”。
    的頭像 發表于 06-11 16:27 ?3603次閱讀
    將RTL模塊<b class='flag-5'>添加</b>到Block Design的<b class='flag-5'>步驟</b>

    EEMD方法的原理與算法實現步驟

    電子發燒友網站提供《EEMD方法的原理與算法實現步驟.pdf》資料免費下載
    發表于 10-23 11:44 ?0次下載
    EEMD方法的原理與<b class='flag-5'>算法</b>實現<b class='flag-5'>步驟</b>