Giter VIP home page Giter VIP logo

sch-core's Introduction

sch-core

Build Status Coverage Status

Documentation

Efficient implementation of GJK algorithm for proximity queries (collision detection, distance computations, penetration depths and witness points) between convex shapes.

The library can be extended to any convex shape for which we can compute the support function, but it already supports polyhedrons, boxes, spheres and ellipsoids, and it is particularly optimized for strictly convex hulls (SCH/STP-BV).

The implementation is detailed in:

@INPROCEEDINGS{benallegue:icra:2009,
  author={Benallegue, M. and Escande, A. and Miossec, S. and Kheddar, A.},
  booktitle={Robotics and Automation, 2009. ICRA '09. IEEE International Conference on},
  title={Fast C1 proximity queries using support mapping of sphere-torus-patches bounding volumes},
  year={2009},
  month={May},
  pages={483-488},
  keywords={Application software;Assembly;Clouds;Computer graphics;Robotics and automation;Robots;Shape;Target tracking;Testing;Trajectory},
  doi={10.1109/ROBOT.2009.5152722},
  ISSN={1050-4729},
}

And a description of strictly convext hulls is detailed in:

@article{escande:itro:2014,
  author = {Adrien Escande and Sylvain Miossec and Mehdi Benallegue and Abderrahmane Kheddar},
  title = {A Strictly Convex Hull for Computing Proximity Distances with Continuous Gradients},
  journal={Robotics, IEEE Transactions on}, 
  year = {2014},
  month={June}, 
  volume={30}, 
  number={3}, 
  pages={666-678}, 
  keywords={Collision avoidance;Convergence;Optimization;Planning;Robots;Shape;Vectors;Bounding volume;continuous gradients of proximity distances;smooth and nonsmooth optimization;sphere-torus patches;strictly convex hulls}, 
  doi={10.1109/TRO.2013.2296332}, 
  ISSN={1552-3098},
  url = {https://sites.google.com/site/adrienescandehomepage/publications/2014_ITRO_Escande.pdf}
}

Installation

Ubuntu 14.04 and 16.04 binary ppa install

Use the multi-contact-unstable ppa:

sudo add-apt-repository ppa:pierre-gergondet+ppa/multi-contact-unstable
sudo apt-get update
sudo apt-get install libsch-core-dev libsch-core-doc

Homebrew OS X install

Install from the command line using Homebrew:

# install homebrew package manager
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# install caskroom application manager
brew install caskroom/cask/brew-cask
# tap homebrew-science package repository
brew tap homebrew/science
# tap ahundt-robotics repository
brew tap ahundt/robotics
# install tasks and all its dependencies
brew install sch-core

Manually build from source

Building using cmake:

git clone https://github.com/jrl-umi3218/sch-core.git --recursive
mkdir -p sch-core/build
cd sch-core/build
cmake .. # you probably want to define `CMAKE_INSTALL_PREFIX`
make
sudo make install

Indentation

astyle --style=allman --lineend=linux --indent=spaces=2 --indent-namespaces

sch-core's People

Contributors

aescande avatar ahundt avatar bchretien avatar fbleibel avatar francois-keith avatar gergondet avatar jorisv avatar mehdi-benallegue avatar thomas-moulard avatar

Watchers

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