DETAILED ACTION
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 .
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-2, 4-6, 8, 10-12, and 14-20 are rejected under 35 U.S.C. 103 as being unpatentable over Aichele (US 9671777 B1) in view of Hazan (US 20210016442 A1) in further view of Shirahori (US 20190255705 A1)
Regarding claim 1, Aichele teaches A computer-implemented method for controlling a robot, the method comprising: (Col 2 Lines 65-67 The present disclosure is related to systems and methods for training a simulated robot to execute tasks in a physics-based simulated environment.)
performing, a plurality of simulations of the robot performing at least one operation, wherein each simulation included in the plurality of simulations is associated with a value of a parameter that is different than values of the parameter associated with each other simulation included in the plurality of simulations; and (Fig. 5 520 and 526 Col 12 Lines 12-19 At block 520, a test design, i.e. a specification of a test case, may be determined based on the task pattern. To determine an optimized mode of the task pattern in the current test, multiple versions of the same task pattern may be generated with small variations at block 526. The variability of the versions can be based on the set-up of a range of speed, friction, ways of reaching a parameter, and so forth.)
subsequent to performing the plurality of simulations:
providing a first display of one or more results of one or more simulations included in the plurality of simulations to a user, (Fig. 5 532 Fig. 6 670 Col 12 Lines 28-43 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution The results of execution can be categorized based on physics and behavior simulation. The results of execution can be obtained as stimuli from the simulated environment, which may be set by the test parameters and changed by the interaction with the robot. The stimuli can include contact signals (e.g., glass achieved the final position), events signals (e.g., glass gets full with water), occurrence of an unexpected event (glass slips or falls down because of a gripper; glass is broken because of structure parameters in case of high force). Col 13 Lines 40-46 Graphics display system 670 may include a liquid crystal display or other suitable display device. Graphics display system 670 may receive textual and graphical information and processes the information for output to the display device. Peripheral devices 680 may include any type of computer support device to add additional functionality to the computer system)
receiving, from the user, a selection of a first simulation included in the one or more simulations, and (Col 12 Lines 44-55 After the analysis, the optimized robot task program may be selected at block 534. A decision block 536 may include determining whether optimization of a program code associated with the optimized control program is necessary. If no optimization is needed, data associated with the current test and task type may be archived in a database (the local database 510 or the global database 512) at block 542. Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520)
generating computer code for controlling the robot based on the first simulation. (Col 12 Line 51-55 Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520.)
Aichele does not expressly disclose but Hazan discloses based on at least the first maximum speed, [0028] The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds).)
receiving a robot definition specifying at least a geometry of the robot and a first maximum speed the robot is capable of achieving for one or more axes of the robot ([0016] Various motion parameters are discussed herein, and example motion parameters that may be included within robotic path data include robot configuration data (e.g., pose data), robot location data (e.g., the specific robot part to reach a target location), target zone data, robot speed data, robot motion type data, and more. [0028] The robot configuration data may specify any relevant configuration data for the robot, such as a particular robotic pose for the robot upon reaching the target location, e.g., as specified through an array of values for various axes of movement of the robot. In some examples, the robot configuration data defines a requirement, hint, suggestion, or other control parameter specific to the robot reaching a target location. The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds). As a robot may be capable of movement along multiple degrees of freedom, the motion type data may specify a particular type of motion for the robot to move to a target location (e.g., direct line motion, circular motion, etc.).)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Hazan with a reasonable expectation of success by using a computer-aided manufacturing system to access robotic path data for a robot that includes target locations and corresponding motion parameters for the robot as taught by Hazan (Abstract).
Aichele does not expressly disclose but Shirahori discloses via a graphical user interface (GUI) ([0050] The motion program editing unit 101 accepts a desired operation of a simulated robot from the user, and accepts editing of an operation. The user can input or edit a motion program using the input unit 15 while looking at the monitor 16.), wherein the first display of the one or more results indicates a relation of one or more speeds that occurred during the one or more simulations with the first maximum speed ([0053] The motion parameter defines the maximum speed and the maximum acceleration rate in an operation that is based on the instructions, for example, as shown in FIG. 5..)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Shirahori with a reasonable expectation of success by executing a simulation that gives consideration to dropping a workpiece as taught by Shirahori ([0008]).
Regarding claim 2, Aichele teaches The method of claim 1, wherein performing at least one simulation included in the plurality of simulations comprises resolving a robotic problem encountered during the at least one simulation. (Col 6 Lines 11-24 In an example embodiment, the physically plausible virtual runtime environment 105 may include a GPU 165. A GPU-based collision detection mechanism may be implemented by a collision detector 155 and a physics solver 160. In an example embodiment, the GPU-based collision detection mechanism may be used during the analysis of the test results of the execution. The collision detector 155 may be used to compute contacts between at least two 3D geometries in real time. The detection of contacts between two 3D geometries can include detection of collisions between objects with complex 3D geometries in real-time. The physics solver 160 may be operable to determine contact forces and impulses, analyze kinematics and material behavior (e.g., deformation), and so forth Col 10 Lines 10-29 FIG. 3 is a block diagram 300 showing a collision detection process, according to an example embodiment. A central processing unit (CPU) 305 may perform collision estimation at step 325. The step 325 may be performed for a plurality of collision pairs 345. A collision pair may include two 3D objects that collide during the execution of the test. At step 330, the GPU 310 may perform collision detection. The collision detection may be run in parallel queues on a plurality of cores associated with the GPU 310. More specifically, the collision detection may be divided into a plurality of jobs 375. Each job 375 may be associated with collision pairs (shown as collision pairs 350, 355, and 360) and may be directed to a separate core. The cores may further direct data associated with the collision pairs 350, 355, and 360 to the CPU 305 for performing the step 335 of solving physics problems associated with collisions (contact forces, impulses, kinematics, and so forth) using Newtonian physics principles 365. The CPU 305 may provide the processed data to the GPU 310 for visualizing results 370 at step 340)
Regarding claim 4, Aichele teaches The method of claim 2, wherein the robotic problem relates to at least one of an axis limit of the robot being exceeded, a singularity being created, or a collision. (Col 6 Lines 11-24 In an example embodiment, the physically plausible virtual runtime environment 105 may include a GPU 165. A GPU-based collision detection mechanism may be implemented by a collision detector 155 and a physics solver 160. In an example embodiment, the GPU-based collision detection mechanism may be used during the analysis of the test results of the execution. The collision detector 155 may be used to compute contacts between at least two 3D geometries in real time. The detection of contacts between two 3D geometries can include detection of collisions between objects with complex 3D geometries in real-time. The physics solver 160 may be operable to determine contact forces and impulses, analyze kinematics and material behavior (e.g., deformation), and so forth Col 10 Lines 10-29 FIG. 3 is a block diagram 300 showing a collision detection process, according to an example embodiment. A central processing unit (CPU) 305 may perform collision estimation at step 325. The step 325 may be performed for a plurality of collision pairs 345. A collision pair may include two 3D objects that collide during the execution of the test. At step 330, the GPU 310 may perform collision detection. The collision detection may be run in parallel queues on a plurality of cores associated with the GPU 310. More specifically, the collision detection may be divided into a plurality of jobs 375. Each job 375 may be associated with collision pairs (shown as collision pairs 350, 355, and 360) and may be directed to a separate core. The cores may further direct data associated with the collision pairs 350, 355, and 360 to the CPU 305 for performing the step 335 of solving physics problems associated with collisions (contact forces, impulses, kinematics, and so forth) using Newtonian physics principles 365. The CPU 305 may provide the processed data to the GPU 310 for visualizing results 370 at step 340)
Regarding claim 5, Aichele teaches The method of claim 1, wherein providing the first display of the one or more results of the one or more simulations to the user comprises applying a filter to the one or more results and displaying a subset of the one or more results to the user. (Col 8 Line 66-67 Additionally, the task data may include user-defined result criteria. Col 12 Lines 32-35 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution.)
Regarding claim 6, Aichele teaches The method of claim 5, further comprising receiving a user selection of the filter that is applied to the one or more results. (Col 12 Lines 32-35 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution.)
Regarding claim 8, Aichele does not expressly disclose but Hazan discloses The method of claim 1, further comprising, during each simulation included in the plurality of simulations:
computing a speed of at least one axis of the one or more axes of the robot; and
determining whether the speed of the at least one axis of the robot exceeds first maximum speed the robot is capable of achieving for the at least one axis of the robot. ([0016] Various motion parameters are discussed herein, and example motion parameters that may be included within robotic path data include robot configuration data (e.g., pose data), robot location data (e.g., the specific robot part to reach a target location), target zone data, robot speed data, robot motion type data, and more. [0028] The robot configuration data may specify any relevant configuration data for the robot, such as a particular robotic pose for the robot upon reaching the target location, e.g., as specified through an array of values for various axes of movement of the robot. In some examples, the robot configuration data defines a requirement, hint, suggestion, or other control parameter specific to the robot reaching a target location. The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds). As a robot may be capable of movement along multiple degrees of freedom, the motion type data may specify a particular type of motion for the robot to move to a target location (e.g., direct line motion, circular motion, etc.).)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Hazan with a reasonable expectation of success by using a computer-aided manufacturing system to access robotic path data for a robot that includes target locations and corresponding motion parameters for the robot as taught by Hazan (Abstract).
Regarding claim 10, Aichele teaches The method of claim 1, further comprising transmitting the computer code to at least one of the robot or a controller of the robot. (Col 12 Line 51-55 Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520.)
Regarding claim 11, Aichele teaches One or more non-transitory computer-readable storage media including instructions that, when executed by at least one processor, cause the at least one processor to performing steps for controlling a robot, the steps comprising: (Col 2 Lines 65-67 The present disclosure is related to systems and methods for training a simulated robot to execute tasks in a physics-based simulated environment Col 4 Lines 33-47 The techniques of the embodiments disclosed herein may be implemented using a variety of technologies. For example, the methods described herein may be implemented in software executing on a computer system or in hardware utilizing either a combination of microprocessors or other specially designed application-specific integrated circuits, programmable logic devices, or various combinations thereof. In particular, the methods described herein may be implemented by a series of computer-executable instructions residing on a storage medium, such as a disk drive or computer-readable medium. It should be noted that methods disclosed herein can be implemented by a computer (e.g., a desktop computer, tablet computer, laptop computer), game console, handheld gaming device, cellular phone, smart phone, smart television system, and so forth)
performing, a plurality of simulations of the robot performing at least one operation, wherein each simulation included in the plurality of simulations is associated with a value of a parameter that is different than values of the parameter associated with each other simulation included in the plurality of simulations; and (Fig. 5 520 and 526 Col 12 Lines 12-19 At block 520, a test design, i.e. a specification of a test case, may be determined based on the task pattern. To determine an optimized mode of the task pattern in the current test, multiple versions of the same task pattern may be generated with small variations at block 526. The variability of the versions can be based on the set-up of a range of speed, friction, ways of reaching a parameter, and so forth.)
subsequent to performing the plurality of simulations:
providing a first display of one or more results of one or more simulations included in the plurality of simulations to a user, (Fig. 5 532 Fig. 6 670 Col 12 Lines 28-43 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution The results of execution can be categorized based on physics and behavior simulation. The results of execution can be obtained as stimuli from the simulated environment, which may be set by the test parameters and changed by the interaction with the robot. The stimuli can include contact signals (e.g., glass achieved the final position), events signals (e.g., glass gets full with water), occurrence of an unexpected event (glass slips or falls down because of a gripper; glass is broken because of structure parameters in case of high force). Col 13 Lines 40-46 Graphics display system 670 may include a liquid crystal display or other suitable display device. Graphics display system 670 may receive textual and graphical information and processes the information for output to the display device. Peripheral devices 680 may include any type of computer support device to add additional functionality to the computer system)
receiving, from the user, a selection of a first simulation included in the one or more simulations, and (Col 12 Lines 44-55 After the analysis, the optimized robot task program may be selected at block 534. A decision block 536 may include determining whether optimization of a program code associated with the optimized control program is necessary. If no optimization is needed, data associated with the current test and task type may be archived in a database (the local database 510 or the global database 512) at block 542. Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520)
generating computer code for controlling the robot based on the first simulation. (Col 12 Line 51-55 Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520.)
Aichele does not expressly disclose but Hazan discloses based on at least the first maximum speed ([0028] The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds).)
receiving a robot definition specifying at least a geometry of the robot and a first maximum speed the robot is capable of achieving for one or more axes of the robot ([0016] Various motion parameters are discussed herein, and example motion parameters that may be included within robotic path data include robot configuration data (e.g., pose data), robot location data (e.g., the specific robot part to reach a target location), target zone data, robot speed data, robot motion type data, and more. [0028] The robot configuration data may specify any relevant configuration data for the robot, such as a particular robotic pose for the robot upon reaching the target location, e.g., as specified through an array of values for various axes of movement of the robot. In some examples, the robot configuration data defines a requirement, hint, suggestion, or other control parameter specific to the robot reaching a target location. The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds). As a robot may be capable of movement along multiple degrees of freedom, the motion type data may specify a particular type of motion for the robot to move to a target location (e.g., direct line motion, circular motion, etc.).)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Hazan with a reasonable expectation of success by using a computer-aided manufacturing system to access robotic path data for a robot that includes target locations and corresponding motion parameters for the robot as taught by Hazan (Abstract).
Aichele does not expressly disclose but Shirahori discloses via a graphical user interface (GUI) ([0050] The motion program editing unit 101 accepts a desired operation of a simulated robot from the user, and accepts editing of an operation. The user can input or edit a motion program using the input unit 15 while looking at the monitor 16.), wherein the first display of the one or more results indicates a relation of one or more speeds that occurred during the one or more simulations with the first maximum speed ([0053] The motion parameter defines the maximum speed and the maximum acceleration rate in an operation that is based on the instructions, for example, as shown in FIG. 5..)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Shirahori with a reasonable expectation of success by executing a simulation that gives consideration to dropping a workpiece as taught by Shirahori ([0008]).
Regarding claim 12, Aichele teaches The one or more non-transitory computer-readable storage media of claim 11, wherein performing at least one simulation included in the plurality of simulations comprises resolving a robotic problem encountered during the at least one simulation. (Col 6 Lines 11-24 In an example embodiment, the physically plausible virtual runtime environment 105 may include a GPU 165. A GPU-based collision detection mechanism may be implemented by a collision detector 155 and a physics solver 160. In an example embodiment, the GPU-based collision detection mechanism may be used during the analysis of the test results of the execution. The collision detector 155 may be used to compute contacts between at least two 3D geometries in real time. The detection of contacts between two 3D geometries can include detection of collisions between objects with complex 3D geometries in real-time. The physics solver 160 may be operable to determine contact forces and impulses, analyze kinematics and material behavior (e.g., deformation), and so forth Col 10 Lines 10-29 FIG. 3 is a block diagram 300 showing a collision detection process, according to an example embodiment. A central processing unit (CPU) 305 may perform collision estimation at step 325. The step 325 may be performed for a plurality of collision pairs 345. A collision pair may include two 3D objects that collide during the execution of the test. At step 330, the GPU 310 may perform collision detection. The collision detection may be run in parallel queues on a plurality of cores associated with the GPU 310. More specifically, the collision detection may be divided into a plurality of jobs 375. Each job 375 may be associated with collision pairs (shown as collision pairs 350, 355, and 360) and may be directed to a separate core. The cores may further direct data associated with the collision pairs 350, 355, and 360 to the CPU 305 for performing the step 335 of solving physics problems associated with collisions (contact forces, impulses, kinematics, and so forth) using Newtonian physics principles 365. The CPU 305 may provide the processed data to the GPU 310 for visualizing results 370 at step 340)
Regarding claim 14, Aichele teaches The one or more non-transitory computer-readable storage media of claim 12, wherein the robotic problem relates to at least one of an axis limit of the robot being exceeded, a singularity being created, or a collision. (Col 6 Lines 11-24 In an example embodiment, the physically plausible virtual runtime environment 105 may include a GPU 165. A GPU-based collision detection mechanism may be implemented by a collision detector 155 and a physics solver 160. In an example embodiment, the GPU-based collision detection mechanism may be used during the analysis of the test results of the execution. The collision detector 155 may be used to compute contacts between at least two 3D geometries in real time. The detection of contacts between two 3D geometries can include detection of collisions between objects with complex 3D geometries in real-time. The physics solver 160 may be operable to determine contact forces and impulses, analyze kinematics and material behavior (e.g., deformation), and so forth Col 10 Lines 10-29 FIG. 3 is a block diagram 300 showing a collision detection process, according to an example embodiment. A central processing unit (CPU) 305 may perform collision estimation at step 325. The step 325 may be performed for a plurality of collision pairs 345. A collision pair may include two 3D objects that collide during the execution of the test. At step 330, the GPU 310 may perform collision detection. The collision detection may be run in parallel queues on a plurality of cores associated with the GPU 310. More specifically, the collision detection may be divided into a plurality of jobs 375. Each job 375 may be associated with collision pairs (shown as collision pairs 350, 355, and 360) and may be directed to a separate core. The cores may further direct data associated with the collision pairs 350, 355, and 360 to the CPU 305 for performing the step 335 of solving physics problems associated with collisions (contact forces, impulses, kinematics, and so forth) using Newtonian physics principles 365. The CPU 305 may provide the processed data to the GPU 310 for visualizing results 370 at step 340)
Regarding claim 15, Aichele teaches The one or more non-transitory computer-readable storage media of claim 12, wherein providing the first display of the one or more results of the one or more simulations to the user comprises displaying the one or more results via the graphical user interface (GUI) that permits the user to select the first simulation included in the one or more simulations. (Fig. 5 532 Fig. 6 670 Col 12 Lines 28-43 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution The results of execution can be categorized based on physics and behavior simulation. The results of execution can be obtained as stimuli from the simulated environment, which may be set by the test parameters and changed by the interaction with the robot. The stimuli can include contact signals (e.g., glass achieved the final position), events signals (e.g., glass gets full with water), occurrence of an unexpected event (glass slips or falls down because of a gripper; glass is broken because of structure parameters in case of high force). Col 13 Lines 40-46 Graphics display system 670 may include a liquid crystal display or other suitable display device. Graphics display system 670 may receive textual and graphical information and processes the information for output to the display device. Peripheral devices 680 may include any type of computer support device to add additional functionality to the computer system Col 12 Lines 44-55 After the analysis, the optimized robot task program may be selected at block 534. A decision block 536 may include determining whether optimization of a program code associated with the optimized control program is necessary. If no optimization is needed, data associated with the current test and task type may be archived in a database (the local database 510 or the global database 512) at block 542. Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520)
Regarding claim 16, Aichele does not expressly disclose but Hazan discloses The one or more non-transitory computer-readable storage media of claim 12, wherein the instructions, when executed by at the least one processor, further cause the at least one processor to performing steps comprising:
computing a speed of at least one axis of the one or more axes of the robot; and
determining whether the speed of the at least one axis of the robot exceeds the first maximum speed the robot is capable of achieving the at least one axis of the robot. ([0016] Various motion parameters are discussed herein, and example motion parameters that may be included within robotic path data include robot configuration data (e.g., pose data), robot location data (e.g., the specific robot part to reach a target location), target zone data, robot speed data, robot motion type data, and more. [0028] The robot configuration data may specify any relevant configuration data for the robot, such as a particular robotic pose for the robot upon reaching the target location, e.g., as specified through an array of values for various axes of movement of the robot. In some examples, the robot configuration data defines a requirement, hint, suggestion, or other control parameter specific to the robot reaching a target location. The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds). As a robot may be capable of movement along multiple degrees of freedom, the motion type data may specify a particular type of motion for the robot to move to a target location (e.g., direct line motion, circular motion, etc.).)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Hazan with a reasonable expectation of success by using a computer-aided manufacturing system to access robotic path data for a robot that includes target locations and corresponding motion parameters for the robot as taught by Hazan (Abstract).
Regarding claim 17, Aichele teaches The one or more non-transitory computer-readable storage media of claim 11, wherein the at least one operation comprises at least one of a milling operation, a painting operation, a gluing operation, a finishing operation, or another simulated robotic process. (Col 6 Line 67 – Col 7 Line 1-4 Based on a type of the task and the purpose of the task, a plurality of environment objects (also referred to as “objects”) associated with the test may be recognized (i.e., physical objects, such as a glass to be gripped by the simulated robot according to the test))
Regarding claim 18, Aichele teaches The one or more non-transitory computer-readable storage media of claim 11, wherein providing the first display of the one or more results of the one or more of the plurality of simulations comprises displaying whether each simulation included in the one or more of the plurality of simulations is associated with any unresolved robotic problems. (Fig. 5 532 Fig. 6 670 Col 6 Lines 11-24 In an example embodiment, the physically plausible virtual runtime environment 105 may include a GPU 165. A GPU-based collision detection mechanism may be implemented by a collision detector 155 and a physics solver 160. In an example embodiment, the GPU-based collision detection mechanism may be used during the analysis of the test results of the execution. The collision detector 155 may be used to compute contacts between at least two 3D geometries in real time. The detection of contacts between two 3D geometries can include detection of collisions between objects with complex 3D geometries in real-time. The physics solver 160 may be operable to determine contact forces and impulses, analyze kinematics and material behavior (e.g., deformation), and so forth Col 10 Lines 10-29 FIG. 3 is a block diagram 300 showing a collision detection process, according to an example embodiment. A central processing unit (CPU) 305 may perform collision estimation at step 325. The step 325 may be performed for a plurality of collision pairs 345. A collision pair may include two 3D objects that collide during the execution of the test. At step 330, the GPU 310 may perform collision detection. The collision detection may be run in parallel queues on a plurality of cores associated with the GPU 310. More specifically, the collision detection may be divided into a plurality of jobs 375. Each job 375 may be associated with collision pairs (shown as collision pairs 350, 355, and 360) and may be directed to a separate core. The cores may further direct data associated with the collision pairs 350, 355, and 360 to the CPU 305 for performing the step 335 of solving physics problems associated with collisions (contact forces, impulses, kinematics, and so forth) using Newtonian physics principles 365. The CPU 305 may provide the processed data to the GPU 310 for visualizing results 370 at step 340 Col 12 Lines 28-43 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution The results of execution can be categorized based on physics and behavior simulation. The results of execution can be obtained as stimuli from the simulated environment, which may be set by the test parameters and changed by the interaction with the robot. The stimuli can include contact signals (e.g., glass achieved the final position), events signals (e.g., glass gets full with water), occurrence of an unexpected event (glass slips or falls down because of a gripper; glass is broken because of structure parameters in case of high force). Col 13 Lines 40-46 Graphics display system 670 may include a liquid crystal display or other suitable display device. Graphics display system 670 may receive textual and graphical information and processes the information for output to the display device. Peripheral devices 680 may include any type of computer support device to add additional functionality to the computer system)
Regarding claim 19, Aichele teaches A system comprising: (Col 2 Lines 65-67 The present disclosure is related to systems and methods for training a simulated robot to execute tasks in a physics-based simulated environment.)
one or more memories storing instructions; and (Fig. 6 620)
one or more processors that are coupled to the one or more memories and execute the instructions (Col 4 Lines 33-47 The techniques of the embodiments disclosed herein may be implemented using a variety of technologies. For example, the methods described herein may be implemented in software executing on a computer system or in hardware utilizing either a combination of microprocessors or other specially designed application-specific integrated circuits, programmable logic devices, or various combinations thereof. In particular, the methods described herein may be implemented by a series of computer-executable instructions residing on a storage medium, such as a disk drive or computer-readable medium. It should be noted that methods disclosed herein can be implemented by a computer (e.g., a desktop computer, tablet computer, laptop computer), game console, handheld gaming device, cellular phone, smart phone, smart television system, and so forth)
performing, a plurality of simulations of a robot performing at least one operation, wherein each simulation included in the plurality of simulations is associated with a value of a parameter that is different than values of the parameter associated with each other simulation included in the plurality of simulations, and (Fig. 5 520 and 526 Col 12 Lines 12-19 At block 520, a test design, i.e. a specification of a test case, may be determined based on the task pattern. To determine an optimized mode of the task pattern in the current test, multiple versions of the same task pattern may be generated with small variations at block 526. The variability of the versions can be based on the set-up of a range of speed, friction, ways of reaching a parameter, and so forth.)
subsequent to performing the plurality of simulations:
provide a first display of one or more results of one or more simulations included in the plurality of simulations to a user; (Fig. 5 532 Fig. 6 670 Col 12 Lines 28-43 The analysis and validation of the results of execution may be performed at block 532. The parameters of the analysis and validation may include a success of the results of execution, performance, fastest result, sub-task success, and so forth. The user may define criteria for results of execution of tests with reference to events/actions for handling the results of execution The results of execution can be categorized based on physics and behavior simulation. The results of execution can be obtained as stimuli from the simulated environment, which may be set by the test parameters and changed by the interaction with the robot. The stimuli can include contact signals (e.g., glass achieved the final position), events signals (e.g., glass gets full with water), occurrence of an unexpected event (glass slips or falls down because of a gripper; glass is broken because of structure parameters in case of high force). Col 13 Lines 40-46 Graphics display system 670 may include a liquid crystal display or other suitable display device. Graphics display system 670 may receive textual and graphical information and processes the information for output to the display device. Peripheral devices 680 may include any type of computer support device to add additional functionality to the computer system)
receive, from the user, a selection of a first simulation included in the one or more simulations; and (Col 12 Lines 44-55 After the analysis, the optimized robot task program may be selected at block 534. A decision block 536 may include determining whether optimization of a program code associated with the optimized control program is necessary. If no optimization is needed, data associated with the current test and task type may be archived in a database (the local database 510 or the global database 512) at block 542. Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520)
generate computer code for controlling the robot based on the first simulation. (Col 12 Line 51-55 Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520.)
Aichele does not expressly disclose but Hazan discloses based on at least the first maximum speed ([0028] The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds).)
receive a robot definition specifying at least a geometry of the robot and a first maximum speed the robot is capable of achieving for one or more axes of the robot ([0016] Various motion parameters are discussed herein, and example motion parameters that may be included within robotic path data include robot configuration data (e.g., pose data), robot location data (e.g., the specific robot part to reach a target location), target zone data, robot speed data, robot motion type data, and more. [0028] The robot configuration data may specify any relevant configuration data for the robot, such as a particular robotic pose for the robot upon reaching the target location, e.g., as specified through an array of values for various axes of movement of the robot. In some examples, the robot configuration data defines a requirement, hint, suggestion, or other control parameter specific to the robot reaching a target location. The robot speed data may specify movement speed parameters to reach a target location, whether in absolute terms or relative to a capability of the robot (e.g., maximum or minimum robotic movement speeds). As a robot may be capable of movement along multiple degrees of freedom, the motion type data may specify a particular type of motion for the robot to move to a target location (e.g., direct line motion, circular motion, etc.).)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Hazan with a reasonable expectation of success by using a computer-aided manufacturing system to access robotic path data for a robot that includes target locations and corresponding motion parameters for the robot as taught by Hazan (Abstract).
Aichele does not expressly disclose but Shirahori discloses via a graphical user interface (GUI) ([0050] The motion program editing unit 101 accepts a desired operation of a simulated robot from the user, and accepts editing of an operation. The user can input or edit a motion program using the input unit 15 while looking at the monitor 16.), wherein the first display of the one or more results indicates a relation of one or more speeds that occurred during the one or more simulations with the first maximum speed ([0053] The motion parameter defines the maximum speed and the maximum acceleration rate in an operation that is based on the instructions, for example, as shown in FIG. 5..)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Shirahori with a reasonable expectation of success by executing a simulation that gives consideration to dropping a workpiece as taught by Shirahori ([0008]).
Regarding claim 20, Aichele teaches The system of claim 19, wherein the robot is controlled based on the computer code. (Col 12 Line 51-55 Furthermore, the robot control program may be executed on a physical robot at block 540. If optimization is needed, the program code associated with the optimized robot control program may be optimized at block 538 by sending corresponding instructions and data to block 520.)
Claims 3, 7, 9, 13 are rejected under 35 U.S.C. 103 as being unpatentable over Aichele (US 9671777 B1) in view of Hazan (US 20210016442 A1) in further view of Shirahori (US 20190255705 A1) in further view of Kang (US 20210316459 A1)
Regarding claim 3, Aichele does not expressly disclose but Kang discloses The method of claim 2, wherein resolving the robotic problem comprises:
rotating a head of the robot in at least two directions about an axis; and (Fig. 10-12)
determining a smallest angle of rotation in either of the at least two directions that resolves the robotic problem. ([0073] FIG. 10 is a schematic diagram illustrating an implementation of a FK mode and a FK mode toggle included and shown within the robot control toolbar in accordance with the present invention. The robot control toolbar may further provide a variety of toggles for a user to configure all details for robotic motions in the robot motion simulator. For instance, The FK mode refers to compute the position and orientation of the tool frame relative to the base frame or the end effector based on the kinematic equations of a robot by a set of given joint parameters including angles and positions. A forward kinematic (FK) mode is enabled in the robot motion simulator, such that the robotic device reaches the target object by solving FK mathematical problem, whenever the FK mode toggle 451 within the robot control toolbar 447 is clicked [0074] FIG. 11 is a schematic diagram illustrating an implementation of a IK-linear mode and a IK-linear mode toggle included and shown within the robot control toolbar in accordance with the present invention. FIG. 12 is a schematic diagram illustrating an implementation of a IK-rotation mode and a IK-rotation mode toggle included and shown within the robot control toolbar in accordance with the present invention. In contrast to the FK mode, the IK mode refer to compute all possible sets of the joint parameters that could be used to attain this given position and orientation by a given position and orientation of the end effector. Either a linear inverse kinematic (IK) mode or a rotational IK mode is enabled in the robot motion simulator, such that the robotic device reaches the target object by solving IK mathematical problem, whenever either the IK-linear mode toggle 453 or the IK-rotation mode toggle 455 within the robot control toolbar 447 is clicked)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Kang with a reasonable expectation of success by the robotic device reaching the target object by solving FK mathematical problem as taught by Kang ([0073]).
Regarding claim 7, Aichele does not expressly disclose but Kang discloses The method of claim 1, wherein during the at least one operation, a head of the robot follows a toolpath that is specified by a list of points. ([0070] FIG. 9A and FIG. 9B are schematic diagrams illustrating example robot motion scheduling visualization interfaces provided by a robot motion planning module in accordance with the present invention. Once the work cell is configured and the component layout is imported and loaded, a robot motion planning module may then be activated and used in determining a sequence of robot motion including at least a sequence of joint angles and/or joint movements that cause a robotic device to follow a particular motion path)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Kang with a reasonable expectation of success by the robotic device following a particular motion path as taught by Kang ([0070]).
Regarding claim 9, Aichele does not expressly disclose but Kang discloses The method of claim 1, further comprising computing at least one of an acceleration or a jerk of one or more axes of the robot during each of the plurality of simulations. ([0083] The robot motion planning module enables a robot motion simulation mode by enabling a robot motion simulator that is a built-in physics engine enabling virtual robot objects to simulate or approximate universal forces existing in the real world, such as gravity, velocity, acceleration, friction, etc. Once the sequence of objects and all details for robotic motions in the robot motion simulator are determined, the robot motion planning module switches to and enters into the robot motion simulation mode to simulate the motions of the robotic device, by the given conditions)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Kang with a reasonable expectation of success by simulating or approximating universal forces existing in the real world as taught by Kang ([0083]).
Regarding claim 13, Aichele does not expressly disclose but Kang discloses The one or more non-transitory computer-readable storage media of claim 12, wherein resolving the robotic problem comprises:
rotating a head of the robot in at least two directions about an axis; and (Fig. 10-12)
determining a smallest angle of rotation in either of the at least two directions that resolves the robotic problem. ([0073] FIG. 10 is a schematic diagram illustrating an implementation of a FK mode and a FK mode toggle included and shown within the robot control toolbar in accordance with the present invention. The robot control toolbar may further provide a variety of toggles for a user to configure all details for robotic motions in the robot motion simulator. For instance, The FK mode refers to compute the position and orientation of the tool frame relative to the base frame or the end effector based on the kinematic equations of a robot by a set of given joint parameters including angles and positions. A forward kinematic (FK) mode is enabled in the robot motion simulator, such that the robotic device reaches the target object by solving FK mathematical problem, whenever the FK mode toggle 451 within the robot control toolbar 447 is clicked [0074] FIG. 11 is a schematic diagram illustrating an implementation of a IK-linear mode and a IK-linear mode toggle included and shown within the robot control toolbar in accordance with the present invention. FIG. 12 is a schematic diagram illustrating an implementation of a IK-rotation mode and a IK-rotation mode toggle included and shown within the robot control toolbar in accordance with the present invention. In contrast to the FK mode, the IK mode refer to compute all possible sets of the joint parameters that could be used to attain this given position and orientation by a given position and orientation of the end effector. Either a linear inverse kinematic (IK) mode or a rotational IK mode is enabled in the robot motion simulator, such that the robotic device reaches the target object by solving IK mathematical problem, whenever either the IK-linear mode toggle 453 or the IK-rotation mode toggle 455 within the robot control toolbar 447 is clicked)
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filling date of the claimed invention to modify Aichele with the teachings of Kang with a reasonable expectation of success by the robotic device reaching the target object by solving FK mathematical problem as taught by Kang ([0073]).
Allowable Subject Matter
Claim 21 allowed.
Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.
Response to Arguments
Applicants arguments filed 12/5/2025 have been fully considered as follows:
Applicant argues that the 35 USC 103 rejections to the claims should not be maintained in view of “nowhere does Desai disclose or otherwise suggest the idea of performing simulations of the robot, and displaying the results of these previous simulations, where the display indicates a relation between: (1) the speeds that already occurred in these previous simulations, and (2) the maximum velocity of the robot, as expressly required by the amended claim language. Desai is silent in these regards. In view of at least these distinctions, Applicant submits that Desai cannot be properly interpreted as teaching or suggesting the above limitations of amended claim 1.” However, in view of the amendment a new ground of rejection is above.
Applicant argues “neither reference nor the combination of the references discloses any kind of connection or logical nexus between the ideas of: (1) detecting and avoiding a robotic problem, and (2) an iterative modification process to iteratively modify a robot parameter in opposite directions to determine a smallest modification of the robot parameter, as claimed. Aichele discloses the general idea of overcoming robotic problems, and Kang discloses the general idea of mapping a path for a robot. However, neither reference, nor the combination of the references, discloses a connection between these two ideas, where, in response to detecting a robotic problem, an iterative process is performed to iteratively modify a parameter in opposite directions to find the smallest parameter modification that avoids the robotic problem, as recited in claim 21. Accordingly, Applicant submits that the combination of Aichele and Kang also cannot be properly interpreted as teaching or suggesting the above limitations of claim 21.” Therefore, the rejection is not maintained.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SARAH TRAN whose telephone number is (313)446-6642. The examiner can normally be reached 8am-5pm M-F.
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, Khoi Tran can be reached at (571) 272-6919. 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.
/S.A.T./Examiner, Art Unit 3656
/KHOI H TRAN/Supervisory Patent Examiner, Art Unit 3656