Configuration Space - McGill University

97
Configuration Space

Transcript of Configuration Space - McGill University

Page 1: Configuration Space - McGill University

Configuration Space

Page 2: Configuration Space - McGill University

Configuration Space

Page 3: Configuration Space - McGill University

Configuration Space

Page 4: Configuration Space - McGill University

Definition

A robot configuration is a specification of the positions of all robot points relative to a fixed coordinate system

Usually a configuration is expressed as a “vector” of position/orientation parameters

Page 5: Configuration Space - McGill University

What is a Path?

qgo

al

qin

it

qgoa

l

qinit

Page 6: Configuration Space - McGill University

What is a Path?

Page 7: Configuration Space - McGill University

Tool: Configuration Space(C-Space C)

q1

q1

q2

q2

Page 8: Configuration Space - McGill University

Tool: Configuration Space(C-Space C)

q1

q1

q2

q2

Page 9: Configuration Space - McGill University

Tool: Configuration Space(C-Space C)

Page 10: Configuration Space - McGill University

Articulated Robot Example

q1

q2

q = (q1,q2,…,q10)

Page 11: Configuration Space - McGill University

Configuration Space of a Robot

Space of all its possible configurations

But the topology of this space is usually not that of a Cartesian space

C = S1 x S1

Page 12: Configuration Space - McGill University

Configuration Space of a Robot

Space of all its possible configurations

But the topology of this space is usually not that of a Cartesian space

C = S1 x S1

Page 13: Configuration Space - McGill University

Configuration Space of a Robot

Space of all its possible configurations

But the topology of this space is usually not that of a Cartesian space

C = S1 x S1

Page 14: Configuration Space - McGill University

Structure of Configuration Space

It is a manifoldFor each point q, there is a 1-to-1 map between a neighborhood of q and a Cartesian space Rn, where n is the dimension of C

This map is a local coordinate system called a chart. C can always be covered by a finite number of charts. Such a set is called an atlas

Page 15: Configuration Space - McGill University

Example

Page 16: Configuration Space - McGill University

reference point

Case of a Planar Rigid Robot

• 3-parameter representation: q = (x,y,q)with q [0,2p). Two charts are needed

• Other representation: q = (x,y,cosq,sinq)c-space is a 3-D cylinder R2 x S1

embedded in a 4-D space

x

yq

robotreference direction

workspace

Page 17: Configuration Space - McGill University

Rigid Robot in 3-D Workspace

• q = (x,y,z,a,b,g)

• Other representation: q = (x,y,z,r11,r12,…,r33) where r11, r12, …, r33 are the elements of rotation matrix R:

r11 r12 r13r21 r22 r23r31 r32 r33

with:– ri1

2+ri22+ri3

2 = 1– ri1rj1 + ri2r2j + ri3rj3 = 0– det(R) = +1

The c-space is a 6-D space (manifold) embedded in a 12-D Cartesian space. It is denoted by R3xSO(3)

Page 18: Configuration Space - McGill University

Parameterization of SO(3)

• Euler angles: (f,q,y)

• Unit quaternion:(cos q/2, n1 sin q/2, n2 sin q/2, n3 sin q/2)

x

y

z

xy

z

f

x

y

z

q

x

y

z

y

1 2 3 4

Page 19: Configuration Space - McGill University

A welding robot

Page 20: Configuration Space - McGill University

A Stuart Platform

Page 21: Configuration Space - McGill University

Barrett WAM arm

Page 22: Configuration Space - McGill University

Barrett WAM arm on a mobile platform

Page 23: Configuration Space - McGill University

Configuration Space Obstacle

Page 24: Configuration Space - McGill University

Two link path

Page 25: Configuration Space - McGill University

2D Rigid Object

Page 26: Configuration Space - McGill University

The Configuration Space

Page 27: Configuration Space - McGill University

Moving a piano

Page 28: Configuration Space - McGill University

Parameterization of Torus

Page 29: Configuration Space - McGill University

Metric in Configuration Space

A metric or distance function d in C is a map d: (q1,q2) C2

d(q1,q2) > 0such that:

– d(q1,q2) = 0 if and only if q1 = q2

– d(q1,q2) = d (q2,q1)

