Minkowski sum-difference

advertisement
Configuration Spaces for
Translating Robots
Minkowsi Sum/Difference
David Johnson
C-Obstacles
• Convert
– robot and obstacles
– point and configuration space obstacles
Workspace robot and obstacle
C-space robot and obstacle
Translating Robots
• Most C-obstacles have mysterious form
• Special case for translating robots
• Look at the 1D case
-7 -6 -5 -4 -3 -2 -1 0 1
obstacle
2 3
4
robot
5 6
7
Translating Robots
• What translations of the robot result in a
collision?
-7 -6 -5 -4 -3 -2 -1 0 1
obstacle
2 3
4
robot
5 6
7
Minkowski Difference
• The red C-obs is the Minkowski difference of
the robot and the obstacle
-7 -6 -5 -4 -3 -2 -1 0 1
obstacle
2 3
4
robot
5 6
7
Minkowski Sum
• First, let us define the Minkowski Sum
Minkowski Sum
A  B  {a  b | a  A, b  B}

A
B
Minkowski Sum
A  B  {a  b | a  A, b  B}
A  B  {a  B | a  A}
Minkowski Sum
Minkowski Sum
A  B  {a  b | a  A, b  B}
Minkowski Sum Example
• Applet
• The Minkowski sum is like a convolution
• A related operation produces the C-obs
– Minkowski difference
A B  {a  b | a  A, b  B}
Back to the 1D Example
• What translations of the robot result in a
collision?
O R  {a  b | a  O, b  R}
-7 -6 -5 -4 -3 -2 -1 0 1
obstacle
2 3
4
robot
5 6
7
Tracing Out Collision Possibilities
Minkowski Difference
-B
From sets to polygons
• Set definitions are not very
practical/implementable
• For polygons, only need to consider vertices
– Computationally tractable
Properties of Minkowski Difference
• For obstacle O and robot R
– if O - R contains the origin
Opt  Rpt   0,0
Ox  Rx  0
Oy  Ry   0

  
Ox   Rx 
Oy    Ry 
   
Opt   Rpt 
Collision!
Another property
• The closest point on the Minkowski difference
to the origin is the distance between polygons
• Distance between polygons
d ( A, B)  min a  b , a  A, b  B
d ( A, B)  min z , z  A  B
Example
• Applet
Discussion
• Given a polygonal, translating robot
• Polygonal obstacles
• Compute exact configuration space obstacle
• Next class – how will we use this to make
paths?
Download