Giter Club home page Giter Club logo

sch-core's Introduction

sch-core

License/License: GPL v2 Build Status Build status Coverage Status Download

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

License

This library is provided under two licenses:

  • The GPL-v2 version is the most complete, it includes inter-penetration depth computation based on the SOLID code;
  • The BSD-2-Clause version does not include this algorithm;

Note: the two versions have the same API and ABI.

Installation

Ubuntu LTS (14.04, 16.04, 18.04): PPA

Note: the packaged version is the BSD-2-Clause library, if you require inter-penetration depth computation, you should build the library yourself

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

CMake options

  • BUILD_BSD: If ON, build the library without its GPL components (Default: OFF)

Indentation

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

sch-core's People

Contributors

mehdi-benallegue avatar jorisv avatar gergondet avatar francois-keith avatar aescande avatar ahundt avatar thomas-moulard avatar bchretien avatar fbleibel avatar jmirabel avatar barcode 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.