Robot apparatus, and load absorbing apparatus and method

To appropriately detect overload which may break a motor or deform a body and reduce the overload in the motor. The DC component of a load torque is derived from the sum of absolute values of a torque applied to a link connected to the output shaft of a motor and the generated torque of the motor, and it is determined that overload has been applied when the DC component exceeds a first threshold value for a prescribed period of time or longer. In addition, considering such a characteristic that the variation of energy applied to the output shaft of a motor is in proportion to a product of the torque and the angular velocity of the motor, the AC component of the load torque is detected based on the variation of energy, and it is predicted that overload will be applied when the AC component exceeds a second threshold value.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to a robot apparatus, and a load absorbing apparatus and method for absorbing load applied to a motor, and specifically, to a robot apparatus, and a load absorbing apparatus and method for motors which are used as actuators for joint motion of a multi-joint type robot.

For more detail, this invention relates to a robot apparatus, and a load absorbing apparatus and method for appropriately detecting and controlling overload which is applied to a motor and may break the motor or deform the body of the robot apparatus, and more specifically, to a robot apparatus, and a load absorbing apparatus and method, which are applied to a multi-joint type robot comprising a plurality of actuator motors in order to prevent breakage of members and the body due to overload applied to the motors having a single or multiple axes.

2. Description of the Related Art

“Robot” is a mechanical apparatus which performs like human beings, with electrical or magnetic functions. This term “robot” is said to be originated from “ROBOTA (slave machine)” in Slavic. In Japan, robots were started to be spread in the late 1960s, and many of them were industrial robots such as manipulators and carrier robots for automated and unmanned factories. However, recent development relating to two-legged walking robot have been highly expected to be put to practical use. Specifically, the two-legged walking robot which is modeled after human motion is called humanoid robot.

As compared with crawler, four-leg, or six-leg type robots, two-leg type robot is unstable when moving, and its posture and walking are hard to be controlled. However, the two-leg type robot is capable of waking on uneven floors and going up and down steps and ladders, which is an advantage.

This kind of two-legged walking robot generally has a degree of freedom in many joints and these joints are moved by actuator motors. That is, a motor's output shaft is connected to one end of a link composing a part such as an arm or a leg, via a reduction gear, and the other end of the link is connected to a motor for next-joint motion. In order to realize desired performance and postures, servo control is performed based on the rotational position and rotational amount of each motor.

In general, a servo motor is used for realizing a degree of freedom in a joint of a robot, because it is easy to use, it is compact and has high torque, and it is superior in response. Specifically, an AC servo motor is brushless and maintenance free, so that it can be applied to an automated machine which is desired to work in unmanned working space, for example, to a joint actuator of a legged robot which walks freely. With a rotor comprising a permanent magnet and a stator consisting of multi-phase (for example, three-phase) coil windings, the rotor of the AC servo motor produces rotary torque with a sine wave flux distribution and a sine wave current.

Advanced two-legged walking robot autonomously walks and moves. In addition, this robot is capable of standing up from a lying position and holding and carrying objects with its arms. On the other hand, overload may be applied to its joint actuators when it falls down, bumps against something, and gets something into its body.

Such overload may cause fatal damage, for example, breakage or plastic deformation of its body. Therefore, what is crucial is that each motor constituting a joint actuator is provided with a mechanism for absorbing load.

FIG. 1shows a simple robot model. That is, the robot drives a motor120under the control of a higher-ranked controller not shown, and gives output torque to a link122via a gear121, so as to move a movable part.

In this figure, a torque limiter is provided between the gear121and the link122, in order to absorb shocks to be given from the outside to the link122, thereby being capable of previously preventing breakage of the motor120and so on, caused by the shocks, such as deformation of the output shaft of the motor120.

Various kinds of torque limiters (or servo savers) have been proposed (for example, refer to Japanese Patent Laid Open No. 60-192893).FIG. 2shows one example of the torque limiters.

In a torque limiter130of this figure, first and second semicircular friction plates132A and132B are arranged inside a ring131fixed to a link135. These first and second friction plates132A and132B are fixed to the output shaft134of a motor via elastic material133such as rubber or compression coil springs and are pressed against the ring131by a fixed pressure caused by the elastic material133.

In this torque limiter130, the ring131can be generally rotated together with the output shaft134of the motor by frictional force generated between the first and second friction plates132A and132B and the ring131. However, when load greater than static friction force between the first and second friction plates132A and132B and the ring131is applied to the ring131due to a shock applied to the rink135, the ring131and the first and second friction plates132A and132B slip on each other, so as not to cause load greater than kinetic friction force between the ring131and the first and second friction plates132A and132B, in the output shaft134of the motor.

This conventional torque limiter130, however, has a problem in that static friction coefficients between the ring131and the first and second friction plates132A and132B vary easily and widely, so that it is difficult to determine an allowable margin at the time of designing a robot.

Further, in the conventional torque limiter130, the static friction coefficients between the ring131and the first and second friction plates132A and132B vary easily depending on temperature, which is also a problem.

Furthermore, since the conventional torque limiter130is constructed mechanically as described above, it is hard to construct a smaller and lighter torque limiter and to therefore realize a smaller and lighter robot which contains motors.

SUMMARY OF THE INVENTION

In view of the foregoing, an object of this invention is to provide an advanced robot,apparatus, and a load absorbing apparatus and method for motors which are used as actuators for joint motion of a multi-joint type robot.

An additional object of this invention is to provide an advanced robot apparatus, and a load absorbing apparatus and method, which are capable of appropriately detecting overload which may break a motor and deform the body, and reducing the overload in the motor.

An additional object of this invention is to provide an advanced robot apparatus, and load absorbing apparatus and method, which are capable of appropriately preventing breakage of members and the body due to overload applied to motors having a single or multiple axes, in a multi-joint type robot comprising a plurality of actuator motors.

As the first aspect, the foregoing objects and other objects of the invention have been achieved by a robot apparatus having a plurality of movable joints, the robot apparatus comprising a plurality of motors for driving the joints, a plurality of first overload detection means for detecting overload in the corresponding motor, a load absorbing control means for, when any of the first overload detection means detects the overload in the corresponding motor, controlling a process to absorb the overload in the motor, a second overload detection means for determining whether loads in two or more motors are totally excessive, and a body protection control means for, when the second overload detection means detects the totally overload, carrying out a prescribed body protection operation.

Multi-joint type robot including two-legged walking robot is constructed by a plurality of motors for joint actuators and links connected to the output shafts of the motors. In this construction, it may happen that loads in the plurality of motors are totally excessive even the load in each motor is not excessive. For this case, it is considered that a body protection operation for removing the overload state from the entire body is required, separately from a load absorbing operation for each motor.

In the robot apparatus of the first aspect of this invention, the second overload detection means is provided so that it is detected whether any part such as an arm or a leg, or the entire body is in an overload state even each motor is not in an overload state. When loads in a plurality of motors are totally excessive, not the load absorbing operation for each motor but the body protection operation is carried out.

The body protection operation here includes cutoff of power to relevant motors or all motors of the body and weakening of the relevant motors or all motors of the body. The weakening of a motor is realized by setting its generated torque to zero or decreasing its viscosity resistance by servo gain adjustment.

Further, as a second aspect, a load absorbing apparatus for absorbing load applied to a motor comprises a torque measuring means for measuring a load torque based on the sum of absolute values of a torque applied to a link connected to the output shaft of the motor and the generated torque of the motor, an overload detection means for determining that overload has been applied when the load torque detected by the torque measuring means exceeds a first threshold value for a prescribed period of time or longer, and a load absorbing control means for absorbing the overload in the motor when the overload detection means detects the overload.

Still further, as a third aspect of this invention, a load absorbing apparatus for absorbing load applied to a motor comprises a kinetic energy measuring means for measuring kinetic energy given to the output shaft of the motor, an overload detection means for determining that overload will be applied when the variation of the kinetic energy measured by the kinetic energy measuring means exceeds a second threshold value, and a load absorbing control means for avoiding the overload in the motor when the overload detection means detects the overload.

