Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight...

57
Introduction Description of the software Manipulation planning Humanoid Path Planner Florent Lamiraux CNRS-LAAS, Toulouse, France HPP

Transcript of Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight...

Page 1: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Humanoid Path Planner

Florent Lamiraux

CNRS-LAAS, Toulouse, France

HPP

Page 2: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Humanoid Path Planner

Introduction

Description of the software

Manipulation planning

HPP

Page 3: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Outline

Introduction

Description of the software

Manipulation planning

HPP

Page 4: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Path Planning

GivenI A robot (kinematic chain),I obstacles,I constraints,I an initial configuration andI goal configurations,

Compute a collision-free path satisfying the constraints fromthe initial configuration to a goal configuration.

HPP

Page 5: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Path Planning

GivenI A robot (kinematic chain),I obstacles,I constraints,I an initial configuration andI goal configurations,

Compute a collision-free path satisfying the constraints fromthe initial configuration to a goal configuration.

HPP

Page 6: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Path Planning

GivenI A robot (kinematic chain),I obstacles,I constraints,I an initial configuration andI goal configurations,

Compute a collision-free path satisfying the constraints fromthe initial configuration to a goal configuration.

HPP

Page 7: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Path Planning

GivenI A robot (kinematic chain),I obstacles,I constraints,I an initial configuration andI goal configurations,

Compute a collision-free path satisfying the constraints fromthe initial configuration to a goal configuration.

HPP

Page 8: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Path Planning

GivenI A robot (kinematic chain),I obstacles,I constraints,I an initial configuration andI goal configurations,

Compute a collision-free path satisfying the constraints fromthe initial configuration to a goal configuration.

HPP

Page 9: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Historical perspective

I 1998: Move3D,I 2001: Creation of Kineo-CAM, transfer of Move3D,I 2006: Release of KineoWorks-2, development of HPP

based on KineoWorks-2,I 2013: kineo-CAM is bought by Siemens,I December 2013: development of HPP open-source.

HPP

Page 10: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Historical perspective

I 1998: Move3D,I 2001: Creation of Kineo-CAM, transfer of Move3D,I 2006: Release of KineoWorks-2, development of HPP

based on KineoWorks-2,I 2013: kineo-CAM is bought by Siemens,I December 2013: development of HPP open-source.

HPP

Page 11: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Historical perspective

I 1998: Move3D,I 2001: Creation of Kineo-CAM, transfer of Move3D,I 2006: Release of KineoWorks-2, development of HPP

based on KineoWorks-2,I 2013: kineo-CAM is bought by Siemens,I December 2013: development of HPP open-source.

HPP

Page 12: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Historical perspective

I 1998: Move3D,I 2001: Creation of Kineo-CAM, transfer of Move3D,I 2006: Release of KineoWorks-2, development of HPP

based on KineoWorks-2,I 2013: kineo-CAM is bought by Siemens,I December 2013: development of HPP open-source.

HPP

Page 13: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Historical perspective

I 1998: Move3D,I 2001: Creation of Kineo-CAM, transfer of Move3D,I 2006: Release of KineoWorks-2, development of HPP

based on KineoWorks-2,I 2013: kineo-CAM is bought by Siemens,I December 2013: development of HPP open-source.

HPP

Page 14: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Outline

Introduction

Description of the software

Manipulation planning

HPP

Page 15: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Overview of the architecture

Modular: collection of packagesI package dependencies tracked by pkg-config,I installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,I programmed in C++,I controlled via python

HPP

Page 16: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Overview of the architecture

Modular: collection of packagesI package dependencies tracked by pkg-config,I installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,I programmed in C++,I controlled via python

HPP

Page 17: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Overview of the architecture

Modular: collection of packagesI package dependencies tracked by pkg-config,I installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,I programmed in C++,I controlled via python

HPP

Page 18: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Overview of the architecture

Modular: collection of packagesI package dependencies tracked by pkg-config,I installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,I programmed in C++,I controlled via python

HPP

Page 19: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Overview of the architecture

Modular: collection of packagesI package dependencies tracked by pkg-config,I installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,I programmed in C++,I controlled via python

HPP

Page 20: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Overview of the architecture

HPP

Page 21: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Software Development KitPackages implementing the core infrastructure

I Kinematic chain with geometryI hpp-model: implementation of kinematic chain with

