2. 快速开始

2.1 最小启动流程

#include "autolink/autolink.hpp"
#include "autonomy/system/autonomy.hpp"
#include "autonomy/system/options.hpp"

int main(int argc, char** argv) {
    autolink::Init(argv[0]);

    auto options = autonomy::system::CreateOptions(
        "config", "autonomy.lua");

    auto autonomy = autonomy::system::CreateAutonomy(options);
    autonomy->Start();

    autonomy::system::RuntimeOptions runtime;
    runtime.config_directory = "config";
    autonomy->Configure(runtime);

    // 运行循环或调用 NavigateToPose ...
    autonomy->Shutdown();
    autolink::Clear();
    return 0;
}

对应可执行逻辑见 autonomy/system/main.cpp

2.2 配置前提

确保 config/autonomy.lua 存在且包含所需子模块:

include "map/map.lua"
include "planner/planner.lua"
include "controller/controller.lua"
include "navigator/navigator.lua"

AUTONOMY = {
  map = AUTONOMY_MAP,
  planning = AUTONOMY_PLANNER,
  controller = AUTONOMY_CONTROLLER,
  navigator = navigator,
}

2.3 命令行参数

通过 autonomy/common/gflags.hpp

gflag

说明

configuration_directory

配置根目录

configuration_basename

主 Lua 文件名(默认 autonomy.lua

--verbose

打印版本后退出

2.4 端到端测试

无需手写 main,使用离线工具:

./build/bin/autonomy_nav_test --configuration_directory=config

详见 04 Running

2.5 下一步

目标

文档

架构理解

§3 框架架构

修改配置

§4 配置管线

Autolink API

03 Communication