This application claims priority of PCT Application No. PCT/EP2011/063801 filed Aug. 11, 2011 and claims foreign priority to French patent application No. 10 056798, filed on Aug. 27, 2010, the disclosure of which are hereby incorporated by reference in their entirety.
The present invention belongs to the field of humanoid robots. More precisely, it applies to the management of the falls of said robot, these being a particularly penalizing event for the development of the uses of these robots.
A robot can be described as humanoid when it possesses certain attributes of the appearance and functionalities of man: a head, a trunk, two arms, two hands, two legs, two feet, etc. Beyond appearance, the functions that a humanoid robot is capable of fulfilling will depend on its ability to perform movements, to speak and to “reason”. Humanoid robots are capable of walking, of making gestures, with the limbs or with the head. The complexity of the gestures that they are capable of performing is ever increasing. However, robots remain fragile, notably on account of the motors of their articulations. This fragility is a significant handicap for the development of mass-market applications. Indeed, within the context of these applications, it is particularly deleterious to have to cope with breakages or faults due to repeated falls since it would be necessary for producers and distributors of humanoid robots to deploy an after-sales service of disproportionate significance to the initial sales, and at an unacceptable cost to the public at large.
A first strategy applicable to humanoid robots endowed with a walking capability for minimizing the risks of falls is to ensure that said walking is sufficiently stable. A widely used means for doing this is to adjust the trajectory of the robot in such way that the Zero Moment Point (ZMP) (i.e. the point on the ground where the moment of the bearing axis and the moment of the azimuth axis are zero) is included in the robot's support polygon (i.e. in the case of a walking robot, if the latter is standing on one foot, the support polygon will have the shape of this foot. If it is standing on its two feet, the area of this polygon will be that of the two feet, plus the interpodal area.) This strategy is however not sufficient to ensure stability of the robot under all conditions, notably in cases where the robot has to advance over an uneven terrain, perform movements which place it at a limit of equilibrium or sustain knocks caused by third parties.
Conventional solutions to this problem use common principles comprising verifying that the projection of the center of mass of the robot on the surface of advancement remains included in the support polygon for the robot and then, in the case of exiting of said center of mass from said polygon, to determine the best fall posture as a function of the angle of exit of said polygon. These solutions operate correctly in the simple case of a static robot endowed with sensors making it possible to decide without ambiguity that the robot is in a fall position. The same does not hold in the case of robots while walking, notably when said fall detection sensors may confuse a normal gesture included in the walking trajectory and the onset of a fall. Indeed, in this case, mechanisms for protecting against falls will be triggered inappropriately whereas there is no reason to interrupt the normal course of the robot's activities.
The present invention solves this problem by affording means making it possible to discriminate in a more precise manner the cases where it is really necessary to implement appropriate mechanisms for protecting the robot against falls. This discrimination is effected by defining a virtual support polygon, derived from the physical polygon by adding to it points which are almost in contact with the surface of advancement.
For this purpose, the present invention discloses a humanoid robot capable of moving on a surface comprising at least one module for detecting the contact of at least one first extremity of the robot with said surface and a module for computing a position of a point of projection of a center of mass of said robot with respect to a first support polygon comprising at least said at least one first extremity, said robot further comprising at least a module for detecting a proximity of at least one second extremity of said robot with said surface, and wherein said module for computing the position of the point of projection of the center of mass of said robot with respect to the first support polygon is further configured to compute the position of the projection of the center of mass of said robot with respect to a second support polygon, said second polygon being deduced from the first polygon by adding to the latter points of projection on said surface of said second at least one extremity of said robot belonging to a group of extremities of said robot detected as in near-contact with said surface.
Advantageously, the module for detecting the proximity of said at least one second extremity with said surface receives as input the position of said at least one second extremity with respect to said surface, said position being provided as output of a geometric model of the robot comprising at least the position in space of said extremity in a reference frame of the robot.
Advantageously, the condition according to which a second extremity of the robot is in near-contact with said surface is characterized by a distance threshold chosen as a function of criteria belonging to a group of criteria comprising at least the size of the robot and the maximum swing in height of its lower limbs.
Advantageously, said at least one first extremity is one of the robot's feet, said foot comprising at least one pressure force sensor.
Advantageously, said at least one second extremity is one of the robot's hands.
Advantageously, the robot of the invention furthermore comprises, as input of said module for computing the position of the point of projection of the center of mass of said robot with respect to a support polygon, a module for filtering the robot's postures by comparing according to a predefined criterion a distance between geometric models of said postures and the geometric models of reference postures.
Advantageously, the robot of the invention furthermore comprises an inertia measurement unit providing the module for computing the position of the point of projection of the center of mass of said robot with a vertical axis whose angle with the axis connecting the thorax and one of the robot's feet in contact with the ground and with an angle of rotation to be applied to the axis of projection of the center of mass of the robot.
Advantageously, the robot of the invention furthermore comprises, at an output of said module for computing the position of the point of projection of the center of mass of said robot with respect to a support polygon, a module for monitoring a group of actions for protecting against falls, at least one of said actions being triggered when said computation module provides at least one output characteristic of a fall state of the robot in which the point of the projection of its center of mass is outside the second support polygon.
Advantageously, the group of protection actions comprises at least the disabling of the slaving of the articulations of the legs of the robot, the placing in a posture of protection of at least one element belonging to the group comprising at least the head, the arms and the pelvis, and the disabling of the articulations of at least one element belonging to said group.
Advantageously, said computation module furthermore provides the module for monitoring the group of actions for protecting against falls, for a state characterizing a fall state of the robot, with an angle characterizing a direction of fall in a reference frame of the robot, the value of said angle of fall with respect to chosen reference values determining the choice of the protection actions in the group of actions for protecting against falls to be executed.
Advantageously, when an angle of fall determines a forward fall, the placing in a posture of protection of the head includes placing it substantially rearward, the placing in a posture of protection of the arms includes placing them substantially forward and the placing in a posture of protection of the pelvis includes closing the pelvis.
Advantageously, when an angle of fall determines a fall to the left or the right, the placing in a posture of protection of the head includes placing the head substantially forward, the placing in a posture of protection of the arms includes grouping the arms together substantially toward the body and the placing in a posture of protection of the pelvis includes opening the pelvis.
Advantageously, when the angle of fall determines a rearward fall, the placing in a posture of protection of the head includes placing the head substantially forward, the placing in a posture of protection of the arms includes bringing the arms substantially rearward and the placing in a posture of protection of the pelvis includes closing the pelvis.
The invention also discloses a method for managing the falls of a humanoid robot capable of moving on a surface and comprising at least one module for detecting the contact of at least one first extremity of the robot with said surface, said method comprising a step of computing the position of the point of projection of a center of mass of said robot with respect to a first support polygon comprising at least said at least one first extremity, said method further comprising at least one step of detecting a proximity of at least one second extremity of said robot with said surface and a step of computing a position of a projection of the center of mass of said robot with respect to a second support polygon, said second polygon being deduced from the first polygon by adding to the latter points of projection on said surface of said at least one second extremity of said robot belonging to a group of extremities of said robot detected as in near-contact with said surface.
The invention also discloses a computer program comprising program code instructions configured for allowing execution of the method as claimed in claim 14 when the program is executed on a computer, said program being adapted for allowing the management of falls of a humanoid robot capable of moving on a surface and comprising at least one module for detecting the contact of at least one first extremity of the robot with said surface, said program comprising a module for computing the position of a point of projection of a center of mass of said robot with respect to a first support polygon, said computer program further comprising at least one input module for detection data of a proximity of at least one second extremity of said robot with said surface and a module for computing a position of projection of the center of mass of said robot with respect to a second support polygon, said second polygon being deduced from the first polygon by adding to the latter points of projection on said surface of said at least one second extremity of said robot belonging to a group of extremities of said robot detected as in near-contact with said surface.
The algorithm of the invention furthermore presents the advantage of using only equations of first degree and consequently of being much less greedy in terms of computation resources at the fall detection stage than the prior art solutions.
The solution can advantageously be combined with a prior filtering of the acceptable postures which could be wrongly considered to be fall postures, thereby further increasing the computational effectiveness of the invention.
Furthermore, according to the invention, in the case of detecting a fall situation, a protection solution chosen as a function of particularly simple criteria will be implemented, this simplicity also leading to a computational effectiveness which is indispensable in the case of multifunction humanoid robots which must be able to keep resources available for accomplishing all these functions. It is also noted that the modes of fall management of the invention combine particularly well with the modes of managing faults (motor faults, electrical faults, etc.) in which the robots must be placed in a protection position.
The invention will be better understood and its various characteristics and advantages will emerge from the description which follows of several exemplary embodiments and its appended figures whereof:
The stability of a solid placed on the ground is conventionally determined by the position of the projection of its center of mass on the ground with respect to its support polygon on the ground.
In the case of a humanoid robot endowed with feet standing upright, as illustrated by
The projection of the center of mass 120d, 120f will also be outside the support polygon 110d, 110f in the cases illustrated by
In the case illustrated in
The present invention solves this drawback of the prior art.
According to the prior art, once a fall condition is detected according to the principle described hereinabove in the commentary to
Fall management mechanisms of the prior art are described in Fujiwara et al, “Falling Motion Control to Minimize Damage to Biped Humanoid Robot” and “The First Human-size Humanoid that can Fall Over Safely and Stand-up Again”, Proceedings of the IEEE/RSJ, Intl. Conference on Intelligent Robots and Systems, EPFL, Lausanne, Switzerland, October 2002 and Las Vegas, Nev., October 2003. These mechanisms use the measurements of the inclination θ of the vertical axis of the robot with respect to the vertical with respect to the ground and of the speed VCdM of the center of mass of the robot to predict the part of the robot which will touch the ground first. These measurements are performed in a dynamic manner by modeling the movements of the robot as an inverse pendulum oscillating with respect to the vertical to the ground. The computations to be performed are particularly greedy in terms of computation power, thereby limiting the possibility of using them in robots whose computational capabilities are assigned in a privileged manner either to permanent tasks, such as managing the movements of the articulations and environment sensors, or to usage tasks, such as managing speech and behaviors.
The present invention makes it possible to circumvent this limitation.
This robot comprises about two dozen electronic cards for controlling sensors and actuators which pilot the articulations. An articulation normally has at least two degrees of freedom and therefore two motors. Each motor is piloted in terms of angle. The articulation also comprises several position sensors, notably MREs (Magnetic Rotary Encoders). The electronic control card comprises an off-the-shelf microcontroller. This may be for example a DSPIC™ from the company Microchip. It is a 16-bit MCU coupled to a DSP. This MCU has a looped slaving cycle of one ms. The robot can also comprise other types of actuators, notably LEDs (Light-emitting diodes) whose color and intensity can convey the emotions of the robot. The latter can also comprise other types of position sensors, notably an inertia measurement unit, FSRs (Ground pressure sensors). These FSRs, 310, are particularly useful for the implementation of the present invention. They are intended within this context to detect the contact of each of the feet with the ground or any other surface of advancement of the robot. With this aim it is possible to use, for example, FlexiForce™ sensors from the company TEKSCAN™ which include a tape with at least two layers of piezo-resistive flexible material. The electrical resistance of the tape decreases as a function of the vertical pressure force applied to the surface on which the tape is disposed. Measurement of the current makes it possible to determine the pressure force after calibration. Several sensors, for example four, are advantageously envisaged on the sole of each foot.
The head comprises the robot's intelligence, notably the card which executes the high-level functions which allow the robot to accomplish the jobs assigned to it. The processor of the card can be an off-the-shelf x86 processor. A low-consumption processor such as the Geode™ from the company AMD (32 bits, 500 MHz) will be chosen in a privileged manner. The card also comprises a set of RAM and flash memories. This card also manages the communications of the robot with the outside (behaviors server, other robots, etc.), normally on a WiFi, WiMax transmission layer, optionally on a public network for mobile data communications with standard protocols optionally encapsulated in a VPN. The processor is normally piloted by a standard OS thereby making it possible to use the usual high-level languages (C, C++, Python, etc.) or the specific languages for artificial intelligence such as URBI (specialized programming language for robotics) for programming the high-level functions.
Another card is housed in the robot's trunk. It is there that the computer which ensures the transmission to the cards for controlling the articulations of the orders computed by the card of the head is situated. The computer of this card is also an off-the-shelf processor. This can advantageously be a 32-bit processor of the ARM 9™ type clocked at 100 MHz. The type of the processor, its central position, close to the on/off button, its link to the control of the power supply make it a tool that is well suited to the management of the robot's power supply (standby mode, emergency stop, etc.). The card also comprises a set of RAM and flash memories.
As explained hereinbelow in the commentary to
At a given instant, the angles of each of the articulations of the robot are known to the central system of the robot. Consequently, the relative position of each articulation with respect to all the others can easily be computed, since it in fact entails an articulated chain, all of whose degrees of freedom are determined and known. To easily compute the position of a point b in the reference frame of another point a, use is made of matrices of size 4×4 termed homogeneous transformation matrices of the type aHb which are composed of a rotation matrix of size 3×3 and of a translation matrix of size 3×1. Homogeneous transformation matrices have in particular the following properties:
The reference frame of the torso, 400, is generally used as main reference frame of the robot. The positions of the left and right hands (respectively 410, 420) and of the left and right feet (respectively 430, 440) in this reference frame are given by the matrices 0H1, 0H2, 0H3, 0H4. The angles of rotation are given by the angles of the motors of the articulations and the translation distances by the inter-articulation distances.
To compute the position of the left hand 410 with respect to the ground, that is to say in the configuration of
4H1=0H4−1×0H1.
This scheme can be used to compute the position of any point of the robot in an absolute reference frame, in particular of any effector such as those positioned in
The principle of the invention comprises computing a virtual or projected support polygon taking account of effectors close to the ground which will therefore normally be able to ensure the stability of the robot.
The polygons 510a, 510b and 510c correspond respectively to the polygons 110b, 110d and 110f of
The centers of mass 520a, 520b, 520c are henceforth situated in each case inside the virtual support polygon and the fall detection algorithm determines that there is no reason to trigger the fall management mechanism, whereas the algorithm of the prior art would have triggered it, as indicated in the commentary to
According to the flowchart represented in
It is noted in the figure that the robot's feet not being placed flat on the ground and making an angle θ with the latter, it is not possible to consider the perpendicular to the feet to be the projection of the center of mass. The robot's orientation given by the articular variables will not then be correct. It is therefore necessary to correct it. To do this the data of the inertia measurement unit will be included in the computation, as explained hereinbelow in the commentary to
The algorithm comprises resetting the orientation of the torso on the inertia measurement unit's position measurements. The inertia measurement unit delivers two angles of rotation on the basis of the measurement of 3 accelerometers and of 2 gyroscopes. The rig is itself continuously reset. If there is an offset between the two measurements, it is concluded that the foot forms a nonzero angle θ with the ground and θ is computed, being equal to the angle made by the foot-torso axis with the vertical given by the rig.
It was seen hereinabove in the commentary to
The filtering of the robot's postures is carried out by using the values of the angles of the articulations, the outputs of the feet contact sensors and the measurements of the inertia measurement unit. The data of the posture to be filtered are compared with those of the reference postures stored in a database. A distance minimization principle (for example, sum of the relative differences of each datum filtered with respect to the corresponding reference datum) is used for this comparison. The distance measurement according to this criterion is compared with a threshold fixed as a function of the number of data and as a function of the results of the experiment.
This function is implemented by the module ALRobotPose in the exemplary implementation architecture represented in
When a fall situation is detected by the means indicated hereinabove in the commentary to
In particular in parallel the slaving of the articulations of the legs (not those of the pelvis) will be removed and a protection movement will be performed which will depend on the fall angle determined as indicated hereinbelow in the commentary to
When a fall situation is detected by the means indicated hereinabove in the commentary to
From the point of view of the choice of protection strategies, the right and left sectors are equivalent. Within the context of the embodiment illustrated in this figure, the angle of fall therefore makes it possible to determine three sectors which lead to the choice of three different strategies explained hereinbelow in the commentary to
A robot such as NAO is advantageously endowed with high-level software allowing the piloting of the functions of the robot in an embodiment of the invention. A software architecture of this type, dubbed NAOQI, has been disclosed notably in patent application WO2009/124955 published on Oct. 15, 2009. It comprises the basic functions for managing the communications between a robot and a PC or a remote site and exchanging software which provides the software infrastructure necessary for the implementation of the present invention.
NAOQI is a framework optimized for robotic applications; it supports several languages, notably C++, Python and Urbi.
Within the context of the present invention, the following modules of NAOQI are particularly useful:
These four modules are advantageously coded in C++. The figure also indicates the data flows between modules.
In particular, the inputs necessary for the implementation of the Fall manager functions are:
In the case of detecting a fall, the Fall manager functions dispatch commands for updating the articulations, notably to perform the reflex protection movements and to deactivate the articulations.
Also indicated in the figure, purely by way of illustration, are values of the refresh cycles for the data processed by each module: 20 ms for the updating of the robot's posture and the fall management data; 10 ms for the values of the sensors.
The Fall Manager functions may be triggered by poor operation of certain sensors, for example the MRE sensors. In this case, erratic movements of one or more articulations will occur and if the fault causes exit of the center of mass from the virtual support polygon, placement in a protection position will be triggered. The Fall Manager therefore supplements the functions for managing the faults of the robot.
The examples described hereinabove are given by way of illustration of embodiments of the invention. They do not in any way limit the field of the invention, defined by the claims which follow.
Number | Date | Country | Kind |
---|---|---|---|
10 56798 | Aug 2010 | FR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2011/063801 | 8/11/2011 | WO | 00 | 5/10/2013 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2012/025387 | 3/1/2012 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
4541771 | Beni et al. | Sep 1985 | A |
20040176875 | Iribe et al. | Sep 2004 | A1 |
20040236469 | Moridaira et al. | Nov 2004 | A1 |
20050234593 | Goswami et al. | Oct 2005 | A1 |
20070016329 | Herr et al. | Jan 2007 | A1 |
20100161126 | Goswami et al. | Jun 2010 | A1 |
20110029128 | Serre et al. | Feb 2011 | A1 |
Number | Date | Country |
---|---|---|
1518488 | Aug 2004 | CN |
2009124951 | Oct 2009 | WO |
2009124955 | Oct 2009 | WO |
Entry |
---|
Fujiwara et al. 2003 IEEE/RSJ Intl. Conference on Intelligent Robots and Systems “The First Human-size Humanoid that can fall over Safely and Stand-up Again”, pp. 1920-1926, Oct. 2003. |
Kiyoshi Fujiwara, et al., “UKEMI: Falling Motion Control to Minimize Damage to Biped Humanoid Robot”, Proceedings of the 2002IEEE/RSJ International Conference on Intelligent Robots and Systems, Sep. 20, 2002, pp. 2521-2526, vol. 3, XP010609471. |
Number | Date | Country | |
---|---|---|---|
20130231822 A1 | Sep 2013 | US |