Humanoid Path Planner Florent Lamiraux CNRS-LAAS, Toulouse, France - - PowerPoint PPT Presentation

humanoid path planner
SMART_READER_LITE
LIVE PREVIEW

Humanoid Path Planner Florent Lamiraux CNRS-LAAS, Toulouse, France - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Introduction Description of the software Manipulation planning

Humanoid Path Planner

Florent Lamiraux

CNRS-LAAS, Toulouse, France

HPP

slide-2
SLIDE 2

Introduction Description of the software Manipulation planning

Humanoid Path Planner

Introduction Description of the software Manipulation planning

HPP

slide-3
SLIDE 3

Introduction Description of the software Manipulation planning

Outline

Introduction Description of the software Manipulation planning

HPP

slide-4
SLIDE 4

Introduction Description of the software Manipulation planning

Path Planning

Given

◮ A robot (kinematic chain), ◮ obstacles, ◮ constraints, ◮ an initial configuration and ◮ goal configurations,

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

HPP

slide-5
SLIDE 5

Introduction Description of the software Manipulation planning

Path Planning

Given

◮ A robot (kinematic chain), ◮ obstacles, ◮ constraints, ◮ an initial configuration and ◮ goal configurations,

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

HPP

slide-6
SLIDE 6

Introduction Description of the software Manipulation planning

Path Planning

Given

◮ A robot (kinematic chain), ◮ obstacles, ◮ constraints, ◮ an initial configuration and ◮ goal configurations,

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

HPP

slide-7
SLIDE 7

Introduction Description of the software Manipulation planning

Path Planning

Given

◮ A robot (kinematic chain), ◮ obstacles, ◮ constraints, ◮ an initial configuration and ◮ goal configurations,

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

HPP

slide-8
SLIDE 8

Introduction Description of the software Manipulation planning

Path Planning

Given

◮ A robot (kinematic chain), ◮ obstacles, ◮ constraints, ◮ an initial configuration and ◮ goal configurations,

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

HPP

slide-9
SLIDE 9

Introduction Description of the software Manipulation planning

Historical perspective

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

based on KineoWorks-2,

◮ 2013: kineo-CAM is bought by Siemens, ◮ December 2013: development of HPP open-source.

HPP

slide-10
SLIDE 10

Introduction Description of the software Manipulation planning

Historical perspective

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

based on KineoWorks-2,

◮ 2013: kineo-CAM is bought by Siemens, ◮ December 2013: development of HPP open-source.

HPP

slide-11
SLIDE 11

Introduction Description of the software Manipulation planning

Historical perspective

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

based on KineoWorks-2,

◮ 2013: kineo-CAM is bought by Siemens, ◮ December 2013: development of HPP open-source.

HPP

slide-12
SLIDE 12

Introduction Description of the software Manipulation planning

Historical perspective

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

based on KineoWorks-2,

◮ 2013: kineo-CAM is bought by Siemens, ◮ December 2013: development of HPP open-source.

HPP

slide-13
SLIDE 13

Introduction Description of the software Manipulation planning

Historical perspective

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

based on KineoWorks-2,

◮ 2013: kineo-CAM is bought by Siemens, ◮ December 2013: development of HPP open-source.

HPP

slide-14
SLIDE 14

Introduction Description of the software Manipulation planning

Outline

Introduction Description of the software Manipulation planning

HPP

slide-15
SLIDE 15

Introduction Description of the software Manipulation planning

Overview of the architecture

Modular: collection of packages

◮ package dependencies tracked by pkg-config, ◮ installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,

◮ programmed in C++, ◮ controlled via python

HPP

slide-16
SLIDE 16

Introduction Description of the software Manipulation planning

Overview of the architecture

Modular: collection of packages

◮ package dependencies tracked by pkg-config, ◮ installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,

◮ programmed in C++, ◮ controlled via python

HPP

slide-17
SLIDE 17

Introduction Description of the software Manipulation planning

Overview of the architecture

Modular: collection of packages

◮ package dependencies tracked by pkg-config, ◮ installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,

◮ programmed in C++, ◮ controlled via python

HPP

slide-18
SLIDE 18

Introduction Description of the software Manipulation planning

Overview of the architecture

Modular: collection of packages

◮ package dependencies tracked by pkg-config, ◮ installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,

◮ programmed in C++, ◮ controlled via python

HPP

slide-19
SLIDE 19

Introduction Description of the software Manipulation planning

Overview of the architecture

Modular: collection of packages

◮ package dependencies tracked by pkg-config, ◮ installation managed by cmake and a git submodule:

