apollo_logo
1
0

aem profile功能使用

Apollo配置参数生成&使用

配置参数同步方式

配置文件的管理和同步通过以下命令进行:

buildtool profile config init --package <包名> --profile=目录
#例,将planning包的全部配置文件同步到名为default的profile目录下(profiles/default/)
buildtool profile config init --package planning --profile=default

【注意】:

  1. 自己添加的planning插件,无法通过该命令将配置文件同步至profiles目录下
  2. 配置参数不生效解决问题,请详见1.3

如需对planning其他插件进行参数调整,相关包名请查阅相关planning综述文档:https://apollo.chjunkong.com/docs/apollo/latest/md_collection_2planning_2readme__cn.html

配置参数生效方式

使用default目录的配置参数

aem profile use default

使用指令:ll profiles ,查看current的指向

├── current -> default# 指向当前启用的配置目录,默认指向名为default的目录

【重点】:如果本地如果下载了源码,可能会被影响,如若发现修改配置参数不生效,需要在重新使用【aem profile use default】指令

以笔者为例,注意本操作均为在容器中执行:

输入指令,检测profile的软链指向

ll profiles/current

输入指令,检测Apollo的配置文件软链是否指向current

本例子以planning_component为例

ll /apollo/modules/planning/planning_component/conf/

查看源码

ll modules/planning/planning_component/

配置参数不生效问题

本教程以planning_component为例,讲解配置参数不生效问题的修复方式

输入指令,检测profile的软链指向

ll profiles/current

输入指令,检测Apollo的配置文件软链是否指向current

本例子以planning_component为例

ll /apollo/modules/planning/planning_component/conf/

如若不是,请重新使用指令:

aem profile use default

多份配置参数切换

参数设置目录设置

进入docker工作空间,在/apollo_workspace路径下将modules/planning的配置参数复制到

profile的default目录或者其他自己所创建的目录

例如:

profiles/
├── current -> demo_1 #软链
├── default
├── demo_1
└── demo_2

在这个例子中,我们可以看到我当前使用的配置是"demo_1"这份配置文件。在profiles目录下,每个小伙伴都可以定义一到多份配置参数。这样的好处在于

  1. 场景适配性:通过根据不同的场景设置不同的配置参数,我们可以轻松地适应各种应用场景。不同的任务、环境或需求可能需要不同的配置,这样的灵活性能够提高系统的适应性和性能表现。
  2. 参数保存和复用:在调参过程中,我们可以将认为比较好的参数保存在一个文件夹中。这样,我们不仅能够方便地复用之前优化过的参数,还能够在之后的调参过程中避免遗忘或丢失重要的设置,提高了工作效率。
  3. 快速回滚:通过保存各个版本的配置文件,如果在后续调整参数时发现新的配置不如之前的好,我们可以轻松地将代码切换回之前保存的较为完美的配置文件。这样能够迅速回滚到之前的状态,避免不必要的错误或性能下降。

切换配置指令:

# 查看已有的profile
aem profile list
# 使用名字叫default的这份配置
aem profile use default

在demo_1的目录结构中,我们可以看到在modules/planning/planning_base/conf目录下有多个配置文件。

demo_1/
└── modules
└── planning
└── planning_base
└── conf
├── discrete_points_smoother_config.pb.txt
├── planner_open_space_config.pb.txt
├── planning.conf
├── planning_config_navi.pb.txt
├── planning_config.pb.txt
├── planning_navi.conf
├── planning_semantic_map_config.pb.txt
├── qp_spline_smoother_config.pb.txt
├── spiral_smoother_config.pb.txt
└── traffic_rule_config.pb.txt

假设我们只需要调整其中的一个或多个配置文件,而不希望保留其他文件。那么我们可以只保留需要调整的配置文件,其他的配置参数会自动读取模块下的配置参数。

demo_1/
└── modules
└── planning
└── planning_base
└── conf
├── planning.conf
├── ……

这样的做法十分便捷,不需要手动处理所有配置文件,只需关注需要修改的部分,系统会智能地处理其余配置,确保我们能够快速调整参数并保持系统正常运行。这样的配置管理方式有效地提高了工作效率和代码的可维护性,让调参过程更加简洁和灵活。

原创声明,本文由作者授权发布于Apollo开发者社区,未经许可,不得转载。
发表评论已发表 0 条评论
登录后可评论,请前往 登录
暂无评论~快去发表自己的独特见解吧!
目录
Apollo配置参数生成&使用
配置参数同步方式
配置参数生效方式
配置参数不生效问题
多份配置参数切换