November 22, 2024
Motion planning's more fundamental cousin
No dynamics, no kinematics, maybe even no robot?
Just asking how to move an object between two configurations.
Review and taxonomies of assembly and disassembly path planning problems and approaches, Ghandi and Masehian
Design, Implementation and Validation of the Three-Wheel Holonomic Motion System of the Assistant Personal Robot (APR), Moreno et. al.
Efficient Global Planning for Highly Contact-Rich Systems, RQE Presentation, H.J. Terry Suh
Just drop a dimension!
The dimension stays the same!
There's a fundamental change to the topology of the space that we must take into account.
Planning problems with symmetry have additional structure
By exploiting that structure, we should be able to
Today's talk: strategies for making symmetry-aware planners
An Equivalence Relation \(\sim\) on a set \(X\) is a subset of \(X\times X\) s.t.
An Equivalence Relation \(\sim\) on a set \(X\) is a subset of \(X\times X\) s.t.
The equivalence class of an element \(x\in X\) is
\[[x]:=\{y\in X:x\sim y\}\]
Given an equivalence relation \(\sim\) on \(X\), we can consider the set of equivalence classes \[X/\!\sim\;:=\{[x]:x\in X\}\]
We have the projection map \[\pi:X\to X/\!\sim\quad x\mapsto[x]\]
If \(X\) has certain properties, does \(X/\!\sim\)?
Answer: Sometimes
For \(x,y\in\mathbb R\), define \(x\sim y\;\Leftrightarrow\;(x - y)\bmod 2\pi=0\)
This is an equivalence relation. (Trust me.)
Consider \(\mathbb \R/\sim\), which is often written \(\mathbb R/(2\pi\mathbb Z)\). What are the equivalence classes?
For \(x\in\mathbb R\), we have \([x]=\set{x+2\pi n:n\in\mathbb Z}\)
If \(X\) is a topological space, we can use \(\pi\) to define the quotient topology on \(X/\!\sim\), where \(Y\subseteq X/\!\sim\) is an open set iff \(\pi^{-1}(Y)\) is open in \(X\). Allows us to discuss quotient manifolds.
\(0\)
\(2\pi\)
\(\pi\)
\(\pi(0)=\pi(2\pi)\)
A group \((G,\cdot)\) is a set \(G\) with an operation \(\cdot:G\times G\to G\) such that...
Example of a group: rotations in 2D
From now on, we just write \(gh\) instead of \(g\cdot h\)
A group \((G,\cdot)\) acts on a set \(X\) via the function \(\alpha:G,X\to X\) if...
Example of a group action: rotations acting on points in 2D
\[\alpha:\operatorname{SO}(2)\times\mathbb R^2\to\mathbb R^2\]
\[\left(\begin{pmatrix}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\end{pmatrix},\begin{pmatrix}x\\ y\end{pmatrix}\right)\mapsto \begin{pmatrix}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\end{pmatrix}\begin{pmatrix}x\\ y\end{pmatrix}\]
For notational brevity, usually we write \(\alpha(g,x)=g\cdot x\).
Let's discuss the symmetry group of a square
Four elements:
\[\begin{pmatrix}1, 0\\ 0, 1\end{pmatrix},\;\begin{pmatrix}0, -1\\ 1, 0\end{pmatrix},\;\begin{pmatrix}-1, 0\\ 0, -1\end{pmatrix},\;\begin{pmatrix}0, 1\\ -1, 0\end{pmatrix}\]
(Matrix multiplication is the group operation.)
Then \([x]\) corresponds to the orbit \(g\cdot x=\{g\cdot x:g\in G\}\).
Given a group \(G\) acting on \(X\), for \(x,y\in X\), let \(x\sim y\) if \(\exists g\in G\) such that \(g\cdot x=y\).
Notation: \(X/\sim\) is written as \(X/G\)
Let \(\mathcal M\) be the configuration space of a rigid body (represented as a smooth manifold). Let \(G\) be the group of symmetries acting on the object.
Theorem: (Quotient Manifold Theorem) If certain conditions* are satisfied, then \(\mathcal M/G\) is also a smooth manifold.
*See Introduction to Smooth Manifolds, Lee, Chapter 21, for details.
Under certain further conditions (which are satisfied by the symmetry groups of rigid bodies), \(\mathcal{M}/G\) gets a Riemannian metric from \(\mathcal{M}\).
For a finite group \(G\), this is just a minimum of finitely many elements, so it can be efficiently computed!
Furthermore, the distance function takes the following form: \[d([x],[y])=\inf\{d(x,y):x\in[x],y\in[y]\}\]
When we're working over \(\operatorname{SO}(2)\) or \(\operatorname{SO}(3)\), \(d(x,y)\) is known in closed-form.
The possible symmetries in 2D are those of a regular n-gon.
More complicated...
Disjunctive constraints are always an option. To plan from \([s]\) to \([t]\) where \(x\) is the last point in the trajectory, require
\[\prod_{t'\in[t]}(x-t')=0.\]
A better option: DDP with discrete decisions (Trajectory Optimization with Discrete Decisions, Scott et. al.)
See Multilevel motion planning: A fiber bundle formulation, Orthey et. al.
This can only be made to handle continuous symmetries (each quotient must be positive dimension)
Whitney and Nash: such embeddings exist.
Not very helpful!
Nice, but maybe not the direction we want to take...
Focus on the IMACS framework (Implicit Manifold Configuration Space)
\(\rightarrow\) Introduced by Kingston et. al. in Exploring implicit spaces for constrained sampling-based planning.
Key idea: reduce SBP on manifolds to a set of primitives, so that arbitrary SBP algorithms can be mixed-and-matched with different representations on manifolds
RRT | PRM | |
---|---|---|
Continuation | x | x |
Projection | x | x |
All methods use local planning to connect nodes
I really think disjunctive costs or constraints are a bad idea
So what else can we do? How can we encode discrete decisions in a trajectory optimization framework?
GCS can be thought of as a generalization of min-cost flow.
6.7210 Lecture 16, 2022, Jaillet
"Every network flow problem can be reduced to one with exactly one source and exactly one sink node." Introduction to Linear Optimization, Bertsimas and Tsitsiklis, page 274
Triangle Symmetry, KNN-PRM with k=15, 500 nodes
Planning between 100 start and goal pairs.
Triangle Symmetry, KNN-PRM with k=25, 1000 nodes
Planning between 100 start and goal pairs.
Pentagonal Symmetry, KNN-PRM with k=25, 1000 nodes
Planning between 100 start and goal pairs.
Octagonal Symmetry, KNN-PRM with k=25, 1000 nodes
Planning between 100 start and goal pairs.
November 22, 2024