-
Notifications
You must be signed in to change notification settings - Fork 7
Arm Buttons and Annotation
Left click in Wrist View to move the blue-yellow reticle and print its coordinates at the command line. For now, this also performs a rotation about the vanishing point, measured from positive x axis, as if the wristview were a blackboard and you were in trig class.
Right click in Wrist View to translate the vanishing point to the point clicked by moving the arm.
Middle click in Wrist View to pick whats under the vanishing point in the current orientation.
To move the arm so that the vanishing point is over the point (x,y) in the wrist view and rotate the wrist by theta radians, issue
x y theta pixelServo
and to pick what is under the vanishing point, issue
pixelServoPickUnderVanishingPoint
Pressing the arrow button on the arm clears the call stack.
Pressing the dial button toggles in and out of zero g mode.
Pressing the Rethink button pushes an EePoseWord of the current end effector location onto the stack. To push the current pose from the command line, use
pushCurrentPose
You can also push a pose specified in the repl:
px py pz qx qy qz qw createEEPose
This is left crane 1:
-0.015590 0.981296 0.710780 0.709046 -0.631526 -0.226613 -0.216967 createEEPose
Check the repr in the repl after pushing the current eePose to get the createEEPose command to push the current eePose.
These three buttons can be used together to gather a series of poses which can be used as grasp annotations, scan points, or movements waypoints.
Using the repr in the repl, it is easy to save a set of collected poses to a compound word in a file.
Place the arm above the object to be annotated so that it is near the vanishing point. To register the pose of the object, issue
start3dGraspAnnotation
After registration has finished, you can move the end effector to a point in space and issue any of
add3dGrasp
addPlaceOverPoint
addPlaceUnderPoint
to add the arm's eePose as one of the corresponding annotations. Alternatively, you can issue
<EePoseWord> add3dGraspPoseWord
if you don't want to move the arm to that pose (grasps only for now).
To save annotations, issue one of
save3dGrasps
writeFocusedClass
To remove 3d grasps, delete or edit the yaml file in objects/blueBowl/ein/3dGrasps
.
You can annotate 2d grasps on the grasp memory grid, where coordinates are in centimeters, zAboveTable is in meters, and graspOrientation is 1,2,3 or 4:
/* x y graspOrientation zAboveTable annotate2dGrasp loadMarginalGraspMemory */
incrementTargetClass 6 12 3 0 annotate2dGrasp loadMarginalGraspMemory shiftIntoGraspGear3 writeFocusedClass
The above command annotates a grasp at the center of the servo template and is used for the kr_bar models.
"brownMug" deliverObject
-17 "table3" "brownMug" moveObjectToObjectByAmount
<EePoseWord> ... <EePoseWord> scanObjectStreamWaypointsIR
<EePoseWord> ... <EePoseWord> scanObjectStreamWaypoints3d
<EePoseWord> ... <EePoseWord> mapWaypoints