10
2009-08-20 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

2009­08­20

Ioan Alexandru ŞucanRice University

Motion Planning for the PR2 Arm

Page 2: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

2

Sampling­based Motion Planning

Fast algorithms, probabilistically completeApproximate connectivity of the state spaceIgnore optimality

Page 3: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

3

Diffusion Trees

Examples include RRT, EST, SBL, etc ...

Iteratively grow a tree of motions

Page 4: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

4

Implemented in ROS (ompl package)

Kinematic planning:RRT (Rapidly­exploring Random Trees)LazyRRT (Lazy RRT)EST (Expansive Space Trees)SBL (Single­query Bi­directional Lazy tree planner)pSBL (Parallel SBL)pRRT (Parallel RRT)KPIECE (Kinematic Planning by Interior­Exterior Cell Exploration)LBKPIECE (Lazy Bi­Directional KPIECE)

Planning with differential constraints:RRTKPIECE

Other tools:GAIK (Genetic Algrorithm for Inverse Kinematics)

Page 5: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

5

Other Needed Components

Robot Self FilterRemove points from sensor data that correspond to hits on the links the robot can seeRemove shadow points caused by seen links

http://www.ros.org/wiki/robot_self_filter

Collision MapAs the arm moves occlusions can be producedOccluded information should not be forgotten

http://www.ros.org/wiki/collision_map

Planning EnvironmentBrings all other components togetherhttp://www.ros.org/wiki/planning_environment

Page 6: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

6

Interface to Arm Motion Planning

Nodes that offer motion planning servicesompl_planning, sbpl_arm_planner (Ben), chomp_motion_planner (Mrinal)

The move_arm packageReceives user requests that define desired arm positions (constraints)Requests motion plans from a loaded planner (common ROS interface for all types of planners is available)Monitors paths as they are being executed (requests new paths if current ones become invalid)Switched between different planners if needed (not visible to the user)

Page 7: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

7

What we can do now

Plan among obstaclesEven slowly moving obstacles

Account for path constraintsNot spilling odwalla bottles 

Update the kinematic chain of the robot on­the­fly

So we avoid collisions betweengrasped objects and the environment

Move to positions that cause the arm to touch objects in the environment

Useful for grasping

Safe tele­operation

Ken Conley

Page 8: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

8

Next Step: Planning with Dynamics

Try using physics simulationAccount for friction, gravity, limits in forcesNeeded for more accurate simulation

Page 9: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

Thank you!

(videos and demo in the green room)

Page 10: Motion Planning for the PR2 Arm - ROS.org · 2009-08-22 · 20090820 Ioan Alexandru Şucan Rice University Motion Planning for the PR2 Arm

10

In ROS Packages

Perceptionrobot_self_filtercollision_map

Robot modelplanning_models

Collision checkingcollision_space

Motion planningplanning_environmentompl, ompl_ros, ompl_search, ompl_planningmove_arm