Inverse reachability space of manipulators.
Running the Generator
openrave.py --database inversereachability --robot=robots/barrettsegway.robot.xml
Clusters the reachability space for a base-placement sampling distribution that can be used to find out where the robot should stand in order to perform a manipulation task.
Usage: openrave.py --database inversereachability [options] Generates model storing the inverse reachability space and its clusters. Options: -h, --help show this help message and exit --heightthresh=HEIGHTTHRESH The max radius of the arm to perform the computation (default=0.05) --quatthresh=QUATTHRESH The max radius of the arm to perform the computation (default=0.15) --id=ID Special id differentiating inversereachability models --jointvalues=JOINTVALUES String of joint values that connect the robot base link to the manipulator base link --show_maxnumber=SHOW_MAXNUMBER Number of robots to show simultaneously (default=20) --show_transparency=SHOW_TRANSPARENCY Transparency of the robots to show (default=0.8) OpenRAVE Environment Options: --loadplugin=_LOADPLUGINS List all plugins and the interfaces they provide. --collision=_COLLISION Default collision checker to use --physics=_PHYSICS physics engine to use (default=none) --viewer=_VIEWER viewer to use (default=qtcoin) --server=_SERVER server to use (default=None). --serverport=_SERVERPORT port to load server on (default=4765). --module=_MODULES module to load, can specify multiple modules. Two arguments are required: "name" "args". -l _LEVEL, --level=_LEVEL, --log_level=_LEVEL Debug level, one of (fatal,error,warn,info,debug,verbose,verifyplans) --testmode if set, will run the program in a finite amount of time and spend computation time validating results. Used for testing 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) --numthreads=NUMTHREADS number of threads to compute the database with (default=1) --manipname=MANIPNAME The name of the manipulator on the robot to use
ベースクラス: openravepy.databases.DatabaseGenerator
Inverts the reachability and computes probability distributions of the robot’s base given an end effector position
normalization const for the equation exp(dot(-0.5/bandwidth**2,r_[arccos(x[0])**2,x[1:]**2]))
Return a function of the distribution of possible positions of the robot such that any grasp from Tgrasps is reachable. Also computes a sampler function that returns a random position of the robot along with the index into Tgrasps
Return a function of the distribution of possible positions of the robot such that Tgrasp is reachable. Also returns a sampler function
First transform all end effectors to the identity and get the robot positions, then cluster the robot position modulo in-plane rotation (z-axis) and position (xy), then compute statistics for each cluster.
randomly sample base positions given the grasps. This is mostly used for comparison
infinitely samples valid base placements from Tgrasps. Assumes environment is locked. If Nprematuresamples > 0, will sample from the clusters as soon as they are found
Overlays several robots of the same equivalence class
OPENRAVE_API RobotBasePtr RaveCreateRobot(EnvironmentBasePtr penv, const std::string & name = “” )
OPENRAVE_API std::string RaveFindDatabaseFile(const std::string & filename, bool bRead = true )
Searches for a filename in the database and returns a full path/URL to it.
- Parameters
- filename -
- the relative filename in the database
- bRead -
- if true will only return a file if it exists. If false, will return the filename of the first valid database directory.
- Return
- a non-empty string if a file could be found.
RaveTransformMatrix < T > matrixFromAxisAngle(const RaveVector < T > & axisangle)
Converts an axis-angle rotation to a 3x3 matrix.
- Parameters
- axis -
- unit axis * rotation angle (radians), 3 values
matrixFromAxisAngle( (object)axis, (float)angle) -> object
Converts a 7 element quaterion+translation transform to a 4x4 matrix.
パラメタ: | pose – 7 values |
---|
Converts a quaternion to a 4x4 affine matrix.
パラメタ: | quat – 4 values |
---|
Converts a 4x4 matrix to a 7 element quaternion+translation representation.
パラメタ: | transform – 3x4 or 4x4 affine matrix |
---|
multiplies two poses.
パラメタ: |
|
---|
RaveVector < T > quatFromAxisAngle(const RaveVector < T > & axisangle)
Converts an axis-angle rotation into a quaternion.
- Parameters
- axisangle -
- unit axis * rotation angle (radians), 3 values
quatFromAxisAngle( (object)axis, (float)angle) -> object :
RaveVector < T > quatFromAxisAngle(const RaveVector < T > & axis, T angle)
Converts an axis-angle rotation into a quaternion.
- Parameters
- axis -
- unit axis, 3 values
- angle -
- rotation angle (radians)
RaveTransformMatrix < T > matrixFromAxisAngle(const RaveVector < T > & axisangle)
Converts an axis-angle rotation to a 3x3 matrix.
- Parameters
- axis -
- unit axis * rotation angle (radians), 3 values
rotationMatrixFromAxisAngle( (object)axis, (float)angle) -> object