Still further, as a fourth aspect of this invention, a load absorbing apparatus for absorbing load applied to a motor comprises a torque measuring means for measuring a load torque based on the sum of absolute values of a torque applied to a link connected to the output shaft of the motor and a generated torque of the motor, a kinetic energy variation measuring means for measuring the variation of kinetic energy given to the output shaft of the motor, an overload detection means for detecting overload based on the load torque measured by the torque measuring means and the variation of kinetic energy measured by the kinetic energy variation measuring means, and a load absorbing control means for absorbing the overload in the motor when the overload detection means detects the overload.

Multi-joint type robot including two-legged walking robot is generally constructed by a plurality of motors for joint actuators, and links connected to the output shafts of the motors. Now, assume that overload is applied to motors of the joint actuators when the robot falls down, dumps into something, or gets something into the body while walking or moving. The overload may cause fatal damage such as breakage or plastic deformation of the body (breakage of a link, dropout of a teeth of a reduction gear).

Load torque to be applied to a motor for a joint actuator is broadly classified into impulsive “shock load” which incurs distortion energy and may break members such as links, due to bumping or the like and “constant load” which is relatively high load torque, although not so high as the shock load, and is constantly applied for a prescribed period of time or longer and thereby causes plastic deformation. The inventors of this invention position the shock load and the constant load as AC component and DC component, respectively.

According to the second aspect of this invention, constant load, that is, the DC component of the load torque is detected based on the sum of absolute values of the torque to be applied to a link connected to the output shaft of the motor and the generated torque of the motor, and then it is recognized that the DC component of the load is excessive when the load torque exceeds the first threshold value for a prescribed period of time or longer. Since motor torque is in proportion to motor conducting current, the torque can be measured by converting motor current into a voltage.

The first threshold value here is a value around the stall torque of the motor being used or a threshold value such as a limitation for circuit protection.

Then, in order to avoid the breakage due to the constant load, a prescribed load absorbing operation can be carried out, for example, the generated torque of the motor is reduced or the viscosity coefficient of the motor is decreased. Such load absorbing apparatus realizes a small variation of motor viscosity coefficients among parts and further is lightly affected by temperature. In addition, the torque detection can be carried out by a simple process, which can realize a smaller and lighter robot apparatus even it contains motors.

Further, according to the third aspect of this invention, a load torque is detected based on the variation of kinetic energy, considering such characteristic that the variation of kinetic energy given to the output shaft of a motor is in proportion to a product of a torque applied to the motor and its angular velocity, and then it can be predicted that the AC component of the load will be excessive when the load torque exceeds the second threshold value which may break members.

Then, in order to avoid breakage due to the shock load, a prescribed load absorbing operation can be carried out, for example, the generated torque of the motor is reduced or the viscosity coefficient of the motor is decreased. Such load absorbing apparatus has a small variation of viscosity coefficients among parts and is lightly affected by temperature. In addition, the torque is detected by a simple process, which can realize a smaller and lighter robot apparatus even it contains motors.

Since the AC component of load torque is impulsive, overload is applied at a moment and therefore the load absorbing operation may not be done in time. If based on the aforementioned characteristic in which the variation of kinetic energy is in proportion to a torque applied to the motor and its angular velocity, the overload can not be detected until the torque reaches an overload state. This is a problem in response.

For this problem, such process can be effective that, not the variation of kinetic energy is measured simply, but the kinetic energy is double-differentiated with respect to time, with the result that it is predicted that the AC component will become excessive when the inclination of the variation is a prescribed value or more, and then a load absorbing operation is performed.

In addition, the double differentiation can be approximated by a product of the rate of change of a torque and the angular velocity. On the other hand, considering a characteristic in which motor torque is in proportion to motor current, the torque can be measured by converting the motor current into a voltage, so that the rate of change of the torque can be measured via the time differentiation of the voltage.

Still further, in the load absorbing apparatus according to the fourth aspect of this invention, a load absorbing operation can be carried out based on both the AC component and the DC component of a load torque applied to a motor, so that the two-legged walking robot can cope with various shocks received, without any expectation while autonomously performing.

According to the load absorbing apparatus of the second to fourth aspects of this invention, in a case where overload is applied to the single axis of a motor, the AC component and the DC component of the load are properly absorbed, which can avoid breakage of the motor and members such as a link connected to the output shaft of the motor, and thereby preventing spreading of damage to other members.

As a result, this invention can provide an advanced robot apparatus, and a load absorbing apparatus and method for motors used as actuators for joint motion of a multi-joint type robot.

Further, this invention can provide an advanced robot apparatus, and a load absorbing apparatus and method, which are capable of properly detecting overload which may break motors or deform the body, and reducing the overload in the motors.

Still further, this invention can provide an advanced robot apparatus, and a load absorbing apparatus and method, which are capable of appropriately preventing breakage of members and the body due to overload applied to motors having a single or multiple axes in a multi-joint type robot comprising a plurality of actuator motors.

DETAILED DESCRIPTION OF THE EMBODIMENT

Preferred embodiments of this invention will be described with reference to the accompanying drawings:

(1) Construction of Robot of This Embodiment

FIG.3andFIG. 4show an entire construction of a two-legged walking robot according to one embodiment of the present invention. In addition,FIG. 5schematically shows a structure of a degree of freedom in the robot. Reference numeral1shows a two-leg walking type robot as a whole, in which a head unit3is placed on a body unit2, arm units4A,4B having the same construction are provided at upper left and right parts of the body unit2, respectively, and leg units5A,5B having the same construction are provided at lower left and right parts of the body unit2, respectively.

The body unit2is constructed of an upper body frame10and a waist base11forming a lower body both of which are connected to each other via a waist joint mechanism12. By driving each of actuators A1, A2of the waist joint mechanism12fixed to the waist base11, the upper body can be rotated independently around a roll axis13and a pitch axis14which are orthogonal to each other as shown in FIG.5.

Further, the head unit3is fixed on the center upper part of a shoulder base15fixed on the upper end of the frame10via a neck joint mechanism16. By driving each of actuators A3, A4of the neck joint mechanism16, the head unit3can be rotated independently around a pitch axis17and a yaw axis18which are orthogonal to one another as shown in FIG.5.

Furthermore, the arm units4A,4B are fixed to the left and right of the shoulder base15, respectively, via a shoulder joint mechanism19. By driving actuators A5, A6, A9, A10of the shoulder joint mechanism19, the arm units4A,4B can be rotated independently around a pitch axis20and a roll axis21which are orthogonal to one another as shown in FIG.5.

In this case, as to the arm units4A,4B, actuators A8and A12forming forearms are connected to the output shafts of actuators A7and A11forming upper arms, respectively, via elbow joint mechanisms22, and a hand unit23is attached to the distal end of each forearm. The forearms can be rotated around a yaw axis24shown inFIG. 5by driving the actuators A7and A11. In addition, the forearms can be rotated around a pitch axis25shown inFIG. 5by driving the actuators A8and A12.

On the other hand, each leg unit5A,5B is attached to the waist base11via a hip joint mechanism26. By driving actuators A13-A18and A19to A24of the hip joint mechanism26, the leg units5A,5B can be rotated independently around a yaw axis27, a roll axis28, and a pitch axis29which are orthogonal to one another as shown in FIG.5.

In this example shown, a lower-leg frame32is connected to the low end of a thigh frame30via a knee joint mechanism31, and a foot unit34is connected to the low end of the frame32via an ankle joint mechanism33. In each leg unit5A,5B, the lower leg can be rotated around a pitch axis35shown inFIG. 5by driving an actuator A16or A22of the knee joint mechanism31. In addition, the foot unit34can be rotated independently around a pitch axis36and a roll axis37which are orthogonal to each other as shown inFIG. 5, by driving actuators A17, A18, or A23, A24of the ankle joint mechanism33.

FIG. 6schematically shows a control structure of the two-legged walking robot1according to this embodiment. On the back of the waist base11, is arranged a control unit42housing a main control unit40for controlling the entire operation of the robot1, peripheral circuitry41including a power circuit and a communication circuit, a battery45, etc.

