4. 配置管线
Autonomy 采用 Lua → Protobuf → Server 统一配置管线,与 Cartographer / Autoware 风格一致。
4.1 加载链
config/autonomy.lua
│
▼
ConfigurationFileResolver
│
▼
LuaParameterDictionary
│
▼
system::LoadOptions() → proto::AutonomyOptions
│
├── map_options → MapServer
├── planner_options → PlannerServer
├── controller_options → ControllerServer
├── navigator_options → navigator / BT
└── transform_options → TransformServer
4.2 API
#include "autonomy/system/options.hpp"
auto options = autonomy::system::CreateOptions(
"config", // configuration_directory
"autonomy.lua"); // configuration_basename
system/options.cpp 按 key 分发:
Lua key |
Loader |
Proto 字段 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.3 顶层 autonomy.lua
include "common.lua"
include "map/map.lua"
include "planner/planner.lua"
include "controller/controller.lua"
include "navigator/navigator.lua"
include "transform/transform.lua"
AUTONOMY = {
map = AUTONOMY_MAP,
planning = AUTONOMY_PLANNER,
controller = AUTONOMY_CONTROLLER,
navigator = navigator,
transform = AUTONOMY_TRANSFORM,
}
return AUTONOMY
4.4 共享参数 common.lua
跨模块参数须在多处保持一致:
参数 |
使用方 |
|---|---|
|
map, planner, controller, navigator |
|
同上 |
|
planner, navigator |
|
controller, navigator |
|
controller, navigator |
4.5 运行时覆盖
RuntimeOptions 可在 Configure() 时覆盖配置:
autonomy::system::RuntimeOptions runtime;
runtime.planner_id = "theta_star_planner";
runtime.use_bt_navigation = true;
runtime.global_frame = "map";
autonomy->Configure(runtime);
4.6 子模块配置文档
模块 |
配置文件 |
文档 |
|---|---|---|
Map |
|
|
Planning |
|
|
Control |
|
|
Navigator |
|