Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Status of Claims
The Office Action is in response to the applicant’s communication filed 11/21/2025. Claims 1-21 are presently pending and presented for examination.
Response to Arguments
Applicant’s arguments, see page 9, filed 11/21/2025, with respect to the rejection of claims 1-9 under 35 U.S.C. 112(b) have been fully considered and are persuasive. The amendments to the claims have overcome the rejection. The rejection of claims 1-9 under 35 U.S.C. 112(b) has been withdrawn.
Applicant’s arguments, see 9, filed 11/21/2025, with respect to the claim interpretation of claims 1, 10, and 18 under 35 U.S.C. 112(f) have been fully considered and are persuasive. The amendments to the claims have overcome the claim interpretation. The claim interpretation of claims 1, 10, and 18 under 35 U.S.C. 112(f) has been withdrawn.
Applicant’s arguments, see pages 9-14, filed 11/21/2025, with respect to the rejection(s) of claim(s) 1-3 and 9 under 35 U.S.C. 103 as being unpatentable over Vestal et al. US 20140365258 A1 (“Vestal”) have been fully considered and are persuasive. The amendments to the claims have distinguished the claimed invention from Vestal. Therefore, the rejection has been withdrawn. Similarly, the rejection of claims 4-8 and 10-21 has been withdrawn for the same reason. However, upon further consideration, a new ground(s) of rejection is made in view of Vestal in combination with Coughran et al. US 10956855 B1 (“Coughran”). Likewise, claims 4-8 and 10-21 are also rejected in view of Coughran.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-3 and 9 are rejected under 35 U.S.C. 103 as being unpatentable over Vestal et al. US 20140365258 A1 (“Vestal”) in view of Coughran et al. US 10956855 B1 (“Coughran”).
Regarding Claim 1. Vestal teaches a mobile robot fleet management system comprising:
a communication module comprising data processing hardware;
a processor (a job management system located in a server room, shown in FIG. 1 at 162, with a network interface configured to receive job requests [paragraph 86], wherein the job management system may be configured to communicate with the job requesting system and a fleet of autonomously-navigating mobile robots [paragraph 88, FIG. 2]. Mobile robots in the fleet may be configured to receive commands and assignments from the job management system and send updates to the job management system via a variety of different data communication methods [paragraph 82]); and
computer-readable memory in communication with the processor, the computer-readable memory configured to store a database of path length information (paragraph 27 describes a memory capable of storing robot position information, the location of a current job, current job destination path, and proximity to the current job location, implying that the path length is stored as well), the computer-readable memory storing instructions that are executable by the processor to cause the processor to:
receive, using the communication module, path length information from a fleet of mobile robots as the fleet of mobile robots navigates through an environment (paragraph 27);
identify a task and a task location associated with the task;
identify a plurality of locations of a plurality of mobile robots of the fleet of mobile robots (The memory also contains a status profile and a configuration profile for each mobile robot. The status profile may comprise a file or data structure stored in the memory that includes records and/or fields suitable for holding and/or indicating one or more of a wide variety of different current status values or conditions for each mobile robot in the fleet, including without limitation the following: a robot identifier; a robot position; a robot heading; a current robot speed; a current job identifier; a current job status; a current job location; a proximity to the current job location; a current job destination path; an estimated time of arrival; etc. [paragraph 27]);
determine, one or more path length values of one or more paths from the plurality of locations to the task location; and
assign the task to a mobile robot of the plurality of mobile robots based at least in part on the one or more path length values (FIG. 14 contains a high-level flow diagram that shows an algorithm and illustrates the steps that might be performed by the processor in an job management system, according to one embodiment of the invention, in order to assign job requests to a particular mobile robot in the fleet, taking into account factors such as remaining battery power, robot capabilities (i.e., configuration) and the distance between the mobile robot's current position and the pickup location. Those of ordinary skill in the art will recognize and appreciate that other status and configuration factors could also be used to determine assignments, such as available payload space, traffic conditions along the route, high-priority critical tasks, the required time of arrival, whether deliveries can be batched together, etc. Using a combination of these factors, the system may determine, for example, that the best mobile robot to assign to a particular task may not be the mobile robot that is currently closest in proximity to where that task will be performed [paragraph 164], which implicitly means that a task location is identified, even if these details are not explicitly stated, along with the locations of the robots and a length of the paths the robots would need to travel, as there is no way that the server could know which robots are closest to the task location without knowing the path lengths. Steps 1408, 1410, 1414 and 1416. When the list of potential assignees is completed, the system reviews the list to find the mobile robot closest to the job location and assigns that robot to the job request. See steps 1428, 1430 and 1432 [paragraph 165]).
Vestal does not teach:
store the path length information in the database, wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by the fleet of mobile robots through the environment;
determine, using the set of path length values of the set of paths previously navigated by the fleet of mobile robots, one or more path length values of one or more paths from the plurality of locations to the task location,
assign the task to a mobile robot of the plurality of mobile robots based at least in part on the one or more path length values of the one or more paths from the plurality of locations to the task location, as determined using the set of path length values of the set of paths previously navigated by the fleet of mobile robots.
However, Coughran teaches:
store the path length information in the database, wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by the fleet of mobile robots through the environment (FIG. 6 is a diagram of an example prediction subsystem 602. The prediction subsystem 602 can build a predictive model using previous trip data in order to evaluate candidate routes using present readings of system sensors [Column 19, lines 4-7]. Notably, the external data feeds 615 of FIG. 6 include values from various sensors in communication with the prediction subsystem 602. These values can include, for example, traffic conditions on various road segments at particular times, weather conditions in particular geographic areas, telemetry data describing how an agent traversed a route, to name just a few examples [Column 19, lines 30-36]);
determine, using the set of path length values of the set of paths previously navigated by the fleet of mobile robots, one or more path length values of one or more paths from the plurality of locations to the task location (FIG. 7 is a flow chart of an example process for scoring candidate routes using one or more predictive models. The example process can be performed by an appropriately programmed system of one or more computers, e.g., the prediction subsystem of FIG. 6 [Column 21, lines 25-31]. This includes ranking candidate routes based on predicted scores at 770. The specification also describes how fleets that transport, unload and load goods, or perform services between multi-point locations can operate [Column 5, lines 56-58], meaning multiple paths with one or more different start and ending locations are included);
assign the task to a mobile robot of the plurality of mobile robots based at least in part on the one or more path length values of the one or more paths from the plurality of locations to the task location, as determined using the set of path length values of the set of paths previously navigated by the fleet of mobile robots (The assisted type of requests are handled by passing the unorganized unassigned tasks (UUT) 1300 requests from the API 412, and leads to a process that is responsible for task assignment 1302, which then leads to task sequencing 1303, and then to generating the directions and the estimated time of arrival (E.T.A.) 1203, which leads to the definition of the route 1101. The task assignment 1302 is the process by which the system decides, establishes, and makes commitments as to which tasks to assign to which agents, completion tools, and others, with the intent of delegating the effort to the most appropriate resource for completing the task. Additionally, the assisted type of request can handle the requests for the unorganized assigned tasks (UAT) 1301 [Column 27, lines 25-37]).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with store the path length information in the database, wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by the fleet of mobile robots through the environment; using the set of path length values of the set of paths previously navigated by the fleet of mobile robots, assign the task to a mobile robot of the plurality of mobile robots based at least in part on the one or more path length values of the one or more paths from the plurality of locations to the task location, as determined using the set of path length values of the set of paths previously navigated by the fleet of mobile robots as taught by Coughran so as to allow the system to learn from previous robot travel routes and determine the best robot to assign to a task based on historic data.
Regarding Claim 2. Vestal in combination with Coughran teaches the mobile robot fleet management system of Claim 1.
Vestal also teaches:
wherein the instructions are configured to cause the system to receive location information from the mobile robots and to store the location information in the database (paragraph 27).
Regarding Claim 3. Vestal in combination with Coughran teaches the mobile robot fleet management system of Claim 1.
Vestal also teaches:
wherein the instructions are configured to cause the system to:
receive a path length value from a first robot location to the task location (The memory can record historical data for job requests and performance [paragraph 98]); and
determine whether the database already has a prior value for the path length from the first robot location to the task location, and disregard the received path length value when the database already has the prior value (Vestal does not teach that the new data will be disregarded for the prior value. However, this would have been obvious to try, as there are only three possible solutions to this problem available. Either the fleet management system relies on a past path length value, or the newly received path length value, or tries to find a path length value based on a combination of the two. Choosing to adopt the historical path values over the newly received values would have been a simple application of a known technique to a known system of programming to produce the predictable result of a system that disregards the received path length value when the databased already has the prior value).
Regarding Claim 9. Vestal in combination with Coughran teaches the mobile robot fleet management system of Claim 1.
Vestal also teaches:
wherein the instructions are configured to cause the system to send instructions to a mobile robot to perform path finding for a route that the mobile robot is not traveling, and to receive the path length information for the route from the mobile robot, and to store the path length information in the database (The robots at 102a-102e of FIG. 1 are capable of autonomously performing all of the navigation functions, such as path planning necessary for the mobile robots 102a-102e to automatically drive themselves from one job location to another job location on the factory floor 101 and automatically avoid colliding with stationary and/or non-stationary obstacles, including human factory floor workers 170, while doing so [paragraph 87]. After that, the process of paragraph 27 can be applied to store the path information in the database).
Claim(s) 4, 10-12, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Vestal et al. US 20140365258 A1 (“Vestal”) in combination with Coughran et al. US 10956855 B1 (“Coughran”) as applied to claim 1 above, and further in view of Saboo et al. US 20180300835 A1 (“Saboo”).
Regarding Claim 4. Vestal in combination with Coughran teaches the mobile robot fleet management system of Claim 1.
Vestal also teaches:
where the selected robot is selected based at least in part on the path length values; and
assign the task to a robot based at least in part on proximity of the robot to the task location (FIG. 14 contains a high-level flow diagram that shows an algorithm and illustrates the steps that might be performed by the processor in an job management system, according to one embodiment of the invention, in order to assign job requests to a particular mobile robot in the fleet, taking into account factors such as remaining battery power, robot capabilities (i.e., configuration) and the distance between the mobile robot's current position and the pickup location. Those of ordinary skill in the art will recognize and appreciate that other status and configuration factors could also be used to determine assignments, such as available payload space, traffic conditions along the route, high-priority critical tasks, the required time of arrival, whether deliveries can be batched together, etc. Using a combination of these factors, the system may determine, for example, that the best mobile robot to assign to a particular task may not be the mobile robot that is currently closest in proximity to where that task will be performed [paragraph 164], which implicitly means that a task location is identified, even if these details are not explicitly stated, along with the locations of the robots and a length of the paths the robots would need to travel, as there is no way that the server could know which robots are closest to the task location without knowing the path lengths. Steps 1408, 1410, 1414 and 1416. When the list of potential assignees is completed, the system reviews the list to find the mobile robot closest to the job location and assigns that robot to the job request. See steps 1428, 1430 and 1432 [paragraph 165]).
Vestal does not teach:
wherein the instructions are configured to cause the system to:
obtain path length values from the database for paths from a first group of the plurality of mobile robots to the task location;
identify a second group of the plurality of mobile robots for which the database does not have path length values to the task location;
determine whether a number of robots in the first group satisfies a threshold;
when the number of robots in the first group satisfies the threshold, assign the task to a selected robot of the first group of the plurality of mobile robots; and
when the number of robots in the first group does not satisfy the threshold, assign the task to a robot.
However, Saboo teaches:
wherein the instructions are configured to cause the system to:
obtain path length values from the database for paths from a first group of the plurality of mobile robots to the task location (Tasks may involve coordinated navigation of robotic devices, which may involve distributing robotic devices of the fleet throughout the environment (e.g., a group of robotic devices sent to a loading dock for loading/unloading trucks, a group of robotic devices sent to storage racks to load/unload heavy pallets from the racks, etc.) [paragraph 77]. This is in addition to the trajectory planning that the system performs in paragraph 70);
identify a second group of the plurality of mobile robots for which the database does not have path length values to the task location (Same as paragraphs 70-77 above. Also of note, it is implicit that if the system has to obtain path length values to a task location, then the system does not already have path length values to the task location);
determine whether a number of robots in the first group satisfies a threshold (one robot can satisfy a threshold of one, if that is enough to perform the assigned task);
when the number of robots in the first group satisfies the threshold, assign the task to a selected robot of the first group of the plurality of mobile robots (paragraphs 70-77); and
when the number of robots in the first group does not satisfy the threshold, assign the task to a robot (This is obvious; if the threshold number of required robots is 1, and the number of assigned robots is 0, then a robot will be assigned to the task location).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to: obtain path length values from the database for paths from a first group of the plurality of mobile robots to the task location; identify a second group of the plurality of mobile robots for which the database does not have path length values to the task location; determine whether a number of robots in the first group satisfies a threshold; when the number of robots in the first group satisfies the threshold, assign the task to a selected robot of the first group of the plurality of mobile robots; and when the number of robots in the first group does not satisfy the threshold, assign the task to a robot as taught by Saboo so as to allow the system to assign tasks to multiple groups of robots, particularly if different robots are required for different tasks.
Regarding Claim 10. Vestal teaches a mobile robot fleet management system comprising:
a communication module comprising data processing hardware;
a processor (a job management system located in a server room, shown in FIG. 1 at 162, with a network interface configured to receive job requests [paragraph 86], wherein the job management system may be configured to communicate with the job requesting system and a fleet of autonomously-navigating mobile robots [paragraph 88, FIG. 2]. Mobile robots in the fleet may be configured to receive commands and assignments from the job management system and send updates to the job management system via a variety of different data communication methods [paragraph 82]); and
computer-readable memory in communication with the processor, the computer-readable memory configured to store a database of path length information (paragraph 27 describes a memory capable of storing robot position information, the location of a current job, current job destination path, and proximity to the current job location, implying that the path length is stored as well); the computer-readable memory storing instructions that are executable by the processor to cause the processor to:
identify a task location;
identify locations of a plurality of the mobile robots (The memory also contains a status profile and a configuration profile for each mobile robot. The status profile may comprise a file or data structure stored in the memory that includes records and/or fields suitable for holding and/or indicating one or more of a wide variety of different current status values or conditions for each mobile robot in the fleet, including without limitation the following: a robot identifier; a robot position; a robot heading; a current robot speed; a current job identifier; a current job status; a current job location; a proximity to the current job location; a current job destination path; an estimated time of arrival; etc. [paragraph 27]);
assign the task to a selected robot, where the selected robot is selected based at least in part on the path length values; and
assign the task to a robot based at least in part on proximity of the robot to the task location (FIG. 14 contains a high-level flow diagram that shows an algorithm and illustrates the steps that might be performed by the processor in an job management system, according to one embodiment of the invention, in order to assign job requests to a particular mobile robot in the fleet, taking into account factors such as remaining battery power, robot capabilities (i.e., configuration) and the distance between the mobile robot's current position and the pickup location. Those of ordinary skill in the art will recognize and appreciate that other status and configuration factors could also be used to determine assignments, such as available payload space, traffic conditions along the route, high-priority critical tasks, the required time of arrival, whether deliveries can be batched together, etc. Using a combination of these factors, the system may determine, for example, that the best mobile robot to assign to a particular task may not be the mobile robot that is currently closest in proximity to where that task will be performed [paragraph 164], which implicitly means that a task location is identified, even if these details are not explicitly stated, along with the locations of the robots and a length of the paths the robots would need to travel, as there is no way that the server could know which robots are closest to the task location without knowing the path lengths. Steps 1408, 1410, 1414 and 1416. When the list of potential assignees is completed, the system reviews the list to find the mobile robot closest to the job location and assigns that robot to the job request. See steps 1428, 1430 and 1432 [paragraph 165]).
Vestal does not teach:
wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by a fleet of mobile robots through an environment, wherein the instructions further cause the processor to:
use the set of path length values of the set of paths previously navigated by the fleet of mobile robots to obtain the path length values.
However, Coughran teaches:
wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by a fleet of mobile robots through an environment (FIG. 6 is a diagram of an example prediction subsystem 602. The prediction subsystem 602 can build a predictive model using previous trip data in order to evaluate candidate routes using present readings of system sensors [Column 19, lines 4-7]. Notably, the external data feeds 615 of FIG. 6 include values from various sensors in communication with the prediction subsystem 602. These values can include, for example, traffic conditions on various road segments at particular times, weather conditions in particular geographic areas, telemetry data describing how an agent traversed a route, to name just a few examples [Column 19, lines 30-36]), wherein the instructions further cause the processor to:
use the set of path length values of the set of paths previously navigated by the fleet of mobile robots to obtain the path length values (FIG. 7 is a flow chart of an example process for scoring candidate routes using one or more predictive models. The example process can be performed by an appropriately programmed system of one or more computers, e.g., the prediction subsystem of FIG. 6 [Column 21, lines 25-31]. This includes ranking candidate routes based on predicted scores at 770. The specification also describes how fleets that transport, unload and load goods, or perform services between multi-point locations can operate [Column 5, lines 56-58], meaning multiple paths with one or more different start and ending locations are included).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by a fleet of mobile robots through an environment, wherein the instructions further cause the processor to: use the set of path length values of the set of paths previously navigated by the fleet of mobile robots to obtain the path length values as taught by Coughran so as to allow the system to learn from previous robot travel routes for more efficient fleet management.
Vestal also does not teach:
wherein the instructions are configured to cause the system to:
obtain path length values from the database for paths from a first group of the plurality of mobile robots to the task location;
identify a second group of the plurality of mobile robots for which the database does not have path length values to the task location;
determine whether a number of robots in the first group satisfies a threshold;
when the number of robots in the first group satisfies the threshold, assign the task to a selected robot of the first group of the plurality of mobile robots; and
when the number of robots in the first group does not satisfy the threshold, assign the task to a robot.
However, Saboo teaches:
wherein the instructions are configured to cause the system to:
obtain path length values from the database for paths from a first group of the plurality of mobile robots to the task location (Tasks may involve coordinated navigation of robotic devices, which may involve distributing robotic devices of the fleet throughout the environment (e.g., a group of robotic devices sent to a loading dock for loading/unloading trucks, a group of robotic devices sent to storage racks to load/unload heavy pallets from the racks, etc.) [paragraph 77]. This is in addition to the trajectory planning that the system performs in paragraph 70);
identify a second group of the plurality of mobile robots for which the database does not have path length values to the task location (Same as paragraphs 70-77 above. Also of note, it is implicit that if the system has to obtain path length values to a task location, then the system does not already have path length values to the task location);
determine whether a number of robots in the first group satisfies a threshold (one robot can satisfy a threshold of one, if that is enough to perform the assigned task);
when the number of robots in the first group satisfies the threshold, assign the task to a selected robot of the first group of the plurality of mobile robots (paragraphs 70-77); and
when the number of robots in the first group does not satisfy the threshold, assign the task to a robot (This is obvious; if the threshold number of required robots is 1, and the number of assigned robots is 0, then a robot will be assigned to the task location).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to: obtain path length values from the database for paths from a first group of the plurality of mobile robots to the task location; identify a second group of the plurality of mobile robots for which the database does not have path length values to the task location; determine whether a number of robots in the first group satisfies a threshold; when the number of robots in the first group satisfies the threshold, assign the task to a selected robot of the first group of the plurality of mobile robots; and when the number of robots in the first group does not satisfy the threshold, assign the task to a robot as taught by Saboo so as to allow the system to assign tasks to multiple groups of robots, particularly if different robots are required for different tasks.
Regarding Claim 11. Vestal in combination with Coughran and Saboo teaches the mobile robot fleet management system of Claim 10.
Vestal also teaches:
wherein the instructions are configured to cause the system to:
receive path length information from the mobile robots as the mobile robots navigate the environment (paragraph 27); and
store the path length information in the database (paragraph 27).
Regarding Claim 12. Vestal in combination with Coughran and Saboo teaches the mobile robot fleet management system of Claim 10.
Vestal also teaches:
wherein the instructions are configured to cause the system to receive location information from the mobile robots and to store the location information in the database (The robots at 102a-102e of FIG. 1 are capable of autonomously performing all of the navigation functions, such as path planning necessary for the mobile robots 102a-102e to automatically drive themselves from one job location to another job location on the factory floor 101 and automatically avoid colliding with stationary and/or non-stationary obstacles, including human factory floor workers 170, while doing so [paragraph 87]. After that, the process of paragraph 27 can be applied to store the path information in the database).
Regarding Claim 17. Vestal in combination with Coughran and Saboo teaches the mobile robot fleet management system of Claim 10.
Vestal also teaches:
wherein the instructions are configured to cause the system to send instructions to a mobile robot to perform path finding for a route that the mobile robot is not traveling, and to receive the path length information for the route from the mobile robot, and to store the path length information in the database (The robots at 102a-102e of FIG. 1 are capable of autonomously performing all of the navigation functions, such as path planning necessary for the mobile robots 102a-102e to automatically drive themselves from one job location to another job location on the factory floor 101 and automatically avoid colliding with stationary and/or non-stationary obstacles, including human factory floor workers 170, while doing so [paragraph 87]. After that, the process of paragraph 27 can be applied to store the path information in the database).
Claim(s) 5-8 and 18-21 are rejected under 35 U.S.C. 103 as being unpatentable over Vestal et al. US 20140365258 A1 (“Vestal”) in combination with Coughran et al. US 10956855 B1 (“Coughran”) as applied to claim 1 above, and further in view of Wolfson US 6801850 B1 (“Wolfson”).
Regarding Claim 5. Vestal in combination with Coughran teaches the mobile robot fleet management system of Claim 1.
Vestal does not teach:
wherein the instructions are configured to cause the system to:
receive an actual path length value from the assigned mobile robot for an actual path for the assigned mobile robot to the task location;
comparing the actual path length value and an expected path length value from the database to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and
modifying the database when the actual path length value and the expected path length value differ by more than the threshold amount.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to:
receive an actual path length value from the assigned mobile robot for an actual path for the assigned mobile robot to the task location;
comparing the actual path length value and an expected path length value from the database to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and
modifying the database when the actual path length value and the expected path length value differ by more than the threshold amount (The robotic FIG. 7 illustrates a flowchart for a device that receives map information from the database and computes its own trajectory. The device determines its current location 300, and it transmits that location to the database 302. The device then receives a map from the database 304, and it uses the map to compute its trajectory 306. The device then computes it expected location 308 and determines its actual location. Next, it compares its expected location to its actual location 312. At Step 314 the device determines whether it has exceeded the maximum allowable uncertainty threshold. If the device has not exceeded its threshold it then it returns to Step 308 and continues the process. If, however, the device has exceeded the uncertainty threshold, then it proceed from Step 314 to Step 316 where it transmits its current location to the database. From Step 316 the device returns to step 306 and continues the cycle [Column 13, lines 3-24]. Wolfson does not expressly teach that the path length values are included in the robot location information, it is implicit that the path length values and other path information would be updated with the robot location information, since this would be an obvious application of known elements to produce a predictable result with a high chance of success).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to: receive an actual path length value from the assigned mobile robot for an actual path for the assigned mobile robot to the task location; comparing the actual path length value and an expected path length value from the database to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and modifying the database when the actual path length value and the expected path length value differ by more than the threshold amount as taught by Wolfson so as to allow the system to update the path information when the actual location and path information do not line up with the received information.
Regarding Claim 6. Vestal in combination with Coughran and Wolfson teaches the mobile robot fleet management system of Claim 5.
Vestal does not teach:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value (FIG. 7, [Column 13, lines 3-24]. The very nature of updating database information implies that entries in the database are being replaced).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value as taught by Wolfson so as to allow the system to update out-of-date information.
Regarding Claim 7. Vestal in combination with Coughran and Wolfson teaches the mobile robot fleet management system of Claim 5.
Vestal does not teach:
wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the assigned mobile robot.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the assigned mobile robot (the process of FIG. 7 is intended to be repeatable, as shown by the arrows in the figure. This means that a plurality of entries can be cleared as new entries are updated).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the assigned mobile robot as taught by Wolfson because deleting and overwriting old entries to replace with new entries in a database is standard operations for updating data entries.
Regarding Claim 8. Vestal in combination with Coughran and Wolfson teaches the mobile robot fleet management system of Claim 5.
Vestal does not teach:
wherein the instructions are configured to cause the system to produce a new database of path length values.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to produce a new database of path length values (FIG. 7, [Column 13, lines 3-24]. The very nature of updating database information implies that new entries are being produced, forming a new database of path length values).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to produce a new database of path length values as taught by Wolfson because entering new entries in a database is standard operations for updating data entries.
Regarding Claim 18. Vestal teaches a mobile robot fleet management system comprising:
a communication module comprising data processing hardware;
a processor (a job management system located in a server room, shown in FIG. 1 at 162, with a network interface configured to receive job requests [paragraph 86], wherein the job management system may be configured to communicate with the job requesting system and a fleet of autonomously-navigating mobile robots [paragraph 88, FIG. 2]. Mobile robots in the fleet may be configured to receive commands and assignments from the job management system and send updates to the job management system via a variety of different data communication methods [paragraph 82]); and
computer-readable memory in communication with the processor, the computer-readable memory configured to store a database of path length information (paragraph 27 describes a memory capable of storing robot position information, the location of a current job, current job destination path, and proximity to the current job location, implying that the path length is stored as well);
the memory storing instructions that are executable by the processor to cause the processor to:
obtain an expected path length value from the database for a mobile robot to travel to a task location (FIG. 14 contains a high-level flow diagram that shows an algorithm and illustrates the steps that might be performed by the processor in an job management system, according to one embodiment of the invention, in order to assign job requests to a particular mobile robot in the fleet, taking into account factors such as remaining battery power, robot capabilities (i.e., configuration) and the distance between the mobile robot's current position and the pickup location. Those of ordinary skill in the art will recognize and appreciate that other status and configuration factors could also be used to determine assignments, such as available payload space, traffic conditions along the route, high-priority critical tasks, the required time of arrival, whether deliveries can be batched together, etc. Using a combination of these factors, the system may determine, for example, that the best mobile robot to assign to a particular task may not be the mobile robot that is currently closest in proximity to where that task will be performed [paragraph 164], which implicitly means that a task location is identified, even if these details are not explicitly stated, along with the locations of the robots and a length of the paths the robots would need to travel, as there is no way that the server could know which robots are closest to the task location without knowing the path lengths. Steps 1408, 1410, 1414 and 1416. When the list of potential assignees is completed, the system reviews the list to find the mobile robot closest to the job location and assigns that robot to the job request. See steps 1428, 1430 and 1432 [paragraph 165]).
Vestal does not teach:
wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by a fleet of mobile robots through an environment, wherein the instructions further cause the processor to:
use the set of path length values of the set of paths previously navigated by the fleet of mobile robots to obtain an expected path length value.
However, Coughran teaches:
wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by a fleet of mobile robots through an environment (FIG. 6 is a diagram of an example prediction subsystem 602. The prediction subsystem 602 can build a predictive model using previous trip data in order to evaluate candidate routes using present readings of system sensors [Column 19, lines 4-7]. Notably, the external data feeds 615 of FIG. 6 include values from various sensors in communication with the prediction subsystem 602. These values can include, for example, traffic conditions on various road segments at particular times, weather conditions in particular geographic areas, telemetry data describing how an agent traversed a route, to name just a few examples [Column 19, lines 30-36]), wherein the instructions further cause the processor to:
use the set of path length values of the set of paths previously navigated by the fleet of mobile robots to obtain an expected path length value (FIG. 7 is a flow chart of an example process for scoring candidate routes using one or more predictive models. The example process can be performed by an appropriately programmed system of one or more computers, e.g., the prediction subsystem of FIG. 6 [Column 21, lines 25-31]. This includes ranking candidate routes based on predicted scores at 770. The specification also describes how fleets that transport, unload and load goods, or perform services between multi-point locations can operate [Column 5, lines 56-58], meaning multiple paths with one or more different start and ending locations are included).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the path length information indicates a set of path length values between different sections of a map of a set of paths previously navigated by a fleet of mobile robots through an environment, wherein the instructions further cause the processor to: use the set of path length values of the set of paths previously navigated by the fleet of mobile robots to obtain an expected path length value as taught by Coughran so as to allow the system to learn from previous robot travel routes for more efficient fleet management.
Vestal also does not teach:
wherein the instructions are configured to cause the system to:
receive an actual path length value from the mobile robot for an actual path for the mobile robot to travel to the task location;
compare the actual path length value and the expected path length value to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and
modify the database when the actual path length value and the expected path length value differ by more than the threshold amount.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to:
receive an actual path length value from the mobile robot for an actual path for the mobile robot to travel to the task location;
compare the actual path length value and the expected path length value to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and
modify the database when the actual path length value and the expected path length value differ by more than the threshold amount (The robotic FIG. 7 illustrates a flowchart for a device that receives map information from the database and computes its own trajectory. The device determines its current location 300, and it transmits that location to the database 302. The device then receives a map from the database 304, and it uses the map to compute its trajectory 306. The device then computes it expected location 308 and determines its actual location. Next, it compares its expected location to its actual location 312. At Step 314 the device determines whether it has exceeded the maximum allowable uncertainty threshold. If the device has not exceeded its threshold it then it returns to Step 308 and continues the process. If, however, the device has exceeded the uncertainty threshold, then it proceed from Step 314 to Step 316 where it transmits its current location to the database. From Step 316 the device returns to step 306 and continues the cycle [Column 13, lines 3-24]. Wolfson does not expressly teach that the path length values are included in the robot location information, it is implicit that the path length values and other path information would be updated with the robot location information, since this would be an obvious application of known elements to produce a predictable result with a high chance of success).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to:
receive an actual path length value from the mobile robot for an actual path for the mobile robot to travel to the task location; compare the actual path length value and the expected path length value to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and modify the database when the actual path length value and the expected path length value differ by more than the threshold amount as taught by Wolfson so as to allow the system to update the path information when the actual location and path information do not line up with the received information.
Regarding Claim 19. Vestal in combination with Coughran and Wolfson teaches the mobile robot fleet management system of Claim 18.
Vestal does not teach:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value (FIG. 7, [Column 13, lines 3-24]. The very nature of updating database information implies that entries in the database are being replaced).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value as taught by Wolfson so as to allow the system to update out-of-date information.
Regarding Claim 20. Vestal in combination with Coughran and Wolfson teaches the mobile robot fleet management system of Claim 18.
Vestal does not teach:
wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the mobile robot.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the mobile robot (the process of FIG. 7 is intended to be repeatable, as shown by the arrows in the figure. This means that a plurality of entries can be cleared as new entries are updated).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the mobile robot as taught by Wolfson because deleting and overwriting old entries to replace with new entries in a database is standard operations for updating data entries.
Regarding Claim 21. Vestal in combination with Coughran and Wolfson teaches the mobile robot fleet management system of Claim 18.
Vestal does not teach:
wherein the instructions are configured to cause the system to produce a new database of path length values.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to produce a new database of path length values (FIG. 7, [Column 13, lines 3-24]. The very nature of updating database information implies that new entries are being produced, forming a new database of path length values).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to produce a new database of path length values as taught by Wolfson because entering new entries in a database is standard operations for updating data entries.
Claim(s) 13-16 are rejected under 35 U.S.C. 103 as being unpatentable over Vestal et al. US 20140365258 A1 (“Vestal”) in combination with Coughran et al. US 10956855 B1 (“Coughran”) and Saboo et al. US 20180300835 A1 (“Saboo”) as applied to claim 10 above, and further in view of Wolfson US 6801850 B1 (“Wolfson”).
Regarding Claim 13. Vestal in combination with Coughran and Saboo teaches the mobile robot fleet management system of Claim 10.
Vestal does not teach:
wherein the instructions are configured to cause the system to:
receive an actual path length value from the selected robot for an actual path for the assigned one of the mobile robots to the task location;
compare the actual path length value and an expected path length value from the database to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and
modify the database when the actual path length value and the expected path length value differ by more than the threshold amount.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to:
receive an actual path length value from the selected robot for an actual path for the assigned one of the mobile robots to the task location;
compare the actual path length value and an expected path length value from the database to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and
modify the database when the actual path length value and the expected path length value differ by more than the threshold amount.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to: receive an actual path length value from the selected robot for an actual path for the assigned one of the mobile robots to the task location; compare the actual path length value and an expected path length value from the database to determine whether the actual path length value and the expected path length value differ by more than a threshold amount; and modify the database when the actual path length value and the expected path length value differ by more than the threshold amount as taught by Wolfson so as to allow the system to update the path information when the actual location and path information do not line up with the received information.
Regarding Claim 14. Vestal in combination with Coughran, Saboo, and Wolfson teaches the mobile robot fleet management system of Claim 13.
Vestal does not teach:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value (FIG. 7, [Column 13, lines 3-24]. The very nature of updating database information implies that entries in the database are being replaced).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to replace the expected path length value in the database with the actual path length value as taught by Wolfson so as to allow the system to update out-of-date information.
Regarding Claim 15. Vestal in combination with Coughran, Saboo, and Wolfson teaches the mobile robot fleet management system of Claim 13.
Vestal does not teach:
wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the selected mobile robot.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the selected mobile robot (the process of FIG. 7 is intended to be repeatable, as shown by the arrows in the figure. This means that a plurality of entries can be cleared as new entries are updated).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to clear a plurality of entries of the database for a zone that includes the location of the selected mobile robot as taught by Wolfson because deleting and overwriting old entries to replace with new entries in a database is standard operations for updating data entries.
Regarding Claim 16. Vestal in combination with Coughran, Saboo, and Wolfson teaches the mobile robot fleet management system of Claim 13.
Vestal does not teach:
wherein the instructions are configured to cause the system to produce a new database of path length values.
However, Wolfson teaches:
wherein the instructions are configured to cause the system to produce a new database of path length values (FIG. 7, [Column 13, lines 3-24]. The very nature of updating database information implies that new entries are being produced, forming a new database of path length values).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to modify the invention of Vestal with wherein the instructions are configured to cause the system to produce a new database of path length values as taught by Wolfson because entering new entries in a database is standard operations for updating data entries.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AARON G CAIN whose telephone number is (571)272-7009. The examiner can normally be reached Monday: 7:30am - 4:30pm EST to Friday 7:30pm - 4:30am.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wade Miles can be reached at (571) 270-7777. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/AARON G CAIN/Examiner, Art Unit 3656