Trac-IK is an Inverse Kinematics library developed by TracLabs. It is based on KDL library and implements a faster alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL. Two algorithms are proposed:
- An extension to the KDL's Newton-based convergence algorithm, which detects and mitigates local minima due to joint limits by random jumps.
- A SQP (Sequential Quadratic Programming) nonlinear optimization approach, which uses quasi-Newton methods that better handle joint limits.
The original implementation of Trac-IK is tightly linked with the ROS (Robotic Operating System) and do not allow an easy installation outside that environment.
This repo adapts the current trac_ik_lib package to become a standlone library stripping down dependencies with ROS.
Install dependencies with:
sudo apt-get update && sudo apt-get install -y libeigen3-dev cmake g++ gcc libboost-all-dev libnlopt-dev \
libnlopt-cxx-dev liborocos-kdl-dev libtinyxml2-dev curl gnupg2 \
liburdfdom-dev liburdfdom-headers-dev libconsole-bridge-dev git
Install kdl_parser library as follow:
git clone https://github.com/pardi/kdl_parser.git
mkdir -p kdl_parser/kdl_parser/build && cd setup_dep/kdl_parser/kdl_parser/build && cmake .. && make && make install
N.B. The above library is a fork of the original kdl_parser
that fixes an installation issue when ROS is not involved.
git clone https://github.com/pardi/trac_ik_lib_standalone.git
mkdir -p trac_ik_lib_standalone/build
make -DCMAKE_BUILD_TYPE=[Debug | Release]
sudo make install
OS | Version | Tested |
---|---|---|
Ubuntu | 22.04 | ✅ |
MAC (M1) | Monterey | ✅ |
- Tag the first version of the standalone library
- Set up testing with different robots
- Improve error-handling