0. IKFast 简介
对于求解机器人逆运动学,有数值解和解析解(封闭解)。像 OROCOS 中的KDL(Kinematics-Dynamics Library)库是数值解法,速度较慢(约1ms),一次只能求得一个解;而 IKFast 是解析解法,速度较快(约4μs),可以求得所有逆解,保证每次求解的一致性,并且能够自动生成优化的 C++ 代码。
IKFast: The Robot Kinematics Compiler
IKFast analytically solves robot inverse kinematics equations and generates optimized C++ files.
我们知道有两大机器人开源平台:OpenRAVE(Mujin公司)和 MoveIt!(Kinema Systems 公司),MoveIt! 我们应该很熟悉了,集成在 ROS 里了(括弧:当然还有其他的机器人开源平台,如前面提到的做底层控制的 OROCOS,MoveIt! 将 OROCOS 中 KDL 作为默认的运动学求解器)。 IKFast 是 OpenRAVE 库中的一个算法模块,同时也被 MoveIt! 所支持,具体原理和介绍参考 Rosen Diankov 博士论文和 OpenRAVE 官网。
- Rosen Diankov 博士论文:Automated Construction of Robotic Manipulation Programs
- ikfast Module 官方文档
1. OpenRAVE 源码编译安装
参考:Installing OpenRAVE on Ubuntu 16.04
- 安装依赖
sudo apt-get install cmake g++ git ipython minizip python-dev python-h5py
python-numpy python-scipy python-sympy qt4-dev-tools
sudo apt-get install libassimp-dev libavcodec-dev libavformat-dev libavformat-dev
libboost-all-dev libboost-date-time-dev libbullet-dev libfaac-dev libglew-dev
libgsm1-dev