Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Pinocchio | 1,073 | 8 | 6 | 5 days ago | 5 | November 16, 2021 | 27 | other | C++ | |
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives | ||||||||||
Rigidbodydynamics.jl | 254 | a day ago | 30 | other | Julia | |||||
Julia implementation of various rigid body dynamics and kinematics algorithms | ||||||||||
Caliko | 120 | 3 years ago | 5 | mit | Java | |||||
The Caliko library is an implementation of the FABRIK inverse kinematics algorithm in Java. | ||||||||||
Everything Will Be Ik | 29 | 2 years ago | 4 | mit | HTML | |||||
A Robust Inverse Kinematics Library | ||||||||||
Risc Handbook | 22 | 9 days ago | 2 | mit | ||||||
This handbook has been compiled to help beginners in the field of robotics | ||||||||||
Urdf2casadi Matlab | 20 | 4 months ago | 4 | mit | MATLAB | |||||
Inverse Kinematics | 10 | 5 years ago | mit | C# | ||||||
During a research project, I came up with a pretty interesting algorithm for solving Inverse Kinematics problems iteratively. Check out the video! | ||||||||||
Calikocat | 5 | a year ago | other | CMake | ||||||
A C++ implementation of the FABRIK inverse kinematics algorithm, based on Caliko. | ||||||||||
Zrobotics | 5 | 8 months ago | mit | Python | ||||||
A powerful library for robotics analysis 🤖 | ||||||||||
Fabrik Single Target | 4 | 7 years ago | C | |||||||
A C/SDL Inverse Kinematics demo. |
This was an assignment for one of my courses during my studies; implementing an IK solver. I took it a few steps further and implemented some physics and a Phong-shader.
I implemented a simple 3D environment with some basic physics (a simple symplectic Euler solver with a sphere vs. axis-aligned bounding box a posteriori collision solver) to demonstrate the algorithm. The video below is a recording of the demo (clone this repository to build it yourself).
git clone https://github.com/philiparvidsson/Inverse-Kinematics
cd Inverse-Kinematics
make
make run
I came up with a pretty simple algorithm for the IK system during the assignment:
n ← number of bones
for i from n-1 to 0
a ← vector from end of segment to beginning of segment
b ← vector from target to beginning of segment
if length of b < length of a then
increase compensating angle for bone i by some amount
relax compensating angle for bone i by some factor
r ← 0
f ← 1
for j from i to n-1
r ← r + f * compensating angle of bone j
f ← f + 1
rotate bone j around axis (a x b) by some amount minus r
Although it is based on classic IK solutions (rotating each bone towards the target iteratively), the concept of compensating angles helps it "back away" to reach nearby (closer to the root point than the length of the sum of all bones in the chain) targets while displaying relatively stable motor skills.