GeoGebra

Famous Curves for Robotics in C++

Markus Buchholz
5 min readNov 13, 2022

--

Robotics is a highly challenging domain where besides certain tasks required from the particular robot or application, users establish high demand for motion, precision, persistence, and durability.
The robot motion, distinguished by smooth robot movement, path precision, repeatability, level of acceleration, or speed requires modeling the robot path by continuous curves (part of these curves).
On the other side, the drive line is also considered (in this article) as all kinds of reduction gears, motors, and brakes. Considering gears for articulated robot applications, the type of planocentric gears are often in use. The components used to design such gearboxes consist of parts in the shape of curves I will discuss in this article.

Nabtesco

The following article also refers to one of my previous articles, where I also discussed the curves for robotics, however in the other context.

All curve equations are implemented in C++. The source code you can find on my GitHub.

Plotting requires incorporating the header file which has to be in the same folder as your cpp (a file you can clone from my repository).
Your program can be compiled as follows.

//compile
g++ my_prog.cpp -o my_prog -I/usr/include/python3.8 -lpython3.8//

//run
./my_prog

//folder tree
├── my_prog
├── my_prog.cpp
├── matplotlibcpp.h

Here you can discover a list of mathematically significant curves, which are often used in robotics mechanisms and applications. You can look up the parametric equation, the graphical depiction of the curve, and the name of the mathematician who made it in each of them. For more interesting details I recommend you to visit Wikipedia (I included proper links).

Cardioid

A cardioid (“heart” from Greek) is a curve traced by a point on the perimeter of a circle that is rolling around a fixed circle of the same radius. See how it is created.

Wikipedia

The curve can be described by following parametric equations,

Using the above formulas the curves can be plotted as follows,

Cardioid

Astroid

Astroid can be formulated by following, parametric equations,

Here you can see how it is created,

Wikipedia

Using the above formulas the curves can be plotted as follows,

Astroid

Bicorn

Bicorn, can be formulated by following, parametric equations,

Using the above formulas the curves can be plotted as follows,

Bicorn

Cayley’s sextic

Cayley’s sextic, can be formulated by following, parametric equations,

Using the above formulas the curves can be plotted as follows,

Cayley’s sextic

Cycloid

Cycloid, is the curve created by a point on a circle as it rolls along a straight line without slipping. Cycloid can be formulated by following, parametric equations,

Here you can see creation details,

Wikipedia

Using the above formulas the curves can be plotted as follows,

Cycloid

Devil’s curve

Devil’s Curve, can be formulated by following, parametric equations,

Using the above formulas the curves can be plotted as follows,

Devil’s curve

Epicycloid

Epicycloid can be formulated by following, parametric equations,

Here you can see creation details,

Wikipedia

Using the above formulas the curves can be plotted as follows,

Epicycloid

Epitrochoid

Epitrochid can be formulated by following, parametric equations,

Here you can see creation details,

Wikipedia

Using the above formulas the curves can be plotted as follows,

Epitrochoid

Hypocycloid

Hypocycloid can be formulated by following, parametric equations,

Here you can see creation details,

Wikipedia

Using the above formulas the curves can be plotted as follows,

Hypocycloid

Deltoid

Deltoid can be formulated by following, parametric equations,

Here you can see creation details,

Wikipedia

Using the above formulas the curves can be plotted as follows,

Deltoid

Thank you for reading.

--

--

Markus Buchholz
Markus Buchholz

Written by Markus Buchholz

Researcher in underwater robotics

No responses yet