Skip to content

About

Anona: modular ROS 2 Humble quadrotor autonomy workbench. Unified plant for many planners, diverse process-generated maps, six acceptance scenarios, and a mission console.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Anona

Modular Quadrotor Autonomy Workbench

ROS 2 Ubuntu License 介绍页

English · 中文版 README

One plant. Many planners. Fair comparison.

Anona demo video
Watch demo on Bilibili · Anona: Modular Quadrotor Autonomy

Single-UAV random forest loop

Multi-UAV formation


Highlights

Unified plant Self-developed ROS 2 dynamics + cascade PID + mixer
Many planners Path A–H on one topic contract for fair comparison
Diverse maps Process-generated forests, mazes, dense fields, narrow corridors
Mission Console Browser / native app: maps, planners, single & multi-UAV
Acceptance Six one-click scenarios (6/6 PASS) + formal report

Architecture
Topic contract

Mission console   RViz


What is Anona?

Anona is a modular quadrotor simulation workbench on Ubuntu 22.04 + ROS 2 Humble. A fixed plant (dynamics + controller) drives swappable planners under identical topics and evaluation scripts.

Layer Role Packages
Plant Odometry, IMU, motor RPM drone_dynamics, drone_controller
World Seeded point-cloud maps drone_map, map_adapter
Planning Path A–H backends drone_planner, vendors, drone_rl_planner, …
Ops Launch, dashboard, acceptance drone_bringup, Mission Console

Registry: PLANNERS.md · Maps: MAPS.md

ros2 launch drone_bringup planner_sim.launch.py planner:=ego map:=official_forest

Quick start

sudo apt update && sudo apt install -y \
  ros-humble-desktop ros-humble-tf2-ros ros-humble-pcl-conversions \
  libpcl-dev python3-matplotlib python3-numpy

source /opt/ros/humble/setup.bash
cd ~/drone_ws
export PYTHONNOUSERSITE=1
colcon build --symlink-install
source install/setup.bash

# Mission Console
bash packaging/linux/install.sh          # native
ros2 run drone_bringup dashboard         # http://127.0.0.1:8765/

Acceptance (6/6)

# Scenario Launch
1 Hover ros2 launch drone_bringup hover.launch.py
2 Single goal ros2 launch drone_bringup single_goal.launch.py
3 Multi-waypoint ros2 launch drone_bringup multi_goal.launch.py
4 Static avoidance ros2 launch drone_bringup avoidance.launch.py
5 Narrow passage ros2 launch drone_bringup narrow_passage.launch.py
6 Stability ros2 launch drone_bringup stability_demo.launch.py
python3 scripts/run_acceptance.py          # six scenarios (~30 min; scenario 4
                                           #   budgets one retry for planner variance)
python3 scripts/run_conformance.py --planner ego   # single-planner contract check

Scenario 4 flies the official forest at a deliberately conservative speed with a hard grid-inflation margin — its acceptance window is 420 s and the min-obstacle criterion is 0.30 m.

Avoidance   Narrow passage

Report: report/acceptance_report.md · Benchmark: report/planner_benchmark/comparison_report.md


Topic contract

Topic Role
/drone/goal Mission goal
/map/obstacles Obstacle cloud
/planner/local_goal, /planner/trajectory_cmd Planner → plant
/drone/motor_rpm_cmd Controller → dynamics
/drone/odom State feedback

Frames: map (ENU) → base_link.


Citations

License

MIT

About

Anona: modular ROS 2 Humble quadrotor autonomy workbench. Unified plant for many planners, diverse process-generated maps, six acceptance scenarios, and a mission console.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages