This page describes how to use the ikfast inverse kinematics module from openrave system.
From the openrave web site, "OpenRAVE? provides an environment for testing, developing, and deploying motion planning algorithms in real-world robotics applications." For linuxcnc, we are using the ikfast module to create the IK component, and the qtcoin display application to show the robot model.
A modified version of the openrave source is available here, https://github.com/ftkalcevic/openrave
, in the "linuxcnc_gen_c" branch. See the openrave web site for details of the build dependencies, and how to build and install the package. (http://www.openrave.org/docs/latest_stable/coreapihtml/installation_linux.html
The modified version adds a c code generator that works with linuxcnc. Use the --outputlang=c to create the c code.
The ikfast updates to linuxcnc can be found here, https://github.com/ftkalcevic/LinuxCNC, in the "ikfast" branch. There is a new src/emc/kinematics/ikfastkins.c module that uses the ikfast generated code. There is also some example configurations in configs/ikfast-demo directory.
Building a robot model
openrave supports multiple file formats to describe the robot, http://www.openrave.org/docs/latest_stable/robots_overview/
. The openrave xml is a simple format that allows models to be generated quickly. The COLLADA format allows you to generate more realistic looking robots.
Simple robot defined using openrave xml
same simple robot, but defined using collada file
Barret Wam 7DoF? robot