geometry,I tree of joints (Rotation, Translation, SO3: unit-quaternions),I moving fcl::CollisionObjects,I forward kinematics,I joint Jacobians,I center of mass and Jacobian.

I Path planningI hpp-core: definition of basic classes,

I path planning problems,I path planning solvers (RRT),I constraints (locked dofs, numerical constraints)I path optimizers (random shortcut),I steering methods (straight interpolation)

HPP

Page 22: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Software Development KitPackages implementing the core infrastructure

I Kinematic chain with geometryI hpp-model: implementation of kinematic chain with

geometry,I tree of joints (Rotation, Translation, SO3: unit-quaternions),I moving fcl::CollisionObjects,I forward kinematics,I joint Jacobians,I center of mass and Jacobian.

I Path planningI hpp-core: definition of basic classes,

I path planning problems,I path planning solvers (RRT),I constraints (locked dofs, numerical constraints)I path optimizers (random shortcut),I steering methods (straight interpolation)

HPP

Page 23: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Extensions

Packages implementing other algorithmsI hpp-model-urdf: construction of robots and objects by

parsing urdf/srdf files.I hpp-wholebody-step: whole-body and walk planning

using sliding path approximation,I hpp-manipulation: manipulation planning (see next

section)

HPP

Page 24: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Extensions

Packages implementing other algorithmsI hpp-model-urdf: construction of robots and objects by

parsing urdf/srdf files.I hpp-wholebody-step: whole-body and walk planning

using sliding path approximation,I hpp-manipulation: manipulation planning (see next

section)

HPP

Page 25: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Extensions

Packages implementing other algorithmsI hpp-model-urdf: construction of robots and objects by

parsing urdf/srdf files.I hpp-wholebody-step: whole-body and walk planning

using sliding path approximation,I hpp-manipulation: manipulation planning (see next

section)

HPP

Page 26: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Python control

hpp-corbaserver: python scripting through CORBAI embed hpp-core into a CORBA server and expose

services through 3 idl interfaces:I Robot load and initializes robot,I Obstacle load and build obstacles,I Problem define and solve problem.

I Implement python classes to help user call CORBAservices

I Robot automatize robot loading,I ProblemSolver definition problem helper.

HPP

Page 27: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Python control

hpp-corbaserver: python scripting through CORBAI embed hpp-core into a CORBA server and expose

services through 3 idl interfaces:I Robot load and initializes robot,I Obstacle load and build obstacles,I Problem define and solve problem.

I Implement python classes to help user call CORBAservices

I Robot automatize robot loading,I ProblemSolver definition problem helper.

HPP

Page 28: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Python control

ExtensionsI hpp-wholebody-step-corba: control of humanoid

specific constraints and algorithms,I hpp-manipulation-corba: control of manipulation

planning specific classes and algorithms.

HPP

Page 29: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Python control

ExtensionsI hpp-wholebody-step-corba: control of humanoid

specific constraints and algorithms,I hpp-manipulation-corba: control of manipulation

planning specific classes and algorithms.

HPP

Page 30: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Visualization through ROS/rviz

Implemented by package hpp ros.

HPP

Page 31: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Demonstration

HPP

Page 32: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Outline

Introduction

Description of the software

Manipulation planning

HPP

Page 33: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Manipulation

Class of problem containing:I A robot: actuated DOFsI Objects: unactuated DOFs

A solution will be a succession of motion of two types:I The robot moves without constraints. Objects do not move.I The robot moves while grasping the object.

HPP

Page 34: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Manipulation

Class of problem containing:I A robot: actuated DOFsI Objects: unactuated DOFs

A solution will be a succession of motion of two types:I The robot moves without constraints. Objects do not move.I The robot moves while grasping the object.

HPP

Page 35: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Manipulation

2 states:

Not holding

Objectfixed

Holding

Grasp

Ungrasp

Keep thegrasp

HPP

Page 36: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Manipulation

4 transitions:

Not holdingObjectfixed

Holding

Grasp

Ungrasp

Keep thegrasp

HPP

Page 37: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Manipulation

4 transitions:

Not holdingObjectfixed

Holding

Grasp

Ungrasp

Keep thegrasp

HPP

Page 38: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Manipulation

4 transitions:

Not holdingObjectfixed

Holding

Grasp

Ungrasp

Keep thegrasp

HPP

Page 39: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Constraint

