Code Monkey home page Code Monkey logo

metapod's Introduction

metapod

Build Status Coverage Status

This software provides robot dynamics algorithms. It uses a combination of a specific representation of robot models and C++ templates, such that each algorithm remains model-independant, yet is optimized for a particular robot at compile-time. It makes use of R. Featherstone's Spatial Algebra to describe forces, motions and inertias (cf. Rigid Body Dynamics Algorithms, Roy Featherstone).

Content

  • include/metapod/spatial: header-only spatial algebra library.

  • include/metapod: header-only library of robot dynamics algorithms. Algorithms consist of the combination of compile-time traversal algorithms and visitors. They can be applied to a robot model which is a class with a specific structure.

  • robotbuilder: a library to help generating the source code of robot model classes.

  • embedfile: an utility executable used to embed templates in the robotbuilder library.

  • metapodfromurdf: an utility executable based on robotbuilder and liburdf which generates the the source code of robot model classes from an URDF description.

  • binarytreemodel: an utility executable based on robotbuilder which generates the source code of robot model classes with a binary kinematic tree. Those models are named sample_[1-4]and are used for benckmarks.

  • data: URDF definition of the simple_arm and simple_humanoid models which are used for examples, tests and benchmarks.

  • tests: some tests for metapod and metapod::Spatial

  • timer: a portable timer library used for the benchmarks.

  • benchmark: some benchmarks

  • doc: some doc.

Dependencies

The package depends on several packages which have to be available on your machine.

  • System tools:
    • CMake (>=2.6)
    • pkg-config
    • usual compilation tools (GCC/G++, make, etc.)
  • Libraries:
    • Eigen (>=3.0.0)
    • Boost (>=1.40.0) Boost Test is used in the test suite
    • optionally, liburdfdom or liburdf (as provided by ROS)

Setup

To compile this package, it is recommended to create a separate build directory:

mkdir _build
cd _build
cmake -DBUILD_METAPODFROMURDF=OFF ..
make install

Please note that CMake produces a CMakeCache.txt file which should be deleted to reconfigure a package from scratch.

In order to build the urdf converter, you'll need to install liburdfdom or liburdf. There are several options:

  • Install urdfdom alone

    git clone git://github.com/ros/console_bridge.git && cd console_bridge
    git checkout 0.1.5
    mkdir build && cd build
    cmake ..
    make
    sudo make install
    
    git clone git://github.com/ros/urdfdom_headers && cd urdfdom_headers
    git checkout 0.2.2
    mkdir build && cd build
    cmake ..
    make
    sudo make install
    
    git clone git://github.com/ros/urdfdom && cd urdfdom
    git checkout 0.2.7
    mkdir build && cd build
    cmake ..
    make
    sudo make install
    
  • Or install ROS groovy using the ubuntu packages and just do

    source /opt/ros/groovy/setup.bash
    

    before running cmake.

  • Or install ROS fuerte using the ubuntu packages and just do

    source /opt/ros/fuerte/setup.bash
    

    before running cmake.

Documentation

Development branch documentation is available online.

Known Bugs

  • Benchmark times different with different combination of outer and inner loop.

Please do not use benchmark/benchmark to make performances comparisons. The programs benchmark/benchmark_metapod_simple_humanoid_CRBA and benchmark/benchmark_metapod_simple_humanoid_RNEA are more coherent.

  • NP is mandatory

Benjamin Chretien pointed out that a dummy root link is necessary as a Galilean Frame for the urdf file parser of metapod.

metapod's People

Contributors

aelkhour avatar maxime-reis 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.