Nova Patents
WO2012091814A2

Mobile robot system

Abstract

A robot system (1600) includes a mobile robot (100) having a controller (500) executing a control system (510) for controlling operation of the robot, a cloud computing service (1620) in communication with the controller of the robot, and a remote computing device (310) in communication with the cloud computing service. The remote computing device communicates with the robot through the cloud computing service.

WO2012091814A2, drawing sheet 1
Sheet 1 of 52

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

81 claims: 48 independent, 33 dependent

  1. 1
    WHAT IS CLAIMED IS:1. A robot system (1600) comprising: a mobile robot (100) having a controller (500) executing a control system (510) for controlling operation of the robot (100);a cloud computing service (1620) in communication with the controller (500) of the robot (100);and a remote computing device (310, 1604) in communication with the cloud computing service (1620), the remote computing device (310, 1604) communicating with the robot (100) through the cloud computing service (1620).
  2. 5
    The robot system (1600) of any of claims 1-4, wherein the remote computing device (310, 1604) executes an application (1610, 1610b) providing remote teleoperation of the robot (100), preferably the application (1610, 1610b) provides controls for at least one of driving the robot (100), altering a pose of the robot (100), viewing video from a camera (320, 450) of the robot (100), and operating a camera (320, 450) of the robot (100).
  3. 6
    The robot system (1600) of any of claims 1-5, wherein the remote computing device (310, 1604) executes an application (1610, 1610c) providing video conferencing between a user of the remote computing device (310, 1604) and a third party within view of a camera (320, 450) of the robot (100).
  4. 7
    The robot system (1600) of any of claims 1-6, wherein the remote computing device (310, 1604) executes an application (1610, 1610d) for scheduling usage of the robot and/or an application (1610, 1610e) for monitoring usage and operation of the robot (100).
  5. 8
    The robot system (1600) of any of claims 1-7, wherein the remote computing device (310, 1604) comprises a tablet computer.
  6. 9
    A robot system (1600) comprising:a mobile robot (100) having a controller (500) executing a control system (510) for controlling operation of the robot (100);a computing device (310, 1604) in communication with the controller (500);a cloud computing service (1620) in communication with the computing device (310, 1604);and a portal (1630) in communication with the cloud computing service (1620.
  7. 12
    The robot system (1600) of any of claims 9-11, wherein the computing device (310) includes a touch screen (312).
  8. 13
    The robot system (1600) of any of claims 9-12, wherein the computing device (310, 1604) executes an operating system different from an operating system of the controller (500).
  9. 14
    The robot system (1600) of any of claims 9-13, wherein the computing device (310, 1604) executes at least one application (1610) that collects robot information from the robot (100) and sends the robot information to the cloud computing service (1620).
  10. 15
    The robot system (1600) of any of claims 9-14, wherein the robot (100) comprises:a base (120) defining a vertical center axis (Z) and supporting the controller (500);a holonomic drive system (200) supported by the base (120), the drive system (200) having first, second, and third drive wheels (210a-c), each trilaterally spaced about the vertical center axis (Z) and each having a drive direction (DR, Drive) perpendicular to a radial axis (X, F, Slip) with respect to the vertical center axis (Z);an extendable leg (130) extending upward from the base (120);and a torso (140) supported by the leg (130), actuation of the leg (130) causing a change in elevation (HT) of the torso (140), the computing device (310) detachably supported above the torso (140).
  11. 17
    A robot system (1600) comprising:a mobile robot (100) having a controller (500) executing a control system (510) for controlling operation of the robot (100);a computing device (310) in communication with the controller (500);a mediating security device (350) controlling communications between the controller (500) and the computing device (310);a cloud computing service (1620) in communication with the computing device (310);and a portal (1630) in communication with cloud computing service (1620).
  12. 20
    The robot system (1600) of any of claims 17-19, wherein the computing device (310) communicates wirelessly with the robot controller (500), preferably the computing device (310) comprises a tablet computer and/or is releasably attachable to the robot (100).
  13. 21
    The robot system (1600) of any of claims 17-20, wherein the portal (1630) comprises a web-based portal (1630) providing access to content.
  14. 22
    The robot system (1600) of any of claims 17-21, wherein the portal (1630) receives robot information from the robot (100) through the cloud computing service (1620) and/or the robot (100) receives user information from the portal (1630) through the cloud computing service (1620).
  15. 23
    The robot system (1600) of any of claims 17-22, wherein the computing device (310) accesses cloud storage (1622) using the cloud computing service (1620).
  16. 24
    The robot system (1600) of any of claims 17-23, wherein the computing device (310) executes at least one application (1610) that collects robot information from the robot (100) and sends the robot information to the cloud computing service (1620).
  17. 25
    A method of operating a mobile robot (100), the method comprising:receiving a layout map (1810) corresponding to an environment (10) of the robot (100);moving the robot (100) in the environment (10) to a layout map location (1812, 1814) on the layout map (1810);recording a robot map location (1822) on a robot map (1820) corresponding to the environment (10) and produced by the robot (100);determining a distortion between the robot map (1820) and the layout map (1810) using the recorded robot map locations (1822) and the corresponding layout map locations (1812);and applying the determined distortion to a target layout map location (1814) to determine a corresponding target robot map location (1824).
  18. 28
    The method of any of claims 25-27, further comprising:determining a scaling size, origin mapping, and rotation between the layout map (1810) and the robot map (1820) using existing layout map locations (1812) and recorded robot map locations (1822);and resolving a target robot map location (1824) corresponding to the target layout map location (1814).
  19. 30
    The method of any of claims 25-29, further comprising determining a triangulation (1910) between layout map locations (1812, 1912) that bound the target layout map location (1814, 1914).
  20. 32
    The method of any of claims 25-31 , further comprising:determining distances between all layout map locations (1812, 1912) and the target layout map location (1814, 1914);determining a centroid (2012) of the layout map locations (1812, 1912);determining a centroid (2022) of all recorded robot map locations (1822, 1922);and for each layout map location (1812, 1912), determining a rotation and a length scaling to transform a first vector (2014) running from the layout map centroid (2012) to the target layout location (1814, 1914) into a second vector (2024) running from the robot map centroid (2022) to the target robot map location (1824, 1924).
  21. 33
    The method of any of claims 25-32, further comprising producing the robot map (1810) using a sensor system (400) of the robot (100).
  22. 40
    The method of any of claims 34-39, further comprising emitting the light onto the scene (10) in intermittent pulses, preferably altering a frequency of the emitted light pulses.
  23. 41
    A robot system (1600) comprising:a mobile robot (100) comprising: a controller (500) executing a control system (510) for controlling operation of the robot (100);and a sensor system (400) in communication with the controller (500);and a cloud computing service (1620) in communication with the controller (500) of the robot (100);wherein the cloud computing service (1620): receives data (1601) from the controller (500);processes the data (1601);and returns processed resultant (1607, 1609) to the controller (500).
  24. 44
    The robot system (1600) of any of claims 41-43, wherein the data (1601) comprises raw sensor data and/or data having associated information from the sensor system (400), preferably the data (1601) comprises image data having at least one of accelerometer data traces, odometry data, and a timestamp.
  25. 45
    The robot system (1600) of any of claims 41-44, wherein the cloud computing service (1620) receives image data (1601) from the controller (500) of a scene (10) about the robot (100) and processes the image data (1601) into a 3-D map (1605) and/or a model (1609) of the scene (10).
  26. 48
    The robot system (1600) of any of claims 41-47, wherein the controller (500) communicates the data (1601) to the cloud computing service (1620) wirelessly through a portable computing device (310) in communication with the controller (500), and preferably removably attachable to the robot (100).
  27. 49
    The robot system (1600) of any of claims 41-48, wherein the controller (500) buffers the data (1601) and sends the data (1601) to the cloud computing service (1620) periodically.
  28. 50
    The robot system (1600) of any of claims 41-49, wherein the sensor system (400) comprises at least one of a camera (320), a 3-D imaging sensor (450), a sonar sensor, an ultrasonic sensor, LIDAR, LADAR, an optical sensor, and an infrared sensor.
  29. 51
    A method of operating a mobile robot (100), the method comprising:maneuvering the robot (100) about a scene (10);receiving sensor data (1601) indicative of the scene (10);communicating the sensor data (1601) to a cloud computing service (1620) that processes the received sensor data (1601) and communicates a process resultant (1607, 1609) to the robot (100);and maneuvering the robot (100) in the scene (10) based on the received process resultant (1607, 1609).
  30. 55
    The method of any of claims 51-54, wherein the cloud computing service (1620) at least temporarily stores the received sensor data (1601) in cloud storage (1622) and optionally discards the stored sensor data (1601) after processing the data (1601).
  31. 56
    The method of any of claims 51-55, wherein the sensor data (1601) comprises image data having associated sensor system data, preferably the sensor system data comprising at least one of accelerometer data traces, odometry data, and a timestamp.
  32. 57
    The method of any of claims 51-56, wherein the cloud computing service (1620) receives image data (1601) from the robot (100) and processes the image data (1601) into a 3-D map (1605) and/or model (1609) of the scene (10).
  33. 59
    The method of any of claims 51-56, further comprising periodically communicating the sensor data (1601) to the cloud computing service (1620), the cloud computing service (1620) processing the received image data (1601) after accumulating a threshold sensor data set (1603).
  34. 60
    The method of any of claims 51-59, further comprising communicating the sensor data (1601) to the cloud computing service (1620) wirelessly through a portable computing device (310) in communication with the robot (100), and preferably removably attachable to the robot (100).
  35. 61
    A method of navigating a mobile robot (100), the method comprising:capturing a streaming sequence (1615) of dense images (1611) of a scene (10) about the robot (100) along a locus of motion of the robot (100) at a real-time capture rate;associating annotations (1613) with at least some of the dense images (1611);sending the dense images (1611) and annotations (1613) to a remote server (1620) at a send rate, the send rate being slower than the real-time capture rate;receiving a data set (1607, 1617) from the remote server (1620) after a processing time interval, the data set (1607, 1617) derived from and representing at least a portion of the sequence (1615) of dense images (1611) and corresponding annotations (1613), the data set (1607, 1617) excluding raw image data of the sequence (1615) of dense images (1611);moving the robot (100) with respect to the scene (10) based on the received data set (1607, 1617).
  36. 64
    The method of any of claims 61-63, wherein associating annotations (1613) comprises associating annotations (1613) that reflect hazard events with dense images (1611) captured in a time interval relative to a hazard response of the robot (100).
  37. 65
    The method of any of claims 61-64, wherein associating annotations (1613) comprises associating key- frame identifiers with a subset of the dense images (1611).
  38. 66
    The method of any of claims 61-65, wherein the annotations (1613) comprise a sparse set of 3-D points derived from structure and motion recovery of features tracked between dense images (1611) of the streaming sequence (1615) of dense images (1611).
  39. 68
    The method of any of claims 61-67, wherein the annotations (1613) comprise labels of traversable and non-traversable regions of the scene (10).
  40. 69
    The method of any of claims 61-68, wherein the data set (1607, 1617) comprises one or more texture maps (1607) extracted from the dense images (1611) and/or a terrain map (1607) representing features within the dense images (1611) of the scene (10).
  41. 70
    The method of any of claims 61-69, wherein the data set (1607, 1617) comprises a trained classifier (1625) for classifying features within new dense images (1611) captured of the scene (10).
  42. 71
    A method of abstracting mobile robot environmental data, the method comprising:receiving a sequence (1615) of dense images (1611) of a robot environment (10) from a mobile robot (100) at a receiving rate, the dense images (1611) captured along a locus of motion of the mobile robot (100) at a real-time capture rate, the receiving rate being slower than the real-time capture rate;receiving annotations (1613) associated with at least some of the dense images (1611) in the sequence (1615) of dense images (1611);dispatching a batch processing task for reducing dense data within least some of the dense images (1611) to a data set (1607, 1617) representing at least a portion of the sequence (1615) of dense images (1611);transmitting the data set (1617) to the mobile robot (100), the data set (1607, 1617) excluding raw image data of the sequence (1615) of dense images (161 1).
  43. 74
    The method of any of claims 71-73, wherein the batch processing task comprises accumulating dense image sequences (1615, 1615a) corresponding to a plurality of robot environments (10).
  44. 75
    The method of any of claims 71-74, wherein the batch processing task comprises a plurality of classifiers (1625) and/or training one or more classifiers (1625) on the sequence of dense images (1611).
  45. 76
    The method of any of claims 71-75, wherein the batch processing task comprises:associating annotations (1613) that reflect hazard events with dense images (1611) captured in a time interval relative to a hazard response of the mobile robot (100);and training a classifier (1625) of hazard-related dense images (1611) using the associated hazard event annotations (1613) and corresponding dense images (1611) as training data, preferably to provide a data set (1603, 1607, 1617) of model parameters for the classifier (1625).
  46. 79
    The method of any of claims 71-78, wherein the batch processing task comprises instantiating a scalable plurality of virtual processes (1621) proportionate to a scale of the dense image sequence (1615, 1615 a) to be processed, at least some of the virtual processes (1621) being released after transmission of the data set (1607, 1617).
  47. 80
    The method of any of claims 71-79, wherein the batch processing task comprises instantiating a scalable plurality of virtual storage (1622) proportionate to a scale of the dense image sequence (1615, 1615 a) to be stored, at least some of the virtual storage (1622) being released after transmission of the data set (1607, 1617).
  48. 81
    The method of any of claims 71-80, wherein the batch processing task comprises distributing a scalable plurality of virtual servers (1621) according to one of geographic proximity to the mobile robot (100) and/or network traffic from a plurality of mobile robots (100).
Independent claims48