RoboticManipulators
Calculation of forward and inverse kinematics, Jacobian matrices, dynamic modeling, trajectory planning and geometric calibration for robotic manipulators
Install / Use
/learn @Sarrasor/RoboticManipulatorsREADME
Robotic manipulators
Calculation of Forward Kinematics (FK), Inverse Kinematics (IK), Jacobians, Dynamic Modeling (Euler-Lagrange, Newton-Euler), trajectory generation (Joint Space polynomial, Joint Space P2P, Cartesian Space Linear), and geometric calibration for robotic manipulators.
Repo contents
robots- Folder with IK and FK solutions. Solution descriptions are in.mdfilesutils- Several useful utils likeSymbolicTransformationorTrajectoryGeneratorthat can help with matrix multiplication, planning and other Robotics-related stuffdocs- Folder with some theoryDynamics.md- Review of dynamic modeling of robotics manipulatorsFanucJacobians.md- Review of Jacobian calculation on the example of Fanuc manipulatorGeometricCalibration.md- Review of geometric parameter calibration on the example of Fanuc manipulatorTrajectoryPlanning.md- Review of trajectory planning for robotic manipulators
tests- Unit tests
How to run
Here are several useful commands to run:
RR Robot dynamic modeling
python rr_robot_dynamics.py
If you want to see how to model RR manipulator with gravity force and make it follow the desired trajectory. Check out docs/Dynamics.md to see how it is done.
No control
No control signal is applied, just gravity force is acting:

Control
Control signal is applied:

RRR Robot trajectory planning
python rrr_robot_planning.py
If you want to see how to perform XYZ Polynomial and Trapezoidal trajectory planning for RRR Robot in Joint and Cartesian Space. Check out docs/TrajectoryPlanning.md to see how the planning is done.
Polynomial profile
Sample polynomial trajectory:

Here is how the manipulator will move:

Trapezoidal profile (Joint Space)
Sample trapezoidal trajectory in joint space:

Here is how the manipulator will move:

Trapezoidal profile (Cartesian Space)
Sample trapezoidal trajectory in cartesian space:

Their corresponding joint space plots:

Here is how the manipulator will move:

Fanuc Kinematics
python fanuc_kinematics.py
If you want to see how to use Fanuc165F forward and inverse kinematics calculation.
Check out robots/FANUC165F.md for the solution description:

Fanuc Jacobians
python fanuc_jacobians.py
If you want to see how to calculate Fanuc165F Jacobian matrix using Scew theory and numerical matrix differentiation methods. The singularity analysis is also presented.
Check out docs/FanucJacobians.md for the solution description:

Fanuc Calibration
python fanuc_calibration.py
If you want to see how it is possible to calibrate a robotic manipulator.
Check out docs/GeometricCalibration.md for the solution description
Before
Distance RMS (mm): 13.154
Max Distance diff (mm): 18.49
After
Distance RMS (mm): 0.531
Max Distance diff (mm): 1.32
Jacobian Calculation
python jacobian_calculation.py
If you want to see how to use the JacobianCalculator class:

Symbolic Transformations
python symbolic_calculation.py
If you want to see how to use the SymbolicTransformation class:

Unit Tests
python -m unittest discover
If you want to run all unit tests:

