Patent Document ID: 9931753
Application ID: 14807018
Patent Status: 1

Claim One:
1. A method comprising: receiving, at a computing system of a robotic device in an environment, an input for the robotic device to move in the environment at a given velocity; responsive to receiving the input, identifying respective gaits of a plurality of gaits associated with the robotic device that enable the robotic device to move in the environment at the given velocity; responsive to identifying the respective gaits, determining a first set of operation criteria for selecting a gait from the respective gaits for the robotic device to perform, wherein the first set of operation criteria is based on sensor data indicative of a plurality of parameters of the environment, and wherein the plurality of parameters include respective parameters indicative of a slope and roughness of the environment; modifying the first set of operation criteria based on prior operation of the robotic device in respective environments that have parameters having a threshold similarity according to a set of criteria to the plurality of parameters of the environment of the robotic device; determining a second set of operation criteria for selecting the gait from the respective gaits for the robotic device to perform, wherein the second set of operation criteria is based on a state of the robotic device indicative of both respective operation of extendable legs of the robotic device and an internal state indicative of a point of operation of a current gait of the robotic device; responsive to determining both the modified first set of operation criteria and the second set of operation criteria, determining whether the respective gaits include a given gait that enables the robotic device to move in the environment at the given velocity according to the modified first set of operation criteria and the second set of operation criteria by: determining at least two gaits of the respective gaits that enable the robotic device to move in the environment at the given velocity according to the modified first set of operation criteria and the second set of operation criteria; and based on determining the at least two gaits, selecting the given gait that uses less power from the at least two gaits for the robotic device to perform; and based on determining that the respective gaits include the given gait that enables the robotic device to move in the environment at the given velocity, providing instructions to one or more systems of the robotic device to perform the given gait.