//////////////////////////////////////////////////////////////////////////
/// \author Gu Dingyi
///
/// \file README.md
///
/// \brief OpenRAVE-IKFAST-Generator
///
/// \version 1.0
///
/// \date Apr/03/2024
//////////////////////////////////////////////////////////////////////////
-
Getting Started with
OpenRAVE
environment. Guidance could be followed at Stéphane Caron's blog. -
Error may be frequently encountered during compile. Alternatively,
docker image
is recommended. -
Check personalrobotics/ros-openrave
sudo docker pull personalrobotics/ros-openrave:latest
-
Since the image is pre-built, no need to
docker build
withDockerfile
. Just run it. Mirror the/root/data
to your current workspace.sudo docker run -it --rm -v /home/dingyi/workspace/dingyi-code/side-project/openrave-test:/root/data --network host ada6b60e98b7 bash
-
Where image id
ada6b60e98b7
could be obtained usingsudo docker images
. -
Now go to
/root/data
in the docker image will direct to the same workspace. -
xml
file likeur5.robot.xml
represents the robot model. Useikfastpy
to generate theikfast solver
.python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=ur5.robot.xml --iktype=transform6d --baselink=0 --eelink=6 --savefile=ikfast61.cpp --maxcasedepth 1
-
It takes several minutes to generate the closed-form
ikfast solver
, which is acpp
file named by you. Thenikfast61.cpp
is shown in your workspace. -
Now you can
exit
the docker image. -
Compile the
ikfast solver
usinggcc
(need-llapack
).gcc -fPIC -lstdc -DIKFAST_NO_MAIN -DIKFAST_CLIBRARY -shared -Wl,-soname,libik.so -o libik.so ikfast61.cpp
-
libik.so
comes out in your workspace. -
Compile the executable demo for testing purpose.
g ikfastdemo.cpp -lstdc -llapack -o compute -lrt
-
Run
compute
for easy tests forfk
andik
.
./compute fk -3.0, -1.6, 1.6, -1.6, -1.6, 0.0
./compute ik 0.457016 0.172972 0.434512 -0.001461 0.755053 -0.655338 0.020595
-
Verify your results with the real robot.
-
For more information and to explore other interesting projects, please refer to the following research papers:
@phdthesis{diankov_thesis, author = "Rosen Diankov", title = "Automated Construction of Robotic Manipulation Programs", school = "Carnegie Mellon University, Robotics Institute", month = "August", year = "2010", number= "CMU-RI-TR-10-29", url={http://www.programmingvision.com/rosen_diankov_thesis.pdf}, }
@inproceedings{zeng2018learning, title={Learning synergies between pushing and grasping with self-supervised deep reinforcement learning}, author={Zeng, Andy and Song, Shuran and Welker, Stefan and Lee, Johnny and Rodriguez, Alberto and Funkhouser, Thomas}, booktitle={2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, pages={4238--4245}, year={2018}, organization={IEEE} }