Prosecution Insights
Last updated: July 17, 2026
Application No. 18/169,879

ROBOT CONTROLLER, CONTROL SYSTEM, AND CONTROL METHOD

Non-Final OA §103§112
Filed
Feb 16, 2023
Priority
Mar 08, 2022 — JP 2022-035126
Examiner
AKBARI, FARAZ TIMA
Art Unit
2196
Tech Center
2100 — Computer Architecture & Software
Assignee
Yaskawa Electric Corporation
OA Round
3 (Non-Final)
0%
Grant Probability
At Risk
3-4
OA Rounds
0m
Est. Remaining
0%
With Interview

Examiner Intelligence

Grants only 0% of cases
0%
Career Allowance Rate
0 granted / 4 resolved
-55.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 5m
Avg Prosecution
25 currently pending
Career history
42
Total Applications
across all art units

Statute-Specific Performance

§103
99.4%
+59.4% vs TC avg
§112
0.7%
-39.3% vs TC avg
Black line = Tech Center average estimate • Based on career data from 4 resolved cases

Office Action

§103 §112
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 . This office action is in response to Applicant’s Amendment filed 03/29/2026. Claims 1, 3-16 and 19-21 are pending. Claims 2, 17, and 18 have been cancelled. Claims 1, 12, and 16 have been amended. New Claims 19-21 have been added. Any examiner’s note, objection, or rejection not repeated is withdrawn due to Applicant’s amendment. 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 03/29/2026 has been entered. Priority Applicant’s claim for priority from foreign application no. JP2022-035126 filed 03/08/2022 is acknowledged. 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, 5-8, 11-13, 16, and 19-21 are rejected under 35 U.S.C. 103 as being unpatentable over Dinica et al. (US 20210347062 A1) in view of Heintzelman et al. (US 20200282564 A1), and further in view of Kojima et al. (US 20180194009 A1), hereinafter referred to as Dinica, Heintzelman, and Kojima, respectively. Regarding Claim 1, Dinica discloses A robot controller comprising: a circuit configured to provide a web server ([0033] In some embodiments, robot 12 and orchestrator 14 may execute in a client-server configuration. It should be noted that the client side, the server side, or both, may include any desired number of computing systems (e.g., physical or virtual machines) without deviating from the scope of the invention.; [0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27.; [0039] Yet another exemplary host includes an on-premises computer (e.g., server.) The term “on-premises” is used herein to denote hardware owned by the person/organization using the respective provisioned RPA software. Please note that the orchestrator 14 executing on a server side, where the UI 17 is a web application, corresponds to Applicant’s web server. Furthermore, an embodiment in which the robot 12 and orchestrator 14 execute in a client-server configuration, operating in a single on-premises computer owned by the organization using the RPA software, corresponds to a robot controller comprising a circuit, as the same system is ultimately controlling a robot but is also operating the web server on the on-premises hardware.) including: a Web API (Application Programming Interface) configured to receive a request from a Web client which is configured to execute a Single Page Application ([0034] A user may interact with orchestrator 14 via orchestrator UI 17 (e.g., by opening a dedicated orchestrator interface on a browser); [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that actions requested by the user being carried out by selectively calling service APIs, where the user can interact with the orchestrator 14 via orchestrator UI 17 corresponds to Applicant’s web API configured to receive a request from a web client which is configured to execute a single page application. This is because the dedicated orchestrator interface opened in a browser corresponds to a Web client configured to executed a Single Page Application.); processing circuitry configured to execute a process with respect to a robot, the process corresponding to the request received by the Web API ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that the orchestrator 14, running on physical machines, carrying out actions requested by the user by using REST API endpoints to communicate with robot 12 corresponds to Applicant’s processing circuitry configured to execute a process with respect to a robot, the process corresponding to the request received by the Web API.); Dinica does not explicitly disclose and response generation circuitry configured to generate a response to the request as updated data for the Single Page Application, wherein the web server is configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request, wherein the circuit is configured to store an operation program including a plurality of operation commands However, Heintzelman discloses and response generation circuitry configured to generate a response to the request as updated data for the Single Page Application ([0056] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note that the data being received automatically from the web service and downloaded in response to a user request corresponds to Applicant’s generating a response to the request as updated data for the Single Page Application, as it retrieves up-to-date data and then responds with it to the user request to go to the Single Page Application. Furthermore, the controllers configured to receive this data correspond to Applicant’s response generation circuitry.), wherein the web server is configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request ([0056] In some cases, the controllers 22, 38 may be programmed to communicate over the second network 60 with an external web service hosted by one or more external web servers 66. […] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note that the external web service hosted by an external web server corresponds to Applicant’s web server configured to store main body data of the Single Page Application, and the data being downloaded in response to a user request corresponds to Applicant’s transmitting the main body data to the Web client in response to the request, as the data would be processed and used by the web server running the Single Page Application.), wherein the circuit is configured to store an operation program including a plurality of operation commands ([0058] In some cases, one or more application program codes (i.e., apps) stored in the memory of the remote device 52 may be used to remotely access and/or control the controllers 22, 38. Please note that the application program codes stored in the memory of the remote device 52 correspond to Applicant’s circuit being configured to store an operation program including a plurality of operation commands, i.e., the apps.) Dinica and Heintzelman are both considered to be analogous to the claimed invention because they are in the same field of computer-based robot control. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica to incorporate the teachings of Heintzelman to modify the system utilizing a Web API for robot control incorporating a Single Page Application to generate a response to the request as updated data for the Single Page Application and have the web server configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request, wherein the circuit stores an operation program, allowing for improved communication between the user interface and the robot, as described in Heintzelman. Dinica-Heintzelman does not explicitly disclose and wherein the circuit is further configured to operate the robot based on the plurality of operation commands of the operation program. However, Kojima discloses and wherein the circuit is further configured to operate the robot based on the plurality of operation commands of the operation program ([0083] The robot control device 30 is a controller for controlling the robot 20. The robot control device 30 operates the robot 20 based on an operation program stored in advance by the user. Thus, it is possible for the robot control device 30 to make the robot 20 perform a predetermined operation.; [0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). Please note that the robot control device 30 processing operation programs to control the robot corresponds to Applicant’s circuit being configured to operate the robot based on the operation commands of the operation program. The storage section 32 storing the operation program processed by the robot control device 30 corresponds to Applicant’s plurality of operation commands of the operation program, which would thus allow one of ordinary skill in the art to combine Kojima to Heintzelman as both have sections of memory storing instructions for the operation of robot controllers. ). Dinica-Heintzelman and Kojima are both considered to be analogous to the claimed invention because they are in the same field of executing processes via computers to control robots. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman to incorporate the teachings of Kojima to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests and storing an operation program including operation commands to operate the robot based on the plurality of operation commands of the operation program, allowing for improved control of the robot, as described in Kojima. Regarding Claim 5, Dinica-Heintzelman-Kojima as described in Claim 1, Dinica further discloses wherein the processing circuitry comprises robot operation circuitry configured to execute an operation of the robot in response to the request ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that the orchestrator 14, running on physical machines, carrying out actions requested by the user by using REST API endpoints to communicate with robot 12 corresponds to Applicant’s processing circuitry comprising robot operation circuitry configured to execute an operation of the robot in response to the request.), and monitor circuitry configured to execute monitoring of the robot in response to the request ([0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. The REST API may include […] monitoring [...] functionality. Please note that the orchestrator 14 carrying out actions requested by the user and using the REST API endpoints to communicate with robot 12 corresponds to Applicant’s monitor circuitry configured to execute monitoring of the robot in response to the request.). Regarding Claim 6, Dinica-Heintzelman-Kojima as described in Claim 5, Dinica further discloses a storage configured to store user identification information ([0050] Provisioning database 54 may further store a user management data structure characterizing a set of users of provisioning application 52. Each user may be characterized by, among others, a set of access credentials. Please note that the provisioning database 54 storing credentials corresponds to Applicant’s storage configured to store user identification information.); and restriction circuitry configured to restrict the operation of the robot when the Web API receives the request including an identification information which is not stored in the storage ([0045] In response to receiving request 62, RPA host platform 20 may transmit a provisioning response 62 back to application 52 […] Provisioning response 62 may further include a set of credentials for accessing a provisioned resource (e.g., VM, robot, orchestrator); [0056] Step 200 may include displaying a login screen, receiving a set of user credentials for accessing application 52, and identifying the current user and his/her user role/privileges according to the provided credentials. Please note that including credentials for accessing a robot in response to receiving request 62, where a login screen is displayed in which a set of user credentials is received, corresponds to Applicant’s restricting the operation of the robot when the web API receives the request including identification information which is not stored in the storage). Regarding Claim 7, Dinica-Heintzelman-Kojima as described in Claim 5, Dinica further discloses a restriction circuitry configured to restrict the operation of the robot when the Web API receives the request via a communication network ([0045] In response to receiving request 62, RPA host platform 20 may transmit a provisioning response 62 back to application 52 […] Provisioning response 62 may further include a set of credentials for accessing a provisioned resource (e.g., VM, robot, orchestrator); [0057] determine an eligible set of templates according to a set of criteria such as the identity of the current user, security and/or confidentiality considerations (e.g., whether the respective user is allowed to access certain resources or locations, etc.), current geographical location and/or current time. Please note that determining an eligible set of templates according to criteria such as current geographical location when the user requests access to a robot corresponds to Applicant’s restriction circuitry configured to restrict the operation of the robot when the Web API receives the request via a communication network, as it is known in the art that a user in a different geographical location, i.e., off-site, would likely use a different communication network to access the web API.). Regarding Claim 8, Dinica-Heintzelman-Kojima as described in Claim 5, Dinica further discloses a storage configured to store identification information of a terminal that is configured to execute the Web client ([0049] In some embodiments, provisioning database 54 stores various parameters and/or other data characterizing a provisioned RPA environment. Such data/parameters may include […] a set of locations and/or credentials for accessing the respective components. Please note that the provisioning database 54 storing locations for accessing the respective components corresponds to Applicant’s storage configured to store identification information of a terminal that is configured to execute the Web client, as it is known in the art that identification information such as a MAC address that corresponds to a physical device, i.e., a terminal, is one criteria that can be used to identify a location from which a component can be accessed.); and restriction circuitry configured to restrict the operation of the robot when the Web API receives the request from a terminal whose identification information is not stored in the storage ([0045] In response to receiving request 62, RPA host platform 20 may transmit a provisioning response 62 back to application 52 […] Provisioning response 62 may further include a set of credentials for accessing a provisioned resource (e.g., VM, robot, orchestrator); [0057] provisioning application 52 may query provisioning database 54 and determine an eligible set of templates according to a set of criteria such as the identity of the current user, security and/or confidentiality considerations (e.g., whether the respective user is allowed to access certain resources or locations, etc.), current geographical location and/or current time. Please note that the provisioning application querying the provisioning database 54 to determine an eligible set of templates according to whether the user is allowed to access a location when the user requests access to a robot corresponds to Applicant’s restriction circuitry restricting the operation of the robot when the web API receives the request from a terminal whose identification information is not stored in the storage, since, as previously mentioned, if an unauthorized location of a user, identified via the MAC address of a terminal, is detected, the operation of the robot can be restricted.). Regarding Claim 11, Dinica-Heintzelman-Kojima as described in Claim 1, Dinica further discloses wherein the web server configured to store plurality of types of main body data comprising ([0033] In some embodiments, robot 12 and orchestrator 14 may execute in a client-server configuration.; [0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27. Please note that the orchestrator 14 executing as a server corresponds to Applicant’s web server, including an orchestrator UI (known in the art to be stored as program code) and service modules corresponds to Applicant’s configured to store plurality of types of main body data.): main body data of the Single Page Application capable of transmitting the request for monitoring the robot ([0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. The REST API may include […] monitoring […] functionality. Please note that the orchestrator 14 calling a REST API endpoint to communicate with the robot with monitoring functionality corresponds to Applicant’s main body data of the Single Page Application capable of transmitting the request for monitoring the robot, as the aforementioned orchestrator UI 17 controls the orchestrator 14 and thus contains code for executing this functionality.); and main body data of the Single Page Application capable of transmitting the request for operation of the robot in addition to the request for monitoring ([0033] In some embodiments, robot 12 and orchestrator 14 may execute in a client-server configuration.; [0034] A user may interact with orchestrator 14 via orchestrator UI 17 (e.g., by opening a dedicated orchestrator interface on a browser), to instruct orchestrator 14 to carry out various actions, which may include for instance starting jobs on robot 12. Please note that the orchestrator UI opened in the browser, as is known in the art, corresponds to a Single Page Application, and starting jobs on robot 12 corresponds to Applicant’s transmitting the request for operation of the robot in addition to the request for monitoring, as the client-server configuration allows for transmitting of requests. The code to run this operation and the orchestrator UI stored on the server corresponds to Applicant’s main body data.), and transmit any of the plurality of types of the main body data to the Web client in response to the request from the Web client ([0034] In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27. […] A user may interact with orchestrator 14 via orchestrator UI 17 (e.g., by opening a dedicated orchestrator interface on a browser). Please note that the orchestrator UI web application and its service modules corresponds to Applicant’s plurality of types of main body data, and the user opening a dedicated orchestrator interface on a browser corresponds to Applicant’s transmitting that data to the Web client in response to the request from the Web client. This is because the interface opened on the browser corresponds to the Web client, which requests execution of the program data, which is transmitted by the server to the browser.). Regarding Claim 12, Dinica discloses A control system comprising: a terminal configured to execute a Web client ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application. Please note that the orchestrator 14 including a orchestrator UI 17 that is a web application executing on physical machines corresponds to Applicant’s control system comprising a terminal configured to execute a web client.); and a robot controller comprising: a circuit configured to provide a web server ([0033] In some embodiments, robot 12 and orchestrator 14 may execute in a client-server configuration. It should be noted that the client side, the server side, or both, may include any desired number of computing systems (e.g., physical or virtual machines) without deviating from the scope of the invention.; [0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27.; [0039] Yet another exemplary host includes an on-premises computer (e.g., server.) The term “on-premises” is used herein to denote hardware owned by the person/organization using the respective provisioned RPA software. Please note that the orchestrator 14 executing on a server side, where the UI 17 is a web application, corresponds to Applicant’s web server. Furthermore, an embodiment in which the robot 12 and orchestrator 14 execute in a client-server configuration, operating in a single on-premises computer owned by the organization using the RPA software, corresponds to a robot controller comprising a circuit, as the same system is ultimately controlling a robot but is also operating the web server on the on-premises hardware.) including: a Web API (Application Programming Interface) configured to receive a request from a Web client which is configured to execute a Single Page Application ([0034] A user may interact with orchestrator 14 via orchestrator UI 17 (e.g., by opening a dedicated orchestrator interface on a browser); [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that actions requested by the user being carried out by selectively calling service APIs, where the user can interact with the orchestrator 14 via orchestrator UI 17 corresponds to Applicant’s web API configured to receive a request from a web client which is configured to execute a single page application. This is because the dedicated orchestrator interface opened in a browser corresponds to a Web client configured to executed a Single Page Application. Furthermore, the API endpoints being used to communicate with robot 12 corresponds to Applicant’s robot controller, as the system is ultimately controlling a robot.); processing circuitry configured to execute a process with respect to a robot, the process corresponding to the request received by the Web API ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that the orchestrator 14, running on physical machines, carrying out actions requested by the user by using REST API endpoints to communicate with robot 12 corresponds to Applicant’s processing circuitry configured to execute a process with respect to a robot, the process corresponding to the request received by the Web API.); Dinica does not explicitly disclose and response generation circuitry configured to generate a response to the request as updated data for the Single Page Application, wherein the web server is configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request, wherein the circuit is configured to store an operation program including a plurality of operation commands However, Heintzelman discloses and response generation circuitry configured to generate a response to the request as updated data for the Single Page Application ([0056] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note that the data being received automatically from the web service and downloaded in response to a user request corresponds to Applicant’s generating a response to the request as updated data for the Single Page Application, as it retrieves up-to-date data and then responds with it to the user request to go to the Single Page Application. Furthermore, the controllers configured to receive this data correspond to Applicant’s response generation circuitry.), wherein the web server is configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request ([0056] In some cases, the controllers 22, 38 may be programmed to communicate over the second network 60 with an external web service hosted by one or more external web servers 66. […] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note that the external web service hosted by an external web server corresponds to Applicant’s web server configured to store main body data of the Single Page Application, and the data being downloaded in response to a user request corresponds to Applicant’s transmitting the main body data to the Web client in response to the request, as the data would be processed and used by the web server running the Single Page Application.), wherein the circuit is configured to store an operation program including a plurality of operation commands ([0058] In some cases, one or more application program codes (i.e., apps) stored in the memory of the remote device 52 may be used to remotely access and/or control the controllers 22, 38. Please note that the application program codes stored in the memory of the remote device 52 correspond to Applicant’s circuit being configured to store an operation program including a plurality of operation commands, i.e., the apps.) Dinica and Heintzelman are both considered to be analogous to the claimed invention because they are in the same field of computer-based robot control. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica to incorporate the teachings of Heintzelman to modify the system utilizing a Web API for robot control incorporating a Single Page Application to generate a response to the request as updated data for the Single Page Application and have the web server configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request, wherein the circuit stores an operation program, allowing for improved communication between the user interface and the robot, as described in Heintzelman. Dinica-Heintzelman does not explicitly disclose and wherein the circuit is further configured to operate the robot based on the plurality of operation commands of the operation program. However, Kojima discloses and wherein the circuit is further configured to operate the robot based on the plurality of operation commands of the operation program ([0083] The robot control device 30 is a controller for controlling the robot 20. The robot control device 30 operates the robot 20 based on an operation program stored in advance by the user. Thus, it is possible for the robot control device 30 to make the robot 20 perform a predetermined operation.; [0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). Please note that the robot control device 30 processing operation programs to control the robot corresponds to Applicant’s circuit being configured to operate the robot based on the operation commands of the operation program. The storage section 32 storing the operation program processed by the robot control device 30 corresponds to Applicant’s plurality of operation commands of the operation program, which would thus allow one of ordinary skill in the art to combine Kojima to Heintzelman as both have sections of memory storing instructions for the operation of robot controllers. ). Dinica-Heintzelman and Kojima are both considered to be analogous to the claimed invention because they are in the same field of executing processes via computers to control robots. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman to incorporate the teachings of Kojima to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests and storing an operation program including operation commands to operate the robot based on the plurality of operation commands of the operation program, allowing for improved control of the robot, as described in Kojima. Regarding Claim 13, Dinica-Heintzelman-Kojima as described in Claim 12, Dinica further discloses wherein the Web client is configured to generate the request based on an input to the execution screen of the Single Page Application, and partially update a display of the execution screen in response to the response ([0044] In a preferred embodiment, provisioning application 52 executes as a web application exposing a web interface to a user, which may access it via a browser.; [0067] In response to receiving user input indicating a user's request to display, […] available information […] provisioning application 52 may query provisioning database 54 for the respective data and display it to the user. Please note that the web interface corresponding to Applicant’s Web client generates a request based on user input to the execution screen of its Single Page Application (the web application running in the browser, in a single page), queries the database for respective data, resulting in a response, and updates the display of the execution screen of the web application with this response.). Regarding Claim 16, Dinica discloses A control method comprising: receiving by a Web API (Application Programming Interface) of a web server of a robot controller ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27. […] A user may interact with orchestrator 14 via orchestrator UI 17 (e.g., by opening a dedicated orchestrator interface on a browser), to instruct orchestrator 14 to carry out various actions, which may include for instance starting jobs on robot 12. Please note that the orchestrator 14 executing on a server side, where the UI 17 is a web application, where the orchestrator UI 17 can be used to start jobs on robot 12 corresponds to Applicant’s web server of a robot controller.), a request from a Web client which is configured to execute a Single Page Application ([0034] A user may interact with orchestrator 14 via orchestrator UI 17 (e.g., by opening a dedicated orchestrator interface on a browser); [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that actions requested by the user being carried out by selectively calling service APIs, where the user can interact with the orchestrator 14 via orchestrator UI 17 corresponds to Applicant’s web API configured to receive a request from a web client which is configured to execute a single page application. This is because the dedicated orchestrator interface opened in a browser corresponds to a Web client configured to executed a Single Page Application. Furthermore, the API endpoints being used to communicate with robot 12 corresponds to Applicant’s control method.); executing a process with respect to a robot, the process corresponding to the request received by the Web API ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. Please note that the orchestrator 14, running on physical machines, carrying out actions requested by the user by using REST API endpoints to communicate with robot 12 corresponds to Applicant’s processing circuitry configured to execute a process with respect to a robot, the process corresponding to the request received by the Web API.); wherein the robot controller comprises a circuit configured to provide the web server ([0033] In some embodiments, robot 12 and orchestrator 14 may execute in a client-server configuration. It should be noted that the client side, the server side, or both, may include any desired number of computing systems (e.g., physical or virtual machines) without deviating from the scope of the invention.; [0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27.; [0039] Yet another exemplary host includes an on-premises computer (e.g., server.) The term “on-premises” is used herein to denote hardware owned by the person/organization using the respective provisioned RPA software. Please note that the orchestrator 14 executing on a server side, where the UI 17 is a web application, corresponds to Applicant’s web server. Furthermore, an embodiment in which the robot 12 and orchestrator 14 execute in a client-server configuration, operating in a single on-premises computer owned by the organization using the RPA software, corresponds to a robot controller comprising a circuit configured to provide the web server, as the same system is ultimately controlling a robot but is also operating the web server on the on-premises hardware.), Dinica does not explicitly disclose and generating a response to the request as updated data for the Single Page Application, wherein the web server is configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request, wherein the circuit is configured to store an operation program including a plurality of operation commands However, Heintzelman discloses and generating a response to the request as updated data for the Single Page Application ([0056] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note that the data being received automatically from the web service and downloaded in response to a user request corresponds to Applicant’s generating a response to the request as updated data for the Single Page Application, as it retrieves up-to-date data and then responds with it to the user request to go to the Single Page Application. Furthermore, the controllers configured to receive this data correspond to Applicant’s response generation circuitry.), wherein the web server is configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request ([0056] In some cases, the controllers 22, 38 may be programmed to communicate over the second network 60 with an external web service hosted by one or more external web servers 66. […] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note that the external web service hosted by an external web server corresponds to Applicant’s web server configured to store main body data of the Single Page Application, and the data being downloaded in response to a user request corresponds to Applicant’s transmitting the main body data to the Web client in response to the request, as the data would be processed and used by the web server running the Single Page Application.), wherein the circuit is configured to store an operation program including a plurality of operation commands ([0058] In some cases, one or more application program codes (i.e., apps) stored in the memory of the remote device 52 may be used to remotely access and/or control the controllers 22, 38. Please note that the application program codes stored in the memory of the remote device 52 correspond to Applicant’s circuit being configured to store an operation program including a plurality of operation commands, i.e., the apps.) Dinica and Heintzelman are both considered to be analogous to the claimed invention because they are in the same field of computer-based robot control. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica to incorporate the teachings of Heintzelman to modify the system utilizing a Web API for robot control incorporating a Single Page Application to generate a response to the request as updated data for the Single Page Application and have the web server configured to store main body data of the Single Page Application and transmit the main body data to the Web client in response to the request, wherein the circuit stores an operation program, allowing for improved communication between the user interface and the robot, as described in Heintzelman. Dinica-Heintzelman does not explicitly disclose and wherein the circuit is further configured to operate the robot based on the plurality of operation commands of the operation program. However, Kojima discloses and wherein the circuit is further configured to operate the robot based on the plurality of operation commands of the operation program ([0083] The robot control device 30 is a controller for controlling the robot 20. The robot control device 30 operates the robot 20 based on an operation program stored in advance by the user. Thus, it is possible for the robot control device 30 to make the robot 20 perform a predetermined operation.; [0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). Please note that the robot control device 30 processing operation programs to control the robot corresponds to Applicant’s circuit being configured to operate the robot based on the operation commands of the operation program. The storage section 32 storing the operation program processed by the robot control device 30 corresponds to Applicant’s plurality of operation commands of the operation program, which would thus allow one of ordinary skill in the art to combine Kojima to Heintzelman as both have sections of memory storing instructions for the operation of robot controllers. ). Dinica-Heintzelman and Kojima are both considered to be analogous to the claimed invention because they are in the same field of executing processes via computers to control robots. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman to incorporate the teachings of Kojima to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests and storing an operation program including operation commands to operate the robot based on the plurality of operation commands of the operation program, allowing for improved control of the robot, as described in Kojima. Regarding Claim 19, Dinica-Heintzelman-Kojima as described in Claim 1, Kojima further discloses wherein the circuit ([0105] robot control device 30) includes one or more processors ([0106] The CPU 31 executes a variety of programs stored in the storage section 32. Please note the CPU 31 corresponds to Applicant’s processor.), one or more memory devices, one or more storage unit devices ([0107] The storage section 32 includes, for example, a hard disk drive (HDD), a solid state drive (SSD), an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), and a random access memory (RAM). Please note the RAM corresponds to Applicant’s memory device and the HDD/SSD of the storage section corresponds to Applicant’s storage unit devices.), a communication port, and a driver circuit ([0073] Going back to FIG. 2, the actuators provided to the respective joints J1 through J6 provided to the manipulator Mare each connected to the robot control device 30 with a cable so as to be able to communicate with the robot control device 30. Thus, the actuator operates the manipulator M based on the control signal obtained from the robot control device 30. It should be noted that wired communication via the cable is performed conforming with the standard such as Ethernet (registered trademark) or USB (universal serial bus). Please note that Applicant states in [0086] of the specification that “The communication port 194 communicates with the terminal 200 based on a request from one or more processors 191. The driver circuit 195 supplies drive power to the robot 2 (actuator 41, 42, 43, 44, 45, 46) based on a request from one or more processors 191.” Therefore, the wired communication performed via Ethernet or USB corresponds to Applicant’s communication port, and the mechanism by which the actuators provided to the respective joints are controlled corresponds to Applicant’s driver circuit.), wherein the one or more storage unit devices are configured to store a program for causing the robot controller to receive the request from the Web client that executes the Single Page Application by the Web API, execute the process corresponding to the request received by the Web API to the robot, and generate the response to the request as the updated data for the Single Page Application ([0083] The robot control device 30 is a controller for controlling the robot 20. The robot control device 30 operates the robot 20 based on an operation program stored in advance by the user. Thus, it is possible for the robot control device 30 to make the robot 20 perform a predetermined operation.; [0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). Please note that the storage section, including the SSD/HDD, storing the operation program that makes the robot perform a predetermined operation corresponds to Applicant’s storage unit devices configured to store a program for causing the robot controller to receive the request from the Web client that executes the Single Page Application by the Web API, executes the process corresponding to the request received by the Web API to the robot, and generates the response to the request as the updated data for the Single Page Application, as these are all part of the predetermined operation of the robot controller, as previously described in the rejection of the Independent Claims upon which this claim depends, and it would be obvious to one of ordinary skill in the art to utilize that operation program in Kojima’s system to operate the robot.), wherein the one or more memory devices are configured to temporarily store the program loaded from the one or more storage unit devices ([0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). As both the RAM and HDD/SSD are both in the storage section 32, this corresponds to the memory devices temporarily storing the program loaded from the storage unit devices, as it would be obvious to transfer data pertaining to the operation program within the storage section to memory in order to prepare it for execution. ), wherein the one or more processors are configured to execute the program loaded in the one or more memory devices ([0106] The CPU 31 executes a variety of programs stored in the storage section 32. Please note the CPU 31 corresponds to Applicant’s processor.), and wherein the driver circuit is configured to supply drive power to the robot based on the request from the one or more processors ([0073] Going back to FIG. 2, the actuators provided to the respective joints J1 through J6 provided to the manipulator Mare each connected to the robot control device 30 with a cable so as to be able to communicate with the robot control device 30. Thus, the actuator operates the manipulator M based on the control signal obtained from the robot control device 30. Please note that the actuator operating the manipulator M based on the control signal obtained from the robot control device 30 corresponds to Applicant’s driver circuit supplying drive power to the robot based on the request from the one or more processors.). Regarding Claim 20, Dinica-Heintzelman-Kojima as described in Claim 12, Kojima further discloses wherein the robot controller has a circuit ([0105] robot control device 30) including one or more processors ([0106] The CPU 31 executes a variety of programs stored in the storage section 32. Please note the CPU 31 corresponds to Applicant’s processor.), one or more memory devices, one or more storage unit devices ([0107] The storage section 32 includes, for example, a hard disk drive (HDD), a solid state drive (SSD), an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), and a random access memory (RAM). Please note the RAM corresponds to Applicant’s memory device and the HDD/SSD of the storage section corresponds to Applicant’s storage unit devices.), a communication port, and a driver circuit ([0073] Going back to FIG. 2, the actuators provided to the respective joints J1 through J6 provided to the manipulator Mare each connected to the robot control device 30 with a cable so as to be able to communicate with the robot control device 30. Thus, the actuator operates the manipulator M based on the control signal obtained from the robot control device 30. It should be noted that wired communication via the cable is performed conforming with the standard such as Ethernet (registered trademark) or USB (universal serial bus). Please note that Applicant states in [0086] of the specification that “The communication port 194 communicates with the terminal 200 based on a request from one or more processors 191. The driver circuit 195 supplies drive power to the robot 2 (actuator 41, 42, 43, 44, 45, 46) based on a request from one or more processors 191.” Therefore, the wired communication performed via Ethernet or USB corresponds to Applicant’s communication port, and the mechanism by which the actuators provided to the respective joints are controlled corresponds to Applicant’s driver circuit.), wherein the one or more storage unit devices are configured to store a program for causing the robot controller to receive the request from the Web client that executes the Single Page Application by the Web API, execute the process corresponding to the request received by the Web API to the robot, and generate the response to the request as the updated data for the Single Page Application ([0083] The robot control device 30 is a controller for controlling the robot 20. The robot control device 30 operates the robot 20 based on an operation program stored in advance by the user. Thus, it is possible for the robot control device 30 to make the robot 20 perform a predetermined operation.; [0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). Please note that the storage section, including the SSD/HDD, storing the operation program that makes the robot perform a predetermined operation corresponds to Applicant’s storage unit devices configured to store a program for causing the robot controller to receive the request from the Web client that executes the Single Page Application by the Web API, executes the process corresponding to the request received by the Web API to the robot, and generates the response to the request as the updated data for the Single Page Application, as these are all part of the predetermined operation of the robot controller, as previously described in the rejection of the Independent Claims upon which this claim depends, and it would be obvious to one of ordinary skill in the art to utilize that operation program in Kojima’s system to operate the robot.), wherein the one or more memory devices are configured to temporarily store the program loaded from the one or more storage unit devices ([0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). As both the RAM and HDD/SSD are both in the storage section 32, this corresponds to the memory devices temporarily storing the program loaded from the storage unit devices, as it would be obvious to transfer data pertaining to the operation program within the storage section to memory in order to prepare it for execution. ), wherein the one or more processors are configured to execute the program loaded in the one or more memory devices ([0106] The CPU 31 executes a variety of programs stored in the storage section 32. Please note the CPU 31 corresponds to Applicant’s processor.), and wherein the driver circuit is configured to supply drive power to the robot based on the request from the one or more processors ([0073] Going back to FIG. 2, the actuators provided to the respective joints J1 through J6 provided to the manipulator Mare each connected to the robot control device 30 with a cable so as to be able to communicate with the robot control device 30. Thus, the actuator operates the manipulator M based on the control signal obtained from the robot control device 30. Please note that the actuator operating the manipulator M based on the control signal obtained from the robot control device 30 corresponds to Applicant’s driver circuit supplying drive power to the robot based on the request from the one or more processors.). Regarding Claim 21, Dinica-Heintzelman-Kojima as described in Claim 16, Kojima further discloses wherein the robot controller has a circuit ([0105] robot control device 30) including one or more processors ([0106] The CPU 31 executes a variety of programs stored in the storage section 32. Please note the CPU 31 corresponds to Applicant’s processor.), one or more memory devices, one or more storage unit devices ([0107] The storage section 32 includes, for example, a hard disk drive (HDD), a solid state drive (SSD), an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), and a random access memory (RAM). Please note the RAM corresponds to Applicant’s memory device and the HDD/SSD of the storage section corresponds to Applicant’s storage unit devices.), a communication port, and a driver circuit ([0073] Going back to FIG. 2, the actuators provided to the respective joints J1 through J6 provided to the manipulator Mare each connected to the robot control device 30 with a cable so as to be able to communicate with the robot control device 30. Thus, the actuator operates the manipulator M based on the control signal obtained from the robot control device 30. It should be noted that wired communication via the cable is performed conforming with the standard such as Ethernet (registered trademark) or USB (universal serial bus). Please note that Applicant states in [0086] of the specification that “The communication port 194 communicates with the terminal 200 based on a request from one or more processors 191. The driver circuit 195 supplies drive power to the robot 2 (actuator 41, 42, 43, 44, 45, 46) based on a request from one or more processors 191.” Therefore, the wired communication performed via Ethernet or USB corresponds to Applicant’s communication port, and the mechanism by which the actuators provided to the respective joints are controlled corresponds to Applicant’s driver circuit.), wherein the one or more storage unit devices are configured to store a program for causing the robot controller to receive the request from the Web client that executes the Single Page Application by the Web API, execute the process corresponding to the request received by the Web API to the robot, and generate the response to the request as the updated data for the Single Page Application ([0083] The robot control device 30 is a controller for controlling the robot 20. The robot control device 30 operates the robot 20 based on an operation program stored in advance by the user. Thus, it is possible for the robot control device 30 to make the robot 20 perform a predetermined operation.; [0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). Please note that the storage section, including the SSD/HDD, storing the operation program that makes the robot perform a predetermined operation corresponds to Applicant’s storage unit devices configured to store a program for causing the robot controller to receive the request from the Web client that executes the Single Page Application by the Web API, executes the process corresponding to the request received by the Web API to the robot, and generates the response to the request as the updated data for the Single Page Application, as these are all part of the predetermined operation of the robot controller, as previously described in the rejection of the Independent Claims upon which this claim depends, and it would be obvious to one of ordinary skill in the art to utilize that operation program in Kojima’s system to operate the robot.), wherein the one or more memory devices are configured to temporarily store the program loaded from the one or more storage unit devices ([0107] The storage section 32 stores a variety of types of information (including the teaching point information), a variety of types of programs (including the operation program). As both the RAM and HDD/SSD are both in the storage section 32, this corresponds to the memory devices temporarily storing the program loaded from the storage unit devices, as it would be obvious to transfer data pertaining to the operation program within the storage section to memory in order to prepare it for execution. ), wherein the one or more processors are configured to execute the program loaded in the one or more memory devices ([0106] The CPU 31 executes a variety of programs stored in the storage section 32. Please note the CPU 31 corresponds to Applicant’s processor.), and wherein the driver circuit is configured to supply drive power to the robot based on the request from the one or more processors ([0073] Going back to FIG. 2, the actuators provided to the respective joints J1 through J6 provided to the manipulator Mare each connected to the robot control device 30 with a cable so as to be able to communicate with the robot control device 30. Thus, the actuator operates the manipulator M based on the control signal obtained from the robot control device 30. Please note that the actuator operating the manipulator M based on the control signal obtained from the robot control device 30 corresponds to Applicant’s driver circuit supplying drive power to the robot based on the request from the one or more processors.). Claims 3-4 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Dinica et al. (US 20210347062 A1) in view of Heintzelman et al. (US 20200282564 A1) ), and further in view of Kojima et al. (US 20180194009 A1) as applied to Claim 1, 3, and 13 above, and further in view of Stump et al. (US 20210096524 A1), hereinafter referred to as Dinica, Heintzelman, Kojima and Stump, respectively. Regarding Claim 3, Dinica-Heintzelman-Kojima as described in Claim 1, Heintzelman further discloses and configured to notify the Web client of the occurrence of the event via Server-Sent Events when the event occurs ([0056] In some cases, the controllers 22, 38 may be programmed to communicate over the second network 60 with an external web service hosted by one or more external web servers 66. […] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note data being received automatically from the web service, hosted by a web server, corresponds to Applicant’s configured to notify the Web client of the occurrence of the event via Server-Sent Events when the event occurs, as events are known in the art to be communicable as data, and since they are received from a web service hosted by a web server, they are, by definition, Server-Sent Events.). Dinica-Heintzelman-Kojima does not explicitly disclose wherein the processing circuitry has an event notification unit which is configured to monitor an occurrence of an event in the robot controller However, Stump discloses wherein the processing circuitry has an event notification unit which is configured to monitor an occurrence of an event in the robot controller ([0170] As described above, the dashboard 200 is configured to display notifications to a user when in the design-time environment. […] For example, if an industrial automation process is running while a user is editing the corresponding project within the design-time environment, and alarms are generated, the alarms may appear as notifications 1250 within the dashboard 200. Please note that the dashboard displaying notifications to a user such as when an industrial automation process generates an alarm corresponds to Applicant’s event notification unit configured to monitor an occurrence of an event in the robot controller, since it allows the user to be notified of an event, i.e., an alarm, occurring in the industrial automation process, i.e., robot controller.). Dinica-Heintzelman-Kojima and Stump are both considered to be analogous to the claimed invention because they are in the same field of managing automated systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman-Kojima to incorporate the teachings of Stump to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests to monitor the occurrence of an event in the robot controller and notify the web client, allowing for improved management of the robot system and allowing for better error resolution, as described in Stump. Regarding Claim 4, Dinica-Heintzelman-Kojima-Stump as described in Claim 3, Stump further discloses wherein the event includes an alarm generated in the robot controller ([0170] As described above, the dashboard 200 is configured to display notifications to a user when in the design-time environment. […] For example, if an industrial automation process is running while a user is editing the corresponding project within the design-time environment, and alarms are generated, the alarms may appear as notifications 1250 within the dashboard 200. Please note that an alarm appearing as a notification from an industrial automation process corresponds to Applicant’s event including an alarm generated in the robot controller). Regarding Claim 14, Dinica-Heintzelman-Kojima as described in Claim 13, Dinica further discloses wherein the Web client is configured to generate the request for event monitoring in response to activation of the Single Page Application ([0034] Orchestrator 14 may execute on a server side, possibly distributed over multiple physical machines. In one such embodiment, orchestrator 14 may include an orchestrator UI 17 which may be a web application, and a set of service modules 27.; [0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. The REST API may include […] monitoring […] functionality. Please note that the orchestrator 14 carrying out requests for monitoring the robot based on user requests executed on an orchestrator UI corresponds to Applicant’s Web client configured to generate the request for event monitoring in response to the activation of the Single Page Application, as the user activates the web application corresponding to the Single Page Application to get the orchestrator 14 corresponding to the Web client to generate an API request for monitoring.), when the Web API receives the request for event monitoring ([0035] Orchestrator 14 may carry out actions requested by the user by selectively calling service APIs/business logic. In addition, orchestrator 14 may use the REST API endpoints to communicate with robot 12. The REST API may include […] monitoring […] functionality. Please note that the orchestrator 14 using the REST API for monitoring to carry out actions requested by the user corresponds to Applicant’s web API receiving the request for event monitoring.) Heintzelman further discloses and which is configured to notify the Web client of the occurrence of an event by means of Server-Sent Events when the event occurs ([0056] In some cases, the controllers 22, 38 may be programmed to communicate over the second network 60 with an external web service hosted by one or more external web servers 66. […] Additionally, the controllers 22, 38 may be configured to receive and/or download selected data, settings, and/or services […] The data, settings and/or services may be received automatically from the web service […] and/or downloaded in response to a user request. Please note data being received automatically from the web service, hosted by a web server, corresponds to Applicant’s configured to notify the Web client of the occurrence of the event via Server-Sent Events when the event occurs, as events are known in the art to be communicable as data, and since they are received from a web service hosted by a web server, they are, by definition, Server-Sent Events.). Dinica-Heintzelman-Kojima does not explicitly disclose and wherein the robot controller further comprises event notification circuitry which is configured to start monitoring an occurrence of the event in the robot controller. However, Stump discloses wherein the robot controller further comprises event notification circuitry which is configured to start monitoring an occurrence of the event in the robot controller ([0170] As described above, the dashboard 200 is configured to display notifications to a user when in the design-time environment. […] For example, if an industrial automation process is running while a user is editing the corresponding project within the design-time environment, and alarms are generated, the alarms may appear as notifications 1250 within the dashboard 200. Please note that the dashboard displaying notifications to a user such as when an industrial automation process generates an alarm corresponds to Applicant’s event notification circuitry configured to start monitoring an occurrence of the event in the robot controller, since it allows the user to be notified of an event, i.e., an alarm, occurring in the industrial automation process, i.e., robot controller.) Dinica-Heintzelman-Kojima and Stump are both considered to be analogous to the claimed invention because they are in the same field of managing automated systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman-Kojima to incorporate the teachings of Stump to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests to monitor the occurrence of an event in the robot controller in response to activation of the Single Page Activation and notify the web client, allowing for improved management of the robot system and allowing for better error resolution, as described in Stump. Claims 9, 10, and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Dinica et al. (US 20210347062 A1) in view of Heintzelman et al. (US 20200282564 A1) ), and further in view of Kojima et al. (US 20180194009 A1) as applied to Claims 1, 9, and 13 above, and further in view of Sem et al. (US 11138033 B1), hereinafter referred to as Dinica, Heintzelman, Kojima, and Sem, respectively. Regarding Claim 9, Dinica-Heintzelman-Kojima as described in Claim 1 does not explicitly disclose when the Web API receives a batch request including a plurality of requests, the processing circuitry executes a batch process including a plurality of processes respectively corresponding to the plurality of requests, and wherein the response generation circuitry generates responses to the plurality of requests, respectively. However, Sem discloses when the Web API receives a batch request including a plurality of requests (Col. 7, Lines 16-18-For example, a user can use a web-based GUI, CLI, or any other type of interface to generate the bulk task API request 126. Please note that generating a bulk task API request 126 corresponds to the Web API receiving a batch request including a plurality of requests.), the processing circuitry executes a batch process including a plurality of processes respectively corresponding to the plurality of requests (Col. 2, Lines 43-47- In response to receiving new compute job API requests, the batch processing service sends a response acknowledging receipt of the requests, and uses backend processes to plan, schedule, and execute the requested compute jobs. ; Col. 5, Lines 15-16- using a bulk task API request to submit any number of compute jobs to a batch processing service 102. Please note that a batch processing service executing a bulk task API request consisting of any number of compute jobs corresponds to Applicant’s processing circuitry executing a batch process including a plurality of processes respectively corresponding to the plurality of requests.), and wherein the response generation circuitry generates responses to the plurality of requests, respectively (Col. 9, Lines 64-65-the batch processing service 102 sends a bulk task status API response 500B back to the requesting computing device 130. Please note that the batch processing service 102 sending a bulk task status API response 500B back to the requesting computing device 130 corresponds to Applicant’s response generation circuitry generating responses to the plurality of requests, respectively.). Dinica-Heintzelman-Kojima and Sem are both considered to be analogous to the claimed invention because they are in the same field of utilizing computer APIs for communication. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman-Kojima to incorporate the teachings of Sem to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests to allow for receiving and processing batch requests, allowing for improved efficiency of the API system by carrying out multiple tasks using one request, as described in Sem. Regarding Claim 10, Dinica-Heintzelman-Kojima-Sem as described in Claim 9, Sem further discloses in the batch processing, the processing circuitry is configured to execute a first process corresponding to a first request included in the plurality of requests, and is configured to execute a second process corresponding to a second request included in the plurality of requests using a result of the first process as an argument (Col. 6, Lines 24-27- users can also specify various dependencies between computing tasks described in the bulk task data 120, for example, such that the output of an executed computing task serves as input for one or more other computing tasks. Please note that the output of an executed computing task serving as input for another computing task in the bulk task data corresponds to Applicant’s first and second processes from the plurality of requests in batch processing executing in such a way that the result of the first process is an argument for the second, as the output of the first process is used as input, i.e., an argument, for the second.). Regarding Claim 15, Dinica-Heintzelman-Kojima as described in Claim 13 does not explicitly disclose based on the input to the execution screen, a batch request including a plurality of requests is generated, and wherein, when the Web API receives the batch request, the processing circuitry is configured to execute a batch process including a plurality of processes corresponding to the plurality of requests, and wherein the response generation circuitry is configured to generate a response to the batch process. However, Sem discloses based on the input to the execution screen, a batch request including a plurality of requests is generated (Col. 7, Lines 16-18-For example, a user can use a web-based GUI, CLI, or any other type of interface to generate the bulk task API request 126. Please note that generating a bulk task API request 126 from a user utilizing a GUI corresponds to the generating a batch request including a plurality of requests based on the input to the execution screen.), and wherein, when the Web API receives the batch request, the processing circuitry is configured to execute a batch process including a plurality of processes corresponding to the plurality of requests (Col. 2, Lines 43-47- In response to receiving new compute job API requests, the batch processing service sends a response acknowledging receipt of the requests, and uses backend processes to plan, schedule, and execute the requested compute jobs. ; Col. 5, Lines 15-16- using a bulk task API request to submit any number of compute jobs to a batch processing service 102. Please note that a batch processing service executing a bulk task API request consisting of any number of compute jobs corresponds to Applicant’s processing circuitry executing a batch process including a plurality of processes corresponding to the plurality of requests when the Web API receives the batch request.), and wherein the response generation circuitry is configured to generate a response to the batch process (Col. 9, Lines 64-65-the batch processing service 102 sends a bulk task status API response 500B back to the requesting computing device 130. Please note that the batch processing service 102 sending a bulk task status API response 500B back to the requesting computing device 130 corresponds to Applicant’s response generation circuitry generating a response to the batch process.). Dinica-Heintzelman-Kojima and Sem are both considered to be analogous to the claimed invention because they are in the same field of utilizing computer APIs for communication. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Dinica-Heintzelman-Kojima to incorporate the teachings of Sem to modify the system utilizing a Web API for robot control incorporating a Single Page Application responding to requests to allow for receiving and processing batch requests, allowing for improved efficiency of the API system by carrying out multiple tasks using one request, as described in Sem. Response to Arguments Applicant's arguments filed 03/29/2026 have been fully considered but they are not persuasive. Applicant’s arguments are summarized as follows: Claims 17 and 18, previously rejected under 35 U.S.C. 112 (f), have been incorporated into Claims 1, 12, and 16 and amended to recite a circuit, in order to overcome the interpretation under 35 U.S.C. 112 (f). Therefore, their interpretation under 35 U.S.C. 112 (f) should be withdrawn, as well as the associated rejections under 35 U.S.C. 112(a) and 35 U.S.C. 112(b). Regarding the rejections of independent Claims 1, 12, and 16 under 35 U.S.C. 103, the rejections should be withdrawn because: The Office Action does not establish a prima facie case of obviousness for the claims, and there is no evidentiary support that the features recited in the claims were known before the effective filing date. The amended independent claims recite a robot controller comprising a circuit configured to provide a web server, wherein the circuit is further configured to operate the robot, which is not taught by the cited references. Specifically, Dinica et al. does not disclose a robot controller that comprises a web server, but rather makes use of cloud computing platforms. Additionally, Heintzelman et al. discloses external web servers, not a robot controller that comprises a circuit configured to provide a web server and operate the robot. Lastly, Kojima et al. does not teach a web server; therefore, it does not teach a robot controller that comprises a circuit configured to provide a web server. The dependent claims are allowable, since the independent claims on which they depend are allowable, and they recite additional features not suggested by the applied references. Regarding A, Applicant’s arguments are moot, as Claims 17 and 18 have been cancelled. However, the limitations moved to amended Claims 1, 12, and 16 been corrected sufficiently to overcome the basis for interpretation under 35 U.S.C. 112 (f), as they no longer recite “a control unit” configured to “operate the robot based on the plurality of operation commands of the operation program stored in the program storage unit”; therefore, the interpretation under 35 U.S.C. 112 (f) and the associated rejections under 35 U.S.C. 112 (a) and 35 U.S.C. 112(b) are withdrawn. Regarding B, the examiner respectfully disagrees. The Applicant’s arguments are moot, as the rejections of the Claim now relies on a new grounds of rejection, Dinica-Heintzelman-Kojima, which discloses the limitations stated by the Applicant via the combination of references, as stated above. Regarding argument i, in response to applicant's argument that the examiner's conclusion of obviousness is based upon improper hindsight reasoning, it must be recognized that any judgment on obviousness is in a sense necessarily a reconstruction based upon hindsight reasoning. But so long as it takes into account only knowledge which was within the level of ordinary skill at the time the claimed invention was made, and does not include knowledge gleaned only from the applicant's disclosure, such a reconstruction is proper. See In re McLaughlin, 443 F.2d 1392, 170 USPQ 209 (CCPA 1971). Regarding argument ii, the system of Dinica et al. and Heintzelman et al. recites all of the recited features. As previously stated, Dinica et al. teaches an embodiment in which the robot 12 and orchestrator 14 execute in a client-server configuration, operating in a single on-premises computer owned by the organization using the RPA software, corresponding to a robot controller comprising a circuit, as the same system is ultimately controlling a robot but is also operating the web server on the on-premises hardware. Additionally, as stated above, Heintzelman et al. teaches response generation circuitry in [0056], as it retrieves up-to-date data and then responds with it to the user request to go to the Single Page Application, corresponding to response generation circuitry. Lastly, the new reference, Kojima et al., teaches in [0083] the circuit being further configured to operate the robot based on the plurality of operation commands of the operation program, i.e., the robot control device 30 processing operation programs to control the robot corresponding to Applicant’s circuit being configured to operate the robot based on the operation commands of the operation program. Since all the recited features can be found in the combination of references, the combined references teach the limitations of the claim. Therefore, the recited features can be found in the cited combination of references, and independent claims 1, 12, and 16 remain rejected under 35 U.S.C. 103 for the reasons stated above, and the combinations cited would have been obvious to a person of ordinary skill in the art prior to the effective filing date of the application. The rejections under 35 U.S.C. 103 are maintained. Regarding C, the examiner respectfully disagrees. Because the dependent claims depend on unpatentable independent claims and do not add limitations that overcome the rejection, they likewise remain rejected, and the application is not in condition for allowance. The rejections under 35 U.S.C. 103 are maintained. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Kuriyama (US 20170149725 A1) discloses a robot PF cloud control unit that controls the entire robot PF 200, comprising both the robot PF cloud 201 that operates as a server and the robot PF device 202 (see [0029]). Any inquiry concerning this communication or earlier communications from the examiner should be directed to FARAZ T AKBARI whose telephone number is (571)272-4166. The examiner can normally be reached Monday-Thursday 9:30am-7:30pm ET. 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, April Blair can be reached at (571)270-1014. 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. /FARAZ T AKBARI/Examiner, Art Unit 2196 /APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196
Read full office action

Prosecution Timeline

Show 1 earlier event
Aug 12, 2025
Non-Final Rejection mailed — §103, §112
Nov 03, 2025
Response Filed
Jan 12, 2026
Final Rejection mailed — §103, §112
Mar 18, 2026
Examiner Interview Summary
Mar 29, 2026
Request for Continued Examination
Apr 02, 2026
Response after Non-Final Action
Apr 16, 2026
Non-Final Rejection mailed — §103, §112
Jun 10, 2026
Examiner Interview Summary

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
0%
Grant Probability
0%
With Interview (+0.0%)
3y 5m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 4 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month