git://github.com/jrl-umi3218/jrl-cmakemodules.git,

◮ programmed in C++, ◮ controlled via python

HPP

slide-20
SLIDE 20

Introduction Description of the software Manipulation planning

Overview of the architecture

HPP

slide-21
SLIDE 21

Introduction Description of the software Manipulation planning

Software Development Kit

Packages implementing the core infrastructure

◮ Kinematic chain with geometry

◮ hpp-model: implementation of kinematic chain with

geometry,

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

◮ Path planning

◮ hpp-core: definition of basic classes, ◮ path planning problems, ◮ path planning solvers (RRT), ◮ constraints (locked dofs, numerical constraints) ◮ path optimizers (random shortcut), ◮ steering methods (straight interpolation) HPP

slide-22
SLIDE 22

Introduction Description of the software Manipulation planning

Software Development Kit

Packages implementing the core infrastructure

◮ Kinematic chain with geometry

◮ hpp-model: implementation of kinematic chain with

geometry,

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

◮ Path planning

◮ hpp-core: definition of basic classes, ◮ path planning problems, ◮ path planning solvers (RRT), ◮ constraints (locked dofs, numerical constraints) ◮ path optimizers (random shortcut), ◮ steering methods (straight interpolation) HPP

slide-23
SLIDE 23

Introduction Description of the software Manipulation planning

Extensions

Packages implementing other algorithms

◮ hpp-model-urdf: construction of robots and objects by

parsing urdf/srdf files.

◮ hpp-wholebody-step: whole-body and walk planning

using sliding path approximation,

◮ hpp-manipulation: manipulation planning (see next

section)

HPP

slide-24
SLIDE 24

Introduction Description of the software Manipulation planning

Extensions

Packages implementing other algorithms

◮ hpp-model-urdf: construction of robots and objects by

parsing urdf/srdf files.

◮ hpp-wholebody-step: whole-body and walk planning

using sliding path approximation,

◮ hpp-manipulation: manipulation planning (see next

section)

HPP

slide-25
SLIDE 25

Introduction Description of the software Manipulation planning

Extensions

Packages implementing other algorithms

◮ hpp-model-urdf: construction of robots and objects by

parsing urdf/srdf files.

◮ hpp-wholebody-step: whole-body and walk planning

using sliding path approximation,

◮ hpp-manipulation: manipulation planning (see next

section)

HPP

slide-26
SLIDE 26

Introduction Description of the software Manipulation planning

Python control

hpp-corbaserver: python scripting through CORBA

◮ embed hpp-core into a CORBA server and expose

services through 3 idl interfaces:

◮ Robot load and initializes robot, ◮ Obstacle load and build obstacles, ◮ Problem define and solve problem.

◮ Implement python classes to help user call CORBA

services

◮ Robot automatize robot loading, ◮ ProblemSolver definition problem helper. HPP

slide-27
SLIDE 27

Introduction Description of the software Manipulation planning

Python control

hpp-corbaserver: python scripting through CORBA

◮ embed hpp-core into a CORBA server and expose

services through 3 idl interfaces:

◮ Robot load and initializes robot, ◮ Obstacle load and build obstacles, ◮ Problem define and solve problem.

◮ Implement python classes to help user call CORBA

services

◮ Robot automatize robot loading, ◮ ProblemSolver definition problem helper. HPP

slide-28
SLIDE 28

Introduction Description of the software Manipulation planning

Python control

Extensions

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

specific constraints and algorithms,

◮ hpp-manipulation-corba: control of manipulation

planning specific classes and algorithms.

HPP

slide-29
SLIDE 29

Introduction Description of the software Manipulation planning

Python control

Extensions

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

specific constraints and algorithms,

◮ hpp-manipulation-corba: control of manipulation

planning specific classes and algorithms.

HPP

slide-30
SLIDE 30

Introduction Description of the software Manipulation planning

Visualization through ROS/rviz

Implemented by package hpp ros.

HPP

slide-31
SLIDE 31

Introduction Description of the software Manipulation planning

Demonstration

HPP

slide-32
SLIDE 32

Introduction Description of the software Manipulation planning

Outline

Introduction Description of the software Manipulation planning

HPP

slide-33
SLIDE 33

Introduction Description of the software Manipulation planning

Manipulation

Class of problem containing:

◮ A robot: actuated DOFs ◮ Objects: unactuated DOFs

A solution will be a succession of motion of two types:

◮ The robot moves without constraints. Objects do not move. ◮ The robot moves while grasping the object.

HPP

slide-34
SLIDE 34

