| CPC G06T 7/60 (2013.01) [G06T 17/205 (2013.01); B25J 13/08 (2013.01); G06T 2207/10028 (2013.01); G06T 2210/12 (2013.01)] | 13 Claims |

|
8. A legged robot comprising:
one or more processors;
a memory; and
one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprises:
instructions for obtaining a plurality of depth images of an environment in a walking direction of a legged robot;
instructions for creating a three-dimensional model of the environment based on the depth images;
instructions for determining at least one even region from the three-dimensional model of the environment; and
instructions for selecting one or more of the at least one even region as one or more candidate footstep locations for the legged robot to step on;
wherein the three-dimensional model of the environment is represented by triangle meshes, and is created by mapping the depth images to a voxel grid for a gridding processing, wherein the gridding processing comprises: connecting positions in the voxel grid and constructing vertexes of the triangle meshes using a preset algorithm, and wherein values of signed distance field of the connected positions in the voxel grid are equal to 0; and
wherein the instructions for determining the at least one even region from the three-dimensional model of the environment, comprise:
instructions for calculating a normal line and a curvature of each of the triangle meshes in the three-dimensional model of the environment; and
instructions for clustering based on the normal line and the curvature of each of the triangle meshes to obtain the at least one even region from the three-dimensional model of the environment;
wherein the instructions for clustering based on the normal line and the curvature of each of the triangle meshes to obtain the at least one even region from the three-dimensional model of the environment, comprise:
instructions for selecting one of the triangle meshes with a smallest curvature as an initial seed mesh;
instructions for determining whether the normal lines of the triangle meshes neighboring the seed mesh meet a first preset condition, and determining whether the curvatures of the triangle meshes neighboring the seed mesh meet a second preset condition;
instructions for, in response to the normal lines of one or more of the triangle meshes neighboring the seed mesh meeting the first preset condition, merging the one or more of the triangle meshes neighboring the seed mesh with the seed mesh to form an updated seed mesh;
instructions for, in response to the curvature of one of the triangle meshes neighboring the seed mesh meeting the second preset condition, setting the one of the triangle meshes neighboring the seed mesh as a new seed mesh; and
instructions for determining a region corresponding to the updated seed mesh as one of the at least one even region; and
wherein the instructions for calculating the normal line and the curvature of each of the triangle meshes in the three-dimensional model of the environment comprise:
instructions for calculating a normal line and a curvature of each vertex in each of the triangle meshes;
instructions for calculating an average of the normal lines and an average of the curvatures of the vertexes of each of the triangle meshes; and
instructions for determining the averages of the normal lines of the vertexes of the triangle meshes as the normal lines of the triangle meshes, and determining the averages of the curvatures of the vertexes of the triangle meshes as the curvatures of the triangle meshes.
|