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 .
DETAILED ACTION
This Office action is in response to the amendment filed on 01/15/2026. Claims 1-20 are currently pending with claims 1-7, 9-17, and 19-20 being amended.
Response to Amendment
The amendments to the claims submitted on 01/15/2026 overcome the claim objections set forth in the previous Office action except for those set forth in the claim objection section.
Response to Arguments
Examiner notes wherein Applicant argues the newly amended limitations, which have not been addressed by the prior art of record. As such, Examiner has augmented the below rejection(s) in view of the prior art of record to address the newly amended limitations.
Claim Rejections - 35 USC § 112
Claim 10 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. It is unclear how the system is determining that each leg is going to contact the plane in response to the determination that each leg is in contact with the plane at the current moment. Clarification of this limitation is earnestly solicited. The remarks dated 01/15/2026 do not appear to address this issue.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 10-11, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Fay et al. (US 20240075998 A1), hereinafter Fay in view of Su et al. (US 20180004208 A1), hereinafter Su and Deits et al. (US 20240051122 A1), hereinafter Deits.
Regarding claim 1, Fay teaches:
(Currently Amended) A method for controlling the landing of a legged robot on a plane performed by a computer device, the legged robot comprising a base and at least two robotic legs, (Paragraph 0053, "FIG. 2 illustrates a quadruped robot 200, according to an example implementation. Among other possible features, the robot 200 may be configured to perform some of the operations described herein. The robot 200 includes a control system, and legs 204A, 204B, 204C, 204D connected to a body 208. Each leg may include a respective foot 206A, 206B, 206C, 206D that may contact a surface (e.g., a ground surface). Further, the robot 200 is illustrated with sensor(s) 210, and may be capable of carrying a load on the body 208. Within other examples, the robot 200 may include more or fewer components, and thus may include components not shown in FIG. 2.") each of the robotic legs comprising at least one joint, (Paragraph 0122, "The state of the first pair of legs may be determined based on the output of one or more sensors on the robot. For example, some sensors—such as accelerometers and gyroscopes—might capture inertial measurements over a period of time, from which the kinematic state may be derived. As another example, sensors coupled to the robot's joints and/or actuators may measure the extent to which various joints are bent and the positions of various components on the robot, from which the robot's “pose” can be determined.") the method comprising:
determining … and a second expected moving trajectory and … each corresponding to a respective portion of the legged robot (Paragraph 0082, "The template front footstep sequence 504 may include footstep force values, footstep locations, timing, or any combination thereof. The force value for a given footstep may include forces applied along one or more axes (e.g., vertical force, lateral force, and/or longitudinal force), which could be collectively represented as a vector with a magnitude and direction. The timing information may include, for each footstep, a time value relative to a reference time indicating a point in time at which to place the robot's foot onto a surface. The timing information may also include the duration for each footstep (e.g., a period of time from touchdown to lift-off). In some instances, the template front footstep sequence 504 may define footstep locations, which each footstep location specifying a lateral displacement and a longitudinal displacement (e.g., a planar coordinate) with respect to the robot's body at a given point in time. Note that, in other implementations, the template front footstep sequence 504 does not include any predetermined footstep locations. The template rear footstep sequence 524 may include the same or similar information for the rear legs." As well as Paragraph 0121, “Block 704 involves determining a state of a first pair of legs. The state of the first pair of legs may include information about its kinematic state at a particular point in time and/or information about its posture, pose, joint angles, and/or actuator positions. As described herein, the “kinematic state” may refer to the translational position, translational velocity, translational acceleration, angular position, angular velocity, and/or angular acceleration of a robot (or a portion of the robot).”) in response to determining an instantaneous moment that each robotic leg of the legged robot s the plane, (Paragraph 0106, "In some implementations, determining the footstep locations may involve using a model of the robot to estimate the robot's future state—including its position and velocity-based on predetermined footstep locations (e.g., as defined in a template footstep sequence). As one example, the robot's behavior resulting from a single future step may be simulated, and the robot's position, velocity, balance, and other aspects of the robot's state may be predicted immediately after the robot's foot steps down at that single future step. This process may be repeated for a plurality of future steps at different spatial locations (each of which may correspond to a respective robot leg), such that a plurality of estimated future states is determined. Then, the estimated future states may be evaluated against costs and constraints in order to determine a “score” associated with each future footstep. The resulting scores may be compared against each other and/or a threshold score in order to select a satisfactory score. The robot may then be instructed to step toward the footstep location associated with the selected score." As well as Paragraph 0085, “The front timing and force controller 506 may also determine a manner in which to modify the timing of the template front footstep sequence 504. For example, if the elevation of the surface upon which the robot is walking is increasing, the timing of future footsteps may be adjusted (e.g., footsteps may occur sooner than as defined in the template front footstep sequence 504) in order to account for the change in elevation. Conversely, if the elevation of the surface upon which the robot is walking is decreasing, the timing of future footsteps may be adjusted (e.g., footsteps may occur later than as defined in the template front footstep sequence 504) in order to account for the change in elevation. The front timing and force controller 506 might also determine that no modification of the timing is needed.”)
…
the second expected moving trajectory indicating an expected moving trajectory of a foot end of each robotic leg; (Paragraph 0082, "The template front footstep sequence 504 may include footstep force values, footstep locations, timing, or any combination thereof. The force value for a given footstep may include forces applied along one or more axes (e.g., vertical force, lateral force, and/or longitudinal force), which could be collectively represented as a vector with a magnitude and direction. The timing information may include, for each footstep, a time value relative to a reference time indicating a point in time at which to place the robot's foot onto a surface. The timing information may also include the duration for each footstep (e.g., a period of time from touchdown to lift-off). In some instances, the template front footstep sequence 504 may define footstep locations, which each footstep location specifying a lateral displacement and a longitudinal displacement (e.g., a planar coordinate) with respect to the robot's body at a given point in time. Note that, in other implementations, the template front footstep sequence 504 does not include any predetermined footstep locations. The template rear footstep sequence 524 may include the same or similar information for the rear legs.") … and
controlling, based on a dynamic model corresponding to the legged robot, the first expected moving trajectory, [[and]]] the second expected moving trajectory, and the third moving trajectory, (Paragraph 0095, "The robot model(s) 612 may include one or more representations of the robotic device 600. A model may represent the robotic device—including its mass, mass distribution, limbs and other appendages, and/or other aspects of the robotic device—as a simplified system of masses and couplings. A control system may use such a simplified model of the robotic device 600 in order to determine a manner in which to control the robotic device 600. An example control objective may be to maintain a point mass of the model at a particular height. A control system feedback loop may estimate the height of the point mass using the model of the robotic device 600 (e.g., based on relationships between the joint angles of the robot and the spatial location of the point mass, and/or based on integrated acceleration measurements recorded over a period of time with a known initial condition). The feedback loop may attempt to regulate the height of the point mass if it deviates from a target height. Once the change in height has been determined, the robot model may be applied in the reverse direction to determine an amount of vertical force for one or more legs of the robotic device 600 to apply against a surface in order to effect the determined height change. Thus, the robot model(s) may include relationships between the simplified model and the state of the robot (e.g., the kinematic state of the robot and/or the joint angles of the robot's actuators).") an action of each joint after the legged robot contacts the plane, (Paragraph 0027, "A legged robot may include one or more controllers that drive the legged robot's actuators. As described to herein, a “controller” may refer to a control configuration and parameters that, when applied to a control system that operates the robot's actuators, causes the robot to perform a particular action, carry out an operation, or act in accordance with a particular behavior. In some implementations, a controller might operate the robot's actuators to effect a certain gait (e.g., walk, trot, run, bound, gallop, etc.), maintain a certain condition (e.g., maintain balance, height, velocity, etc.), or some combination thereof. One or more controllers may be activated at a given time, each of which controls (or contributes to controlling) actuators on the robot to accomplish its particular task.") until a height of the base of the legged robot reaches a constant value and the tilt angle of the legged robot stops changing. (Paragraph 0107, "The cost and constraint analysis described above may involve designating linear constraints and quadratic costs, and executing a linear programming operation to determine an optimal, sub-optimal, or satisfactory footstep location. Some example costs include final position error, target step locations, lateral stepout displacement, target body velocity, extent of acceleration, amount of contact forces applied against a surface, and relative foot placement, among other possible costs. Some example constraints include a maximum lateral stepout (the furthest lateral displacement possible limited by the robot's physical dimensions), a maximum body velocity (to prevent exceeding joint velocity limits), and illegal step regions (e.g., stepping onto a deep body of water, stepping onto a crevice or hole in the surface, etc.), among other possible constraints. The estimated future states of the robot may be applied to the costs and constraints, and a solver or other computational tool may be utilized in order to determine the scores. The costs and constraints may generally be referred to herein as “criteria.”" as well as Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." and Paragraph 0079, "In some implementations, the height controllers of a control system may regulate the height of the robot independently from the gait of the robot. A height controller may determine vertical force values for the robot's legs to apply against a surface. Any gait controller may then receive the footstep force values and determine footstep locations in accordance with the stepping behavior defined by that gait controller. Thus, one height controller may be utilized across multiple gait controllers, allowing the gait controllers to be interchanged during operation without having to alter the height controller. In some instances, such an arrangement may allow a robot to transition between gaits (e.g., from walking to galloping) without having to explicitly account for transitions between constant body pitch behaviors and non-constant body-pitch behaviors.")
Fay does not specifically teach a first trajectory indicating the expected trajectory of the COM or a third trajectory indicating the angle of the robot. However, Su, in the same field of endeavor of robotics, teaches:
… a first expected moving trajectory … the first expected moving trajectory indicating an expected moving trajectory of a center of mass of the legged robot (Paragraph 0016, "The advantageous effects of the present disclosure are: the solution of controlling a gait of a biped robot of the embodiments of the present disclosure firstly selects gait controlling parameters of the biped robot, acquires a movement trajectory of a center of mass in the mid-step phase when a zero moment point ZMP of the biped robot is located within a steady area and first numerical values and second numerical values that are corresponding to each of the gait controlling parameters, determines the movement trajectory of the center of mass in the step starting phase according to the first numerical values, and calculates the movement trajectory of the center of mass in the step ending phase by using the second numerical values, thereby realizing keeping the continuous linking of the step starting phase and the step ending phase with the mid-step phase by the gait controlling parameters.")
However, Deits, in the same field of endeavor of robotics, teaches:
… a third expected moving trajectory, … the third expected moving trajectory indicating an expected moving trajectory of a change in a tilt angle of the legged robot; (Paragraph 0035, “In some implementations, the processing system may be configured to estimate the aggregate orientation and/or angular velocity of the entire robotic device based on the sensed orientation of the base of the robotic device and the measured joint angles. The processing system has stored thereon a relationship between the joint angles of the robotic device and the extent to which the joint angles of the robotic device affect the orientation and/or angular velocity of the base of the robotic device. The relationship between the joint angles of the robotic device and the motion of the base of the robotic device may be determined based on the kinematics and mass properties of the limbs of the robotic devices. In other words, the relationship may specify the effects that the joint angles have on the aggregate orientation and/or angular velocity of the robotic device. Additionally, the processing system may be configured to determine components of the orientation and/or angular velocity of the robotic device caused by internal motion and components of the orientation and/or angular velocity of the robotic device caused by external motion. Further, the processing system may differentiate components of the aggregate orientation in order to determine the robotic device's aggregate yaw rate, pitch rate, and roll rate (which may be collectively referred to as the “aggregate angular velocity”).” And also see Paragraph 0016, “In some embodiments, one or more of the vectors in the set of vectors is used to control movement of the robot. In some embodiments, the system provides the set of vectors to a set of controllers (e.g., one or more robotic joint servo controllers) of the robot (e.g., to control movement of the robot). In some embodiments, the robot moves (e.g., by the one or more robotic joint servo controllers) one or more joints and/or links. In some embodiments, each vector in the set of vectors includes a torque about each respective joint of the robot. In some embodiments, the trajectory target is received from a trajectory library of the computing system. In some embodiments, the trajectory target includes a desired robot pose as a function of time and/or a desired robot velocity as a function of time. In some embodiments, the trajectory target corresponds to at least one of the following robot behaviors: jumping, jogging, hopping, vaulting, walking, standing, dancing, and/or gesturing. In some embodiments, the trajectory target includes pushing, grasping, and/or manipulating an object or an aspect of the robot's environment. In some embodiments, the trajectory target includes a linear motion of the robot, an angular body motion of the robot, and/or at least one contact wrench of the robot.”) …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and methods as taught by Fay with the ability to anticipate and control the trajectory of the center of mass of the system as taught by Su as well as with the ability to monitor and adjust the intended trajectory of the robot including the roll, pitch, and yaw rates as taught by Deits. This would allow for precise control of all components in the system and the ability to make more detailed plans for operation of the robot.
Regarding claim 10, where all the limitations of claim 1 are discussed above, Fay further teaches:
10. (Currently Amended) The method according to claim 1, wherein the determining that each robotic leg of the legged robot is going to contact the plane comprises:
obtaining current state information of the legged robot; (Paragraph 0042, "Further, the robotic system 100 may include sensor(s) 112 configured to receive information indicative of the state of the robotic system 100, including sensor(s) 112 that may monitor the state of the various components of the robotic system 100. The sensor(s) 112 may measure activity of systems of the robotic system 100 and receive information based on the operation of the various features of the robotic system 100, such the operation of extendable legs, arms, or other mechanical and/or electrical features of the robotic system 100. The data provided by the sensor(s) 112 may enable the control system 118 to determine errors in operation as well as monitor overall operation of components of the robotic system 100.")
determining contact information between each robotic leg and the plane at a current moment (Paragraph 0005, "Additionally, the operations include determining, by a first height controller for the first point mass, a first amount of vertical force for at least one leg of the first pair of legs to apply along the vertical axis against a surface while the at least one leg is in contact with the surface based on the state of the first pair of legs and the height of the first point mass. Further, the operations include causing the at least one leg of the first pair of legs to begin applying the first amount of vertical force against the surface.") based on the current state information of the legged robot; (Paragraph 0042, "Further, the robotic system 100 may include sensor(s) 112 configured to receive information indicative of the state of the robotic system 100, including sensor(s) 112 that may monitor the state of the various components of the robotic system 100. The sensor(s) 112 may measure activity of systems of the robotic system 100 and receive information based on the operation of the various features of the robotic system 100, such the operation of extendable legs, arms, or other mechanical and/or electrical features of the robotic system 100. The data provided by the sensor(s) 112 may enable the control system 118 to determine errors in operation as well as monitor overall operation of components of the robotic system 100.") and
determining, in response to determining that each robotic leg is in contact with the plane at the current moment based on the contact information between each robotic leg and the plane at the current moment, that each robotic leg of the legged robot is going to contact the plane. (Paragraph 0026, "In some implementations, a robotic control system may obtain a “template” footstep sequence and modify it based on the robot's state and the particular controllers in effect during operation. A template footstep sequence may include predetermined footstep locations, predetermined timing for the robot to step to those footstep locations, and/or predetermined force values for each footstep among other possible aspects of footsteps. The robotic control system may determine a manner in which to modify aspects of the template footstep sequence. For example, a height controller may determine that the predetermined force value for a footstep is sufficient to maintain a desired or target height, and may increase the force value accordingly. Such modifications may be made to the lateral positions of the footstep locations, the longitudinal positions of the footstep locations, the amount of vertical force to apply at the footstep locations, the amount of lateral or longitudinal force to apply at those footstep locations, and/or the timing of the footsteps.")
Examiner Note: Claim 10 is indicated as amended but no amendments appear in the claim set dated 01/15/2026.
Regarding claim 11, Fay further teaches:
11. (Currently Amended) A computer device for controlling the landing of a legged robot on a plane, the legged robot comprising a base and at least two robotic legs, (Paragraph 0053, "FIG. 2 illustrates a quadruped robot 200, according to an example implementation. Among other possible features, the robot 200 may be configured to perform some of the operations described herein. The robot 200 includes a control system, and legs 204A, 204B, 204C, 204D connected to a body 208. Each leg may include a respective foot 206A, 206B, 206C, 206D that may contact a surface (e.g., a ground surface). Further, the robot 200 is illustrated with sensor(s) 210, and may be capable of carrying a load on the body 208. Within other examples, the robot 200 may include more or fewer components, and thus may include components not shown in FIG. 2.") each of the robotic legs comprising at least one joint, (Paragraph 0122, "The state of the first pair of legs may be determined based on the output of one or more sensors on the robot. For example, some sensors—such as accelerometers and gyroscopes—might capture inertial measurements over a period of time, from which the kinematic state may be derived. As another example, sensors coupled to the robot's joints and/or actuators may measure the extent to which various joints are bent and the positions of various components on the robot, from which the robot's “pose” can be determined.") the computer device comprising:
a processor; (Paragraph 0031, “Processor(s) 102 may operate as one or more general-purpose hardware processors or special purpose hardware processors (e.g., digital signal processors, application specific integrated circuits, etc.). The processor(s) 102 may be configured to execute computer-readable program instructions 106, and manipulate data 107, both of which are stored in the data storage 104. The processor(s) 102 may also directly or indirectly interact with other components of the robotic system 100, such as sensor(s) 112, power source(s) 114, mechanical components 110, and/or electrical components 116.”) and
a memory, having a computer-executable code stored therein, the computer- executable code, when executed by the processor, performing a method (Paragraph 0032, “The data storage 104 may be one or more types of hardware memory. For example, the data storage 104 may include or take the form of one or more computer-readable storage media that can be read or accessed by processor(s) 102. The one or more computer-readable storage media can include volatile and/or non-volatile storage components, such as optical, magnetic, organic, or another type of memory or storage, which can be integrated in whole or in part with processor(s) 102. In some implementations, the data storage 104 can be a single physical device. In other implementations, the data storage 104 can be implemented using two or more physical devices, which may communicate with one another via wired or wireless communication. As noted previously, the data storage 104 may include the computer-readable program instructions 106 and the data 107. The data 107 may be any type of data, such as configuration data, sensor data, and/or diagnostic data, among other possibilities.”) including:
determining … and a second expected moving trajectory … each corresponding to a respective portion of the legged robot (Paragraph 0082, "The template front footstep sequence 504 may include footstep force values, footstep locations, timing, or any combination thereof. The force value for a given footstep may include forces applied along one or more axes (e.g., vertical force, lateral force, and/or longitudinal force), which could be collectively represented as a vector with a magnitude and direction. The timing information may include, for each footstep, a time value relative to a reference time indicating a point in time at which to place the robot's foot onto a surface. The timing information may also include the duration for each footstep (e.g., a period of time from touchdown to lift-off). In some instances, the template front footstep sequence 504 may define footstep locations, which each footstep location specifying a lateral displacement and a longitudinal displacement (e.g., a planar coordinate) with respect to the robot's body at a given point in time. Note that, in other implementations, the template front footstep sequence 504 does not include any predetermined footstep locations. The template rear footstep sequence 524 may include the same or similar information for the rear legs." As well as Paragraph 0121, “Block 704 involves determining a state of a first pair of legs. The state of the first pair of legs may include information about its kinematic state at a particular point in time and/or information about its posture, pose, joint angles, and/or actuator positions. As described herein, the “kinematic state” may refer to the translational position, translational velocity, translational acceleration, angular position, angular velocity, and/or angular acceleration of a robot (or a portion of the robot).”) in response to determining an instantaneous moment that each robotic leg of the legged robot s the plane, (Paragraph 0106, "In some implementations, determining the footstep locations may involve using a model of the robot to estimate the robot's future state—including its position and velocity-based on predetermined footstep locations (e.g., as defined in a template footstep sequence). As one example, the robot's behavior resulting from a single future step may be simulated, and the robot's position, velocity, balance, and other aspects of the robot's state may be predicted immediately after the robot's foot steps down at that single future step. This process may be repeated for a plurality of future steps at different spatial locations (each of which may correspond to a respective robot leg), such that a plurality of estimated future states is determined. Then, the estimated future states may be evaluated against costs and constraints in order to determine a “score” associated with each future footstep. The resulting scores may be compared against each other and/or a threshold score in order to select a satisfactory score. The robot may then be instructed to step toward the footstep location associated with the selected score." As well as Paragraph 0085, “The front timing and force controller 506 may also determine a manner in which to modify the timing of the template front footstep sequence 504. For example, if the elevation of the surface upon which the robot is walking is increasing, the timing of future footsteps may be adjusted (e.g., footsteps may occur sooner than as defined in the template front footstep sequence 504) in order to account for the change in elevation. Conversely, if the elevation of the surface upon which the robot is walking is decreasing, the timing of future footsteps may be adjusted (e.g., footsteps may occur later than as defined in the template front footstep sequence 504) in order to account for the change in elevation. The front timing and force controller 506 might also determine that no modification of the timing is needed.”)
… the second expected moving trajectory indicating an expected moving trajectory of a foot end of each robotic leg; (Paragraph 0082, "The template front footstep sequence 504 may include footstep force values, footstep locations, timing, or any combination thereof. The force value for a given footstep may include forces applied along one or more axes (e.g., vertical force, lateral force, and/or longitudinal force), which could be collectively represented as a vector with a magnitude and direction. The timing information may include, for each footstep, a time value relative to a reference time indicating a point in time at which to place the robot's foot onto a surface. The timing information may also include the duration for each footstep (e.g., a period of time from touchdown to lift-off). In some instances, the template front footstep sequence 504 may define footstep locations, which each footstep location specifying a lateral displacement and a longitudinal displacement (e.g., a planar coordinate) with respect to the robot's body at a given point in time. Note that, in other implementations, the template front footstep sequence 504 does not include any predetermined footstep locations. The template rear footstep sequence 524 may include the same or similar information for the rear legs.") … and
controlling, based on a dynamic model corresponding to the legged robot, the first expected moving trajectory, and the third expected moving trajectory, (Paragraph 0095, "The robot model(s) 612 may include one or more representations of the robotic device 600. A model may represent the robotic device—including its mass, mass distribution, limbs and other appendages, and/or other aspects of the robotic device—as a simplified system of masses and couplings. A control system may use such a simplified model of the robotic device 600 in order to determine a manner in which to control the robotic device 600. An example control objective may be to maintain a point mass of the model at a particular height. A control system feedback loop may estimate the height of the point mass using the model of the robotic device 600 (e.g., based on relationships between the joint angles of the robot and the spatial location of the point mass, and/or based on integrated acceleration measurements recorded over a period of time with a known initial condition). The feedback loop may attempt to regulate the height of the point mass if it deviates from a target height. Once the change in height has been determined, the robot model may be applied in the reverse direction to determine an amount of vertical force for one or more legs of the robotic device 600 to apply against a surface in order to effect the determined height change. Thus, the robot model(s) may include relationships between the simplified model and the state of the robot (e.g., the kinematic state of the robot and/or the joint angles of the robot's actuators).") an action of each joint after the legged robot contacts the plane, (Paragraph 0027, "A legged robot may include one or more controllers that drive the legged robot's actuators. As described to herein, a “controller” may refer to a control configuration and parameters that, when applied to a control system that operates the robot's actuators, causes the robot to perform a particular action, carry out an operation, or act in accordance with a particular behavior. In some implementations, a controller might operate the robot's actuators to effect a certain gait (e.g., walk, trot, run, bound, gallop, etc.), maintain a certain condition (e.g., maintain balance, height, velocity, etc.), or some combination thereof. One or more controllers may be activated at a given time, each of which controls (or contributes to controlling) actuators on the robot to accomplish its particular task.") until a height of the base of the legged robot reaches a constant value and the tilt angle of the legged robot stops changing. (Paragraph 0107, "The cost and constraint analysis described above may involve designating linear constraints and quadratic costs, and executing a linear programming operation to determine an optimal, sub-optimal, or satisfactory footstep location. Some example costs include final position error, target step locations, lateral stepout displacement, target body velocity, extent of acceleration, amount of contact forces applied against a surface, and relative foot placement, among other possible costs. Some example constraints include a maximum lateral stepout (the furthest lateral displacement possible limited by the robot's physical dimensions), a maximum body velocity (to prevent exceeding joint velocity limits), and illegal step regions (e.g., stepping onto a deep body of water, stepping onto a crevice or hole in the surface, etc.), among other possible constraints. The estimated future states of the robot may be applied to the costs and constraints, and a solver or other computational tool may be utilized in order to determine the scores. The costs and constraints may generally be referred to herein as “criteria.”" as well as Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." and Paragraph 0079, "In some implementations, the height controllers of a control system may regulate the height of the robot independently from the gait of the robot. A height controller may determine vertical force values for the robot's legs to apply against a surface. Any gait controller may then receive the footstep force values and determine footstep locations in accordance with the stepping behavior defined by that gait controller. Thus, one height controller may be utilized across multiple gait controllers, allowing the gait controllers to be interchanged during operation without having to alter the height controller. In some instances, such an arrangement may allow a robot to transition between gaits (e.g., from walking to galloping) without having to explicitly account for transitions between constant body pitch behaviors and non-constant body-pitch behaviors.")
Fay does not specifically teach a first trajectory indicating the expected trajectory of the COM or a third trajectory indicating the angle of the robot. However, Su, in the same field of endeavor of robotics, teaches:
… a first expected moving trajectory … the first expected moving trajectory indicating an expected moving trajectory of a center of mass of the legged robot (Paragraph 0016, "The advantageous effects of the present disclosure are: the solution of controlling a gait of a biped robot of the embodiments of the present disclosure firstly selects gait controlling parameters of the biped robot, acquires a movement trajectory of a center of mass in the mid-step phase when a zero moment point ZMP of the biped robot is located within a steady area and first numerical values and second numerical values that are corresponding to each of the gait controlling parameters, determines the movement trajectory of the center of mass in the step starting phase according to the first numerical values, and calculates the movement trajectory of the center of mass in the step ending phase by using the second numerical values, thereby realizing keeping the continuous linking of the step starting phase and the step ending phase with the mid-step phase by the gait controlling parameters.")
However, Deits, in the same field of endeavor of robotics, teaches:
… and a third expected moving trajectory, … the third expected moving trajectory indicating an expected moving trajectory of a change in a tilt angle of the legged robot; (Paragraph 0035, “In some implementations, the processing system may be configured to estimate the aggregate orientation and/or angular velocity of the entire robotic device based on the sensed orientation of the base of the robotic device and the measured joint angles. The processing system has stored thereon a relationship between the joint angles of the robotic device and the extent to which the joint angles of the robotic device affect the orientation and/or angular velocity of the base of the robotic device. The relationship between the joint angles of the robotic device and the motion of the base of the robotic device may be determined based on the kinematics and mass properties of the limbs of the robotic devices. In other words, the relationship may specify the effects that the joint angles have on the aggregate orientation and/or angular velocity of the robotic device. Additionally, the processing system may be configured to determine components of the orientation and/or angular velocity of the robotic device caused by internal motion and components of the orientation and/or angular velocity of the robotic device caused by external motion. Further, the processing system may differentiate components of the aggregate orientation in order to determine the robotic device's aggregate yaw rate, pitch rate, and roll rate (which may be collectively referred to as the “aggregate angular velocity”).” And also see Paragraph 0016, “In some embodiments, one or more of the vectors in the set of vectors is used to control movement of the robot. In some embodiments, the system provides the set of vectors to a set of controllers (e.g., one or more robotic joint servo controllers) of the robot (e.g., to control movement of the robot). In some embodiments, the robot moves (e.g., by the one or more robotic joint servo controllers) one or more joints and/or links. In some embodiments, each vector in the set of vectors includes a torque about each respective joint of the robot. In some embodiments, the trajectory target is received from a trajectory library of the computing system. In some embodiments, the trajectory target includes a desired robot pose as a function of time and/or a desired robot velocity as a function of time. In some embodiments, the trajectory target corresponds to at least one of the following robot behaviors: jumping, jogging, hopping, vaulting, walking, standing, dancing, and/or gesturing. In some embodiments, the trajectory target includes pushing, grasping, and/or manipulating an object or an aspect of the robot's environment. In some embodiments, the trajectory target includes a linear motion of the robot, an angular body motion of the robot, and/or at least one contact wrench of the robot.”) …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and methods as taught by Fay with the ability to anticipate and control the trajectory of the center of mass of the system as taught by Su as well as with the ability to monitor and adjust the intended trajectory of the robot including the roll, pitch, and yaw rates as taught by Deits. This would allow for precise control of all components in the system and the ability to make more detailed plans for operation of the robot.
Regarding claim 20, Fay further teaches:
(Currently Amended) A non-transitory computer-readable storage medium, having an executable code stored therein, the executable code, when executed by a processor of a computer device, causing the computer device to perform a method for controlling the landing of a legged robot on a plane, the legged robot comprising a base and at least two robotic legs, (Paragraph 0053, "FIG. 2 illustrates a quadruped robot 200, according to an example implementation. Among other possible features, the robot 200 may be configured to perform some of the operations described herein. The robot 200 includes a control system, and legs 204A, 204B, 204C, 204D connected to a body 208. Each leg may include a respective foot 206A, 206B, 206C, 206D that may contact a surface (e.g., a ground surface). Further, the robot 200 is illustrated with sensor(s) 210, and may be capable of carrying a load on the body 208. Within other examples, the robot 200 may include more or fewer components, and thus may include components not shown in FIG. 2.") each of the robotic legs comprising at least one joint, (Paragraph 0122, "The state of the first pair of legs may be determined based on the output of one or more sensors on the robot. For example, some sensors—such as accelerometers and gyroscopes—might capture inertial measurements over a period of time, from which the kinematic state may be derived. As another example, sensors coupled to the robot's joints and/or actuators may measure the extent to which various joints are bent and the positions of various components on the robot, from which the robot's “pose” can be determined.") the method comprising:
determining … and a second expected moving trajectory … each corresponding to a respective portion of the legged robot (Paragraph 0082, "The template front footstep sequence 504 may include footstep force values, footstep locations, timing, or any combination thereof. The force value for a given footstep may include forces applied along one or more axes (e.g., vertical force, lateral force, and/or longitudinal force), which could be collectively represented as a vector with a magnitude and direction. The timing information may include, for each footstep, a time value relative to a reference time indicating a point in time at which to place the robot's foot onto a surface. The timing information may also include the duration for each footstep (e.g., a period of time from touchdown to lift-off). In some instances, the template front footstep sequence 504 may define footstep locations, which each footstep location specifying a lateral displacement and a longitudinal displacement (e.g., a planar coordinate) with respect to the robot's body at a given point in time. Note that, in other implementations, the template front footstep sequence 504 does not include any predetermined footstep locations. The template rear footstep sequence 524 may include the same or similar information for the rear legs." As well as Paragraph 0121, “Block 704 involves determining a state of a first pair of legs. The state of the first pair of legs may include information about its kinematic state at a particular point in time and/or information about its posture, pose, joint angles, and/or actuator positions. As described herein, the “kinematic state” may refer to the translational position, translational velocity, translational acceleration, angular position, angular velocity, and/or angular acceleration of a robot (or a portion of the robot).”) in response to determining an instantaneous moment that each robotic leg of the legged robot s the plane, (Paragraph 0106, "In some implementations, determining the footstep locations may involve using a model of the robot to estimate the robot's future state—including its position and velocity-based on predetermined footstep locations (e.g., as defined in a template footstep sequence). As one example, the robot's behavior resulting from a single future step may be simulated, and the robot's position, velocity, balance, and other aspects of the robot's state may be predicted immediately after the robot's foot steps down at that single future step. This process may be repeated for a plurality of future steps at different spatial locations (each of which may correspond to a respective robot leg), such that a plurality of estimated future states is determined. Then, the estimated future states may be evaluated against costs and constraints in order to determine a “score” associated with each future footstep. The resulting scores may be compared against each other and/or a threshold score in order to select a satisfactory score. The robot may then be instructed to step toward the footstep location associated with the selected score." As well as Paragraph 0085, “The front timing and force controller 506 may also determine a manner in which to modify the timing of the template front footstep sequence 504. For example, if the elevation of the surface upon which the robot is walking is increasing, the timing of future footsteps may be adjusted (e.g., footsteps may occur sooner than as defined in the template front footstep sequence 504) in order to account for the change in elevation. Conversely, if the elevation of the surface upon which the robot is walking is decreasing, the timing of future footsteps may be adjusted (e.g., footsteps may occur later than as defined in the template front footstep sequence 504) in order to account for the change in elevation. The front timing and force controller 506 might also determine that no modification of the timing is needed.”)
…
the second expected moving trajectory indicating an expected moving trajectory of a foot end of each robotic leg; (Paragraph 0082, "The template front footstep sequence 504 may include footstep force values, footstep locations, timing, or any combination thereof. The force value for a given footstep may include forces applied along one or more axes (e.g., vertical force, lateral force, and/or longitudinal force), which could be collectively represented as a vector with a magnitude and direction. The timing information may include, for each footstep, a time value relative to a reference time indicating a point in time at which to place the robot's foot onto a surface. The timing information may also include the duration for each footstep (e.g., a period of time from touchdown to lift-off). In some instances, the template front footstep sequence 504 may define footstep locations, which each footstep location specifying a lateral displacement and a longitudinal displacement (e.g., a planar coordinate) with respect to the robot's body at a given point in time. Note that, in other implementations, the template front footstep sequence 504 does not include any predetermined footstep locations. The template rear footstep sequence 524 may include the same or similar information for the rear legs.") and …
controlling, based on a dynamic model corresponding to the legged robot, the first expected moving trajectory, [[and]] the second expected moving trajectory, and the third expected moving trajectory, (Paragraph 0095, "The robot model(s) 612 may include one or more representations of the robotic device 600. A model may represent the robotic device—including its mass, mass distribution, limbs and other appendages, and/or other aspects of the robotic device—as a simplified system of masses and couplings. A control system may use such a simplified model of the robotic device 600 in order to determine a manner in which to control the robotic device 600. An example control objective may be to maintain a point mass of the model at a particular height. A control system feedback loop may estimate the height of the point mass using the model of the robotic device 600 (e.g., based on relationships between the joint angles of the robot and the spatial location of the point mass, and/or based on integrated acceleration measurements recorded over a period of time with a known initial condition). The feedback loop may attempt to regulate the height of the point mass if it deviates from a target height. Once the change in height has been determined, the robot model may be applied in the reverse direction to determine an amount of vertical force for one or more legs of the robotic device 600 to apply against a surface in order to effect the determined height change. Thus, the robot model(s) may include relationships between the simplified model and the state of the robot (e.g., the kinematic state of the robot and/or the joint angles of the robot's actuators).") an action of each joint after the legged robot contacts the plane, (Paragraph 0027, "A legged robot may include one or more controllers that drive the legged robot's actuators. As described to herein, a “controller” may refer to a control configuration and parameters that, when applied to a control system that operates the robot's actuators, causes the robot to perform a particular action, carry out an operation, or act in accordance with a particular behavior. In some implementations, a controller might operate the robot's actuators to effect a certain gait (e.g., walk, trot, run, bound, gallop, etc.), maintain a certain condition (e.g., maintain balance, height, velocity, etc.), or some combination thereof. One or more controllers may be activated at a given time, each of which controls (or contributes to controlling) actuators on the robot to accomplish its particular task.") until a height of the base of the legged robot reaches a constant value and the tilt angle of the legged robot stops changing. (Paragraph 0107, "The cost and constraint analysis described above may involve designating linear constraints and quadratic costs, and executing a linear programming operation to determine an optimal, sub-optimal, or satisfactory footstep location. Some example costs include final position error, target step locations, lateral stepout displacement, target body velocity, extent of acceleration, amount of contact forces applied against a surface, and relative foot placement, among other possible costs. Some example constraints include a maximum lateral stepout (the furthest lateral displacement possible limited by the robot's physical dimensions), a maximum body velocity (to prevent exceeding joint velocity limits), and illegal step regions (e.g., stepping onto a deep body of water, stepping onto a crevice or hole in the surface, etc.), among other possible constraints. The estimated future states of the robot may be applied to the costs and constraints, and a solver or other computational tool may be utilized in order to determine the scores. The costs and constraints may generally be referred to herein as “criteria.”" as well as Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." and Paragraph 0079, "In some implementations, the height controllers of a control system may regulate the height of the robot independently from the gait of the robot. A height controller may determine vertical force values for the robot's legs to apply against a surface. Any gait controller may then receive the footstep force values and determine footstep locations in accordance with the stepping behavior defined by that gait controller. Thus, one height controller may be utilized across multiple gait controllers, allowing the gait controllers to be interchanged during operation without having to alter the height controller. In some instances, such an arrangement may allow a robot to transition between gaits (e.g., from walking to galloping) without having to explicitly account for transitions between constant body pitch behaviors and non-constant body-pitch behaviors.")
Fay does not specifically teach a first trajectory indicating the expected trajectory of the COM or a third trajectory indicating the angle of the robot. However, Su, in the same field of endeavor of robotics, teaches:
… a first expected moving trajectory … the first expected moving trajectory indicating an expected moving trajectory of a center of mass of the legged robot (Paragraph 0016, "The advantageous effects of the present disclosure are: the solution of controlling a gait of a biped robot of the embodiments of the present disclosure firstly selects gait controlling parameters of the biped robot, acquires a movement trajectory of a center of mass in the mid-step phase when a zero moment point ZMP of the biped robot is located within a steady area and first numerical values and second numerical values that are corresponding to each of the gait controlling parameters, determines the movement trajectory of the center of mass in the step starting phase according to the first numerical values, and calculates the movement trajectory of the center of mass in the step ending phase by using the second numerical values, thereby realizing keeping the continuous linking of the step starting phase and the step ending phase with the mid-step phase by the gait controlling parameters.")
However, Deits, in the same field of endeavor of robotics, teaches:
… and a third expected moving trajectory, … the third expected moving trajectory indicating an expected moving trajectory of a change in a tilt angle of the legged robot; and (Paragraph 0035, “In some implementations, the processing system may be configured to estimate the aggregate orientation and/or angular velocity of the entire robotic device based on the sensed orientation of the base of the robotic device and the measured joint angles. The processing system has stored thereon a relationship between the joint angles of the robotic device and the extent to which the joint angles of the robotic device affect the orientation and/or angular velocity of the base of the robotic device. The relationship between the joint angles of the robotic device and the motion of the base of the robotic device may be determined based on the kinematics and mass properties of the limbs of the robotic devices. In other words, the relationship may specify the effects that the joint angles have on the aggregate orientation and/or angular velocity of the robotic device. Additionally, the processing system may be configured to determine components of the orientation and/or angular velocity of the robotic device caused by internal motion and components of the orientation and/or angular velocity of the robotic device caused by external motion. Further, the processing system may differentiate components of the aggregate orientation in order to determine the robotic device's aggregate yaw rate, pitch rate, and roll rate (which may be collectively referred to as the “aggregate angular velocity”).” And also see Paragraph 0016, “In some embodiments, one or more of the vectors in the set of vectors is used to control movement of the robot. In some embodiments, the system provides the set of vectors to a set of controllers (e.g., one or more robotic joint servo controllers) of the robot (e.g., to control movement of the robot). In some embodiments, the robot moves (e.g., by the one or more robotic joint servo controllers) one or more joints and/or links. In some embodiments, each vector in the set of vectors includes a torque about each respective joint of the robot. In some embodiments, the trajectory target is received from a trajectory library of the computing system. In some embodiments, the trajectory target includes a desired robot pose as a function of time and/or a desired robot velocity as a function of time. In some embodiments, the trajectory target corresponds to at least one of the following robot behaviors: jumping, jogging, hopping, vaulting, walking, standing, dancing, and/or gesturing. In some embodiments, the trajectory target includes pushing, grasping, and/or manipulating an object or an aspect of the robot's environment. In some embodiments, the trajectory target includes a linear motion of the robot, an angular body motion of the robot, and/or at least one contact wrench of the robot.”) …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and methods as taught by Fay with the ability to anticipate and control the trajectory of the center of mass of the system as taught by Su as well as with the ability to monitor and adjust the intended trajectory of the robot including the roll, pitch, and yaw rates as taught by Deits. This would allow for precise control of all components in the system and the ability to make more detailed plans for operation of the robot.
Claim(s) 6 and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over Fay in view of Su and Deits and in further view of Blankenspoor et al. (US 20210171135 A1), hereinafter Blankenspoor.
Regarding claim 6, where all the limitations of claim 1 are discussed above, Fay further teaches:
6. (Currently Amended) The method according to claim 1, wherein the controlling [[an]] the action of each joint after the legged robot contacts the plane comprises:
… and controlling each robotic leg to (Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." as well as Paragraph 0043, "As an example, the robotic system 100 may use force sensors to measure load on various components of the robotic system 100. In some implementations, the robotic system 100 may include one or more force sensors on an arm or a leg to measure the load on the actuators that move one or more members of the arm or leg. As another example, the robotic system 100 may use one or more position sensors to sense the position of the actuators of the robotic system. For instance, such position sensors may sense states of extension, retraction, or rotation of the actuators on arms or legs.") until the center of mass of the legged robot reaches an expected resting height (Paragraph 0107, "The cost and constraint analysis described above may involve designating linear constraints and quadratic costs, and executing a linear programming operation to determine an optimal, sub-optimal, or satisfactory footstep location. Some example costs include final position error, target step locations, lateral stepout displacement, target body velocity, extent of acceleration, amount of contact forces applied against a surface, and relative foot placement, among other possible costs. Some example constraints include a maximum lateral stepout (the furthest lateral displacement possible limited by the robot's physical dimensions), a maximum body velocity (to prevent exceeding joint velocity limits), and illegal step regions (e.g., stepping onto a deep body of water, stepping onto a crevice or hole in the surface, etc.), among other possible constraints. The estimated future states of the robot may be applied to the costs and constraints, and a solver or other computational tool may be utilized in order to determine the scores. The costs and constraints may generally be referred to herein as “criteria.”" as well as Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." and Paragraph 0079, "In some implementations, the height controllers of a control system may regulate the height of the robot independently from the gait of the robot. A height controller may determine vertical force values for the robot's legs to apply against a surface. Any gait controller may then receive the footstep force values and determine footstep locations in accordance with the stepping behavior defined by that gait controller. Thus, one height controller may be utilized across multiple gait controllers, allowing the gait controllers to be interchanged during operation without having to alter the height controller. In some instances, such an arrangement may allow a robot to transition between gaits (e.g., from walking to galloping) without having to explicitly account for transitions between constant body pitch behaviors and non-constant body-pitch behaviors.") and [[the]] a rotation angle in the direction of the tilt angle of the legged robot is zero. (Paragraph 0125, "Block 706 involves determining a height of the first point mass based on the model and the state of the first pair of legs. In some implementations, the model of the robot may include therein a relationship between aspects of the state of the first pair of legs and the height of the first point mass. For instance, the joint angles of the first pair of legs may be used to determine a distance between the feet of the first pair of legs and the body of the robot (e.g., using inverse kinematics). The joint angles and/or sensors coupled to the robot's legs may indicate an angle of the leg with respect to the body or with respect to the ground. On the basis of the leg angle and amount of extension, a height of the first point mass may be determined." and Paragraph 0019, "The present application discloses implementations that relate to kinematic control of robots with non-constant body pitch and height. A quadruped robot, for example, might be configured to operate according to different gaits. Some gaits—such as standing, walking, or trotting—may maintain an approximately constant body pitch. Other gaits—such as running, galloping, or bounding—might cause the robot's body pitch to vary over time." which demonstrates that body pitch is monitored in order to achieve different desired motion patterns some of which are a stable flat pose.)
Fay does not specifically teach monitoring the system for the possibility of falling. However, Blankenspoor, in the same field of endeavor of robotics, teaches:
… obtaining a toppling direction of the legged robot at [[an]] the instantaneous moment each robotic leg contacts the plane; (Paragraphs 0127-0129, "The robot 200 may continue repeating the operations of determining the second distance and comparing the difference between the second and first distances to the threshold difference until the robot 200 detects an indication to stop repeating the operations. For example, the robot may stop repeating the operations when it detects an indication that the pair of feet is no longer in contact with the ground surface. This may indicate that the pair of feet has lifted off of the ground to enter a swinging state. Further, the robot 200 may stop repeating the operations if detects an indication of a slip of the robot's feet that exceeds the threshold. Other examples are also possible.
At block 708, the robot 200 may determine that the difference between the first distance between the pair of feet and the second distance between the pair of feet exceeds the threshold difference. The determination may be based on the comparison of the differences in all three coordinate directions, and may further be based on at least one of the three differences exceeding the respective threshold. The robot may additionally or alternatively determine that the difference between the scalar distances exceeds the scalar threshold difference.
At block 710, based on the determination that the difference exceeds the threshold difference, the robot 200 may cause itself to react. The robot 200 may take one or more actions based on the determination that a threshold difference between the pair of feet has been exceeded. For example, the robot 200 may generate an indication of slip. The indication may be sent to systems within the robot 200 that may further respond to the slip or log the indication, among other examples." Please also see Paragraph 0134) and
controlling each robotic leg of the legged robot to move along the toppling direction of the legged robot, (Paragraph 0105, "The robot 200 may further determine a second, smaller threshold orientation and a second adjusted ground reaction force as noted above. Then, before causing the foot 602 to apply the first force on the ground surface 604 approximately equal to and opposing the first adjusted ground reaction force 616, the robot 200 may cause the foot 602 to apply a second force on the ground surface 604 approximately equal to and opposing the second ground reaction force. By causing the foot 602 to apply the second force on the ground surface 604 in the initial stages of the step, the robot 200 may decrease the likelihood of a slip of foot 602." Please see Paragraph 0134 as well.) …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and control methods as taught by Fay with the ability to monitor the system for falling probability as taught by Blankenspoor. It would be obvious to incorporate the ability to monitor and adjust for the possibility of a slip/fall incident as taught by Blankenspoor. This would ensure that the system reacts appropriately to the possibility of a fall and is able to prevent when possible.
Regarding claim 16, where all the limitations of claim 11 are discussed above, Fay further teaches:
16. (Currently Amended) The computer device according to claim 11, wherein the controlling [[an]] the action of each joint after the legged robot contacts the plane comprises:
… and controlling each robotic leg to (Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." as well as Paragraph 0043, "As an example, the robotic system 100 may use force sensors to measure load on various components of the robotic system 100. In some implementations, the robotic system 100 may include one or more force sensors on an arm or a leg to measure the load on the actuators that move one or more members of the arm or leg. As another example, the robotic system 100 may use one or more position sensors to sense the position of the actuators of the robotic system. For instance, such position sensors may sense states of extension, retraction, or rotation of the actuators on arms or legs.") until the center of mass of the legged robot reaches an expected resting height (Paragraph 0107, "The cost and constraint analysis described above may involve designating linear constraints and quadratic costs, and executing a linear programming operation to determine an optimal, sub-optimal, or satisfactory footstep location. Some example costs include final position error, target step locations, lateral stepout displacement, target body velocity, extent of acceleration, amount of contact forces applied against a surface, and relative foot placement, among other possible costs. Some example constraints include a maximum lateral stepout (the furthest lateral displacement possible limited by the robot's physical dimensions), a maximum body velocity (to prevent exceeding joint velocity limits), and illegal step regions (e.g., stepping onto a deep body of water, stepping onto a crevice or hole in the surface, etc.), among other possible constraints. The estimated future states of the robot may be applied to the costs and constraints, and a solver or other computational tool may be utilized in order to determine the scores. The costs and constraints may generally be referred to herein as “criteria.”" as well as Paragraph 0025, "Control of a multi-legged robot may involve height (vertical) control, pitch control, roll control, and translational (e.g., lateral, longitudinal, and yaw motion) control. Collectively, these different aspects of control form six degrees of freedom (DOF). Height control may involve determining an amount of force for the robot's legs to apply against a surface (where greater force raises the height of that part of the robot, and lower force lowers the height of that part of the robot). Pitch control may be the result of height control, since the pitch may represent a height differential between two points (e.g., an angle of the body with respect to the ground surface). Roll control may involve applying lateral foot forces against a surface by the legs of the robot. Translational motion may involve footstep planning, which may incorporate target foot touchdown locations and/or timing to carry out a particular gait, move along a particular trajectory, and/or move at a particular velocity." and Paragraph 0079, "In some implementations, the height controllers of a control system may regulate the height of the robot independently from the gait of the robot. A height controller may determine vertical force values for the robot's legs to apply against a surface. Any gait controller may then receive the footstep force values and determine footstep locations in accordance with the stepping behavior defined by that gait controller. Thus, one height controller may be utilized across multiple gait controllers, allowing the gait controllers to be interchanged during operation without having to alter the height controller. In some instances, such an arrangement may allow a robot to transition between gaits (e.g., from walking to galloping) without having to explicitly account for transitions between constant body pitch behaviors and non-constant body-pitch behaviors.") and [[the]] a rotation angle in the direction of the tilt angle of the legged robot is zero. (Paragraph 0125, "Block 706 involves determining a height of the first point mass based on the model and the state of the first pair of legs. In some implementations, the model of the robot may include therein a relationship between aspects of the state of the first pair of legs and the height of the first point mass. For instance, the joint angles of the first pair of legs may be used to determine a distance between the feet of the first pair of legs and the body of the robot (e.g., using inverse kinematics). The joint angles and/or sensors coupled to the robot's legs may indicate an angle of the leg with respect to the body or with respect to the ground. On the basis of the leg angle and amount of extension, a height of the first point mass may be determined." and Paragraph 0019, "The present application discloses implementations that relate to kinematic control of robots with non-constant body pitch and height. A quadruped robot, for example, might be configured to operate according to different gaits. Some gaits—such as standing, walking, or trotting—may maintain an approximately constant body pitch. Other gaits—such as running, galloping, or bounding—might cause the robot's body pitch to vary over time." which demonstrates that body pitch is monitored in order to achieve different desired motion patterns some of which are a stable flat pose.)
Fay does not specifically teach monitoring the system for the possibility of falling. However, Blankenspoor, in the same field of endeavor of robotics, teaches:
… obtaining a toppling direction of the legged robot at [[an]] the instantaneous moment each robotic leg contacts the plane; (Paragraphs 0127-0129, "The robot 200 may continue repeating the operations of determining the second distance and comparing the difference between the second and first distances to the threshold difference until the robot 200 detects an indication to stop repeating the operations. For example, the robot may stop repeating the operations when it detects an indication that the pair of feet is no longer in contact with the ground surface. This may indicate that the pair of feet has lifted off of the ground to enter a swinging state. Further, the robot 200 may stop repeating the operations if detects an indication of a slip of the robot's feet that exceeds the threshold. Other examples are also possible.
At block 708, the robot 200 may determine that the difference between the first distance between the pair of feet and the second distance between the pair of feet exceeds the threshold difference. The determination may be based on the comparison of the differences in all three coordinate directions, and may further be based on at least one of the three differences exceeding the respective threshold. The robot may additionally or alternatively determine that the difference between the scalar distances exceeds the scalar threshold difference.
At block 710, based on the determination that the difference exceeds the threshold difference, the robot 200 may cause itself to react. The robot 200 may take one or more actions based on the determination that a threshold difference between the pair of feet has been exceeded. For example, the robot 200 may generate an indication of slip. The indication may be sent to systems within the robot 200 that may further respond to the slip or log the indication, among other examples." Please also see paragraph 0134.) and
controlling each robotic leg of the legged robot to move along the toppling direction of the legged robot, (Paragraph 0105, "The robot 200 may further determine a second, smaller threshold orientation and a second adjusted ground reaction force as noted above. Then, before causing the foot 602 to apply the first force on the ground surface 604 approximately equal to and opposing the first adjusted ground reaction force 616, the robot 200 may cause the foot 602 to apply a second force on the ground surface 604 approximately equal to and opposing the second ground reaction force. By causing the foot 602 to apply the second force on the ground surface 604 in the initial stages of the step, the robot 200 may decrease the likelihood of a slip of foot 602." Please see paragraph 0134 as well.) …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and control methods as taught by Fay with the ability to monitor the system for falling probability as taught by Blankenspoor. It would be obvious to incorporate the ability to monitor and adjust for the possibility of a slip/fall incident as taught by Blankenspoor. This would ensure that the system reacts appropriately to the possibility of a fall and is able to prevent when possible.
Claim(s) 7 and 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over Fay in view of Su and Deits and in further view of Goulding et al. (US 20140100697 A1), hereinafter Goulding.
Regarding claim 7, where all the limitations of claim 1 are discussed above, Fay further teaches:
7. (Currently Amended) The method according to claim 1, wherein the first expected moving trajectory indicates that after each robotic leg of the legged robot contacts the plane, … and an angle value of the tilt angle of the legged robot first and then (Please see figure three which demonstrates the posture of the robot changing over the course of the movement of the system where the angle goes from zero to the extreme and then returns to zero. Paragraph 0058, "FIG. 3 is a conceptual illustration of a model of a robot, according to an example implementation. In frame 300, a running robot is illustrated in four different states at four respective points in time. At state 302, the robot lands on its front legs, with its body pitched forward. At state 304, the robot's rear legs touch down and the body pitch is level. At state 306, the robot's rear legs remain planted while the front legs lift upwards, resulting in a rear-leaning body pitch. At state 308, the robot is in “flight” with no feet in contact with the ground and a level body pitch. States 302-308 may repeat any number of times to carry out a running gait.")
Fay does not specifically teach the compression and extension steps associated with movement. However, Goulding, in the same field of endeavor of robotic control, teaches:
… a height of the center of mass of the legged robot in the direction of gravity first and then (Paragraph 0366, "According to a further aspect of the invention, the method of hopping of an inline legged vehicle, wherein the hopping states include compression, thrust, unloading, flight, and landing.") …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and control methods as taught by Fay with the details of the movement including compression and thrust etc. as taught by Goulding. This demonstrates the phases of a gait/motion pattern which allows the system to perform a “hopping” motion.
Regarding claim 17, where all the limitations of claim 11 are discussed above, Fay further teaches:
17. (Currently Amended) The computer device according to claim 11, wherein the first expected moving trajectory indicates that after each robotic leg of the legged robot contacts the plane, … and an angle value of the tilt angle of the legged robot first and then (Please see figure three which demonstrates the posture of the robot changing over the course of the movement of the system where the angle goes from zero to the extreme and then returns to zero. Paragraph 0058, "FIG. 3 is a conceptual illustration of a model of a robot, according to an example implementation. In frame 300, a running robot is illustrated in four different states at four respective points in time. At state 302, the robot lands on its front legs, with its body pitched forward. At state 304, the robot's rear legs touch down and the body pitch is level. At state 306, the robot's rear legs remain planted while the front legs lift upwards, resulting in a rear-leaning body pitch. At state 308, the robot is in “flight” with no feet in contact with the ground and a level body pitch. States 302-308 may repeat any number of times to carry out a running gait.")
Fay does not specifically teach the compression and extension steps associated with movement. However, Goulding, in the same field of endeavor of robotic control, teaches:
… a height of the center of mass of the legged robot in the direction of gravity first and then (Paragraph 0366, "According to a further aspect of the invention, the method of hopping of an inline legged vehicle, wherein the hopping states include compression, thrust, unloading, flight, and landing.") …
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the robotic system and control methods as taught by Fay with the details of the movement including compression and thrust etc. as taught by Goulding. This demonstrates the phases of a gait/motion pattern which allows the system to perform a “hopping” motion.
Allowable Subject Matter
Claims 2-5, 8-9, 12-15, and 18-19 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The Examiner has cited particular paragraphs or columns and line numbers in the referencesapplied to the claims above for the convenience of the Applicant. Although the specified citations arerepresentative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested of the Applicant in preparing responses, to fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner. See MPEP 2141.02 [R-07.2015] VI. A prior art reference must be considered in its entirety, i.e., as a whole, including portions that would lead away from the claimed Invention. W.L. Gore & Associates, Inc. v. Garlock, Inc., 721 F.2d 1540, 220 USPQ 303 (Fed. Cir. 1983), cert, denied, 469 U.S. 851 (1984). See also MPEP §2123.
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
/H.J.K./Examiner, Art Unit 3657
/ADAM R MOTT/Supervisory Patent Examiner, Art Unit 3657