10.5281/zenodo.45447
Florea, Andrei George
Andrei George
Florea
Dept. of Automatic Control and Systems Engineering, Politehnica University of Bucharest
Buiu, Catalin
Catalin
Buiu
Dept. of Automatic Control and Systems Engineering, Politehnica University of Bucharest
P Colonies And P Swarms For Controlling Robot Swarms. Experimental Setups And Demonstration Videos
Zenodo
2016
P colonies
P swarm
simulator
robot control
2016-02-02
https://zenodo.org/record/45447
Creative Commons Attribution 4.0
Open Access
<p>These eleven videos present different experimental scenarios used to test the flexibility and functioning of the LULU P colony/P swarm simulator and of the associated application Lulu_Kilobot for controlling robot swarms. Both applications will be published on Github under an open-source license. The input P colony (input) file, swarm configuration (config) file and V-REP scene (.ttt) are available for each video in the associated .zip archive.</p>
<p>The LULU simulator was included as a Python module in Lulu_Kilobot in order to test robot controllers based on P colonies, XP colonies, and P swarms for swarms of up to 10 Kilobot robots.</p>
<p>In the following sections, we present a small description for each of the eleven attached videos.</p>
<p>-----------------------------------------------------------------------------------------------<br />
1_clone_10_circle</p>
<p>This video demonstrates the use of the robot cloning function of the vrep_bridge script in order to create 9 distinct copies of the source robot and distribute them on a circle around the source robot. The copies are so positioned by a distribution function that can be adapted to other forms. This cloning function allows one to generate large swarms of robots with ease.</p>
<p>-----------------------------------------------------------------------------------------------<br />
2_one_pcolony_for_three_kilobots</p>
<p>In this video, we simulate a simple P minus colony using Lulu_Kilobot, on three different robots. At each subtraction, the robots move one step forward. At the beginning of the clip one can see the Robot - P colony association table, where each robot has a distinct copy of the original P colony.</p>
<p>-----------------------------------------------------------------------------------------------<br />
3_pswarm_5_robots_3_colonies</p>
<p>This video demonstrates the flexibility offered by the config file of Lulu_Kilobot. From the config file we explicitly specify that the first two robots should use the go straight P colony. For the other colonies, we specify the number of robots that should be assigned, go left = 1 and go right = 2.</p>
<p>From the Robot - P colony association table, one can see that the first robot that is assigned a P colony uses the original P colony while the others use an independent copy of the P colony.</p>
<p>-----------------------------------------------------------------------------------------------<br />
4_pswarm_2_robots_avoid_collision</p>
<p>In this experiment, we test the msg_distance agent from the input module, by continuously checking the distance from another robot.</p>
<p>If the distance is short, then we stop the movement and otherwise continue to subtract f objects from the environment and move forward.</p>
<p>Each of the two robots has a different P colony that was designed to check the distance from the other robot (robot_0 checks the distance from robot_1).</p>
<p>-----------------------------------------------------------------------------------------------<br />
5_pswarm_2_robots_xp_colonies_15_steps</p>
<p>In this video we employ the exteroceptive communication rules (denoted by <=>) in order to synchronize the movement of two robots. The first robot moves forward 15 steps and after it stops, it signals the second robot to start moving. At this signal, the second robot starts to turn left 15 steps.</p>
<p>This shows the utility of exteroceptive rules that allow XP colonies (P colonies with exteroceptive rules) to communicate using the global P swarm environment.</p>
<p>-----------------------------------------------------------------------------------------------<br />
6_1_pswarm_10_robots_disperse_steps_infinite_loop</p>
<p>In this video we run a more complex algorithm that involves the use of the following modules: msg_distance, led_rgb, and motion.</p>
<p>This video demonstrates dispersion, which is a typical self-deploying scenario in swarm robotics. The robots should position themselves away from one another, so that each robot is at least at a minimum distance from each of its neighbours.</p>
<p>All decisions are taken by the command module, on the basis of the received input data from msg_distance. A new direction of motion (and color) is randomly chosen if there are other robots closer than a pre-set threshold distance.</p>
<p>-----------------------------------------------------------------------------------------------<br />
6_2_pswarm_10_robots_optimized_disperse_infinite_loop</p>
<p>This video is an optimized version of 6.1 (10 robots disperse).</p>
<p>The optimization consists in only exchanging data with V-REP when a new input request is detected in the input agents or likewise a new command object is detected in the output agents.</p>
<p>This results in a step-less movement of the robots and reduces the time needed for a new decision to be applied resulting in a faster overall simulation time.</p>
<p>-----------------------------------------------------------------------------------------------<br />
7_pswarm_10_robots_optimized_disperse_infinite_loop_with_intruder</p>
<p>In this video we use the previously presented optimized dispersion algorithm (6.2) and introduce an intruder robot into the scene in order to evaluate the influence that this intruder has over the behaviour of the swarm.</p>
<p>One can see that robots that have stopped their movement, restart dispersing when the intruder robot is brought close enough. This can cause a chain reaction and ultimately cause the swarm to reposition.</p>
<p>-----------------------------------------------------------------------------------------------<br />
8_1_pswarm_10_robots_secure_disperse_fast</p>
<p>In this video we test the proposed security protocol (based on entity authentification and P colony based id check) using the non-optimized dispersion algorithm.</p>
<p>In this film we see that the robots ignore the intruder robot even though it is placed in the middle of the swarm. On the other hand, if we bring a swarm member robot close to another swarm member robot, these two will start to disperse normally.</p>
<p>-----------------------------------------------------------------------------------------------<br />
8_2_pswarm_10_robots_secure_disperse_infinite_loop_2</p>
<p>In this video we present the optimized (see 6.2 for details) version of the secured dispersion algorithm.</p>
<p>As was the case of the secured un-optimized version (8.1), in this secured version we test the influence of the intruder on the behaviour of the swarm by moving the intruder close to the center of the swarm and also moving the intruder close to the swarm after the dispersion is finished. We also note that if two member robots approach, the algorithm continues to work normally.</p>
<p>-----------------------------------------------------------------------------------------------<br />
9_pswarm_10_robots_secure_d_min_disperse_infinite_loop</p>
<p>In this clip we show the effects of transparent input data processing.</p>
<p>The command agent always requests the smallest distance available from the neighbour list, by using the d_min command.</p>
<p>When the intruder robot is the nearest robot (the smallest value in the list) d_min will always return the intruder robot which cannot be processed because it is unknown to the swarm members. For this reason, a member robot that is in this situation will be blocked by the intruder robot.</p>