FIG. 7schematically shows an internal structure of the control unit42. This control unit42is connected to sub-control units43A-43D arranged in respective constituent units (body unit2, head unit3, arm units4A,4B, and leg units5A,5B), so as to supply necessary power voltages to the sub-control units43A to43D and to communicate data with the units43A to43D.

Connected to the actuators A1-A24of the corresponding constituent units, each sub-control unit43A-43D is designed to be able to drive corresponding actuators A1-A24in a manner specified by various commands given from the main control unit40.

Furthermore, as shown inFIG. 7, at predetermined positions on the head unit3are arranged various external sensors such as a Charge Coupled Device (CCD) camera50functioning as “eyes” of the robot1and a microphone51as “ears”, and an output unit such as a loudspeaker52as a “mouth”. On each of the palms of the hand units23and the soles of the foot units34is arranged a touch sensor53as an external sensor. In addition, inside the control unit42is arranged various internal sensors including a battery sensor54and an acceleration sensor55.

The CCD camera50captures surrounding environment and sends a captured video signal S1A to the main control unit40. The microphone51collects external sounds and sends an obtained audio signal S1B to the main control unit40. In addition, the touch sensor53detects physical pressures from a user and physical contacts with the outside, and sends a detected result to the main control unit40as a pressure signal S1C. Furthermore, the battery sensor54periodically detects an energy level of the battery45serving as the main power source, and sends the detected result to the main control unit40as a battery level signal S2A. The acceleration sensor56periodically detects acceleration in three axes (x axis, y axis, and z axis), and sends the detected results to the main control unit40as an acceleration signal S2B.

The main control unit40detects surrounding and internal conditions of the robot1, contacts with an external entity, etc. based on the video signal S1A, the audio signal S1B, the pressure signal S1C, etc., being external sensor's outputs, and the battery level signal S2A, the acceleration signal S2B, etc. being internal sensor's outputs.

Then the main control unit40determines a subsequent action based on the detected results, a control program being stored in an internal memory40A, and various control parameters being stored in an external memory56being installed, and sends control commands based on the determined results to relevant sub-control units43A-43D. As a result, the specified actuators A1-A24are set in motion based on the control commands and under the control of the sub-control units43A-43D, thus letting the robot1take action, such as moving the head unit3up and down, left to right, raising the arm units4A,4B, and walking.

In addition, the main control unit40recognizes user's conversation through an audio recognition process based on the audio signal S1B, gives the loudspeaker52an audio signal S3for response, resulting in output of synthesized sounds for communication with the user.

As described above, the robot1is capable of behaving autonomously based on surrounding and internal conditions, and also capable of communicating with the user.

FIG. 8schematically shows a structure of control software operated on a two-legged walking robot1according to this embodiment.

As shown in this figure, the robot control software is multilayer software in which an object-oriented programming is adopted. Each software comprises modules called “objects” integrating data and processing of the data.

A device driver of the lowest layer comprises objects which are allowed to directly access hardware for driving of joint actuators, reception of sensor outputs and so on, and performs a suitable process in response to an interrupt request from the hardware.

A virtual robot is an object which mediates between various device drivers and an object operating based on inter-object communication protocol. Each of hardware units composing the leg-type walking robot1is accessed via this virtual robot.

A service manager is a system object which induces each object to make a connection, based on information on connection between the objects stored in a connection file.

Since each software having a higher ranking than a system layer (OS) comprises modules each representing an object (process), the objects are selectable and replaceable according to necessary functions. By rewriting the connection file, the inputs and outputs of objects having the same data structure are connected as desired.

Software modules other than the device driver layer and the system layer are broadly classified into a middleware layer and an application layer.

FIG. 9schematically shows an internal structure of the middleware layer.

The middleware layer is a collection of software modules to provide basic functions of the two-legged walking robot1, the structure of each module is affected by hardware attribution such as mechanical and electrical features, specifications, and shapes of the two-legged walking robot1. This middleware layer is functionally divided into a recognition middleware (the left half inFIG. 9) and an output middleware (the right half in FIG.9).

The recognition middleware receives and processes raw data from the hardware via the virtual robot, the raw data including video data, audio data and other data obtained from other sensors. For example, this middleware performs various processes such as audio recognition, distance detection, posture detection, contact detection, motion detection, and color recognition, based various input information, to recognize the robot's situation (for example, “detected a ball”, “fell down”, “being pat”, “being hit”, “heard musical scales”, or “detected a moving entity or an obstacle”). This recognized situation is notified to the higher-ranked application layer via an input semantics converter to be used for a subsequent action plan or learning.

The output middleware, on the other hand, realizes functions for walking, moving, output of synchronized sounds, blinking control of the LEDs functioning as eyes. That is, the output middleware receives the action plan made by the application layer via an output semantics converter, and creates a servo command value for each joint of the two-legged walking robot1, and sounds and light (LEDs) to be output, in order to let the robot1perform based on the plan via the virtual robot. In addition, this output middleware of this embodiment includes a load monitoring module for detecting whether load in a plurality of actuator motors are totally excessive and a module for executing a body protection operation when an overload state is detected (this will be described later).

FIG. 10schematically shows an internal structure of the application layer. This application layer is composed of one or more application softwares for controlling robot's performance and internal conditions such as instinct and emotions.

This application uses the recognized situation received via the input semantics converter to determine the action plan of the lag-type moving robot1, and notifies the determined plan via the output semantics converter.

The application is composed of an emotional model, an instinct model, a learning module for sequentially storing experienced events, a behavioral model storing behavior patterns, and an action changing unit for moving the robot1based on the action plan determined by the behavioral model.

The recognized situation input via the input semantics converter is input to the emotional model, the instinct model, and the behavioral model, and also to the learning module as a learning instruction signal.

The action plan for the two-legged walking robot1determined by the behavioral model is sent to the middleware via the action changing unit and the output semantics converter, so that the robot1takes the action. This action plan is also given to the emotional model, the instinct model and the learning module via the action changing unit as an action history.

Based on the recognized situation and the action history, the emotional model and the instinct model control the emotional parameter and instinct parameter, respectively. The behavioral model can refer to these parameters. In addition, the learning module updates an action-selection probability based on the learning instruction signal, and supplies the updated contents to the behavioral model.

As described above, a degree of freedom in each joint of the two-legged walking robot1according to this embodiment is realized by the actuators A1to A24.

FIG. 11shows the internal construction of each actuator A1to A24. As shown in this figure, each actuator A1to A24is composed of a motor unit60for generating a rotational torque and a torque amplification unit61for amplifying and outputting the rotational torque.

In the motor unit60, a rotor shaft64rotatably supported by bearings63A,63B is provided inside a motor case62made of conducting material such as metal.FIGS. 12Ato12C show the constructions of the rotor shaft64and a rotor-shaft magnetic-pole angle sensor. As shown inFIGS. 12A and 12B, a rotor66is formed in such a manner that a rotor base65and a rotor magnet95which is a double pole ring permanent magnet are integrated coaxially with the rotor shaft64.

FIG. 13shows a relationship among the rotor66and stator cores67A to67F. As shown in this figure, inside the motor case62, six stator cores67A to67F are fixed every 60 degrees around the rotor66. Three phase coils68(68A,68B,68C) are formed by winding a wire on the stator cores67(67A to67F).

As shown inFIG. 13, three pairs of two opposite coils63are U-, V-, W-phase. By applying coil currents having 120-deegree phase difference to the U-, V-, W-phase coils68, each coil68generates a magnetic field corresponding to the drive current, so that the rotor66can generate a rotational torque corresponding to the coil current.

FIGS. 14Ato14C show the construction of the torque amplification unit61. As apparent fromFIG. 11, the torque amplification unit61has a gear case69detachably fixed to one end of the motor case62. Inside this gear case69, a planetary gear mechanism73is provided, the planetary gear mechanism73having a ring internal gear70attached to the inside of the gear case69, a sun gear71fixed to an end of the rotor shaft64, and first to third planetary gears72A to72C arranged every 120 degrees between the internal gear70and the sun gear71.

