260 likes | 399 Views
Coordination in PIM. Author: Erika Benvegnu. 2 robots. “Follow me” coordination process . 3 robots. What about a triangle?. 4 robots. We can make a square. 6 robots. We can make a regular hexagon. 5 or more….
E N D
Coordination in PIM Author: Erika Benvegnu
2 robots “Follow me” coordination process
3 robots What about a triangle?
4 robots We can make a square
6 robots We can make a regular hexagon
5 or more… Position around the circumference of a circle all at the same distance from its neighbor
Wait a sec… … all these shapes are inscribable into a circle!
Wait a sec… … all these shapes are inscribable into a circle!
Coordination: No matter how many robots we have, we can always position them around the circumference of a circle all at the same distance one from the other.
Robustness If one or more robots die, the others will have to adapt in order to keep themselves equidistant. We have to run the algorithm in a loop.
Possible implementation 1: easy solution When the command is given, position in a circle around a given origin (x0,y0) and with a specific radius r, equidistant one from the other AND minimizing the total effort. r y0 x0
Possible implementation 2: Just position in a circle… No matter how spread the robots are in the field, we just want them to move and form a circle. We always want to minimize the effort.
Just position in a circle… Calculate the convex hull. Given a set of points (the robots’ positions), the convex hull for the set is the minimal convex set that contains all the points (robots).
Just position in a circle… Calculate the center of the circumference: The geometrical center, centroid, of the convex hull can be used as center of the circumference (minimize the effort !! ).
Just position in a circle… Calculate the radius of the circumference: The radius can be the distance between the center and one of the robots. Only n-1 robots has to adapt. Given the center, the radius can be between the closest and the farthest hull point from the center (minimize medium effort?). Is there a perfect approach, or does it just depend on the situation?
Create the circle Once the first robot is in place on the circumference we can calculate the position in which we’ll have to move each of the other robots.For each given position we can move the closest robot to the specified position (minimize the effort). Robot 2 Robot 2 Robot 1 Robot 1 Robot 0 Robot 0
Perform coordination action Each robot moves to the position of its neighbor counterclockwise. When the next position has been reached from all the robots, they pause for a little bit and then repeat the coordination movement.
Perform coordination action Each robot moves to the position of its neighbor counterclockwise. When the next position has been reached from all the robots, they pause for a little bit and then repeat the coordination movement.
When a human-controlled robot is present The robots that perform the coordination action position in a circle around the human-controlled robot, this robot is the center of the circle. When the center moves the robots have to adapt. Each robot moves to the position of its neighbor counterclockwise. When the next position has been reached from all the robots, they pause for a little bit and then repeat the coordination movement. Unless the center moves triggering a move to follow the center.