Giter Site home page Giter Site logo

kaviyachandran / giskardpy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from semroco/giskardpy

0.0 1.0 0.0 7.61 MB

The core python library of the Giskard framework for constraint- and optimization-based robot motion control.

License: GNU Lesser General Public License v3.0

CMake 0.48% Python 99.45% Shell 0.07%

giskardpy's Introduction

Giskard(py)

Giskard is an open source motion planning framework for ROS, which uses constraint and optimization based task space control to generate trajectories for the whole body of mobile manipulators.

Installation instructions for Ubuntu 20.04 + Noetic

ROS Workspace

source /opt/ros/noetic/setup.bash           # source ROS
mkdir -p ~/giskardpy_ws/src                 # create directory for workspace
cd ~/giskardpy_ws                           # go to workspace directory
catkin init                                 # init workspace, you might have to pip install catkin-tools
cd src                                      # go to source directory of workspace
wstool init                                 # init rosinstall
wstool merge https://raw.githubusercontent.com/SemRoCo/giskardpy/master/rosinstall/noetic.rosinstall
                                            # update rosinstall file
wstool update                               # pull source repositories
rosdep install --ignore-src --from-paths .  # install dependencies available through apt
pip3 install -r giskardpy/requirements.txt  # install python deps
cd ..                                       # go to workspace directory
catkin build                                # build packages
source ~/giskardpy_ws/devel/setup.bash      # source new overlay

Custom Bullet Bindings

Giskard uses Adrian Röfer's bullet bindings instead of the official ones, as they are much faster for our use case. Install them like this:

mkdir -p ~/libs && cd ~/libs                # choose a place where you want to build pybullet
git clone https://github.com/SemRoCo/bullet3.git
cd bullet3                                  # be sure to be in the bullet3 folder
./build_better_pybullet.sh                  # this script will also clone and build pybind11 into libs
source ~/.bashrc                            # the script adds a python path modification to your bashrc

To test your installation do:

$ python3
Python 3.8.10 (default, Nov 14 2022, 12:59:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import betterpybullet
>>>

If it doesn't work, make sure that your $PYTHONPATH includes something like /path/to/your/bullet3/build_cmake/better_python:/path/to/your/bullet3/examples/pybullet.

Alternative QP solvers

Giskard supports multiple QP solvers and will automatically use the fasted installed solver. The default is qpalm, as it is the easiest to install.

You may want to install qpSWIFT manually. It is faster than qpalm up until ~600 constraints after which qpalm becomes faster. For reference, using the default setup, the PR2 usually requires 300-500 constraints for most goals. To install qpSWIFT, follow the instructions on their github page: https://github.com/qpSWIFT/qpSWIFT.

Giskard also supports two additional solvers, which are slower than qpalm, sorted by how fast they are for Giskard's usecase:

Tutorials

https://github.com/SemRoCo/giskardpy/wiki

How to cite

Stelter, Simon, Georg Bartels, and Michael Beetz. "An open-source motion planning framework for mobile manipulators using constraint-based task space control with linear MPC." 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2022.

giskardpy's People

Contributors

ichumuh avatar tlipps avatar j-schaefer avatar airballking avatar aroefer avatar cl200008 avatar uni-bremen-iai avatar rhaschke avatar dreher98 avatar marc-404 avatar sunava avatar artnie avatar weihe14 avatar

Watchers

James Cloos 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.