– d(q1,q2) < d(q1,q3) + d(q3,q2)

Page 30: Configuration Space - McGill University

Metric in Configuration SpaceExample:• Robot A and point x of A

• x(q): location of x in the workspace when A is at configuration q

• A distance d in C is defined by:d(q,q’) = maxxA ||x(q)-x(q’)||

where ||a - b|| denotes the Euclidean distance between points a and b in the workspace

Page 31: Configuration Space - McGill University

Obstacles in C-SpaceA configuration q is collision-free, or free, if

the robot placed at q has null intersection with the obstacles in the workspace

The free space F is the set of free configurations

A C-obstacle is the set of configurations where the robot collides with a given workspace obstacle

A configuration is semi-free if the robot at this configuration touches obstacles without overlap

Page 32: Configuration Space - McGill University

Disc Robot in 2-D Workspace

Page 33: Configuration Space - McGill University

Rigid Robot Translating in 2-D

CB = B A = {b-a | aA, bB}

a1

b1

b1-a1

Page 34: Configuration Space - McGill University

Linear-Time Computation of C-Obstacle in 2-D

(convex polygons)

Page 35: Configuration Space - McGill University

Rigid Robot Translating and Rotating in 2-D

Page 36: Configuration Space - McGill University

Free and Semi-Free Paths

A free path lies entirely in the free space F

A semi-free path lies entirely in the semi-free space

Page 37: Configuration Space - McGill University

Remarks on Free-Space Topology

• The robot and the obstacles are modeled as closedsubsets, meaning that they contain their boundaries

• One can show that the C-obstacles are closed subsets of the configuration space C as well

• Consequently, the free space F is an open subset of C. Hence, each free configuration is the center of a ball of non-zero radius entirely contained in F

• The semi-free space is a closed subset of C. Its boundary is a superset of the boundary of F

Page 38: Configuration Space - McGill University
Page 39: Configuration Space - McGill University
Page 40: Configuration Space - McGill University

Notion of Homotopic PathsTwo paths with the same endpoints are homotopic if one can be continuously deformed into the other

R x S1 example:

t1 and t2 are homotopic

t1 and t3 are not homotopic

In this example, infinity of homotopy classes

q

q’

t1t2

t3

Page 41: Configuration Space - McGill University

Connectedness of C-SpaceC is connected if every two configurations can be connected by a path

C is simply-connected if any two paths connecting the same endpoints are homotopicExamples: R2 or R3

Otherwise C is multiply-connectedExamples: S1 and SO(3) are multiply- connected:- In S1, infinity of homotopy classes- In SO(3), only two homotopy classes

Page 42: Configuration Space - McGill University

Classes of Homotopic Free Paths

Page 43: Configuration Space - McGill University

Probabilistic Roadmaps PRMs

Page 44: Configuration Space - McGill University

Rapidly-exploring Random Trees

• A point P in C is randomly chosen.

• The nearest vertex in the RRT is selected.

• A new edge is added from this vertex in the

direction of P, at distance .

• The further the algorithm goes, the more

space is covered.

Page 45: Configuration Space - McGill University

Rapidly-expanding Random Trees

Starting vertex

Page 46: Configuration Space - McGill University

Rapidly-expanding Random Trees

Vertex randomly drawn

Page 47: Configuration Space - McGill University

Rapidly-expanding Random Trees

Nearest vertex

Page 48: Configuration Space - McGill University

Rapidly-expanding Random Trees

New vertex

The vertex is in Cfree

Page 49: Configuration Space - McGill University

Rapidly-expanding Random Trees

Vertex randomly drawn

Page 50: Configuration Space - McGill University

Rapidly-expanding Random Trees

Nearest point

Page 51: Configuration Space - McGill University

Rapidly-expanding Random Trees

New vertex

The vertex is in Cfree

Page 52: Configuration Space - McGill University

Rapidly-expanding Random Trees

Page 53: Configuration Space - McGill University

Rapidly-expanding Random Trees

Vertex randomly drawn

Page 54: Configuration Space - McGill University

Rapidly-expanding Random Trees

Nearest vertex

Page 55: Configuration Space - McGill University

Rapidly-expanding Random Trees

New vertex

Page 56: Configuration Space - McGill University