In addition, each shaft74A to74C of the first to third planetary gears72A to72C are fixed to the output shaft75rotatably arranged at an end of the gear case69. Therefore, the torque amplification unit61can amplify a rotational torque given from the motor unit60via the rotor shaft64, via the planetary gear mechanism73and then output the resultant to the outside via the output shaft75.

In addition, the motor case62of the motor unit60contains an encoder76for detecting rotations of the rotor shaft64and a control substrate77for controlling a rotation angle and a rotational torque of the rotor shaft64in response to an operation command from a higher-ranked controller (corresponding sub-control unit43A to43D) (see FIG.11).

In this case, the encoder76is composed of the double-pole resin magnet78and first and second hole elements79A,79B (seeFIGS. 12Ato12C).FIGS. 15A and 15Bshow the construction of the control substrate77. As shown inFIG. 15B, the first and second hole elements79A,79B are arranged coaxially with the rotor shaft64at 90 degree phase difference on the control substrate77.

Therefore, the encoder76is capable of detecting the rotational position of the rotor shaft64as the change of magnetic flux density at the first and second hole elements79A,79B, the change going with the rotation of the resin magnet78which rotates together with the rotor shaft64.

Further, as shown inFIG. 16, in the control substrate77, a control IC80and a drive circuit81for supplying drive currents Iu, Iv, Iw to the coils68u,68v,68wof the motor unit60under the control of the control IC80are arranged on a circular printed wiring board. The control IC80is capable of receiving the outputs of the first and second hole elements79A,79B as first and second position signals S10A, S10B, respectively, and thereby detecting the rotational position of the rotor shaft64based on the signals.

The control substrate77is connected to a higher-ranked controller (corresponding sub control unit) via a cable83(see FIG.11), so that the control IC80can communicate with the higher-ranked controller via the cable83and be supplied with power voltage Vcc.

Then, the control IC80controls the drive circuit81based on the operation command COM given from the higher-ranked controller via the cable83and the first and second position signals S10A, S10B, to apply the drive currents Iu, Iv, Iw to corresponding U-, V-, and W-phase coils68of the motor unit60, so that the motor unit60can rotate by a rotation angle or generate a rotational torque depending on the operation command COM.

(3) Constructions of Control IC80and Drive Circuit81

FIG. 17shows the constructions of the control IC80and the drive circuit81. As shown in this figure, the control IC80is composed of an arithmetic processing unit90, a PWM control unit91, and an additional logical circuit92.

The arithmetic processing unit90is constructed like a microcomputer including a CPU, ROM and RAM, and this unit90obtains a difference between a targeted rotational position of the rotor shaft64of the motor unit60based on the operation command COM from the higher-ranked controller and the current rotational position of the rotor shaft64obtained based on the first and second position signals S10A, S10B given from the encoder76, and also calculates a targeted output torque (hereinafter, referred to as a targeted torque) in order to eliminate the difference, and sends the calculation result to the PWM control unit91as a torque command signal S12.

The PWM control unit91PWM-controls the drive circuit81via the additional logical circuit92based on the torque command signal S12so that the motor unit60can generate the targeted torque as its output torque.

The drive circuit81is composed of a pair of PNP transistor TRu1and NPN transistor TRu2for U phase, a pair of PNP transistor TRv1and NPN transistor TRv2for V phase, and a pair of PNP transistor TRw1and NPN transistor TRw2for W phase.

Each emitter of the PNP transistors TRu1, TRv1, TRw1is connected to the power voltage Vcc, the collectors of the PNP transistors TRu1, TRv1, TRw1are connected to the collectors of the NPN transistors TRu2, TRv2, TRw2, respectively, and each emitter of the NPN transistors TRu1, TRv1, TRw1is grounded. In addition, the connecting points P1to P3connecting the collectors of the PNP transistors TRu1, TRv1, TRw1and the collectors of the corresponding NPN transistors TRu2, TRv2, TRw2are connected to a connecting point P4between the U-phase coil68uand the W-phase coil68w, a connecting point P5between the U-phase coil68uand the V-phase coil68v, and a connecting point P6between the V-phase coil68vand the W-phase coil68w.

By turning ON the PNP transistor TRu1and the NPN transistor TRv2and turning OFF the NPN transistor TRu2and the PNP transistor TRv1, the U-phase coil68ubecomes conductive to flow the drive current IU in an arrow direction. In addition, by turning OFF the PNP transistors TRu1, TRv1and the NPN transistors TRu2, TRv2, the terminals P4, P5are put in an open state and the U-phase coil68ubecomes nonconductive.

Similarly, by turning ON the PNP transistors TRv1and the NPN transistor TRw2and turning OFF the NPN transistor TRv2and the PNP transistor TRw1, the V-phase coil68vbecomes conductive to flow the drive current IV in an arrow direction. In addition, by turning OFF the PNP transistors TRv1, TRw1and the NPN transistors TRv2, TRw2, the terminals P5, P6are put in an open state and the V-phase coil68vbecomes nonconductive.

Further, similarly, by turning ON the PNP transistors TRw1and the NPN transistor TRu2and turning OFF the NPN transistor TRw2and the PNP transistor TRu1OFF, the W-phase coil68wbecomes conductive to flow the drive current IW in an arrow direction. In addition, by turning OFF the PNP transistors TRw1, TRu1and the NPN transistors TRw2, TRu2, the terminals P6, P4are put in an open state and the w-phase coil68wbecomes nonconductive.

As a result, the PWM control unit91gives first to sixth PWM signals S13u1, S13u2, S13v1, S13v2, S13w1, S13w2corresponding to the targeted torque obtained based on the torque command signal S12, to the bases of the corresponding PNP transistors TRu1, TRv1, TRw1and the NPN transistors TRu2, TRv2, TRw2, to thereby switch each of the U-, V-, and W-phase coils68u,68v,68wbetween the conductive state and the nonconductive state, resulting in rotation of the motor unit60.

Note that, in the case where the position of the motor unit60is controlled by the PWM control, putting the terminals P4, P5, P6in the open state while the coils68u,68v,68ware nonconductive arises problems in that a torque loss occurs because current existing in the motor unit60(strictly, charge) is easy to be lost and cogging torque is easy to affect the control.

However, this embodiment solves the torque loss problem by utilizing such a fact that currents (strictly charge) existing in the coils68u,68v,68wdo not decrease easily by putting the terminals P4, P5, P6of the coils68u,68v,68win the short state, not in the open state, while the coils68u,68v,68ware nonconductive.FIG. 18shows the excessive response characteristics of coil current for cases where the ends of a coil are put in the open state and the short state. As clear from this figure, the short state requires a longer settling time, so that the coil current does not decrease easily.

This is because putting the terminals P4, P5, P6in the short state causes a time delay in the excessive response which is resulted from DC resistance and inductance of the coils68u,68v,68wof the motor unit60. In addition, in the short state, a magnetic flux density from the rotor magnet95generates a reverse electromotive force to the coils68u,68v,68w. This reverse electromotive force is applied in a reverse direction of rotation of the rotor66to generate a viscosity resistance against the rotation by an external force, which obtains an effect like a break. Such viscosity resistance generated by creating a viscosity coefficient against the motor unit60can reduce the effect of the cogging torque without torque loss.

However, putting the terminals P4, P5, P6of the coils68u,68v,68win the short state means applying a kind of viscosity resistance to the motor unit60, which arises another problem in that a break due to the short states of the terminals P4, P5, P6of the coils68u,68v,68wloses compliance in the motor unit60.

In this embodiment, to solve the above torque loss problem and this compliance problem together, the terminals P4, P5, P6of the coils68u,68v,68ware alternatively switched between the open state and the short state while the coils68u,68v,68ware nonconductive, and a ratio of a period for the open state to a period for the short state is adjusted so as to obtain desired compliance.

