立即咨询

电话咨询

微信咨询

立即试用
商务合作

深入浅出,带你了解Apollo技术

2019-09-18

Apollo中的控制算法由一个或多个控制器组成,可以轻松更改或替换为不同的算法。 每个控制器将一个或多个控制命令输出到CANbus。

Apollo中的默认控制算法包含横向控制器(LatController)和纵向控制器(LonController)。 它们分别负责横向和纵向的车辆控制。

新的控制算法不必遵循默认模式,例如,一个横向控制器+一个纵向控制器。 它可以是单个控制器,也可以是任意数量控制器的组合。

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

创建一个控制器

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

注册新控制器

为了更好的理解,下面对每个步骤进行详细的阐述:

一、创建一个控制器

所有控制器都必须继承基类Controller,它定义了一组接口。 以下是控制器实现的示例:

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

 

二、添加新控制器的配置信息

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

1、根据算法要求为新控制器配置和参数定义proto。作为示例,可以参考以下位置的LatController的proto定义:modules/control/proto/ lat_controller_conf.proto

2、定义新的控制器proto之后,例如new_controller_conf.proto,输入以下内容:

syntax = "proto2";

package apollo.control;

message NewControllerConf {

    double parameter1 = 1;

    int32 parameter2 = 2;

}

 

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

optional apollo.control.NewControllerConf new_controller_conf = 15;

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

enum ControllerType {

    LAT_CONTROLLER = 0;

    LON_CONTROLLER = 1;

    NEW_CONTROLLER = 2;

  };

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

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

三、注册新控制器

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

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

void ControllerAgent::RegisterControllers() {

  controller_factory_.Register(

      ControlConf::NEW_CONTROLLER,

      []() -> Controller * { return new NewController(); });

}

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

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

热门数字化产品

e签宝e签宝从身份认证数据源、证书核验、可信时间戳、私钥保存位置等多个关键点入手提供技术保障,同时从实名认证、意愿认证、签名、存证等环节提供可靠签署流程,证据实时上链,免除平台客户自证清白的成本,也为用户提供放心的签署服务。
博致云生产制造小工单系统博致云小工单SaaS应用聚焦生产工单执行全流程,涵盖工单、报工、绩效看板等管理功能,实现手机端便捷报工、实时监控生产、精准核算绩效,生产进度一目了然,快速实现车间数字化。帮助企业落地精益管理,减少浪费,提升生产效率,降低制造成本,助力数字化转型。
DeepBrain AI数字人平台DeepBrain AI数字人平台具备人工智能语音影像合成底层技术并具备对话机器人底层技术能力。
销售易CRM销售易CRM,销售L2C全流程自动化管理,赢单更多更快。多维度目标管理,让制定的目标切实可行。智能区域管理,实现销售资源的高效分配。与ERP无缝集成,打通企业前后端业务流程。
腾讯云实时音视频TRTCTRTC 源自 QQ 音视频团队,是基于 QQ 20多年来的音视频技术积累,在腾讯云上部署售卖的 RTC 云服务。TRTC 支撑了腾讯会议、微信群直播、微信视频号直播、企业微信直播、腾讯课堂、全民K歌等业务是腾讯集团丰富的音视频场景的最佳实践输出。
为你推荐
2025腾讯产业合作伙伴大会|云巴巴荣获双项大奖,载誉而归

1月16日,2025腾讯产业合作伙伴大会在三亚召开。云巴巴,荣膺“2024腾讯云卓越合作伙伴奖—星云奖”和“2024腾讯云AI产品突出贡献奖”双项大奖

2025-01-17
律师/保险/医美都在用的在线签约神器!腾讯会议如何打破行业壁垒?

腾讯会议与腾讯电子签的深度结合,正以“边开会边签约”的创新模式,来重塑各大行业的服务流程,让企业服务从“线下跑腿”迈向“线上闭环”。

2025-05-13
外贸人注意!看外贸企业如何用CRM系统化解合规风险

南北外贸软件的CRM系统凭借其客户关系管理、数据整合与智能分析能力,成为外贸企业突破困局的有利渠道。

2025-05-13
个人微信养号期如何科学运营?日常操作规范与权重提升策略深度解析

个人微信养号期是构建账号生命周期价值的起点,需通过“标准化操作+动态优化”实现权重提升。企业/个人应建立操作日志,记录关键行为数据,为后续运营提供决策依据。

2025-05-13
企业微信添加好友总受限?掌握这些策略与技巧,快速提升客户转化率!

通过建立「渠道组合-风控合规-转化优化-长效运营」的四维体系,企业可在平台规则框架内实现可持续拓客。

2025-05-13
查看更多