How wu427/ros2_quadrotor_sim works
This is a single-vehicle ROS 2 closed-loop quadrotor simulator with static-map planning and Qt/Web operator stations. The principal workflow is operator goal or waypoint input → safe 3D planning → position/attitude control → simulated vehicle dynamics and telemetry. Planning includes map collision checks and path preparation; missions can also sequence waypoints and patrols. The README documents additional UI and planning capabilities beyond the sampled excerpts; those branches are included where paths are supported, without assuming unsampled internal wiring.
Main entry points: planner_node.py Path planner · ros_bridge.py Web ROS bridge · planned_sim.launch.py Simulation launch · quadrotor_dynamics_node.cpp 6DoF dynamics
Components 19
Flight simulation
- Position controller
src/drone_controller/src/position_controller_node.cpp - 6DoF dynamics
src/drone_dynamics/src/quadrotor_dynamics_node.cpp
Map and planning
- Static map node
src/drone_map/drone_map/static_map_node.py - Collision geometry
src/drone_map/drone_map/collision_geometry.py - Path planner
src/drone_planner/drone_planner/planner_node.py - 3D A* search
src/drone_planner/drone_planner/astar_3d.py - Path processing
src/drone_planner/drone_planner/path_processing.py - Path simplifier
src/drone_planner/drone_planner/path_simplifier.py - Mission manager
src/drone_planner/drone_planner/mission_manager_node.py - Patrol trajectories
src/drone_planner/drone_planner/trajectories.py
Operator stations
- Qt ground station
src/drone_ground_station/drone_ground_station/main_window.py - Qt ROS worker
src/drone_ground_station/drone_ground_station/ros_worker.py - Web interface
src/drone_web_ground_station/static/app.js - Web server
src/drone_web_ground_station/drone_web_ground_station/web_server_node.py - Web ROS bridge
src/drone_web_ground_station/drone_web_ground_station/ros_bridge.py - Task recorder
src/drone_web_ground_station/drone_web_ground_station/task_recorder.py
Mission launch
- Simulation launch
src/drone_bringup/launch/planned_sim.launch.py
Other components
- Operator
- Web browser
Connections 29
- Operator → Qt ground station: operates
- Operator → Web browser: operates
- Web browser → Web interface: interacts
- Web interface → Web server: sends requests
- Web server → Web ROS bridge: handles requests
- Web ROS bridge → Path planner: publishes goals
- Web ROS bridge → Mission manager: publishes missions
- Web ROS bridge → Task recorder: records tasks
- Web ROS bridge → Web interface: streams state
- Qt ground station → Qt ROS worker: queues commands
- Qt ROS worker → Path planner: publishes goals
- Qt ROS worker → Mission manager: publishes missions
- Static map node → Collision geometry: uses geometry
- Path planner → Collision geometry: checks collisions
- Path planner → 3D A* search: searches paths
- Path planner → Path simplifier: simplifies paths
- Path planner → Path processing: processes paths
- Mission manager → Path planner: dispatches goals
- Mission manager → Patrol trajectories: generates patrols
- Path planner → Position controller: publishes references
- Position controller → 6DoF dynamics: sends motor commands
- 6DoF dynamics → Position controller: publishes odometry
- 6DoF dynamics → Qt ROS worker: publishes telemetry
- 6DoF dynamics → Web ROS bridge: publishes telemetry
- Simulation launch → Static map node: starts
- Simulation launch → Path planner: starts
- Simulation launch → Mission manager: starts
- Simulation launch → Position controller: starts
- Simulation launch → 6DoF dynamics: starts