How unl-nimbus-lab/arl-swarm works
arl-swarm is a ROS-based drone-swarm deployment project, with Freyja providing vehicle state handling, trajectory/control components, and autopilot integration. The principal flight path is state input normalization and publication, combined with a trajectory reference in LQR feedback to produce vehicle commands. The tree and excerpts also show bias/state estimation, waypoint management, ROS message definitions, and example providers. Several subsystem implementations were not sampled, so their relationships are left unconnected rather than inferred from names or co-location.
Main entry points: state_manager.cpp State manager · callback_implementations.cpp State sources · lqr_control_bias.cpp LQR control · mavros_translate.cpp MAVROS translation
Components 15
State estimation
- State sources
swarm-nodes/Freyja/state_manager/src/callback_implementations.cpp - State manager
swarm-nodes/Freyja/state_manager/src/state_manager.cpp - State filters
swarm-nodes/Freyja/state_manager/include/freyja_filters.cpp - State estimator
swarm-nodes/Freyja/state_manager/src/state_estimator.cpp - Bias estimator
swarm-nodes/Freyja/lqg_controller/src/bias_estimator.cpp
Flight control
- LQR control
swarm-nodes/Freyja/lqg_controller/src/lqr_control_bias.cpp - LQR variant
swarm-nodes/Freyja/lqg_controller/src/lqr_control.cpp - Velocity LQR
swarm-nodes/Freyja/lqg_controller/src/lqr_vel_control.cpp - ROS message schemas
swarm-nodes/Freyja/freyja_msgs/msg
Trajectory and mission
- Waypoint manager
swarm-nodes/Freyja/waypoint_manager/src/waypoint_manager.cpp - Trajectory providers
swarm-nodes/Freyja/freyja_examples/src
Vehicle integration
- MAVROS translation
swarm-nodes/Freyja/autopilot_handler/apm_handler/src/mavros_translate.cpp - Vehicle launch config
swarm-nodes/Freyja/freyja_configfiles
Other components
- Flight operator
- Autopilot and vehicle
Connections 8
- State manager → State sources: registers callbacks
swarm-nodes/Freyja/state_manager/src/state_manager.cpp - State sources → State manager: publishes state
swarm-nodes/Freyja/state_manager/src/callback_implementations.cpp - State manager → State filters: uses filters
- State manager → LQR control: provides state
- LQR control → Bias estimator: sets measurements and input
swarm-nodes/Freyja/lqg_controller/src/lqr_control_bias.cpp - Flight operator → Vehicle launch config: launches
- Vehicle launch config → MAVROS translation: configures
- MAVROS translation → Autopilot and vehicle: translates commands