robot-locomotion / dwl

Licence: BSD-3-Clause license
The Dynamic Whole-body Locomotion library (DWL)

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects
shell
77523 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to dwl

IterativeLQR.jl
A Julia package for constrained iterative LQR (iLQR)
Stars: ✭ 15 (-78.57%)
Mutual labels:  motion-planning, trajectory-optimization
PnC
Planning and Control Algorithms for Robotics
Stars: ✭ 22 (-68.57%)
Mutual labels:  trajectory-optimization, whole-body-control
robot
Functions and classes for gradient-based robot motion planning, written in Ivy.
Stars: ✭ 29 (-58.57%)
Mutual labels:  motion-planning, trajectory-optimization
Pontryagin-Differentiable-Programming
A unified end-to-end learning and control framework that is able to learn a (neural) control objective function, dynamics equation, control policy, or/and optimal trajectory in a control system.
Stars: ✭ 111 (+58.57%)
Mutual labels:  motion-planning, trajectory-optimization
TORA.jl
Trajectory Optimization for Robot Arms
Stars: ✭ 27 (-61.43%)
Mutual labels:  motion-planning, trajectory-optimization
Cleanit
Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners. Under development.
Stars: ✭ 125 (+78.57%)
Mutual labels:  motion-planning
Rvo2 Cs
Optimal Reciprocal Collision Avoidance (C#)
Stars: ✭ 208 (+197.14%)
Mutual labels:  motion-planning
Pybullet Planning
PyBullet Planning
Stars: ✭ 89 (+27.14%)
Mutual labels:  motion-planning
Omplapp
The Open Motion Planning Library (OMPL), GUI + FCL/Assimp integration
Stars: ✭ 83 (+18.57%)
Mutual labels:  motion-planning
marltoolbox
A toolbox with the goal of speeding up research on bargaining in MARL (cooperation problems in MARL).
Stars: ✭ 25 (-64.29%)
Mutual labels:  toolbox
Pathfinder
Cross-Platform, Multi-Use Motion Profiling and Trajectory Generation
Stars: ✭ 227 (+224.29%)
Mutual labels:  motion-planning
Hybrid A Star Annotation
Hybrid A*路径规划器的代码注释
Stars: ✭ 188 (+168.57%)
Mutual labels:  motion-planning
Pick Place Robot
Object picking and stowing with a 6-DOF KUKA Robot using ROS
Stars: ✭ 126 (+80%)
Mutual labels:  motion-planning
Ur5 ros Gazebo
Universal Robot (UR5) Pick and Place Simulation in ROS-Gazebo with a USB Cam and Vacuum Grippers
Stars: ✭ 211 (+201.43%)
Mutual labels:  motion-planning
Rvo2 3d
Optimal Reciprocal Collision Avoidance in Three Dimensions (C++)
Stars: ✭ 108 (+54.29%)
Mutual labels:  motion-planning
azure-toolbox
A Docker container with Azure Resource Manager administration tools and a machine/deep learning stack
Stars: ✭ 18 (-74.29%)
Mutual labels:  toolbox
Owl
motion planning algorithms with demos for various state-spaces
Stars: ✭ 84 (+20%)
Mutual labels:  motion-planning
Xpp
Visualization of Motions for Legged Robots in ros-rviz
Stars: ✭ 177 (+152.86%)
Mutual labels:  motion-planning
Airsim Neurips2019 Drone Racing
Drone Racing @ NeurIPS 2019, built on Microsoft AirSim
Stars: ✭ 220 (+214.29%)
Mutual labels:  motion-planning
Gpmp2
Gaussian Process Motion Planner 2
Stars: ✭ 161 (+130%)
Mutual labels:  motion-planning

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].