Skip to content

Arm Buttons and Annotation

joberlin edited this page Nov 17, 2015 · 19 revisions

Mouse Control From Wrist View

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.

Pixel Servo

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

Arm Buttons

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.

3d Grasp and Placement Points

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.

2d Grasp Points

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.

Pick Commands

"brownMug" deliverObject
-17 "table3" "brownMug" moveObjectToObjectByAmount

Pick Mode

Place Mode

Grasp Mode

Scanning

<EePoseWord> ... <EePoseWord> scanObjectStreamWaypointsIR
<EePoseWord> ... <EePoseWord> scanObjectStreamWaypoints3d

Scan Mode

Mapping

<EePoseWord> ... <EePoseWord> mapWaypoints

Patrol Mode