The present disclosure claims priority to Chinese Patent Application No. 201911188547.8, filed Nov. 28, 2019, which is hereby incorporated by reference herein as if set forth in its entirety.
The present disclosure relates to robot technology, and particularly to a foot-waist coordinated gait planning method as well as an apparatus and a robot using the same.
Legged robots can not only walk on flat grounds, but also walk in complex environments, for example, climbing up and down steps/slopes, crossing obstacles, and moving on uneven grounds. Typical walking gait is to fit robot feet to the ground (without considering the effect of the orientation of the feet when contacting the ground), then perform an inverse kinematics calculation to convert the planned movement trajectory into the desired joint angle, so as to realize trajectory tracking by driving the servo of the joint. This method fails to fully consider the postural changes of the foot and the waist, and cannot effectively coordinate the foot and the waist, which has low accuracy and is difficult to perform complex motions such as dance and motion imitations.
To describe the technical schemes in the embodiments of the present disclosure or in the prior art more clearly, the following briefly introduces the drawings required for describing the embodiments or the prior art. It should be understood that, the drawings in the following description merely show some embodiments of the present disclosure. For those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
In order to make the objects, features and advantages of the present disclosure more obvious and easy to understand, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the drawings. Apparently, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present disclosure without creative efforts are within the scope of the present disclosure.
It is to be understood that, when used in the description and the appended claims of the present disclosure, the terms “including” or (“comprising”) indicate the presence of stated features, integers, steps, operations, elements and/or components, but do not preclude the presence or addition of one or a plurality of other features, integers, steps, operations, elements, components and/or combinations thereof.
It is also to be understood that, the terminology used in the description of the present disclosure is only for the purpose of describing particular embodiments and is not intended to limit the present disclosure. As used in the description and the appended claims of the present disclosure, the singular forms “one”, “a”, and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
It is also to be further understood that the term “and/or” used in the description and the appended claims of the present disclosure refers to any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.
As used in the description and the appended claims, the term “if” may be interpreted as “when” or “once” or “in response to determining” or “in response to detecting” according to the context. Similarly, the phrase “if determined” or “if [the described condition or event] is detected” may be interpreted as “once determining” or “in response to determining” or “on detection of [the described condition or event]” or “in response to detecting [the described condition or event]”.
In addition, in the present disclosure, the terms “first”, “second”, “third” and the like in the descriptions are only used for distinguishing, and cannot be understood as indicating or implying relative importance.
S101: obtaining an orientation of each foot 200 of the legged robot, and calculating a positional compensation amount of each ankle A of the legged robot based on the orientation of the foot 200.
In which, the orientation of each of the feet of the robot can be denoted as (roll, pitch, yaw), where roll is the roll angle of the orientation of the foot, pitch is the pitch angle of the orientation of the foot, and yaw is the yaw angle of the orientation of the foot.
S1011: determining the initial position of a supporting point S between a foot 200 (see
In which, the initial position of the supporting point S (i.e., the lowest point of the foot with respect to the ankle) can be represented by an initial vector {right arrow over (AS)} from the ankle A to the supporting point S, which is denoted as (ll, dd, hh)T, where ll is the first component of the vector {right arrow over (AS)}, dd is the second component of the vector {right arrow over (AS)}, hh is the third component of the vector {right arrow over (AS)}, and T is the transpose operation.
S10111: determining a first component of the initial vector {right arrow over (AS)} based on a pitch angle in the orientation of the foot.
If pitch>0, it represents the case of supporting through the toe (i.e., supporting through the F1F2 side shown in
If pitch=0, it represents the case of supporting through the bottom surface (i.e., the sole) of the foot (i.e., supporting through the M1M2 side shown in
If pitch<0, it represents the case of supporting through the heel (i.e., supporting through the B1B2 side shown in
S10112: determining a second component of the initial vector AS based on a roll angle in the orientation of the foot.
If roll>0, it represents the case of supporting through the right side of the foot (i.e., supporting through the F2B2 side shown in
If roll=0, it represents the case of supporting through the bottom surface (i.e., the sole) of the foot (i.e., supporting through the x-axis support shown in
If roll<0, it represents the case of supporting through the left side of the foot (i.e., supporting through the F1B1 side shown in
S10113: determining a third component of the initial vector based on the height AO of the ankle A of the legged robot.
That is, hh=−h_soles, where h_soles is the height AO of the ankle A.
S1012: calculating the positional compensation amount of the ankle of the legged robot based on the orientation of the foot and the position of the supporting point S.
S10121: calculating a first positional compensation amount of the ankle based on a yaw angle in the orientation of the foot and the initial vector {right arrow over (AS)}.
In which, the first positional compensation amount of the ankle after rotated can be calculated based on the formula of:
{right arrow over (AS)}=Rz(yaw)·(ll,dd,hh)T;
where, Rz(yaw) is the first rotation matrix, and
S10122: calculating a second positional compensation amount of the ankle based on the pitch angle, the roll angle and the yaw angle in the orientation of the foot 200 and the initial vector of the support point S.
In which, the second compensation amount of the position of the ankle can be calculated based on the formula of:
SA′=Rz(yaw)Ry(pitch)Rx(roll)·(−ll,−dd,−hh)T;
where, Ry(pitch) is the second rotation matrix and
is the third rotation matrix, and
S10123: using a sum of the first positional compensation amount of the ankle and the second positional compensation amount of the ankle as the positional compensation amount (i.e., {right arrow over (AA′)}={right arrow over (AS)}+{right arrow over (SA′)}) of the ankle.
The positional compensation amount of the ankle is denoted as d_ankle, then:
d_ankle=Rz(yaw)·(ll,dd,hh)T+Rz(yaw)Ry(pitch)Rx(roll)·(−ll,−dd,−hh)T.
S102: obtaining an orientation of the waist T of the legged robot, and calculating a positional compensation amount of each hip H of the legged robot based on the orientation of the waist T.
As shown in
As the posture of point T changes, the link HT will rotate accordingly, which causes the position of the hip be changed from point H to point H′, that is, the new position of the hip. The change between H and H′, that is, the positional compensation amount of the hip is:
dhip=(R0−I)·(0,d,0)T;
where, I is the first orientation, that is, the orientation of the waist of the robot in the world coordinate system (denoted as Σw), and R0 is the second orientation, that is, the orientation of the waist of the robot in the waist coordinate system (denoted as Σ0).
S103: calculating a hip-ankle positional vector of the legged robot.
The hip-ankle positional vector is a positional vector from the hip to the ankle of each foot. The hip-ankle positional vector can be calculated based on the formula of:
p_hip2ankle_old=p6−p1;
where, p_hip2ankle_old is the hip-ankle positional vector, p6 is the position of the ankle, p1 is the position of the hip and p1=p0+(0, d, 0)T and p0 is the position of the waist.
S104: compensating the hip-ankle positional vector based on the positional compensation amount of the ankle A and the positional compensation amount of the hip H to obtain the compensated hip-ankle positional vector.
In which, the compensated hip-ankle positional vector can be calculated based on the formula of:
p_hip2ankle_new=p_hip2ankle_old+d_ankle−d_hip:
where, p_hip2ankle_old is the hip-ankle positional vector, d_ankle is the positional compensation amount of the ankle, d_hip is the positional compensation amount of the hip, and p_hip2ankle_new is the compensated hip-ankle positional vector.
S105: performing an inverse kinematics analysis on the compensated hip-ankle positional vector to obtain joint angles of the legged robot.
First, the hip positional vector in the ankle coordinate system can be calculated based on the compensated hip-ankle positional vector and the orientation of the foot 200.
In which, the hip positional vector can be calculated based on the formula of:
r=(R6T(−p_hip2ankle_new);
where, r=(rx, ry, rz)T and rx, ry, rz are three components of the hip positional vector, and R6 is the orientation of the foot 200.
Then, the inverse kinematics analysis is performed on the hip positional vector to obtain the joint angles of the legged robot.
The distance between the hip and the ankle is denoted as l3, then:
l3=∥r∥=√{square root over (rx2+ry2+rz2)}.
As shown in
where, l1 is the length of the thigh, and l2 is the length of the shank; the shank angle in the triangle HKA is denoted as α, then:
As shown in
q6=a tan 2(ry,rz); and
q5=−a tan 2(rx,sign(rz)√{square root over (ry2+rz2)})−α;
Based on the chain law, the relationship between the postures of each link is:
R6=R0Rs(q1)Rx(q2)Ry(q5)Ry(q4+q5)Rx(q6).
The above-mentioned formula can be deformed to obtain:
Rz=(q1)Rx(q2)Ry(q3)=R0TR6Rx(−q6)Ry(−q4−q5).
The above-mentioned formula can be expanded to obtain:
where, Ci=cos qi, si=sin qi, i∈{1,2,3}.
Based on the above-mentioned formula, the hip yaw angle q1, the hip roll angle q2, and the hip pitch angle q3 can be obtained as follows:
q1=a tan 2(−R12,R22);
q2=a tan 2(R32,√{square root over (R122−R222)}); and
Then, the process of the inverse kinematics analysis is completed, and each joint angle of the legged robot can be obtained.
In summary, in this embodiment, it obtains an orientation of each foot of the legged robot, and calculates a positional compensation amount of each ankle of the legged robot based on the orientation of the foot; obtains an orientation of a waist of the legged robot, and calculates a positional compensation amount of each hip of the legged robot based on the orientation of the waist; calculates a hip-ankle positional vector of the legged robot, where the hip-ankle positional vector is a positional vector from the hip to the ankle; compensates the hip-ankle positional vector based on the positional compensation amount of the ankle and the positional compensation amount of the hip to obtain the compensated hip-ankle positional vector; and performs an inverse kinematics analysis on the compensated hip-ankle positional vector to obtain joint angles of the legged robot. Through this embodiment, on the basis of the prior art, the changes of the orientation of the foot and the orientation of the waist are also taken into consideration, and the positions of the ankle and the hip (that is, the hip-ankle positional vector) are compensated to perform inverse kinematics analysis, which can realize effective foot-waist coordination and improve the accuracy of the movement, so as to complete various complex movements.
It should be understood that, the sequence of the serial number of the steps in the above-mentioned embodiments does not mean the execution order while the execution order of each process should be determined by its function and internal logic, which should not be taken as any limitation to the implementation process of the embodiments.
an ankle positional compensation amount calculation module 1001 configured to obtain an orientation of each foot of the legged robot, and calculating a positional compensation amount of each ankle of the legged robot based on the orientation of the foot;
a hip positional compensation amount calculation module 1002 configured to obtain an orientation of a waist of the legged robot, and calculating a positional compensation amount of each hip of the legged robot based on the orientation of the waist;
a hip-ankle positional vector calculation module 1003 configured to calculate a hip-ankle positional vector of the legged robot, where the hip-ankle positional vector is a positional vector from the hip to the ankle;
a hip-ankle positional vector compensation module 1004 configured to compensating the hip-ankle positional vector based on the positional compensation amount of the ankle and the positional compensation amount of the hip to obtain the compensated hip-ankle positional vector; and
an inverse kinematics analysis module 1005 configured to perform an inverse kinematics analysis on the compensated hip-ankle positional vector to obtain joint angles of the legged robot.
Furthermore, the ankle positional compensation amount calculation module 1001 can include:
a supporting point determining submodule configured to determine the initial position of a supporting point between the foot of the legged robot and a ground based on the orientation of the foot; and
an ankle positional compensation amount calculation submodule configured to calculate the positional compensation amount of the ankle of the legged robot based on the orientation of the foot and the position of the supporting point.
Furthermore, the supporting point determination submodule can include:
a first component determining unit configured to determine a first component of the initial vector based on a pitch angle in the orientation of the foot, where the initial vector is a vector from an ankle of the legged robot to the position of the supporting point;
a second component determining unit configured to determine a second component of the initial vector based on a roll angle in the orientation of the foot; and
a third component determining unit configured to determine a third component of the initial vector based on the height of the ankle of the legged robot.
Furthermore, the ankle positional compensation amount calculation submodule can include:
a first compensation amount calculation unit configured to calculate a first positional compensation amount of the ankle based on a yaw angle in the orientation of the foot and the initial vector;
a second compensation amount calculation unit configured to calculate a second positional compensation amount of the ankle based on the pitch angle, the roll angle and the yaw angle in the orientation of the foot and the initial vector; and
an ankle positional compensation amount calculation unit configured to use a sum of the first positional compensation amount of the ankle and the second positional compensation amount of the ankle as the positional compensation amount of the ankle.
Furthermore, the hip positional compensation amount calculation module 1002 can include:
a parameter obtaining submodule configured to obtain a first orientation, a second orientation, and a hip distance, where the first orientation is an orientation of the waist of the legged robot in a world coordinate system, the second orientation is an orientation of the waist of the legged robot in a waist coordinate system, and the hip distance is a distance from an origin of the waist coordinate system to the hip; and
a hip positional compensation amount calculation submodule configured to calculate the positional compensation amount of the hip of the legged robot based on the first orientation, the second orientation, and the hip distance.
Furthermore, the hip-ankle positional vector compensation module 1004 is configured to calculate the compensated hip-ankle positional vector based on the formula of:
p_hip2ankle_new=p_hip2ankle_old+d_ankle−d_hip;
where, p_hip2ankle_old is the hip-ankle positional vector, d_ankle is the positional compensation amount of the ankle, d_hip is the positional compensation amount of the hip, and p_hip2ankle_new is the compensated hip-ankle positional vector.
Furthermore, the inverse kinematics analysis module 1005 can include:
a hip positional vector calculation submodule configured to calculate a hip positional vector in a foot coordinate system based on the compensated hip-ankle positional vector and the orientation of the foot; and
an inverse kinematics analysis submodule configured to perform the inverse kinematics analysis on the hip positional vector to obtain the joint angle of the legged robot.
In this embodiment, each of the above-mentioned modules/submodules/units is implemented in the form of software, which can be computer program(s) stored in a memory of the foot-waist coordinated gait planning apparatus and executable on a processor of the foot-waist coordinated gait planning apparatus. In other embodiments, each of the above-mentioned modules/submodules/units may be implemented in the form of hardware (e.g., a circuit of the foot-waist coordinated gait planning apparatus which is coupled to the processor of the foot-waist coordinated gait planning apparatus) or a combination of hardware and software (e.g., a circuit with a single chip microcomputer).
Exemplarily, the computer program 112 may be divided into one or more modules/units, and the one or more modules/units are stored in the storage 111 and executed by the processor 110 to realize the present disclosure. The one or more modules/units may be a series of computer program instruction sections capable of performing a specific function, and the instruction sections are for describing the execution process of the computer program 112 in the robot 11.
The robot 11 may include, but is not limited to, the processor 110 and the storage 111. It can be understood by those skilled in the art that
The processor 110 may be a central processing unit (CPU), or be other general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or be other programmable logic device, a discrete gate, a transistor logic device, and a discrete hardware component. The general purpose processor may be a microprocessor, or the processor may also be any conventional processor.
The storage 111 may be an internal storage unit of the robot 11, for example, a hard disk or a memory of the robot 11. The storage 111 may also be an external storage device of the robot 11, for example, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, flash card, and the like, which is equipped on the robot 11. Furthermore, the storage 111 may further include both an internal storage unit and an external storage device, of the robot 11. The storage 111 is configured to store the computer program 112 and other programs and data required by the robot 11. The storage 111 may also be used to temporarily store data that has been or will be output.
Those skilled in the art may clearly understand that, for the convenience and simplicity of description, the division of the above-mentioned functional units and modules is merely an example for illustration. In actual applications, the above-mentioned functions may be allocated to be performed by different functional units according to requirements, that is, the internal structure of the device may be divided into different functional units or modules to complete all or part of the above-mentioned functions. The functional units and modules in the embodiments may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional unit. In addition, the specific name of each functional unit and module is merely for the convenience of distinguishing each other and are not intended to limit the scope of protection of the present disclosure. For the specific operation process of the units and modules in the above-mentioned system, reference may be made to the corresponding processes in the above-mentioned method embodiments, and are not described herein.
In the above-mentioned embodiments, the description of each embodiment has its focuses, and the parts which are not described or mentioned in one embodiment may refer to the related descriptions in other embodiments.
Those ordinary skilled in the art may clearly understand that, the exemplificative units and steps described in the embodiments disclosed herein may be implemented through electronic hardware or a combination of computer software and electronic hardware. Whether these functions are implemented through hardware or software depends on the specific application and design constraints of the technical schemes. Those ordinary skilled in the art may implement the described functions in different manners for each particular application, while such implementation should not be considered as beyond the scope of the present disclosure.
In the embodiments provided by the present disclosure, it should be understood that the disclosed apparatus (or device)/robot and method may be implemented in other manners. For example, the above-mentioned apparatus/robot embodiment is merely exemplary. For example, the division of modules or units is merely a logical functional division, and other division manner may be used in actual implementations, that is, multiple units or components may be combined or be integrated into another system, or some of the features may be ignored or not performed. In addition, the shown or discussed mutual coupling may be direct coupling or communication connection, and may also be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms.
The units described as separate components may or may not be physically separated. The components represented as units may or may not be physical units, that is, may be located in one place or be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of this embodiment.
In addition, each functional unit in each of the embodiments of the present disclosure may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional unit.
When the integrated module/unit is implemented in the form of a software functional unit and is sold or used as an independent product, the integrated module/unit may be stored in a non-transitory computer-readable storage medium. Based on this understanding, all or part of the processes in the method for implementing the above-mentioned embodiments of the present disclosure are implemented, and may also be implemented by instructing relevant hardware through a computer program. The computer program may be stored in a non-transitory computer-readable storage medium, which may implement the steps of each of the above-mentioned method embodiments when executed by a processor. In which, the computer program includes computer program codes which may be the form of source codes, object codes, executable files, certain intermediate, and the like. The computer-readable medium may include any primitive or device capable of carrying the computer program codes, a recording medium, a USB flash drive, a portable hard disk, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM), a random access memory (RAM), electric carrier signals, telecommunication signals and software distribution media. It should be noted that the content contained in the computer readable medium may be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to the legislation and patent practice, a computer readable medium does not include electric carrier signals and telecommunication signals.
The above-mentioned embodiments are merely intended for describing but not for limiting the technical schemes of the present disclosure. Although the present disclosure is described in detail with reference to the above-mentioned embodiments, it should be understood by those skilled in the art that, the technical schemes in each of the above-mentioned embodiments may still be modified, or some of the technical features may be equivalently replaced, while these modifications or replacements do not make the essence of the corresponding technical schemes depart from the spirit and scope of the technical schemes of each of the embodiments of the present disclosure, and should be included within the scope of the present disclosure.
Number | Date | Country | Kind |
---|---|---|---|
201911188547.8 | Nov 2019 | CN | national |
Number | Name | Date | Kind |
---|---|---|---|
5432417 | Takenaka | Jul 1995 | A |
5808433 | Tagami | Sep 1998 | A |
8301303 | Kwak | Oct 2012 | B2 |
9073209 | Lee | Jul 2015 | B2 |
20060195223 | Kawai | Aug 2006 | A1 |
20070145930 | Zaier | Jun 2007 | A1 |
20070267994 | Sugihara | Nov 2007 | A1 |
20080258669 | Fukuda | Oct 2008 | A1 |
20150202768 | Moridaira | Jul 2015 | A1 |
Number | Date | Country |
---|---|---|
109625118 | Apr 2019 | CN |
109987169 | Jul 2019 | CN |
Number | Date | Country | |
---|---|---|---|
20210162595 A1 | Jun 2021 | US |