The Path Not Taken...

Share
The Path Not Taken...

Being my first blog post, I wanted to start of with a topic that was the very reason why I fell in love with robotics...

I also felt the need to be able to convey my research (or something I try to do in my spare time) a bit more effectively, hence this blogging format. A bit of embedded magic via Deepnote...

A lot of the concepts, ideas and algorithms have been inspired from Lavalle , Redrake and Boyd.

A brief introduction..

Wikipedia defines Motion Planning as shown below,

Pretty simple right..?

Although the above definition appears to be mostly accurate and straightforward, itโ€™s important to clarify beforehand that the source (and destination) doesnโ€™t necessarily have to be points in the real world (R2 and R3). Motion planning can be performed in higher dimensions and for various spaces, such as the joint spaces in manipulators or belief spaces for SLAM.)

For this blog, I wanted to briefly discuss the different categories of algorithms used in motion planning and highlight their distinctions. As far as I understand, motion planners can be broadly categorized into four types. (Apologies for the Notes app writing.)

In my defense, I guess this classification pretty much includes all classes....

Sampling based planners

It's futile to talk about motion planning in higher dimensions without actually understanding configuration spaces.

Without entering into deep mathematical concepts, one could understand topological spaces in simple terms..

A set X is called a topological space if there is a collection of subsets of X called open sets for which the following axioms hold:

1. The union of any number of open sets is an open set.
2. The intersection of a finite number of open sets is an open set.
3. Both X and โˆ… are open sets.

Think about the set R, of real numbers. It definitely contains subsets such that their union leads to an open set, and subsequently their intersection could also lead to an open set (take (1,2) U (1,4) as an example). And of course, X itself is open in the sense of being unbounded....

One could extend this branch and claim that X = Rn for any integer n, leads to a topological space. Considering most of the practical applications work in these spaces, this is a useful idea to acknowledge.

homeomorphism is a special type of mapping between two topological spaces.

Two spaces are homeomorphic if:
1. You can continuously deform one space into the other
2. You do not tear, glue, or create holes
3. The mapping works in both directions (it has a continuous inverse)

A commonly used example is the donut and coffee cup example...

Imagine the space of a ๐Ÿฉ and another space of its close accomplice, โ˜•. Both have exactly one hole, and one could imagine stretching the donut till it forms a handle like a mug...so one isn't really creating nor gluing to make holes...

Contradictorily, take the example of a donut ๐Ÿฉ and a sphere ๐ŸŽพ...they aren't homeomorphic because the ๐ŸŽพ has no holes but the ๐Ÿฉ does. One cannot create a hole without tearing....

This leads to the definition of manifolds..,

A topological space M โІRm is a manifold if for every x โˆˆ M, an open set O โŠ‚ M exists such that: 1) x โˆˆ O, 2) O is homeomorphic to Rn, and 3) n is fixed for all x โˆˆM.


The key idea to remember here is that for any manifold, on zooming into any point, the space in and around it must look like a simple euclidean space...

Take a look at the image below. The left space locally follows the rule mentioned earlier, resembling Rn. However, the space at the tip of the two cones appears to be two cones intersecting, which technically cannot be flattened into a Rn without tearing or merging operations. Therefore, it violates the rules of a manifold.

A interesting example for showing spaces violating manifold constraints..


Lavalle also contains some interesting cases of 2D spaces with manifold violating spaces...

The indicated points break the spaces from being manifolds

Note that a convenient way to generate new topological space is by taking their cartesian product, simply X ร— Y.


This leads us to discuss about some important manifolds, namely, R1, R2 and the S1. R1 is a simple space that could be understood by a line, R2 by a plane and S1 is where things get interesting. S1 is the manifold of a circle, namely,

S1 = {(x,y) โˆˆ R2 | x2 + y2 = 1}

A common way one could represent this space is by parametrizing it using ฮธ โ†’(cos ฮธ, sin ฮธ). Run up ฮธ from 0 to 2ฯ€ and we complete our space..again, notice the open set definition.
 
Now comes a really interesting idea... what happens if we apply cartesian products for R2 x S1, we get a cylinder! But cylinders are not the only manifold possible.....


Lavalle once again lists a good chunk of famous 2D manifolds...

One can imagine these by connecting the corresponding arrows in their indicated directions...

We can finally define a configuration space. If the robot has n degrees of freedom, the set of transformations is usually a manifold of dimension n. This manifold is called the configuration space of the robot, and its name is often shortened to C-space.

Sample image of a C-space. As we see, a motion planner must simply find a path from qI to qG while avoiding the space Cobs (staying in the Cfree)..


To be continued .....๐Ÿ™ƒ


References

  1. Steven M. LaValle, "Planning Algorithms", Cambridge University Press , 2006.
  2. Russ Tedrake (2024). Robotic manipulation: Perception, planning, and control (MIT 6.421 course notes). Retrieved from http://manipulation.mit.edu
  3. Stephen Boyd, & Lieven Vandenberghe (2004). Convex optimization. Cambridge University Press.