US20140074287A1 - Positive and negative obstacle avoidance system and method for a mobile robot - Google Patents

Positive and negative obstacle avoidance system and method for a mobile robot Download PDF

Info

Publication number
US20140074287A1
US20140074287A1 US14/001,266 US201314001266A US2014074287A1 US 20140074287 A1 US20140074287 A1 US 20140074287A1 US 201314001266 A US201314001266 A US 201314001266A US 2014074287 A1 US2014074287 A1 US 2014074287A1
Authority
US
United States
Prior art keywords
laser
floor
component
physical environment
mobile robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US14/001,266
Other versions
US8688275B1 (en
Inventor
Matthew LaFary
George Paul
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Adept Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48873949&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20140074287(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority to US14/001,266 priority Critical patent/US8688275B1/en
Application filed by Adept Technology Inc filed Critical Adept Technology Inc
Assigned to ADEPT TECHNOLOGY, INC. reassignment ADEPT TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PAUL, GEORGE
Publication of US20140074287A1 publication Critical patent/US20140074287A1/en
Publication of US8688275B1 publication Critical patent/US8688275B1/en
Application granted granted Critical
Assigned to OMRON ADEPT TECHNOLOGIES, INC. reassignment OMRON ADEPT TECHNOLOGIES, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ADEPT TECHNOLOGY, INC.
Assigned to OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC. reassignment OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC. MERGER AND CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: OMRON ADEPT TECHNOLOGIES, INC., OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC.
Assigned to OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC. reassignment OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE ZIP CODE OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 050335 FRAME: 0535. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: OMRON ADEPT TECHNOLOGIES, INC.
Assigned to OMRON CORPORATION reassignment OMRON CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4061Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40202Human robot coexistence
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/50Miscellaneous

Definitions

  • This invention generally relates to mobile robots. More specifically, the invention is directed to systems and methods for detecting positive and negative obstacles in physical environments through which mobile robots move and preventing the mobile robots from driving into those obstacles.
  • Mobile robots including autonomously-navigating mobile robots, inertially-guided robots, remote-controlled mobile robots, and robots guided by laser targeting, vision systems, roadmaps and beacons, to name a few examples, normally use horizontally-oriented laser sensors to scan the area in the mobile robot's direction of travel and to detect potential obstacles in the mobile robot's path.
  • the horizontally-oriented lasers which typically scan in two-dimensional planes roughly parallel with floor, work reasonably well for detecting objects that extend from the floor in a substantially perpendicular direction, so long as the obstacle intersects the horizontally-oriented scanning plane.
  • Embodiments of the present invention provide methods and systems for ensuring that mobile robots are able to detect and avoid positive obstacles in a physical environment that are typically hard to detect because the obstacles do not extend vertically from the floor. Embodiments of the present invention also help to ensure that mobile robots are able to detect and avoid driving into negative obstacles, such as gaps or holes in the floor, or a flight of stairs.
  • embodiments of the present invention include a positive obstacle avoidance system for use with mobile robots, a negative obstacle avoidance system for use with mobile robots, or both a positive and negative obstacle avoidance system operating in the same mobile robot.
  • the inventive systems and methods work for a variety of different types of mobile robots (also known as “automated guided vehicles” or “AGVs”), including without limitation autonomously-navigating mobile robots, visually-guided robots, telepresence robots, haptic input-guided robots and laser- or beacon-following robots.
  • AGVs automated guided vehicles
  • a positive obstacle avoidance system for use with a mobile robot in a physical environment, comprising a first laser attached to the mobile robot, a memory, a laser controller, a positive obstacle avoidance engine and a propulsion system.
  • the first laser attached to the mobile robot is oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment.
  • the memory stores initial operating parameters and preferences for the positive obstacle avoidance engine, including: (1) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan, (2) a first data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the first data structure representing a location in the physical environment to be avoided by the mobile robot, (3) first laser placement information for the first laser, including the first laser's position on the mobile robot and the first laser's orientation (or tilt angle), and (4) a tolerance profile for the obstacle avoidance system.
  • the tolerance profile typically includes a ceiling offset, a floor offset, a ceiling adjustment angle and a floor adjustment angle.
  • the initial operating parameters may be received from a remote system via a wired or wireless communication interface on the mobile robot, stored in a database onboard the mobile robot, or hard-coded into the program instructions comprising the positive obstacle avoidance engine.
  • the data structure used to store the two-dimensional coordinates representing locations in the physical environment that the mobile robot should avoid may comprise any suitable data structure for organizing and managing two-dimensional coordinate data, as would be known by those skilled in the computer arts, including without limitation, a collection of database records, a linked list, a table, an array, a tree, a heap, or a stack.
  • the data structure of two-dimensional coordinates describes what is known in the art as an “occupancy grid” for the floor plan for the physical environment.
  • the laser controller receives a set of laser readings from the first laser, each laser reading corresponding to a location in the physical environment where the first laser detects a physical obstacle that may or may not need to be avoided by the mobile robot, depending, for example, on whether the object at the location is truly a physical object existing in the path of the mobile robot, or merely a spot on a distant part of the floor or the ceiling of the physical environment.
  • the laser provides laser readings in polar coordinates (angle and distance to the detected obstacle), but other types of laser readings may be suitably used without departing from the scope of the invention.
  • the positive obstacle avoidance engine For each reading in the set of laser readings received from the first laser, the positive obstacle avoidance engine, typically comprising computer software instructions executable on a microprocessor on board the mobile robot, determines whether the reading represents a spot on the floor or the ceiling of the physical environment, or otherwise represents an object existing between the floor and the ceiling that should be avoided by the mobile robot. If the reading identifies an obstacle, rather than a spot on the ceiling or the floor, the positive obstacle avoidance engine stores the x and y coordinates of the laser reading in the first data structure in order to “remember” that location, in accordance with the floor plan, as a location to be avoided.
  • the positive obstacle avoidance engine accomplishes this by first converting the laser reading (theta and r) into a three-dimensional coordinate based on the first plane angle (theta), the first plane distance (r), the first laser position and said first laser tilt in the memory.
  • the three-dimensional coordinate includes an x-component, a y-component and a z-component. Because the first laser may be attached to the mobile robot in a variety of different orientations, so long as its scanning plane is not horizontal (i.e., not parallel to the floor), the formula used to calculate the three-dimensional coordinate depends on the angle of the scanning plane relative to the floor and the direction of travel for the mobile robot.
  • the positive obstacle avoidance engine may be programmed to convert the laser readings into a three-dimensional coordinate (x, y, z) using the formulas:
  • the positive obstacle avoidance engine determines a minimum ceiling height and a maximum floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile.
  • the maximum floor height may be calculated, for example, by using the formula:
  • A the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
  • the minimum ceiling height may be calculated according to the formula:
  • A the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
  • the positive obstacle avoidance engine is considered to have detected a positive obstacle suspended above the floor and below the ceiling.
  • This obstacle could be the horizontal part of a table, a keyboard tray sticking out of a desk or workstation, or some other cantilevered object.
  • the positive obstacle avoidance engine will add the x-component and the y-component of the three-dimensional coordinate (representing the two-dimensional locations on the floor plan beneath the table, keyboard tray or other object) to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot.
  • the positive obstacle avoidance engine builds a data structure of two-dimensional coordinates (or adds new two-dimensional coordinates to a previously-existing data structure) that identifies all of the locations on the floor plan where a positive obstacle has been found.
  • the propulsion system typically comprises a collection of hardware and software components that cause the mobile robot to drive about the physical environment under control of the first data structure. This means the propulsion system prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure by plotting a path around the locations, if possible, or bringing the mobile robot to a stop if no path around the obstacle is available.
  • the mobile robot receives a command from another computer system to move the mobile robot from its current position to a specified location in the physical environment.
  • the mobile robot may include a wired or wireless communication interface to enable receiving such commands
  • the propulsion system may encompass a path planning engine that calculates, in accordance with the floor plan, a path between the current position and the specified location, wherein the path is calculated so as to avoid the locations in the physical environment represented by the first data structure of two-dimensional coordinates.
  • the propulsion system which may include navigation and locomotion components (e.g., motors and wheels and a microcontroller to operate the motors and wheels) automatically drives the mobile robot along the calculated path, thereby avoiding the obstacle.
  • non-horizontal lasers oriented to scan the physical environment in non-horizontal planes may be used to enhance the mobile robot's ability to detect and avoid positive obstacles that do not extend vertically from the floor or intersect the mobile robot's horizontal scanning planes, and are therefore undetected by the mobile robot's horizontal lasers.
  • a second non-horizontal laser may be attached to the mobile robot and oriented to scan the physical environment in a second plane that is also not parallel to the floor of the physical environment.
  • the memory stores a second set of initial operating parameters and preferences for use by the positive obstacle avoidance engine in processing the laser readings from the second non-horizontal laser, including: (1) a second data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the second data structure representing another location in the physical environment to be avoided by the mobile robot, and (2) placement information for the second laser, including a second laser position and a second laser tilt.
  • the laser controller receives a second set of laser readings from the second laser, each laser reading corresponding to a location in the physical environment where the second laser detects a physical obstacle in the second plane.
  • the positive obstacle avoidance engine performs the same calculations for each laser reading received from the second set of laser readings in order to determine whether the detected obstacle represents the expected floor or ceiling, based on distance and angle from the robot, or otherwise represents some obstacle located between the floor and the ceiling in the physical environment that needs to be avoided.
  • the positive obstacle avoidance engine converts each laser reading into a second three-dimensional coordinate based on the second plane angle (theta), the second plane distance (r), the second laser position and the second laser tilt.
  • the positive obstacle avoidance engine determines an minimum allowable ceiling height and a maximum allowable floor height for the second three-dimensional coordinate based on the x-component of the second three-dimensional coordinate, the y-component of the second three-dimensional coordinate and the tolerance profile.
  • the engine determines whether the second z-component lies between the allowable floor height and the allowable ceiling height based on the z-component's distance from the robot. If so, the positive obstacle avoidance engine adds the x-component and the y-component of the second three-dimensional coordinate to the second data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot. In this manner, the positive obstacle avoidance engine builds and populates a second collection or list of two-dimensional coordinates from the floor plan that the mobile robot should avoid while driving about the physical environment.
  • the propulsion system drives the mobile robot about the physical environment under control or influence of the first data structure and the second data structure, while preventing the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in both the first data structure and the second data structure.
  • embodiments of the present invention may in fact store all of the two-dimensional coordinates for both the first laser and the second laser in a single data structure, or a multiplicity of different data structures, instead of two discreet data structures, without departing from the scope of the claimed invention. Any number of data structures may be used, so long as the propulsion system accesses the stored two-dimensional coordinate data to determine which parts of the floor plan should not be driven into by the mobile robot.
  • embodiments of the present invention also provide a negative obstacle avoidance system for use with a mobile robot in a physical environment.
  • the negative obstacle avoidance system operates to prevent the mobile robot from driving into a hole or ditch, driving off the edge of a cliff, or driving across an unacceptably large gap in the floor.
  • the negative obstacle avoidance system does this by comparing currently-received floor distance readings from one or more non-horizontally-oriented lasers with a tolerance profile, which defines, among other things, the largest gap in the floor (i.e., a “gap profile”) that the mobile robot will be permitted to traverse.
  • Embodiments of the present invention also use the tolerance profile settings to avoid recognizing too many false positives in the data, which could arise, for example, when the mobile robot is approaching a relatively safe grating, small bump or small gap in the floor.
  • the tolerance profile settings also reduce the number of false positives that arise when the laser data readings are less than perfect. This might occur, for example, when the laser light coming from the mobile robot strikes something too reflective and at an angle that prevents the light from returning to the sensor, or when the laser light coming from the mobile robot strikes something that is not reflective enough, and therefore absorbs too much of the light for any of it to return to the mobile robot.
  • the negative obstacle avoidance system comprises a first laser attached to the mobile robot, a memory, a laser controller, a negative obstacle avoidance engine and a propulsion system.
  • the first laser is oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment.
  • the memory stores a set of initial operating parameters and preferences for use by the negative obstacle avoidance engine, including: (1) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan, (2) a first data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the first data structure representing locations in the physical environment to be avoided by the mobile robot, (3) first laser placement information for the first laser, including a first laser position and a first laser tilt, and (4) a tolerance profile comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap.
  • the laser controller receives a set of laser readings from said first laser, each laser reading corresponding to a location in the physical environment within said first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot.
  • the negative obstacle avoidance engine first converts each laser reading into a three-dimensional coordinate based on the first plane angle, the first plane distance, the first laser position and the first laser tilt. Next, the negative obstacle avoidance engine determines a maximum allowable floor height and a minimum allowable floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile. The engine then determines if the z-component falls between the maximum allowable floor height and the minimum allowable floor height.
  • the negative obstacle avoidance system changes an indicator, such as a flag in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the coordinate corresponding to the last good floor reading. If the z-component does not fall between the maximum allowable floor height and the minimum allowable floor height, then the negative obstacle avoidance engine determines whether the distance G between the last good floor reading coordinate and the location in the two-dimensional coordinate system defined by the x-component and the y-component exceeds the maximum allowable floor gap stored in the memory.
  • the negative obstacle avoidance engine adds the x-component, the y-component and the last good floor reading coordinates to the first data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot.
  • the propulsion system then drives the mobile robot in the physical environment under control of the first data structure, so as to prevent the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
  • the mobile robot operating under the control of the propulsion system, which itself operates under the influence of the first data structure of two-dimensional coordinates identifying all of the two-dimensional coordinates in the floor plan to be avoided, avoids driving into the gap, ditch or hole, or off of a cliff.
  • a method for avoiding positive obstacles in a mobile robot comprising a memory and a propulsion system.
  • the first step in the method comprises storing the map, the first data structure of two-dimensional coordinates, the first laser placement information and the tolerance profile in the memory.
  • each laser reading in the set of laser readings is automatically processed by the mobile robot by: (1) converting each laser reading into a three-dimensional coordinate based on the first plane angle (theta), said first plane distance (r), the first laser position and the first laser tilt.
  • the three-dimensional coordinate includes an x-component, a y-component and a z-component.
  • a minimum ceiling height and a maximum floor height for the three-dimensional coordinates are determined based on the x-component, the y-component and the tolerance profile.
  • the laser reading is considered to have detected an obstacle that (such as a table surface or overhang) that should be avoided, and the x-component and the y-component of the three-dimensional coordinate (which point to the spot on the floor below the table or overhang) are added to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot.
  • the propulsion system drives the mobile robot in the physical environment under the influence or control of the first data structure.
  • the propulsion system periodically checks the data in the first data structure of two-dimensional coordinates and prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure. By avoiding the spots on the floor below the table or overhang, the mobile robot also avoids driving into the table or overhang. In some embodiments, the mobile robot does its own path planning and navigation.
  • the method further includes the steps of: (1) receiving on the mobile robot a command to move from a current position to a specified location in the physical environment, (2) calculating on the mobile robot, in accordance with the floor plan, a path between the mobile robot's current position and the specified location that avoids the locations in the physical environment represented by the coordinates in the first data structure of two-dimensional coordinates, and (3) activating the propulsion system to automatically drive the mobile robot along the path.
  • the present invention provides a method for avoiding negative obstacles in a physical environment using a mobile robot comprising a memory and a propulsion system.
  • the method begins by storing in the memory a map defining the floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan, a first data structure of two-dimensional coordinates from the floor plan, the two dimensional coordinates in the first data structure representing locations in the physical environment to be avoided by the mobile robot, first laser placement information for a first laser attached to the mobile robot, the first laser being oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment.
  • the first laser placement information includes a first laser position and a first laser tilt, and a tolerance profile comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap.
  • the next step comprises receiving a set of laser readings from the first laser, each laser reading corresponding to a location in the physical environment within the first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot. Then, each laser reading in the set of laser readings is converted into a three-dimensional coordinate based on the first plane angle (theta), said first plane distance (r), the first laser position and the first laser tilt.
  • the three-dimensional coordinate has an x-component, a y-component and a z-component.
  • the mobile robot determines a maximum allowable floor height and a minimum allowable floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile. If the z-component falls between the maximum allowable floor height and the minimum allowable floor height, the mobile robot changes an indicator, such as flag in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the last good floor reading.
  • the mobile robot next determines whether the distance G between the last good floor reading and the location in the two-dimensional coordinate system defined by the x-component and the y-component exceeds the maximum allowable floor gap. If it does, then the system has found a gap in the floor that the mobile robot cannot safely traverse, in which case the system adds the x-component, the y-component and the last good floor reading to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot.
  • the system causes the propulsion system to drive the mobile robot in the physical environment under the influence or control of the first data structure, the propulsion system preventing the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
  • FIG. 2 illustrates, by way of non-limiting example, the placement and orientation of an additional scanning laser in accordance with an exemplary embodiment of the present invention.
  • FIG. 3 contains a schematic diagram that illustrates, by way of non-limiting example, how a scanning laser attached to a mobile robot, and oriented to operate in accordance with exemplary embodiments of a positive obstacle avoidance system of the present invention, detects horizontally-oriented objects in the physical environment where the mobile robot operates.
  • FIG. 4 contains a schematic diagram illustrating, by way of example, how a scanning laser attached to a mobile robot, and oriented to operate in accordance with embodiments of the present invention, detects an unacceptably large gap in the floor of the physical environment.
  • FIG. 5 shows a high-level block diagram illustrating the major physical and logical components of a mobile robot with a positive and negative obstacle avoidance system in accordance with exemplary embodiments of the present invention.
  • FIG. 6 shows, in printed form, an example of the coordinate data in the data structure of two-dimensional coordinates in some embodiments of the present invention.
  • FIG. 7 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5 , operating in accordance with embodiments of the present invention to determine the locations of positive obstacles in the physical environment.
  • FIG. 8 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5 , operating in accordance with embodiments of the present invention to determine the locations of negative obstacles in the physical environment.
  • FIG. 9 illustrates, by way of example only, a known algorithm a mobile robot might use to plan a path between the mobile robot's current position and a particular location in accordance with a map.
  • FIG. 10 illustrates, by way of example, some of the data content of a map file defining a floor plan for the physical environment.
  • the map file is stored in the memory of the mobile robot according to embodiments of the invention.
  • FIG. 11 shows a graphical representation of the map file illustrated in FIG. 10 .
  • FIGS. 1A and 1B together illustrate, by way of non-limiting example, one of the disadvantages of conventional laser-based obstacle avoidance systems for mobile robots.
  • mobile robot 10 is equipped with a horizontally-oriented scanning laser (not shown), which emits laser light rays 15 that fan out in front of the robot in a substantially horizontal plane that is roughly parallel to the floor or other surface upon which the mobile robot travels.
  • a horizontally-oriented scanning laser not shown
  • the laser light rays 15 strike the obstacle 20 and are reflected back to the mobile robot 10 .
  • the obstacle avoidance and locomotion controllers on board mobile robot 10 if any, cause mobile robot 10 to go around obstacle 20 or otherwise brake to come to a stop before mobile robot 10 can collide with the obstacle 20 .
  • This process is sometimes called “laser localization,” or “Monte Carlo localization with a laser.”
  • laser localization or “Monte Carlo localization with a laser.”
  • FIG. 2 illustrates, by way of non-limiting example, the placement and orientation of an additional scanning laser in accordance with an exemplary embodiment of the present invention.
  • scanning laser 27 is attached to mobile robot 10 and oriented so that it emits laser light rays 30 in a plane that is not parallel to the floor of the physical environment. In this orientation, scanning laser 27 emits laser light rays 30 in a plane that is much more likely to intersect with and be reflected from any obstacle, including obstacle 35 , in mobile robot 10 's path.
  • laser light rays 30 are much more likely to be reflected back to mobile robot 10 when mobile robot 10 approaches tables with legs at the ends, protruding keyboard trays, obstacles suspended from the ceiling or suspended from other objects, and the like.
  • the scanning laser 27 may be installed so that the laser light rays 30 emanating from scanning laser 27 fall into a plane that is substantially perpendicular to the floor, scanning the physical environment in a plane that is perpendicular to floor is not required. Orienting the lasers to scan other planes will work just as well or better, depending on the lasers used and the physical environment, so long as the lasers are installed so that they scan in planes that are not parallel to the floor, or more accurately, parallel with the objects that are most likely to form obstacles that the mobile robot needs to avoid, such as tables and keyboard trays.
  • FIG. 3 contains a schematic diagram that illustrates, by way of non-limiting example, how a scanning laser 315 attached to a mobile robot 310 , and oriented to operate in accordance with exemplary embodiments of a positive obstacle avoidance system of the present invention, detects horizontally-oriented objects in mobile robot 10 's path of travel.
  • scanning laser 315 produces laser light rays that intersect with a horizontally-oriented obstacle 320 in mobile robot 310 's path of travel.
  • a multiplicity of laser light rays may strike and be reflected back toward mobile robot 310 , depending on the relative heights of scanning laser 315 and obstacle 320 .
  • FIG. 3 also illustrates the locations of the minimum allowable ceiling height 330 and maximum allowable floor height 335 calculated and used by the positive obstacle avoidance engine, as described herein.
  • the slope in the minimum allowed ceiling height 330 and the maximum allowable floor height 335 , as well as their offsets from the real ceiling 331 and real floor 332 , respectively, permits mobile robots operating according to embodiments of the invention to function properly even though the ceiling or the floor, or both of them, may not be exactly horizontal.
  • the mobile robot 310 will not determine, erroneously, that the floor or the ceiling is an obstacle in its path that must be avoided merely because the floor happens to rise a little, or because the ceiling happens to fall a little, as the distance from the robot increases, so long as the laser readings received by the mobile robot 310 indicate that the object detected is at or below the maximum allowable floor height 335 , or at or above the minimum allowable ceiling height 330 .
  • FIG. 4 contains a schematic diagram illustrating, by way of example, how a scanning laser 415 attached to a mobile robot 410 , and oriented to operate in accordance with embodiments of the present invention, detects an unacceptably large gap 420 in the floor 405 of the physical environment.
  • scanning laser 415 is attached to mobile robot 410 and oriented to scan the physical environment in a plane that intersects the floor 405 .
  • mobile robot 410 has a negative obstacle avoidance engine that is configured to remember the last good floor reading obtained by the engine and constantly compares that last good floor reading with current readings in order to determine if it is safe for the mobile robot 410 to traverse the gap 420 .
  • embodiments of the present invention are typically configured to permit the mobile robot to continue driving over the gaps in the screen or grate because such screens or grates will not pose a risk or danger to the mobile robot 410 .
  • FIG. 5 shows a high-level block diagram illustrating the major physical and logical components of a mobile robot 501 having a positive and negative obstacle avoidance system in accordance with exemplary embodiments of the present invention.
  • the mobile robot 501 includes a non-horizontal laser (or “first laser”) 505 , a non-horizontal laser controller 510 , a positive and negative obstacle avoidance engine 515 , a memory 503 and a propulsion system 550 .
  • the non-horizontal laser 505 on the mobile robot 501 is oriented to scan the physical environment in a first plane (not shown) that is not parallel to the floor of the physical environment.
  • the non-horizontal laser is programmatically coupled to a non-horizontal laser controller 510 , that receives the non-horizontal laser's readings are passes that information along to the positive and negative obstacle avoidance engine 515 .
  • Suitable lasers and laser controllers to use for these purposes may be obtained, for example, from Hokuyo Urg, of Japan (Part Nos. URG-04LX and URG-04LX-UG01).
  • mobile robots operating according embodiments of the present invention will also have one or more other range devices 580 , including another scanning laser, that the mobile robot 501 uses, for example, to scan in a horizontal plane that is parallel to the floor.
  • the horizontally-oriented laser and other range devices 580 send readings to one or more range device controllers 585 , which uses the data to populate the data structure of two-dimensional coordinates 520 with two-dimensional (x,y) coordinates representing locations in the physical environment that the mobile robot 501 should avoid.
  • the other range devices 580 may be very useful, for example, for detecting vertically-oriented objects extending from the floor of the physical environment, which may not be easy to detect with the non-horizontal laser 505 , especially if the non-horizontal laser 505 happens to be oriented to scan in a plane that is perpendicular to floor.
  • the non-horizontal laser 505 happens to be oriented to scan in a plane that is perpendicular to floor.
  • embodiments of the present invention may use a single range device controller to receive readings from both the horizontally-oriented lasers and the non-horizontally-oriented laser.
  • the memory 503 stores initial operating parameters and preferences for the positive obstacle avoidance engine 515 , including a map 530 defining a floor plan 535 representing the physical environment and a two dimensional coordinate system delineating the floor plan 535 .
  • Exemplary data content for a computer file comprising the map 530 is shown in FIG. 10 .
  • FIG. 11 shows a graphical representation of the map 530 .
  • the initial operating parameters stored in the memory 503 also include a data structure of two dimensional coordinates 520 . Each two dimensional coordinate in the data structure 520 represents a location in the physical environment to be avoided by the mobile robot 501 because some obstacle has been detected at that location.
  • coordinates for virtual obstacles 525 may be defined by the system operator and added to the data structure of two-dimensional coordinates to control where mobile robots can and cannot go in the physical environment, even though no physical obstacles exist in those locations.
  • FIG. 6 shows, in printed form, an example of the coordinate data stored in the data structure of two-dimensional coordinates 520 in some embodiments of the present invention.
  • the memory 503 also includes laser placement information 540 for the non-horizontal laser 505 , including the non-horizontal laser 505 's position on the mobile robot 501 and the first laser's tilt angle (both values being relative to the center of the robot, for example).
  • the memory 503 also holds a tolerance profile 545 for use with the positive and negative obstacle avoidance engine 515 .
  • the tolerance profile 545 typically includes a ceiling offset, a floor offset, a ceiling adjustment angle and a floor adjustment angle to be used by the positive and negative obstacle avoidance engine 515 to avoid generating too many false positives caused by sloping ceilings or floors, or variations in the position and tilt of the installed laser.
  • the propulsion system 550 may comprise a combination of hardware, such as motors and wheels 570 , and software processors and/or controllers, such as path planning engine 555 and locomotion controller 560 , that when executed by a microprocessor on board the mobile robot 501 (the microprocessor is not shown), cause the mobile robot 501 to avoid driving into the locations in the physical environment represented by the coordinates in the data structure of two dimensional coordinates 520 .
  • the propulsion system 550 is typically configured to periodically check the coordinates in the data structure 520 in order to ensure, for example, that no coordinates from the data structure 520 will be used in a path planned by the path planning engine 565 .
  • avoiding the locations in the physical environment represented by the coordinates in the data structure 520 will mean calculating paths around the prohibited locations.
  • the mobile robot 501 may slow down and/or come to a complete stop if the path to the current destination is blocked by a prohibited location or because proceeding along the intended path would cause the mobile robot 510 to drive into a gap in the floor.
  • the propulsion system 550 may optionally include a path planning engine 565 , which determines, in accordance with the map 530 and the floor plan 535 for the physical environment, an optimum path the mobile robot 501 should take to travel from its current position in the physical environment to a specified location.
  • path planning engine 565 determines, in accordance with the map 530 and the floor plan 535 for the physical environment, an optimum path the mobile robot 501 should take to travel from its current position in the physical environment to a specified location.
  • FIG. 9 shows a high-level flow diagram illustrating, by way of example, the steps that might be performed by one such path planning engine encompassed by the propulsion system 550 .
  • the path planning engine 555 plans a path that avoids all of the locations that have been identified by the positive and negative obstacle avoidance engine 515 as containing obstacles.
  • FIG. 7 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5 , operating in accordance with embodiments of the present invention to determine the locations of positive obstacles in the physical environment.
  • the first step, step 705 comprises receiving angle and distance information (theta and r) from the non-horizontal laser 505 and non-horizontal laser controller 510 .
  • Step 705 in FIG. 7 also includes initializing certain operating parameters for the positive and negative obstacle avoidance engine 515 .
  • the remaining steps 710 through 725 are performed by the positive and negative obstacle avoidance engine 515 to populate the data structure of two-dimensional coordinates 520 with two-dimensional coordinates representing locations in the physical environment that need to be avoided.
  • the positive and negative obstacle avoidance engine 515 converts the laser reading (theta and r) obtained in step 705 into a three-dimensional coordinate (x, y, z) based on the first plane angle (theta), the first plane distance (r), the first laser position and said first laser tilt stored in the memory 503 at step 705 .
  • the three-dimensional coordinate includes an x-component, a y-component and a z-component.
  • the first laser may be attached to the mobile robot in a variety of different orientations.
  • the positive obstacle avoidance engine is programmed to convert the laser readings into a three-dimensional coordinate (x, y, z) using the formulas:
  • the positive obstacle avoidance engine 515 determines a maximum floor height and a minimum ceiling height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile 545 stored in the memory 503 .
  • the maximum floor height may be calculated according to the formula:
  • A the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
  • the minimum ceiling height may be calculated according to the formula:
  • A the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
  • the positive and negative obstacle avoidance engine 515 determines whether the z-component is between the minimum ceiling height and the maximum floor height. If it is, then the positive and negative obstacle avoidance engine construes this as an indication that the location is occupied by a positive obstacle suspended above the floor, such as the horizontal component of a table, a keyboard tray extending out of a desk or workstation, or possibly some other cantilevered object.
  • the positive obstacle avoidance engine 515 will then add the x-component and the y-component of the three-dimensional coordinate (representing the spot on the floor below the table, keyboard tray or other object) to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot. If there are more distance and angle readings from the non-horizontal laser, then execution returns to step 710 , upon which the next three-dimensional coordinate is processed. In this fashion, the positive obstacle avoidance engine builds the data structure of two-dimensional coordinates (or adds new two-dimensional coordinates to a previously-existing data structure) that identifies all of the locations on the floor plan where a positive obstacle has been found.
  • the data structure of two dimensional coordinates built by the positive and negative obstacle avoidance system may also contain coordinates for obstacles that were found, or could also be found, by a horizontally-oriented laser on the mobile robot.
  • the positive and negative obstacle avoidance system may be configured to operate completely independently from the operation of other obstacle avoidance systems tied, for example, to a horizontally-oriented later on the mobile robot.
  • FIG. 8 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5 , operating in accordance with embodiments of the present invention to determine the locations of negative obstacles in the physical environment.
  • step 805 laser readings are received from the non-horizontal laser 505 and the non-horizontal laser controller 510 .
  • a set of initial operating parameters and preferences for use by the positive and negative obstacle avoidance engine 515 is stored in the memory, including laser placement information for the non-horizontal laser, including a first laser position and a first laser tilt, and a tolerance profile 545 comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap.
  • the positive and negative obstacle avoidance engine converts each laser reading into a three-dimensional coordinate based on the first plane angle, the first plane distance, the first laser position and the first laser tilt.
  • the negative obstacle avoidance engine determines a maximum allowable floor height and a minimum allowable floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile, and determines in step 820 whether the z-component falls between the maximum allowable floor height and the minimum allowable floor height.
  • the positive and negative obstacle avoidance engine 515 changes an indicator, such as a flag, in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the coordinate corresponding to the last good floor reading (step 825 ).
  • the positive and negative obstacle avoidance engine 515 determines whether the distance G between the last good floor reading coordinate and the location in the two-dimensional coordinate system defined by the x-component and the y-component exceeds the maximum allowable floor gap stored in the memory 503 .
  • the positive and negative obstacle avoidance engine 515 adds the x-component, the y-component and the last good floor reading coordinate to the data structure 520 of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot 501 (step 840 ).
  • positive and negative obstacle avoidance engine will have populated the data structure 520 with a list of coordinates that need to be avoided. This information may then be used by a path planning engine, an autonavigation engine, or both.
  • FIG. 9 illustrates, by way of example only, a known algorithm a mobile robot might use to plan a path between the mobile robot's current position and a particular location in accordance with a map and a floor plan delineated by a two-dimensional coordinate system.
  • the steps of the path planning algorithm include receiving the job location (step 905 ), planning a global path to the job location (step 910 ), planning a local path around detected and remembered obstacles (step 915 ), finding an allowable set of movement commands for the mobile robot in order to follow the path (step 925 ) and sending the movement commands to a locomotion controller or motors (step 930 ).

Abstract

Embodiments of the present invention provide methods and systems for ensuring that mobile robots are able to detect and avoid positive obstacles in a physical environment that are typically hard to detect because the obstacles do not exist in the same plane or planes as the mobile robot's horizontally-oriented obstacle detecting lasers. Embodiments of the present invention also help to ensure that mobile robots are able to detect and avoid driving into negative obstacles, such as gaps or holes in the floor, or a flight of stairs. Thus, the invention provides positive and negative obstacle avoidance systems for mobile robots.

Description

    FIELD OF ART
  • This invention generally relates to mobile robots. More specifically, the invention is directed to systems and methods for detecting positive and negative obstacles in physical environments through which mobile robots move and preventing the mobile robots from driving into those obstacles.
  • BACKGROUND ART
  • Mobile robots, including autonomously-navigating mobile robots, inertially-guided robots, remote-controlled mobile robots, and robots guided by laser targeting, vision systems, roadmaps and beacons, to name a few examples, normally use horizontally-oriented laser sensors to scan the area in the mobile robot's direction of travel and to detect potential obstacles in the mobile robot's path. The horizontally-oriented lasers, which typically scan in two-dimensional planes roughly parallel with floor, work reasonably well for detecting objects that extend from the floor in a substantially perpendicular direction, so long as the obstacle intersects the horizontally-oriented scanning plane. However, they do not work well for detecting positive physical obstacles in the mobile robot's path that are parallel to the floor and/or obstacles that are not at the same height as the horizontally-oriented scanning plane. This means the mobile robots frequently have no way of detecting and avoiding positive obstacles, such as long tables with legs at the ends (and no legs in the middle), objects suspended from a ceiling or other structure, and obstacles that stick out from the edge of another object, like a keyboard tray. Mobile robots that use horizontally-oriented lasers for detecting obstacles also have problems detecting and avoiding unexpected negative obstacles, such as a hole in the floor, a descending flight of stairs, the end of a loading dock or the edge of a cliff.
  • Previous attempts to solve these problems have included, for example, attaching a plurality of vertically-oriented or randomly-oriented lasers to the mobile robots and using the vertical or randomly-oriented lasers to detect obstacles parallel to the floor, as well as holes or drop-offs in the floor. However, there have been a number of significant disadvantages associated with such solutions, including prohibitively-high cost associated with installing, using and maintaining a multiplicity of expensive lasers, and an unacceptably high number of false positives arising, for example, from gratings in the floor, which do not necessarily need to be avoided by the mobile robot.
  • SUMMARY OF THE INVENTION
  • Embodiments of the present invention provide methods and systems for ensuring that mobile robots are able to detect and avoid positive obstacles in a physical environment that are typically hard to detect because the obstacles do not extend vertically from the floor. Embodiments of the present invention also help to ensure that mobile robots are able to detect and avoid driving into negative obstacles, such as gaps or holes in the floor, or a flight of stairs. In general, embodiments of the present invention include a positive obstacle avoidance system for use with mobile robots, a negative obstacle avoidance system for use with mobile robots, or both a positive and negative obstacle avoidance system operating in the same mobile robot. The inventive systems and methods work for a variety of different types of mobile robots (also known as “automated guided vehicles” or “AGVs”), including without limitation autonomously-navigating mobile robots, visually-guided robots, telepresence robots, haptic input-guided robots and laser- or beacon-following robots.
  • In one aspect of the invention, there is provided a positive obstacle avoidance system for use with a mobile robot in a physical environment, comprising a first laser attached to the mobile robot, a memory, a laser controller, a positive obstacle avoidance engine and a propulsion system. The first laser attached to the mobile robot is oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment. The memory stores initial operating parameters and preferences for the positive obstacle avoidance engine, including: (1) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan, (2) a first data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the first data structure representing a location in the physical environment to be avoided by the mobile robot, (3) first laser placement information for the first laser, including the first laser's position on the mobile robot and the first laser's orientation (or tilt angle), and (4) a tolerance profile for the obstacle avoidance system. The tolerance profile typically includes a ceiling offset, a floor offset, a ceiling adjustment angle and a floor adjustment angle. Using a tolerance profile in the positive obstacle avoidance engine calculations reduces the number of false positives that might otherwise result if, for example, the floor or the ceiling is not exactly horizontal, or if the laser is not installed at exactly the right height or orientation relative to the floor, the ceiling or the direction of travel. The initial operating parameters may be received from a remote system via a wired or wireless communication interface on the mobile robot, stored in a database onboard the mobile robot, or hard-coded into the program instructions comprising the positive obstacle avoidance engine. The data structure used to store the two-dimensional coordinates representing locations in the physical environment that the mobile robot should avoid may comprise any suitable data structure for organizing and managing two-dimensional coordinate data, as would be known by those skilled in the computer arts, including without limitation, a collection of database records, a linked list, a table, an array, a tree, a heap, or a stack. In some embodiments and applications, the data structure of two-dimensional coordinates describes what is known in the art as an “occupancy grid” for the floor plan for the physical environment.
  • The laser controller receives a set of laser readings from the first laser, each laser reading corresponding to a location in the physical environment where the first laser detects a physical obstacle that may or may not need to be avoided by the mobile robot, depending, for example, on whether the object at the location is truly a physical object existing in the path of the mobile robot, or merely a spot on a distant part of the floor or the ceiling of the physical environment. Typically, the laser provides laser readings in polar coordinates (angle and distance to the detected obstacle), but other types of laser readings may be suitably used without departing from the scope of the invention. Thus, the laser readings received by the laser controller include a first plane angle (theta) and a first plane distance (radius=r) from a given site on the mobile robot.
  • For each reading in the set of laser readings received from the first laser, the positive obstacle avoidance engine, typically comprising computer software instructions executable on a microprocessor on board the mobile robot, determines whether the reading represents a spot on the floor or the ceiling of the physical environment, or otherwise represents an object existing between the floor and the ceiling that should be avoided by the mobile robot. If the reading identifies an obstacle, rather than a spot on the ceiling or the floor, the positive obstacle avoidance engine stores the x and y coordinates of the laser reading in the first data structure in order to “remember” that location, in accordance with the floor plan, as a location to be avoided. The positive obstacle avoidance engine accomplishes this by first converting the laser reading (theta and r) into a three-dimensional coordinate based on the first plane angle (theta), the first plane distance (r), the first laser position and said first laser tilt in the memory. The three-dimensional coordinate includes an x-component, a y-component and a z-component. Because the first laser may be attached to the mobile robot in a variety of different orientations, so long as its scanning plane is not horizontal (i.e., not parallel to the floor), the formula used to calculate the three-dimensional coordinate depends on the angle of the scanning plane relative to the floor and the direction of travel for the mobile robot. So, for example, when the first laser's scanning plane is perpendicular to the floor and parallel to the direction of the mobile robot's direction of travel, the positive obstacle avoidance engine may be programmed to convert the laser readings into a three-dimensional coordinate (x, y, z) using the formulas:

  • x-component=first laser x position+first plane distance*cosine(first plane angle),

  • y-component=first laser y position, and

  • z-component=first laser z position+first plane distance*sin(first plane angle).
  • Next, the positive obstacle avoidance engine determines a minimum ceiling height and a maximum floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile. The maximum floor height may be calculated, for example, by using the formula:

  • maximum floor height=floor offset+A*sin(floor adjustment angle),
  • wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system. The minimum ceiling height may be calculated according to the formula:

  • minimum ceiling height=ceiling offset+A*sin(ceiling adjustment angle),
  • wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
  • If the z-component is between the minimum ceiling height and the maximum floor height, then the positive obstacle avoidance engine is considered to have detected a positive obstacle suspended above the floor and below the ceiling. This obstacle could be the horizontal part of a table, a keyboard tray sticking out of a desk or workstation, or some other cantilevered object. In this case, the positive obstacle avoidance engine will add the x-component and the y-component of the three-dimensional coordinate (representing the two-dimensional locations on the floor plan beneath the table, keyboard tray or other object) to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot. In this fashion, the positive obstacle avoidance engine builds a data structure of two-dimensional coordinates (or adds new two-dimensional coordinates to a previously-existing data structure) that identifies all of the locations on the floor plan where a positive obstacle has been found.
  • The propulsion system typically comprises a collection of hardware and software components that cause the mobile robot to drive about the physical environment under control of the first data structure. This means the propulsion system prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure by plotting a path around the locations, if possible, or bringing the mobile robot to a stop if no path around the obstacle is available. In some embodiments, the mobile robot receives a command from another computer system to move the mobile robot from its current position to a specified location in the physical environment. In such cases, the mobile robot may include a wired or wireless communication interface to enable receiving such commands, and the propulsion system may encompass a path planning engine that calculates, in accordance with the floor plan, a path between the current position and the specified location, wherein the path is calculated so as to avoid the locations in the physical environment represented by the first data structure of two-dimensional coordinates. Then the propulsion system, which may include navigation and locomotion components (e.g., motors and wheels and a microcontroller to operate the motors and wheels) automatically drives the mobile robot along the calculated path, thereby avoiding the obstacle.
  • Multiple non-horizontal lasers oriented to scan the physical environment in non-horizontal planes may be used to enhance the mobile robot's ability to detect and avoid positive obstacles that do not extend vertically from the floor or intersect the mobile robot's horizontal scanning planes, and are therefore undetected by the mobile robot's horizontal lasers. Thus, in addition to the first non-horizontal laser scanning in the first plane, a second non-horizontal laser may be attached to the mobile robot and oriented to scan the physical environment in a second plane that is also not parallel to the floor of the physical environment. In such embodiments, the memory stores a second set of initial operating parameters and preferences for use by the positive obstacle avoidance engine in processing the laser readings from the second non-horizontal laser, including: (1) a second data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the second data structure representing another location in the physical environment to be avoided by the mobile robot, and (2) placement information for the second laser, including a second laser position and a second laser tilt. In this case, the laser controller receives a second set of laser readings from the second laser, each laser reading corresponding to a location in the physical environment where the second laser detects a physical obstacle in the second plane. The positive obstacle avoidance engine performs the same calculations for each laser reading received from the second set of laser readings in order to determine whether the detected obstacle represents the expected floor or ceiling, based on distance and angle from the robot, or otherwise represents some obstacle located between the floor and the ceiling in the physical environment that needs to be avoided. Thus, the positive obstacle avoidance engine converts each laser reading into a second three-dimensional coordinate based on the second plane angle (theta), the second plane distance (r), the second laser position and the second laser tilt. The positive obstacle avoidance engine then determines an minimum allowable ceiling height and a maximum allowable floor height for the second three-dimensional coordinate based on the x-component of the second three-dimensional coordinate, the y-component of the second three-dimensional coordinate and the tolerance profile. Then the engine determines whether the second z-component lies between the allowable floor height and the allowable ceiling height based on the z-component's distance from the robot. If so, the positive obstacle avoidance engine adds the x-component and the y-component of the second three-dimensional coordinate to the second data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot. In this manner, the positive obstacle avoidance engine builds and populates a second collection or list of two-dimensional coordinates from the floor plan that the mobile robot should avoid while driving about the physical environment. The propulsion system drives the mobile robot about the physical environment under control or influence of the first data structure and the second data structure, while preventing the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in both the first data structure and the second data structure. It will be understood by those skilled in the art that embodiments of the present invention may in fact store all of the two-dimensional coordinates for both the first laser and the second laser in a single data structure, or a multiplicity of different data structures, instead of two discreet data structures, without departing from the scope of the claimed invention. Any number of data structures may be used, so long as the propulsion system accesses the stored two-dimensional coordinate data to determine which parts of the floor plan should not be driven into by the mobile robot.
  • In another aspect, embodiments of the present invention also provide a negative obstacle avoidance system for use with a mobile robot in a physical environment. The negative obstacle avoidance system operates to prevent the mobile robot from driving into a hole or ditch, driving off the edge of a cliff, or driving across an unacceptably large gap in the floor. In essence, the negative obstacle avoidance system does this by comparing currently-received floor distance readings from one or more non-horizontally-oriented lasers with a tolerance profile, which defines, among other things, the largest gap in the floor (i.e., a “gap profile”) that the mobile robot will be permitted to traverse. Embodiments of the present invention, however, also use the tolerance profile settings to avoid recognizing too many false positives in the data, which could arise, for example, when the mobile robot is approaching a relatively safe grating, small bump or small gap in the floor. The tolerance profile settings also reduce the number of false positives that arise when the laser data readings are less than perfect. This might occur, for example, when the laser light coming from the mobile robot strikes something too reflective and at an angle that prevents the light from returning to the sensor, or when the laser light coming from the mobile robot strikes something that is not reflective enough, and therefore absorbs too much of the light for any of it to return to the mobile robot.
  • In general, the negative obstacle avoidance system comprises a first laser attached to the mobile robot, a memory, a laser controller, a negative obstacle avoidance engine and a propulsion system. The first laser is oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment. The memory stores a set of initial operating parameters and preferences for use by the negative obstacle avoidance engine, including: (1) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan, (2) a first data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the first data structure representing locations in the physical environment to be avoided by the mobile robot, (3) first laser placement information for the first laser, including a first laser position and a first laser tilt, and (4) a tolerance profile comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap.
  • The laser controller receives a set of laser readings from said first laser, each laser reading corresponding to a location in the physical environment within said first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot. The negative obstacle avoidance engine first converts each laser reading into a three-dimensional coordinate based on the first plane angle, the first plane distance, the first laser position and the first laser tilt. Next, the negative obstacle avoidance engine determines a maximum allowable floor height and a minimum allowable floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile. The engine then determines if the z-component falls between the maximum allowable floor height and the minimum allowable floor height. If it does, the negative obstacle avoidance system changes an indicator, such as a flag in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the coordinate corresponding to the last good floor reading. If the z-component does not fall between the maximum allowable floor height and the minimum allowable floor height, then the negative obstacle avoidance engine determines whether the distance G between the last good floor reading coordinate and the location in the two-dimensional coordinate system defined by the x-component and the y-component exceeds the maximum allowable floor gap stored in the memory. If the distance G exceeds the maximum allowable floor gap, the negative obstacle avoidance engine adds the x-component, the y-component and the last good floor reading coordinates to the first data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot. The propulsion system then drives the mobile robot in the physical environment under control of the first data structure, so as to prevent the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure. Thus, the mobile robot, operating under the control of the propulsion system, which itself operates under the influence of the first data structure of two-dimensional coordinates identifying all of the two-dimensional coordinates in the floor plan to be avoided, avoids driving into the gap, ditch or hole, or off of a cliff.
  • In yet another aspect there is provided a method for avoiding positive obstacles in a mobile robot comprising a memory and a propulsion system. The first step in the method comprises storing the map, the first data structure of two-dimensional coordinates, the first laser placement information and the tolerance profile in the memory. In the next step, a set of laser readings from the first laser are received, each laser reading corresponding to a location in the physical environment where said first laser detects a physical obstacle in the first plane, and each laser reading having a first plane angle (theta) and a first plane distance (radius=r) from a given spot on the mobile robot. Next, each laser reading in the set of laser readings is automatically processed by the mobile robot by: (1) converting each laser reading into a three-dimensional coordinate based on the first plane angle (theta), said first plane distance (r), the first laser position and the first laser tilt. The three-dimensional coordinate includes an x-component, a y-component and a z-component. Then, a minimum ceiling height and a maximum floor height for the three-dimensional coordinates are determined based on the x-component, the y-component and the tolerance profile. If the z-component falls between the minimum ceiling height and the maximum floor height, then the laser reading is considered to have detected an obstacle that (such as a table surface or overhang) that should be avoided, and the x-component and the y-component of the three-dimensional coordinate (which point to the spot on the floor below the table or overhang) are added to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot. In the final step, the propulsion system drives the mobile robot in the physical environment under the influence or control of the first data structure. As previously stated, this means the propulsion system periodically checks the data in the first data structure of two-dimensional coordinates and prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure. By avoiding the spots on the floor below the table or overhang, the mobile robot also avoids driving into the table or overhang. In some embodiments, the mobile robot does its own path planning and navigation. In these embodiments, the method further includes the steps of: (1) receiving on the mobile robot a command to move from a current position to a specified location in the physical environment, (2) calculating on the mobile robot, in accordance with the floor plan, a path between the mobile robot's current position and the specified location that avoids the locations in the physical environment represented by the coordinates in the first data structure of two-dimensional coordinates, and (3) activating the propulsion system to automatically drive the mobile robot along the path.
  • In still another aspect, the present invention provides a method for avoiding negative obstacles in a physical environment using a mobile robot comprising a memory and a propulsion system. In this aspect, the method begins by storing in the memory a map defining the floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan, a first data structure of two-dimensional coordinates from the floor plan, the two dimensional coordinates in the first data structure representing locations in the physical environment to be avoided by the mobile robot, first laser placement information for a first laser attached to the mobile robot, the first laser being oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment. The first laser placement information includes a first laser position and a first laser tilt, and a tolerance profile comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap. The next step comprises receiving a set of laser readings from the first laser, each laser reading corresponding to a location in the physical environment within the first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot. Then, each laser reading in the set of laser readings is converted into a three-dimensional coordinate based on the first plane angle (theta), said first plane distance (r), the first laser position and the first laser tilt. The three-dimensional coordinate has an x-component, a y-component and a z-component. In the next step, the mobile robot determines a maximum allowable floor height and a minimum allowable floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile. If the z-component falls between the maximum allowable floor height and the minimum allowable floor height, the mobile robot changes an indicator, such as flag in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the last good floor reading. However, if the z-component does not fall between the maximum allowable floor height and the minimum allowable floor height, the mobile robot next determines whether the distance G between the last good floor reading and the location in the two-dimensional coordinate system defined by the x-component and the y-component exceeds the maximum allowable floor gap. If it does, then the system has found a gap in the floor that the mobile robot cannot safely traverse, in which case the system adds the x-component, the y-component and the last good floor reading to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot. In the final step of the method, the system causes the propulsion system to drive the mobile robot in the physical environment under the influence or control of the first data structure, the propulsion system preventing the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention and various aspects, features and advantages thereof are explained in more detail below with reference to exemplary and therefore non-limiting embodiments and with the aid of the drawings, which constitute a part of this specification and include depictions of the exemplary embodiments. In these drawings:
  • FIGS. 1A and 1B together illustrate, by way of example, one of the disadvantages of conventional laser-based obstacle avoidance systems for mobile robots.
  • FIG. 2 illustrates, by way of non-limiting example, the placement and orientation of an additional scanning laser in accordance with an exemplary embodiment of the present invention.
  • FIG. 3 contains a schematic diagram that illustrates, by way of non-limiting example, how a scanning laser attached to a mobile robot, and oriented to operate in accordance with exemplary embodiments of a positive obstacle avoidance system of the present invention, detects horizontally-oriented objects in the physical environment where the mobile robot operates.
  • FIG. 4 contains a schematic diagram illustrating, by way of example, how a scanning laser attached to a mobile robot, and oriented to operate in accordance with embodiments of the present invention, detects an unacceptably large gap in the floor of the physical environment.
  • FIG. 5 shows a high-level block diagram illustrating the major physical and logical components of a mobile robot with a positive and negative obstacle avoidance system in accordance with exemplary embodiments of the present invention.
  • FIG. 6 shows, in printed form, an example of the coordinate data in the data structure of two-dimensional coordinates in some embodiments of the present invention.
  • FIG. 7 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5, operating in accordance with embodiments of the present invention to determine the locations of positive obstacles in the physical environment.
  • FIG. 8 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5, operating in accordance with embodiments of the present invention to determine the locations of negative obstacles in the physical environment.
  • FIG. 9 illustrates, by way of example only, a known algorithm a mobile robot might use to plan a path between the mobile robot's current position and a particular location in accordance with a map.
  • FIG. 10 illustrates, by way of example, some of the data content of a map file defining a floor plan for the physical environment. The map file is stored in the memory of the mobile robot according to embodiments of the invention.
  • FIG. 11 shows a graphical representation of the map file illustrated in FIG. 10.
  • DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
  • FIGS. 1A and 1B together illustrate, by way of non-limiting example, one of the disadvantages of conventional laser-based obstacle avoidance systems for mobile robots. As shown in FIGS. 1A and 1B, mobile robot 10 is equipped with a horizontally-oriented scanning laser (not shown), which emits laser light rays 15 that fan out in front of the robot in a substantially horizontal plane that is roughly parallel to the floor or other surface upon which the mobile robot travels. When mobile robot 10 approaches an obstacle that is resting on the floor of the physical environment, or very near the floor, such as obstacle 20 in FIG. 1A, the laser light rays 15 strike the obstacle 20 and are reflected back to the mobile robot 10. Sensors in the laser detect and process the reflections, thereby informing the mobile robot 10 that there is an obstacle 20 in its path that needs to be avoided. Thus, the obstacle avoidance and locomotion controllers on board mobile robot 10, if any, cause mobile robot 10 to go around obstacle 20 or otherwise brake to come to a stop before mobile robot 10 can collide with the obstacle 20. This process is sometimes called “laser localization,” or “Monte Carlo localization with a laser.” However, as shown in FIG. 1B, when mobile robot 10 approaches an obstacle 25 suspended above the floor or travel surface in such a way that obstacle 25 does not lie in the same plane as the laser light rays 15 emanating from the horizontally-oriented laser on mobile robot 10, then the laser light rays 15 will not strike and thus will not be reflected back from obstacle 25. Since mobile robot 10 does not detect light bouncing back at it from the distance corresponding to the location of obstacle 25, it does not “know” that there is an obstacle 25 in its path and, consequently, collides with obstacle 25, potentially causing severe damage to mobile robot 10, obstacle 25, cargo 12, or all of them.
  • Although it would be possible to detect obstacle 25 by raising the scanning laser to a higher position on mobile robot 10, this solution would only lead to mobile robot 10 not being able to detect and avoid colliding with obstacles closer to the floor, such as obstacle 20 shown in FIG. 1A. Depending on the height of the mobile robot, as well as the physical environment where the mobile robot operates, adding a multiplicity of horizontally-oriented scanning lasers to mobile robot 10 in order to account for every possible obstacle may be impractical due to the expense and the trouble of purchasing, installing and maintaining a large number of lasers for every mobile robot in an organization, as well as managing, crunching and using all of the data that such a multiplicity of installed lasers would produce.
  • FIG. 2 illustrates, by way of non-limiting example, the placement and orientation of an additional scanning laser in accordance with an exemplary embodiment of the present invention. As shown in FIG. 2, scanning laser 27 is attached to mobile robot 10 and oriented so that it emits laser light rays 30 in a plane that is not parallel to the floor of the physical environment. In this orientation, scanning laser 27 emits laser light rays 30 in a plane that is much more likely to intersect with and be reflected from any obstacle, including obstacle 35, in mobile robot 10's path. Thus laser light rays 30 are much more likely to be reflected back to mobile robot 10 when mobile robot 10 approaches tables with legs at the ends, protruding keyboard trays, obstacles suspended from the ceiling or suspended from other objects, and the like. Although the scanning laser 27 may be installed so that the laser light rays 30 emanating from scanning laser 27 fall into a plane that is substantially perpendicular to the floor, scanning the physical environment in a plane that is perpendicular to floor is not required. Orienting the lasers to scan other planes will work just as well or better, depending on the lasers used and the physical environment, so long as the lasers are installed so that they scan in planes that are not parallel to the floor, or more accurately, parallel with the objects that are most likely to form obstacles that the mobile robot needs to avoid, such as tables and keyboard trays.
  • FIG. 3 contains a schematic diagram that illustrates, by way of non-limiting example, how a scanning laser 315 attached to a mobile robot 310, and oriented to operate in accordance with exemplary embodiments of a positive obstacle avoidance system of the present invention, detects horizontally-oriented objects in mobile robot 10's path of travel. As shown in FIG. 3, scanning laser 315 produces laser light rays that intersect with a horizontally-oriented obstacle 320 in mobile robot 310's path of travel. As illustrated by FIG. 3, a multiplicity of laser light rays may strike and be reflected back toward mobile robot 310, depending on the relative heights of scanning laser 315 and obstacle 320. It should be understood that, even if scanning laser 315 and obstacle 320 are at exactly the same height, the non-horizontal orientation of the plane of laser light produced by scanning laser 315 ensures that at least some of the laser light rays will strike the obstacle 320. Thus, while mobile robot 310 may not be capable of “seeing” multiple spots on the top surface of obstacle 320 (as shown in FIG. 3), because the obstacle 320 is at the same height as the scanning laser 315, it will still “see” the nearest edge of the horizontally-oriented obstacle as the mobile robot 310 approaches the obstacle 320, and therefore take steps to avoid it, as will be described in more detail below.
  • In accordance with embodiments of the present invention, FIG. 3 also illustrates the locations of the minimum allowable ceiling height 330 and maximum allowable floor height 335 calculated and used by the positive obstacle avoidance engine, as described herein. The slope in the minimum allowed ceiling height 330 and the maximum allowable floor height 335, as well as their offsets from the real ceiling 331 and real floor 332, respectively, permits mobile robots operating according to embodiments of the invention to function properly even though the ceiling or the floor, or both of them, may not be exactly horizontal. Thus, the mobile robot 310 will not determine, erroneously, that the floor or the ceiling is an obstacle in its path that must be avoided merely because the floor happens to rise a little, or because the ceiling happens to fall a little, as the distance from the robot increases, so long as the laser readings received by the mobile robot 310 indicate that the object detected is at or below the maximum allowable floor height 335, or at or above the minimum allowable ceiling height 330.
  • FIG. 4 contains a schematic diagram illustrating, by way of example, how a scanning laser 415 attached to a mobile robot 410, and oriented to operate in accordance with embodiments of the present invention, detects an unacceptably large gap 420 in the floor 405 of the physical environment. As shown in FIG. 4, scanning laser 415 is attached to mobile robot 410 and oriented to scan the physical environment in a plane that intersects the floor 405. As explained herein, mobile robot 410 has a negative obstacle avoidance engine that is configured to remember the last good floor reading obtained by the engine and constantly compares that last good floor reading with current readings in order to determine if it is safe for the mobile robot 410 to traverse the gap 420. If the gaps are small, for example, such as would be the case when the gap is one of the holes in a screen or grate, then embodiments of the present invention are typically configured to permit the mobile robot to continue driving over the gaps in the screen or grate because such screens or grates will not pose a risk or danger to the mobile robot 410.
  • FIG. 5 shows a high-level block diagram illustrating the major physical and logical components of a mobile robot 501 having a positive and negative obstacle avoidance system in accordance with exemplary embodiments of the present invention. As shown in FIG. 5, the mobile robot 501 includes a non-horizontal laser (or “first laser”) 505, a non-horizontal laser controller 510, a positive and negative obstacle avoidance engine 515, a memory 503 and a propulsion system 550. The non-horizontal laser 505 on the mobile robot 501 is oriented to scan the physical environment in a first plane (not shown) that is not parallel to the floor of the physical environment. The non-horizontal laser is programmatically coupled to a non-horizontal laser controller 510, that receives the non-horizontal laser's readings are passes that information along to the positive and negative obstacle avoidance engine 515. Suitable lasers and laser controllers to use for these purposes may be obtained, for example, from Hokuyo Urg, of Japan (Part Nos. URG-04LX and URG-04LX-UG01).
  • Typically, but not necessarily, mobile robots operating according embodiments of the present invention will also have one or more other range devices 580, including another scanning laser, that the mobile robot 501 uses, for example, to scan in a horizontal plane that is parallel to the floor. The horizontally-oriented laser and other range devices 580 send readings to one or more range device controllers 585, which uses the data to populate the data structure of two-dimensional coordinates 520 with two-dimensional (x,y) coordinates representing locations in the physical environment that the mobile robot 501 should avoid. The other range devices 580 may be very useful, for example, for detecting vertically-oriented objects extending from the floor of the physical environment, which may not be easy to detect with the non-horizontal laser 505, especially if the non-horizontal laser 505 happens to be oriented to scan in a plane that is perpendicular to floor. Notably, although shown as separate controllers in FIG. 5, it will be recognized by those skilled in the art, upon reading this disclosure, that embodiments of the present invention may use a single range device controller to receive readings from both the horizontally-oriented lasers and the non-horizontally-oriented laser.
  • The memory 503 stores initial operating parameters and preferences for the positive obstacle avoidance engine 515, including a map 530 defining a floor plan 535 representing the physical environment and a two dimensional coordinate system delineating the floor plan 535. Exemplary data content for a computer file comprising the map 530 is shown in FIG. 10. FIG. 11 shows a graphical representation of the map 530. The initial operating parameters stored in the memory 503 also include a data structure of two dimensional coordinates 520. Each two dimensional coordinate in the data structure 520 represents a location in the physical environment to be avoided by the mobile robot 501 because some obstacle has been detected at that location. In some embodiments, coordinates for virtual obstacles 525, including things like forbidden zones, need to enter zones, single robot zones, robot avoidance zones, one-way zones, and the like, may be defined by the system operator and added to the data structure of two-dimensional coordinates to control where mobile robots can and cannot go in the physical environment, even though no physical obstacles exist in those locations. FIG. 6 shows, in printed form, an example of the coordinate data stored in the data structure of two-dimensional coordinates 520 in some embodiments of the present invention.
  • Returning to FIG. 5, the memory 503 also includes laser placement information 540 for the non-horizontal laser 505, including the non-horizontal laser 505's position on the mobile robot 501 and the first laser's tilt angle (both values being relative to the center of the robot, for example). The memory 503 also holds a tolerance profile 545 for use with the positive and negative obstacle avoidance engine 515. As previously stated, the tolerance profile 545 typically includes a ceiling offset, a floor offset, a ceiling adjustment angle and a floor adjustment angle to be used by the positive and negative obstacle avoidance engine 515 to avoid generating too many false positives caused by sloping ceilings or floors, or variations in the position and tilt of the installed laser.
  • The propulsion system 550 may comprise a combination of hardware, such as motors and wheels 570, and software processors and/or controllers, such as path planning engine 555 and locomotion controller 560, that when executed by a microprocessor on board the mobile robot 501 (the microprocessor is not shown), cause the mobile robot 501 to avoid driving into the locations in the physical environment represented by the coordinates in the data structure of two dimensional coordinates 520. In other words, the propulsion system 550 is typically configured to periodically check the coordinates in the data structure 520 in order to ensure, for example, that no coordinates from the data structure 520 will be used in a path planned by the path planning engine 565. In some embodiments, avoiding the locations in the physical environment represented by the coordinates in the data structure 520 will mean calculating paths around the prohibited locations. In other embodiments, the mobile robot 501 may slow down and/or come to a complete stop if the path to the current destination is blocked by a prohibited location or because proceeding along the intended path would cause the mobile robot 510 to drive into a gap in the floor.
  • As shown in FIG. 5, the propulsion system 550 may optionally include a path planning engine 565, which determines, in accordance with the map 530 and the floor plan 535 for the physical environment, an optimum path the mobile robot 501 should take to travel from its current position in the physical environment to a specified location. A variety of different path planning techniques are known and used by those skilled in the art to accomplish such path planning for mobile robots. FIG. 9, discussed below, shows a high-level flow diagram illustrating, by way of example, the steps that might be performed by one such path planning engine encompassed by the propulsion system 550. Another path planning technique is discussed in detail in Chapter 7 of the book “Artificial Intelligence and Mobile Robots,” First Edition, published in 1998 by AAAI Press, and edited by David Kortenkamp, R. Peter Bonnaso and Robin Murphy. For purposes of the present invention, the path planning engine 555 plans a path that avoids all of the locations that have been identified by the positive and negative obstacle avoidance engine 515 as containing obstacles.
  • FIG. 7 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5, operating in accordance with embodiments of the present invention to determine the locations of positive obstacles in the physical environment. As shown in FIG. 7, the first step, step 705, comprises receiving angle and distance information (theta and r) from the non-horizontal laser 505 and non-horizontal laser controller 510. Step 705 in FIG. 7 also includes initializing certain operating parameters for the positive and negative obstacle avoidance engine 515. The remaining steps 710 through 725 are performed by the positive and negative obstacle avoidance engine 515 to populate the data structure of two-dimensional coordinates 520 with two-dimensional coordinates representing locations in the physical environment that need to be avoided.
  • More specifically, in step 710, the positive and negative obstacle avoidance engine 515 converts the laser reading (theta and r) obtained in step 705 into a three-dimensional coordinate (x, y, z) based on the first plane angle (theta), the first plane distance (r), the first laser position and said first laser tilt stored in the memory 503 at step 705. The three-dimensional coordinate includes an x-component, a y-component and a z-component. As discussed above, the first laser may be attached to the mobile robot in a variety of different orientations. But when the first laser's scanning plane is perpendicular to the floor and parallel to the direction of the mobile robot's direction of travel, the positive obstacle avoidance engine is programmed to convert the laser readings into a three-dimensional coordinate (x, y, z) using the formulas:

  • x-component=first laser x position+first plane distance*cosine(first plane angle),

  • y-component=first laser y position, and

  • z-component=first laser z position+first plane distance*sin(first plane angle).
  • Next, at step 715, the positive obstacle avoidance engine 515 determines a maximum floor height and a minimum ceiling height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile 545 stored in the memory 503. As previously stated, the maximum floor height may be calculated according to the formula:

  • maximum floor height=floor offset+A*sin(floor adjustment angle),
  • where A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system. The minimum ceiling height may be calculated according to the formula:

  • minimum ceiling height=ceiling offset+A*sin(ceiling adjustment angle),
  • where A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
  • Next, at step 720, the positive and negative obstacle avoidance engine 515 determines whether the z-component is between the minimum ceiling height and the maximum floor height. If it is, then the positive and negative obstacle avoidance engine construes this as an indication that the location is occupied by a positive obstacle suspended above the floor, such as the horizontal component of a table, a keyboard tray extending out of a desk or workstation, or possibly some other cantilevered object. Accordingly, at step 725, the positive obstacle avoidance engine 515 will then add the x-component and the y-component of the three-dimensional coordinate (representing the spot on the floor below the table, keyboard tray or other object) to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot. If there are more distance and angle readings from the non-horizontal laser, then execution returns to step 710, upon which the next three-dimensional coordinate is processed. In this fashion, the positive obstacle avoidance engine builds the data structure of two-dimensional coordinates (or adds new two-dimensional coordinates to a previously-existing data structure) that identifies all of the locations on the floor plan where a positive obstacle has been found. Notably, the data structure of two dimensional coordinates built by the positive and negative obstacle avoidance system may also contain coordinates for obstacles that were found, or could also be found, by a horizontally-oriented laser on the mobile robot. In other words, the positive and negative obstacle avoidance system may be configured to operate completely independently from the operation of other obstacle avoidance systems tied, for example, to a horizontally-oriented later on the mobile robot.
  • FIG. 8 shows a high-level flow diagram illustrating steps that may be performed by a positive and negative obstacle avoidance system, like the one shown in FIG. 5, operating in accordance with embodiments of the present invention to determine the locations of negative obstacles in the physical environment. First, in step 805, laser readings are received from the non-horizontal laser 505 and the non-horizontal laser controller 510. Also in this step, a set of initial operating parameters and preferences for use by the positive and negative obstacle avoidance engine 515 is stored in the memory, including laser placement information for the non-horizontal laser, including a first laser position and a first laser tilt, and a tolerance profile 545 comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap.
  • Then, in step 810, the positive and negative obstacle avoidance engine converts each laser reading into a three-dimensional coordinate based on the first plane angle, the first plane distance, the first laser position and the first laser tilt. Next, at step 815, the negative obstacle avoidance engine determines a maximum allowable floor height and a minimum allowable floor height for the three-dimensional coordinate based on the x-component, the y-component and the tolerance profile, and determines in step 820 whether the z-component falls between the maximum allowable floor height and the minimum allowable floor height. If it does, the positive and negative obstacle avoidance engine 515 changes an indicator, such as a flag, in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the coordinate corresponding to the last good floor reading (step 825). On the other hand, if the z-component does not fall between the maximum allowable floor height and the minimum allowable floor height, then, in steps 830 and 835, the positive and negative obstacle avoidance engine 515 determines whether the distance G between the last good floor reading coordinate and the location in the two-dimensional coordinate system defined by the x-component and the y-component exceeds the maximum allowable floor gap stored in the memory 503. If the distance G exceeds the maximum allowable floor gap, the positive and negative obstacle avoidance engine 515 adds the x-component, the y-component and the last good floor reading coordinate to the data structure 520 of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot 501 (step 840). When all of the non-horizontal laser readings are processed, positive and negative obstacle avoidance engine will have populated the data structure 520 with a list of coordinates that need to be avoided. This information may then be used by a path planning engine, an autonavigation engine, or both.
  • FIG. 9 illustrates, by way of example only, a known algorithm a mobile robot might use to plan a path between the mobile robot's current position and a particular location in accordance with a map and a floor plan delineated by a two-dimensional coordinate system. In general, the steps of the path planning algorithm include receiving the job location (step 905), planning a global path to the job location (step 910), planning a local path around detected and remembered obstacles (step 915), finding an allowable set of movement commands for the mobile robot in order to follow the path (step 925) and sending the movement commands to a locomotion controller or motors (step 930).
  • Although the exemplary embodiments, uses and advantages of the invention have been disclosed above with a certain degree of particularity, it will be apparent to those skilled in the art upon consideration of this specification and practice of the invention as disclosed herein that alterations and modifications can be made without departing from the spirit or the scope of the invention, which are intended to be limited only by the following claims and equivalents thereof.

Claims (26)

1. In a mobile robot comprising a memory and a propulsion system, a method for avoiding positive obstacles in a physical environment, the method comprising:
a) storing in the memory
(i) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan,
(ii) a first data structure of two-dimensional coordinates from the floor plan, the two-dimensional coordinates in the first data structure representing locations in the physical environment to be avoided by the mobile robot,
(iii) first laser placement information for a first laser attached to the mobile robot, said first laser being oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment, wherein said first laser placement information includes a first laser position and a first laser tilt, and
(iv) a tolerance profile comprising a ceiling offset, a floor offset, a ceiling adjustment angle and a floor adjustment angle,
b) receiving a set of laser readings from said first laser, each laser reading corresponding to a location in the physical environment where said first laser detects a physical obstacle in said first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot;
c) for each laser reading in said set of laser readings
(i) converting said each laser reading into a three-dimensional coordinate based on said first plane angle, said first plane distance, said first laser position and said first laser tilt, wherein said three-dimensional coordinate comprises an x-component, a y-component and a z-component,
(ii) determining a minimum ceiling height and a maximum floor height for the three dimensional coordinate based on the x-component, they-component and the tolerance profile, and
(iii) if the z-component is between the minimum ceiling height and the maximum floor height, adding the x-component and they-component to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot; and
d) causing the propulsion system to drive the mobile robot in the physical environment under control of the first data structure, wherein the propulsion system prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
2. The method of claim 1, further comprising:
a) receiving on the mobile robot a command to move from a current position to a specified location in the physical environment;
b) calculating on the mobile robot, in accordance with the floor plan, a path between said current position and said specified location, said path avoiding the locations in the physical environment represented by the first data structure of two-dimensional coordinates; and
c) activating the propulsion system to automatically drive the mobile robot along the path.
3. The method of claim 1, wherein said first plane is perpendicular to the floor of the physical environment.
4. The method of claim 1, wherein said maximum floor height is calculated by using the formula:

maximum floor height=floor offset+A*sin(floor adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
5. The method of claim 1, wherein said minimum ceiling height is calculated according to the formula:

minimum ceiling height=ceiling offset+A*sin(ceiling adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
6. The method of claim 1, further comprising:
a) storing in the memory
(i) a second data structure of two-dimensional coordinates from the floor plan, the two dimensional coordinates in the second data structure representing locations in the physical environment to be avoided by the mobile robot,
(ii) second laser placement information for a second laser attached to the mobile robot, said second laser being oriented to scan the physical environment in a second plane that is not parallel to the floor of the physical environment, wherein said second laser placement information includes a second laser position and a second laser tilt, and
(iii) receiving a second set of laser readings from said second laser, each laser reading corresponding to a location in the physical environment where said second laser detects a physical obstacle in said second plane, and each laser reading comprising a second plane angle and a second plane distance from a given site on the mobile robot;
b) for each laser reading in said second set of laser readings
(i) converting said each laser reading into a second three-dimensional coordinate based on said second plane angle, said second plane distance, said second laser position and said second laser tilt, wherein said second three-dimensional coordinate comprises a second x-component, a second y-component and a second z-component,
(ii) determining a minimum ceiling height and a maximum floor height for the second three-dimensional coordinate based on the second x-component, the second y-component and the tolerance profile, and
(iii) if the second z-component is between the maximum floor height and the minimum ceiling height, adding the second x-component and the second y-component to the second data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot; and
c) causing the propulsion system to drive the mobile robot in the physical environment under control of the first data structure and the second data structure, wherein the propulsion system prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in both the first data structure and the second data structure.
7. The method of claim 6, further comprising:
a) receiving on the mobile robot a command to move from a current position to a specified location in the physical environment;
b) calculating on the mobile robot, in accordance with the floor plan, a path between said current position and said specified location, said path avoiding the locations in the physical environment represented by the first data structure of two-dimensional coordinates and the second data structure of two-dimensional coordinates; and
c) activating the propulsion system to automatically drive the mobile robot along the path.
8. The method of claim 6, wherein said second plane is perpendicular to the floor of the physical environment.
9. In a mobile robot comprising a memory and a propulsion system, a method for avoiding negative obstacles in a physical environment, the method comprising:
a) storing in the memory
(i) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan,
(ii) a first data structure of two-dimensional coordinates from the floor plan, the two dimensional coordinates in the first data structure representing locations in the physical environment to be avoided by the mobile robot,
(iii) first laser placement information for a first laser attached to the mobile robot, said first laser being oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment, wherein said first laser placement information includes a first laser position and a first laser tilt, and
(iv) a tolerance profile comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap,
b) receiving a set of laser readings from said first laser, each laser reading corresponding to a location in the physical environment within said first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot;
c) for each laser reading in said set of laser readings
(i) converting said each laser reading into a three-dimensional coordinate based on said first plane angle, said first plane distance, said first laser position and said first laser tilt, wherein said three-dimensional coordinate comprises an x-component, a y-component and a z-component,
(ii) determining a maximum floor height and a minimum floor height for the three-dimensional coordinate based on the x-component, they-component and the tolerance profile, and
(iii) if the z-component is between the maximum floor height and the minimum floor/height, changing an indicator in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the last good floor reading,
(iv) if the z-component is not between the maximum floor height and the minimum floor height, determining whether the distance G between the last good floor reading and the location in the two-dimensional coordinate system defined by the x-component and they-component exceeds the maximum allowable floor gap, and
(v) if the distance G exceeds the maximum allowable floor gap, adding the x-component, the y-component and the last good floor reading to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot;
d) causing the propulsion system to drive the mobile robot in the physical environment under control of the first data structure, wherein the propulsion system prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
10. The method of claim 9, further comprising:
a) receiving on the mobile robot a command to move from a current position to a specified location in the physical environment;
b) calculating on the mobile robot, in accordance with the floor plan, a path between said current position and said specified location, said path avoiding the locations in the physical environment represented by the first data structure of two-dimensional coordinates; and
c) activating the propulsion system to automatically drive the mobile robot along the path.
11. The method of claim 9, wherein said first plane is perpendicular to the floor of the physical environment.
12. The method of claim 9, wherein said maximum floor height is calculated by using the formula:

maximum floor height=floor offset+A*sin(floor adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
13. The method of claim 9, wherein said minimum floor height is calculated according to the formula:

minimum floor height=floor offset−A*sin(floor adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
14. A positive obstacle avoidance system for use with a mobile robot in a physical environment, comprising:
a) a first laser attached to the mobile robot, said first laser being oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment;
b) a memory for storing
(i) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan,
(ii) a first data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the first data structure representing a location in the physical environment to be avoided by the mobile robot,
(iii) first laser placement information for said first laser, said first laser placement information including a first laser position and a first laser tilt, and
(iv) a tolerance profile comprising a ceiling offset, a floor offset, a ceiling adjustment angle and a floor adjustment angle,
c) a laser controller for receiving a set of laser readings from said first laser, each laser reading corresponding to a location in the physical environment where said first laser detects a physical obstacle in said first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot;
d) a positive obstacle avoidance engine that, for each laser reading in said set of laser readings
(i) converts said each laser reading into a three-dimensional coordinate based on said first plane angle, said first plane distance, said first laser position and said first laser tilt, wherein said three-dimensional coordinate comprises an x-component, a y-component and a z-component,
(ii) determines a minimum ceiling height and a maximum floor height for the three dimensional coordinate based on the x-component, they-component and the tolerance profile, and
(iii) if the z-component is between the minimum ceiling height and the maximum floor height, adds the x-component and they-component to the first data structure of two-dimensional coordinates to represent a new location in the physical environment to be avoided by the mobile robot; and
e) a propulsion system that drives the mobile robot in the physical environment under control of the first data structure, the propulsion system being configured to prevent the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
15. The system of claim 14, further comprising:
a) a communication interface that receives a command to move from a current position to a specified location in the physical environment; and
b) a path planning engine that calculates, in accordance with the floor plan, a path between said current position and said specified location, said path avoiding the locations in the physical environment represented by the first data structure of two-dimensional coordinates;
c) wherein the propulsion system is further configured to automatically drive the mobile robot along the path.
16. The system of claim 14, wherein said first plane is perpendicular to the floor of the physical environment.
17. The system of claim 14, wherein said positive obstacle avoidance engine calculates the maximum floor height according to the formula:

maximum floor height=floor offset+A*sin(floor adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
18. The system of claim 14, wherein said positive obstacle avoidance engine calculates the minimum ceiling height according to the formula:

minimum ceiling height=ceiling offset+A*sin(ceiling adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
19. The system of claim 14, wherein:
a) a second laser is attached to the mobile robot, said second laser being oriented to scan the physical environment in a second plane that is not parallel to the floor of the physical environment;
b) the memory further comprises
(i) a second data structure of two-dimensional coordinates from the floor plan, each two dimensional coordinate in the second data structure representing another location in the physical environment to be avoided by the mobile robot,
(ii) second laser placement information for said second laser, said second laser placement information including a second laser position and a second laser tilt, and
c) the laser controller receives a second set of laser readings from said second laser, each laser reading corresponding to a location in the physical environment where said second laser detects a physical obstacle in said second plane, and each laser reading comprising a second plane angle and a second plane distance from a given site on the mobile robot;
d) the positive obstacle avoidance engine, for each laser reading in said second set of laser readings
(iii) converts said each laser reading into a second three-dimensional coordinate based on said second plane angle, said second plane distance, said second laser position and said second laser tilt, wherein said second three-dimensional coordinate comprises a second x-component, a second y-component and a second z component,
(iv) determines a minimum ceiling height and a maximum floor height for the second three-dimensional coordinate based on the second x-component, the second y component and the tolerance profile, and
(v) if the second z-component is between the maximum floor height and the minimum ceiling height, adds the second x-component and the second y-component to the second data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot; and
e) the propulsion system drives the mobile robot in the physical environment under control of the first data structure and the second data structure, whereby the propulsion system prevents the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in both the first data structure and the second data structure.
20. The system of claim 19, further comprising:
a) a communication interface that receives a command to move from a current position to a specified location in the physical environment; and
b) a path planning engine that calculates, in accordance with the floor plan, a path between said current position and said specified location, said path avoiding the locations in the physical environment represented by the first data structure of two-dimensional coordinates;
c) wherein the propulsion system is further configured to automatically drive the mobile robot along the path.
21. The system of claim 19, wherein said second plane is perpendicular to the floor of the physical environment.
22. A negative obstacle avoidance system for use with a mobile robot in a physical environment, comprising:
a) a first laser attached to the mobile robot, said first laser being oriented to scan the physical environment in a first plane that is not parallel to the floor of the physical environment;
b) a memory for storing
(i) a map defining a floor plan representing the physical environment and a two dimensional coordinate system delineating the floor plan,
(ii) a first data structure of two-dimensional coordinates from the floor plan, the two dimensional coordinates in the first data structure representing locations in the physical environment to be avoided by the mobile robot,
(iii) first laser placement information for said first laser, the first laser placement information including a first laser position and a first laser tilt, and
(iv) a tolerance profile comprising a maximum floor offset, a minimum floor offset, a maximum floor adjustment angle, a minimum floor adjustment angle and a maximum allowable floor gap,
c) a laser controller for receiving a set of laser readings from said first laser, each laser reading corresponding to a location in the physical environment within said first plane, and each laser reading comprising a first plane angle and a first plane distance from a given site on the mobile robot; and
d) a negative obstacle avoidance engine that, for each laser reading in said set of laser readings
(i) converts said each laser reading into a three-dimensional coordinate based on said first plane angle, said first plane distance, said first laser position and said first laser tilt, wherein said three-dimensional coordinate comprises an x-component, a y-component and a z-component,
(ii) determines a maximum floor height and a minimum floor height for the three dimensional coordinate based on the x-component, they-component and the tolerance profile, and
(iii) if the z-component is between the maximum floor height and the minimum floor height, changes an indicator in the memory to designate the x-component and the y-component of the three-dimensional coordinate as the last good floor reading coordinate,
(iv) if the z-component is not between the maximum floor height and the minimum floor height, determines whether the distance G between the last good floor reading coordinate and the location in the two-dimensional coordinate system defined by the x-component and they-component exceeds the maximum allowable floor gap, and
(v) if the distance G exceeds the maximum allowable floor gap, adds the x-component, the y-component and the last good floor reading coordinate to the first data structure of two-dimensional coordinates to represent another location in the physical environment to be avoided by the mobile robot; and
e) a propulsion system that drives the mobile robot in the physical environment under control of the first data structure, the propulsion system being configured to prevent the mobile robot from passing into the locations in the physical environment represented by the two-dimensional coordinates in the first data structure.
23. The system of claim 22, further comprising:
a) a communication interface that receives a command to move from a current position to a specified location in the physical environment; and
b) a path planning engine that calculates, in accordance with the floor plan, a path between said current position and said specified location, said path avoiding the locations in the physical environment represented by the first data structure of two-dimensional coordinates;
c) wherein the propulsion system is further configured to automatically drive the mobile robot along the path.
24. The system of claim 22, wherein said first plane is perpendicular to the floor of the physical environment.
25. The system of claim 22, wherein the negative obstacle avoidance engine calculates said maximum floor height by using the formula:

