Blog #3 — Inverse Kinematics
- asmartiba4
- Mar 1, 2024
- 2 min read

In this blog, I'm exploring the mechanics of the robotic arm's piston links. To correctly define them in kinematics, a chain must include a target, an effector, and links with quaternion values. Understanding these elements is crucial for accurate movement and simulation.
grapL = skeleton.bones[6].rotation;
pistonTargetL = skeleton.bones[7].rotation;
grapL.x = rotationX * 0.5;
pistonTargetL.x = -grapL.x;

Visualising Kinematics: Target and Effector
I created this blueprint to visualize the piston's movement. Using Blender, I implemented inverse kinematics (IK) and constraints, incorporating quaternions for animated rotations linked to the mesh. This visualization helps in understanding the movement mechanics better.
Conclusions:
Manually linking the movement provided some insights, but it wasn't as precise as I hoped. I realized that to achieve more accuracy, I might need to explore other libraries or a different URDF robot model that has kinematics in a format compatible with JavaScript. This project is a work in progress, and I’m learning a lot about the intricacies of robotic kinematics.
Challenges:
One of the main challenges I faced was linking the base and piston using inverse kinematics. The piston moves correctly, but integrating the exported values from Blender into the ThreeJS IK library has been problematic. The values exported from Blender with Python aren't directly addressable by the ThreeJS IK library, adding another layer of complexity to the project.Personally, I found this part of the project quite challenging yet rewarding. It pushed me to deepen my understanding of kinematics and experiment with different tools and approaches. While it’s been a tough journey, each obstacle has provided valuable learning experiences, reinforcing my problem-solving skills and adaptability.