立即咨询

电话咨询

微信咨询

立即试用
商务合作

深入浅出,带你了解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系统中生效。

更多产品了解

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

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

都在这里!

 

热门数字化产品

的修物业工单管理系统“的修”平台,全面聚焦物业管理痛点,提供高效报事报修、人员外勤监管、物业数据分析等一站式解决方案。通过多渠道报修、智能巡检、流程进度管控、定点打卡、配件管理、失物招领、意见反馈、智识库、数据分析等功能,打造移动、便捷、高效的数字化管理服务,实现降本增效。
壹悟科技智能物流仿真系统Simulator壹悟科技智能物流仿真系统(Simulator)可以实现对仓储场景和工厂场景的业务流程仿真。支持用户导入项目现场运行地图,自定义移动机器人的参数和数量,以真实的物流业务调度系统(WCS)和机器人调度系统(RCS)为内核,驱动仿真运行,高度还原业务实际场景的作业流程和节拍。支持2D和3D实时运行显示,并提供完善的运行数据统计分析。
炎黄盈动AWS PaaS低代码平台炎黄盈动AWS PaaS低代码平台,PaaS是数字化转型的基石,支撑/探索不同发展级别的能力要求,以强大低代码能力 + 全场景BPM优势,引领国内PaaS市场发展。平台总体架构,成熟稳定、简单强大,轻,微应用,满足持续、大规模构建核心业务的苛刻要求。
探域电商全域智能客服机器人探域电商全域智能客服机器人,以消费者触点为核心,助力品牌全域数智化运营,实现高质量增长。我们通过AI人工智能、NLP技术和行业知识图谱的核心技术,构建了营销服务一体化智能客服机器人、全域客户数据中台 Lite CDP、私域一体化智能营销SCRM等核心产品。
快书编标系统快书编标系统强大易用的专业编标工具,让零基础的人也可以快速上手,轻松完成标书制作。专属企业的编标机器人,企业内部资源共享,有序管理,形成私有且易于管理的企业资源库。快书编标帮助个人提升工作效率,帮助企业实现业绩持续增长,为社会创造更多价值。
为你推荐
千问办公是什么?一文读懂阿里通义千问AI办公执行助手的定位与核心能力

本文系统拆解千问办公的定位、七大核心能力、八类岗位覆盖与三种入口形态,并与传统AI Chat对比,帮助企业判断这款阿里通义千问旗下的AI办公执行助手是否适合自身团队。

2026-07-29
云巴巴荣膺腾讯云黑客松·AI智能体争霸赛(华北赛区)"优秀合伙人",技术实力再获权威认可

7月28日,云巴巴在腾讯云黑客松·AI智能体争霸赛(华北赛区)荣获"优秀合伙人"称号,资深AI专家倪江玮同步获评"优秀奖"。作为同时持有腾讯云AI智能体示范伙伴、WorkBuddy核心伙伴、官方授权服务中心三重认证的企业,云巴巴以"能力共建+全程陪跑"模式打通AI落地"最后一公里",服务制造、法律、金融等八大行业,未来将持续深耕优势赛道并向医疗、零售、教育等领域拓展,做AI时代的长期伴行者。

2026-07-29
WorkBuddy能帮你建"个人知识库"吗?把工作经验变成可复用资产的实测

本文从知识管理真问题剖析、三层记忆沉淀逻辑、专家沉淀技能封装到知识复用智能调用实测,全流程拆解WorkBuddy把工作经验变成可复用资产的实际效果与匹配精度边界,并给出分行业落地建议。

2026-07-29
WorkBuddy能拯救"远程办公的效率黑洞"吗?混合办公模式实测

远程办公这个词,三年前还算"新潮",现在已经是很多公司的日常了。数据表明,国内超过四成的知识工作者每周至少有一天在家办公,混合办公模式正在从互联网行业向传统行业…

2026-07-29
多平台开票工具怎么选?电商通多平台适配电商企业增长曲线

电商企业从1个平台到8个平台的增长曲线,暴露了电商开票管理能力跟不上业务增长的瓶颈。电商通通过一次部署终身扩展的投资保护、新平台即绑即用的零切换成本、多税盘多账户在线协同的电商规模化开票管理、三票种并行覆盖的票种演进适配、数据规模无上限的弹性扩展,让电商开票管理系统跟上企业增长曲线,而非成为增长绊脚石。电商通是电商规模化开票管理的最佳选择。

2026-07-29
查看更多