Robot system that clears clutter
The method addresses the lack of intuitive user interaction with declutter robots by employing a camera-based navigation and augmented reality interface, enabling effective user-robot interaction and clear communication of task status.
Patent Information
- Application Number
- JP2023533262
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-10-08
- Filing Date
- 2021-11-30
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2041-11-30
AI Technical Summary
Existing declutter robots lack intuitive and powerful user interaction methods, requiring deep programming knowledge and failing to provide clear communication for task blocks or situational parameters.
A method that uses a camera to navigate and map objects in an environment, allowing users to interact with a declutter robot through an augmented reality interface, enabling object classification, path planning, and communication of task status and assistance requests.
Enables users to interact with declutter robots in an intuitive manner, allowing for effective training and task execution without requiring programming expertise, while also providing clear communication of task status and assistance needs.
Smart Images

Figure 0007657301000001 
Figure 0007657301000002 
Figure 0007657301000003
Abstract
Description
[Technical field]
[0001] The present application relates to a method and robotic system for clearing clutter.
[0002] This application claims priority and the benefit under 35 USC 119(e) to U.S. patent application Ser. No. 63 / 119,533, entitled "CLUTTER-CLEARING ROBOTIC SYSTEM," filed on November 30, 2020, the contents of which are incorporated herein by reference in their entirety. This application also claims priority and the benefit under 35 USC 119(e) to U.S. patent application Ser. No. 63 / 253,867, entitled "Augmented Reality Robotic Interface," filed on October 8, 2021, the contents of which are incorporated herein by reference in their entirety. [Background technology]
[0003] Objects underfoot are not only a nuisance, they also pose a safety hazard. Thousands of people fall and injure themselves in their homes every year. Floors cluttered with loose objects can represent a danger, but many people have limited time to deal with the clutter conditions in their homes. Automated cleaning or decluttering robots could be an effective solution.
[0004] While a fully autonomous declutter robot with rudimentary search capabilities may be adequate for the task of picking up objects on the floor of every room, users may desire the ability to exercise more nuanced control over the robot's behavior and the classification and destination of specific objects unique to their home. Additionally, the robot may need to explicitly communicate with the user when the task is interrupted or when situational parameters not considered in the robot's programming arise. However, most users may not be experts in the fields of robotics and artificial intelligence.
[0005] Therefore, there is a need for a way for users to interact with the Declutter robot in an intuitive and powerful way that does not rely on deep programming knowledge. This interaction process could enable users to train the robot based on their specific decluttering needs, instruct the robot to perform actions outside of pre-configured routines, and receive instructions when the robot needs assistance to continue or complete an assigned task. Summary of the Invention
[0006] The present disclosure provides a method for identifying a plurality of object categories for objects in an environment, the object categories being associated with corresponding containers disposed in the environment; Activating the robot on the base station; and using the camera to navigate the robot around the environment and map object types, sizes, and locations; The method is as follows: for each object category: selecting one or more of the objects within a category to pick up; performing path planning from a current position of the robot to one or more of the objects to be picked up; navigating to one or more adjacent points of the object to be picked up; activating a manipulator coupled to open and close at a front of a bucket at a front end of the robot to move obstacles out of the way and manipulate one or more objects into the bucket; tilting or lifting the bucket and / or actuating the manipulator to retain an object in the bucket; navigating the adjacent robot to a corresponding container for the category; aligning a rear end of the robot with a side of a corresponding container; and lifting the bucket rearwardly over the robot and depositing the objects into corresponding containers.
[0007] To easily identify the discussion of a particular element or act, the most significant digit(s) of a reference number refers to the figure number in which that element is first introduced. [Brief description of the drawings]
[0008] [Figure 1] 1 illustrates a robotic system 100 according to one embodiment. [Figure 2A] A top view of the robot 200 is shown according to one embodiment, with the bucket in a down position and the actuator arms (manipulators) in an open configuration. [Figure 2B] 2 shows a perspective view of a robot 200 according to one embodiment with the bucket in a down position and the manipulator in an open configuration. [Figure 2C] A front view of the robot 200 is shown with the bucket in a down position and the manipulator in an open configuration, according to one embodiment. [Figure 2D] 2 shows a side view of the robot 200 according to one embodiment with the bucket in a down position and the manipulator in an open configuration. [Figure 2E] A top view of the robot 200 is shown according to one embodiment, with the bucket in the up (raised) position and the manipulator in an open configuration. [Figure 2F] A perspective view of the robot 200 is shown according to one embodiment with the bucket in an up (raised) position and the manipulator in an open configuration. [Figure 2G] A front view of the robot 200 is shown with the bucket in the up (raised) position and the manipulator in an open configuration, according to one embodiment. [Figure 2H] A side view of the robot 200 is shown according to one embodiment with the bucket in the up (raised) position and the manipulator in an open configuration. [Figure 2I]A top view of the robot 200 is shown with the bucket in a down position and the manipulator in a closed configuration, according to one embodiment. [Figure 2J] 2 shows a perspective view of a robot 200 according to one embodiment with the bucket in a down position and the manipulator in a closed configuration. [Figure 2K] A front view of the robot 200 is shown with the bucket in a down position and the manipulator in a closed configuration, according to one embodiment. [Figure 2L] 2 shows a side view of the robot 200 according to one embodiment with the bucket in a down position and the manipulator in a closed configuration. [Diagram 3] 1 illustrates an aspect of the subject matter according to one embodiment. [Figure 4A] FIG. 4 is a front view of a robot 400 in another embodiment. [Figure 4B] A robot 400 is shown in a perspective view. [Figure 4C] The robot 400 is shown in a side view. [Figure 4D] The robot 400 is shown with the manipulator facing upwards. [Diagram 5] 5 shows a robot 500 according to yet another embodiment. [Figure 6A] 6 shows a robot 600 according to yet another embodiment. [Figure 6B] 6 shows a robot 600 according to yet another embodiment. [Figure 6C] 6 shows a robot 600 according to yet another embodiment. [Figure 6D] 6 shows a robot 600 according to yet another embodiment. [Figure 7A] 7 illustrates aspects of a robot 700 according to one embodiment. [Figure 7B] 7 illustrates aspects of a robot 700 according to one embodiment. [Figure 7C] 7 illustrates aspects of a robot 700 according to one embodiment. [Figure 7D] 7 illustrates aspects of a robot 700 according to one embodiment. [Figure 8A]1 shows the robot 700 in a lowered bucket position and a lowered grabber position 800a according to one embodiment. [Figure 8B] 8 shows the robot 700 in a lowered bucket position and a raised grabber position 800b according to one embodiment. [Figure 8C] 13 shows a raised bucket position and a raised grabber position 800c of the robot 700 according to one embodiment. [Figure 9] 9 shows a robot 900 according to another embodiment. [Figure 10] 1 illustrates a robotic process 1000 according to one embodiment. [Figure 11] 11 illustrates another robotic process 1100 according to one embodiment. [Figure 12] 12 illustrates a state space map 1200 of a robotic system according to one embodiment. [Figure 13] 1 shows an example of a robot system in sleep mode. [Figure 14A] 1 shows an example of a robotic system in exploration mode. [Figure 14B] 1 shows an example of a robotic system in exploration mode. [Figure 15A] 1 shows an example of a robotic system in a pickup mode. [Figure 15B] 1 shows an example of a robotic system in a pickup mode. [Figure 15C] 1 shows an example of a robotic system in a pickup mode. [Figure 15D] 1 shows an example of a robotic system in a pickup mode. [Figure 15E] 1 shows an example of a robotic system in a pickup mode. [Figure 15F] 1 shows an example of a robotic system in a pickup mode. [Figure 16A] 1 shows an example of a robotic system in drop-off mode. [Figure 16B] 1 shows an example of a robotic system in drop-off mode. [Figure 17] 17 illustrates a robot control algorithm 1700 for a robotic system according to one embodiment. [Figure 18] 18 illustrates a robot control algorithm 1800 for a robotic system according to one embodiment. [Figure 19] 19 illustrates a robot control algorithm 1900 for a robotic system according to one embodiment. [Figure 20] 2 illustrates a robot control algorithm 2000 according to one embodiment. [Figure 21] 2 illustrates a robot control algorithm 2100 according to one embodiment. [Figure 22] 22 illustrates a declutter robot environment 2200 according to one embodiment. [Figure 23A] 23 illustrates an augmented reality robotic interface 2300 according to one embodiment. [Figure 23B] 23 illustrates an augmented reality robotic interface 2300 according to one embodiment. [Figure 23C] 23 illustrates an augmented reality robotic interface 2300 according to one embodiment. [Figure 23D] 23 illustrates an augmented reality robotic interface 2300 according to one embodiment. [Figure 23E] 23 illustrates an augmented reality robotic interface 2300 according to one embodiment. [Figure 24] 24 illustrates an embodiment of a robotic control system 2400 for implementing the system components and process steps described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] An embodiment of a robotic system is disclosed that operates a robot to navigate an environment using cameras to map the type, size, and location of toys, clothing, obstacles, and other objects. The robot is equipped with a neural network to determine the type, size, and location of objects based on images from left and right stereo cameras. For each category of objects that has a corresponding container, the robot selects a specific object in that category to pick up and performs path planning to navigate to a point adjacent and facing the target object. An actuated pusher arm moves other objects out of the way and pushes the target object to be transported into a front bucket. The front bucket tilts slightly up and, optionally, the actuated pusher arm can close forward to hold the object in place while the robot navigates itself to the next location on the planned path. This process is repeated to pick up additional objects of the same category. When a bucket is full, the robot performs additional path planning to drive itself adjacent to a container of that category. The robot then navigates itself to the container, aligns itself to the side of the container, and lifts the bucket to lift the target object over the edge of the container.
[0010] The robotic system may be used for automated organization of surfaces where items left on the surface are automatically deposited in containers on a regular schedule. In one specific embodiment, the system may be used to automatically organize a child's play area (e.g., at a home, school, business, etc.) where toys and / or other items are automatically returned to containers specific to different types of objects after the child is done playing. In other specific embodiments, the system may be used to automatically pick up clothing from the floor and organize it into a laundry basket for washing, or to automatically pick up trash from the floor and place it, for example, by type (plastic, cardboard, glass) in a trash or recycling bin. In general, the system may be deployed to efficiently pick up a wide variety of objects from a surface and learn to pick up new types of objects.
[0011] In some embodiments, the system may include a robotic arm to reach and grab elevated objects and move them down into the bucket. In some embodiments, a companion "portable elevator" robot may be utilized to lift the main robot to a countertop, table, or other elevated surface and return it to the floor. In some embodiments, an up and down vertical lift (e.g., a scissor lift) may be utilized to change the height of the bucket when dropping items into a container, shelf, or other high or elevated location.
[0012] Another variation utilizes an upper and lower vertical lift built into the robot (such as a scissor lift or telescoping lift) that raises both the bucket and actuator arm to countertop or table height to pick up an object from the countertop or table.
[0013] In some embodiments, one or more of the following components may be utilized: · Right and left rotating brush actuator on arm that presses object into bucket. · An actuated gripper that grabs the object and moves it to the bucket. Rotating wheel with flaps that pushes objects into the bucket from above. One servo to lift the front bucket into the air and another servo to dump it forward into a container. A variant of the scissor lift that lifts the bucket and gradually dumps it backwards as it gains height. A ramp with a hinged container and front bucket so that the robot simply pushes the item up the ramp and at the top of the ramp it dumps the item into the container with gravity. Storage bin on robot for additional carrying capacity. Target objects are pushed up a ramp into the storage bin instead of using a front bucket. The storage bin tilts up and back like a dump truck to drop the item into the bin.
[0014] An embodiment of a robotic system is disclosed that operates a Declutter robot in conjunction with an augmented reality robotic interface that is presented to the user as an application. The Declutter robot may use cameras to navigate the environment and map the type, size, and location of toys, clothing, obstacles, and other objects. The robot may include a neural network that determines the type, size, and location of objects based on input from a sensing system, such as images from left and right stereo cameras. The robot may select a specific object to pick up, perform path planning, and navigate to a point adjacent and facing the target object. An actuated grabber pad arm may move other objects out of the way and manipulate the grabber pad to move the target object to be transported over the bucket. The bucket may tilt up slightly and the grabber pad may close forward to keep the object in place while the robot navigates to the next location on the planned path, such as a deposit destination.
[0015] In some embodiments, the system may include a robotic arm to reach and grab elevated objects and move them down into the bucket. In some embodiments, a companion "portable elevator" robot may be utilized to lift the main robot to a countertop, table, or other elevated surface and return it to the floor. In some embodiments, an up and down vertical lift (e.g., a scissor lift) may be utilized to change the height of the bucket when dropping items into a container, shelf, or other high or elevated location.
[0016] In some embodiments, one or more of the following components may be utilized: · Right and left rotating brush actuator on arm that presses object into bucket. · An actuated gripper that grabs the object and moves it to the bucket. Rotating wheel with flaps that pushes objects into the bucket from above. One servo to lift the front bucket into the air and another servo to dump it forward into a container. A variant of the scissor lift that lifts the bucket and gradually dumps it backwards as it gains height. A ramp with a hinged container and front bucket so that the robot simply pushes the item up the ramp and at the top of the ramp it dumps the item into the container with gravity. Storage bin on robot for additional carrying capacity. Target objects are pushed up a ramp into the storage bin instead of using a front bucket. The storage bin tilts up and back like a dump truck to drop the item into the bin.
[0017] The robotic system may be used to automatically organize surfaces, where items left on the surface are automatically deposited in containers on a regular schedule. In one specific embodiment, the system may be used to automatically organize a child's play area (e.g., at a home, school, business, etc.) where toys and other items are automatically returned to containers specific to different types of objects after the child is done playing. In other specific embodiments, the system may be used to automatically pick up clothing from the floor and organize it into laundry baskets for washing, or to automatically pick up trash from the floor and place it, for example, by type (plastic, cardboard, glass) in a trash or recycling bin. In general, the system may be deployed to efficiently pick up a wide variety of different objects from a surface, and may learn to pick up new types of objects.
[0018] The disclosed solution is a method of interacting with the Declutter robot using augmented reality to communicate the following information to the user: - The category / type of each object picked up, How to organize objects by type into bins or other locations; -What object will be picked up next, Problematic objects that the robot cannot move (e.g., too large, heavy, cluttered, dangerous, fragile, etc.); - Obstacles blocking the robot's path.
[0019] The Declutter robot may use a combination of cameras, LIDAR, and other sensors to maintain a global area map of the environment and localize itself within it. Additionally, the Declutter robot may perform object detection and object classification, generating a visual re-identification fingerprint for each object.
[0020] The robot may determine the relative distance and angle for each object. The distance and angle may then be used to localize the objects in a global area map. The global area map along with the object information may then be wirelessly transmitted to an application. The application may be installed on a user's mobile device, a display mounted on the robot, or any other device that provides a convenient display and the ability to accept user input.
[0021] Camera frames may be captured using the mobile device's camera. The augmented reality robot interface application may then perform object detection and object classification to generate a visual re-identification fingerprint for each object. Additionally, a ground plane may be detected in the camera frames. The smartphone may then localize on a global area map using a combination of the ground plane, object type, and the re-identification fingerprint. The object may be re-identified using the type, location, and re-identification fingerprint.
[0022] Information may then be overlaid on top of the camera frame indicating the object type and a user indicator to ask the user for assistance. If the user assists with a task (e.g., moving an obstacle or clearing a large object), the user may be thanked. The user may also click on the object and give the robot instructions such as changing the object type or changing what to pick up next.
[0023] The disclosed algorithms improve upon the traditional use of augmented reality deployed as an application on smart or mobile devices such as smartphones or tablets, providing a simple approach for ordinary users of technology to interact with consumer robotics. Using the disclosed algorithms, mobile devices and declutter robots can be placed at separate stations in a declutter area and communicate with each other regarding the same objects detected in the area, regardless of the location and orientation of each device in the environment. In one embodiment, the augmented reality robot interface can be deployed as an application on a computer or laptop device, a game console connected to a television, or other electronic system. This electronic system can present visual information to the user, accept user input, and wirelessly connect to the declutter robot as described below.
[0024] The disclosed solution provides a way to visualize the declutter robot's understanding of objects in the environment using a mobile device such as a smartphone, and then interface with a mobile device application (the disclosed augmented reality robot interface) to allow the robot to request assistance and allow the user to instruct the robot on how to tidy up.
[0025] Rather than needing an advanced background in computer coding to instruct the robot, users in the consumer market sector can easily instruct the Declutter robot on how they would like to organize and put away detected objects. The Declutter robot may also explicitly instruct the user on how it can best assist with organization, such as how to help put away problematic objects (i.e., objects that are too large, difficult to pick up, fragile, etc.). In addition to detecting and considering the different perspectives and viewpoints that the Declutter robot and a user with a mobile device may have regarding the declutter area, the disclosed solution may take advantage of this difference. For example, the Declutter robot can help see the location of objects hidden from the user's view by furniture or other obstacles.
[0026] The disclosed interface may visually show the user which objects will be picked up by the Declutter robot, the type or category detected for each object, and which available bin the object will be sorted into. The user may be able to change the object category so that the object can be placed in a different bin than the robot's selected default. Using the disclosed algorithms, the robot may request assistance from the user to sort objects with which the robot finds a problem, such as objects that are too large, messy, fragile, pose a hazard, or block the robot's path in a way that it cannot solve on its own. The augmented reality robot interface may allow the user to select which object to pick up next and which objects to skip.
[0027] A novel algorithm for wirelessly synchronizing a global area map of the declutter area between the robot and the application and for re-identifying objects in the global area map, as well as an algorithm for localizing the mobile device's camera in the global area map, are incorporated into the disclosed augmented reality robot interface. Since the augmented reality robot interface focuses on clearing objects from the floor of the declutter area, the global area map used by the declutter robot or the global area map may be a two-dimensional map. In the augmented reality, the ground plane and the starting location of the object may be detected along with the object category and the re-identification fingerprint. This information may be used to localize the mobile device on the global area map.
[0028] In one embodiment, the augmented reality robot interface may be used to gamify the organization task. The application may, for example, display an object for the user to put away and an object for the robot to put away, and a contest to see which one will put the object away first. In one embodiment, the augmented reality robot interface may be used to ask the Declutter robot to fetch a particular item and either put it away or bring it to the user. For example, the Declutter robot may be asked to bring the TV remote to the user. In one embodiment, the augmented reality robot interface may be used to assist the user in organizing items in their home in the absence of the Declutter robot.
[0029] In one embodiment, the augmented reality robot interface may be deployed on the Declutter robot itself, eliminating the need for a separate mobile device. The robot may include a built-in speaker to provide audio messages and alerts to communicate information such as object categories, intended pick-up order, problem objects, etc. Additionally, the Declutter robot may include a microphone and voice recognition capabilities to accept voice commands from a user. In one embodiment, the Declutter robot may be configured with a touch screen that may display a global area map and objects and accept user input. The Declutter robot may include visual indicators that change color depending on the type of object picked up. The robot may include a pointing capability, such as a colored laser, to indicate a particular object along with an audio message.
[0030] In one embodiment, the mobile device may be capable of mapping the declutter regions and transmitting that information to the declutter robot. In this way, the mobile device may update a global area map of the environment with areas not yet explored by the robot. The augmented reality robot interface may in one embodiment map the declutter regions and objects in a view based on the mobile device's camera frame, and in another embodiment display the global area map in a top-down two-dimensional view. In another embodiment, the map is displayed from the robot's ground perspective, allowing the user to see objects that are under furniture or that are occluded from the mobile device's camera frame.
[0031] 1 illustrates one embodiment of a robotic system 100. The robotic system 100 accepts inputs from one or more sensors 102 and one or more cameras 104 and provides these inputs for processing in localization logic 106, mapping logic 108, and perception logic 110. Output of the processing logic is provided to the robotic system's 100 path planner 112, pickup planner 114, and motion controller 116, which drives the system's motor and servo controllers 118.
[0032] One or more of the localization logic 106, mapping logic 108, and perception logic 110 may be located and / or executed on the mobile robot or may be executed on a computing device in wireless communication with the robot, such as a mobile phone, laptop computer, tablet computer, or desktop computer. In some embodiments, one or more of the localization logic 106, mapping logic 108, and perception logic 110 may be located and / or executed in the "cloud", i.e., a computer system coupled to the robot via the Internet or other network.
[0033] The perception logic 110 is actuated by an image segmentation activation 144 signal and utilizes any one or more well-known image segmentation and object recognition algorithms to detect objects within the field of view of the camera 104. Additionally, the perception logic 110 may provide calibration and object 120 signals for mapping purposes. The localization logic 106 uses any one or more well-known algorithms to localize the mobile robot in its environment. The localization logic 106 outputs a reference frame transformation, a local to global transformation 122, which the mapping logic 108 combines with the calibration and object 120 signals to generate an environment map 124 for the pickup planner 114 and object tracking 126 signals for the path planner 112.
[0034] In addition to the object tracking 126 signal from the mapping logic 108, the path planner 112 further utilizes the current state of the system 128 from the system state settings 130, a synchronization signal 132 from the pickup planner 114, and movement feedback 134 from the motion controller 116. The path planner 112 converts these inputs into navigation waypoints 136 that drive the motion controller 116. The pickup planner 114 converts the local perception with input of image segmentation 138 from the perception logic 110, the environment map 124 from the mapping logic 108, and the synchronization signal 132 from the path planner 112 into manipulation actions 140 (e.g., of a robotic capture device, bucket) to the motion controller 116. Embodiments of the algorithms utilized by the path planner 112 and the pickup planner 114 are described in further detail below.
[0035] In one embodiment, a simultaneous localization and mapping (SLAM) algorithm may be used to generate a global map and simultaneously localize the robot on the map. Many SLAM algorithms are known in the art and commercially available.
[0036] The motion controller 116 converts the navigation waypoints 136 , manipulation actions 140 , and local perception with image segmentation 138 signals into target movement 142 signals to the motor and servo controller 118 .
[0037] 2A-2L show the robot 200 in various configurations of lift buckets and actuator arms. The robot 200 may be configured to operate according to the algorithms disclosed herein. The robot 200 may utilize a front bucket (bucket 202) that seals tightly with a surface, and a pusher arm (manipulator actuator arm 204) can push items on the surface and urge items onto the bucket 202 for transporting them. (The terms "bucket" and "shovel" are used interchangeably herein to refer to the robot's object storage container.) For example, this allows the robot to pick up several small items, such as LEGOs or marbles, simultaneously without dropping them.
[0038] The robot 200 may utilize stereo cameras 206 along with machine learning / neural network software architectures (e.g., semi-supervised or supervised convolutional neural networks) to efficiently classify the type, size, and location of various objects in an environment map. The robot 200 may utilize both forward and rear facing cameras 206 to scan both forward and rearward. The bucket 202 may rotate back up on a single actuation arm (bucket actuator arm 208) to allow a single servo / motor to lift the bucket 202 slightly off the floor to transport objects and to lift and dump the bucket 202 from the top of a container using the same servo / motor. In this way, the height of the robot 200 is kept low to pick up items under chairs or sofas (for example), but can still lift and dump items into taller containers.
[0039] The manipulator actuator arm 204 includes a manipulator brush 210 with bristles set at a slight angle (relative to the surface) that may access under flat objects (e.g., flat LEGO sheets or puzzle pieces) and tumble / roll them onto the pickup bucket 202. Additionally, the use of an angled manipulator brush 210 can facilitate the capture of high friction objects such as rubber balls or toys. Applying horizontal pressure while slightly getting under the object with the manipulator actuator arm 204 helps pick up the object while preventing jamming.
[0040] In one embodiment, two motors are used to move the robot 200 around its environment, and two servos are utilized on the left and right manipulator actuator arms 204, with one servo utilized to lift the bucket 202 back up to dump items into a container. Using fewer motors / servos reduces cost, reduces weight, and improves reliability of the robot 200. Using a bucket 202 with servos allows the bucket 202 to tilt back up slightly, lifting it off the ground. This allows multiple items to be transported simultaneously while avoiding obstacles and over steps without dropping them. The manipulator actuator arms 204 form a wedge-shaped "V" in front of the robot 200, allowing it to navigate messy / cluttered environments where items are pushed left and right while moving, like a split-plow. This allows the robot 200 to navigate through messy / cluttered environments without getting stuck and prevents items from getting underneath the robot 200 where they may get wrapped around the wheels or other drive mechanisms. Additionally, this prevents unwanted objects from riding up on the bucket 202.
[0041] The robot 200 may use the manipulator actuator arm 204 to navigate the environment and organize items on the floor into piles before attempting to pick up any items into the bucket 202. This utilizes the available floor space to organize items by category. The manipulator actuator arm 204 is a multi-purpose tool in that it can not only push target objects into the bucket 202 for pickup, but also organize items into piles on the floor.
[0042] In some embodiments, the robot 200 may be in a "fast cleanup mode" where it indiscriminately picks up objects and places them in a single container or against a wall as quickly as possible. In this mode, the robot 200 may bypass many of the actions and states described below, such as sorting, waypoint path planning, and binning.
[0043] Containers (shown in other figures) may be placed in the environment and are configured with labels having categories that are simultaneously machine readable and human readable. Replacing the label of a container changes the type of objects organized in the container. This allows the robot 200 to work alongside humans to help clean up messy / cluttered rooms. It also facilitates changing the category of objects for organization.
[0044] The bucket 202 may include a unique shape (described herein with respect to the bucket 202 positioned flat on the floor) that allows it to (both) maintain a tight seal 302 against the floor so that small objects can be pressed against it (in FIG. 3 ), and the bucket 202 may include adjacent protrusions 304 and recesses 306 to retain objects within the bucket 202 and prevent round objects from rolling out. The recesses 306 transition into an extended back surface 308 (which may be curved) that is shaped to act as a slide and funnel when inverted. Additionally, the extended back surface 308 may be angled toward the back surface of the robot 200 (away from the bucket 202) to reduce the overall height of the robot 200.
[0045] The bucket 202 may utilize a hinge mechanism that allows the robot to tilt forward to dump unwanted items as it travels backwards. This may be driven by the same servo that allows the bucket 202 to lift upwards and back. This mechanism may be used to allow it to drop back down to the floor if it is picked up incorrectly. The collection members (e.g., manipulator brush 210) on the manipulator actuator arms 204 may utilize compressible foam pads. The compressible foam pads allow both manipulator actuator arms 204 to work together to grab and hold objects in front of the robot 200. This provides a useful way to manipulate specific objects, for example, to organize categories of objects into clusters or to clear a path. For example, the object may be moved to an area with less clutter or to a pile of similar items on the floor before picking up the target object.
[0046] A user may configure custom categories of objects, for example, via a mobile phone application, to organize previously unlearned object types. For example, a user may do this by using the mobile phone application to create a custom label and take a picture of the custom objects that the user wants to organize into a container with the label.
[0047] The robot 200 may, in certain embodiments, include some or all of the following components: 3D printed (or injection molded) plastic robot chassis. Two brushless planetary geared DC motors driving the robot wheels. Two small servos that move the left and right pusher arms. 1 medium servo that lifts the bucket up and back. 3D printed (or injection moulded) brush strip with mount for pusher arm. -3D printed (or injection molded) front buckets. Two front wheels with mounts, ball bearings, metal shafts, and coupling connectors. Two rear caster wheels that can rotate to allow the robot to turn freely. · 4 RGB digital cameras to collect visual data. LED lights used to give the robot light in a dark room. A microcontroller with an embedded GPU to run machine learning algorithms (e.g. Jetson Nano®). -24V Li-ion battery to power the robot. A custom circuit board that contains the battery charger circuitry, provides power management for the sensors, and includes an inertial measurement unit. A rigid metal beam that contains 3D printed (or injection molded) mounts and ball bearings and is lifted by a servo to allow the front bucket to be lifted upwards and back. An infrared sensor that is attached to the front of the robot to detect stairs and possible falls.
[0048] The robot chassis contains mounts for components such as motors, servos, batteries, and microcontrollers.
[0049] 4A-4C show various views of an alternative embodiment robot 400 including a camera 402, a lift actuator arm 404, a collection member 406, a bucket 408, and a linear actuator 410. The robot 400 may be configured to operate according to the algorithms disclosed in the present application.
[0050] 5 illustrates yet another embodiment of a robot 500 including a bucket 502, a camera 504, a manipulator actuator arm 506, a collection member 508, and a bucket actuator arm 510. The robot 500 may be configured to operate according to the algorithms disclosed herein.
[0051] 6A-6D show yet another embodiment of a robot 600. The robot 600 includes a bucket 602, a camera 604, a manipulator actuator arm 606, a collection member 608, a bucket actuator arm 610, and a manipulator lift arm 612. The robot 600 may be configured to operate according to the algorithms disclosed herein.
[0052] 7A-7D show additional aspects of a robot 700 according to one embodiment. FIG. 7A shows a side view of the robot 700, and FIG. 7B shows a top view. The robot 700 may include a chassis 702, a mobility system 704, a sensing system 706, a control system 708, and a capture and containment system 710. Additionally, the capture and containment system 710 may include a bucket 712, a bucket lift arm 714, a bucket lift arm pivot point 716, two manipulator members 718, two manipulator arms 720, and two arm pivot points 722. FIGs. 7C and 7D show side and top views, respectively, of the chassis 702 along with typical connectivity of the sensing system 706, mobility system 704, and communications 724 components to the control system 708. Additionally, sensing system 706 may include cameras, such as a front camera 726 and a rear camera 728, light detection and ranging (LIDAR) sensors, such as a front LIDAR sensor 730 and a rear LIDAR sensor 732, and inertial measurement unit (IMU) sensors, such as an IMU sensor 734. In some embodiments, front camera 726 may include a front right camera 736 and a front left camera 738. In some embodiments, rear camera 728 may include a rear left camera 740 (742) and a rear right camera 742 (740).
[0053] The chassis 702 may support and house other components of the robot 700. The mobility system 704 may include not only wheels as shown, but also caterpillar tracks, conveyor belts, and the like, as is well understood in the art. Additionally, the mobility system 704 may include motors, servos, or sources of rotational or kinetic energy to propel the robot 700 along a desired path. Mobility system components may be mounted to the chassis 702 for purposes of moving the entire declutter robot without impeding or impeding the range of movement required by the capture and containment system 710. In at least some configurations of the chassis 702, bucket 712, manipulator members 718, and manipulator arms 720 relative to one another, elements of the sensing system 706, such as cameras, LIDAR sensors, or other components, may be mounted to the chassis 702 in positions that provide the robot 700 with a clear line of sight around the environment.
[0054] The chassis 702 may house and protect a control system 708, which in some embodiments includes a processor, memory, and connections to a mobility system 704, a sensing system 706, a capture and containment system 710, and communications 724. The chassis 702 may house other electronic components, such as batteries, wireless communication devices, etc., as is well understood in the art of robotics. These components may function as a robotic control system 2400, which is described in more detail with respect to FIG. 24 .
[0055] The capture and containment system 710 may include a bucket 712, a bucket lift arm 714, a bucket lift arm pivot point 716, a manipulator member 718, a manipulator arm 720, a manipulator pivot point 744, and an arm pivot point 722. The shape of the bucket 712 and the arrangement of the manipulator member 718 and the manipulator arm 720 relative to the bucket 712 may describe a containment area in which an object may be safely transported. Servos for the bucket lift arm pivot point 716, the manipulator pivot point 744, and the arm pivot point 722 may be used to adjust the arrangement of the bucket 712, the manipulator member 718, and the manipulator arm 720 between a fully lowered bucket and grabber position and a raised bucket and grabber position.
[0056] In some embodiments, gripping surfaces may be configured on the sides of the manipulator members 718 that face inward toward the object being lifted. These gripping surfaces may provide cushioning, grit, resiliency, or some other feature that increases friction between the manipulator members 718 and the object being captured and stored. In some embodiments, the manipulator members 718 may be configured with sweeping bristles. These sweeping bristles may aid in moving small objects from the floor and onto the bucket 712. In some embodiments, the sweeping bristles are angled downward and inward from the manipulator members 718 such that when the manipulator members 718 sweep an object toward the bucket 712, the sweeping bristles form a slope that allows the frontmost bristles to slide under the object and point the object upward toward the manipulator members 718. This facilitates capture of the object in the bucket and reduces the tendency for the object to be pushed against the floor, increasing friction and making it more difficult to move.
[0057] Rubber objects are typically more difficult to pick up than less elastic objects because they tend to stick and jam. The forward-facing bristles are intended to reduce this friction, preventing such elastic objects from rolling and jamming. In another embodiment, the gripping surface may utilize a low-friction material such as PTFE (polytetrafluoroethylene).
[0058] 8A-8C show a robot 700 as introduced in connection with FIGS. 7A-7D, for which a grabber pad arm may be servo controlled at the same contact point with the chassis as the bucket. The robot 700 may be seen positioned in a lowered bucket and grabber position 800a, a lowered bucket and grabber position 800b, and a raised bucket and grabber position 800c. This robot 700 may be configured to execute the algorithms disclosed herein.
[0059] 9 shows another embodiment of a robot 900 including a bucket 902, a bucket actuator arm 910, a camera 904, and a manipulator actuator arm 906 for a collection member 908. The manipulator actuator arm 906 extends from and is attached to the bucket 902.
[0060] FIG. 10 illustrates a robotics process 1000 in one embodiment. In block 1002, the robotics process 1000 wakes up the robot sleeping at the base station. In block 1004, the robotics process 1000 navigates the robot around the environment using cameras to map the type, size, and location of toys, clothing, obstacles, and other objects. In block 1006, the robotics process 1000 operates a neural network to determine the type, size, and location of objects based on images from the left and right stereo cameras. In open-loop block 1008, the robotics process 1000 runs for each category of objects along with a corresponding container. In block 1010, the robotics process 1000 selects a particular object to pick up within the category. In block 1012, the robotics process 1000 performs path planning. In block 1014, the robotics process 1000 navigates adjacent to and facing the target object. In block 1016, the robotic process 1000 actuates the arm to move other objects out of the way and push the target object into the front bucket. In block 1018, the robotic process 1000 tilts the front bucket up to hold the object in the bucket (creating a "bowl" configuration of buckets). In block 1020, the robotic process 1000 actuates the arm to close in front, moving the object out from under the wheels while the robot navigates to the next location. In block 1022, the robotic process 1000 performs path planning and navigation adjacent to a container of the current object category for collection. In block 1024, the robotic process 1000 aligns the robot to the side of the container. In block 1026, the robotic process 1000 lifts the bucket back up to lift the target object over the side of the container. In block 1028, the robotic process 1000 returns the robot to the base station.
[0061] In a less sophisticated mode of operation, the robot may opportunistically pick up objects in its field of view and drop them into a container without first building a global map of the environment. For example, the robot may simply explore until it finds an object to pick up, then explore again until it finds a matching container. This approach may work effectively in a single-room environment where the area to explore is limited.
[0062] Figure 11 further illustrates the robotic process 1100 in one embodiment. An illustrative example of the robotic process 1100 is shown as a graphical sequence in Figures 13-16B, where the robotic system sequences through an embodiment of a state space map 1200, as shown in Figure 12.
[0063] The sequence starts with the robot sleeping (sleep state 1202) and charging at the base station (Fig. 13 and block 1102). The robot is woken up, for example according to a schedule, and enters exploration mode (environment exploration state 1204, wake action 1206, schedule start time 1208, Figs. 14A and 14B). In environment exploration state 1204, the robot scans the environment using the camera (and other sensors), updates the environment map, and localizes its position on the map (exploration at intervals configured in blocks 1104, 1210). The robot can return to sleep state 1202 from environment exploration state 1204, provided that it has no more objects to pick up at 1212 or the battery is low at 1214.
[0064] From the environment exploration state 1204, the robot can transition to an object organization state 1216, in which the robot operates to move items on the floor and organize them by category at 1218. This transition may be triggered by the robot determining that objects are too close together on the floor at 1220, or by the robot determining that the path to one or more objects is obstructed at 1222. If neither of these trigger conditions are met, the robot may transition directly from the environment exploration state 1204 to the object pickup state 1224 under conditions where the environment map contains at least one drop-off container for the object's category at 1226. There are unobstructed items for pickup within the container's category at 1228. Similarly, the robot may transition from the object organization state 1216 to the object pickup state 1224 under these latter conditions. The robot may transition from the object organization state 1216 back to the environment exploration state 1204 under conditions where there are no objects ready for pickup at 1230.
[0065] In the environment exploration state 1204 and / or object organization state 1216, image data from the camera is processed to identify different objects (block 1106). The robot selects a particular object type / category to pick up, determines the next waypoint to navigate to, and determines the location of the target object and type to pick up based on the map of the environment (blocks 1108, 1110, 1112).
[0066] In the object pickup state 1224, the robot selects a goal location adjacent to the target object (block 1114). The robot uses a path planning algorithm to navigate itself to its new location while avoiding obstacles (FIG. 15A). The robot actuates the left and right pusher arms to create an opening large enough for the target object to fit through, but not so large that other unwanted objects are collected as the robot is driven forward (block 1116). The robot is driven forward so that the target object is between the left and right pusher arms, which work together to push the target object into a collection bucket (FIGS. 15B, 15C and block 1118).
[0067] The robot may continue in the object pickup state 1224 to identify other target objects of the selected type to pick up based on the map of the environment. If other such objects are detected, the robot selects a new goal location adjacent to the target object. Using a path planning algorithm, it navigates itself to the new location, avoiding obstacles (FIG. 15D) while still delivering the previously collected target object. The robot actuates the left and right pusher arms to create an opening large enough for the target object to fit through, but not so large that other unwanted objects are collected as the robot is driven forward. The robot is driven forward such that the next target object is between the left and right pusher arms (FIG. 15E). Again, the left and right pusher arms work together to push the target object into the collection bucket (FIG. 15F).
[0068] Under the condition that all identified objects in the category are picked up at 1232 or if the bucket is at capacity at 1234, the robot transitions to the Object Drop Off state at 1236 and uses a map of the environment to select a goal location adjacent to the bin for the type of object collected and uses a path planning algorithm to navigate itself to the new location while avoiding obstacles (block 1120). The robot backs up towards the bin and assumes a docking position where the back of the robot is aligned with the back of the bin (FIG. 16A and block 1122). The robot lifts the bucket back up and rotates on a rigid arm at the back of the robot (block 1124). This lifts the target object above the top of the bin and dumps it into the bin (FIG. 16B).
[0069] From the object drop off state 1236, the robot may transition back to the environment exploration state 1204, provided that it has more items to pick up at 1238 or has an incomplete map of the environment at 1240. The robot may resume exploration and repeat the process for each other type of object in the environment that has an associated collection bin (block 1126).
[0070] Alternatively, the robot may transition from the object drop off state 1236 to the sleep state 1202, provided that it has no more objects to pick up at 1212 or the battery is low at 1214. When the battery is sufficiently charged, or at the next wake-up or scheduled pick-up interval, the robot may resume searching and repeat the process for each other type of object in the environment that has an associated collection bin (block 1126).
[0071] 17 illustrates a robotic control algorithm 1700 for a robotic system in one embodiment. The robotic control algorithm 1700 begins with selecting one or more categories of objects to organize (block 1702). Within the selected category(s), groupings are identified that determine a target category and a starting location for a path (block 1704). Any of a number of well-known clustering algorithms may be used to identify object groupings within the category(s).
[0072] A path to the starting goal location is formed, which path includes zero or more waypoints (block 1706). Movement feedback is returned to the path planning algorithm. Waypoints may be selected to avoid static and / or dynamic (moving) obstacles (objects not in the target group and / or category). The robot's movement controller is responsible for following the waypoints to the target group (block 1708). The target group is evaluated upon achieving the goal location, including additional qualifications to determine if it is safe to organize (block 1710).
[0073] The robot's perception system is engaged to perform image segmentation (block 1712) to determine a sequence of activations generated by the robot's manipulators (e.g., arms) and positioning system (e.g., wheels) to organize the group (block 1714). The sequence of activations is repeated until the target group is organized or until a failure to organize occurs (which causes a return to block 1710). Engagement of the perception system may be triggered by proximity to the target group. Once the target group is organized, these actions are repeated (block 1716), provided that the robot has sufficient battery life remaining and there are more groups in the category(es) to organize.
[0074] When battery life becomes low, the robot navigates back to the docking station to recharge (block 1718). However, under conditions where there is sufficient battery life and the category(ies) are organized, the robot enters object pickup mode (block 1720) to pick up any of the organized groups and return them to the drop-off container. Furthermore, entering pickup mode may be conditioned on an environment map that includes at least one drop-off container for target objects and the presence of an unobstructed object in the target group for pickup. Under conditions where there is no group of objects ready for pickup, the robot continues to explore the environment (block 1722).
[0075] 18 illustrates a robotic control algorithm 1800 for a robotic system in one embodiment. The robotic control algorithm 1800 begins with selecting one or more categories of objects to organize (block 1802). Within the selected category(s), groupings are identified that determine a target category and a starting location for a path (block 1804). Any of a number of well-known clustering algorithms may be used to identify object groupings within the category(s).
[0076] A path to the starting goal location is formed, which path includes zero or more waypoints (block 1806). Movement feedback is returned to the path planning algorithm. Waypoints may be selected to avoid static and / or dynamic (moving) obstacles (objects not in the target group and / or category). The robot's motion controller is responsible for following the waypoints to the target group (block 1808). The target group is evaluated upon achieving the goal location, including additional qualities to determine if it is safe to organize (block 1810).
[0077] The robot's perception system is engaged to provide image segmentation (block 1812) to determine a sequence of activations generated by the robot's manipulators (e.g., arms) and positioning systems (e.g., wheels) to organize the group (block 1814). The sequence of activations is repeated until the target group is organized or until a failure to organize occurs (which causes a return to block 1810). Engagement of the perception system may be triggered by proximity to the target group. Once the target group is organized, these actions are repeated (block 1816), provided that the robot has sufficient battery life remaining and there are more groups in the category(s) to organize.
[0078] When battery life becomes low, the robot navigates back to the docking station to recharge (block 1818). However, under conditions where there is sufficient battery life and the category(ies) are organized, the robot enters object pickup mode (block 1820) to pick up any of the organized groups and return them to the drop-off container. Furthermore, entering pickup mode may be conditioned on an environment map that includes at least one drop-off container for target objects and the presence of an unobstructed object in the target group for pickup. Under conditions where there is no group of objects ready for pickup, the robot continues to explore the environment (block 1822).
[0079] 19 illustrates a robot control algorithm 1900 for a robotic system in one embodiment. A target object within a selected object category is identified (item, i.e., block 1902) and a goal position for the robot is determined as the adjacent position of the target object (block 1904). A path to the target object is determined as a series of waypoints (block 1906) and the robot is navigated along the path while avoiding obstacles (block 1908).
[0080] Upon reaching the adjacent location, the target object is evaluated to determine if it can be safely manipulated (block 1910). Under conditions that allow safe manipulation of the target object, the robot is manipulated to lift the object using the robot's manipulator arm, e.g., a bucket (block 1912). The robot's perception module may be utilized at this point to analyze the target object and nearby objects to better control the manipulation (block 1914).
[0081] Once the target object is over the bucket or other manipulator arm, it is secured (block 1916). Under the condition that the robot does not have capacity for more objects or is the last object in the selected category(s), an object drop-off mode is initiated (block 1918). If not, the robot may start the process again (block 1902).
[0082] Figure 20 shows a robot control algorithm 2000 according to one embodiment. In block 2002, the left and right cameras of a declutter robot, as described with respect to Figures 7A-7D, or other configurations of robot cameras, may provide inputs that can be used to generate scale-invariant keypoints in the declutter region.
[0083] A "scale-invariant keypoint" or "visual keypoint" in this disclosure refers to a distinctive visual feature that can be maintained across different viewpoints, such as photographs taken from different regions. It may be an aspect in an image captured in a decluttered region, and may be used to identify a feature of the region, or an object in the region, when this feature or object is captured in another image taken at a different angle, at a different scale, or using a different resolution than the original capture.
[0084] Based on images captured by the robot's camera or the mobile device's camera, scale-invariant keypoints may be detected by the declutter robot or the augmented reality robot interface installed on the mobile device. The scale-invariant keypoints can help the declutter robot or the augmented reality robot interface on the mobile device to determine the geometric transformation between the camera frames displaying the matching content. This can help to confirm or fine-tune the estimate of the robot's or mobile device's position within the declutter region.
[0085] Scale-invariant keypoints may be detected, transformed, and matched using algorithms well understood in the art, such as, but not limited to, Scale-Invariant Feature Transform (SIFT), Speeded-Up Robust Features (SURF), Oriented Robust Binary features (ORB), and SuperPoint.
[0086] Objects located in the declutter region can be detected in block 2004 based on input from the left and right cameras, thereby defining the starting location of the object and classifying the object into a category. A re-identification fingerprint can be generated for the object in block 2006, where the re-identification fingerprint is used to determine the visual similarity of future detected objects to this object. The future detected objects may be the same object, may be re-detected as part of an update or transformation of the global area map, or may be similar objects similarly located in the future. The re-identification fingerprint can then be used to help classify the object more quickly.
[0087] At block 2008, the declutter robot may be localized within the declutter region. Input from at least one of a left camera, a right camera, a light detection and ranging (LIDAR) sensor, and an inertial measurement unit (IMU) sensor may be used to determine the declutter robot position. The declutter region may be mapped to create a global area map that includes scale-invariant keypoints, objects, and starting positions of the objects. Objects within the declutter region may be re-identified at block 2010 based on at least one of a starting position, a category, and a re-identification fingerprint. Each object may be assigned a persistent unique identifier at block 2012.
[0088] In block 2014, the declutter robot may receive camera frames from an augmented reality robot interface installed as an application on the mobile device operated by the user, and may update the global area map based on the camera frames with the starting positions and scale-invariant keypoints using a transformation from the camera frame to the global area map. The transformation from the camera frame to the global area map may be searched to find a set of scale-invariant keypoints that match those detected in the mobile camera frames using a particular geometric transformation that may maximize the number of matching keypoints and minimize the number of non-matching keypoints while maintaining geometric consistency.
[0089] In block 2016, user indicators of the object may be generated, which may include next target, target order, dangerous, too big, breakable, cluttered, and obstruction to travel path. The global area map and object details may be transmitted to the mobile device in block 2018, which may include at least one of a visual snapshot of the object, a category, a starting location, a persistent unique identifier, and a user indicator. This information may be transmitted using wireless signaling, such as BlueTooth or Wifi, as supported by the communication 724 module introduced in FIG. 7C and the network interface 2402 introduced in FIG. 24.
[0090] The updated global area map, objects, starting positions, scale-invariant keypoints, and object details may be displayed on the mobile device using the augmented reality robot interface. The augmented reality robot interface may accept user input to the augmented reality robot interface, where the user input indicates object property overrides including changing object type, stow next, not stow, and changing user indicators at block 2020. The object property overrides may be transmitted from the mobile device to the declutter robot and used to update the global area map, user indicators, and object details at block 2022. Returning to block 2018, the declutter robot may retransmit the updated global area map to the mobile device to resynchronize this information.
[0091] FIG. 21 illustrates a robot control algorithm 2100 according to one embodiment. At block 2102, the declutter robot may transmit a global area map representing the declutter region to an augmented reality robot interface installed as an application on a mobile device. The global area map may include object details about objects cluttering the declutter region. The mobile device may include a camera. At block 2104, the augmented reality robot interface application may receive camera frames from the mobile device camera. The camera frames may be used to detect objects in the declutter region and classify them into categories at block 2106.
[0092] At block 2108, a re-identification fingerprint may be generated for the object, where the re-identification fingerprint may be used to determine the visual similarity of future detected objects to this object. The future detected objects may be the same object, may be re-detected as part of an update or transformation of the global area map, or may be similar objects similarly located in the future. The re-identification fingerprint may then be used to help classify the object more quickly.
[0093] At block 2110, a ground plane may be detected in the camera frame. The mobile device may localize in a global area map at block 2112 using at least one of the ground plane, the object, the object category, and the re-identification fingerprint. At block 2114, the object may be re-identified based on at least one of the starting location, the category, and the re-identification fingerprint.
[0094] At block 2116, the user experience may be rendered in an augmented reality robot interface showing the camera frame, the object, a bounding box overlaid on the object, and a user indicator. The augmented reality robot interface may accept user input based on the user's interaction with the user indicator. The user interaction may include clicking or tapping on the user indicator. In one embodiment, the user indicator may include an action performed by the user, and at block 2118, the augmented reality robot interface may detect the user action performed in the declutter area to complete the indicated task. In one embodiment, the user action may be detected based on user confirmation via the augmented reality robot interface, changes recorded between the previous camera frame and the updated camera frame, or information from the declutter robot's cameras and sensors. A display indicator (displaying an indicator) may thank the user for their assistance at block 2120.
[0095] In block 2122, the augmented reality robot interface may display available actions for the object based on the user input (e.g., the user clicking or tapping on a user indicator). The augmented reality robot interface may then accept additional user input selecting at least one of the available actions shown in block 2124. The augmented reality robot interface may transmit object property overrides to the declutter robot in block 2126 based on the additional user input.
[0096] 22 illustrates a declutter robot environment 2200 according to one embodiment. The declutter robot environment 2200 may include a declutter region 2202, scale-invariant keypoints 2204, an object 2206 that clutters the region, a destination bin 2208 (i.e., which may be a container) in which the object 2206 may be placed, a mobile device 2210 having an augmented reality robot interface application 2212 installed and capable of providing a camera frame 2214, and a robot 700.
[0097] The robot 700 may detect features of the declutter area 2202 using sensors and cameras as shown in Figures 7C and 7D. These features may include scale-invariant keypoints 2204 such as walls, corners, furniture, etc. The robot 700 may further detect objects 2206 on the floor of the declutter area 2202 and destination bins 2208 where these objects 2206 may be placed based on categories that the robot 700 may determine based on user input, recognition of similarity to previously handled objects, machine learning, or some combination of these. The robot 700 may further localize itself within the declutter area 2202 using sensors and cameras. The robot 700 may integrate all of this data into a global area map 2216 as described with respect to Figure 20.
[0098] The declutter robot environment 2200 may include a user carrying a mobile device 2210, such as a tablet or smartphone. The mobile device 2210 may have an augmented reality robot interface application 2212 installed thereon that functions according to the present disclosure. The augmented reality robot interface application 2212 may use a camera configured as part of the mobile device 2210 to provide a camera frame 2214. The camera frame 2214 may include a ground plane 2218 that may be identified and used to localize the mobile device 2210 within the declutter robot environment 2200. As a result, information regarding the declutter region 2202 detected by the robot 700 may be transformed according to a camera frame to global area map transformation 2220, allowing the robot 700 and the mobile device 2210 to remain synchronized with respect to objects 2206 within the declutter region 2202 and user indicators and object property overrides applied to those objects 2206. This is described in more detail with respect to FIGS. 20 and 21, and 23A.
[0099] In one embodiment, the global area map 2216 may be a top-down two-dimensional representation of the declutter region 2202. The global area map 2216 may undergo a transformation 2220 from the camera frame to the global area map so that the information detected by the robot 700 is represented in the augmented reality robot interface application 2212 from the user's perspective. The global area map 2216 may be updated to include the mobile device position 2222, the declutter robot position 2224, and the object's starting position 2226. In one embodiment, the augmented reality robot interface application 2212 may further show the mobile device position 2222 and the declutter robot position 2224, which are not shown in this figure.
[0100] 23A illustrates an augmented reality robot interface 2300 according to one embodiment at the start of a declutter session. The augmented reality robot interface 2300 may show a declutter area 2202 including objects 2206 to pick up and destination bins 2208 as introduced in the declutter robot environment 2200 of FIG. 22. A bounding box 2302 and user indicators 2304 may be overlaid on top of the objects 2206 as shown. These may indicate the category 2306 of the objects 2206 and the action the user needs to take with respect to the items in the declutter area 2202. In one embodiment, indicators may be provided in the destination bins 2208 to indicate which category 2306 of objects 2206 are intended to be deposited in each. The robot may make this decision dynamically or may be trained or instructed by the user on the bins to use consistently.
[0101] In the illustrated declutter region 2202, the objects 2206 and destination bins 2208 may be classified as associated with a general category of undetermined 2308 type, a type of musical instrument 2310, a stuffed animal 2312, a plastic toy 2314, an item of clothing 2316, and craft supplies 2318. The bounding boxes 2302 and other indicators associated with the categories 2306 may differ in color, line thickness and style, or other visual characteristics that allow for easy visual distinction.
[0102] The user indicator 2304, illustrated as an exclamation point (!), may identify an action required before decluttering begins. For example, the user may need to return a destination bin to its original state if it is overturned, lost, or misaligned. Uncategorised objects, such as duffel bags, or delicate and large objects, such as guitars, may need to be picked up by the user, not the robot. Other user indicators 2320 may use numbers to indicate the order in which the robot 700 will begin picking up objects 2206 after the user completes the required preliminary actions. For example, the illustrated user indicator 2320 may indicate that the robot 700 is about to begin decluttering by picking up the stuffed animal 2312 after the user action is completed. The user may clear the preliminary action user indicator 2304 by clicking after he or she completes the task. The user may click on the bounding box 2302 or user indicator 2304 associated with the decluttering order to adjust the order in which the robot 700 will pick up the objects 2206.
[0103] The augmented reality robot interface 2300 introduced in FIG. 23A is shown in FIG. 23B after the user indicators 2304 and 2320 have been cleared. The first help action requested by the robot has been completed. The bins are correctly placed and the duffel bag (unspecified category 2308) and guitar (musical instrument 2310) have been cleared from the declutter area 2202. The stuffed animal 2312 has been picked up by the robot 700 and deposited in its designated destination bin. A new user indicator 2322 indicates that the shirt (apparel item 2316) is the next object to be picked up and intended to be deposited in the designated bin.
[0104] In one embodiment, these user indicators 2304 and 2320 may be cleared by the user when they complete a task and observe the robot, may be cleared by the augmented reality robot interface 2300 when the object 2206 is detected as displaced to an acceptable destination location in the camera frame 2214, may be cleared by the robot 700 when it no longer detects the moved object in the path and picks up and deposits the object it is trying to organize, or some combination thereof.
[0105] 23C shows the augmented reality robot interface 2300 after the user indicator 2322 for the item of clothing 2316 has been cleared and the item of clothing 2316 has been placed in its designated bin. The next user indicator 2324 indicates the order in which the plastic toy 2314 is picked up and placed in its designated bin.
[0106] 23D shows the augmented reality robot interface 2300 after the user indicators 2324 of the plastic toys 2314 have been cleared and those items have been placed in their designated bins. User indicators 2326 indicate the order in which the robot 700 will attempt to pick up the craft supplies 2318 for deposit in their designated bins.
[0107] FIG. 23E shows the augmented reality robot interface 2300 after all items have been picked up and placed in their bins, according to one embodiment.
[0108] FIG. 24 illustrates an embodiment of a robotic control system 2400 for implementing the system components and process steps described herein.
[0109] The input devices 2404 (e.g., of a robot or companion device such as a mobile phone or personal computer) contain transducers that convert physical phenomena into machine-internal signals, typically electrical, optical, or magnetic signals. The signals may be wireless in the form of electromagnetic radiation in the radio frequency (RF) range, but more possibly in the infrared or optical range. Examples of input devices 2404 include touch sensors that respond to touch or physical pressure from an object or proximity to a surface of an object, mice that respond to movement across a space or plane, microphones that convert vibrations in a medium (usually air) into device signals, and scanners that convert optical patterns on a two-dimensional or three-dimensional object into device signals. Signals from the input devices 2404 are provided to the memory 2406 via various machine signal conductors (e.g., buses and network interfaces) and circuits.
[0110] The memory 2406, typically known as a first or second level memory device, provides storage of signals received from the input device 2404 (via configurations of matter or states of matter), instructions and information for controlling the operation of the CPU 2408, and signals from the storage device 2410. The memory 2406 and / or the storage device 2410 may store computer-executable instructions, thus forming logic 2412 that, when applied to and executed by the CPU 2408, implements embodiments of the processes disclosed herein.
[0111] Information stored in memory 2406 is typically directly accessible to the device's CPU 2408. Signals input to the device affect the operation of the robotic control system 2400 by causing a reconfiguration of the internal matter / energy state of memory 2406, essentially creating a new machine configuration, and configuring the CPU 2408 with control signals (instructions) and data supplied in conjunction with the control signals.
[0112] A second or third level storage device 2410 may provide slower but larger capacity machine memory functionality. Examples of storage devices 2410 include hard disks, optical disks, large capacity flash memory or other non-volatile memory technologies, magnetic memory, etc.
[0113] The CPU 2408 may change the configuration of the memory 2406 by signals in the storage device 2410. That is, the CPU 2408 may read data and instructions from the storage device 2410 in the memory 2406. This may affect the operation of the CPU 2408 as command and data signals, which may be further provided to the output device 2414. The CPU 2408 may change the contents of the memory 2406 by signaling the machine interface of the memory 2406 to change the internal configuration, and then convert and send signals to the storage device 2410 to change the internal configuration of the material. That is, the data and instructions may be backed up from the memory 2406, which is usually volatile, to the storage device 2410, which is usually non-volatile.
[0114] The output device(s) 2414 are transducers that convert signals received from memory 2406 into physical phenomena, such as vibrations in the air or a machine displaying patterns of light, vibrations (i.e., tactile devices), or patterns of ink or other material (i.e., printers and 3D printers).
[0115] The network interface 2402 accepts signals from the memory 2406 and converts them to electrical, optical, or wireless signals to other machines, typically over a machine network. The network interface 2402 also accepts signals from the machine network and converts them to electrical, optical, or wireless signals to the memory 2406.
[0116] Various functional operations described herein may be implemented in logic, referred to using a noun or noun phrase that reflects the operation or function. For example, an associating operation may be performed by an "associator" or a "correlator." Similarly, switching may be performed by a "switch," selecting by a "selector," etc. "Logic" refers to machine memory circuitry and non-transitory machine-readable media, including machine-executable instructions (software and firmware), and / or circuitry (hardware). The instructions and circuitry include control and / or procedural signals, and / or settings and values (resistance, impedance, capacitance, inductance, current / voltage ratings, etc.) as their material and / or material / energy configurations. The signals, settings, and values may be applied to affect the operation of the device. Magnetic media, electronic circuits, electrical and optical memories (both volatile and non-volatile), and firmware are examples of logic. Logic specifically excludes pure signals or software per se (but does not exclude machine memory that constitutes software and thereby forms a configuration of matter).
[0117] In this disclosure, different components (which may be variously referred to as "units," "circuits," other components, etc.) may be described or claimed as being "configured" to perform one or more tasks or operations. This formulation, i.e., "components" configured to perform one or more tasks, is used herein to refer to structures (i.e., physical things such as electronic circuits). More specifically, this formulation is used to indicate that the structure is arranged to perform one or more tasks during operation. A structure may be said to be "configured" to perform some task even if the structure is not currently in operation. A "credit distribution circuit configured to distribute credits to multiple processor cores" is intended to cover, for example, an integrated circuit having circuitry that performs this function during operation even if the integrated circuit in question is not currently in use (e.g., the power supply is not connected). Thus, a component described or referred to as being "configured" to perform some task refers to something physical, such as a device, circuit, memory, etc. that stores executable program instructions to perform the task. This language is not used herein to refer to something intangible.
[0118] The term "configured" does not mean "configurable." For example, an unprogrammed FPGA is not considered to be "configured" to perform a particular function, even though it may be "configurable" to perform that function after programming.
[0119] Reciting a structure in an accompanying claim as being "configured to" perform one or more tasks is expressly intended to exempt that claim element from the scope of 35 USC 112(f). Thus, any claim in this application that does not otherwise include a "means for performing a function" structure is not to be construed under 35 USC 112(f).
[0120] As used herein, the phrase "based on" is used to describe one or more factors that influence the determination. This phrase does not exclude the possibility that additional factors may influence the determination. That is, the determination may be based solely on the identified factors, or based on the identified factors and other unidentified factors. Also consider the phrase "determining A based on B." This phrase specifies that B is a factor used to determine A or that influences the determination of A. This phrase does not exclude the possibility that the determination of A may also be based on other factors, such as C. This phrase is also intended to cover embodiments in which A is determined solely based on B. As used herein, the phrase "based on" is synonymous with the phrase "based at least in part on."
[0121] As used herein, the phrase "in response to" is used to describe one or more factors that trigger the effect. This phrase does not exclude the possibility that additional factors may affect or otherwise trigger the effect. That is, the effect may be responsive only to those factors, or to the identified factors and other unidentified factors. Also, consider the phrase "performing A in response to B." This phrase specifies that B is a factor that triggers the execution of A. This phrase does not exclude the possibility that the execution of A may also be in response to other factors, such as C. This phrase is also intended to cover embodiments in which A is performed only in response to B.
[0122] As used herein, the terms "first," "second," etc. are used as markers of the noun they precede and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless otherwise specified. For example, in a register file having eight registers, the terms "first register" and "second register" can be used to refer to any two of the eight registers and cannot, for example, be used to refer only to logical registers 0 and 1.
[0123] When used in the claims, the term "or" is used as an inclusive or and not an exclusive or. For example, the phrase "at least one of x, y, or z" means any one of x, y, and z, and any combination thereof.
[0124] As used herein, the repetition of "and / or" in reference to more than one element shall be interpreted to mean only one element or a combination of elements. For example, "element A, element B, and / or element C" may include element A only, element B only, element C only, elements A and element B, elements A and element C, elements B and element C, or elements A, B and C. In addition, "at least one of element A or element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B. Furthermore, "at least one of element A and element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B.
[0125] The subject matter of the present disclosure is described herein with particularity in order to meet statutory requirements. However, the description itself is not intended to limit the scope of the disclosure. Rather, the inventors contemplate that the claimed subject matter may be implemented in other manners, in combination with other current or future technologies, to include different steps or combinations of steps similar to those described herein. Furthermore, although the terms "step" and / or "block" may be used to refer to different elements of the methods employed herein, the terms should not be construed as implying a particular order between or among the various steps disclosed herein, unless the order of the individual steps is explicitly described.
[0126] Having thus described the exemplary embodiments in detail, it will be apparent that modifications and variations are possible without departing from the scope of the invention as set forth in the claims, the scope of which is not limited to the described embodiments, but is instead set forth in the following claims. [Explanation of symbols]
[0127] 100 Robot System 102 Sensors 104 Camera 106 Localization Logic 108 Mapping Logic 110 Perceptual Logic 112 Path Planner 114 Pickup Planner 116 Motion Controller 118 Motor and servo controllers 120 Calibration and Objects 122 Local to Global Conversion 124 Environment Maps 126 Object Tracking 128 Current Status 130 System Status Settings 132 Synchronization signal 134 Movement Feedback 136 Navigation Waypoints 138 Local Perception with Image Segmentation 140 Operation Actions 142 Target Movement 144 Image Segmentation Startup 200 Robots 202 Bucket 204 Manipulator Actuator Arm 206 Camera 208 Bucket actuator arm 210 Manipulator Brush 302 Seal 304 Convex 306 Recess 308 Extended Back 400 Robots 402 Camera 404 Lift Actuator Arm 406 Collected Materials 408 Bucket 410 Linear Actuator 500 Robots 502 Bucket 504 Camera 506 Manipulator Actuator Arm 508 Collected Materials 510 Bucket Actuator Arm 600 Robots 602 Bucket 604 Camera 606 Manipulator Actuator Arm 608 Collected Materials 610 Bucket Actuator Arm 612 Manipulator Lift Arm 700 Robots 702 Chassis 704 Mobility System 706 Sensing System 708 Control System 710 Capture and Containment Systems 712 Bucket 714 Bucket lift arm 716 Bucket lift arm pivot point 718 Manipulator parts 720 Manipulator Arm 722 Arm pivot point 724 Communications 726 Front Camera 728 Rear Camera 730 Front LIDAR Sensor 732 Rear LIDAR Sensor 734 IMU Sensor 736 Front Right Camera 738 Front Left Camera 740 Rear left camera 742 Rear right camera 744 Manipulator pivot point 800a Lowered bucket position and lowered grabber position 800b Bucket position lowered and grabber position raised 800c Bucket position raised and grabber position raised 900 Robot 902 Bucket 904 Camera 906 Manipulator Actuator Arm 908 Collected Materials 910 Bucket Actuator Arm 1000 Robot Processes 1002 Block 1004 Block 1006 Block 1008 Open Loop Block 1010 Block 1012 Block 1014 Block 1016 Block 1018 Block 1020 Block 1022 blocks 1024 blocks 1026 blocks 1028 blocks 1100 Robot Process 1102 Block 1104 Block Block 1106 1108 Block 1110 Block 1112 Block 1114 Block 1116 Block 1118 Block 1120 Block 1122 Block 1124 Block 1126 Block 1200 State Space Map 1202 Sleeping 1204 Environmental exploration state 1206 Launch Action 1208 Schedule start time 1210 Searching at configured intervals 1212 Object to pick up is missing 1214 Battery is low 1216 Object organization state 1218 Move items around the floor and organize them by category 1220 Objects too close together on floor 1222 Path to one or more objects is obstructed 1224 Object Pickup State 1226 The environment map contains at least one drop-off container for the object category. 1228 There are unencumbered items available for pickup in the container category 1230 No objects ready for pickup All identified objects in the 1232 category are picked up. 1234 Bucket is full 1236 Object Drop Off State 1238 More items to pick up 1240 Incomplete map of the environment 1700 Robot Control Algorithms 1702 Block 1704 Block 1706 Block 1708 Block 1710 Block 1712 Block 1714 Block 1716 Block 1718 Block 1720 Block 1722 Block 1800 Robot Control Algorithms 1802 Block 1804 Block 1806 Block 1808 Block 1810 Block 1812 Block 1814 Block 1816 Block 1818 Block 1820 Block 1822 Block 1900 Robot Control Algorithm 1902 items 1904 items 1906 items 1908 items 1910 items 1912 items 1914 items 1916 items 1918 items 2000 Robot Control Algorithm 2002 Block 2004 Block 2006 Block 2008 Block 2010 Block 2012 Block 2014 Block 2016 Block 2018 Block 2020 Block 2022 Block 2100 Robot Control Algorithm 2102 Block 2104 Block 2106 Block 2108 Block 2110 Block 2112 Block 2114 Block 2116 Block 2118 Block 2120 Block 2122 Block 2124 Block 2126 Block 2200 Declutter Robot Environment 2202 Declutter Region 2204 Scale-invariant keypoints 2206 Object 2208 Destination bottle 2210 Mobile Devices 2212 Augmented Reality Robot Interface Application 2214 Camera Frame 2216 Global Area Map 2218 Ground surface 2220 Conversion of camera frames to global area maps 2222 Mobile Device Location 2224 Declutter Robot Position 2226 Starting position of object 2300 Augmented Reality Robot Interface 2302 Bounding Box 2304 User Indicator 2306 Categories 2308 Undefined Category 2310 Musical Instruments 2312 Plush Toy 2314 Plastic toys 2316 Clothing 2318 Craft supplies 2320 User Indicator 2322 User Indicator 2324 User Indicator 2326 User Indicator 2400 Robot Control System 2402 Network Interface 2404 Input Devices 2406 Memory 2408 CPU 2410 Storage Device 2412 Logic 2414 Output Device
Claims
1. associating each of a plurality of object categories for objects in an environment with a corresponding container located within the environment; Activating the robot on the base station; and navigating the robot around the environment using a camera to map the type, size, and location of the objects, For each object category, selecting one or more of the objects to pick up within a category; performing path planning from a current position of the robot to one or more of the objects to be picked up; navigating to one or more adjacent points of the object for pick-up; activating a manipulator coupled to open and close at a front of a bucket at a front end of the robot to move obstacles out of the way and manipulate one or more of the objects into the bucket; tilting or lifting the bucket and / or actuating the manipulator to retain the object in the bucket; navigating the robot adjacent to a corresponding container for the category; aligning a rear end of the robot with a corresponding side of the container; lifting the bucket onto the robot towards the rear end and depositing the object into the corresponding container; and classifying the object into the category. The objects to be deposited are associated with corresponding containers based on the categories; moreover, generating scale-invariant keypoints in decluttered regions of the environment based on inputs from a left camera and a right camera; detecting a position of the object within the declutter region based on the inputs from the left and right cameras, thereby defining a start position; localizing the robot within the declutter region based on inputs from at least one of the left camera, the right camera, a light detection and ranging (LIDAR) sensor, and an inertial measurement unit (IMU) sensor to determine a robot position; mapping the decluttered region to create a scale-invariant global area map that includes the keypoints, the objects, and the starting locations; and re-identifying the object based on at least one of the starting location and the category.
2. The method of claim 1 , further comprising: manipulating the robot to organize the objects in the environment into clusters, each cluster including only objects from one of the categories.
3. moreover, operating at least one first arm to actuate the manipulator of the robot to move obstacles out of the way and manipulate one or more of the objects into the bucket; and manipulating at least one second arm to tilt or lift the bucket.
4. each first arm is paired with a corresponding second arm; The method of claim 1 , further comprising the step of operating each of said first and second arm pairings from a common pivot point.
5. The method of claim 1 , wherein actuating the manipulator of the robot to move an obstacle out of the way comprises actuating the manipulator to form a wedge in front of the bucket.
6. The method of claim 5 , wherein actuating the manipulator to retain the object in the bucket comprises actuating the manipulator to form a barrier in front of the bucket.
7. The method of claim 1 , further comprising operating a neural network to determine the type, size, and location of the object from images from the camera.
8. moreover, assigning a persistent unique identifier to the object; Receiving a camera frame from an augmented reality robot interface installed as an application on a mobile device; updating the global area map based on the camera frame with the starting position and the scale-invariant keypoints using a camera frame to global area map transformation; generating an indicator for the object; The method of claim 1 , wherein the indicators include one or more of: next target, target order, dangerous, too large, fragile, cluttered, and obstruction to path of travel.
9. moreover, transmitting the global area map and object details to the mobile device, the object details including at least one of a visual snapshot, the category, the starting location, the persistent unique identifier, and the indicator of the object; displaying the updated global area map, the object, the starting position, the scale-invariant keypoints, and the details of the object on the mobile device using the augmented reality robotic interface; accepting inputs to the augmented reality robot interface, the inputs indicating object property overrides including changes in object category, next stow, next not stow, and changes in user indicators; transmitting the object property overrides from the mobile device to the robot; and updating the global area map, the indicator, and the details of the object based on the overrides of object properties.
10. 1. A robot system comprising: Robots and A base station; a plurality of containers, each associated with one or more object categories; Mobile applications and and logic for navigating the robot around an environment including a plurality of objects and for mapping object types, sizes, and locations. For each category, the logic comprises: Selecting one or more of the objects to pick up within the category; performing path planning for the object to be picked up; Navigate to each adjacent point of said object to be picked up; activating a manipulator coupled to open and close a front of a bucket at a front end of the robot to move obstacles out of the way and manipulate one or more of the objects into the bucket; tilting and lifting the bucket and / or actuating the manipulator to hold the object to be picked up in the bucket; navigating the robot adjacent to a corresponding container for the category; aligning a rear end of the robot with a corresponding side of the container; lifting the bucket onto the robot toward the rear end and depositing the object to be picked up into a corresponding container; classifying said object into said category; The objects to be deposited are associated with corresponding containers based on the categories; moreover, generating scale-invariant keypoints in decluttered regions of the environment based on inputs from a left camera and a right camera; Detecting a position of the object within the declutter region based on the inputs from the left camera and the right camera, thereby defining a starting position; localizing the robot within the declutter region to determine a robot position; and logic for mapping the decluttered region to create a scale-invariant global area map that includes the keypoints, the object, and the starting location.
11. The system of claim 10 , further comprising logic for operating the robot to organize the objects in the environment into clusters, each cluster including only objects from one of the categories.
12. The robot includes at least one first arm and at least one second arm; 11. The system of claim 10, further comprising logic to actuate the manipulator of the robot to move obstacles out of the way, to push one or more of the objects into the bucket, and to manipulate at least one of the second arms to tilt or lift the bucket.
13. each first arm is paired with a corresponding second arm; The system of claim 10 , wherein each pairing of the first arm and the second arm has a common pivot point.
14. The system of claim 10 , further comprising logic for actuating the manipulator of the robot to form a wedge in front of the bucket.
15. The system of claim 14 , further comprising logic for actuating the manipulator to form a closed barrier in front of the bucket.
16. The system of claim 10 , further comprising a neural network configured to determine the type, size, and location of the object from an image from a camera.
17. The system of claim 10 , further comprising logic to re-identify the object based on at least one of the starting location and the category.
18. 20. The system of claim 17, further comprising logic to classify the object as one or more of: dangerous, too large, fragile, and cluttered.
Citation Information
Patent Citations
Kinematic design for robotic arm
US9827678B1