For experimental testing, we used the Gazebo + SITL + APM trio to run distributed ROS programs in a virtual environment. There's not much difference in the real world. The swarm software architecture is based on ardupilot. The hardware architecture is based on pixhawk. The communication model is based on the MAVLink protocol. QGroundControl serves as the ground control center. The black drone uses Telemetry communication. The green drone uses Wi-Fi.
The video below shows the execution of the stabilize_to_local_altitude(...)
function on a single-uav swarm. The drone takes off and stabilizes its position at an altitude of 9 meters. Then, it waits 5 seconds before landing.
335b405c-be69-46a7-92d0-0108c53aa135.mp4
The video below shows the same program being executed on a real single-UAV swarm. The function works perfectly, as the drone is very stable in maintaining both its position and altitude. This is difficult in a dynamic environment subject to the vagaries of the weather (wind, rain, snow, ....).
Single-UAV.Swarm.-Stabilize.Altitude.mp4
The video below shows the same program being executed on a real 2-UAV swarm. The program is distributed to the two drones in the swarm. Communication functions such as publishMessage(...)
and receiveMessage(...)
can be called in the case of a collaborative mission.
111cf638-b22f-4b1f-b8eb-ead03ce49362.mp4
The video below shows the execution of the coverage path planning mission using backandforthSquare()
function on a 3-uav swarm. Each drone in the swarm provides intermediary coverage of its perception domain. In this way, the three drones operate simultaneously until the entire area is covered.
3.UAV-Swarm.-.Distributed.Square.Coverage.mp4
The video below shows a visual of paths with QGroundControl. Note that the paths are square-shaped. https://github.com/adoni91/autotarget/assets/9494611/bc40d55c-8e0a-45ee-9d24-c01dbeee56d7
The video below shows the execution of the coverage path planning mission using HILBERT()
algorithm on a single-uav swarm.
Single-Swarm.-.HIBERT.Coverage.mp4
The video below shows the same coverage program being executed on a real single-UAV swarm. It works perfectly, as the performance is almost identical to that obtained in simulations taking into account the dynamism of the environment.
05807c2d-40a5-405c-a8bd-98117d47b2c1.mp4
The figure below shows the coverage mission using HILBERT()
function on the real 2-uav swarm. Each drone in the swarm provides intermediary coverage of its perception domain.
The video shows a swarming global navigation mission. The swarm drones call up the navigate_to_global_raw_waypoint()
function for mobility. In addition, other functions relating to communication and collision management have been called up for a collaborative mission.