Introduction Description of the software Manipulation planning

Manipulation

Class of problem containing:

◮ A robot: actuated DOFs ◮ Objects: unactuated DOFs

A solution will be a succession of motion of two types:

◮ The robot moves without constraints. Objects do not move. ◮ The robot moves while grasping the object.

HPP

slide-35
SLIDE 35

Introduction Description of the software Manipulation planning

Manipulation

2 states:

Not holding Holding

HPP

slide-36
SLIDE 36

Introduction Description of the software Manipulation planning

Manipulation

4 transitions:

Not holding

Object fixed

Holding

Grasp Ungrasp Keep the grasp

HPP

slide-37
SLIDE 37

Introduction Description of the software Manipulation planning

Manipulation

4 transitions:

Not holding

Object fixed

Holding

Grasp Ungrasp Keep the grasp

HPP

slide-38
SLIDE 38

Introduction Description of the software Manipulation planning

Manipulation

4 transitions:

Not holding

Object fixed

Holding

Grasp Ungrasp Keep the grasp

HPP

slide-39
SLIDE 39

Introduction Description of the software Manipulation planning

Constraint

Definition

A function f ∈ D1(C, Rm).

Level set

A level set of a constraint f is: Lf0(f) = {q ∈ C|f(q) = f0}

Projection

Using a Newton Descent algorithm: qrand|f(qrand) = f0 ⇒ qproj|f(qproj) = f0

HPP

slide-40
SLIDE 40

Introduction Description of the software Manipulation planning

Constraint

Definition

A function f ∈ D1(C, Rm).

Level set

A level set of a constraint f is: Lf0(f) = {q ∈ C|f(q) = f0}

Projection

Using a Newton Descent algorithm: qrand|f(qrand) = f0 ⇒ qproj|f(qproj) = f0

HPP

slide-41
SLIDE 41

Introduction Description of the software Manipulation planning

Constraint

Definition

A function f ∈ D1(C, Rm).

Level set

A level set of a constraint f is: Lf0(f) = {q ∈ C|f(q) = f0}

Projection

Using a Newton Descent algorithm: qrand|f(qrand) = f0 ⇒ qproj|f(qproj) = f0

HPP

slide-42
SLIDE 42

Introduction Description of the software Manipulation planning

Constraint

Two types of constraints:

Configuration

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

Motion

A level set also represents reachability space.

HPP

slide-43
SLIDE 43

Introduction Description of the software Manipulation planning

Foliation

In the configuration space:

2 constraints on motion

◮ f: position of the object. ◮ g: grasp of the object.

HPP

slide-44
SLIDE 44

Introduction Description of the software Manipulation planning

Constraint graph

Lf Lg

HPP

slide-45
SLIDE 45

Introduction Description of the software Manipulation planning

Constraint graph

Lf

f

Lg

f f g

HPP

slide-46
SLIDE 46

Introduction Description 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

slide-47
SLIDE 47

Introduction Description 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

slide-48
SLIDE 48

Introduction Description 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

slide-49
SLIDE 49

Introduction Description 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

slide-50
SLIDE 50

Introduction Description 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

slide-51
SLIDE 51

Introduction Description 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

slide-52
SLIDE 52

Introduction Description of the software Manipulation planning

hpp-manipulation-corba

There are tools to:

◮ read URDF files of robots and objects; ◮ create grasp contraints between a end-effector (robot) and

a handle (object);

◮ build the graph of constraints;

HPP

slide-53
SLIDE 53

Introduction Description of the software Manipulation planning

hpp-manipulation-corba

There are tools to:

◮ read URDF files of robots and objects; ◮ create grasp contraints between a end-effector (robot) and

a handle (object);

◮ build the graph of constraints;

HPP

slide-54
SLIDE 54

Introduction Description of the software Manipulation planning

hpp-manipulation-corba

There are tools to:

◮ read URDF files of robots and objects; ◮ create grasp contraints between a end-effector (robot) and

a handle (object);

◮ build the graph of constraints;

HPP

slide-55
SLIDE 55

Introduction Description of the software Manipulation planning

Documentation

Entry point on Gepetto home page:

HPP

slide-56
SLIDE 56

Introduction Description of the software Manipulation planning

Installation

Go to https://github.com/humanoid-path-planner/hpp-doc and follow the installation instructions.

HPP

slide-57
SLIDE 57

Introduction Description of the software Manipulation planning

Keep informed

◮ Mailing list hpp@laas.fr to discuss issues related to the

software,

◮ github notifications for issues related to individual

packages

HPP