BioIK Asset for Unity3D
Download
The source code for this project in Unity3D can be obtained via the asset store: https://assetstore.unity.com/packages/tools/animation/bio-ik-67819
Video
https://www.youtube.com/watch?v=ik45v4WRZKI
Description
This project was started as part of my M.Sc. thesis, and later continued as a research associate at the University of Hamburg. The algorithm solves the inverse kinematics problem on generic kinematic geometries by means of memetic evolutionary computation - combining genetic algorithms, particle swarm optimisation and the L-BFGS-B algorithm for nonlinear gradient-based optimisation. For information, see the graph below.
The following pictures demonstrate the performance of the algorithm in application scenarious on different robot and character geometries. The typical optimisation time for randomly sampled and reachable joint configurations is between 1-10ms, which is significantly faster than related evolutionary methods, along with higher robustness and scalability than pure gradient-based techniques. The method can solve multiple kinematic chains simultaneously, and fully incorporates joint limits and rotational as well as translational joint types. Concurrently, collision-avoidance and functional couplings between joints as well as some other goals can be considered via adding predefined objectives as terms for the global cost function. The software and optimisation design allows adding further objectives for custom tasks quite easily.
The table below shows the resulting performance values compared to related methods for numerical IK.
The research was published at several scientific conferences, including IEEE ROBIO 2016, IEEE CEC 2017 and IEEE IROS 2017, so I would be glad if you reference it in case of using it for academic work.
For any questions you might have or bugs you find, feel free to contact me! I am happy to help and to improve the software as part of my Ph.D. research at the University of Edinburgh.