Swarm Behaviors
ROS2swarm includes a library of swarm behaviors that are separated into movement patterns for robot motion and voting patterns for collective decision-making. Every pattern can either be a basic pattern (i.e., basic building blocks) or a combined pattern (i.e., using one or more patterns to create a more complex behavior).
The different patterns may have requirements regarding the sensory setup to be executable. We summarize the existing patterns as well as their requirements in the following table.
Pattern |
Domain |
Type |
Simulation |
Robot |
Sensor Requirements |
---|---|---|---|---|---|
aggregation |
Movement |
Basic |
x |
x |
LiDAR or IR |
attraction |
Movement |
Basic |
x |
x |
LiDAR or IR |
attraction2 |
Movement |
Basic |
x |
x |
LiDAR or IR |
dispersion |
Movement |
Basic |
x |
x |
LiDAR or IR |
drive |
Movement |
Basic |
x |
x |
|
magnetometer |
Movement |
Basic |
x |
||
minimalist flocking |
Movement |
Basic |
x |
x |
LiDAR or IR |
random walk |
Movement |
Basic |
x |
x |
|
discussed dispersion pattern |
Movement |
Combined |
x |
x |
LiDAR or IR |
voter model |
Voting |
Basic |
x |
x |
|
majority rule |
Voting |
Basic |
x |
x |
To set a specific pattern in the launch script, specify pattern := *pattern_name*_pattern
as a parameter, e.g. to launch the random walk pattern, you have to set pattern
to random_walk_pattern
.