FABRIK implementation for reptiles

Project Featured image
22 Oct 2023 Inverse Kinematics

FABRIK implementation for reptiles

 

As specified in the paper above regarding FABRIK, "FABRIK uses a forwardand backward iterative approach, finding each joint posi-tion via locating a point on line. FABRIK has been utilisedin highly complex systems with single and multiple tar-gets, with and without joint restrictions. It can easily han-dle end effector orientations and support, to the best of ourknowledge, all chain classes. A reliable method for incorpo-rating constraints is also presented and utilised within FABRIK"

 

📁 Current repository

This repository contains the:

  • Implementation of FABRIK for a lizard with 17 markers

Based on Andreas Aristidou's snake implementation, I converted the code to python and implemented a more complex than snake model, the lizard.

 

🎯 Goals

  • Parse a C3D file
  • Read the markers' values and fix missing values
  • Export fixed values as a new C3D file
  • We should be able to use the new file in order to apply a lizard model and export realistic animations

 

💻 Implementation

  • The lizard we would like to fix the values for has in general the following marker labels:
    • Lizard:Head
    • Lizard:Neck
    • Lizard:FrontRightLeg
    • Lizard:FrontRightFoot
    • Lizard:FrontLeftFoot
    • Lizard:FrontLeftLeg
    • Lizard:UpperBack or UpperBody
    • Lizard:LowerBack or LowerBody
    • Lizard:BackRightLeg
    • Lizard:BackRightFoot
    • Lizard:BackLeftLeg
    • Lizard:BackLeftFoot
    • Lizard:Tail0
    • Lizard:Tail1
    • Lizard:Tail2
    • Lizard:Tail3
    • Lizard:Tail4

 

Dependencies

  • Numpy
  • C3D server(python bindings)
  • Matplotlib

Other official modules

  • Math
  • Argparse
  • Os

Preview :  Link

Share with: