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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 02/03/2026 has been entered.
Response to Remarks
Claim Rejections – 35 U.S.C. 103
Applicant’s prior art arguments have been fully considered and they are not persuasive.
Applicant argues (pg. 9-12) that the cited references do not teach the newly amended limitations that specify that the determination of location is based on IMU or GPS data and that specify that a persistent map storing location-correlated training features is created and maintained.
Examiner agrees. Accordingly, a new reference, Munich et al. (US11249482B2) has been added to the rejection, as further detailed below.
The foregoing applies to all independent claims and their dependent claims.
Applicant argues (pg. 12-13) that the combination of Jordan and Rajkumar lacks the requisite motivation and would not yield the claimed invention.
Examiner respectfully disagrees. Since Applicant’s argument is based on the notion that the amended limitations rely on Jordan and Rajkumar, since the rejection has been updated with Munich curing the deficiencies, the argument is moot.
The foregoing applies to all independent claims and their dependent claims.
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.
Claims 1-17 are rejected under 35 U.S.C. 103 as being unpatentable over Jordan et al. (EP3483794A1) hereinafter known as Jordan in view of Rajkumar et al. (US20190197396A1) hereinafter known as Rajkumar in view of Munich et al. (US11249482B2) hereinafter known as Munich.
Regarding independent claim 1, Jordan teaches:
A method for training neural networks, comprising: receiving sensor data from one or more sensor units of one or more robots; (Jordan [¶ 0019]: “the robot 102A may send to the cloud server 160 labeled training data 130A … the labeled training data 130A may include an image from which an object is detected” Jordan teaches that the robot sends to the cloud server data that is to be used for training. The cloud server data receives this from the robot. Jordan [¶ 0020]: “the labeled training data 130B may include radar data corresponding to the lion 116A with an associated label of "threat," … radar data corresponding to the cat 116C with an associated label of "non-threat” Jordan teaches that the data is from a sensor. Jordan teaches that the sensor data is labelled thus has a feature by giving an example of a lion/cat being labelled threat or no threat.)
receiving labels of the received sensor data, the labels comprising at least one training feature identified within the sensor data; (Jordan [¶ 0019]: “the robot 102A may send to the cloud server 160 labeled training data 130A … the labeled training data 130A may include an image from which an object is detected” Jordan teaches that the robot sends to the cloud server data that is to be used for training. The cloud server data receives this from the robot. Jordan [¶ 0020]: “the labeled training data 130B may include radar data corresponding to the lion 116A with an associated label of "threat," … radar data corresponding to the cat 116C with an associated label of "non-threat” Jordan teaches that the data is from a sensor. Jordan teaches that the sensor data is labelled thus has a feature by giving an example of a lion/cat being labelled threat or no threat.)
utilizing the received sensor data and the labels to train one or more neural networks to develop a model to identify the at least one training feature; (Jordan [¶ 0050]: “At 317, the cloud server 160 may generate model training data, in accordance with some example embodiments. To respond to the request, the cloud server 160 may generate, based on ML model 162, one or more model training data, such as images. These images may include labels to allow the ML model 104D (such as the CNN of the current example) to learn to classify the cat from other animals (and/or the cat as a threat or a non-threat)” Jordan teaches that by using the training data, a model can be generated to that may classify a cat from other animals. This is identifying the feature of whether or not the image is a cat.)
evaluating an accuracy of the model using a validation dataset after training with the received sensor data and labels; (Jordan [¶ 0041]: “the labeled training data 130A-C provided by robots 102A-C may be fed as an input to the input layer 260A neurons over time (e.g., t, t+1, etc.) until the neural network 299 learns to model the input data (which in this example is the labeled training data) at the output layer 260C. … To illustrate, the neurons 250 of the network 299 may learn by optimizing a mean square error (e.g., between the labeled training data at the input layer 260A and what is generated at the output of the output layer 260C) using gradient descent” Jordan teaches that the model is trained until the accuracy is within a threshold mean square error.)
…
… achieving a training level above a threshold value, wherein the training level corresponds to the evaluated accuracy and wherein the model is communicated only when the evaluated accuracy exceeds the threshold value; (Jordan [¶ 0041]: “the neural network 299 may operate repeatedly over time until the input data at the input layer 260A can be modeled at the output layer within a threshold error” Jordan teaches that the model is trained until the output layer is within a threshold error and that only when this condition is met is the model communicated.)
receiving sensor data from one or more sensor units of a first robot; (Jordan [¶ 0045]: “the robot 102A may have an image sensor … The robot 102A may send, as training data 130A, data associated with the movement task and an indicator that the training data is for the movement task” Jordan teaches that the robot may send data that is from an image sensor. The cloud server receives this data from the robot.)
…
Jordan does not explicitly teach:
communicating the model to one or more robots upon the model …
…
…
and communicating the sensor data received from the first robot to a second robot, the second robot comprising the model trained to identify the at least one training feature.
However, Rajkumar teaches:
communicating the model to one or more robots upon the model … (Rajkumar [¶ 0095]: “In some implementations, the server system 112 can store a copy of the machine learning model locally on each of the robots 104A-104D” Rajkumar teaches that the model from one robot may be communicated to the other robots to ensure consistency.)
…
…
and communicating the sensor data received from the first robot to a second robot, the second robot comprising the model trained to identify the at least one training feature. (Rajkumar [¶ 0141]: “a dataset 406A, which was generated by the robot 104A based on sensor data that the robot 104A captured. … The robot 104A may designate that the dataset 406A should be shared with other robots.” Rajkumar teaches that the sensor data generated by the first robot can be shared with other robots. Rajkumar [¶ 0092]: “The system 100 illustrates the technique of sharing object identification abilities between robots … a robot 104B identifying an object, generating an embedding 118 representing the object, and sharing the embedding 118 and additional data with other robots” Rajkumar teaches that the sensor data, once shared with the second robot, can help it in object identification, because of the embedding and additional data.)
Jordan and Rajkumar are in the same field of endeavor as the present invention, as the
references are directed to the use of robots, namely in gathering data via sensors, in training machine learning models. It would have been obvious, before the effective filing date of the claimed invention, to a person of ordinary skill in the art, to combine the training of a model from sensor data generated by a robot as taught in Jordan with sharing this trained model with other robots as taught in Rajkumar. Rajkumar provides this additional functionality. As such, it would have been obvious to one of ordinary skill in the art to modify the teachings of Jordan to include teachings of Rajkumar because the combination would allow for robots to share models and training data with one another. This has the potential benefit of strengthening the model, as robots of different geographic locations with different training data from their sensors can contribute to a model.
Jordan and Rajkumar do not explicitly teach:
and determining a current location of the first robot within an environment based on at least one of inertial measurement unit (IMU) data, or GPS data;
updating a map of the environment based on sensor data from either the first robot or the second robot, the map including spatial representations of detected training features and their locations
correlating the at least one training feature detected in the sensor data with the current location and storing the correlation in the map;
comparing the detected training features at the current location with previously detected training features at a same location from a prior visit, using the map to retrieve the previously detected training features;
and executing an automated task when the comparison indicates a deviation between current and prior training features at the same location, wherein the automated task includes updating the map with the detected training features based on the detected deviation.
However, Munich teaches:
and determining a current location of the first robot within an environment based on at least one of inertial measurement unit (IMU) data, or GPS data; (Munich [Col. 12, Lines 50-55]: “the sensor system can include encoders associated with the motors 114 for the drive wheels 112, and these encoders can track a distance that the robot 100 has traveled. In some implementations, the sensor system includes an optical sensor facing downward toward a floor surface” Munich teaches encoders and optical sensors for the rotational movement of the robot, which can be inertial. Munich [Col. 17, Lines 37-41]: “An image capture device, a gyroscope, a global positioning system (GPS) sensor, a motion sensor, and/or other sensors on the mobile device can be used to generate the mapping data" Munich teaches using GPS sensors to generate mapping data. Munich [Col. 13, Lines 14-18]: “the controller 109 uses SLAM [Simultaneous Localization and Mapping] techniques to determine a location of the robot 100 within the map by detecting features represented in collected sensor data and comparing the features to previously-stored features” Munich teaches that the robot can locate itself in real time using SLAM techniques.)
updating a map of the environment based on sensor data from either the first robot or the second robot, the map including spatial representations of detected training features and their locations; (Munich [Col. 13, Lines 25-40]: “other data generated for the SLAM techniques, including mapping data forming the map, can be stored in the memory storage element … the map is a persistent map that is usable and updateable by the controller 109 of the robot 100 from one mission to another mission to navigate the robot 100 about the floor surface 10.” Munich teaches that data from the SLAM techniques, which involve sensor data, is stored to create a persistent map that may be used between different robots in differing missions.)
correlating the at least one training feature detected in the sensor data with the current location and storing the correlation in the map; (Munich [Col. 1, Lines 24-27]: “features in the environment, such as doors, dirty area, or other features, can be indicated on the map with labels, and states of the features can further be indicated on the map” Munich teaches that the features of the training data is correlated with an indication/location on the map.)
comparing the detected training features at the current location with previously detected training features at a same location from a prior visit, using the map to retrieve the previously detected training features; (Munich [Col. 23, Lines 11-14]: “A label for the dirty area 708 can then be used by the robot 700 in a second cleaning mission to initiate a focused cleaning behavior to perform a focused cleaning of the dirty area 708.” Munich teaches that the robot can use a second mission to clean up a dirty area previously detected/mapped out in an earlier mission, see Fig. 7C for more details.)
and executing an automated task when the comparison indicates a deviation between current and prior training features at the same location, wherein the automated task includes updating the map with the detected training features based on the detected deviation. (Munich [Col 22, Lines 32-40]: “the map can be updated such that the current states of the dirty areas … are updated to reflect the current levels of dirtiness of the dirty areas … based on mapping data from the second cleaning mission or further cleaning missions, the map can be updated to remove a label for a dirty area, for example, due to the dirty area no longer having a level of dirtiness amounting to at least a “low dirtiness” state for dirty areas” Munich teaches that when an area is not “low dirtiness”, then the robot will detect a deviation, clean the area, and update the map so that it shows “low dirtiness” afterwards.)
Regarding dependent claim 2, Jordan and Rajkumar teach:
The method of Claim 1,
Jordan teaches:
further comprising: generating an inference by the second robot based on the model, the inference comprising detection of the at least one training feature within the sensor data received from the first robot; (Jordan [¶ 0047]: “At 312, the robot 102D including ML model 104D may attempt to perform a task, such as classify an input image, in accordance with some example embodiments … In some example embodiments, the robot 104D may request, at 315, training data from the cloud server 160, when the ML model 104D cannot classify an input image or cannot classify the image with sufficient certainty. Jordan teaches that the second robot generates an inference of classifying the input image based on the training data from the cloud server, which was originally from the first robot.)
Rajkumar teaches:
and communicating the inference to, at least, the first robot. (Rajkumar [¶ 0092]: “The system 100 illustrates the technique of sharing object identification abilities between robots … a robot 104B identifying an object, generating an embedding 118 representing the object, and sharing the embedding 118 and additional data with other robots” Rajkumar teaches that once a robot makes an object identification by inference, it can communicate that object with another robot by embedding it.)
The reasons to combine are substantially similar to those of claim 1.
Regarding dependent claim 3, Jordan and Rajkumar teach:
The method of Claim 1,
Jordan teaches:
further comprising: utilizing the model to identify one or more of the training features within sensor data acquired by a robot of the one or more robots at a second location, distinct from the current location of the first robot; (Jordan [¶ 0030]: “robots having imaging sensors and/or a radar, other types of sensors and/or other types of data may be used as well. Examples of other types of sensors … a GPS sensor” Jordan teaches that the identification of the training features, as described above, can be within GPS sensor data by a robot, which shows that it is specifically at a geographic location.)
Rajkumar teaches:
…
(Rajkumar [¶ 0191]: “the quality analysis module 704 analyzes the additional metadata in the dataset 406. As previously mentioned, the additional metadata in the dataset 406 includes a version code number of the current machine learning model stored on the robot 104 that transmitted the dataset 406. The additional metadata can also include locational information” Rajkumar teaches that the metadata of the dataset that is used contains locational information.)
and correlating the one or more training features observed at the second location with the second location, and storing the correlation in the map, such that the map includes correlations of training features with locations at both the current location and the second location. (Rajkumar [¶ 0181]: “The quality analysis module 704 maps the received embedding 825 to a location in the high dimensional space 802” Rajkumar teaches that the embeddings are mapped to a location in the high-dimensional space, which is essentially correlating the location with the embedded features.)
The reasons to combine are substantially similar to those of claim 1.
Munich teaches:
determining a location of the robot at the second location based on at least one of inertial measurement unit (IMU) data, GPS data, or the map; (Munich [Col. 12, Lines 50-55]: “the sensor system can include encoders associated with the motors 114 for the drive wheels 112, and these encoders can track a distance that the robot 100 has traveled. In some implementations, the sensor system includes an optical sensor facing downward toward a floor surface” Munich teaches encoders and optical sensors for the rotational movement of the robot, which can be inertial. Munich [Col. 17, Lines 37-41]: “An image capture device, a gyroscope, a global positioning system (GPS) sensor, a motion sensor, and/or other sensors on the mobile device can be used to generate the mapping data" Munich teaches using GPS sensors to generate mapping data. Munich [Col. 13, Lines 14-18]: “the controller 109 uses SLAM [Simultaneous Localization and Mapping] techniques to determine a location of the robot 100 within the map by detecting features represented in collected sensor data and comparing the features to previously-stored features” Munich teaches that the robot can locate itself in real time using SLAM techniques.)
Regarding dependent claim 4, Jordan and Rajkumar teach:
The method of Claim 3,
Rajkumar teaches:
further comprising: during subsequent navigation at the second location, utilizing the correlation between the second location of the robot and the features observed at the second location to determine if at least one of one or more of the training features are missing or one or more additional training features are detected at the second location; (Rajkumar [¶ 0224]: “The quality analysis module 704 assesses the embedding information by evaluating and filtering the embedding information using various criteria, including comparing distances between embeddings when mapped to a high-dimensional space.” Rajkumar teaches a quality analysis, where the embeddings are evaluated on their mapping to the high-dimensional space. Since the locations are part of this space, the evaluation of the embeddings may include whether some are missing based on their mapping.)
and perform a task based on the training features detected at the second location deviating from the training features detected at the second location during prior navigation at the second location, the detection of the training features being performed using the model. (Rajkumar [¶ 0137]: “using the local cache 218, the robot 104D may provide that classification to other models and modules of the robot 104D to carry out tasks” Rajkumar teaches that a robot may send out a task to other robots, which may be in different locations. Rajkumar [¶ 0243]: “The ability to generate, store, and use embeddings for object classification and other tasks can allow a robot to quickly and efficiently learn to function in new environments and situations” Rajkumar teaches that the ability to generate embeddings for object classification may allow a robot to function in various different locations or environments.)
The reasons to combine are substantially similar to those of claim 1.
Regarding dependent claim 5, Jordan and Rajkumar teach:
The method of Claim 4, wherein, the task comprises at least one of:
Rajkumar teaches:
…
…
or (iii) uploading sensor data captured at the second location for use in enhancing the model. (Rajkumar [¶ 0073]: “The robot may include navigation components allowing it to set a course and travel along a self-directed path” Rajkumar teaches that the robot can navigate a route, on a self-directed path. Rajkumar [¶ 0081]: “the robot periodically uploads the teachings it receives to a server. Other robots do the same. Teachings from all robots are aggregated by the server and existing models are fine-tuned” Rajkumar teaches that periodically, while on the route, the robot can upload the teachings it generated to a server, which may share communications with other robots.)
Munich teaches:
(i) the robot navigating a route based on the determination of whether training features are missing or additional training features are detected; (Munich [Fig. 6]: Munich teaches that in the construction and updating of the mapping data, the robot initiates its behavior based on feature, see 210 in Fig. 6. That is, whether a feature is missing or there, or whether additional features are detected affects its behavior/navigation.)
(ii) emitting a signal to alert a human or other robots of a change in the observed training features at the second location; (Munich [Col. 20 Lines 62-64]: “At the operation 212, the mobile device 188 provides, to a user, an indicator of a feature associated with one of the labels.” Munich teaches that a human can receive a signal associated with the labels of the features. This shows that a change in the feature will result in a notification/alert/signal to a user.)
The reasons to combine are substantially similar to those of claim 1.
Regarding dependent claim 6, Jordan and Rajkumar teach:
The method of Claim 1,
Jordan teaches:
further comprising: receiving sensor data from a third robot; (Jordan [¶ 0021]: “the robot 102C may over time send to the cloud server 160 labeled training data 130C” Jordan teaches that another robot, other than the first two robots, can send its labeled sensor data to the cloud server, which receives it.)
…
and receiving labels of the sensor data to further train the model to identify at least one additional feature, … (Jordan [¶ 0025]: “received, training data 130A-C (which may include labels indicative of the classification” Jordan teaches that the training data, comprising of labels, is received for further training.)
…
Rajkumar teaches:
…
…
detecting none of the training features are present within the sensor data using the model; (Rajkumar [¶ 0188]: “The quality analysis module 704 checks for sensor data quality by analyzing whether … if the image is not included in the feature data of the dataset.” Rajkumar teaches that the sensor data quality is checked for to determine if the image is or isn’t included in the feature data of the dataset.)
…
… the further training of the model comprises training of at least one neural network to identify the at least one additional feature. (Rajkumar [¶ 0205]: “104C corresponds the newly received classification label with the newly produced embedding and feature data captured by the robot 104C in a dataset 406. … update the machine learning model 506 stored on the server system 112.” Rajkumar teaches that the newly produced embedding and feature data by the robot is used to update the machine learning model to identify an additional feature.)
The reasons to combine are substantially similar to those of claim 1.
Regarding dependent claim 7, Jordan and Rajkumar teach:
The method of Claim 1,
Jordan teaches:
further comprising: enhancing the model using additional training pairs, … (Jordan [¶ 0052]: “During the training of this CNN, the labeled training data 130A-C may be fed as an input to an input layer of neurons until the CNN learns how to classify the images, which are cats in this example” Jordan teaches that the input layer of neurons in the model can be fed additional training pairs, which is labeled training data.)
… the training pairs comprising sensor data acquired by the one or more robots and labels generated for the sensor data subsequent to the communication of the model to the one or more robots; (Jordan [¶ 0045]: “the robot 102A may have an image sensor … The robot 102A may send, as training data 130A, data associated with the movement task and an indicator that the training data is for the movement task” Jordan teaches that the training pairs may consist of the data that the robot generated from an image sensor.)
Rajkumar teaches:
and communicating changes to the model based on the additional training pairs to the one or more robots which utilize the model. (Rajkumar [¶ 0205]: “104C corresponds the newly received classification label with the newly produced embedding and feature data captured by the robot 104C in a dataset 406. … update the machine learning model 506 stored on the server system 112.” Rajkumar teaches that the newly produced embedding and feature data by the robot is used to update the machine learning model to identify an additional feature.)
The reasons to combine are substantially similar to those of claim 1.
Regarding dependent claim 8, Jordan and Rajkumar teach:
The method of Claim 1,
Jordan teaches:
wherein, the model is representative of learned weights of one or more trained neural networks, the one or more neural networks being trained using the labels of the sensor data in accordance with a training process. (Jordan [¶ 0041]: “During the training of neural network 299, the labeled training data 130A-C provided by robots 102A-C may be fed as an input to the input layer 260A neurons over time (e.g., t, t+1, etc.) until the neural network 299 learns to model the input data (which in this example is the labeled training data) at the output layer 260C. … When the neural network 299 is trained, the neural network's 299 configuration, such as the values of the weights, activation values, basis function, and/or the like, can be saved to storage.” Jordan teaches the neural network model represents the labeled training data as it was trained to model this data. Furthermore, Jordan teaches that the values of the weights, activation values, and such are saved to storage of the model.)
The reasons to combine are substantially similar to those of claim 1.
Claim 9 is substantially similar to claim 1, but has the following additional elements:
Regarding independent claim 9, Jordan teaches:
A system for training neural networks, comprising: one or more robots, each comprising at least one sensor unit; (Jordan [¶ 0045]: “the robot 102A may have an image sensor” Jordan teaches a robot that has an image sensor.)
one or more processing devices configured to execute computer readable instructions to: (Jordan [¶ 0017]: “The robot may include at least one processor including memory storing the instructions for performing the tasks of the robot.” Jordan teaches that the robot may have a processor to perform the tasks of the robot.)
The reasons to combine are substantially similar to those of claim 1.
Claims 10-16 are rejected on the same grounds under 35 U.S.C. 103 as claims 2-8, as they are
substantially similar, respectively. Mutatis mutandis.
Regarding dependent claim 17, Jordan and Rajkumar teach:
The system of Claim 9,
Jordan teaches:
wherein, the one or more processing devices comprise a distributed network of processing devices located at least in part on the one or more robots. (Jordan [¶ 0016]: “FIG. 1A depicts an example of a system 100 including a heterogeneous group of robots 102-C coupled, via a network 150, to a cloud server 160, in accordance with some example embodiments” Jordan teaches a group of robots that make up the distributed network of processing devices. Jordan [¶ 0017]: “The robot may include at least one processor including memory storing the instructions for performing the tasks of the robot.” Jordan teaches that the robots themselves contain processors.)
The reasons to combine are substantially similar to those of claim 1.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KYU HYUNG HAN whose telephone number is (703) 756-5529. The examiner can normally be reached on MF 9-5.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Alexey Shmatov can be reached on (571) 270-3428. 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.
/Kyu Hyung Han/
Examiner
Art Unit 2123
/ALEXEY SHMATOV/Supervisory Patent Examiner, Art Unit 2123