| Home | Trees | Indices | Help |
|
|---|
|
|
把持を探索する手法と接触点による安定性の計算
Running the Generator
openrave.py --database grasping
Dynamically generate/load the grasping set for a robot manipulator and target object:
robot.SetActiveManipulator(...)
gmodel = openravepy.databases.grasping.GraspingModel(robot,target)
if not gmodel.load():
gmodel.autogenerate()
コメントです
OpenRAVE can simulate grasps for any type of robotic hand, evaluate the quality of the grasps, and use those grasps in a more complex grasp planning framework. This tutorial is meant to introduce you to the grasper plugin and the scripts provided to manage the testing and simulation. At the end, you should be able to create grasp tables and use them effectively in OpenRAVE.
A grasp is simulated by giving the end-effector an initial pose and initial joint angles (preshape). Then the end effector moves along a direction (usually along the normal of the palm) until it hits the target object. Once hit, the 'fingers' of the end-effector slowly close around the object until they cannot close further. The contacts between the end-effector and target object are extracted, and force closure is calculated. The grasper plugin is responsible for this simulation, the scripts just pass in the correct parameters to it.
Grasp set creation first tries to uniformly sample the surface of the object to determine where to the approach directions should be. Sampling the actual geometric surface of the object can lead to unwanted results due to possible concavities like the handle of a cup. A simpler approach is to take the bounding box of the object and sample its surface uniformly (see GraspingModel.computeBoxApproachRays).
Once the surface of the box is sampled, the intersection of the object and a ray originating from each point going inward is taken. The normal of the object's surface from each of these intersection points is taken to be the approaching direction of the end-effector. The red lines in the above image indicate the rays along which the end-effector will approach the cup.
Once the initial pose, preshape, and approach direction are chosen, the grasper planner is called, which queries the contact points of the grasp and analyzes them for force closure.
Render the final configuration of the end-effector closing down on the target object along with the friction cones at each contact point (red transparent cones).
Calling GraspingModel.generate generates tables for a ketchup bottle.
Here's a short list of features of the grasper planner and problem interfaces:
Author: Rosen Diankov
Copyright: Copyright (C) 2009-2010 Rosen Diankov (rosen.diankov@gmail.com)
License: Apache License, Version 2.0
| Classes | |
|
GraspingModel Holds all functions/data related to a grasp between a robot hand and a target |
|
| Functions | |||
|
|||
| Variables | |
__package__ =
|
|
| Function Details |
Executes the grasping database generation, args specifies a list of the arguments to the script. Help
Usage: openrave.py --database grasping [options]
Grasp set generation example for any robot/body pair.
Options:
-h, --help show this help message and exit
--plannername=PLANNERNAME
The grasper planner to use for this model
(default=none)
--target=TARGET The filename of the target body whose grasp set to be
generated (default=data/mug1.kinbody.xml)
--noviewer If specified, will generate the tables without
launching a viewer
--boxdelta=BOXDELTA Step size of of box surface sampling
--spheredelta=SPHEREDELTA
Delta angle between directions on the sphere
--normalanglerange=NORMALANGLERANGE
The range of angles around the surface normal to
approach from (default=0.0)
--directiondelta=DIRECTIONDELTA
The average distance of approach directions for each
surface point in radians (default=0.4)
--standoff=STANDOFFS Add a standoff distance
--roll=ROLLS Add a roll angle
--preshape=PRESHAPES Add a preshape for the manipulator gripper joints
--avoidlink=AVOIDLINKS
Add a link name to avoid at all costs (like sensor
links)
--friction=FRICTION Friction between robot and target object (default=0.4)
--graspingnoise=GRASPINGNOISE
Random undeterministic noise to add to the target
object, represents the max possible displacement of
any point on the object. Noise is added after global
direction and start have been determined (default=0)
--graspindex=GRASPINDEX
If set, then will only show this grasp index
OpenRAVE Environment Options:
--collision=COLLISION
Default collision checker to use
--physics=PHYSICS Default physics engine to use
-d DEBUG, --debug=DEBUG
Debug level
OpenRAVE Database Generator General Options:
--show Graphically shows the built model
--getfilename If set, will return the final database filename where
all data is stored
--gethas If set, will exit with 0 if datafile is generated and
up to date, otherwise will return a 1. This will
require loading the model and checking versions, so
might be a little slow.
--robot=ROBOT OpenRAVE robot to load
(default=robots/barrettsegway.robot.xml)
--manipname=MANIPNAME
The name of the manipulator on the robot to use
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Wed Aug 11 10:41:00 2010 | http://epydoc.sourceforge.net |