DefinitionA function f ∈ D1(C,Rm).

Level setA level set of a constraint f is:

Lf0(f ) = {q ∈ C|f (q) = f0}

ProjectionUsing a Newton Descent algorithm:

qrand |f (qrand) 6= f0 ⇒ qproj |f (qproj) = f0

HPP

Page 40: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Constraint

DefinitionA function f ∈ D1(C,Rm).

Level setA level set of a constraint f is:

Lf0(f ) = {q ∈ C|f (q) = f0}

ProjectionUsing a Newton Descent algorithm:

qrand |f (qrand) 6= f0 ⇒ qproj |f (qproj) = f0

HPP

Page 41: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Constraint

DefinitionA function f ∈ D1(C,Rm).

Level setA level set of a constraint f is:

Lf0(f ) = {q ∈ C|f (q) = f0}

ProjectionUsing a Newton Descent algorithm:

qrand |f (qrand) 6= f0 ⇒ qproj |f (qproj) = f0

HPP

Page 42: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Constraint

Two types of constraints:

ConfigurationOnly one level set is interesting: L0(f ).

MotionA level set also represents reachability space.

HPP

Page 43: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Foliation

In the configuration space:

2 constraints on motionI f : position of the object.I g: grasp of the object.

HPP

Page 44: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Constraint graph

Lf

f

Lg

f

f

g

HPP

Page 45: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Constraint graph

Lff Lg

f

f

g

HPP

Page 46: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Rapidly exploring Random Tree

qrand = shoot random config()qnear = nearest neighbor(qrand , tree)fe, fp = select next state(qnear )qproj = project(qrand , fe)qnew = extend(qnear , qproj , fp)tree.insert node( (qnear , qnew , fp) )

HPP

Page 47: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Rapidly exploring Random Tree

qrand = shoot random config()qnear = nearest neighbor(qrand , tree)fe, fp = select next state(qnear )qproj = project(qrand , fe)qnew = extend(qnear , qproj , fp)tree.insert node( (qnear , qnew , fp) )

HPP

Page 48: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Rapidly exploring Random Tree

qrand = shoot random config()qnear = nearest neighbor(qrand , tree)fe, fp = select next state(qnear )qproj = project(qrand , fe)qnew = extend(qnear , qproj , fp)tree.insert node( (qnear , qnew , fp) )

HPP

Page 49: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Rapidly exploring Random Tree

qrand = shoot random config()qnear = nearest neighbor(qrand , tree)fe, fp = select next state(qnear )qproj = project(qrand , fe)qnew = extend(qnear , qproj , fp)tree.insert node( (qnear , qnew , fp) )

HPP

Page 50: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Rapidly exploring Random Tree

qrand = shoot random config()qnear = nearest neighbor(qrand , tree)fe, fp = select next state(qnear )qproj = project(qrand , fe)qnew = extend(qnear , qproj , fp)tree.insert node( (qnear , qnew , fp) )

HPP

Page 51: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Rapidly exploring Random Tree

qrand = shoot random config()qnear = nearest neighbor(qrand , tree)fe, fp = select next state(qnear )qproj = project(qrand , fe)qnew = extend(qnear , qproj , fp)tree.insert node( (qnear , qnew , fp) )

HPP

Page 52: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

hpp-manipulation-corba

There are tools to:I read URDF files of robots and objects;I create grasp contraints between a end-effector (robot) and

a handle (object);I build the graph of constraints;

HPP

Page 53: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

hpp-manipulation-corba

There are tools to:I read URDF files of robots and objects;I create grasp contraints between a end-effector (robot) and

a handle (object);I build the graph of constraints;

HPP

Page 54: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

hpp-manipulation-corba

There are tools to:I read URDF files of robots and objects;I create grasp contraints between a end-effector (robot) and

a handle (object);I build the graph of constraints;

HPP

Page 55: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

DocumentationEntry point on Gepetto home page:

HPP

Page 56: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Installation

Go tohttps://github.com/humanoid-path-planner/hpp-docand follow the installation instructions.

HPP

Page 57: Humanoid Path Planner · I path optimizers (random shortcut), I steering methods (straight interpolation) HPP. Introduction Description of the software Manipulation planning Extensions

IntroductionDescription of the software

Manipulation planning

Keep informed

I Mailing list [email protected] to discuss issues related to thesoftware,

I github notifications for issues related to individualpackages

HPP