autonomy is an autonomous robot software framework. The core library libautonomy is built with CMake + C++17 and does not require ROS/ROS2 or the former Autolink middleware at link time (it can still interoperate with ROS-style messages and tooling where supported).
Design goals: modular libraries, behavior-tree task orchestration, 2D navigation stack (costmap, planning, control), and optional bridge layers (gRPC, etc.) for integration.
| Item | Link |
|---|---|
| Documentation | Read the Docs |
| Gitee | https://gitee.com/quanduyong/autonomy.git |
| GitHub | https://github.com/quandy2020/autonomy.git |
- Build
- CMake 3.20+, C++17, Ninja recommended
- Lua configuration, Protobuf messages
- BehaviorTree.CPP for task plugins
- Navigation & control
- 2D costmap, global planning (e.g. NavFn), controller server
- In-process behavior-tree navigator (
BtActionServer)
- Communication (optional)
- gRPC bridge (when
BUILD_GRPC=ON) - ROS/ROS2 message types via
commsgs(ecosystem compatibility)
- gRPC bridge (when
- Deployment
- Docker images (x86_64 / aarch64)
- Dependency installer:
scripts/install_dependency.py
- Ubuntu 22.04 (recommended; matches Docker images)
- Compiler: GCC 11+ or Clang with C++17
- Dependencies: see
scripts/install_dependency.pyanddocker/dockerfile/autonomy.x86_64.dockerfile
Main third-party libraries (often installed under /usr/local via docker/install/*.sh):
- Eigen3, Ceres, glog, gflags, OpenCV, OSQP, yaml-cpp, Lua 5.3, Protobuf
- BehaviorTree.CPP 4.x (required for the
tasksmodule) - Optional: gRPC, Ipopt, ADOLC, ONNX Runtime
git clone https://github.com/quandy2020/autonomy.git
cd autonomyOn Ubuntu (host or inside a dev container):
# APT packages + third-party scripts (glog, Ceres, OpenCV, BT.CPP, …)
python3 scripts/install_dependency.py
# APT only
python3 scripts/install_dependency.py --apt-only
# List APT package names
python3 scripts/install_dependency.py --list-aptmkdir -p build && cd build
cmake -G Ninja ..
ninjaArtifacts:
- Shared library:
build/lib/libautonomy.so - Binaries (if enabled):
build/bin/
From the repository root, use the helper in docker/ (see docker/run_autonomy.py). Mount the repo at /workspace/autonomy and build under src/autonomy/build:
export AUTONOMY_ENV=/path/to/autonomy # repo root containing src/autonomy/
python3 src/autonomy/docker/run_autonomy.py -p x86_64Inside the container:
cd /workspace/autonomy/src/autonomy/build
cmake -G Ninja ..
ninja| Option | Default | Description |
|---|---|---|
BUILD_GRPC |
ON | gRPC bridge support |
BUILD_TEST |
ON | Unit tests |
BUILD_DOCS |
ON | Sphinx docs (if found) |
BUILD_PROMETHEUS |
OFF | Prometheus metrics |
BUILD_ONNXRUNTIME |
ON | ONNX network wrappers (if runtime found) |
autonomy/
├── autonomy/ # C++ source (map, planning, control, tasks, transform, …)
├── config/ # Lua / YAML configuration
├── cmake/ # CMake modules and helpers
├── docker/ # Dockerfiles and install scripts
├── docs/ # Sphinx documentation
├── scripts/ # install_dependency.py, utilities
└── CMakeLists.txt
Online manual: autonomy.readthedocs.io
Local build:
cd build && cmake -DBUILD_DOCS=ON .. && ninjaCurrent version is defined in version.json (e.g. 0.1.1). See CHANGELOG.rst for release notes.
Released under the Apache 2.0 license.
Autonomy builds on ideas and code from the wider robotics open-source community, including:
