FIELD OF THE DISCLOSURE

The disclosure relates to autonomous robots.

BACKGROUND

Autonomous or semi-autonomous robotic devices are increasingly used within consumer homes and commercial establishments. Such devices may include a robotic vacuum cleaner, lawn mower, mop, or other similar devices. To operate autonomously or to operate with minimal (or less than fully manual) input and/or external control within a working environment, mapping, localization, and path planning methods may be such that robotic devices may autonomously create a map of the working environment, subsequently use the map for navigation, and devise intelligent path plans and task plans for efficient navigation and task completion.

SUMMARY

The following presents a simplified summary of some embodiments of the techniques described herein in order to provide a basic understanding of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key/critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some embodiments of the invention in a simplified form as a prelude to the more detailed description that is presented below.

Some aspects include a method for mapping and covering a workspace, including: capturing, with at least one sensor of a plurality of sensors coupled to a robot, first data indicative of a position of the robot in relation to objects within the workspace; capturing, with at least one sensor of the plurality of sensors coupled to the robot, second data indicative of movement of the robot; recognizing, with a processor of the robot, a first area of the workspace based on at least one of: a first part of the first data and a first part of the second data; generating, with the processor of the robot, at least part of a map of the workspace based on at least one of: the first part of the first data and the first part of the second data; generating, with the processor of the robot, a first movement path covering at least part of the first recognized area of the workspace; and actuating, with the processor of the robot, the robot to move along the first movement path, wherein actuating the robot to move along the first movement path includes at least a repetitive iteration of: actuating, with the processor of the robot, the robot to traverse a first linear segment; actuating, with the processor of the robot, the robot to rotate 180 degrees in a first rotation comprising traversing a distance of less than a coverage width of the robot in a direction perpendicular to the first linear segment after starting the first rotation and before finishing the first rotation; actuating, with the processor of the robot, the robot to traverse a second linear segment; and actuating, with the processor of the robot, the robot to rotate 180 degrees in a second rotation comprising traversing a distance of less than the coverage width of the robot in a direction perpendicular to the second linear segment after starting the second rotation and before finishing the second rotation.

Some aspects include a robot, including: a drive motor configured to actuate movement of the robot; a plurality of sensors coupled to the robot; a processor configured to communicate with the plurality of sensors and the drive motor; and memory storing instructions that when executed by the processor effectuate operations including: capturing, with a first sensor coupled to the robot, at a first time stamp of a plurality of time stamps and in a first iteration of a plurality of iterations, a first sequence of readings of a first data type, the first data type indicative of an amount of light emitted by or reflected from objects within a workspace onto the first sensor; capturing, with a second sensor coupled to the robot, at a first time stamp of a plurality of time stamps and in a first iteration of a plurality of iterations, a first sequence of readings of a second data type, the second data type indicative of movement of the robot; generating and updating, with the processor of the robot, a map of the workspace based on at least sequences of readings of the first data type captured during multiple corresponding consecutive iterations and timestamps up to a current iteration and timestamp; recognizing, with the processor of the robot, a first workable area of the workspace based on at least the first sequence readings of the first data type or multiple sequences of readings of the first data type captured during multiple corresponding consecutive iterations and timestamps up to a current iteration and timestamp; generating, with the processor of the robot, a first movement path covering at least part of the first workable area; and actuating, with the processor of the robot, the robot to perform work while navigating along the first movement path, wherein navigating along the first movement path comprises a repetition of: actuating, with the processor of the robot, the robot to traverse a first linear segment; actuating, with the processor of the robot, the robot to rotate 180 degrees in a first rotation comprising traversing a distance of less than a coverage width of the robot in a direction perpendicular to the first linear segment after starting the first rotation and before finishing the first rotation; actuating, with the processor of the robot, the robot to traverse a second linear segment; and actuating, with the processor of the robot, the robot to rotate 180 degrees in a second rotation comprising traversing a distance of less than the coverage width of the robot in a direction perpendicular to the second linear segment after starting the second rotation and before finishing the second rotation, wherein the linear segments are parallel to at least one perimeter of the workspace and one another

In some aspects the operations further include: determining, with the processor of the robot, areas of the workspace that work was performed in and areas of the workspace that work is yet to be performed in while concurrently performing work in a current work session; actuating, with the processor of the robot, the robot to maneuver around an object on a driving surface encountered by the robot during the current work session by adjusting the first movement path or the second movement path of the robot, wherein the first movement path or the second movement path is adjusted to maneuver around the object then resume along the parallel linear segments covering the first workable area or the second workable area; determining, with the processor of the robot, a processor on the cloud, or an application of a smartphone previously paired with the robot, an object type of the object encountered based on readings of the first data type, wherein the object type comprises at least one of cables, cords, wires, toys, jewelry, garments, socks, shoes, shoelaces, feces, liquids, keys, food items, remote controls, plastic bags, purses, backpacks, earphones, cell phones, tablets, laptops, chargers, animals, fridges, televisions, chairs, tables, light fixtures, lamps, fan fixtures, cutlery, dishware, dishwashers, microwaves, coffee makers, smoke alarms, plants, books, washing machines, dryers, watches, blood pressure monitors, blood glucose monitors, first aid items, and Wi-Fi routers; and storing, with the processor of the robot, the map in a memory accessible to the processor of the robot; wherein the robot continues to perform work until the entire workspace is covered, the battery is depleted, or the robot is commanded to return to a charging station by a user or based on a setting.

Some aspects include a method for mapping and covering a workspace, including: capturing, with a first sensor coupled to a robot, at a first time stamp of a plurality of time stamps and in a first iteration of a plurality of iterations, a first sequence of readings of a first data type; capturing, with a second sensor coupled to the robot, at a first time stamp of a plurality of time stamps and in a first iteration of a plurality of iterations, a first sequence of readings of a second data type, the second data type indicative of movement of the robot; generating and updating, with a processor of the robot, a map of the workspace based on at least readings of the first data type captured during multiple corresponding consecutive iterations and timestamps up to a current iteration and timestamp; recognizing, with the processor of the robot, a first workable area of the workspace based on at least readings of the first data type captured up to a current iteration and timestamp; generating, with the processor of the robot, a first movement path covering at least part of the first workable area; actuating, with the processor of the robot, the robot to perform work while navigating along the first movement path, wherein navigating along the first movement path includes a repetition of: actuating, with the processor of the robot, the robot to traverse a first linear segment; actuating, with the processor of the robot, the robot to rotate 180 degrees in a first rotation comprising traversing a distance of less than a coverage width of the robot in a direction perpendicular to the first linear segment after starting the first rotation and before finishing the first rotation; actuating, with the processor of the robot, the robot to traverse a second linear segment; and actuating, with the processor of the robot, the robot to rotate 180 degrees in a second rotation comprising traversing a distance of less than the coverage width of the robot in a direction perpendicular to the second linear segment after starting the second rotation and before finishing the second rotation, wherein: the linear segments are parallel to at least one perimeter of the workspace and one another; the at least one perimeter is inferred based on readings of the first data type; and the linear segments are spaced less than the coverage width of the robot from one another; determining, with the processor of the robot, areas of the workspace that work was performed in and areas of the workspace that work is yet to be performed in while concurrently performing work in a current work session; actuating, with the processor of the robot, the robot to maneuver around an object on a driving surface encountered by the robot during the current work session by adjusting the first movement path or the second movement path of the robot, wherein the first movement path or the second movement path is adjusted to maneuver around the object then resume along the parallel linear segments covering the first workable area or the second workable area; determining, with the processor of the robot, a processor on the cloud, or an application of a smartphone previously paired with the robot, an object type of the object encountered based on readings of the first data type, wherein the object type comprises at least one of cables, cords, wires, toys, jewelry, garments, socks, shoes, shoelaces, feces, liquids, keys, food items, remote controls, plastic bags, purses, backpacks, earphones, cell phones, tablets, laptops, chargers, animals, fridges, televisions, chairs, tables, light fixtures, lamps, fan fixtures, cutlery, dishware, dishwashers, microwaves, coffee makers, smoke alarms, plants, books, washing machines, dryers, watches, blood pressure monitors, blood glucose monitors, first aid items, and Wi-Fi routers; and storing, with the processor of the robot, the map in a memory accessible to the processor of the robot; wherein the robot continues to perform work until the entire workspace is covered, the battery is depleted, or the robot is commanded to return to a charging station by a user or based on a setting.