Rapidly-expanding Random Trees

And it continues…

Page 57: Configuration Space - McGill University

RRT-Connect

• We grow two trees, one from the beginning

vertex and another from the end vertex

• Each time we create a new vertex, we try to

greedily connect the two trees

Page 58: Configuration Space - McGill University

RRT-Connect: exampleStart

Goal

Page 59: Configuration Space - McGill University

RRT-Connect: example

Random vertex

Page 60: Configuration Space - McGill University

RRT-Connect: example

Page 61: Configuration Space - McGill University

RRT-Connect: example

We greedily connect the

bottom tree to our new

vertex

Page 62: Configuration Space - McGill University

RRT-Connect: example

Page 63: Configuration Space - McGill University

RRT-Connect: example

Page 64: Configuration Space - McGill University

RRT-Connect: example

Page 65: Configuration Space - McGill University

RRT-Connect: example

Obstacle found !

Page 66: Configuration Space - McGill University

RRT-Connect: example

Now we swap roles !

Page 67: Configuration Space - McGill University

RRT-Connect: example

Now we swap roles !

Page 68: Configuration Space - McGill University

RRT-Connect: example

We grow the bottom tree

Page 69: Configuration Space - McGill University

RRT-Connect: example

Now we greedily try to connect

And we continue…

Page 70: Configuration Space - McGill University

RRT-Connect: example

Page 71: Configuration Space - McGill University

RRT-Connect: example

Page 72: Configuration Space - McGill University

RRT-Connect: example

Page 73: Configuration Space - McGill University

RRT-Connect: example

Page 74: Configuration Space - McGill University

RRT-Connect: example

Page 75: Configuration Space - McGill University

RRT-Connect: example

Page 76: Configuration Space - McGill University

RRT-Connect: example

Page 77: Configuration Space - McGill University

RRT-Connect: example

Page 78: Configuration Space - McGill University

RRT-Connect: example

Page 79: Configuration Space - McGill University

RRT-Connect: example

Page 80: Configuration Space - McGill University

RRT-Connect: example

Page 81: Configuration Space - McGill University

RRT-Connect: example

Page 82: Configuration Space - McGill University

RRT-Connect: example

Page 83: Configuration Space - McGill University

RRT-Connect: example

Page 84: Configuration Space - McGill University

RRT-Connect: example

Page 85: Configuration Space - McGill University

RRT-Connect: example

Page 86: Configuration Space - McGill University

RRT-Connect: example

Page 87: Configuration Space - McGill University

RRT-Connect: example

Page 88: Configuration Space - McGill University

RRT-Connect: example

Page 89: Configuration Space - McGill University

RRT-Connect: example

Page 90: Configuration Space - McGill University

RRT-Connect: example

Page 91: Configuration Space - McGill University

RRT-Connect: example

Connection made !

Page 92: Configuration Space - McGill University

RRT-Connect: example

Now we have a solution !

Page 93: Configuration Space - McGill University

RRT-Connect: example

Last step: path smoothing

Page 94: Configuration Space - McGill University

RRT-Connect: example

Last step: path smoothing

Page 95: Configuration Space - McGill University

An RRT in 2D

Example from: http://msl.cs.uiuc.edu/rrt/gallery_2drrt.html

Page 96: Configuration Space - McGill University

A Puzzle solved using RRTsThe goal is the separate the two

bars from each other. You might

have seen a puzzle like this

before. The example was

constructed by Boris Yamrom,

GE Corporate Research &

Development Center, and posted

as a research benchmark by

Nancy Amato at Texas A&M

University. It has been cited in

many places as a one of the most

challenging motion planning

examples. In 2001, it was solved

by using a balanced bidirectional

RRT, developed by James

Kuffner and Steve LaValle. There

are no special heuristics or

parameters that were tuned

specifically for this problem. On

a current PC (circa 2003), it

consistently takes a few minutes

to solve.

Page 97: Configuration Space - McGill University

Lunar Landing

The following is an open loop trajectory that was planned in a 12-dimensional state space. The

video shows an X-Wing fighter that must fly through structures on a lunar base before entering

the hangar. This result was presented by Steve LaValle and James Kuffner at the Workshop on

the Algorithmic Foundations of Robotics, 2000.