This repository has not been under active development for many years and was a part of my work at the department of engineering cybernetics at NTNU in 2019. The repository has therefore been archived.
CasADi-based closed-loop inverse kinematics.
This is a library for rapid prototyping of constraint-based, task-priority closed-loop inverse kinematics. In essence this means you feed it an arbitrary expression with robot variables, inputs, virtual variables, and the controllers try to give you exponential convergence to the desired expression. It supports controller such as the singularity-robust multiple task-priority set-based approach [1], and reactive QP approach (eTaSL/eTC) [2]. It is a prototyping library meant for comparing overall strategies, and although capable of running quite fast, is not the best solution for real-time or finalized industrial applications. It conceptually borrows the architecture from the eTaSL software, and we suggest that users use that for more industrial and real-time sensitive implementations.
[1]: Moe et al., Set-Based Tasks within the Singularity-Robust Multiple Task-Priority Inverse Kinematics Framework: General Formulation, Stability Analysis, and Experimental Results, 2016
[2]: Aertbeliën and De Schutter, eTaSL/eTC: A constraint-based task specification language and robot controller using expression graphs, 2014
CASCLIK: CasADi-Based Closed-Loop Inverse Kinematics
This software requires CasADi and by default it uses the "shell compiler" method of compiling the solvers and functions. Make sure that CasADi works with all the example code, and is capable of compiling code and functions.
- Install pip
- run
pip install --user .
in this folder. - Try importing casclik somewhere
Check the examples folder. It currently only contains jupyter notebook examples.
Python module for automatically generating CasADi functions of forward kinematics, either as transformation matrices or as dual quaternions. It also supports Denavit-Hartenberg parameters. Link: urdf2casadi.
This is a ROS metapackage with example integration of CASCLIK into ROS. The casclik_basics
package contains a robot interface for sending joint position commands to the robot. But check out casclik_tests
first. Link: casclik_examples.