Actually, as a means for alternatively switching the terminals P4, P5, P6of the coils68u,68v,68wbetween the open state and the short state, the additional logical circuit92is provided at a latter stage of the PWM control unit91. The additional logical circuit92is given, for example, a BRAKE_PWM control signal S14of a short waveform together with the first to sixth PWM signals S13u1, S13u2, S13v1, S13v2, S13w1, S13w2, from the PWM control unit91, the signal S14being subjected to PWM modulation according to a prescribed ratio of a period for the open state to a period for the short state regarding the terminal P4, P5, P6.FIG. 19shows a waveform example of the BRAKE_PWM control signal.

The additional logical circuit92changes, according to necessity, the logical levels of the corresponding first to sixth PWM signals S13u1, S13u2, S13v1, S13v2, S13w1, S13w2so as to put the terminals P4, P5, P6of the coils68u,68v,68win the short state while the coils68u,68v,68ware nonconductive and the BRAKE_PWM control signal S14has a logical level “1”.

Specifically, to put the terminals P4, P5of the U-phase coil68uin the open state while the coils are nonconductive, the PWM control unit91normally outputs the first to fourth PWM signals S13u1, S13u2, S13v1, S13v2to turn OFF the PNP transistors TRu1, TRuv1and the NPN transistors TRu2, TRv2. However, the additional logical circuit92intermittently puts the terminals P4, P5in the short state by turning ON the PNP transistors TRu1, TRv1, which are currently off, while the BRAKE_PWM control signal S14has a logical level “1”.

Similarly, to put the terminals P5, P6of the V-phase coil68vin the open state while the coils are nonconductive, the PWM control unit91normally outputs the third to sixth PWM signals S13v1, S13v2, S13w1, S13w2to turn OFF the PNP transistors TRv1, TRw1and the NPN transistors TRv2, TRw2. However, the additional logical circuit92intermittently puts the terminals P5, P6in the short state by turning ON the PNP transistors TRv1, TRw1, which are currently OFF, while the BRAKE_PWM control signal S14has a logical level “1”.

Further, similarly, to put the terminals P6, P4of the W-phase coil68win the open state while the coils are nonconductive, the PWM control unit91normally outputs the first, second, fifth, and sixth PWM signals S13u1, S13u2, S13w1, S13w2to turn OFF the PNP transistors TRw1, TRu1and the NPN transistors TRw2, TRu2. However, the additional logical circuit92intermittently puts the terminal P6, P4in a short state by turning ON the PNP transistors TRw1, TRu1, which are currently OFF, while the BRAKE_PWM control signal S14has a logical level “1”.

In a case where the BRAKE_PWM control signal S14has a logical level “0” while the coils are nonconductive, on the other hand, the additional logical circuit92normally outputs the first to sixth PWM signals S13u1, S13u2, S13v1, S13v2, S13w1, S13w2from the PWM control unit91as they are, resulting in leaving the terminals P4, P5, P6of the coils68u,68v,68win the open state.

FIG. 20shows the specific construction of the additional logical circuit92. An AND gate100performs AND operation on the first, third and fifth PWM signals S13u1, S13v1, and S13w1from the PWM control unit91while an exclusive NOR gate101performs exclusive NOR operation on the second, fourth, and sixth PWM signals S13u2, S13v2, S13w2.

Then, a NAND gate102B performs NAND operation on the output of the AND gate100and the output of the exclusive NOR gate101, and an OR gate103performs OR operation on the output of the NAND gate102B and the output of an inverting buffer102A, i.e., the signal opposite the BRAKE_PWM control signal S14.

Then, first to sixth AND gates104A to104F perform AND operation on the output of the OR gate103and the original first to sixth PWM signals S13u1, S13u2, S13v1, S13v2, S13w1, S13w2, respectively, and the outputs of these first to sixth AND gates104A to104F are given to the PNP transistor TRu1, NPN transistor TRu2, PNP transistor TRv1, NPN transistor TRv2, PNP transistor TRw1, and NPN transistor TRw2, respectively.

As described with reference toFIG. 18, by putting the terminals P4, P5, P6of the coils68u,68v,68win the short state while the coils are nonconductive, the drive currents Iu, Iv, Iw of the coils68u,68v,68wtake a longer time to become zero because of the excessive response. Therefore, while the coils68u,68v,68ware nonconductive, current starts to flow before the drive currents Iu, Iv, Iw become zero, by repeatedly switching the open state and the short state.

Therefore, the maximum values of the drive currents Iu, Iv, Iw to be supplied to the coils68u,68v,68wgradually increase every time when the coils68u,68v,68wbecome conductive and nonconductive, and the increasing rate almost corresponds to a duty cycle, that is, a rate in which the BRAKE_PWM control signal S14becomes a logical level “1”. Similarly, the effective values of the drive currents Iu, Iv, Iw of the coils68u,68v,68walso gradually increase and the increasing rate almost corresponds to the duty cycle, that is, a rate in which the BRAKE_PWM control signal S14becomes a logical level “1”.

In addition, since the output torque of the motor unit60is calculated by multiply a torque constant Kt of the motor unit60and a sum of the values of the drive currents Iu, Iv, Iw to be supplied to the coils68u,68v,68w. Therefore, when the coils68u,68v,68ware repeatedly switched between the conductive state and the nonconductive state, the effective value of the output torque in the motor unit60increases with increasing the sum of the values of the drive currents Iu, Iv, Iw.

The increasing rate of this case almost corresponds to the duty cycle of the BRAKE_PWM control signal S14, that is, a rate in which the BRAKE_PWM control signal S14becomes a logical level “1”. And the inclination of increase of the output torque of the motor unit60is in proportion to the viscosity coefficient of the motor unit60. In other words, the viscosity coefficient of the motor unit60can be dynamically and optionally determined within a range of duty resolution with the duty cycle of the BRAKE_PWM control signal S14.

As a result, the viscosity coefficient of the motor unit60can be controlled by changing the duty cycle of the BRAKE_PWM control signal S14, and the currents (the amount of charge) to flow in the coils68u,68v,68wcan be controlled while the coils68u,68v,68ware nonconductive.

When the duty cycle of the BRAKE_PWM control signal S14is determined so that the viscosity coefficient becomes large, the motor unit60has high holding power, resulting in reducing disturbance such as cogging torque. In addition, the amount of compliance toward an external force can be controlled.

The PWM control of the duty cycle of the BRAKE_PWM control signal S14to be supplied to the additional logical circuit92, which is performed by the PWM control unit91, adjusts a ratio of the period for the open state to the period for the short state in the terminals P4, P5, P6of the coils68u,68v,68wwhile the coils are nonconductive, thereby obtaining desired compliance.FIG. 21shows a relationship between the duty cycle of the BRAKE_PWM control signal S14and the viscosity coefficient of the motor unit60.

(4) Load Absorbing Mechanism in Each Actuator A1to A24

An advanced two-legged walking robot autonomously walks and moves. Further, the robot can make motion such as standing up from a lying state and holding and carrying objects with its arms. On the other hand, such case may arise that overload is applied to joint actuators due to falling down, dumping into something, or getting something into its body. Such overload may cause fatal damage such as breakage or plastic deformation of the body. Therefore, it is very important to provide each motor composing the joint actuators with a mechanism to absorb load.

First, a load absorbing function which is provided in each actuator A1to A24for joint motion in this robot1will be described.

The inventors of this invention treat load torque to be applied to a motor for a joint actuator by broadly classifying it into impulsive “shock load” which incurs distortion energy and may break members such as links, due to bumping or the like and “constant load” which is relatively high load torque, although not so high as the shock load, and causes plastic deformation (seeFIG. 22) if constantly applied for a prescribed period of time or longer. The latter constant load torque value is a value around a stall torque of a motor used, or a threshold value such as a limitation for circuit protection. The inventors position the shock load and the constant load as AC component and DC component, respectively.

The constant load, that is, the DC component of a load torque is detected based on the sum of absolute values of a load torque to be applied to a link connected to the output shaft of an actuator motor and a generated torque by the actuator motor. Then, it is recognized that the DC component is excessive in a case where the total torque exceeds a threshold value which may cause plastic deformation when applied for a prescribed period of time or longer. Since the generated torque of a motor is in proportion to motor current, the torque can be measured by converting the motor current into a voltage.

