Skip to content

Unattended Behavior

joberlin edited this page Nov 1, 2015 · 13 revisions

What we really want to do is leave the robot alone for long periods of time while interacts with the world, gathering data and eventually performing useful tasks.

Map and Pick Loop

A basic unattended behavior is mapping the environment, finding known objects, and trying to pick them.

To pick objects with a single generic class, issue

endArgs "kr_dash2" setClassLabels createCachedClassifierFromClassLabels 
mapAndPickL

To change the replacement of objects, issue

1 setRandomPositionAfterPick /* set to 0 to put it back where it was found, which is default */

It is nice to close the gripper automatically during grasps when an effort is sensed, rather than rely on height or the range finder:

1 setSnapToFlushGrasp /* set to 0 to use pre-set height, which is default */

If you are using a single object class, it makes sense to skip classification because it takes time and the answer will always be the same. To do this, issue this command:

2 setMapServoMode /* set to 0 for default behavior */

To pick immediately after pose estimation of each object during mappingPatrol rather than finishing pose estimation for the entire map before picking any objects, issue

1 setMapAutoPick /* set to 0 for default behavior */

This substantially decreased the likelihood of messing up the pose of an object between pose detection and picking.

To save images directly above pick attempts, issue

enableDiskStreaming 1 setStreamPicks /* on */
disableDiskStreaming 0 setStreamPicks /* off */

See Reference for more details about streaming.

All together now, this is a good one-liner:

endArgs "kr_dash2" setClassLabels 2 setGradientServoSoftMaxIterations 2 setGradientServoHardMaxIterations 1 mappingServoTimeout createCachedClassifierFromClassLabels 1 setMapAutoPick 2 setMapServoMode 1 setSnapToFlushGrasp 1 setRandomPositionAfterPick mapAndPickL
Clone this wiki locally