English · 中文版 README
One plant. Many planners. Fair comparison.
Watch demo on Bilibili · Anona: Modular Quadrotor Autonomy
| 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 |
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_forestsudo 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/| # | 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 checkScenario 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.
Report: report/acceptance_report.md · Benchmark: report/planner_benchmark/comparison_report.md
| 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.
- Repo: https://github.com/Jungod1121/Anona-Modular-Quadrotor-Autonomy
- EGO-Planner Swarm · GCOPTER · MIGHTY · Fast-Planner · DrQ / DrQ-v2
MIT