For example, as shown inFIG. 23, suppose that, in a situation where a link112of which one end is linked with the output shaft111of an actuator110can not move because it's the other end (which is L1distant from the output shaft111) is contacting with a wall or an entity, the other end of the link112is given an external force F1from the wall or the entity and the actuator10generates a torque by the newly increased load.

In this case, a condition where the actuator110is not broken is as follows:
F1×L1+TOUT≦TBRK(1)
where Toutis the generated torque being generated firstly by the actuator110and TBRKis a load torque which will break the actuator110if applied to the output shaft111of the actuator110. That is, the condition is that the sum of absolute values of a load torque newly caused by an external force F1and the generated torque Toutby the actuator110does not exceed TBRKfor a prescribed period of time or longer.

Such generated torque Toutcorresponds to the DC component of load and is referred to as “static load torque” hereinafter. Based on the above equation (1), by controlling the generated torque Toutof the actuator110so as to satisfy the following equation, the actuator110can be previously prevented from being broken.
TOUT≦TBRK−F1×L1(2)

The generated torque Toutof the actuator110can be detected as a coil current supplied to the actuator110. Now,FIG. 27shows current values corresponding to torque, where a threshold value for the coil current into which a threshold value for a load torque is converted is 2.5A and a time limit for continuous of this threshold value is 2.0 seconds. Continuous sampling of current values have a chattering problem. That is, even a value greater than 2.5A actually continues for 2.0 seconds, a counter is reset because of the chattering every time when the value falls below the threshold value, which may miss detection timing. For such a case, such operation can be effective that, if a period of time when the value is below the threshold value is very short (for example, for only 4.0 milliseconds or shorter), the counter keeps on counting.

As to the shock load, that is, the AC component of load, on the other hand, the inventors introduced a fact in that the variation of kinetic energy to be applied to the output shaft of a motor is in proportion to a product of a torque to be applied to the motor and the angular velocity. In addition, since the kinetic energy is almost equal to distortion energy added to the output shaft member, a load torque corresponding to a shock is detected based on the variation of the kinetic energy, and the AC component of load is recognized excessive when the load torque exceeds a threshold value which may break a member.

For example, a case shown inFIG. 24will be considered where such a load torque as to rotate the link112is applied to the other end of the link112(which is L2distance from the output shaft111) due to, for example, an entity falling on the other end. Such a load torque corresponds to the AC component of load and is referred to as “dynamic load torque” hereinafter.

Kinetic energy KEof this time, which is applied to the link112by the dynamic load torque, is derived from the follows:KE=12×J×ϕ.2(3)
where φ is a rotation angle of the link112and J is an inertia moment of the link112.

Assuming that all of this kinetic energy KEtravel to the actuator110through the output shaft111and are converted into distortion energy. This distortion energy does not break the actuator110when it is under an elastic limit in the actuator110; and the distortion energy breaks the actuator110, otherwise.

When the distortion energy becomes over the elastic limit, the generated torque Toutof the actuator110is reduced in order to prevent the breakage of the actuator110due to the dynamic load torque.

Specifically, to detect the variation of the kinetic energy KEof the dynamic load torque applied to the link112, the equation (3) is single-differentiated with respect to time as follows:ⅆⅆt⁢(KE)=I×ϕ¨×ϕ.=τ×ϕ.(4)
where τ represents an output torque of the actuator110. That is, since the variation of energy is in proportion to a product of the torque applied to the motor and the angular velocity, the load torque is detected based on the variation of energy, and the AC component of load is recognized excessive when the load torque exceeds a threshold value that may break a member.

Now, since the AC component of a load torque is impulsive (refer to FIG.4), the component reaches an overload state at moment and therefore, a load absorbing operation may not be carried out in time. As described above, if based on a characteristic in which the variation of energy is in proportion to a product of a torque applied to a motor and the angular velocity, overload can not be detected until the torque reaches an overload state, which arises a problem in response.

Therefore, the variation of energy is not measured simply, but the inclination of the variation is considered by double differentiation of the energy with respect to time. Then, it is predicted that the torque will reach an overload state if the inclination is more than a prescribed value, with the result that the load absorbing operation can be carried out with good response. The equation (4) is further differentiated with respect to time as follows (that is, the aforementioned equation (3) is double-differentiated with respect time t):ⅆ2ⅆt2⁢(KE)=τ.×ϕ.+τ×ϕ¨(5)

The equation (5) represents acceleration of variation of the kinetic energy KE. When the right-hand side of the equation (5) is a prescribed threshold value or greater which is a boarder between the elastic range and the plastic range of each member in the actuator,110, the generated torque Toutof the actuator110is reduced in order to previously prevent breakage of the actuator110.

However, the double differentiation process like the equation (5) is not simple. In addition, the inventors realized that the second item of the right-hand side in the equation (5) makes a small contribution to the operation result. Therefore, the second item is omitted and the right-hand side of the equation (5) is made approximate to the product of the first item of the right-hand side and a prescribed gain Gk, as follows:
ƒ(t)=Gk×τ×φ  (6)
where f(t) is an evaluation function.

The generated torque Toutis reduced when the evaluation function f(t) becomes over the above-described threshold value. As a result, the actuator110can be previously prevented from being broken, with the simpler arithmetic process.FIG. 34shows a comparison in a response characteristic of the load absorbing mechanism between a case based on the variation of kinetic energy KEand a case in which the evaluation function f(t) is introduced. As clear from this figure, the latter case can detect an overload state with a better response at a time of a lower generated torque.

The control substrate77operates as a load absorbing means for preventing breakage of the actuators A1to A24due to the static or dynamic load torque, which was described with reference to FIG.23andFIG. 24, based on the aforementioned principles. As shown inFIG. 16, a voltage detection unit82for detecting as voltage Vithe amount of a current IR1flowing in a power line LIN for the drive circuit81is provided on the printed wiring board of the control substrate77.

The voltage detection unit82is formed of a first resistance R1provided on the power line LIN and a differential amplifier84composed of second to fifth resistances R2to R5and an operational amplifier83. The differential amplifier84detects a fall voltage Viin the first resistance R1and sends the detected result to the control IC80as a voltage signal S11.

Since the voltage Viis in proportion to the current IR1flowing in the first resistance R1and this current IR1is in proportion to the left-hand side of the equation (1), the voltage Viis also in proportion to the left-hand side of the equation (1). Now, it is supposed that the following equation is realized:
F1×L1+Tout=Kvi×Vi≦TBRK(7)
where Kviis a proportionality constant.

Therefore, the actuator A1to A24can be prevented from being broken due to a static load torque by controlling the PWM control unit91so as to satisfy the following equation:Vi≦TBRKKvi(8)

FIG. 25is a flowchart of the first load absorbing processing procedure RT1which is performed by the arithmetic processing unit90of the control IC80. The arithmetic processing unit90controls the PWM control unit91based on the voltage signal S11given from the voltage detection unit82so as that the voltage Vidoes not exceed a prescribed preset first threshold value SH1(TBRK/Kviin the equation (8)), which prevents the actuator A1to A24from being broken in a case where the static load torque, that is, the DC component of the load is applied to the corresponding link.

The arithmetic processing unit90starts the first shock absorbing processing procedure RT1from step SP0, in parallel to the positional control of the corresponding motor unit60based on the operation command COM given from the higher-ranked controller as described above, and judges at step SP1whether the voltage Viobtained based on the voltage signal S11given from the voltage detection unit82is the first threshold value SH1or greater. When a negative result is obtained at step SP1, the arithmetic processing unit90repeats this step SP1until an affirmative result is obtained.

Then, when an affirmative result is obtained at step SP1by, for example, applying a static load torque to the corresponding link due to contact of the link with a wall or an entity, the arithmetic processing unit90goes on to step SP2to control the PWM control unit91so as to increase the compliance of the corresponding motor unit60by changing the duty cycle of the BRAKE_PWM control signal S14to 0%, and then goes on to step SP3to control the PWM control unit91so as to reduce the effective value of the current which flows in each coil68u,68v,68wof the motor unit60, thereby obtaining reduced generated torque Tout.

