Humanoid Path Planner: Humanoid Path Planner Documentation

Humanoid Path Planner 9.0.2 Documentation for HPP

Humanoid Path Planner Documentation

Introduction

HPP (Humanoid Path Planner) is a collection of software packages implementing manipulation planning functionalities for diverse types of robots, including humanoid robot.

Installation

Installation instructions can be found on github.

Overview of the architecture

The software is composed of C++ libraries implementing the algorithms. Python bindings built on boost python are provided to help user easily define and solve problems. Visualization of the scene if done in a web browser using viser.

|  | The algorithmic part, built on hpp-manipulation is embedded in several python modules by `hpp-python` From a python script, users can define scenes containing robots and environments, they can also define and solve motion planning problems. Results of path planning requests as well as individual configurations can be displayed in a web browser via package hpp-gepetto-viewer.

Overview of the old architecture

We describe here the former architecture that is deprecated, but still in use in some projects.

The packages are distributed into the following categories:

- Algorithms implementing path planning functionalities
- Graphical user interface to display configurations and paths.

|  | The algorithmic part, built on hpp-core is embedded in corba servers implemented by or extensions like The corba servers are linked to executable `hppcorbaserver`. From a python terminal, clients to the corba servers can be created in order to control the executable. Results of path planning requests as well as individual configurations can be displayed in `gepetto-gui` via package hpp-gepetto-viewer.

Getting started

Package hpp_tutorial provides some examples of how to use this project.

# Algorithms

## Technical tools

- hpp_doc_missing_hpp-util: technical tools for the HPP project (logging, benchmark, quality assurance tools),
- hpp_doc_missing_hpp-statistics: various tools to make statistics on motion planning algorithms,

## Motion planning

Kinematic chain with geometry
  - hpp_doc_missing_coal: Modified version of Flexible collision library, for collision detection and distance computation,
  - hpp_doc_missing_pinocchio: implementation of kinematic chain with dynamic computations,
  - hpp_doc_missing_hpp-pinocchio: Interface between pinocchio and hpp-core,

Non linear constraints
  - hpp_doc_missing_hpp-constraints: definition of some nonlinear constraints,

Path planning
  - hpp_doc_missing_hpp-core: definition of basic classes, path planning problems and solvers,

Manipulation Planning
  - hpp_doc_missing_hpp-manipulation: Manipulation planning
  - hpp_doc_missing_hpp-manipulation-urdf: SRDF parser for Manipulation planning (handles, grippers, contact surfaces)

Python bindings
  - hpp_doc_missing_hpp-python: Python bindings built on boost::python.

## Trajectory execution

- hpp_doc_missing_hpp-exec: ROS2 execution utilities to send HPP-generated paths to `ros2_control`. It documents how paths are converted to `JointTrajectory` messages and how segment pre/post actions coordinate grippers during manipulation.