Autonomous multi-platform robotic system
Summary by NHIP
Multi-platform robotic system
The system uses a navigator platform to map and control a functional robot platform that senses the environment. The functional robot sends environmental data to the navigator, which processes it for planning and transmits control signals back to the robot.
Claim Score by NHIP
Abstract
An autonomous multi-platform robot system (100, 1100) for performing at least one functional task in an environment is provided. The system includes at least one navigator platform (110, 1110) providing mapping, localization, planning, and control functions for itself and at least one other platform within the environment and at least one functional robot platform (120, 1120) in communication with one or more navigator platforms for performing one or more functional tasks. In one embodiment, one or more navigator platforms (1110) are stationary and include sensors (202) for sensing information about the environment. In another embodiment, one or more functional robot platforms (1120) include sensors (304) for sending information about the environment. In still another embodiment, the system includes one or more stationary platforms (124) with sensors (310) for sensing information about the environment.

Term
Term ended
Expired 16 April 2023, 3.4 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
21 claims: 3 independent, 18 dependent
- 1Broadest claimClaim Score 62, broad(NHIP)An autonomous multi-platform robot system for performing at least one functional task in an environment, the system including:at least one functional robot platform;at least one navigator platform providing mapping, localization, planning, and control functions for itself and said at least one functional robot platform;and wherein said at least one functional robot platform senses information about the environment and communicates such information to said at least one navigator platform for consideration in the mapping, localization, planning, and control functions provided by the at least one navigator platform.
- 9A multi-platform robot system for performing functional tasks in an environment, the system including:a functional robot platform;a navigator platform providing mapping, localization, planning, and control functions for itself and said functional robot platform;wherein the functional robot platform is in communication with the navigator platform for performing one or more functional tasks;and a stationary sensor platform in communication with the navigator platform, the functional robot platform providing control functions for said stationary sensor platform;wherein said stationary sensor platform is separate from said navigator platform and senses information about the environment and communicates such information to said navigator platform for consideration in the manning, localization, planning, and control functions provided by said navigator platform.
- 14A robot system for performing one or more functional tasks in an environment, the system including:at least one functional robot platform;and at least one navigator platform providing mapping, localization, planning, and control functions for itself and said at least one functional robot platform;wherein said at least one functional robot platform includes first means for sensing information about the environment and second means for communicating such information to said at least one navigator platform;wherein the mapping, localization, planning, and control functions provided by the at least one navigator platform are based at least in part on the information about the environment from the at least one functional robot platform.
Independent claims3
125 paragraphs in 4 sections, as filed
This application claims the benefit of U.S. Provisional Application Ser. No. 60/379,530, filed on May 10, 2002, the disclosure of which is incorporated herein by reference.
BACKGROUND OF INVENTION
The invention relates to mobile robot systems. It finds particular application in conjunction with a system and method for allocating mapping, localization, planning, control and task performance functions in an autonomous multi-platform robot environment and will be described with particular reference thereto. However, it is to be appreciated that the invention is also amenable to other applications.
Mobile robots have been designed, developed and deployed to handle a variety of tasks such as cleaning and security. Most mobile robots are non-autonomous; that is, they are unable to autonomously navigate. The economic benefits provided by non-autonomous robots are limited by the inflexible behavior of the robots and their extensive installation costs. Skilled technicians often must be hired and paid to preprogram the robots for specific routes and tasks. It may be necessary to install objects in the environment to guide the robots, such as tracks, buried signal emitting wires, markers or sensors. Further modifications to the environment may also be necessary to minimize installation and operational problems.
Some mobile non-autonomous robots can detect obstacles blocking their paths, and can stop or deviate slightly from their paths to avoid such obstacles. If the environment is modified significantly, however, such as by moving a large item of furniture, conventional non-autonomous robots do not properly react. Part or all of the installation process often must be repeated. Given this limitation, non-autonomous robots are usually deployed only on stable and high value routes. Though some non-autonomous robots rely on random motion to perform their tasks, such as pool cleaning robots, only a limited number of applications are amenable to this approach.
Fully autonomous mobile robots have begun to emerge from research laboratories during the past few years. Autonomous robots are able to navigate through their environment by sensing and reacting to their surroundings and environmental conditions. Autonomous robot navigation involves four primary tasks: mapping, localization, planning and control. These closely related concepts are analogous to asking the questions “Where am I?” (mapping and localization), followed by “Where do I want to be?” or “What do I want to do?” (planning), and finally, “How do I get there?” or “How do I do that?” (control).
Once mapping is complete, the robot's current position, orientation and rate of change within the map must be determined. This process is referred to as localization. Autonomous robots that rely on 2D mapping and localization are often not able to navigate with adequate reliability due to the relative simplicity of the map. Often, the robots become lost, stuck or fall. Use of dynamic 3D mapping and localization, by contrast, permits navigation that is more reliable but involves complex calculations requiring a large amount of computational overhead. 3D maps typically have millions of cells, making straightforward operations such as landmark extraction, localization and planning computationally intensive. The resulting computational delays limit the speed of robot movement and task performance.
Once mapping and localization are accomplished, task planning and performance must be undertaken. Some localization will still be required during task performance. With one robot attempting to localize while performing tasks leads to unacceptable delays. If multiple robots are used, the tradeoffs described above are often still present, and must now be dealt with multiple times over.
U.S. Pat. No. 6,374,155 to Wallach et al. discloses an autonomous mobile robot system that allocates mapping, localization, planning, and control functions to at least one navigator robot and allocates task performance functions to one or more functional robots. The at least one navigator robot maps the environment, localizes itself and the functional robots within the map, plans the tasks to be preformed by the at least one functional robot and controls and tracks the at least one functional robot during task performance. The at least one navigator robot performs substantially all calculations for mapping, localization, planning and control for both itself and the functional robots. In one implementation, the at least one navigator robot remains stationary while controlling and moving the at least one functional robot platform in order to simplify localization calculations. In one embodiment, the at least one navigator robot, whether mobile or stationary, is equipped with sensor processing hardware to perform substantially all calculations for mapping, localization, planning, and control required for these tasks, while the at least one functional robot is equipped with various sensors or hardware employed for calculation purposes. The at least one functional robot transmits date from the sensors to the at least one navigator robot so that the navigator can process the data for its calculations.
BRIEF SUMMARY OF INVENTION
In view of the above, an autonomous, multi-robot system having fast, accurate and cost effective mapping and localization, as well as effective planning and allocation of tasks with improving sensing of the environment is needed.
In one aspect, the invention provides an autonomous multi-platform robot system for performing at least one functional task in an environment. In one embodiment, the system includes at least one navigator platform providing mapping, localization, planning, and control functions for itself and at least one other platform within the environment and at least one functional robot platform in communication with one or more navigator platforms for sensing information about the environment.
In another embodiment, the system includes a navigator platform providing mapping, localization, planning, and control functions for itself and other platforms within the environment, one or more functional robot platforms in communication with the navigator platform for performing one or more functional tasks, and one or more stationary sensor platforms in communication with the navigator platform for sensing information about the environment.
In still another embodiment, the system includes at least one stationary navigator platform for sensing information about the environment and providing mapping, localization, planning, and control functions for itself and at least one other platform within the environment and at least one functional robot platform in communication with one or more navigator platforms for performing the functional task(s).
The system provides near real-time maneuvering and task completion. One application of the invention is in household or office cleaning, which typically involves multiple and repetitive tasks such as vacuuming, sweeping and mopping. The invention, however, could be implemented in any environment where one or more robots are maneuvered to perform assigned tasks.
Benefits and advantages of the invention will become apparent to those of ordinary skill in the art upon reading and understanding the description of the invention provided herein.
BRIEF DESCRIPTION OF DRAWINGS
The invention is described in more detail in conjunction with a set of accompanying drawings.
FIG. 1<i>a </i>is a block diagram of an autonomous multi-platform robot system in one embodiment of the invention.
FIG. 1<i>b </i>is a block diagram of an autonomous multi-platform robot system in another embodiment of the invention.
FIG. 2<i>a </i>is a block diagram of an embodiment of a navigator platform of the robot system.
FIG. 2<i>b </i>is a block diagram of another embodiment of a navigator platform of the robot system.
FIG. 2<i>c </i>is a block diagram of yet another embodiment of a navigator platform of the robot system.
FIGS. 3<i>a-c </i>is a set of block diagrams depicting communications between an embodiment of a navigator platform and an embodiment of a functional robot platform, another embodiment of a functional robot platform, and an embodiment of a stationary sensor platform.
FIGS. 3<i>d-f </i>is a set of block diagrams depicting communications between another embodiment of a navigator platform and an embodiment of a functional robot platform, another embodiment of a functional robot platform, and an embodiment of a stationary sensor platform.
FIG. 4<i>a </i>is a block diagram of an embodiment of a functional robot platform of the robot system.
FIG. 4<i>b </i>is a block diagram of another embodiment of a functional robot platform of the robot system.
FIG. 4<i>c </i>is a block diagram of an embodiment of a stationary sensor platform of the robot system.
FIG. 5 is a block diagram depicting a navigator as it maneuvers a functional robot platform around an obstacle.
FIG. 6 is a block diagram depicting an embodiment of a navigator platform as it maneuvers itself toward a functional robot platform.
FIG. 7<i>a </i>is a flow diagram illustrating one method by which the navigator platform localizes itself within a dynamic map of the environment.
FIG. 7<i>b </i>is a flow diagram illustrating one method by which the navigator platform performs preplanning.
FIG. 7<i>c </i>is a flow diagram illustrating one method by which the navigator platform controls and tracks functional robot platforms during task performance.
FIG. 8<i>a </i>is a flow diagram showing one method of implementing an autonomous multi-platform robot system according to one embodiment of the invention.
FIG. 8<i>b </i>is a flow diagram showing another method of implementing an autonomous multi-platform robot system according to another embodiment of the invention.
FIG. 9 is a flow diagram illustrating another method by which the navigator platform localizes itself within a dynamic map of the environment.
FIGS. 10<i>a-c </i>is a set of flow diagrams showing three methods of implementing an autonomous multi-platform robot system in accordance with another embodiment of the invention.
FIG. 11 is a stylized drawing of one embodiment of a mobile navigator platform of the robot system.
FIG. 12 is a stylized drawing of another embodiment of a stationary navigator platform of the robot system.
FIG. 13 is a stylized drawing of one embodiment of a functional robot platform of the robot system.
FIG. 14 is a stylized drawing of another embodiment of a functional robot platform of the robot system.
FIG. 15 is a stylized drawing of yet another embodiment of a functional robot platform of the robot system.
FIG. 16 is a stylized drawing of an embodiment of a stationary sensor platform of the robot system.
DETAILED DESCRIPTION OF INVENTION
While the invention is described in conjunction with the accompanying drawings, the drawings are for purposes of illustrating exemplary embodiments of the invention and are not to be construed as limiting the invention to such embodiments. It is understood that the invention may take form in various components and arrangement of components and in various steps and arrangement of steps beyond those provided in the drawings and associated description. Within the drawings, like reference numerals denote like elements and similar reference numerals denote similar elements.
FIG. 1<i>a </i>is a block diagram of an autonomous multi-platform robot system <b>100</b> in one embodiment of the invention. System <b>100</b> includes one or more mobile navigator platforms <b>110</b>, one or more functional robot platforms <b>120</b>, <b>1120</b>, one or more stationary sensor platforms <b>124</b>, and (optionally) one or more a base stations <b>130</b>. The functional robot platforms <b>120</b>, <b>1120</b> may include functional robot platforms with sensors <b>1120</b> and functional robot platforms without sensors <b>120</b>. It is noted that base stations <b>130</b>, while providing advantages that will be described below, are not required in all embodiments.
Base station <b>130</b>, if included, may be equipped with charging stations to recharge the mobile robots <b>110</b>, <b>120</b>, <b>1120</b>. Moreover, base station <b>130</b> may be configured to assist in task performance. If, for example, system <b>100</b> is implemented in a residential cleaning environment, base station <b>130</b> may be equipped with a dust bin, trash bin, water reservoir, and the like, to aid in the performance of the required tasks.
In one embodiment, a navigator platform <b>110</b> and functional robot platforms with sensors <b>1120</b> are responsible for all or substantially all mapping, localization, planning and control functions. Navigator platform <b>110</b> creates and maintains environment maps, a list of tasks to be accomplished, a task schedule and a charging schedule. Functional robot platforms <b>1120</b> are configured with all sensors and hardware required to collect and transmit environment data to navigator platform <b>110</b>. Navigator platform <b>110</b> is configured with all hardware required for receiving the environment data and navigating and maneuvering itself as well as functional robot platforms <b>120</b>, <b>1120</b>. In this regard, navigator platform <b>110</b> has a transmitter for communicating commands to functional robot platforms <b>120</b>.
Functional robot platforms <b>120</b>, <b>1120</b> carry out specific tasks and may be shaped and sized to facilitate performance of those tasks. Robots <b>120</b>, <b>1120</b> are equipped with receivers for receiving commands from navigator platform <b>110</b>. As shown in FIGS. 1<i>a </i>and <b>1</b><i>b</i>, unique shapes or markings <b>122</b> may be applied to functional robot platforms without sensors <b>120</b> to assist navigator platform <b>110</b> in recognizing, locating and tracking them.
In another embodiment, a navigator platform <b>110</b> and stationary sensor platforms <b>124</b> are responsible for all or substantially all mapping, localization, planning and control functions. The stationary sensor platforms <b>124</b> are without wheels, rendering them immobile, yet portable allowing them to be easily hand carried by users. Stationary sensor platforms <b>124</b> are configured with all sensors and hardware required to collect and transmit environment data to navigator platform <b>110</b>. Stationary sensor platforms <b>124</b> may collect environment data in addition to or instead of functional robot platforms with sensors <b>1120</b>. In other words, the system <b>100</b> may be configured with either stationary sensor platforms <b>124</b> or functional robot platforms with sensors <b>1120</b> or both <b>124</b>, <b>1120</b>.
FIG. 1<i>b </i>is a block diagram of an autonomous multi-platform robot system <b>1100</b> in accordance with another embodiment of the invention. System <b>1000</b> includes one or more stationary navigator platforms <b>1110</b> instead of mobile navigator platforms <b>110</b> and is similar to system <b>100</b> of FIG. 1<i>a </i>in many other aspects. The stationary navigator platforms <b>1110</b> are without wheels, rendering them immobile, yet portable allowing them to be easily hand carried by users. However, in one embodiment of system <b>1100</b>, a navigator platform <b>1110</b> is responsible for all or substantially all mapping, localization, planning and control functions. In this embodiment, navigator platform <b>1110</b> is configured with all sensors and hardware required for navigating and maneuvering functional robot platforms <b>120</b>, <b>1120</b>. Navigator platform <b>1110</b> may collect environment data in addition to or instead of functional robot platforms with sensors <b>1120</b> and/or stationary sensors. In other words, the system <b>100</b> may be configured with either stationary navigator platforms <b>1110</b>, stationary sensor platforms <b>124</b> or functional robot platforms with sensors <b>1120</b> or any combination thereof
FIG. 2<i>a </i>is a block diagram of an embodiment of a mobile navigator platform <b>110</b> of the system <b>100</b>. The particular implementation of robot <b>110</b> shown in FIG. 2<i>a </i>is provided for illustrative purposes only and should not be interpreted as requiring a specific physical architecture for navigator platform <b>110</b>.
Navigator platform <b>110</b> includes controller <b>204</b>, power source and power supply system <b>206</b>, transmitter <b>208</b>, motor controller <b>210</b>, motor <b>212</b>, wheels <b>214</b>, and receiver <b>222</b>. Controller <b>204</b> comprises a processor or central processing unit (CPU) <b>216</b>, a temporary storage or RAM <b>218</b>, and a nonvolatile storage <b>220</b>. Information such as maps and task schedules are stored in nonvolatile storage <b>220</b> which, in one implementation, is an EPROM or EEPROM. Controller <b>204</b> receives and processes information from sensors on-board functional robot platforms <b>1120</b> and/or stationary sensor platforms <b>124</b> via receiver <b>222</b>. The information received is data regarding the environment surrounding the robot <b>110</b>. This may include information such as the location of navigator platform <b>110</b>, the location of the functional robot platforms <b>120</b>, nearby landmarks and so on. Controller <b>204</b> uses this information to determine what tasks or movements are to occur next.
Controller <b>204</b>, based on the available information, controls the locomotion and maneuvering of navigator platform <b>110</b>. The method and means by which navigator platform <b>110</b> maneuvers itself and effects locomotion is termed the “control loop,” and includes motor controller <b>210</b>, motor <b>212</b> and wheels <b>214</b>. Controller <b>204</b>, based on received environment data, sends appropriate commands to motor controller <b>210</b>. Motor controller <b>210</b> directs motor <b>212</b> according to these commands. Motor <b>212</b>, in turn, drives wheel <b>214</b>. In some implementations, depending on the method and complexity of locomotion, the control loop may also include servos, actuators, transmitters and the like. The control loop may also collect and transmit odometry data to controller <b>204</b>.
FIG. 2<i>b </i>is a block diagram of an embodiment of a stationary navigator platform <b>1110</b> of system <b>1100</b>. The particular implementation of robot <b>1110</b> shown in FIG. 2<i>b </i>is provided for illustrative purposes only and should not be interpreted as requiring a specific physical architecture for navigator platform <b>1110</b>.
A sensor <b>202</b> is mounted on navigator platform <b>1110</b>. Sensor <b>202</b> may be any type of sensor that is suitable for the robot's environment, and multiple sensors may be utilized. It may be mounted in a fixed position or, alternatively, may be configured such that it is able to change position and orientation relative to navigator platform <b>1110</b>. Depending on the sensor type and system complexity, the position and orientation of sensor <b>202</b> may or may not be under the control of navigator platform <b>1110</b>. In one example implementation, sensor <b>202</b> is a camera that records optical images of the surrounding environment. In another implementation, sensor <b>202</b> comprises a set of cameras to provide stereo vision for obtaining more detailed and accurate information about the robot's environment. Other sensor options include, but are not limited to, radar, lidar, sonar and/or combinations thereof The operation and configuration of such sensors will be familiar to those of ordinary skill in the art.
Navigator platform <b>1110</b> further comprises controller <b>204</b>, power source and power supply system <b>206</b>, and transmitter <b>208</b>. Controller <b>204</b> is similar to the controller described above for the mobile navigator platform <b>110</b>. Controller <b>204</b> receives and processes information from sensor <b>202</b> regarding the robot's surrounding environment. This may include information such as the location of navigator platform <b>1110</b>, the location of the functional robot platforms <b>120</b>, <b>1120</b>, nearby landmarks and so on.
FIG. 2<i>c </i>is a block diagram of another embodiment of a stationary navigator platform <b>1110</b> of system <b>1100</b>. The particular implementation of robot <b>1110</b> shown in FIG. 2<i>c </i>is provided for illustrative purposes only and should not be interpreted as requiring a specific physical architecture for navigator platform <b>1110</b>.
In this embodiment, navigator platform <b>1110</b> includes controller <b>204</b>, power source and power supply system <b>206</b>, transmitter <b>208</b>, and receiver <b>222</b>. Controller <b>204</b> is similar to the controller described above for the mobile navigator platform <b>110</b>. Since navigator platform <b>1110</b> is stationary it does not include wheels and a control loop for locomotion.
FIG. 3<i>a </i>depicts one aspect of system <b>100</b> in operation. Navigator platform <b>110</b> controls the movement and operation of one or more functional robot platforms <b>120</b> via transmitter <b>208</b> and a control signal <b>209</b> that is received by a receiver <b>302</b> of the functional robot platform <b>120</b>.
FIG. 3<i>b </i>depicts another aspect of system <b>100</b> operation—one or more functional robot platforms <b>1120</b> receive sensor input data <b>201</b> via sensors <b>304</b> and transmit environment data <b>308</b> to navigator platform <b>110</b> via transmitters <b>306</b>. Navigator platform <b>110</b> receives the environment data <b>308</b> via its receiver <b>222</b> and determines what task, movement, or other functions functional robot platforms <b>120</b>, <b>1120</b> are to undertake next. Once determined, similar to FIG. 3<i>a</i>, navigator platform <b>110</b> controls the movement and operation of functional robot platforms <b>1120</b> via transmitter <b>208</b>.
FIG. 3<i>c </i>depicts yet another aspect of system <b>100</b> operation—stationary sensor platforms <b>124</b> receive sensor input data <b>201</b> via sensors <b>310</b> and transmit environment data <b>308</b> to navigator platform <b>110</b> via transmitters <b>314</b>. Navigator platform <b>110</b> receives the environment data <b>308</b> via its receiver <b>222</b> and determines what task, movement, or other functions functional robot platforms <b>120</b>, <b>1120</b> are to undertake next. Once determined, navigator platform <b>110</b> controls the movement and operation of functional robot platforms <b>120</b>, <b>1120</b> as described for FIGS. 3<i>a </i>and <b>3</b><i>b</i>. Navigator platform <b>110</b> may also control stationary sensor platforms <b>124</b> via transmitter <b>208</b>.
FIG. 3<i>d </i>depicts still yet another aspect of system <b>1100</b> operation—navigator platform <b>1110</b> receives sensor input data <b>201</b> (i.e., environment data) via sensors <b>310</b> and determines what task, movement, or other functions functional robot platforms <b>120</b>, <b>1120</b>, if any, are to undertake next. Once determined, similar to FIG. 3<i>a</i>, navigator platform <b>1110</b> controls the movement and operation of functional robot platforms <b>120</b> via transmitter <b>208</b>.
FIG. 3<i>e </i>depicts another aspect of system <b>1100</b> operation—similar to FIG. 3<i>b</i>, functional robot platforms <b>1120</b> receive sensor input data <b>201</b> via sensors <b>304</b> and transmit environment data <b>308</b> to navigator platform <b>1110</b> via transmitters <b>306</b>. Navigator platform <b>1110</b> receives the environment data <b>308</b> via its receiver <b>222</b> and determines what task, movement, or other functions functional robot platforms <b>120</b>, <b>1120</b> are to undertake next. Once determined, similar to FIG. 3<i>d</i>, navigator platform <b>1110</b> controls the movement and operation of functional robot platforms <b>1120</b> via transmitter <b>208</b>.
FIG. 3<i>f </i>depicts yet another aspect of system <b>100</b> operation—similar to FIG. 3<i>c</i>, stationary sensor platforms <b>124</b> receive sensor input data <b>201</b> via sensors <b>310</b> and transmit environment data <b>308</b> to navigator platform <b>110</b> via transmitters <b>314</b>. Navigator platform <b>1110</b> receives the environment data <b>308</b> via its receiver <b>222</b> and determines what task, movement, or other functions functional robot platforms <b>120</b>, <b>1120</b> are to undertake next. Once determined, navigator platform <b>1110</b> controls the movement and operation of functional robot platforms <b>120</b>, <b>1120</b> as described for FIGS. 3<i>d </i>and <b>3</b><i>e</i>. Navigator platform <b>1110</b> may also control stationary sensor platforms <b>124</b> via transmitter <b>208</b>.
Transmitter <b>208</b> and receivers <b>302</b>, <b>312</b> may use any suitable conventional communication means and medium. Likewise, transmitters <b>306</b>, <b>314</b> and receiver <b>222</b> may use any suitable conventional communication means and medium. In one implementation, acoustic waves are used for communication between navigator platform <b>110</b>, <b>1110</b> and functional robot platforms <b>120</b>, <b>1120</b> and between navigator platform <b>110</b>, <b>1110</b> and stationary sensor platforms <b>124</b>. In one implementation example, an acoustic wave at one frequency would denote a command to move in one direction (e.g., from navigator platform <b>110</b>, <b>1110</b> to functional robot platform <b>120</b>, <b>1120</b>), while an acoustic wave at another frequency would denote a command to move in another direction (e.g., from functional robot platform <b>120</b> to navigator platform <b>110</b>). Other suitable communication means include, but are not limited to, wired or wireless communication, infrared signals and magnetic induction.
The particular implementation of robot <b>120</b> shown in FIG. 4<i>a </i>is provided for illustrative purposes only and should not be interpreted as requiring a specific physical architecture for robot <b>120</b>.
As described above, functional robot platform <b>120</b> includes a receiver <b>302</b>. The control loop for moving and maneuvering robot <b>120</b> comprises a power source and power supply system <b>402</b>, motor controller <b>404</b>, motor <b>406</b> and wheels <b>408</b>. Control signals received from navigator platform <b>110</b>, or <b>1110</b>, via receiver <b>302</b> direct motor controller <b>404</b>. Controller <b>404</b> controls motor <b>406</b>, which in turn drives wheels <b>408</b>. The control loop may also comprise servos, actuators, transmitters and the like.
The particular implementation of robot <b>1120</b> shown in FIG. 4<i>b </i>is provided for illustrative purposes only and should not be interpreted as requiring a specific physical architecture for robot <b>1120</b>.
A sensor <b>304</b> is mounted on robot <b>1120</b>. Sensor <b>304</b> is similar to sensor <b>202</b> in navigator platform <b>1110</b>. The description above of sensor <b>202</b> applies to sensor <b>304</b> in regard to its operation in robot <b>1120</b>. Depending on the sensor type and system complexity, the position and orientation of sensor <b>304</b> may or may not be under the control of navigator platform <b>110</b>, <b>1110</b>.
Robot <b>1120</b> further comprises controller <b>410</b>, power source and power supply system <b>402</b>, transmitter <b>302</b>, receiver <b>306</b>, motor controller <b>404</b>, motor <b>406</b>, and wheels <b>408</b>. Controller <b>410</b> is similar to the controller <b>204</b> described above for the mobile navigator platform <b>110</b>. Controller <b>410</b> receives and processes information from sensor <b>304</b> regarding the robot's surrounding environment. This may include information such as the location of navigator platform <b>110</b>, <b>1110</b>, the location of the other functional robot platforms <b>120</b>, <b>1120</b>, nearby landmarks and so on. The controller <b>410</b> transmits the sensor data to navigator platform <b>110</b>, <b>1110</b> via transmitter <b>306</b>.
Like functional robot platform <b>120</b>, functional robot platform <b>1120</b> includes a receiver <b>302</b>. The receiver <b>302</b> receives commands for operating and maneuvering the robot <b>1120</b> from navigator platform <b>110</b>, <b>1110</b> and communicates the commands to the controller <b>410</b>. The control loop for moving and maneuvering robot <b>1120</b> comprises power source and power supply system <b>402</b>, motor controller <b>404</b>, motor <b>406</b> and wheels <b>408</b>. The controller <b>410</b>, based on operating and maneuvering commands, sends appropriate commands to motor controller <b>404</b>. Motor controller <b>404</b> directs motor <b>406</b> according to these commands. Motor <b>406</b>, in turn, drives wheel <b>408</b>. As with robot <b>120</b>, the control loop in robot <b>1120</b> may also comprise servos, actuators, transmitters and the like.
Reference is now made to a block diagram of an embodiment of a stationary sensor platform <b>124</b> of system <b>100</b>, <b>1100</b>, as shown in FIG. 4<i>c</i>. Again, the particular implementation of stationary sensor platform <b>124</b> shown in FIG. 4<i>c </i>is provided for illustrative purposes only and should not be interpreted as requiring a specific physical architecture for stationary sensor platform <b>124</b>.
A sensor <b>310</b> is mounted on stationary sensor platform <b>124</b>. Sensor <b>310</b> is similar to sensor <b>202</b> in navigator platform <b>1110</b> and sensor <b>304</b> in functional robot platform <b>1120</b>. The descriptions above of sensors <b>202</b> and <b>304</b> applies to sensor <b>310</b> in regard to its operation in stationary sensor platform <b>124</b>. Depending on the sensor type and system complexity, the position and orientation of sensor <b>310</b> may or may not be under the control of navigator platform <b>110</b>, <b>1110</b>. Stationary sensor platform <b>124</b> may be portably positioned upright on horizontal surfaces, installed on vertical surfaces, extending downward from a horizontal surface (e.g., a ceiling), or located at various positions within an environment to enable suitable communications with navigator platform <b>110</b>, <b>1110</b>.
Stationary sensor platform <b>124</b> further comprises controller <b>504</b>, power source and power supply system <b>506</b>, transmitter <b>314</b>, and receiver <b>312</b>. Similar to controller <b>410</b> for robot <b>1120</b>, controller <b>504</b> receives and processes information from sensor <b>310</b> regarding the robot's surrounding environment. This may include information such as the location of navigator platform <b>110</b>, <b>1110</b>, the location of the other functional robot platforms <b>120</b>, <b>1120</b>, nearby landmarks and so on. The controller <b>504</b> transmits the sensor data to navigator platform <b>110</b>, <b>1110</b> via transmitter <b>314</b>.
Like functional robot platform <b>1120</b>, stationary sensor platform <b>124</b> includes a receiver <b>312</b>. The receiver <b>312</b> receives commands for operating the stationary sensor platform <b>124</b> from navigator platform <b>110</b>, <b>1110</b> and communicates the commands to the controller <b>504</b>.
The power source and supply modules of navigator platforms <b>110</b>, <b>1110</b>, functional robot platforms <b>120</b>, <b>1120</b>, and stationary sensor platforms <b>124</b> may be similar or identical. The power source portion may comprise any suitable power source including, but not limited to, batteries, electrical outlets, fuel cells, internal combustion or other engines, or combinations thereof. The power supply portion conditions the, usually electric, power and distributes it to meet any applicable specifications or requirements. Likewise, other similarly functioning components (e.g., controllers, sensors, receivers, transmitters) in navigator platforms <b>110</b>, <b>1110</b>, functional robot platforms <b>120</b>, <b>1120</b>, and stationary sensor platform <b>124</b> may be similar or identical.
As noted above, the invention provides a system and method for allocating mapping, localization, planning, control and task performance in an autonomous multi-platform robot environment. In particular, in one embodiment, mapping, localization, preplanning, and planning and control functions are assigned to a mobile navigator platform and a mobile functional robot platform with sensors, and task performance functions are assigned to at least one mobile functional robot platform. In another embodiment, mapping, localization, preplanning, and planning and control functions are assigned to a mobile navigator platform and a stationary sensor platform, and task performance functions are assigned to at least one mobile functional robot platform. In yet another embodiment, mapping, localization, preplanning, and planning and control functions are assigned to a stationary navigator platform with sensors, and task performance functions are assigned to at least one mobile functional robot platform. In still another embodiment, mapping, localization, preplanning, and planning and control functions are assigned to a stationary navigator platform and a mobile functional robot platform with sensors, and task performance functions are assigned to at least one mobile functional robot platform. In still yet another embodiment, mapping, localization, preplanning, and planning and control functions are assigned to a stationary navigator platform and a stationary sensor platform, and task performance functions are assigned to at least one mobile functional robot platform. Each function (mapping, localization, preplanning, planning and control and task performance) is discussed below.
In one embodiment, navigator platform <b>1110</b> performs all or substantially all mapping functions. In other embodiments, navigator platform <b>110</b>, <b>1110</b> performs mapping functions in conjunction with a functional robot platform <b>1120</b>, a stationary sensor platform <b>124</b>, or both <b>1120</b>, <b>124</b>. Mapping is the process by which a representation of the environment is created and updated from sensor data and preprogrammed input. Several maps having different levels of resolution, stability and/or coordinate systems may be maintained. Dynamic mapping maintains the current dynamic map (CDM), which is a probabilistic two-dimensional (2D) or three-dimensional (3D) map of the robot's environment. A static map of the environment's outer perimeter (i.e. room walls or yard boundaries) may also be created. The maps created by navigator platform <b>110</b>, <b>1110</b> are stored in RAM <b>218</b> or non-volatile memory <b>220</b>.
The iterative mapping process essentially comprises the steps of collecting sensor data of the objects and obstacles in the immediately surrounding area of a stationary navigator platform with sensors <b>1110</b>, a functional robot platform with sensors <b>1120</b>, or a stationary sensor platform <b>124</b>, performing localization, and updating the dynamic map to incorporate information derived from the new sensor data. The functional robot platform with sensors <b>1120</b> can be iteratively moved to collect information for a given environment. Alternatively, multiple stationary components (i.e., navigator platforms <b>1110</b>, stationary sensor platforms <b>124</b>) can be strategically positioned and sequenced by a master navigator platform <b>110</b>, <b>1110</b> to collect the environment data. Either process is computationally intensive and time consuming. As will be explained, however, consolidation of the environment data for mapping functions in navigator platform <b>110</b>, <b>1110</b> reduces the time required for mapping to a fraction of the time that conventional systems require for mapping.
As noted above, in addition to a dynamic map of the environment, a static map of the environment's outer perimeter may be created. The static map may include, for example, the walls of a building or the boundaries of a yard. It may be predetermined and input to navigator platform <b>110</b>, <b>1110</b> or, alternatively, navigator platform <b>110</b>, <b>1110</b> may make a static map of the environment before task performance is initiated. In the latter case, in one embodiment, navigator platform <b>110</b>, <b>1110</b> works in conjunction with a functional robot platform with sensors <b>1120</b> to follow a physically distinct perimeter, maintaining a dynamic map as the robot <b>1120</b> moves and incorporating perimeter information from the dynamic map into the static map. The process continues until the static map is complete, consistent and stable. In another embodiment, the navigator platform <b>110</b>, <b>1110</b> works in conjunction with other navigator platforms <b>1110</b> and/or stationary sensor platforms <b>124</b> to sequence along a distinct perimeter area defined by pre-positioning of the stationary devices (i.e., navigator platforms <b>1110</b>, stationary sensor platforms <b>124</b>)
The process of creating the static map is relatively long and iterative. Preferably, it is done just once upon introduction of the system to a new environment. The exact methodology used to create the map will depend on the sensors used and algorithms chosen to perform the calculations. Once created, in one implementation, the static map is permanently stored in navigator platform <b>110</b>, <b>1110</b>. The navigator can locate its position in the static map by recognizing landmarks and other physical attributes of the environment and by aligning the CDM within the static map. Alternatively, navigator platform <b>110</b>, <b>1110</b> can locate its position in the static map in conjunction with a functional robot platform with sensors <b>1120</b> and/or a stationary sensor platform <b>124</b>. No origin or reference point is required. The use of certain assumptions may shorten the time and computation required to create the static map. In an office or home environment, for example, it can he assumed that walls are square and flat. Use of such assumptions decreases the time required for creating the static map.
In one implementation, the mapping process includes three maps created from sensor data derived from a pair of stereo digital cameras mounted on navigator platform <b>1110</b>. Alternatively, the three maps may be created from sensor data derived from a pair of stereo digital cameras mounted on one or more functional robot platforms <b>1120</b> and/or one or more stationary sensor platforms <b>124</b>. The first map in this implementation is a temporary map (TM) of navigator's <b>110</b>, <b>1110</b> immediate surroundings. In particular, the TM is a probabilistic representation created from the last stereo pair of images of the immediately surrounding environment. The second map in this implementation is the CDM. The CDM is a probabilistic 3D representation of the working environment and is created by alternatively incorporating information from successive TMs. The CDM in this implementation is updated every time the navigator platform <b>110</b>, <b>1110</b> moves. The third map in this implementation is the static perimeter map (PM). As described above, the PM is created as navigator platform <b>110</b>, <b>1110</b> follows the outer perimeter of the environment.
In another implementation, the map(s) are not created by navigator platform <b>110</b>, <b>1110</b>, but rather, are input to or preprogrammed in navigator platform <b>110</b>, <b>1110</b>. In a further implementation, a static map is not created or input before task initiation. In this implementation, navigator platform <b>110</b>, <b>1110</b> simply starts with a blank dynamic map and updates it as tasks are performed.
In one embodiment, navigator platform <b>110</b> is responsible for navigating both itself and functional robot platforms <b>120</b> around the mapped environment. In this embodiment, navigator platform <b>110</b> is responsible for all or substantially all aspects of navigation, including localization, planning and control for both itself and functional robot platforms <b>120</b>. In conventional systems, by contrast, each mobile robot is responsible for its own localization, planning and control. Each robot in such systems is responsible for navigating and maneuvering itself into the proper position to perform a task. Such systems are subject to localization calculation delays for all the robots, which makes task completion slow and inefficient. The embodiment being described avoids such delays and increases efficiency by gathering all or substantially all navigation functions in one navigator platform <b>110</b> and minimizing the amount of movement for that robot.
In another embodiment, navigator platform <b>1110</b> is stationary and is responsible for navigating functional robot platforms <b>120</b>, <b>1120</b> around the mapped environment. Similar to the previously described embodiment, in this embodiment, navigator platform <b>1110</b> is responsible for all or substantially all aspects of navigation, including localization, planning and control for functional robot platforms <b>120</b>, <b>1120</b>.
Localization is the process by which the robot's current position, orientation and rate of change within the map is determined. Different procedures may be used for localizing the navigator and for localizing the functional robot platforms. Localization of the functional robot platforms is relatively simple, since the navigator, in one embodiment, is stationary or substantially stationary when localizing the functional robot platforms and thus knows its location within the CDM. In one implementation, the navigator platform <b>110</b> simply tracks the functional robot platform using the vision systems (i.e., sensors <b>304</b>, <b>310</b>) of the functional robot platform <b>1120</b> or stationary sensor platform <b>124</b> and then filters the vision data with a tracking filter, such as a Kalman filter. If the functional robot platform <b>120</b> has moved or rotated a short distance, the sensors <b>304</b>, <b>310</b> can detect this movement and locate the functional robot platform <b>120</b>. In implementations that use a base station <b>130</b>, the location of functional robot platforms <b>120</b> near the base station <b>130</b> can also be quickly ascertained.
The unique shapes and/or geometric markings <b>122</b> on functional robot platforms <b>120</b> may also assist navigator platform <b>110</b> in locating robots <b>120</b>. The type of sensor <b>202</b> that is used by navigator platform <b>110</b> will dictate whether a unique shape or marking is used and how it is recognized. In one implementation, navigator platform <b>110</b> uses a neural net to process sensor data and to recognize specific shapes. In another implementation, the navigator uses its vision or sensor system to recognize any markings and/or shapes.
In addition to localizing the functional robot platforms <b>120</b>, <b>1120</b>, navigator platform <b>110</b>, <b>1110</b>, in one embodiment, localizes itself after any movement. Localization of the navigator is inextricably linked with mapping, particularly with the maintenance of the CDM (i.e., in order to maintain the CDM, the navigator must know where it is within the CDM). Where both a CDM and a static PM are used, localization involves determining the locations of both the navigator and functional robot platforms within those maps. Note that the CDM may be preprogrammed.
The process of localizing the navigator is typically more involved than the process of localizing the functional robot platforms. Potential methods by which the navigator may localize itself include dead reckoning, active beacon, active sensor and landmark recognition methods. Using dead reckoning, a rough estimate of the robot's change in position may be maintained using odometry and inertial navigation systems. Active beacon localization methods determine the robot's position by measuring its distance from beacons placed at known positions in the environment. Triangulation can then be used to pinpoint the robot's location. Active sensor localization methods track the robot's position with sensors, such as digital cameras, that are placed at known, fixed locations. Landmark recognition methods may be used in which the robot recognizes and knows the position of features and landmarks within the environment. The recognized landmark positions are used to calculate the robot's position.
Because of its low cost and simplicity, some form of dead reckoning (particularly odometry) can be employed according to one embodiment of the invention. Dead reckoning localization errors may accumulate over time, however, due to factors such as wheel slippage and misalignment. To compensate for these errors, auxiliary techniques such as those discussed above may be used in combination with dead reckoning. Real world factors and constraints may limit the feasibility of auxiliary techniques. Active beacon and sensor methods typically require installation of foreign objects such as cameras or reflective tape in the robot's environment. While installation of such objects may be acceptable in factory and industrial settings, it is generally not acceptable in home, office and outdoor environments. For these reasons, use of landmark recognition to augment dead reckoning localization is provided in one embodiment of the invention.
Even when dead reckoning is used in combination with an auxiliary technique such as landmark recognition, factors such as limited sensor resolution typically make localization less than completely accurate. A number of localization algorithms, such as the Markov and Monte Carlo algorithms, may be used to further improve localization accuracy.
FIG. 7<i>a </i>is a flowchart illustrating the substeps that may be involved in one embodiment of the mapping and localization process <b>720</b> for navigator platform <b>110</b>. At step <b>721</b>, navigator platform <b>110</b> obtains sensor data for its immediate surroundings from sensors aboard a functional robot platform with sensors <b>1120</b> or a stationary sensor platform <b>124</b>. In one embodiment, a pair of digital stereo cameras is used to obtain the sensor data. From the stereo image pair, a new TM is created in step <b>722</b> and aligned relative to the CDM (step <b>723</b>). In order to align the temporary and current maps, a set of position estimates PE<sub>n+1,1 </sub>. . . PE<sub>n+1,m </sub>is generated. A localization algorithm such as the Markov or Monte Carlo localization algorithms may be used to generate this set of estimates. The range of error in the position estimates will dictate how large the factor m is. The best estimate PE<sub>n+1,k </sub>(1≦k≦m) from the range is selected, and using PE<sub>n+1,k </sub>information is extracted from the TM and sensor data and added to the CDM (step <b>724</b>). The TM is then discarded.
Navigator platform <b>110</b> may remain stationary (step <b>725</b>) to minimize computation. In one embodiment, the navigator platform <b>110</b> tracks and controls the functional robot platforms while remaining stationary as described below. Eventually navigator platform <b>110</b> may need to move. As navigator platform <b>110</b> begins to move toward a new goal position GP<sub>n+1 </sub>(step <b>726</b>), it may collect odometry data (using, in one implementation, dead reckoning methods as described above) for use in obtaining an estimate of its distance and orientation from PE<sub>n</sub>, (step <b>727</b>). In another embodiment, navigator platform <b>110</b> also tracks the position of one or more functional robot platforms or other recognized landmarks (through a tracking filter) using sensors aboard a functional robot platform with sensors <b>1120</b> or a stationary sensor platform <b>124</b> in order to provide an improved estimate of its current position. When, through use of dead reckoning and landmark recognition as described above, navigator platform <b>110</b> determines that its latest position estimate PE<sub>n+1 </sub>is within an acceptable threshold relative to the new goal position GP<sub>n+1 </sub>(decision node <b>728</b>), it stops and returns to step <b>721</b> to repeat the localization and mapping process.
FIG. 9 shows a flowchart illustrating the substeps that may be involved in another embodiment of the mapping and localization process <b>720</b> for navigator platform <b>1110</b>. Generally, the steps are the same as in FIG. 7<i>a</i>, described above for navigator platform <b>110</b>. However, since navigator platform <b>1110</b> is stationary and may include onboard sensors, several steps are slightly different. First, environmental data in steps <b>721</b> and <b>1727</b> may also be obtained from sensors on board navigator platform <b>1110</b>. Otherwise, the most significant difference is in steps <b>1726</b> and <b>1727</b> where, if a need arises for navigator platform <b>1110</b> to move, navigator platform <b>1110</b> must be relocated to a new position (GP<sub>n+1</sub>) manually. Typically, navigator platform <b>1110</b> will include one or more handles or grips <b>1112</b> (FIG. 12) to facilitate such moving.
It should also be noted that rather than moving navigator platform <b>1110</b>, the system <b>1100</b> may merely advance to another pre-positioned stationary sensor platform <b>124</b> that has come in view of the working functional robot platform <b>120</b>, <b>1120</b>. Still another alternative is for navigator platform <b>1110</b> to control a second functional robot platform with sensors <b>1120</b> to track the working functional robot platform <b>120</b>, <b>1120</b>. Additional, alternatives are also contemplated, such as using multiple navigator platforms <b>1110</b> pre-positioned strategically as described for stationary sensor platform <b>124</b>.
In one embodiment, navigator platform <b>110</b>, <b>1110</b> may gather information about the environment and perform information gathering and preplanning. The various substeps that may be involved in this embodiment of the information gathering and preplanning processes are illustrated in more detail in FIG. 7<i>b</i>. It is noted that the steps illustrated in FIG. 7<i>b </i>may be performed in any order, and that each of the steps is optional. That is, information gathering and preplanning may be accomplished without some of the listed steps, and some of the listed steps may be preprogrammed or input to navigator platform <b>110</b>, <b>1110</b>.
In step <b>731</b>, navigator platform <b>110</b>, <b>1110</b> gathers additional data such as the characteristics of the room or environment in which one or more of the functional robot platforms are present (i.e., size, cleaning requirements, etc.) and the types of surfaces present in those rooms. In one embodiment, data is collected for each of the functional robot platforms in the system. This data may be gathered using the same sensors used for mapping and localization or, alternatively, different sensors may be used to gather the data. For example, if a sonar sensor is used for mapping and localization, a different sensor, such as a camera, is generally used for gathering data such as room surface types.
In step <b>732</b>, navigator platform <b>110</b>, <b>1110</b> determines what functional robot platforms <b>120</b>, <b>1120</b> are available for task performance. Alternatively, this information may be input to or preprogrammed in navigator platform <b>110</b>, <b>1110</b>, or it may simply be unnecessary information. Next, in step <b>733</b>, navigator platform <b>110</b>, <b>1110</b> determines what tasks need to be performed. Again, this information may be preprogrammed in navigator platform <b>110</b>, <b>1110</b>, input via an interface, or determined via a combination of preprogramming and input.
Using the information gathered in steps <b>731</b>-<b>733</b>, navigator platform <b>110</b>, <b>1110</b> matches the available functional robot platforms to the tasks to be performed (step <b>734</b>) and develops a task schedule (step <b>735</b>). Each task may be divided into subtasks in order to minimize navigator movement and increase efficiency.
In one embodiment, navigator platform <b>110</b>, <b>1110</b> controls functional robot platforms <b>120</b>, <b>1120</b> to perform the scheduled tasks. The steps involved in planning and control are illustrated in more detail in FIG. 7<i>c</i>. At step <b>742</b>, navigator platform <b>110</b>, <b>1110</b> waits for the time (according to the task schedule developed as described above) to begin performing the next scheduled task. At or before the time arrives for the next task, in step <b>744</b>, navigator platform <b>110</b>, <b>1110</b> recursively calculates the next lowest level subtask. Examples of lowest level subtasks include turning on motors and tracking a robot until an event occurs. The navigator moves itself or moves and/or controls the appropriate functional robot platform(s) to perform each subtask (step <b>746</b>). Navigator platform <b>110</b>, <b>1110</b> issues appropriate control signals <b>209</b> to functional robot platforms <b>120</b>, <b>1120</b> via its transmitter <b>208</b> (see FIGS. 3<i>a</i>-<b>3</b><i>f</i>). This planning and control loop is iterated until the entire task is complete (decision node <b>748</b>).
Navigator platform <b>110</b>, <b>1110</b> directs functional robot platforms <b>120</b>, <b>1120</b> along the planned routes using the functional robot platforms' control loops. As described above, in one embodiment, the control loop for moving and maneuvering robot <b>120</b>, <b>1120</b> comprises power source and power supply system <b>402</b>, motor controller <b>404</b>, motor <b>406</b> and wheels <b>408</b>. Control signals received from navigator platform <b>110</b>, <b>1110</b> via receiver <b>302</b> direct motor controller <b>404</b>. Controller <b>404</b> controls motor <b>406</b>, which in turn drives wheels <b>408</b>. The control loop may also comprise servos, actuators, transmitters and the like.
While functional robot platform <b>120</b>, <b>1120</b> is moving, in one embodiment, navigator platform <b>110</b>, <b>1110</b> remains stationary and tracks the functional robot platform's progress. A number of suitable tracking algorithms will be familiar to those of ordinary skill in the art. Keeping navigator platform <b>110</b>, <b>1110</b> stationary vastly reduces the localization computational overhead associated with the tracking algorithms. Moreover, use of a stationary navigator reduces delays associate with navigating around unforeseen obstacles. Navigator platform <b>110</b>, <b>1110</b> can first use a functional robot platform to test the planned route. If a collision occurs, navigator platform <b>110</b>, <b>1110</b> still knows its own position and can track the position of the functional robot platform as it directs it to travel an alternate path. As shown in FIG. 5, navigator platform <b>110</b>, <b>1110</b> can “see” obstacles <b>510</b> via sensor input <b>530</b> from sensors on board navigator platforms <b>1110</b>, functional robot platforms <b>1120</b>, or stationary sensor platforms <b>124</b> and can direct a functional robot platform <b>120</b>, <b>1120</b> around the obstacle <b>510</b> via control loops <b>520</b>. This is far less computationally intensive than if navigator platform <b>110</b>, <b>1110</b> itself needed to perform the tasks of a functional robot platform, or if the functional robot platform <b>120</b>, <b>1120</b> needed to perform the tracking process.
In one embodiment, navigator platform <b>110</b>, <b>1110</b> is able to track and control the functional robot platforms while the functional robot platforms are moving at rates substantially faster than that found in conventional systems. In particular, in one embodiment, the system is capable of movement at a rate substantially faster than one foot per second per 1,000 MIPS. Additionally, navigator platform <b>110</b>, <b>1110</b> may have sufficient processing power to perform some or all mapping and localization functions while simultaneously tracking and controlling the functional robot platforms.
Eventually, navigator platform <b>110</b> may need to reposition itself in order to continue tracking functional robot platforms <b>120</b>, <b>1120</b> via sensors on board other functional robot platforms <b>1120</b> or stationary sensor platforms <b>124</b>. Typically, this will occur when the working functional robot platforms <b>120</b>, <b>1120</b> need to move far away or have moved out of view of the sensors currently being used for tracking. When navigator platform <b>110</b> determines that it needs to reposition itself, in one embodiment, it commands the working functional robot platforms <b>120</b>, <b>1120</b> to cease movement, and then moves, using functional robot platforms <b>120</b>, <b>1120</b> and/or stationary sensor platforms <b>124</b> as landmarks.
Similarly, navigator platform <b>1110</b> may need to be relocated in order to continue tracking functional robot platforms <b>120</b>, <b>1120</b> via sensors on board itself or other navigator platforms <b>1110</b>, other functional robot platforms <b>1120</b>, or stationary sensor platforms <b>124</b>. Typically, this will occur for the same reasons described above for moving navigator platform <b>110</b>. Nevertheless, it should be noted for both types of navigator platforms <b>110</b>, <b>1110</b>, that the use of sensors on functional robot platforms <b>1120</b> and multiple stationary sensors will generally preclude the need to relocate navigator <b>120</b>, <b>1120</b>.
As shown in FIG. 6, in one implementation, when navigator platform <b>110</b> is moving, it uses sensor input <b>610</b> from sensors on board navigator platforms <b>1110</b>, functional robot platforms <b>1120</b>, or stationary sensor platforms <b>124</b> to triangulate on a functional robot platform <b>120</b>, <b>1120</b> and another landmark <b>612</b> such as the corner of a room or window. Using this data, navigator platform <b>110</b> then moves into proper position. When navigator platform <b>110</b> arrives at the new location, it undertakes dynamic mapping and localization (as described above) to ensure that it knows where it is. This process may take several minutes as landmarks may be distant or obscured, and errors may be present in the map or location data. This iterative process is relatively quick compared to traditional methods, since at least one landmark having precisely known dimensions is normally nearby navigator platform <b>110</b>. Once navigator platform <b>110</b> has moved sufficiently close to functional robot platforms <b>120</b>, <b>1120</b>, in one implementation, the method returns to step <b>744</b> (FIG. 7<i>c</i>) and navigator platform <b>110</b> calculates the next subtask to further task performance. The recursive calculation of subtasks is based on algorithms that minimize the movement of the navigator.
In one implementation, navigator platform <b>110</b>, <b>1110</b> tracks the functional robot platform(s) as they perform the tasks. For example, navigator platform <b>110</b>, <b>1110</b> can use a motion model of the movement required by the task to assist in tracking the robots. The motion model comprises the expected linear and angular velocities and accelerations of the functional robot platforms for a given surface type and set of inputs to the robot's motors and actuators. Once the motion model provides a rough estimate of the functional robot platform's location, navigator platform <b>110</b>, <b>1110</b> can use sensors on board navigator platforms <b>1110</b>, functional robot platforms <b>1120</b>, or stationary sensor platforms <b>124</b> to obtain more accurate data. Various filtering algorithms may be used to filter motion model errors. In one implementation, Kalman filtering is used. Other suitable filtering algorithms known to those of ordinary skill in the art, such as g-h and Benedict-Bordner, may also be used. In essence, x-y and orientation data is tracked and the filtering algorithm reduces errors due to the motion model and sensor input.
At decision node <b>748</b> (FIG. 7<i>c</i>), navigator platform <b>110</b>, <b>1110</b> determines whether the entire task or subtask is complete. If the task is complete, the method returns to step <b>742</b> and navigator platform <b>110</b>, <b>1110</b> waits for the time to begin the next task or subtask. In one implementation, completion of the task includes the navigator platform <b>110</b>, <b>1110</b> and functional robot platforms returning to a base station <b>130</b> (FIG. 1) for recharging. In this regard, it is noted that throughout movement and task performance, navigator platform <b>110</b>, <b>1110</b> may estimate or monitor the power levels of the functional robot platforms and return them for recharging as needed.
In moving and performing their tasks, some functional robot platforms, such as vacuum cleaners, may require power from wall outlets rather than from a self-contained power supply. In a system using such robots, navigator platform <b>110</b>, <b>1110</b> and the functional robot platform may work as a team to locate a wall outlet and plug the functional robot platform into the outlet. When the functional robot platform(s) need to move too far from a particular outlet, navigator platform <b>110</b>, <b>1110</b> and the functional robot platforms can unplug from that outlet and move to another.
Several embodiments of the invention have been shown and described above. Alternate embodiments of the invention are also envisioned. For example, another embodiment of the invention contemplates use of more than one navigator platform <b>110</b>, <b>1110</b>. In this embodiment, a first set of platforms (i.e., navigator platforms <b>110</b>, <b>1110</b>, functional robot platforms <b>1120</b>, and stationary sensor platforms <b>124</b>) is responsible for all or substantially all mapping, localization, planning and control functions, and a second or functional set of platforms is responsible for functional task completion. The first set of platforms, then, is responsible for planning, navigating and tracking task performance by the second set. This embodiment of the invention may be appropriate where there are too many functional robot platforms for one navigator to command and control, or where the functional robot platforms are spread out over a particularly large geographic area.
Finally, in any of the foregoing embodiments, any stationary or mobile platform could be dedicated to perform some or all of the processing and computation. In such a configuration, any platform may be equipped with appropriate sensors for gathering data. The sensor data, either raw or partially processed, may be transmitted to a dedicated stationary or mobile platform for further processing via a wireless network or any other suitable means for communication. The dedicated platform may perform the computations, and communicate the results to a navigator.
In reference to FIG. 8<i>a</i>, a flow diagram showing one method <b>800</b> of implementing an embodiment of an autonomous multi-platform robot system <b>100</b> is provided. In step <b>802</b>, an autonomous system comprising distinct mobile navigator platforms and mobile functional platforms is provided, wherein one or more of the functional platforms include sensors (i.e., selected functional platforms). In step <b>804</b>, the functions of mapping, localization, planning and control are assigned to at least one navigator platform and at least one selected functional platform.
In step <b>806</b>, the responsibility for functional task completion is assigned to at least one functional platform. In step <b>808</b>, the navigator platforms and selected functional platforms map the environment, localize all robots within the environment and plan a task performance schedule. In step <b>810</b>, the navigators may remain stationary while controlling the functional platforms to perform the assigned tasks. The assigned tasks may be subdivided into smaller tasks to facilitate easier tracking and to limit the need to relocate the navigators. In step <b>812</b>, which is optional, the navigators may move to a new position using selected functional platforms to reacquire the new current position.
In reference to FIG. 8<i>b</i>, a flow diagram showing another method <b>1800</b> of implementing an embodiment of an autonomous multi-platform robot system <b>100</b> is provided. In step <b>1802</b>, an autonomous system comprising distinct mobile navigator platforms, mobile functional platforms, and stationary sensor platforms is provided. In step <b>1804</b>, the functions of mapping, localization, planning and control are assigned to at least one navigator platform and at least one stationary sensor platform.
In step <b>806</b>, the responsibility for functional task completion is assigned to at least one functional platform. In step <b>1808</b>, the navigator platforms and stationary sensor platforms map the environment, localize all robots within the environment and plan a task performance schedule. In step <b>810</b>, the navigators may remain stationary while controlling the functional platforms to perform the assigned tasks. The assigned tasks may be subdivided into smaller tasks to facilitate easier tracking and to limit the need to relocate the navigators. In step <b>1812</b>, which is optional, the navigators may move to a new position using stationary sensor platforms to reacquire the new current position.
In reference to FIG. 10<i>a</i>, a flow diagram showing one method <b>2800</b> of implementing an embodiment of an autonomous multi-platform robot system <b>1100</b> is provided. In step <b>2802</b>, an autonomous system comprising distinct stationary navigator platforms with sensors and mobile functional platforms is provided. In step <b>2804</b>, the functions of mapping, localization, planning and control are assigned to at least one navigator platform.
In step <b>806</b>, the responsibility for functional task completion is assigned to at least one functional platform. In step <b>2808</b>, the navigator platforms map the environment, localize all robots within the environment and plan a task performance schedule. In step <b>810</b>, the navigators may remain stationary while controlling the functional platforms to perform the assigned tasks. The assigned tasks may be subdivided into smaller tasks to facilitate easier tracking and to limit the need to relocate the navigators. In step <b>2812</b>, which is optional, the navigators may be relocated to a new position using on-board sensors to reacquire the new current position.
In reference to FIG. 10<i>b</i>, a flow diagram showing another method <b>3800</b> of implementing an embodiment of an autonomous multi-platform robot system <b>1100</b> is provided. In step <b>3802</b>, an autonomous system comprising distinct stationary navigator platforms and mobile functional platforms is provided, wherein one or more of the functional platforms include sensors (i.e., selected functional platforms). In step <b>3804</b>, the functions of mapping, localization, planning and control are assigned to at least one navigator platform and at least one selected functional platform.
In step <b>806</b>, the responsibility for functional task completion is assigned to at least one functional platform. In step <b>3808</b>, the navigator platforms and selected functional platforms map the environment, localize all robots within the environment and plan a task performance schedule. In step <b>810</b>, the navigators may remain stationary while controlling the functional platforms to perform the assigned tasks. The assigned tasks may be subdivided into smaller tasks to facilitate easier tracking and to limit the need to relocate the navigators. In step <b>3812</b>, which is optional, the navigators may be relocated to a new position using selected functional platforms to reacquire the new current position.
In reference to FIG. 10<i>c</i>, a flow diagram showing yet another method <b>4800</b> of implementing an embodiment of an autonomous multi-platform robot system <b>1100</b> is provided. In step <b>4802</b>, an autonomous system comprising distinct stationary navigator platforms, mobile functional platforms, and stationary sensor platforms is provided. In step <b>4804</b>, the functions of mapping, localization, planning and control are assigned to at least one navigator platform and at least one stationary sensor platform.
In step <b>806</b>, the responsibility for functional task completion is assigned to at least one functional platform. In step <b>4808</b>, the navigator platforms and stationary sensor platforms map the environment, localize all robots within the environment and plan a task performance schedule. In step <b>810</b>, the navigators may remain stationary while controlling the functional platforms to perform the assigned tasks. The assigned tasks may be subdivided into smaller tasks to facilitate easier tracking and to limit the need to relocate the navigators. In step <b>4812</b>, which is optional, the navigators may be relocated to a new position using stationary sensor platforms to reacquire the new current position.
FIGS. 11-16 provide stylized drawings of the various platforms of the multiple embodiments of autonomous multi-platform robot system <b>100</b>, <b>1100</b> described above. More specifically, FIG. 11 provides a stylized drawing of an embodiment of a mobile navigator platform <b>110</b>. It includes back wheels <b>1202</b> and a front wheel <b>1204</b>, as well as a communication antenna <b>1206</b> mounted on a housing <b>1208</b>. Note the use of a bumper <b>1210</b> positioned at a forward end <b>1212</b> of the navigator platform <b>110</b>.
FIG. 12 provides a stylized drawing of an embodiment of a stationary navigator platform <b>1110</b>. Note that the navigator platform <b>1110</b> includes a plurality of sensors <b>1114</b> and the handle <b>1112</b>. The sensors <b>1114</b> are held in a ball shaped housing <b>1116</b> mounted on a stem <b>1118</b> supported on a base <b>1120</b>. In this way, the platform is spaced from the subjacent floor surface and can more easily communicate with the other navigator platforms <b>110</b>, <b>1110</b>, functional robot platforms <b>120</b>, <b>1120</b>, and/or stationary sensor platforms <b>124</b>.
FIG. 13 provides a stylized drawing of an embodiment of a mobile functional robot platform <b>120</b>. The functional robot platform <b>120</b> can include a suction nozzle <b>1130</b> at a front end of a housing <b>1132</b>, which is supported by motorized rear wheels <b>1134</b> and front casters <b>1136</b>. A filter compartment <b>1138</b> is located rearwardly of the nozzle <b>1130</b>, as is a communications antenna <b>1140</b>. Not visible in FIG. 13 is a motor/fan and, if desired, a brush roller of the functional robot platform <b>120</b>.
FIG. 14 provides a stylized drawing of another embodiment of a mobile functional robot platform <b>120</b>′. In this embodiment, a drive means in the form of a motorized track assembly <b>1150</b> is used instead of the motorized wheels <b>1134</b> illustrated in FIG. <b>13</b>. Also provided is a nozzle <b>1152</b> at the front end of a housing <b>1154</b>, to which a pair of the track assemblies <b>1150</b> are mounted. The nozzle <b>1152</b> communicates with a filter compartment <b>1156</b>.
FIG. 15 provides a stylized drawing of an embodiment of a mobile functional robot platform <b>1120</b>. Note that functional robot platform <b>1120</b> includes sensors a column <b>1170</b> extending upwardly from a housing <b>1172</b> supported on four wheels <b>1174</b>, one at each corner of the approximately rectangular housing. The column <b>1170</b> supports a sensor housing <b>1176</b> which can contain sensors <b>1178</b> at each corner of a somewhat square-shaped body, which also sports an antenna <b>1180</b>.
FIG. 16 provides a stylized drawing of an embodiment of a stationary sensor platform <b>124</b>. Note that stationary sensor platform <b>124</b> includes sensors <b>1190</b> mounted in a sensor housing <b>1192</b> supported on a stem <b>1194</b> held on a base <b>1196</b>.
While the invention is described herein in conjunction with exemplary embodiments, it is evident that many alternatives, modifications, and variations will be apparent to those skilled in the art. Accordingly, the embodiments of the invention in the preceding description are intended to be illustrative, rather than limiting, of the spirit and scope of the invention. More specifically, it is intended that the invention embrace all alternatives, modifications, and variations of the exemplary embodiments described herein that fall within the spirit and scope of the appended claims or the equivalents thereof.
Contents4
24 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9475649B2 | Cited by | United States of America | Applicant |
| US2004167670A1 | Cited by | United States of America | Pre-grant |
| US2008009968A1 | Cited by | United States of America | Pre-grant |
| US2011106339A1 | Cited by | United States of America | Pre-grant |
| US8447440B2 | Cited by | United States of America | Applicant |
| US10524629B2 | Cited by | United States of America | Applicant |
| US9309050B2 | Cited by | United States of America | Applicant |
| US2008231227A1 | Cited by | United States of America | Pre-grant |
| US10710804B2 | Cited by | United States of America | Applicant |
| US2004167667A1 | Cited by | United States of America | Pre-grant |
| US11884487B2 | Cited by | United States of America | Applicant |
| US7135992B2 | Cited by | United States of America | Search report |
| US11352071B1 | Cited by | United States of America | Search report |
| US10875722B2 | Cited by | United States of America | Applicant |
| US2008004751A1 | Cited by | United States of America | Pre-grant |
| US10239691B2 | Cited by | United States of America | Applicant |
| US8326458B2 | Cited by | United States of America | Applicant |
| US10299652B2 | Cited by | United States of America | Applicant |
| US8355818B2 | Cited by | United States of America | Applicant |
| US2004168148A1 | Cited by | United States of America | Pre-grant |
| US10981463B2 | Cited by | United States of America | Applicant |
| US2005182518A1 | Cited by | United States of America | Pre-grant |
| US10152062B2 | Cited by | United States of America | Applicant |
| US8073564B2 | Cited by | United States of America | Applicant |
| US7891387B2 | Cited by | United States of America | Search report |
| US8798840B2 | Cited by | United States of America | Applicant |
| US2007042716A1 | Cited by | United States of America | Pre-grant |
| US8271132B2 | Cited by | United States of America | Applicant |
| US10070764B2 | Cited by | United States of America | Applicant |
| US9404756B2 | Cited by | United States of America | Applicant |
| US8326469B2 | Cited by | United States of America | Applicant |
| US2013226343A1 | Cited by | United States of America | Pre-grant |
| US10822168B2 | Cited by | United States of America | Applicant |
| US2010286905A1 | Cited by | United States of America | Pre-grant |
| US2011077774A1 | Cited by | United States of America | Pre-grant |
| US11279558B2 | Cited by | United States of America | Applicant |
| US8150650B2 | Cited by | United States of America | Applicant |
| US2010094463A1 | Cited by | United States of America | Pre-grant |
| US9791860B2 | Cited by | United States of America | Applicant |
| US6941191B2 | Cited by | United States of America | Search report |
| US7801644B2 | Cited by | United States of America | Applicant |
| US10244915B2 | Cited by | United States of America | Applicant |
| US2011082583A1 | Cited by | United States of America | Pre-grant |
| US8998554B2 | Cited by | United States of America | Applicant |
| US9949608B2 | Cited by | United States of America | Applicant |
| US8600553B2 | Cited by | United States of America | Search report |
| US9988213B2 | Cited by | United States of America | Applicant |
| US2010284621A1 | Cited by | United States of America | Pre-grant |
| US2008027590A1 | Cited by | United States of America | Pre-grant |
| US10314449B2 | Cited by | United States of America | Applicant |
| US9541410B1 | Cited by | United States of America | Search report |
| US10214933B2 | Cited by | United States of America | Applicant |
| US2004073337A1 | Cited by | United States of America | Pre-grant |
| US7574282B2 | Cited by | United States of America | Search report |
| US10457484B2 | Cited by | United States of America | Applicant |
| US10207595B2 | Cited by | United States of America | Applicant |
| US10696479B2 | Cited by | United States of America | Applicant |
| US11565598B2 | Cited by | United States of America | Applicant |
| US2008086241A1 | Cited by | United States of America | Pre-grant |
| US9008884B2 | Cited by | United States of America | Applicant |
| US11724890B2 | Cited by | United States of America | Applicant |
| US11279557B2 | Cited by | United States of America | Applicant |
| US11927969B2 | Cited by | United States of America | Applicant |
| US9776794B2 | Cited by | United States of America | Applicant |
| US8508388B2 | Cited by | United States of America | Applicant |
| US8965578B2 | Cited by | United States of America | Applicant |
| US2008009964A1 | Cited by | United States of America | Pre-grant |
| US7456596B2 | Cited by | United States of America | Applicant |
| US10029850B2 | Cited by | United States of America | Applicant |
| US7856290B2 | Cited by | United States of America | Search report |
| US8274406B2 | Cited by | United States of America | Applicant |
| US7584020B2 | Cited by | United States of America | Applicant |
| US2007299549A1 | Cited by | United States of America | Pre-grant |
| US11378973B2 | Cited by | United States of America | Search report |
| US11286118B2 | Cited by | United States of America | Applicant |
| WO2020064087A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2004167688A1 | Cited by | United States of America | Pre-grant |
| US9802761B2 | Cited by | United States of America | Applicant |
| US11414271B2 | Cited by | United States of America | Applicant |
| US11427266B1 | Cited by | United States of America | Search report |
| US2009276589A1 | Cited by | United States of America | Pre-grant |
| US2008009970A1 | Cited by | United States of America | Pre-grant |
| US2020319640A1 | Cited by | United States of America | Search report |
| US9082112B2 | Cited by | United States of America | Applicant |
| US11254501B2 | Cited by | United States of America | Applicant |
| US2009276092A1 | Cited by | United States of America | Pre-grant |
| US9758049B2 | Cited by | United States of America | Applicant |
| US10624514B2 | Cited by | United States of America | Search report |
| US11058271B2 | Cited by | United States of America | Applicant |
| US8996224B1 | Cited by | United States of America | Applicant |
| US8255092B2 | Cited by | United States of America | Applicant |
| US11645444B2 | Cited by | United States of America | Applicant |
| US9933784B1 | Cited by | United States of America | Applicant |
| US7211980B1 | Cited by | United States of America | Applicant |
| US11939161B2 | Cited by | United States of America | Applicant |
| US9037396B2 | Cited by | United States of America | Applicant |
| US11498438B2 | Cited by | United States of America | Applicant |
| US11273983B2 | Cited by | United States of America | Applicant |
| US10449872B2 | Cited by | United States of America | Applicant |
| US2015012171A1 | Cited by | United States of America | Pre-grant |
9 members in 5 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 37953002 | United States of America | P | |
| 37953002 | United States of America | P | |
| 41715203 | United States of America | A | |
| 60379530 | – | – | – |
| US20020379530P | – | – | – |
| US20030417152 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| CA2428360A1 | Canada | A1 | |
| CA2668915A1 | Canada | A1 | |
| US2003212472A1 | United States of America | A1 | |
| EP1365300A2 | European Patent Office (EPO) | A2 | |
| JP2004133882A | Japan | A | |
| US6836701B2This record | United States of America | B2 | |
| EP1365300A3 | European Patent Office (EPO) | A3 | |
| MXPA03004102A | Mexico | A | |
| CA2428360C | Canada | C |
39 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Receipt into PubsR1021 | R1021 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Receipt into PubsR1021 | R1021 | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Receipt into PubsR1021 | R1021 | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Workflow incoming amendment IFWWAMD | WAMD | |
| Workflow incoming amendment IFWWAMD | WAMD | |
| Workflow - File Sent to ContractorSENT | SENT | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Response after Non-Final ActionA... | A... | |
| Workflow incoming amendment IFWWAMD | WAMD | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Pre-Exam Office Action WithdrawnW/OA | W/OA | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Fee paymentFPAY | FPAY | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 6836701
- Publication, EPODOC
- US6836701
- Application
- 10417152
- Application, DOCDB
- 41715203
- Application, EPODOC
- US20030417152
Titles
- English
- Autonomous multi-platform robotic system
Patent term adjustment
- A delay
- +12 daysthe office missed an examination deadline
- Applicant delay
- −121 days
- Net adjustment
- 0 days
Classification
- CPC, 2
- G05D1/0297
- G05D1/0274
- IPC, 1
- G05D1 02
- USPC, 27
- 700245000
- 318568110
- 318568120
- 318568130
- 318568160
- 318568210
- 318587000
- 700250000
- 700253000
- 700257000
- 700258000
- 700259000
- 700264000
- 701001000
- 701003000
- 701023000
- 701024000
- 701025000
- 701026000
- 701120000
- 701123000
- 701300000
- 701301000
- 701408000
- 701420000
- 701470000
- 701517000