Then, the arithmetic processing unit90goes on to step SP4to inform the higher-ranked controller of the execution of the shock absorbing process (steps SP2and SP3), and goes on to step SP5to wait for an instruction to stop the shock absorbing process from the higher-ranked controller.

When the arithmetic processing unit90receives such notification from the higher-ranked controller and therefore obtains an affirmative result at step SP5, it proceeds to step SP6to change the duty cycle of the BRAKE_PWM control signal S14, that is, the motor viscosity coefficient, to the original value by controlling the PWM control unit91and thereby return the compliance of the motor unit60to the state before the shock is detected. Then, the arithmetic processing unit90proceeds to step SP7to control the PWM control unit91to return the effective value of the drive current Iu, Iv, Iw to be applied to each coil68u,68v,68wof the motor unit60to the original value, with the result that the generated torque Touthas a prescribed value. Then, the arithmetic processing unit90returns back to step SP1to repeat the above processes.

As described above, the arithmetic processing unit90controls the motor viscosity coefficient and the generated torque Toutof the motor unit60in the corresponding actuator A1to A24when a static load torque is applied to a corresponding link.

On the other hand, as is clear from the equation (6), the output torque τ of the actuator A1to A24is in proportion to the current IR1flowing into the resistance R1in the voltage detection unit82and the current IR1is in proportion to the fall voltage Vidue to the first resistance R1. Therefore, the equation (6) can be transformed into:f⁡(t)=Gk×τ.×ϕ.=Gk×ⅆτⅆt×ⅆϕⅆt=Ki×ⅆViⅆt×Kθ×ⅆϕⅆt(9)
where Kiand Kθare proportionality constants.

As is clear from the equation (9), the evaluation function f(t) in the equation (6) is derived by a product of a result of multiplying the temporal variation of voltage Vi, detected by the voltage detection unit82, and the proportionality constant Kiand a result of multiplying the amount of temporal change of the rotational position φ of the rotor shaft64of the motor unit60, detected by the encoder76, and the proportionality constant Kθ.

FIG. 26shows a flowchart of a second load absorbing processing procedure RT2which is performed by the arithmetic processing unit90of the control IC80. The arithmetic processing unit90prevents the actuator A1to A14from being broken in a case where a dynamic load torque, that is, the AC component of load, is applied to a corresponding link, by controlling the PWM control unit91following the second load absorbing processing procedure RT2, based on a voltage Viand a rotational position φ of the rotor shaft64of the motor unit60so that the evaluation function f(t) does not exceed a preset prescribed second threshold value SH2, the voltage Viobtained based on the voltage signal S11given from the voltage detection unit82, the rotational position φ obtained based on the first and second position signals S10A, S10B given from the encoder76.

In parallel to the first shock absorbing processing procedure RT1, the arithmetic processing unit90starts the second shock absorbing processing procedure RT2from step SP10. At step SP11, the arithmetic processing unit90calculates the equation (9) based on the voltage signal S11and the position signals S10A, S10B and then judges whether the result is the second threshold value SH2or greater. Note that, in this embodiment, Kiand Kθare taken to 1.0 and 4.0, respectively, and the second threshold value SH2is taken to be a value between 1.3 and 4.0 mN-m·rad/S2which is considered to be most optimal from experiment. The arithmetic processing unit90repeats this step SP11until an affirmative result is obtained.

When the corresponding link receives a shock and thereby an affirmative result is obtained at step SP11, the arithmetic processing unit90goes on to step SP12to change the duty cycle of the BRAKE_PWM control, signal S14to 0% to increase the compliance of the motor unit60by controlling the PWM control unit91. Then, at next step SP13, the arithmetic processing unit90controls the PWM control unit91to create the generated torque Toutso that the maximum value of the targeted torque calculated based on the operation command from the higher-ranked controller takes a value between 10 to 20% of the actually calculated value.

Next, the arithmetic processing unit90goes on to step SP14to inform the higher-raked controller of the execution of the shock absorbing process (steps SP12and SP13) and goes on to SP15where it waits for an instruction to stop the shock absorbing process from the higher-ranked controller.

When the arithmetic processing unit-90receives such a notification from the higher-ranked controller and thereby an affirmative result is obtained at step SP15, it proceeds to step SP16to return the duty cycle of the BRAKE_PWM control signal S14, that is, the motor viscosity coefficient to the original value by controlling the PWM control unit91to return the compliance of the motor unit60to a state before the shock is detected. Then, at step SP17, the arithmetic processing unit90returns the effective value of the drive current Iu, Iv, Iw to be applied to each coil68u,68v,68wof the motor unit60to the original value by controlling the PWM control unit91in order to thereby return the generated torque Toutto the prescribed value. Then, the arithmetic processing unit90returns back to step SP11and repeats the aforementioned processes.

As described above, the arithmetic processing unit90controls the motor viscosity coefficient and the generated torque of the motor unit60in the corresponding actuator in a case where a dynamic load torque is applied to the corresponding link.

In the aforementioned mechanism, in this robot1, when a static or dynamic load torque which may break any actuator A1to A24is applied to a corresponding link connected with the output shaft75of the actuator, the compliance of the actuator A1to A24increases and the output torque of the actuator A1to A24decreases, resulting in deformation of the link according to the load torque.

For example, this robot1is capable of previously preventing damage of the actuators A1to A24due to shock as in the case where a conventional torque limiter130is used as described with reference toFIG. 1, and in addition, the load absorbing is performed only by controlling the electrical actuators A1to A24. As compared with the case of using the conventional torque limiter130having a mechanical construction, the actuators A1to A24do not have big differences in performance regarding the shock absorbing function and also are lightly affected by temperature.

In addition, the control IC80can control the load absorbing operation as well as performing the usual positional control of the actuators A1to A24. That is, since new units are not required, the actuators A1to A24can be constructed simpler, smaller and lighter, as compared with the conventional torque limiter130having the mechanical construction.

According to the above construction, a sum of absolute values of a static load torque applied to a link connected to the output shaft75of an actuator A1to A24and the generated torque of the actuator A1to A24is obtained as a voltage Vi, and when the sum is the first threshold value SH1or greater, the actuator A1to A24is controlled so as to reduce the generated torque. In addition, a variation of energy of a dynamic load torque applied to the link is detected, and when the detected variation is the prescribed second threshold value SH2or greater, the actuator A1to A24is controlled so as to reduce the generated torque. Therefore, as compared with the conventional torque limiter130having the mechanical construction, the actuators A1to A24do not have big differences in performance regarding the load absorbing function and are lightly affected by temperature, thus making it possible to realize a easy-to-use load absorbing apparatus.

In addition, by using the load absorbing apparatus according to this invention, the actuator A1to A24, that is, the entire system can be constructed simpler, smaller and lighter, as compared with the conventional torque limiter130having the mechanical construction.

(5) Load Absorbing Mechanism for the Entire Robot

When overload is applied to a single axis of an actuator motor, the aforementioned load absorbing mechanism for the actuator A1to A24is effective to appropriately absorb the AC component and the DC component of the load, so as to prevent breakage of the motor and members such as a link connected to the output shaft of the motor and therefore avoid the spreading of damage into other members.

On the other hand, multi-joint type robot including leg-type walking robot is composed of a plurality of motors for joint actuators and links connected with the output shafts of the motors. Therefore, such situation may occur that loads in plural motors are totally excessive even load in each motor is not excessive. For this situation, a load absorbing operation for the entire body is considered to be required, separately from the load absorbing operation for each motor.

Therefore, in the robot1of this embodiment, in parallel to execution of absorbing a static and dynamic load torque in each actuator motor, it is monitored whether loads in two or more motors are totally excessive. As a result, it can be detected whether a prescribed part such as arms and legs or the entire body is in an overload state or not, even each motor is not in an overload state.

