Git Product home page Git Product logo

amp's Introduction

Articulated-robot Motion Planner Library

Amp provides a user-friendly API for loading robot models and generating robot joint and Tool Center Point (TCP) trajectories for point-to-point motion planning problems. Amp provides standalone trajectory parameterization and global search algorithms. Robot kinematic and dynamic algorithms are not a part of the library, but can be loaded at run-time allowing the user flexibility to suit their needs. The library includes general modules for:

  • Robot trajectory and state representation
  • Trajectory parameterization with general BSplines
    • Supports linear fitting
    • Supports quadratic minimization,
  • Interface to various robot kinematics and dynamics libraries:
  • Forward and Inverse kinematics trajectory generation
    • Where IK solutions are computed numerically
  • Sampling-based motion planning (RRT, RRT*)
    • Using a simple list-based tree structure and kd-tree nearest-neighbor search: https://github.com/jtsiomb/kdtree
    • In any Tool Center Point (TCP) space
    • In the robot's joint space
    • With bound constraints on states and inputs,
    • and collision constraints using the Bullet Collision Library http://bulletphysics.org

The code is developed by Samantha Stoneman [email protected] and Roberto Lampariello [email protected] at the Institue of Robotics and Mechatronics http://www.dlr.de/rmc/rm/en at the German Aerospace Center.

Installation

Dependencies

Amp requires at least C++11 and is dependent on several other open-source libraries. The required dependencies are:

And the optional dependencies:

Amp will try to find the depencies using the native CMake find_package() tool as well as with the PkgConfig module. Valid paths to the required dependencies and the desired optional ones should be set in the CMAKE_PREFIX_PATH. Static versions of the kdtree and EigenQuadProg (header only) are also provided in the contrib dir.

Quick Installation

Amp is built using CMake. From the package root directory, the simplest way to build amp using the default build options.

mkdir build
cd build && cmake ../ 
make 
make install

This will install the amp shared objects and binaries in lib and bin directories directly in the package root directory.

Detailed Installation

Amp comes with several build options which affect what is built and how. The standard cmake variable CMAKE_INSTALL_PREFIX allows changing the location of the install dirs lib, bin, and incude. Amp can be built in Debug, RelWithDebInfo or full Release mode with CMAKE_BUILD_TYPE.

All of the unique amp build options are detailed in the root CMakeLists.txt. The most important of which are the options which turn on and off compilation of code sections:

  • DEBUG - allows computations which are not strictly necessary e.g. matrix determinants
  • VERBOSE - streams verbose output to std::cerr during runtime
  • LOG_ALL_DATA - writes intermediate data to files during runtime

The default is always OFF, setting these options to ON will greatly affect computation time, but can be helpful for debugging purposes.

Recent Changes

Performance

The inverse kinematics -based RRT algorithm was tested on a difficult point-to-point TCP motion which could not be solved in one trajectory. The following table shows the performance results for several parameter settings. This benchmark problem is described in more detail in the Examples section.

Examples

A sequence of examples are provided, increasing in complexity to demonstrate the usage of the library.

  • A simple example for loading a robot model and environment from a .urdf file(s) and accessing model data members using the C++ API.
  • An example demonstrating the inverse kinematics- based trajectory generation.
  • An example demonstrating the use of the rrt planner module in a robot TCP space.

License

The library is published under the GNU Lesser General Public License (LGPL). Here is the full license text:

Amp - Articulated-robot Motion Planner library. Copyright 2017 Samantha Stoneman Research Associate, German Aerospace Center (DLR)

Amp is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Amp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Amp. If not, see http://www.gnu.org/licenses/.

amp's People

Contributors

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