4. 离线导航测试

autonomy_nav_test不依赖 ROS 的环境下验证完整导航栈:Map → Planner → Controller → Task/BT。

源码:autonomy/system/tools/nav_test.cpp

4.1 与其它工具对比

工具

路径

覆盖范围

状态

autonomy_nav_test

system/tools/

完整栈 + 仿真 odom/TF

✅ 有源码

autonomy_planning_test

planning/tools/

仅全局规划

❌ 目录不存在

autonomy_controller_test

control/tools/

规划 + 控制闭环

❌ 目录不存在

Autonomy 主进程

system/main.cpp

Start + Configure,不发目标

4.2 功能流程

  1. CreateOptions + CreateAutonomy 加载 config/autonomy.lua

  2. Start() 启动各 Server

  3. Configure() 附着 BT(演进中)

  4. 注入初始里程计与 TF

  5. 后台线程按 cmd_vel 积分仿真位姿

  6. 主线程调用 NavigateToPose() 直至结束

4.3 常用参数

参数

说明

默认

--configuration_directory

配置根目录

必填

--start_x/y/yaw

起始位姿

0

--goal_x/y/yaw

目标位姿

必填

--use_bt

BT 模式

true

--timeout_sec

超时(秒)

120

4.4 构建说明

文档中常见:

cmake .. -DBUILD_TOOLS=ON -DBUILD_TASKS=ON
ninja autonomy_nav_test

当前注意:根 CMakeLists.txt 可能未定义 BUILD_TOOLS,且 system/tools/CMakeLists.txt 未必被 add_subdirectory 引用。若目标未生成,需检查 CMake 是否接入 autonomy/system/tools/

4.5 环境变量

变量

说明

AUTONOMY_BT_PLUGIN_PATH

BT 插件 .so 路径

GLOG_logtostderr=1

建议开启,便于查看日志

4.6 运行示例

export AUTONOMY_BT_PLUGIN_PATH=build/lib
export GLOG_logtostderr=1

./build/bin/autonomy_nav_test \
  --configuration_directory=config \
  --start_x=1 --start_y=1 --start_yaw=0 \
  --goal_x=5 --goal_y=5 --goal_yaw=0 \
  --use_bt=false \
  --timeout_sec=120

4.7 相关文档