1. Install 3 ros2 packages. collada_parser, collada_urdf, urdf_parser_plugin.
Convert urdf file to dae file.
ros2 run collada_urdf urdf_to_collada ${URDF_FILE_NAME}.urdf ${URDF_FILE_NAME}.dae
2. Install OpenRAVE following this.
Generate IK cpp file from .dae file.
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=${URDF_FILE_NAME}.dae --iktype=translation3d --baselink=0 --eelink=4 --savefile=ikfast_${URDF_FILE_NAME}.cpp
3. Copy the "ikfast.h" file to current directory. Then build and generate corresponding executable file and shared library.
cp /usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.h .
g++ ikfast_${URDF_FILE_NAME}.cpp -o ikfast_${URDF_FILE_NAME} -llapack -std=c++11
g++ -fPIC -lstdc++ -DIKFAST_NO_MAIN -DIKFAST_CLIBRARY -shared -Wl,-soname,ikfast_${URDF_FILE_NAME}.so -o ikfast_${URDF_FILE_NAME}.so ikfast_${URDF_FILE_NAME}}.cpp
4. Test...
for end position (X, Y, Z):
./ikfast_${URDF_FILE_NAME} 0 0 0 X 0 0 0 Y 0 0 0 Z