中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

怎么在Apollo中添加新的車輛

這篇文章主要介紹了怎么在Apollo中添加新的車輛,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

站在用戶的角度思考問題,與客戶深入溝通,找到衛(wèi)東網(wǎng)站設(shè)計(jì)與衛(wèi)東網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋衛(wèi)東地區(qū)。

簡(jiǎn)介

我們通過本文將向開發(fā)者闡述如何向Apollo中添加新的車輛

注意: Apollo控制算法將林肯MKZ配置為默認(rèn)車輛

添加新的車輛時(shí),如果您的車輛需要不同于Apollo控制算法提供的屬性,請(qǐng)參考:

  • 使用適合您的車輛的其它控制算法。

  • 修改現(xiàn)有算法的參數(shù)以獲得更好的結(jié)果。

添加新車輛的步驟

按照以下步驟以實(shí)現(xiàn)新車輛的添加:

  • 實(shí)現(xiàn)新的車輛控制器

  • 實(shí)現(xiàn)新的消息管理器

  • 實(shí)現(xiàn)新的車輛工廠

  • 注冊(cè)新的車輛

  • 更新配置文件

 

一、實(shí)現(xiàn)新的車輛控制器

新的車輛控制器是從 VehicleController類繼承的。 下面提供了一個(gè)頭文件示例:

 /**
 * @class NewVehicleController
 *
 * @brief this class implements the vehicle controller for a new vehicle.
 */
class NewVehicleController final : public VehicleController {
 public:
  /**
   * @brief initialize the new vehicle controller.
   * @return init error_code
   */
  ::apollo::common::ErrorCode Init(
      const VehicleParameter& params, CanSender* const can_sender,
      MessageManager* const message_manager) override;

  /**
   * @brief start the new vehicle controller.
   * @return true if successfully started.
   */
  bool Start() override;

  /**
   * @brief stop the new vehicle controller.
   */
  void Stop() override;

  /**
   * @brief calculate and return the chassis.
   * @returns a copy of chassis. Use copy here to avoid multi-thread issues.
   */
  Chassis chassis() override;

  // more functions implemented here
  ...

};

二、實(shí)現(xiàn)新的消息管理器

新的消息管理器是從 MessageManager 類繼承的。 下面提供了一個(gè)頭文件示例。

/**
 * @class NewVehicleMessageManager
 *
 * @brief implementation of MessageManager for the new vehicle
 */
class NewVehicleMessageManager : public MessageManager {
 public:
  /**
   * @brief construct a lincoln message manager. protocol data for send and
   * receive are added in the construction.
   */
  NewVehicleMessageManager();
  virtual ~NewVehicleMessageManager();

  // define more functions here.
  ...
};

三、實(shí)施新的車輛工廠

新的車輛工廠是從 AbstractVehicleFactory 類繼承的。下面提供了一個(gè)頭文件示例。

/**
 * @class NewVehicleFactory
 *
 * @brief this class is inherited from AbstractVehicleFactory. It can be used to
 * create controller and message manager for lincoln vehicle.
 */
class NewVehicleFactory : public AbstractVehicleFactory {
 public:
  /**
  * @brief destructor
  */
  virtual ~NewVehicleFactory() = default;

  /**
   * @brief create lincoln vehicle controller
   * @returns a unique_ptr that points to the created controller
   */
  std::unique_ptr<VehicleController> CreateVehicleController() override;

  /**
   * @brief create lincoln message manager
   * @returns a unique_ptr that points to the created message manager
   */
  std::unique_ptr<MessageManager> CreateMessageManager() override;
};

一個(gè).cc示例文件如下:

std::unique_ptr<VehicleController>
NewVehicleFactory::CreateVehicleController() {
  return std::unique_ptr<VehicleController>(new lincoln::LincolnController());
}

std::unique_ptr<MessageManager> NewVehicleFactory::CreateMessageManager() {
  return std::unique_ptr<MessageManager>(new lincoln::LincolnMessageManager());
}

Apollo提供可以用于實(shí)現(xiàn)新車輛協(xié)議的基類 ProtocolData。

四、注冊(cè)新的車輛

modules/canbus/vehicle/vehicle_factory.cc里注冊(cè)新的車輛。 下面提供了一個(gè)頭文件示例。

void VehicleFactory::RegisterVehicleFactory() {
  Register(VehicleParameter::LINCOLN_MKZ, []() -> AbstractVehicleFactory* {
    return new LincolnVehicleFactory();
  });

  // register the new vehicle here.
  Register(VehicleParameter::NEW_VEHICLE_BRAND, []() -> AbstractVehicleFactory* {
    return new NewVehicleFactory();
  });
}

五、更新配置文件

在 modules/canbus/conf/canbus_conf.pb.txt 中更新配置,在Apollo系統(tǒng)中激活車輛。

vehicle_parameter {
  brand: NEW_VEHICLE_BRAND
  // put other parameters below
  ...
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么在Apollo中添加新的車輛”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

名稱欄目:怎么在Apollo中添加新的車輛
轉(zhuǎn)載來于:http://www.rwnh.cn/article10/jiesdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、用戶體驗(yàn)、品牌網(wǎng)站建設(shè)建站公司、靜態(tài)網(wǎng)站云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
大兴区| 鲜城| 会昌县| 礼泉县| 万宁市| 九江市| 高碑店市| 长垣县| 阿克| 特克斯县| 东兰县| 墨竹工卡县| 南部县| 工布江达县| 迁安市| 察哈| 新乡县| 富锦市| 隆林| 卓尼县| 柳林县| 宝丰县| 吉林省| 纳雍县| 阳新县| 邻水| 湛江市| 平潭县| 胶南市| 溆浦县| 买车| 新乡市| 南靖县| 沙坪坝区| 寻乌县| 祁阳县| 宕昌县| 玉屏| 邢台市| 邵阳县| 中宁县|