Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revisionLast revisionBoth sides next revision | ||
buzz_examples [2016/09/02 13:28] – [Square Pattern Formation] ilpincy | buzz_examples [2018/03/18 22:58] – root | ||
---|---|---|---|
Line 77: | Line 77: | ||
var accum = neighbors.map(lj_vector).reduce(lj_sum, | var accum = neighbors.map(lj_vector).reduce(lj_sum, | ||
if(neighbors.count() > 0) | if(neighbors.count() > 0) | ||
- | math.vec2.scale(accum, | + | math.vec2.scale(accum, |
# Move according to vector | # Move according to vector | ||
goto(accum.x, | goto(accum.x, | ||
Line 98: | Line 98: | ||
==== Square Pattern Formation ==== | ==== Square Pattern Formation ==== | ||
- | <code buzz hexagon.bzz> | + | To form square lattice, we can build upon the previous example. The insight is to notice that, in a square lattice, we can color the nodes forming the lattice with two shades, e.g., red and blue, and then mimic the [[http:// |
+ | |||
+ | With this idea in mind, the following script divides the robots in two swarms: those with an even id and those with an odd id. Then, using '' | ||
+ | |||
+ | <code buzz square.bzz> | ||
# We need this for 2D vectors | # We need this for 2D vectors | ||
# Make sure you pass the correct include path to "bzzc -I < | # Make sure you pass the correct include path to "bzzc -I < | ||
Line 104: | Line 108: | ||
# Lennard-Jones parameters | # Lennard-Jones parameters | ||
- | TARGET_KIN | + | TARGET_KIN |
- | EPSILON_KIN | + | EPSILON_KIN |
- | TARGET_NONKIN | + | TARGET_NONKIN |
- | EPSILON_NONKIN = 100. | + | EPSILON_NONKIN = 100.0 |
# Lennard-Jones interaction magnitude | # Lennard-Jones interaction magnitude | ||
Line 135: | Line 139: | ||
accum = neighbors.nonkin().map(lj_vector_nonkin).reduce(lj_sum, | accum = neighbors.nonkin().map(lj_vector_nonkin).reduce(lj_sum, | ||
if(neighbors.count() > 0) | if(neighbors.count() > 0) | ||
- | math.vec2.scale(accum, | + | math.vec2.scale(accum, |
# Move according to vector | # Move according to vector | ||
goto(accum.x, | goto(accum.x, | ||
Line 158: | Line 162: | ||
} | } | ||
</ | </ | ||
- | |||
- | ===== Wheeled-robot Specific ===== | ||
- | |||
- | TODO | ||
- | |||
- | ===== Flying-robot Specific ===== | ||
- | |||
- | TODO |