├── ZSM_odometrycorrection.png ├── .gitmodules └── README.md /ZSM_odometrycorrection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudelft/SGBA_code_SR_2019/HEAD/ZSM_odometrycorrection.png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "ARGoS_bridge"] 2 | path = ARGoS_bridge 3 | url = https://github.com/tudelft/ARGoS_bridge 4 | [submodule "bug_algorithms"] 5 | path = bug_algorithms 6 | url = https://github.com/tudelft/bug_algorithms 7 | [submodule "gradient_bug"] 8 | path = gradient_bug 9 | url = https://github.com/tudelft/gradient_bug 10 | [submodule "crazyflie-firmware"] 11 | path = crazyflie-firmware 12 | url = https://github.com/tudelft/crazyflie-firmware-private 13 | [submodule "crazyflie2-nrf-firmware"] 14 | path = crazyflie2-nrf-firmware 15 | url = https://github.com/tudelft/crazyflie2-nrf-firmware 16 | [submodule "argos3"] 17 | path = argos3 18 | url = https://github.com/tudelft/argos3.git 19 | [submodule "indoor_environment_generator"] 20 | path = indoor_environment_generator 21 | url = https://github.com/tudelft/indoor_environment_generator.git 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SGBA_code_SR_2019 2 | 3 | This section presents all the repositories used for the simulation and the real-world experiments done in the following publication: 4 | > K.N. McGuire, C. De Wagter, K. Tuyls, H.J. Kappen, G.C.H.E. de Croon, 5 | > 'Minimal navigation solution for a swarm of tiny flying robots to explore an unknown environment' 6 | > Science Robotics, 23 October 2019 7 | > DOI: http://robotics.sciencemag.org/lookup/doi/10.1126/scirobotics.aaw9710 8 | 9 | **The algorithm developed for the paper above is currently being cleaned up and ported to the latest firmware of the Crazyflie 2.1. Please go to for updates to https://github.com/tudelft/SGBA_CF2_App_layer** 10 | 11 | 12 | ## Simulation 13 | 14 | This section explains the git-repositories for the simulation experiments. 15 | Elements have been reused of the simulation used in: 16 | > K.N. McGuire, G.C.H.E. de Croon, K. Tuyls, 17 | > 'A comparative study of bug algorithms for robot navigation', 18 | > Robotics and Autonomous Systems, Volume 121, 2019, 103261 19 | > DOI: https://doi.org/10.1016/j.robot.2019.103261 20 | 21 | Repositories (also shown as submodules in this repository) 22 | - ARGoS_bridge (ROS kinetic): https://github.com/tudelft/ARGoS_bridge (branch: gradient_bug_testing) 23 | - The node to port ROS twist-commands to the foot-bot and returns the laser-range finder measurements. 24 | - Indoor_environment_generator (ROS kinetic): https://github.com/tudelft/indoor_environment_generator (branch: master) 25 | -The ROS package contains the procedural random indoor environment generator and provides the simulated RSSI measurements for the ARGoS’s foot-bot. 26 | - ARGoS: https://github.com/tudelft/ARGoS3 (branch: ARGoS3_mod_tudelft) 27 | - Contains the modified foot-bot model. 28 | - Bug_Algorithms (ROS kinetic): https://github.com/tudelft/bug_algorithms (branch: master) 29 | - Contains the finite state machine for the standard bug algorithms. 30 | -Gradient_bug (ROS kinetic): https://github.com/tudelft/gradient_bug (branch: master) 31 | -Contains the state machine for the swarm gradient bug algorithm. 32 | ### Launch 33 | How to start the tests with ROS kinetic: 34 | - In a terminal, type “roslaunch bug_algorithms launch_bug_algorithm.launch” 35 | - In another terminal, type “python multiple_environments_test.py” to supervise the tests. 36 | 37 | 38 | ## Real-World Testing 39 | This section shows all the github-repositories used for the real-world experiments, for which a *Crazyflie 2.0, Multiranger and Flowdeck* was used as explained in the paper. These repositories represent the firmware of the microprocessors on this small quadcopter: 40 | - Crazyflie_firmware: https://github.com/tudelft/crazyflie-firmware-private (branch: systemtest_gradientbug) 41 | - This repository contains all the necessary changes to the Crazyflie firmware in order to make the SGBA work onboard 42 | - Crazyflie2-nrf-firmware: https://github.com/tudelft/crazyflie2-nrf-firmware (branch: ptx_mode_try_out) 43 | - This repository contains the firmware of the NRF51 chip on the Crazyflie 2.0, in order to enable inter-drone communication. 44 | 45 | ### Launch 46 | How to start up the experiment: 47 | - Give the Crazyflie a unique ID: E7E7E701, E7E7E702, etc. 48 | - First flash the NRF and STM chips of all the Crazyflie with the following bashscript: ‘gradient_bug/bashscripts/flash_all_crazyflies.sh’ 49 | - Start the real-world testing with the following bashscript: ‘gradient_bug/bashscripts/start_swarm_exploration_experiment.sh’ 50 | - If something goes wrong, close the last bashscript and run ‘land_all.sh’ 51 | --------------------------------------------------------------------------------