Coder Social home page Coder Social logo

ezhangle / dwl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robot-locomotion/dwl

0.0 2.0 0.0 2.06 MB

The Dynamic Whole-body Locomotion library (DWL)

License: BSD 3-Clause "New" or "Revised" License

CMake 4.34% C++ 80.62% Python 0.41% C 10.63% Shell 4.00%

dwl's Introduction

The Dynamic Whole-body Locomotion library (DWL)

Introduction

The Dynamic Whole-body Locomotion library (DWL) implements a set of functionalities to develop, design, and deploy motion planning, control and perception algorithms for legged locomotion. DWL has different modules such as: kinematics, dynamics, solvers (tree-search, optimization, etc), and environment descriptions. All these tools are designed for both fast prototyping and deployment thanks to its c++ implementation and Python bindings. The DWL toolbox can be used in various software frameworks such as ROS and LCM, and for real-time control and planning.

DWL was developed by Carlos Mastalli at Dynamic Legged Systems lab (DLS), Istituto Italiano di Tecnologia, Italy. The DWL is core toolbox used along of various software of the DLS lab at IIT.

The source code is released under a BSD 3-Clause license.

Author: Carlos Mastalli, [email protected]
With support from the Dynamic Legged Systems lab at Istituto Italiano di Tecnologia

License BSD-3-Clause Build Status

Dependencies

The algorithms are built primarily in C++. The library uses a number of the local dependencies, which some of them are optionals. The Python bindings are generated using SWIG, you can generate them by setting DWL_WITH_PYTHON=True.

DWL has the following required dependencies:

The following dependencies are optional:

Building

To build DWL from source code, you first need to install its dependencies. We recommend you to install them using the install_deps.sh script. The INSTALL_DEPS_PREFIX defines the folder where is installed its dependencies (usually /usr/local for linux machines). However you can install them in your local folder.

Once dependencies are installed, you can build DWL on Linux. Go to the top-level directory of DWL and type the following commands:

mkdir -p build/Release
cd build/Release
cmake -DCMAKE_INSTALL_PREFIX=${/your/dependencies/path} -DINSTALL_DEPS_PREFIX=${/dwl/installation/path}  ../../

Note that /usr/local is the default path of ${/your/dependencies/path} and ${/dwl/installation/path}.

Additionally you could installed as catkin project as follows:

cd your_ros_workspace/
catkin_make -DCMAKE_INSTALL_PREFIX=${/dwl/installation/path} -DINSTALL_DEPS_PREFIX=${/your/dependencies/path}

Finally you can generate the Python bindings and Doxygen documentation by doing:

cmake -DDWL_WITH_PYTHON=True -DDWL_WITH_DOC=True ../

Installation

If you compilate DWL as CMake project, you can install it using "make install". Additionally DWL has a optional command for installing only the Python modules, i.e. "make install_python". Note that all the DWL header files, libraries, executatables and CMake module file will be installed in CMAKE_INSTALL_PREFIX

HowTo

Using DWL, and its dependencies, is simple for both c++ and Python code. For c++ code, you just have to add in your CMakeLists file the follows:

// Find DWL, this operation will defined the following variables:
//  - dwl_LIBRARIES: the list of libraries to link against
//  - dwl_LIBRARY_DIRS: The directory where the lib files are
//  - dwl_INCLUDE_DIRS: The list of include directories
find(dwl REQUIRED) //for CMake project
find_package(catkin REQUIRED dwl) //for Catkin project
include_directories(${dwl_INCLUDE_DIRS}
target_link_libraries(your_library  S{dwl_LIBRARIES})

If you want to use the dwl Python module, you have to install it (see installation instructions) and adding your installation path in PYTHONPATH (e.g. "export PYTHONPATH=${PYTHONPATH}:${/dwl/installation/path}:")

For more information you could check our sample code list (c++ and Python) inside "sample" folder.

Publications

dwl's People

Contributors

cmastalli avatar felipepolido avatar mappo23 avatar dlsuser avatar r3hman avatar

Watchers

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