When it is detected that loads in a plurality of motors are totally excessive, not the load absorbing operation for each motor but the body protection operation to eliminate the overload state of the entire body is performed. The body protection operation here includes cutoff of power to relevant motors or all motors of the body and weakening of the relevant motors or all motors of the body. The weakening of a motor is realized by setting a generated torque to zero or decreasing a viscosity resistance of a motor by gain adjustment.

For example,FIG. 28shows a situation where the robot1is trying to stand up. However, the robot's leg touches an obstacle and if the robot1keeps on standing up, reactive forces are applied in directions shown by solid line arrows. As a result, loads are applied to the pitch of the right shoulder, the roll and pitch of the right thigh, and the pitch of the right ankle. In this case, the loads do not break any axis but may cause plastic deformation in a frame of the body or damage of its cover.

In order to detect such situation, each current for consuming the actuator load in each axis in a joint is detected and all currents are summed up in a higher-ranked control system and the total current is monitored as total load in the entire body.

Specifically, a load torque T in each axis of a motor is derived from a product of Kviand Vifrom equation (7), that is, the torque is monitored based on a voltage applied to the motor. Therefore, the total Tsumof load torques in the entire body is derived as follows:Tsum=∑k=124⁢Tk(10)
Where k-numbered actuator is Ak(note that, 1≦k≦24) and its load torque is Tk.

In a case where the robot1stands up as shown inFIG. 28, large load is applied to the actuators A5, A9of the pitch axes of the right and left shoulder joints, the actuators A14, A20of the roll axes of the right and left hip joints, the actuators A15, A21of the pitch axes of the hip joints, and the actuators A17, A23of the roll axes of the right and left ankle joints, and the total load torque Tsumis derived as follows:Tsum=⁢∑k=124⁢Tk=⁢(T5+T9+T14+T20+T15+T21+T17+T23)+O⁡(Tk)(11)
In this equation, the total load torque in the other joint actuators O(Tk) can be ignored.

When the total load torque Tsumexceeds a prescribed threshold value for a prescribed period of time, the body protection operation such as shutdown is carried out in order to avoid breakage of the body.

FIG. 29shows a flowchart for detection of a shock load and constant load in each axis of a actuator motor, the detection of overloads in multiple axes, and the body protection operation in response to detection of the above loads.

At step S1, it is detected from the evaluation function f(t) of equation (6) whether shock load which may cause damage is applied to a joint single axis.

When it is detected that shock load has been applied to an actuator, the load absorbing mechanism in the actuator operates in order to avoid the overload state at step S2. More specifically, the arithmetic processing unit90of the control IC80performs the load absorbing processing procedure RT2shown inFIG. 26, in order to perform the PWM control on the motor current IR1so that the evaluation function f(t) does not exceed the second threshold value SH2.

Then, the arithmetic processing unit90informs the middleware layer controlling the robot's motion of the execution of the load absorbing process at step S3.

When the overload state can be avoided at step S4, a recovery process for the robot's position and condition is carried out at step S5.

FIG. 30schematically shows an operation on software for performing the load absorbing operation and recovery operation when shock load is applied to an actuator.

When it is detected that shock load has been applied to an actuator (S1), the load absorbing mechanism (seeFIG. 26) in the actuator operates, where the motor current is PWM-controlled to adjust the viscosity coefficient of the motor in order to avoid the overload state (S2). Then, the arithmetic processing unit90in the actuator informs the higher-ranked software, that is, the middleware layer of the operation of the load absorbing mechanism (S3). When the middleware layer determines that the overload state can be avoided (S4), it allows the actuator to perform control (S5). The actuator side carries out a position/condition recovery process and returns the viscosity coefficient of the motor to the original value.

Referring back toFIG. 29, it is determined based on the equation (2) whether a constant load which may cause damage has been applied to a joint single axis (step S6). When it is determined the constant load has been applied to an actuator, the arithmetic processing unit90in the actuator informs the middleware layer (seeFIG. 8) controlling the robot's motion of the overload state (step S7).

The middleware layer instructs to decrease a servo gain of the actuator motor, in response to the notification (step S8).

When the overload state can be avoided (step S4), the position/condition recovery process is carried out (step S5).

FIG. 31schematically shows an operation on software for performing the load absorbing operation and recovery operation when constant load is applied to an actuator.

When it is detected that constant load has been applied to an actuator (S6), the higher-ranked software, that is, the middleware layer is informed of this matter (S7). The middleware layer instructs to decrease the servo gain of the actuator (S8). Then when it is determined that the overload state can be avoided (S4), it allows the actuator to perform control (S5). The actuator side performs the position/condition recovery process to return the servo gain of the motor to the original value.

Referring back toFIG. 29, it is determined based on the above equation (10) or (11) that two or more joints totally come into the overload state at the same time due to loads (step S9).

Like the situation shown inFIG. 26, when an overload state is detected, the body protection module is informed of this state via the operation control system of the middleware layer (step S10), to carry out the body protection operation (step S11).

FIG. 32schematically shows the structure of the middleware layer to detect an overload state in a plurality of joint axes as a whole and perform the body protection operation. As shown in this figure, the load monitoring module and the body protection module are arranged in this middleware layer.

The load monitoring module concurrently receives information on a load state (for example, a voltage value Vicorresponding to a load torque) from the actuator motors A1to A24, and detect a load state in the entire body based on the total of the values.

The body protection module carries out the body protection operation when the load monitoring module detects the overload state. For example, the body protection module shuts off power of the actuator motors of the all body or relevant parts and weakens the joints.

FIG. 33schematically shows an operation on software to perform the load absorbing operation and the recovery operation when loads in a plurality of joint axes are totally excessive.

In the middleware layer, the load monitoring module detects an overload state in a plurality of joint axes (S9), it informs the body protection module of this state (S11). The body protection module carries out the body protection operation (S11). For example, it shuts off power to the actuator motors of the all body or to relevant parts and weakens the joints.

This invention is not limited to a “robot”. That is, this application can be applied to mechanical apparatuses which use electric or magnetic functions to move like humans, or even to moving apparatuses in other industrial fields, like toys.

Further, this invention is applied to a two-legged walking type robot1inFIG. 1to FIG.5. This invention, however, is not limited to this and can be widely applied to, in addition to robots, other apparatuses having servo motors as power sources for moving parts.

Still further, this invention has described a case where a torque measuring means for calculating a sum of absolute values of a static load torque newly applied to a link connected to the output shaft75of an actuator A1to A24and the generated torque of the actuator A1to A24and a load absorbing control means for controlling the motor so as to reduce the generated torque when the sum exceeds the prescribed first threshold value are realized by the control IC80for controlling the position of the actuator A1to A24based on the operation command COM from the higher-ranked controller. This invention, however, is not limited to this and these means can be provided, separately from the control IC80.

Still further, this invention has described a case where an energy measuring means for detecting the variation of energy of a dynamic load torque applied to a link connected to the output shaft75of an actuator A1to A24and a load absorbing control means for controlling the motor so as to reduce the generated torque when the variation of energy detected by the energy measuring means exceeds the prescribed second threshold value are realized by the control IC80. However, this invention is not limited to this and these means can be provided, separately from the control IC80.

Still further, this invention has described a case where the proportionality constants Kiand Kθin the equation (9) are set to 1.0 and 4.0, respectively, and the second threshold value SH2is set to a value between 1.3 and 4.0 mN-m·rad/S2which is considered optimal. This invention, however, is not limited to this and these proportionality constants Ki, Kθand the second threshold value SH2can be set to other values according to the construction of a corresponding actuator.

Still further, this invention has described a case where current IR1flowing in the power line LIN for the drive circuit81is detected as a voltage Viand the variations of energy of the static and dynamic load torques applied to a link connected to the output shaft75of an actuator A1to A24are detected based on the detected voltage Vi. This invention, however, is not limited to this and not the current IR1but another thing can be used, provided that the variations of energy of the static and dynamic load torques can be correctly obtained based on it.

While there has been described in connection with the preferred embodiments of the invention, it will be obvious to those skilled in the art that various changes and modifications may be aimed, therefore, to cover in the appended claims all such changes and modifications as fall within the true spirit and scope of the invention.