| CPC G06T 7/60 (2013.01) [G01C 3/08 (2013.01); G06T 7/521 (2017.01); G06T 7/90 (2017.01); H04N 7/18 (2013.01); G06T 2207/10024 (2013.01); G06T 2207/10028 (2013.01)] | 19 Claims |

|
1. A memory storing program code that when executed by a processor of a robot effectuates operations, comprising:
capturing, with a camera disposed on the robot, a plurality of images of a workspace;
inferring, with the processor of the robot, distances to objects in the workspace based on at least some pixels of the plurality of images;
determining, with the processor of the robot, an angle of a surface captured in the plurality of images based on at least some of the inferred distances;
adjusting, with the processor of the robot, a heading angle of the robot relative to the angle of the surface;
detecting, with a sensor of a plurality of sensors disposed on the robot, an object in a line of sight of the sensor;
adjusting, with the processor of the robot, a current path of the robot to detour around or avoid the object, wherein:
the current path comprises at least two segments parallel to each other;
adjacent segments of the at least two segments of the current path are separated by a perpendicular distance;
the robot rotates 180 degrees after driving along a first segment of the current path and prior to driving along an adjacent, parallel second segment of the current path; and
the robot resumes along the current path after detouring around or avoiding the object;
generating, with the processor of the robot, a planar representation of a workspace of the robot based on data collected by at least some sensors of the plurality of sensors; and
wherein an application of a communication device paired with the robot is configured to display the planar representation.
|