maximum floor height=floor offset+A*sin(floor adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
26. The system of claim 22, wherein the negative obstacle avoidance engine calculates said minimum floor height according to the formula:

minimum floor height=floor offset−A*sin(floor adjustment angle),
wherein, A=the distance from the current position to the coordinate (x-component, y-component) in the two-dimensional coordinate system.
US14/001,266 2012-01-25 2013-01-25 Positive and negative obstacle avoidance system and method for a mobile robot Active US8688275B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/001,266 US8688275B1 (en) 2012-01-25 2013-01-25 Positive and negative obstacle avoidance system and method for a mobile robot

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261590806P 2012-01-25 2012-01-25
US201261596685P 2012-02-08 2012-02-08
US14/001,266 US8688275B1 (en) 2012-01-25 2013-01-25 Positive and negative obstacle avoidance system and method for a mobile robot
PCT/US2013/023154 WO2013112842A1 (en) 2012-01-25 2013-01-25 Positive and negative obstacle avoidance system for a mobile robot

Publications (2)

Publication Number Publication Date
US20140074287A1 true US20140074287A1 (en) 2014-03-13
US8688275B1 US8688275B1 (en) 2014-04-01

Family

ID=48873949

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/001,266 Active US8688275B1 (en) 2012-01-25 2013-01-25 Positive and negative obstacle avoidance system and method for a mobile robot
US14/370,372 Active US9592609B2 (en) 2012-01-25 2013-01-25 Autonomous mobile robot for handling job assignments in a physical environment inhabited by stationary and non-stationary obstacles

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/370,372 Active US9592609B2 (en) 2012-01-25 2013-01-25 Autonomous mobile robot for handling job assignments in a physical environment inhabited by stationary and non-stationary obstacles

Country Status (7)

Country Link
US (2) US8688275B1 (en)
EP (3) EP3113055B1 (en)
DK (2) DK2791842T3 (en)
ES (1) ES2812568T3 (en)
PL (1) PL2807526T3 (en)
SG (2) SG11201400966UA (en)
WO (2) WO2013112842A1 (en)

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9625571B1 (en) * 2015-08-06 2017-04-18 X Development Llc Disabling robot sensors
US9746852B1 (en) * 2015-08-17 2017-08-29 X Development Llc Using laser sensors to augment stereo sensor readings for robotic devices
US20170361465A1 (en) * 2016-06-20 2017-12-21 X Development Llc Localization of a Mobile System
USD810799S1 (en) * 2015-12-01 2018-02-20 Nidec Shimpo Corporation Automatic guided vehicle
WO2018178875A1 (en) * 2017-03-27 2018-10-04 Clearpath Robotics, Inc. Systems and methods for autonomous provision replenishment
US10293489B1 (en) * 2017-12-15 2019-05-21 Ankobot (Shanghai) Smart Technologies Co., Ltd. Control method and system, and cleaning robot using the same
US10386847B1 (en) * 2016-02-19 2019-08-20 AI Incorporated System and method for guiding heading of a mobile robotic device
US20190314993A1 (en) * 2018-04-13 2019-10-17 The Boeing Company Airplane Passenger Service Robot
US20200110421A1 (en) * 2018-10-05 2020-04-09 Teco Electric & Machinery Co., Ltd. Automated guided vehicle
USD888791S1 (en) * 2019-01-07 2020-06-30 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
USD888790S1 (en) * 2018-01-18 2020-06-30 Lingdong Technology (Beijing) Co.Ltd Autonomy transportation vehicle
USD890239S1 (en) * 2018-11-14 2020-07-14 Grey Orange Pte. Ltd. Modular cross belt sortation machine
USD890828S1 (en) * 2018-09-19 2020-07-21 Amazon Technologies, Inc. Mobile conveyor unit
USD892188S1 (en) * 2019-04-05 2020-08-04 IAM Robotics, LLC Autonomous mobile robot
USD894984S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD894986S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD894983S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD894985S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD895707S1 (en) * 2019-03-14 2020-09-08 Omron Corporation Transportation robot
USD895709S1 (en) * 2019-03-14 2020-09-08 Omron Corporation Transportation robot
USD895708S1 (en) * 2019-03-14 2020-09-08 Omron Corporation Transportation robot
US10793369B2 (en) 2017-07-12 2020-10-06 A9.Com, Inc. Conveyor system for autonomous robot
US10901431B1 (en) * 2017-01-19 2021-01-26 AI Incorporated System and method for guiding heading of a mobile robotic device
USD908757S1 (en) * 2019-03-14 2021-01-26 Omron Corporation Holder for a transportation robot
USD909442S1 (en) * 2019-07-25 2021-02-02 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
USD909441S1 (en) * 2019-09-25 2021-02-02 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
US10928835B2 (en) 2017-03-27 2021-02-23 Clearpath Robotics Inc. Systems and methods for flexible manufacturing using self-driving vehicles
USD915486S1 (en) * 2018-12-31 2021-04-06 Toyota Research Institute, Inc. Virtual mobility robot
USD917591S1 (en) * 2018-10-31 2021-04-27 Hangzhou Hikrobot Technology Co., Ltd Automatic guided transport vehicle
US10990919B2 (en) 2017-03-27 2021-04-27 Clearpath Robotics Inc. Systems and methods for autonomous lineside parts delivery to an assembly line process
USD918978S1 (en) * 2018-04-17 2021-05-11 Beijing Jingdong Qianshi Technology Co., Ltd. Selecting robot (first generation)
USD924291S1 (en) * 2019-01-18 2021-07-06 Tata Consultancy Services Limited Industrial robot
US11086328B2 (en) 2016-08-23 2021-08-10 A9.Com, Inc. Autonomous cart for manufacturing and warehouse applications
USD931922S1 (en) * 2020-03-06 2021-09-28 Grey Orange Pte. Ltd. Modular sortation machine
US20210338031A1 (en) * 2018-07-20 2021-11-04 Lg Electronics Inc. Robot cleaner and method for controlling same
USD937920S1 (en) * 2019-12-19 2021-12-07 Toyota Research Institute, Inc. Virtual mobility robot
US11260871B2 (en) * 2015-12-17 2022-03-01 Nec Corporation Road information detection device, driving assistance device, road information detection system, road information detection method, driving control method and program
USD963721S1 (en) * 2020-09-15 2022-09-13 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
USD963722S1 (en) * 2021-06-28 2022-09-13 Ubtech North America Research And Development Center Corp Robot
USD966383S1 (en) * 2021-06-29 2022-10-11 Ubtech North America Research And Development Center Corp Robot
USD966381S1 (en) * 2021-05-31 2022-10-11 Lg Electronics Inc. Security guide robot
USD966382S1 (en) * 2021-06-25 2022-10-11 Ubtech North America Research And Development Center Corp Robot
USD968492S1 (en) * 2020-05-29 2022-11-01 Blue Ocean Robotics Aps UV-light disinfection robot
USD969189S1 (en) * 2021-05-31 2022-11-08 Lg Electronics Inc. Security guide robot
USD969895S1 (en) * 2021-03-15 2022-11-15 Shenzhen Pudu Technology Co., Ltd. Robot
USD970572S1 (en) * 2020-12-09 2022-11-22 Samsung Electronics Co., Ltd. Service robot
US11597104B2 (en) 2019-07-31 2023-03-07 X Development Llc Mobile robot sensor configuration
USD988381S1 (en) * 2021-10-20 2023-06-06 Bear Robotics, Inc. Robot
CN116359932A (en) * 2023-03-27 2023-06-30 珠海创智科技有限公司 Barrier distance feedback method and device based on laser radar sensor
US11726490B1 (en) * 2016-02-19 2023-08-15 AI Incorporated System and method for guiding heading of a mobile robotic device
US11760221B2 (en) 2017-06-27 2023-09-19 A9.Com, Inc. Charging systems and methods for autonomous carts
USD1018618S1 (en) * 2021-02-09 2024-03-19 Naver Labs Corporation Goods delivery robot

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9321591B2 (en) 2009-04-10 2016-04-26 Symbotic, LLC Autonomous transports for storage and retrieval systems
US9187244B2 (en) 2010-12-15 2015-11-17 Symbotic, LLC BOT payload alignment and sensing
US11078017B2 (en) 2010-12-15 2021-08-03 Symbotic Llc Automated bot with transfer arm
US9561905B2 (en) 2010-12-15 2017-02-07 Symbotic, LLC Autonomous transport vehicle
US8965619B2 (en) 2010-12-15 2015-02-24 Symbotic, LLC Bot having high speed stability
US8696010B2 (en) * 2010-12-15 2014-04-15 Symbotic, LLC Suspension system for autonomous transports
US9499338B2 (en) 2010-12-15 2016-11-22 Symbotic, LLC Automated bot transfer arm drive system
ES2812568T3 (en) * 2012-01-25 2021-03-17 Omron Tateisi Electronics Co Autonomous mobile robot to execute work assignments in a physical environment in which there are stationary and non-stationary obstacles
PL2791748T3 (en) 2012-02-08 2021-04-06 Omron Robotics And Safety Technologies, Inc. Job management sytem for a fleet of autonomous mobile robots
US9533773B1 (en) * 2012-04-30 2017-01-03 The Boeing Company Methods and systems for automated vehicle asset tracking
EP2667268A1 (en) * 2012-05-24 2013-11-27 Siemens Aktiengesellschaft Method for operating an automation device
KR101945734B1 (en) * 2012-08-16 2019-02-11 한화에어로스페이스 주식회사 System for robot and method for driving the same
US9958854B2 (en) * 2013-06-10 2018-05-01 The Boeing Company Systems and methods for robotic measurement of parts
ITRM20130128U1 (en) 2013-07-23 2015-01-24 Particle Measuring Systems S R L DEVICE FOR MICROBIAL AIR SAMPLING
US9280157B2 (en) 2013-09-04 2016-03-08 Amazon Technologies, Inc. System and method for transporting personnel within an active workspace
US9550624B2 (en) * 2013-09-09 2017-01-24 Dematic Corp. Autonomous mobile picking
US10894663B2 (en) 2013-09-13 2021-01-19 Symbotic Llc Automated storage and retrieval system
US9971852B2 (en) * 2013-11-06 2018-05-15 Geoffrey E Olson Robotics connector
US10279488B2 (en) 2014-01-17 2019-05-07 Knightscope, Inc. Autonomous data machines and systems
US9792434B1 (en) 2014-01-17 2017-10-17 Knightscope, Inc. Systems and methods for security data analysis and display
US9329597B2 (en) 2014-01-17 2016-05-03 Knightscope, Inc. Autonomous data machines and systems
US10514837B1 (en) 2014-01-17 2019-12-24 Knightscope, Inc. Systems and methods for security data analysis and display
US9886036B2 (en) 2014-02-10 2018-02-06 John Bean Technologies Corporation Routing of automated guided vehicles
US9535421B1 (en) * 2014-02-28 2017-01-03 Savioke, Inc. Mobile delivery robot with interior cargo space
TWI555524B (en) * 2014-04-30 2016-11-01 國立交通大學 Walking assist system of robot
US20150379441A1 (en) * 2014-06-30 2015-12-31 Ebay Inc. Shared asset management system
US9927797B2 (en) 2014-08-29 2018-03-27 Amazon Technologies, Inc. Safety compliance for mobile drive units
US9475195B2 (en) * 2014-09-12 2016-10-25 Toyota Jidosha Kabushiki Kaisha Anticipatory robot navigation
CA2964775C (en) 2014-10-14 2021-05-18 Nextshift Robotics, Inc. Storage material handling system
CN104460666B (en) * 2014-10-27 2017-05-10 上海理工大学 Robot autonomous obstacle avoidance moving control method based on distance vectors
US9701012B1 (en) * 2014-10-30 2017-07-11 Daniel Theobald Controlled interaction between a mobile robot and another entity
US10845822B2 (en) 2014-10-31 2020-11-24 Clearpath Robotics Inc. Systems and methods for utilizing fleets of robots
US9606544B2 (en) * 2014-10-31 2017-03-28 Clearpath Robotics, Inc. System, computing device and method for unmanned vehicle fleet control
US9757002B2 (en) 2015-03-06 2017-09-12 Wal-Mart Stores, Inc. Shopping facility assistance systems, devices and methods that employ voice input
US20180099846A1 (en) 2015-03-06 2018-04-12 Wal-Mart Stores, Inc. Method and apparatus for transporting a plurality of stacked motorized transport units
WO2016142794A1 (en) 2015-03-06 2016-09-15 Wal-Mart Stores, Inc Item monitoring system and method
US9864371B2 (en) 2015-03-10 2018-01-09 John Bean Technologies Corporation Automated guided vehicle system
US20170341235A1 (en) 2016-05-27 2017-11-30 General Electric Company Control System And Method For Robotic Motion Planning And Control
US9707680B1 (en) 2015-05-28 2017-07-18 X Development Llc Suggesting, selecting, and applying task-level movement parameters to implementation of robot motion primitives
US10114379B2 (en) * 2015-06-01 2018-10-30 Dpix, Llc Point to point material transport vehicle improvements for glass substrate
US9995047B2 (en) * 2015-06-09 2018-06-12 Integrated Construction Enterprises, Inc. Construction board installation robot
US11919019B2 (en) 2015-06-17 2024-03-05 Revolutionice Inc. Autonomous painting systems and related methods
US10124359B2 (en) 2015-06-17 2018-11-13 Integrated Construction Enterprises, Inc. Autonomous painting systems and related methods
US10378935B1 (en) 2015-07-08 2019-08-13 Revolutionice Inc. Remote facade inspection gantry
US9945677B1 (en) * 2015-07-23 2018-04-17 X Development Llc Automated lane and route network discovery for robotic actors
US9758305B2 (en) 2015-07-31 2017-09-12 Locus Robotics Corp. Robotic navigation utilizing semantic mapping
US10168711B2 (en) 2015-09-16 2019-01-01 Omron Adept Technologies, Inc. Method and apparatus for autonomous conveyance of transport carts
FR3042061B1 (en) * 2015-10-02 2017-11-24 Kingbox METHOD, MOBILE ROBOT AND SYSTEM FOR AUTOMATED MANAGEMENT OF A SELF-STORAGE LOCAL
CA174441S (en) 2015-10-07 2018-01-02 Starship Tech Oü Delivery robot
US9740207B2 (en) * 2015-12-23 2017-08-22 Intel Corporation Navigating semi-autonomous mobile robots
EP3192616A1 (en) 2016-01-14 2017-07-19 Magazino GmbH Robot to pick up and transport objects and method using such a robot
US10486313B2 (en) 2016-02-09 2019-11-26 Cobalt Robotics Inc. Mobile robot map generation
US11445152B2 (en) 2018-08-09 2022-09-13 Cobalt Robotics Inc. Security automation in a mobile robot
US11772270B2 (en) 2016-02-09 2023-10-03 Cobalt Robotics Inc. Inventory management by mobile robot
US10788836B2 (en) 2016-02-29 2020-09-29 AI Incorporated Obstacle recognition method for autonomous robots
US10452071B1 (en) 2016-02-29 2019-10-22 AI Incorporated Obstacle recognition method for autonomous robots
US11449061B2 (en) 2016-02-29 2022-09-20 AI Incorporated Obstacle recognition method for autonomous robots
US11927965B2 (en) 2016-02-29 2024-03-12 AI Incorporated Obstacle recognition method for autonomous robots
USD812663S1 (en) * 2016-03-22 2018-03-13 Clearpath Robotics, Inc. Autonomous mobile robot
US9927814B2 (en) 2016-03-28 2018-03-27 Fetch Robotics, Inc. System and method for localization of robots
CA2961938A1 (en) 2016-04-01 2017-10-01 Wal-Mart Stores, Inc. Systems and methods for moving pallets via unmanned motorized unit-guided forklifts
US9956688B2 (en) 2016-04-12 2018-05-01 Fetch Robotius, Inc. System and method for predicting robotic power disconnection
WO2018005304A1 (en) * 2016-06-26 2018-01-04 De Zulueta Elizabeth Autonomous robotic aide
US10071856B2 (en) * 2016-07-28 2018-09-11 X Development Llc Inventory management
CN109791412B (en) 2016-08-26 2022-07-12 克朗设备公司 Material handling vehicle barrier scanning tool
AU2017315458B2 (en) 2016-08-26 2022-06-02 Crown Equipment Corporation Multi-field scanning tools in materials handling vehicles
CA3224047A1 (en) 2016-08-26 2018-03-01 Crown Equipment Corporation Materials handling vehicle path validation and dynamic path modification
US10001768B2 (en) 2016-09-01 2018-06-19 Locus Robotics Corp. Item storage array for mobile base in robot assisted order-fulfillment operations
US10353395B2 (en) 2016-09-26 2019-07-16 X Development Llc Identification information for warehouse navigation
CA3045655A1 (en) * 2016-12-01 2018-06-07 Walmart Apollo, Llc Autonomous drone and tool selection and delivery
US10515319B2 (en) 2016-12-16 2019-12-24 Fetch Robotics, Inc. System and method for computing a probability that an object comprises a target
CN108158369A (en) * 2017-01-16 2018-06-15 浙江国自机器人技术有限公司 A kind of storage tank
US10585440B1 (en) 2017-01-23 2020-03-10 Clearpath Robotics Inc. Systems and methods for using human-operated material-transport vehicles with fleet-management systems
US11724399B2 (en) 2017-02-06 2023-08-15 Cobalt Robotics Inc. Mobile robot with arm for elevator interactions
CN106625685A (en) * 2017-03-13 2017-05-10 安徽朗巴智能科技有限公司 Multi-path inspection anti-collision control system for industrial robot
CN106843228B (en) * 2017-03-23 2020-01-03 汕头大学 Method and system for setting intelligent trolley walking path based on mobile terminal scribing
CN107030691B (en) * 2017-03-24 2020-04-14 华为技术有限公司 Data processing method and device for nursing robot
CN106843230B (en) * 2017-03-24 2019-11-19 上海思岚科技有限公司 Virtual wall system and its implementation applied to mobile device
CN106985145B (en) * 2017-04-24 2019-06-11 合肥工业大学 A kind of carrying transfer robot
US11420323B2 (en) * 2017-05-16 2022-08-23 Abb Schweiz Ag Method and control system for controlling movement sequences of a robot
US20180333860A1 (en) * 2017-05-18 2018-11-22 Translogic Corporation System and method for prescription medicine delivery
WO2018213931A1 (en) 2017-05-25 2018-11-29 Clearpath Robotics Inc. Systems and methods for process tending with a robot arm
WO2018215581A1 (en) 2017-05-26 2018-11-29 Starship Technologies Oü A battery and a system for swapping and/or charging a battery of a mobile robot
US20180370028A1 (en) * 2017-06-24 2018-12-27 Elizabeth Marie De Zulueta Autonomous Robotic Aide
EP3659104B1 (en) 2017-07-28 2024-01-17 Starship Technologies OÜ Device and system for secure package delivery by a mobile robot
US10899542B2 (en) * 2017-08-15 2021-01-26 Tompkins International Mobile sorter platforms and method for sorting articles
US10787315B2 (en) 2017-08-28 2020-09-29 Google Llc Dynamic truck route planning between automated facilities
US10429847B2 (en) 2017-09-22 2019-10-01 Locus Robotics Corp. Dynamic window approach using optimal reciprocal collision avoidance cost-critic
US10386851B2 (en) 2017-09-22 2019-08-20 Locus Robotics Corp. Multi-resolution scan matching with exclusion zones
JP2019059004A (en) * 2017-09-28 2019-04-18 セイコーエプソン株式会社 Robot system
CN111201498A (en) * 2017-10-11 2020-05-26 特里纳米克斯股份有限公司 Autonomous robot apparatus and related control method
CA178039S (en) * 2017-10-18 2018-10-10 Novadelta Comercio Ind Cafes Sa Coffee machine robot
WO2019084686A1 (en) 2017-10-31 2019-05-09 Clearpath Robotics Inc. Systems and methods for operating robotic equipment in controlled zones
US10960548B2 (en) 2017-11-21 2021-03-30 Service Robotics & Technologies, Inc. Map-based framework for the integration of robots and smart devices
JP1612989S (en) * 2017-11-22 2018-09-10
US10365656B2 (en) 2017-11-22 2019-07-30 Locus Robotics Corp. Robot charger docking localization
US10761539B2 (en) 2017-11-22 2020-09-01 Locus Robotics Corp. Robot charger docking control
US11014238B2 (en) * 2017-11-27 2021-05-25 Amazon Technologies, Inc. Dynamic navigation of autonomous vehicle with safety infrastructure
US10688662B2 (en) * 2017-12-13 2020-06-23 Disney Enterprises, Inc. Robot navigation in context of obstacle traffic including movement of groups
US10606269B2 (en) 2017-12-19 2020-03-31 X Development Llc Semantic obstacle recognition for path planning
CN107943059B (en) * 2017-12-29 2024-03-15 南京工程学院 Heavy-load multi-foot robot based on depth visual navigation and motion planning method thereof
WO2019140536A1 (en) 2018-01-22 2019-07-25 Clearpath Robotics Inc. Systems and methods for measuring fleets of self-driving industrial vehicles
US11235778B2 (en) 2018-01-24 2022-02-01 Clearpath Robotics Inc. Systems and methods for maintaining vehicle state information
WO2019153082A1 (en) 2018-02-07 2019-08-15 Clearpath Robotics Inc. Communication systems for self-driving vehicles, and methods of providing thereof
CN108363395A (en) * 2018-02-11 2018-08-03 智久(厦门)机器人科技有限公司 A kind of method of AGV automatic obstacle avoidings
EP3774199B1 (en) * 2018-03-30 2024-03-27 Jabil Inc. Apparatus, system, and method of providing hazard detection and control for a mobile robot
CN108801653B (en) * 2018-06-25 2020-05-05 工业和信息化部计算机与微电子发展研究中心(中国软件评测中心) Evaluation method of carrying trolley
US11407111B2 (en) * 2018-06-27 2022-08-09 Abb Schweiz Ag Method and system to generate a 3D model for a robot scene
US11766785B2 (en) * 2018-06-29 2023-09-26 Noiseout, Inc. Automated testing system
US11175147B1 (en) * 2018-07-20 2021-11-16 Digital Dream Labs, Llc Encouraging and implementing user assistance to simultaneous localization and mapping
US11460849B2 (en) 2018-08-09 2022-10-04 Cobalt Robotics Inc. Automated route selection by a mobile robot
JP1636154S (en) * 2018-09-10 2019-07-16
JP1636153S (en) * 2018-09-10 2019-07-16
TWI671610B (en) 2018-09-28 2019-09-11 財團法人工業技術研究院 Automatic guided vehicle , agv control system, and agv control method
US11255760B2 (en) 2018-11-16 2022-02-22 Particle Measuring Systems, Inc. Particle sampling systems and methods for robotic controlled manufacturing barrier systems
US20220185585A1 (en) * 2019-03-15 2022-06-16 Nextshift Robotics, Inc. Object picker
US11623339B1 (en) * 2019-05-16 2023-04-11 Amazon Technologies, Inc. Portable robotic manipulation systems
CN110244743B (en) * 2019-07-03 2022-02-01 浙江大学 Mobile robot autonomous escaping method fusing multi-sensor information
IT201900020248A1 (en) 2019-11-04 2021-05-04 Particle Measuring Systems S R L MOBILE MONITORING DEVICE FOR CONTROLLED CONTAMINATION AREAS
JP7172964B2 (en) * 2019-11-25 2022-11-16 トヨタ自動車株式会社 Management system, management method, program, autonomous mobile device
RU2736559C1 (en) * 2019-12-27 2020-11-18 Автономная некоммерческая образовательная организация высшего образования «Сколковский институт науки и технологий» Mobile robot service navigation method
TWI801797B (en) 2020-01-21 2023-05-11 美商粒子監測系統有限公司 Impactor and method for sampling biological particles from a fluid flow
US11465843B2 (en) 2020-02-25 2022-10-11 Crown Equipment Corporation Materials handling vehicle and goods storage and retrieval system comprising mobile storage carts, transporters, and materials handling vehicles
US11465839B2 (en) 2020-02-25 2022-10-11 Crown Equipment Corporation System comprising a multilevel warehouse racking system comprising tote transfer zones, materials handling vehicles, and transporters, and methods of use thereof
US11924811B2 (en) * 2020-03-04 2024-03-05 Fort Robotics, Inc. Secure wireless communication of robotic safety state information
AU2021240089A1 (en) 2020-03-20 2022-11-17 Rosendin Electric, Inc. A robotic arm cooperating with an off-road capable base vehicle
CN111426325B (en) * 2020-06-12 2020-11-27 北京云迹科技有限公司 Positioning method and device, robot, storage medium and positioning system
US11947437B2 (en) 2020-07-29 2024-04-02 International Business Machines Corporation Assignment of robotic devices using predictive analytics
US11479414B2 (en) * 2020-09-11 2022-10-25 Locus Robotics Corp. Dynamic item putaway management using mobile robots
US11724883B2 (en) 2020-09-11 2023-08-15 Locus Robotics Corp. Presort system for executing robot-assisted putaway tasks
RU2769710C1 (en) * 2021-01-14 2022-04-05 Автономная некоммерческая образовательная организация высшего образования «Сколковский институт науки и технологий» Method for building a route and controlling the movement of a mobile service robot in retail premises
US11500715B1 (en) 2021-05-27 2022-11-15 Fort Robotics, Inc. Determining functional safety state using software-based ternary state translation of analog input
WO2023069793A1 (en) * 2021-10-24 2023-04-27 Lucomm Technologies, Inc. Robotic system
WO2023172752A1 (en) * 2022-03-11 2023-09-14 Apprentice FS, Inc. System and method for autonomously delivering supplies to operators performing procedures within a facility
DE102022206056A1 (en) * 2022-06-15 2023-12-21 BSH Hausgeräte GmbH Organization system for a household

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0078357A1 (en) 1981-10-29 1983-05-11 "Inter-Béton" société anonyme Process for the realisation of structures, especially of structures for the protection of embankments and slopes, and installation to perform the process
GB8313338D0 (en) 1983-05-14 1983-06-22 Gen Electric Co Plc Vehicle control
US4674048A (en) 1983-10-26 1987-06-16 Automax Kabushiki-Kaisha Multiple robot control system using grid coordinate system for tracking and completing travel over a mapped region containing obstructions
US4763055A (en) 1986-11-20 1988-08-09 Westinghouse Electric Corp. Digital robot control having high performance servo control system
US5610815A (en) 1989-12-11 1997-03-11 Caterpillar Inc. Integrated vehicle positioning and navigation system, apparatus and method
US5279672A (en) 1992-06-29 1994-01-18 Windsor Industries, Inc. Automatic controlled cleaning machine
US5324948A (en) 1992-10-27 1994-06-28 The United States Of America As Represented By The United States Department Of Energy Autonomous mobile robot for radiologic surveys
US5559696A (en) 1994-02-14 1996-09-24 The Regents Of The University Of Michigan Mobile robot internal position error correction system
JPH07281753A (en) 1994-04-15 1995-10-27 Toshiba Corp Moving robot
US5764014A (en) 1996-02-01 1998-06-09 Mannesmann Dematic Rapistan Corp. Automated guided vehicle having ground track sensor
US6853877B1 (en) 1996-09-06 2005-02-08 Nomadic Technologies Method and apparatus for mobile robot motion control
US5897595A (en) 1996-12-19 1999-04-27 Caterpillar Inc. System and method for managing access of a fleet of mobile machines to a resource having multiple entry points
US5931875A (en) 1996-12-19 1999-08-03 Caterpillar Inc. System and method for managing a fleet of mobile machines for dumping at a plurality of dump points
AUPP299498A0 (en) * 1998-04-15 1998-05-07 Commonwealth Scientific And Industrial Research Organisation Method of tracking and sensing position of objects
US6614427B1 (en) * 1999-02-01 2003-09-02 Steve Aubrey Process for making stereoscopic images which are congruent with viewer space
US6374155B1 (en) 1999-11-24 2002-04-16 Personal Robotics, Inc. Autonomous multi-platform robot system
JP3701004B2 (en) 2000-03-29 2005-09-28 日本輸送機株式会社 Unmanned forklift
SE0004466D0 (en) 2000-12-04 2000-12-04 Abb Ab Mobile Robot
US6667592B2 (en) * 2001-08-13 2003-12-23 Intellibot, L.L.C. Mapped robot system
US6580246B2 (en) 2001-08-13 2003-06-17 Steven Jacobs Robot touch shield
US6836701B2 (en) * 2002-05-10 2004-12-28 Royal Appliance Mfg. Co. Autonomous multi-platform robotic system
US6748292B2 (en) 2002-07-15 2004-06-08 Distrobot Systems, Inc. Material handling method using autonomous mobile drive units and movable inventory trays
US6895301B2 (en) 2002-07-15 2005-05-17 Distrobot Systems, Inc. Material handling system using autonomous mobile drive units and movable inventory trays
US7054716B2 (en) * 2002-09-06 2006-05-30 Royal Appliance Mfg. Co. Sentry robot system
US8386081B2 (en) * 2002-09-13 2013-02-26 Irobot Corporation Navigational control system for a robotic device
US7015831B2 (en) 2002-12-17 2006-03-21 Evolution Robotics, Inc. Systems and methods for incrementally updating a pose of a mobile device calculated by visual simultaneous localization and mapping techniques
WO2004106009A1 (en) * 2003-06-02 2004-12-09 Matsushita Electric Industrial Co., Ltd. Article operating system and method, and article managing system and method
US7026954B2 (en) 2003-06-10 2006-04-11 Bellsouth Intellectual Property Corporation Automated parking director systems and related methods
US7250907B2 (en) 2003-06-30 2007-07-31 Microsoft Corporation System and methods for determining the location dynamics of a portable computing device
JPWO2005015466A1 (en) * 2003-08-07 2006-10-05 松下電器産業株式会社 Life support system and control program thereof
US7591630B2 (en) 2003-08-29 2009-09-22 Casepick Systems, Llc Materials-handling system using autonomous transfer and transport vehicles
US20070061041A1 (en) * 2003-09-02 2007-03-15 Zweig Stephen E Mobile robot with wireless location sensing apparatus
US7117068B2 (en) 2003-09-29 2006-10-03 Quantum Corporation System and method for library robotics positional accuracy using parallax viewing
US7099745B2 (en) * 2003-10-24 2006-08-29 Sap Aktiengesellschaft Robot system using virtual world
US7854108B2 (en) * 2003-12-12 2010-12-21 Vision Robotics Corporation Agricultural robot system and method
WO2005074362A2 (en) 2004-02-03 2005-08-18 F. Robotics Aquisitions Ltd. Robot docking station
US7908040B2 (en) * 2004-07-15 2011-03-15 Raytheon Company System and method for automated search by distributed elements
JP3920317B2 (en) * 2004-08-02 2007-05-30 松下電器産業株式会社 Goods handling robot
JP4348276B2 (en) * 2004-11-02 2009-10-21 本田技研工業株式会社 Robot controller
US7650013B2 (en) 2004-11-15 2010-01-19 Mobilerobots Inc. System and method for map and position-determination enhancement
US9534899B2 (en) * 2005-03-25 2017-01-03 Irobot Corporation Re-localization of a robot for slam
JP4621073B2 (en) 2005-05-23 2011-01-26 本田技研工業株式会社 Robot controller
US7456596B2 (en) 2005-08-19 2008-11-25 Cisco Technology, Inc. Automatic radio site survey using a robot
US8935006B2 (en) 2005-09-30 2015-01-13 Irobot Corporation Companion robot for personal interaction
CA2864027C (en) 2005-10-14 2017-05-02 Aldo Zini Robotic ordering and delivery apparatuses, systems and methods
JP4375320B2 (en) * 2005-10-27 2009-12-02 株式会社日立製作所 Mobile robot
US7693654B1 (en) 2005-11-23 2010-04-06 ActivMedia Robotics/MobileRobots Method for mapping spaces with respect to a universal uniform spatial reference
US7912633B1 (en) 2005-12-01 2011-03-22 Adept Mobilerobots Llc Mobile autonomous updating of GIS maps
EP2466411B1 (en) * 2005-12-02 2018-10-17 iRobot Corporation Robot system
US20070140821A1 (en) 2005-12-19 2007-06-21 Betzalel Robotics, Llc Autonomous load/unload robot
WO2008013568A2 (en) * 2005-12-30 2008-01-31 Irobot Corporation Autonomous mobile robot
US7873469B2 (en) 2006-06-19 2011-01-18 Kiva Systems, Inc. System and method for managing mobile drive units
US8355818B2 (en) * 2009-09-03 2013-01-15 Battelle Energy Alliance, Llc Robots, systems, and methods for hazard evaluation and visualization
US8073564B2 (en) 2006-07-05 2011-12-06 Battelle Energy Alliance, Llc Multi-robot control interface
US8271132B2 (en) * 2008-03-13 2012-09-18 Battelle Energy Alliance, Llc System and method for seamless task-directed autonomy for robots
US7894393B2 (en) 2006-09-26 2011-02-22 Via Telecom, Inc. Systems and methods for determining slotted mode operation timing in a hybrid access terminal
US8180486B2 (en) * 2006-10-02 2012-05-15 Honda Motor Co., Ltd. Mobile robot and controller for same
WO2009040777A2 (en) 2007-09-27 2009-04-02 Koninklijke Philips Electronics, N.V. Leader robot election in collaborative robot groups
EP2278357A3 (en) * 2008-03-26 2011-06-29 Genova Robot SRL A method and a device for determining the position of a vehicle for the autonomous driving of a vehicle, in particular a robotized vehicle
KR101543490B1 (en) 2008-04-24 2015-08-10 아이로보트 코퍼레이션 Application of localization, positioning and navigation systems for robotic enabled mobile products
US8961695B2 (en) * 2008-04-24 2015-02-24 Irobot Corporation Mobile robot for cleaning
DE102008030546A1 (en) 2008-06-27 2009-12-31 Siemens Aktiengesellschaft Control for an autonomous transport vehicle and method for operating an autonomous transport vehicle
KR101021836B1 (en) 2008-10-09 2011-03-17 한국전자통신연구원 System for cooperation of multiple mobile robot using dynamic behavior binding and method thereof
US8169596B2 (en) 2009-08-17 2012-05-01 Seegrid Corporation System and method using a multi-plane curtain
US8234010B2 (en) * 2010-02-16 2012-07-31 Deere & Company Tethered robot positioning
US9020636B2 (en) * 2010-12-16 2015-04-28 Saied Tadayon Robot for solar farms
ES2812568T3 (en) 2012-01-25 2021-03-17 Omron Tateisi Electronics Co Autonomous mobile robot to execute work assignments in a physical environment in which there are stationary and non-stationary obstacles
PL2791748T3 (en) * 2012-02-08 2021-04-06 Omron Robotics And Safety Technologies, Inc. Job management sytem for a fleet of autonomous mobile robots
WO2014183042A1 (en) * 2013-05-10 2014-11-13 Cnh Industrial America Llc Control architecture for multi-robot system

Cited By (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9625571B1 (en) * 2015-08-06 2017-04-18 X Development Llc Disabling robot sensors
US10006989B1 (en) * 2015-08-06 2018-06-26 Schaft Inc. Disabling robot sensors
US9746852B1 (en) * 2015-08-17 2017-08-29 X Development Llc Using laser sensors to augment stereo sensor readings for robotic devices
US10488523B2 (en) 2015-08-17 2019-11-26 X Development Llc Using laser sensors to augment stereo sensor readings for robotic devices
USD810799S1 (en) * 2015-12-01 2018-02-20 Nidec Shimpo Corporation Automatic guided vehicle
US11260871B2 (en) * 2015-12-17 2022-03-01 Nec Corporation Road information detection device, driving assistance device, road information detection system, road information detection method, driving control method and program
US10386847B1 (en) * 2016-02-19 2019-08-20 AI Incorporated System and method for guiding heading of a mobile robotic device
US11726490B1 (en) * 2016-02-19 2023-08-15 AI Incorporated System and method for guiding heading of a mobile robotic device
US20170361465A1 (en) * 2016-06-20 2017-12-21 X Development Llc Localization of a Mobile System
US9868214B2 (en) * 2016-06-20 2018-01-16 X Development Llc Localization of a mobile system
US11086328B2 (en) 2016-08-23 2021-08-10 A9.Com, Inc. Autonomous cart for manufacturing and warehouse applications
US10901431B1 (en) * 2017-01-19 2021-01-26 AI Incorporated System and method for guiding heading of a mobile robotic device
US11842315B2 (en) 2017-03-27 2023-12-12 Clearpath Robotics Inc. Systems and methods for autonomous lineside parts delivery to an assembly line process
US10990919B2 (en) 2017-03-27 2021-04-27 Clearpath Robotics Inc. Systems and methods for autonomous lineside parts delivery to an assembly line process
US10928835B2 (en) 2017-03-27 2021-02-23 Clearpath Robotics Inc. Systems and methods for flexible manufacturing using self-driving vehicles
WO2018178875A1 (en) * 2017-03-27 2018-10-04 Clearpath Robotics, Inc. Systems and methods for autonomous provision replenishment
US10885495B2 (en) 2017-03-27 2021-01-05 Clearpath Robotics Inc. Systems and methods for autonomous provision replenishment
US11687096B1 (en) 2017-03-27 2023-06-27 Clearpath Robotics Inc. Systems and methods for flexible manufacturing using self-driving vehicles
US11587033B2 (en) 2017-03-27 2023-02-21 Clearpath Robotics Inc. Systems and methods for autonomous provision replenishment
US11556136B2 (en) 2017-03-27 2023-01-17 Clearpath Robotics Inc. Systems and methods for flexible manufacturing using self-driving vehicles
US11760221B2 (en) 2017-06-27 2023-09-19 A9.Com, Inc. Charging systems and methods for autonomous carts
US10793369B2 (en) 2017-07-12 2020-10-06 A9.Com, Inc. Conveyor system for autonomous robot
US10293489B1 (en) * 2017-12-15 2019-05-21 Ankobot (Shanghai) Smart Technologies Co., Ltd. Control method and system, and cleaning robot using the same
USD888790S1 (en) * 2018-01-18 2020-06-30 Lingdong Technology (Beijing) Co.Ltd Autonomy transportation vehicle
US20190314993A1 (en) * 2018-04-13 2019-10-17 The Boeing Company Airplane Passenger Service Robot
US10828780B2 (en) * 2018-04-13 2020-11-10 The Boeing Company Airplane passenger service robot
USD918978S1 (en) * 2018-04-17 2021-05-11 Beijing Jingdong Qianshi Technology Co., Ltd. Selecting robot (first generation)
US20210338031A1 (en) * 2018-07-20 2021-11-04 Lg Electronics Inc. Robot cleaner and method for controlling same
USD890828S1 (en) * 2018-09-19 2020-07-21 Amazon Technologies, Inc. Mobile conveyor unit
US20200110421A1 (en) * 2018-10-05 2020-04-09 Teco Electric & Machinery Co., Ltd. Automated guided vehicle
USD917591S1 (en) * 2018-10-31 2021-04-27 Hangzhou Hikrobot Technology Co., Ltd Automatic guided transport vehicle
USD890239S1 (en) * 2018-11-14 2020-07-14 Grey Orange Pte. Ltd. Modular cross belt sortation machine
USD915486S1 (en) * 2018-12-31 2021-04-06 Toyota Research Institute, Inc. Virtual mobility robot
USD888791S1 (en) * 2019-01-07 2020-06-30 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
USD924291S1 (en) * 2019-01-18 2021-07-06 Tata Consultancy Services Limited Industrial robot
USD894984S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD894986S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD895709S1 (en) * 2019-03-14 2020-09-08 Omron Corporation Transportation robot
USD908757S1 (en) * 2019-03-14 2021-01-26 Omron Corporation Holder for a transportation robot
USD895707S1 (en) * 2019-03-14 2020-09-08 Omron Corporation Transportation robot
USD895708S1 (en) * 2019-03-14 2020-09-08 Omron Corporation Transportation robot
USD894985S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD894983S1 (en) * 2019-03-14 2020-09-01 Omron Corporation Transportation robot
USD892188S1 (en) * 2019-04-05 2020-08-04 IAM Robotics, LLC Autonomous mobile robot
USD909442S1 (en) * 2019-07-25 2021-02-02 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
US11597104B2 (en) 2019-07-31 2023-03-07 X Development Llc Mobile robot sensor configuration
USD909441S1 (en) * 2019-09-25 2021-02-02 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
USD949220S1 (en) * 2019-12-19 2022-04-19 Toyota Research Institute, Inc. Virtual mobility robot
USD937920S1 (en) * 2019-12-19 2021-12-07 Toyota Research Institute, Inc. Virtual mobility robot
USD931922S1 (en) * 2020-03-06 2021-09-28 Grey Orange Pte. Ltd. Modular sortation machine
USD972612S1 (en) * 2020-05-29 2022-12-13 Blue Ocean Robotics Aps UV-light disinfection robot light assembly tower
USD968492S1 (en) * 2020-05-29 2022-11-01 Blue Ocean Robotics Aps UV-light disinfection robot
USD976299S1 (en) * 2020-05-29 2023-01-24 Blue Ocean Robotics Aps UV-light disinfection robot light assembly tower cap
USD970577S1 (en) * 2020-05-29 2022-11-22 Blue Ocean Robotics Aps UV-light disinfection robot base
USD963721S1 (en) * 2020-09-15 2022-09-13 Lingdong Technology (Beijing) Co. Ltd Logistic vehicle
USD963720S1 (en) * 2020-09-15 2022-09-13 Lingdong Technology (Beijing) Co.Ltd Logistic vehicle
USD970572S1 (en) * 2020-12-09 2022-11-22 Samsung Electronics Co., Ltd. Service robot
USD1018618S1 (en) * 2021-02-09 2024-03-19 Naver Labs Corporation Goods delivery robot
USD969894S1 (en) * 2021-03-15 2022-11-15 Shenzhen Pudu Technology Co., Ltd. Robot
USD969895S1 (en) * 2021-03-15 2022-11-15 Shenzhen Pudu Technology Co., Ltd. Robot
USD969189S1 (en) * 2021-05-31 2022-11-08 Lg Electronics Inc. Security guide robot
USD966381S1 (en) * 2021-05-31 2022-10-11 Lg Electronics Inc. Security guide robot
USD966382S1 (en) * 2021-06-25 2022-10-11 Ubtech North America Research And Development Center Corp Robot
USD963722S1 (en) * 2021-06-28 2022-09-13 Ubtech North America Research And Development Center Corp Robot
USD966383S1 (en) * 2021-06-29 2022-10-11 Ubtech North America Research And Development Center Corp Robot
USD988381S1 (en) * 2021-10-20 2023-06-06 Bear Robotics, Inc. Robot
CN116359932A (en) * 2023-03-27 2023-06-30 珠海创智科技有限公司 Barrier distance feedback method and device based on laser radar sensor

Also Published As

Publication number Publication date
SG11201400966UA (en) 2014-04-28
EP3113055A1 (en) 2017-01-04
EP2791842A4 (en) 2016-01-20
PL2807526T3 (en) 2020-11-30
US8688275B1 (en) 2014-04-01
EP2791842B1 (en) 2019-09-04
EP2791842A1 (en) 2014-10-22
ES2812568T3 (en) 2021-03-17
WO2013112842A1 (en) 2013-08-01
US9592609B2 (en) 2017-03-14
EP2807526A1 (en) 2014-12-03
WO2013112907A1 (en) 2013-08-01
US20140350725A1 (en) 2014-11-27
EP2807526A4 (en) 2016-01-20
DK2791842T3 (en) 2019-09-30
SG11201400958XA (en) 2014-04-28
DK2807526T3 (en) 2020-08-17
EP3113055B1 (en) 2021-06-02
EP2807526B1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
US8688275B1 (en) Positive and negative obstacle avoidance system and method for a mobile robot
US7864302B2 (en) Method for detecting objects with a pivotable sensor device
US9950587B2 (en) Inclination detection method, inclination detection apparatus, and equipment for detecting inclination
EP3610284B1 (en) Determination of localization viability metrics for landmarks
EP3512785B1 (en) Integrated obstacle detection and payload centering sensor system
US10503143B1 (en) Protection system for multi-zone robotic area
US20210223786A1 (en) Detecting objects near an autonomous device
US20200004247A1 (en) Controlling movement of autonomous device
JP5879061B2 (en) Positioning and posture estimation mobile system and autonomous mobile robot system
CN111258320A (en) Robot obstacle avoidance method and device, robot and readable storage medium
US20210271246A1 (en) Arithmetic device, movement control system, control device, moving object, calculation method, and computer-readable storage medium
CN111435164A (en) Method for detecting obstacle by robot and robot
US9062975B2 (en) Carrier
JP7395280B2 (en) Position calculation system, position calculation method, and automated guided vehicle
CN116009528A (en) Processing device, mobile robot, mobile control system, processing method, and program
CN115494836A (en) Detection system, processing device, moving object, detection method, and storage medium
JP2021056764A (en) Movable body
US20210341930A1 (en) Obstacle avoidance method and apparatus, and warehousing robot
JP6687313B1 (en) Transport system
CN112859842B (en) Path following navigation method and system thereof
JPWO2018180175A1 (en) Moving object, signal processing device, and computer program
US20230128651A1 (en) Determining scanner error
US20230400858A1 (en) Identifying transport structures
CN116203939A (en) Management system, map management device, management method, management program, map information data structure, and mobile object
CN115145273A (en) Obstacle avoidance control method, robot and computer-readable storage medium

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADEPT TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PAUL, GEORGE;REEL/FRAME:031633/0268

Effective date: 20131115

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: OMRON ADEPT TECHNOLOGIES, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ADEPT TECHNOLOGY, INC.;REEL/FRAME:039309/0096

Effective date: 20160114

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: M1554)

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

AS Assignment

Owner name: OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC., CALI

Free format text: MERGER AND CHANGE OF NAME;ASSIGNORS:OMRON ADEPT TECHNOLOGIES, INC.;OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC.;REEL/FRAME:050335/0535

Effective date: 20190328

AS Assignment

Owner name: OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC., CALI

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE ZIP CODE OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 050335 FRAME: 0535. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:OMRON ADEPT TECHNOLOGIES, INC.;REEL/FRAME:050498/0129

Effective date: 20190328

AS Assignment

Owner name: OMRON CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OMRON ROBOTICS AND SAFETY TECHNOLOGIES, INC.;REEL/FRAME:054649/0819

Effective date: 20201130

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8