A modular intelligence framework for autonomous mobile robots
Modern C++ · Autolink RT · Behavior trees · No ROS runtime required
Documentation · Install · Quick Start · Architecture
PERCEPTION LOCALIZATION MAPPING PLANNING CONTROL ORCHESTRATION
|
Node · Channel · Service · Action · Parameter |
Stable plugins across algorithms, |
Docker · Ansible · observability |
Cartographer · Atlas · Argus (ESIKF)
|
Habitat · Fake · Isaac Sim + PhysX
|
Navigation — goal · plan · recover · cancel |
Person-following — RGB · track · path · control |
Runtime · Navigation · Following · System guide
Runtimeautolink/SHM · RTPS · Action |
Messagesautomsgs/Protobuf · codegen |
Localizationautonomy/localization/Cartographer · Atlas · Argus |
Perceptionautonomy/perception/Base · Follow · costmap layers |
Map / Plan / Ctrlmap · planning · controlCostmap · NavFn · RPP / MPPI |
Tasksautonomy/task/BT navigator · TaskServer |
Bridgeautonomy/bridge/gRPC · BUILD_GRPC |
HW / Sim / Vizautodriver · autosim · autovizSensors · Isaac · Qt |
Multi-process by default: Goal → task (BT) → planning (Path) → control (cmd_vel), with TF map → odom → base_link. Domains can be trimmed via AUTONOMY_BUILD_* / BUILD_*.
Work from the source root (directory with top-level CMakeLists.txt, scripts/, docker/). In a monorepo that is often …/src/autonomy.
|
① Clone & enter Docker git clone --recurse-submodules \
https://github.com/quandy2020/autonomy.git
cd autonomy # or cd …/src/autonomy
export AUTONOMY_ENV="$PWD"
# optional offline datasets → container /data
# export AUTONOMY_DATASETS=/path/to/datasets
python3 docker/run_autonomy.py -p x86_64
# GPU image:
# python3 docker/run_autonomy.py -p x86_64 -n yes |
② Build & launch stack cd /workspace/autonomy # inside container
# host path if building outside Docker
python3 scripts/install_dependencies.py --skip-installed
cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/usr/local
cmake --build build -j"$(nproc)"
source scripts/setup_environment.bash
autolink_launch autonomy.launchNav-only smoke (planning + control + task): autolink launch start task.launch
# do not run together with autonomy.launch |
Argus localization (autosim / Oxford Spires → /imu · /points)
# Host: mount datasets, then recreate the container if needed
export AUTONOMY_DATASETS=/path/to/datasets
AUTONOMY_FORCE_RECREATE=1 python3 docker/run_autonomy.py -p x86_64 -n yes
# Container: localization
export AUTOLINK_LAUNCH_PATH="$PWD/autonomy/localization/launch"
autolink launch start localization_argus.launch
# Another terminal: publish sequence (under /data)
export LD_LIBRARY_PATH="/workspace/autonomy/install/autonomy/lib:/workspace/autonomy/build/autonomy/lib:${LD_LIBRARY_PATH:-}"
export PYTHONPATH="/workspace/autonomy/src/autonomy:/workspace/autonomy/install/autonomy/python:/workspace/autonomy/install/autonomy/lib/python:${PYTHONPATH:-}"
/usr/bin/python3 -m autonomy.tools.datasets publish \
--dataset spires \
--path /data/Oxford/sequences/2024-03-12-keble-college-02 \
--rate 1.0See datasets and localization.
Getting started · Quick Run · Docker · CMake · Localization
Autolink · AutoMsgs · Localization · Bridge · AutoDriver · AutoSim · AutoViz · Ansible
Install · Autolink · Run · Localization · Planning · Control · Bridge · Navigator · Datasets · FAQs · readthedocs
Apache 2.0 · Inspired by Autoware · Cartographer · Navigation2 · ROS 2 · BehaviorTree.CPP
Autonomy — modular, observable, deployable robot intelligence
