Giter Club home page Giter Club logo

ikfast-generator's Introduction

OpenRAVE-IKFAST-Generator

//////////////////////////////////////////////////////////////////////////
///  \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.

    Docker setup

  • Check personalrobotics/ros-openrave

    sudo docker pull personalrobotics/ros-openrave:latest
  • Since the image is pre-built, no need to docker build with Dockerfile. 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 using sudo docker images.

    Closed-form solver generation

  • Now go to /root/data in the docker image will direct to the same workspace.

  • xmlfile like ur5.robot.xml represents the robot model. Use ikfastpy to generate the ikfast 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 a cpp file named by you. Then ikfast61.cpp is shown in your workspace.

  • Now you can exit the docker image.

    Test the solver

  • Compile the ikfast solver using gcc(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 for fk and ik.

./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.

    Reference

  • 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}
    }

ikfast-generator's People

Contributors

gu002913 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.