RoboticManipulators
RoboticManipulators copied to clipboard
Calculation of forward and inverse kinematics, Jacobian matrices, dynamic modeling, trajectory planning and geometric calibration for robotic manipulators
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.md
files -
utils
- Several useful utils likeSymbolicTransformation
orTrajectoryGenerator
that can help with matrix multiplication, planning and other Robotics-related stuff -
docs
- Folder with some theory-
Dynamics.md
- Review of dynamic modeling of robotics manipulators -
FanucJacobians.md
- Review of Jacobian calculation on the example of Fanuc manipulator -
GeometricCalibration.md
- Review of geometric parameter calibration on the example of Fanuc manipulator -
TrajectoryPlanning.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: