Generating object references from perception data in unstructured environments and related technology
A method in accordance with a particular embodiment of the present technology includes receiving, at data-processing hardware operably associated with a mobile robot, perception data corresponding to an object in an environment of the mobile robot. The method further includes generating, by the data-processing hardware and based at least partially on the perception data, a feature reference corresponding to a feature of the object. The method also includes generating, by the data-processing hardware, candidate object references based at least partially on different respective alignments between the feature reference and a model of the object. The method also includes selecting, by the data-processing hardware, one of the candidate object references based at least partially on a result of evaluating the candidate object references for accuracy. Finally, the method includes controlling, by the data-processing hardware, the mobile robot based at least partially on the selected candidate object reference.
1 . A method comprising:
receiving, at data-processing hardware operably associated with a mobile robot, perception data corresponding to an object in an environment of the mobile robot;
generating, by the data-processing hardware and based at least partially on the perception data, a feature reference corresponding to a feature of the object, wherein the feature reference includes a centroid;
generating, by the data-processing hardware, candidate object references for the object based at least partially on different respective alignments between the feature reference and a model of the object, wherein generating the candidate object references includes generating the candidate object references based at least partially on different respective alignments between the centroid of the feature reference and a centroid of the model of the object;
evaluating, by the data-processing hardware, the candidate object references for accuracy;
selecting, by the data-processing hardware, one of the candidate object references based at least partially on a result of evaluating the candidate object references; and
controlling, by the data-processing hardware, the mobile robot based at least partially on the selected one of the candidate object references.
2 . The method of claim 1 , wherein controlling the mobile robot includes causing an end effector of the mobile robot to contact the object.
3 . The method of claim 1 , wherein:
the object is a container defining an object height and an object length perpendicular to one another;
the object includes a top portion and a bottom portion spaced apart from one another along the object height;
the top portion of the object includes a rim defining an opening through which the object is configured to be loaded and unloaded;
the object includes a first wall and a second wall spaced apart from one another along the object length; and
the feature is at one of the first and second walls.
4 . The method of claim 1 , wherein generating the candidate object references includes aligning the model of the object with the feature reference at different respective rotational offsets.
5 . The method of claim 4 , wherein:
the object includes a base through which the object is configured to contact a planar support surface;
the object defines an object height perpendicular to the planar support surface when the object is in contact with the planar support surface via the base;
the object includes walls extending upward from the base when the object is in contact with the planar support surface via the base;
the walls are circumferentially distributed by a first angular increment about an axis parallel to the object height; and
the rotational offsets differ from one another by a second angular increment corresponding to the first angular increment.
6 . A method comprising:
receiving, at data-processing hardware operably associated with a mobile robot, perception data corresponding to an object in an environment of the mobile robot;
generating, by the data-processing hardware and based at least partially on the perception data, a feature reference corresponding to a feature of the object;
generating, by the data-processing hardware, candidate object references for the object based at least partially on different respective alignments between the feature reference and a model of the object, wherein generating the candidate object references includes aligning the model of the object with the feature reference at a positional offset;
evaluating, by the data-processing hardware, the candidate object references for accuracy;
selecting, by the data-processing hardware, one of the candidate object references based at least partially on a result of evaluating the candidate object references; and
controlling, by the data-processing hardware, the mobile robot based at least partially on the selected one of the candidate object references.
7 . The method of claim 6 , wherein generating the candidate object references includes aligning the model of the object with the feature reference at different respective combinations of one of two or more different positional offsets and one of three or more different rotational offsets.
8 . The method of claim 7 , wherein:
the object includes a base through which the object is configured to contact a planar support surface;
the object defines:
an object height perpendicular to the planar support surface when the object is in contact with the planar support surface via the base,
an object length parallel to the planar support surface when the object is in contact with the planar support surface via the base, and
an object width parallel to the planar support surface and perpendicular to the object length when the object is in contact with the planar support surface via the base;
the object includes:
a first wall extending upward from the base when the object is in contact with the planar support surface via the base,
a second wall extending upward from the base and spaced apart from the first wall along the object length when the object is in contact with the planar support surface via the base,
a third wall extending upward from the base between the first and second walls along the object length when the object is in contact with the planar support surface via the base, and
a fourth wall extending upward from the base between the first and second walls along the object length and spaced apart from the third wall along the object width when the object is in contact with the planar support surface via the base;
the feature is at the first wall;
one of the positional offsets corresponds to the object length;
another of the positional offsets corresponds to the object width;
the first, second, third, and fourth walls are circumferentially distributed by a first angular increment about an axis parallel to the object height; and
the rotational offsets differ from one another by a second angular increment corresponding to the first angular increment.
9 . The method of claim 6 , wherein:
the object includes a base through which the object is configured to contact a planar support surface;
the object defines:
an object height perpendicular to the planar support surface when the object is in contact with the planar support surface via the base, and
an object length parallel to the planar support surface when the object is in contact with the planar support surface via the base;
the object includes:
a first wall extending upward from the base when the object is in contact with the planar support surface via the base, and
a second wall extending upward from the base and spaced apart from the first wall along the object length when the object is in contact with the planar support surface via the base;
the feature is at the first wall; and
the positional offset corresponds to the object length.
10 . The method of claim 9 , wherein the positional offset is within 10% of half the object length.
11 . The method of claim 9 , wherein:
the positional offset is a first positional offset;
the object defines an object width parallel to the planar support surface and perpendicular to the object length when the object is in contact with the planar support surface via the base; and
generating the candidate object references includes aligning the model of the object with the feature reference at a second positional offset corresponding to the object width.
12 . The method of claim 11 , wherein the second positional offset is within 10% of half the object width.
13 . The method of claim 6 , wherein:
the feature reference includes a point cloud and a plane; and
generating the feature reference includes:
generating the point cloud based at least partially on a result of clustering the perception data, and
generating the plane via a plane fitting algorithm in which the point cloud is an input.
14 . The method of claim 6 , wherein clustering the perception data includes clustering the perception data via a Euclidean clustering algorithm.
15 . A method comprising:
receiving, at data-processing hardware operably associated with a mobile robot, perception data corresponding to an object in an environment of the mobile robot;
generating, by the data-processing hardware, surface normals corresponding to the perception data;
clustering, by the data-processing hardware, the perception data based at least partially on the surface normals;
generating, by the data-processing hardware and based at least partially on the perception data, a feature reference corresponding to a feature of the object, wherein generating the feature reference includes generating the feature reference based at least partially on a result of clustering the perception data;
generating, by the data-processing hardware, candidate object references for the object based at least partially on different respective alignments between the feature reference and a model of the object;
evaluating, by the data-processing hardware, the candidate object references for accuracy;
selecting, by the data-processing hardware, one of the candidate object references based at least partially on a result of evaluating the candidate object references; and
controlling, by the data-processing hardware, the mobile robot based at least partially on the selected one of the candidate object references.
16 . The method of claim 15 , wherein:
the method further comprises generating, by a neural network of the data-processing hardware and based at least partially on the perception data, an estimate of a boundary of the object; and
generating the feature reference includes generating the feature reference based at least partially on the boundary.
17 . The method of claim 15 , wherein clustering the perception data includes clustering the perception data via a Euclidean clustering algorithm.
18 . The method of claim 15 , wherein:
the feature reference includes a point cloud and a plane; and
generating the feature reference includes:
generating the point cloud based at least partially on a result of clustering the perception data, and
generating the plane via a plane fitting algorithm in which the point cloud is an input.
19 . The method of claim 15 , wherein generating the candidate object references includes aligning the model of the object with the feature reference at different respective rotational offsets.
20 . The method of claim 19 , wherein:
the object includes a base through which the object is configured to contact a planar support surface;
the object defines an object height perpendicular to the planar support surface when the object is in contact with the planar support surface via the base;
the object includes walls extending upward from the base when the object is in contact with the planar support surface via the base;
the walls are circumferentially distributed by a first angular increment about an axis parallel to the object height; and
the rotational offsets differ from one another by a second angular increment corresponding to the first angular increment.