Robot

A robot, wherein the operating amounts of the first and second actuators are adjusted according to a torque necessary for maintaining a body member and an end member at specified angles in a mechanism in which the body member (361) and the end member (363) are rotatably connected to each other and first and second wires (366) connected to the end member are advanced and retreated by the first and second actuator (368).

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority to Japanese Patent Application No. 2004-214343 filed on Jul. 22, 2004, the contents of which are hereby incorporated by reference into the present application.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a robot in which a distal side member is rotatably jointed to a body side member, and at least two wires are connected to the distal side member. The robot is adapted such that a wire is moved back and forth by an actuator to rotate the distal side member with respect to the body side member.

2. Description of the Related Art

In recent years, humanoid robots or animal-shaped robots have been developed actively. In such robots, the distal side member is rotatably jointed to the body side member via a joint. As a joint angle (the rotation angle of the distal side member with respect to the body side member) is adjusted, the robots walk, carry an object or operate an object.

Here, the term “body side member and distal side member” means, for example, “body part and head part”, “body part and upper-arm part”, “upper-arm part and forearm part”, “forearm part and palm part”, “palm part and finger part”, “body part and thigh part”, “thigh part and lower leg part”, “lower leg part and foot part”, etc. Here, the foot part means a member on the distal side of an ankle joint.

The robot has an actuator which actuates each joint. When an actuator is disposed in each joint, it is difficult to reduce the size and weight of the joint. Therefore, a technique for providing an actuator on the body side member and connecting a distal side member to the actuator with a wire has been developed.

In this technique, an end of a first wire is connected to a portion of the distal side member located in one side of a rotation center, and an end of a second wire is connected to a portion of the distal side member located in the other side of the rotation center. By pulling the first wire and loosening the second wire, the distal side member is rotated in a first direction. By loosening the first wire and pulling the second wire, the distal side member is rotated in a second direction. The operation of the joint can be adjusted by adjusting an operation amount of the actuator that moves the other end of the first wire back and forth, and an operation amount of the actuator that moves the other end of the second wire back and forth.

For example, a robot arm is disclosed in Japanese Patent Application Publication No. H04-300179. The robot arm has a plurality of joints and a plurality of wires which operate the group of joints. In the robot arm, the tension of each wire and the torque of each joint are adjusted by using actuators (referred to as a wire drive system in this publication). In this publication, a technique for adjusting the joint angle of each joint is not described.

BRIEF SUMMARY OF THE INVENTION

When the joint angle is adjusted with wires, wire stretching cannot be ignored. For example, when an external force to rotate the joint (hereinafter referred to as the load torque of a joint) is applied to the distal side member, the wires will stretch according to their tensions and consequently the wire stretching will change the joint angle. Therefore, when a particular joint angle is instructed, the deviation between the instructed joint angle and an actual joint angle will vary according to the load torque of a joint, as long as the operation amounts of the actuators are uniformly determined from the instructed joint angle. For this reason, in order to accurately adjust the joint angle to an instructed angle, it is necessary to calculate a modified instruction angle which is obtained by modifying the instruction angle depending on the deviation between the instruction angle and the actual angle, and to determine the operation amount of the actuator from the modified instruction angle. That is, it is necessary to feed back the deviation in the joint angle when determining the operation amount of the actuator.

In a case where the operation amount of the actuator is determined based upon the modified instruction angle, when the instruction angle is modified to a slight excess with respect to the magnitude of the deviation, it will be possible to rapidly reduce the deviation caused in the joint angle. On the other hand, when the instruction angle is modified too much with respect to the magnitude of the deviation, the actuator may operate excessively with respect to the deviation of the joint angle, and consequently the joint angle cannot be accurately adjusted to the instructed angle. Therefore, It is necessary to determine a rate (so-called a feedback gain) such that the instruction angle is modified with respect to the magnitude of a deviation on the basis of the mechanical structure of a joint or the operation needed for a joint.

While the robot operates, each joint acts in various ways. For example, in a bipedal robot, while one foot part makes contact with the ground, the other foot part moves forward as an idling leg. Also, when the other foot part makes contact with the ground, the first foot part moves forward as an idling leg. The bipedal robot walks by repeating these operations. Since each leg becomes a grounded leg or an idling leg, the load torque, for example, applied to an ankle joint changes every moment. When a large feedback gain is used to adjust the joint angle of the ankle joint, the joint angle can be accurately adjusted to an instructed angle while the ankle joint is an ankle joint on the grounded leg, but the joint angle may oscillate while the ankle joint is an ankle joint on the idling leg. In contrast, when a small feedback gain is used, the joint angle can be adjusted correctly while the ankle joint is an ankle joint on the idling leg, but a deviation in the joint angle will not be removed sufficiently while the ankle joint is an ankle joint on the idling leg. A large feed back gain should be selected if joint angle oscillation is permissible, or a small feed back gain should be selected if a degree of deviation in the joint angle is permissible.

At least two wires, i.e., a first wire which is pulled to change the joint angle in a first direction, and a second wire which is pulled to change the joint angle in a second direction, are used for a joint. Also, a torque is generated in the joint by the first wire and the second wire so as to resist a load torque of the joint. The tension in the first wire and the second wire varies according to the load torque of the joint. For example, when the load torque of the joint is a torque which rotates the joint in the first direction, the tension of the first wire becomes smaller than the tension of the second wire. However, when the load torque is a torque which changes the joint angle in the second direction, the tension of the first wire becomes larger than the tension of the second wire.

The relationship between the amount of change in the tension of a wire and the amount of change in the extension of the wire (the rigidity of the wire) is not constant, unlike an ideal elastic object.FIG. 11is a graph showing the relationship between the tension of a wire and the stretch thereof. In the graph inFIG. 11, the abscissa axis represents the tension of the wire and the ordinate axis represents the degree of wire stretching. The gradient of the graph represents rigidity, and a larger gradient represents a smaller rigidity. In a range where the tension is small, like range A in the figure, the rigidity is relatively low and is apt to change. In a range where the tension is large, like range B in the figure, the rigidity is relatively high and is stable. This mainly results from the structure of the wire in which a number of strands are twisted.

While the robot operates, the tension of the first wire and the tension of the second wire change every moment. This means that the rigidity of the first wire and the rigidity of the second wire change every moment. This change in the rigidity means that the relationship between the operation amount of the actuator which moves the other end of a wire back and forth and the amount of change in the joint angle caused by the operation amount is apt to change. When the rigidity of the wire is high and stable, for example, in a state where the tension of the wire is large, even when a change occurs in the tension of the Mire, the relationship between the operation amount of the actuator and the amount of change in the joint angle is stabilized. On the other hand, when the rigidity of the wire is low and unstable in a state where the tension of the wire is small, when a change occurs in the tension of the wire, the relationship between the operation amount of an actuator and the amount of change in the joint angle is apt to change. For this reason, even if the deviation of a joint angle is merely fed back to the operation amount of each actuator that moves a wire back and forth, the joint angle cannot be adjusted correctly. For example, if the joint angle is controlled using a large feedback gain, the joint angle may oscillate in a state where the tension of the wire is small. On the other hand, if a small feedback gain is used, deviation in the joint angle will not be sufficiently removed in a state where the tension of the wire is large. A large feed back gain should be selected if joint angle oscillation is permissible, or a small feed back gain should be selected if a degree of deviation in the joint angle is permissible.

The present invention solves the above problems. The present invention provides a technique for appropriately adding the deviation in a joint angle to the operation amounts of the actuators that move the wires back and forth, and makes it possible to accurately adjust the joint angle to an instructed angle.

A robot embodied by the present invention is provided with a body side member, a distal side member, a first wire, a first actuator, a second wire, a second actuator, a first controller, a second controller, and an adjustor.

The distal side member is rotatably jointed to the body side member. An end of the first wire is connected to a portion of the distal side member located in one side of a rotation center. The first wire is constructed to rotate the distal side member in a first direction when the first wire is pulled. The first actuator is constructed to move the other end of the first wire back and forth. An end of the second wire is connected to a portion of the distal side member located in the other side of the rotation center. The second wire is constructed to rotate the distal side member in a second direction when the second wire is pulled. The second actuator is constructed to move the other end of the second wire back and forth.

The first controller is constructed to instruct an operation amount to the first actuator. Here, the first controller calculates a first modified instruction angle by modifying an instructed rotation angle of the distal side member based upon a deviation between the instructed rotation angle and an actual rotation angle of the distal side member, and calculates the operation amount of the first actuator based upon the first modified instruction angle. The second controller is constructed to instruct an operation amount to the second actuator. Here, the second controller calculates a second modified instruction angle by modifying the instructed rotation angle of the distal side member based upon the deviation between the instructed rotation angle and the actual rotation angle of the distal side member, and calculates the operation amount of the second actuator based upon the second modified instruction angle.

The adjustor is constructed to adjust, in accordance with the torque required to maintain the rotation angle of the distal side member at the instructed rotation angle, the magnitude of the modification performed by the first controller and/or the second controller.

In this robot, the operation of the first actuator and the second actuator is adjusted so that the actual rotation angle of the distal side member may become the instructed rotation angle. The operation amounts of the first actuator and the second actuator are calculated by the first controller and the second controller, respectively. The first controller and the second controller calculate the operation amount of the first actuator and the operation amount of the second actuator on the basis of the modified instruction angle which is obtained by modifying an instructed rotation angle for the distal side member depending on the deviation between the instructed rotation angle and an actual rotation angle of the distal side member. Accordingly, the deviation between the instructed rotation angle and the actual rotation angle is added to the operation amount of the first actuator and the operation amount of the second actuator. The first actuator and the second actuator operate in a direction such that the deviation in the actual rotation angle of the distal side member is removed.

The load torque, which is applied to the distal side member and changes the actual rotation angle of the distal side member, varies according to the operation of the robot. For this reason, a torque required to maintain the actual rotation angle of the distal side member at an instructed rotation angle also varies according to the operation of the robot. When the load torque is large, the first wire and the second wire may extend or retract substantially, and a large deviation in the actual rotation angle of the distal side member may result. In such a case, it is preferable that the first actuator and the second actuator perform larger operation with respect to the caused deviation. On the other hand, when the load torque is small, the first wire and the second wire merely expand or contract slightly, and a large deviation in the actual rotation angle of the distal side member does not result. In such a case, when the first actuator and the second actuator perform large operation with respect to the caused deviation, they may, for example, cause the distal side member to vibrate.

In this robot, the magnitude of the instructed rotation angle modification performed by the first controller or the second controller is adjusted according to the magnitude of the torque required to maintain the actual rotation angle of the distal side member at the instructed rotation angle. That is, the magnitude of the instructed rotation angle modification performed by the first controller or the second controller changes according to the magnitude of the load torque. Accordingly, for example, when the load torque is large, the operation amount of the first actuator or the operation amount of the second actuator can be more substantially increased with respect to the deviation between the instructed rotation angle and the actual rotation angle. On the other hand, when the load torque is small, the operation amount of the first actuator or the operation amount of the second actuator can be partly reduced with respect to a deviation between the instructed rotation angle and the actual rotation angle.

According to this robot, a deviation in the rotation angle of the distal side member can be more appropriately utilized to modify the operation amount of the first actuator and the operation amount of the second actuator. The actual rotation angle of the distal side member can be correctly adjusted to the instructed rotation angle.

In the aforementioned robot, it is preferable that the robot further comprises a storage device for storing an expected value of the torque required to maintain the actual rotation angle of the distal side member at the instructed rotation angle.

A torque required to maintain the actual rotation angle of the distal side member at the instructed rotation angle can be estimated in advance on the basis of the expected operation of the robot. The first controller and the second controller can more accurately adjust the magnitude of the instructed rotation angle modification if the required torque is estimated in advance, based upon the expected operation.

Another robot embodied by the present invention is provided with a body side member, a distal side member, a first wire, a first actuator, a second wire, a second actuator, a first controller, a second controller, and an adjustor.

The distal side member is rotatably jointed to the body side member. An end of the first wire is connected to a portion of the distal side member located in one side of a rotation center. The first wire is constructed to rotate the distal side member in a first direction when the first wire is pulled. The first actuator is constructed to move the other end of the first wire back and forth. An end of the second wire is connected to a portion of the distal side member located in the other side of the rotation center. The second wire is constructed to rotate the distal side member in a second direction when the second wire is pulled. The second actuator is constructed to move the other end of the second wire back and forth.

The first controller is constructed to instruct an operation amount to the first actuator. Here, the first controller calculates a first modified instruction angle by modifying an instructed rotation angle of the distal side member based upon the deviation between the instruction rotation angle and an actual rotation angle of the distal side member, and it calculates the operation amount of the first actuator based upon the first modified instruction angle. The second controller is constructed to instruct an operation amount to the second actuator. Here, the second controller calculates a second modified instruction angle by modifying the instructed rotation angle of the distal side member based upon the deviation between the instructed rotation angle and the actual rotation angle of the distal side member, and calculates the operation amount of the second actuator based upon the second modified instruction angle.

The adjustor is constructed such that it will adjust the magnitude of modification performed by the second controller so it is larger than the magnitude of modification performed by the second controller when the tension of the first wire is larger than the tension of the second wire. When the tension of the second wire is larger than the tension of the first wire, the adjuster will adjust the magnitude of modification performed by the second controller so it is larger than the magnitude of modification performed by the first controller

In this robot, the deviation in the actual rotation angle of the distal side member will be added to the operation amount of the first actuator and the operation amount to the second actuator, and the first actuator and the second actuator operate in a direction in which the deviation in the actual rotation angle of the distal side member is removed.

Depending upon the operation of the robot, the tension of the first wire and the tension of the second wire varies, and consequently their rigidity also varies. In many cases, it is necessary to assign different tensions to each wire in order to maintain a distal side member at the instructed rotation angle while a lord torque is applied. At this time, although the rigidity of one wire is high and stable, the rigidity of the other wire is low and unstable.

In this robot, the magnitude of the modification of the first controller and the magnitude of the modification of the second controller can be modified on the basis of the tension of the first wire and the second wire, respectively. Accordingly, for an actuator which moves a wire with a larger tension, the deviation in the rotation angle of the distal side member can be added to the operation amount of the actuator such that it has a substantial effect. Conversely, for the other actuator which moves the other wire, whose tension is smaller, the deviation in the rotation angle of the distal side member can be added to the operation amount such that it has only a slight effect.

In this robot, when a deviation in the actual rotation angle of the distal side member occurs, the actuator which moves the wire whose tension is larger can be operated to a substantial degree with respect to the deviation. Further, the other actuator which moves the other wire whose tension is smaller can be operated to a slight degree with respect to the deviation. Accordingly, the deviation of the actual rotation angle of the distal side member can be removed rapidly, and the distal side member can be prevented from vibration.

According to this robot, a deviation in the actual rotation angle of the distal side member can be more appropriately added to the operation amount of the first actuator and the operation amount of the second actuator. The actual rotation angle of the distal side member can be correctly adjusted to the instructed rotation angle.

It is preferable that the adjustor is constructed such that the magnitude of modification performed by either the first controller or the second controller is set to zero. That is, even when a deviation in the actual rotation angle of the distal side member occurs, the actuator which moves the wire whose tension is smaller is not operated.

Since the wire whose tension is small has a low rigidity, the wire itself is apt to stretch or contract. The actual rotation angle of the distal side member can be adjusted by moving only the wire whose tension is larger with the actuator, and consequently the other wire whose tension is smaller stretches or contracts passively. In this robot, the actuator, which is unstable in terms of the relationship between the operation amount and the amount of change in the actual rotation angle of the distal side member, is not operated unnecessarily.

It is also preferable that the adjustor is constructed such that it will adjust the magnitude of modification performed by the first controller to be proportional to the tension of the first wire, and will adjust the magnitude of modification performed by the second controller to be proportional to the tension of the second wire.

It becomes possible to more appropriately adjust the operation amount of each actuator with respect to the deviation in the actual rotation angle of the distal side member so that it corresponds to the magnitude of the tension of each wire.

In the aforementioned robot, it is preferable that the robot further comprises a storage device for storing an expected value of the tension of the first wire and/or the second wire.

The tension of the first wire or the second wire can be estimated in advance on the basis of the expected operation of the robot. If the tension of the first wire or the tension of the second wire, estimated from the expected operation of the robot, is stored in advance, the first controller and the second controller can more accurately adjust the magnitude of the modification by which the instructed rotation angle is modified.

It is also preferable that the robot further comprises a sensor for measuring the tension of the first wire and/or the second wire.

Accordingly, the first controller and the second controller can more accurately adjust the magnitude of the modification by which the instructed rotation angle is modified on the basis of the actual tension of each wire. Even when an unexpected external force acts on the robot, it becomes possible to correctly adjust the actual rotation angle of the distal side member to the instructed rotation angle.

According to the present invention, it is possible to provide a technique for appropriately adding the deviation in a joint angle to the operation amount of an actuator which moves a wire back and forth, and to accurately adjust the joint angle to the instructed rotation angle.

DETAILED DESCRIPTION OF THE INVENTION

Features of Embodiment 1

FIG. 1is a view schematically showing the configuration of a joint part of a robot. As shown inFIG. 1, the robot has a body side member361, a distal side member363, and a joint362which rotatably joints the distal side member363to the body side member. The distal side member363is adapted to be rotatable around an X axis with respect to the body side member361.

The robot has a first wire366aan end of which is connected to a connection point372aof the distal side member363located in one side of a rotation center (x in the figure), and a second wire366ban end of which is connected to a connection point372bof the distal side member363located in the other side of the rotation center. By pulling the first wire366aand loosening the second wire366b, the distal side member363rotates in an A direction in the figure. By loosening the first wire366aand pulling the second wire366b, the distal side member363rotates in a B direction in the figure.

The robot has a first actuator368awhich moves the other end of the first wire366aback and forth, and a second actuator368bwhich moves the other end of the second wire366bback and forth. When the first actuator368amoves the other end of the first wire366aback and forth, and the second actuator368bmoves the other end of the second wire366bback and forth, the robot can change the angle of the distal side member363with respect to the body side member361. Hereinafter, the angle of the distal side member363with respect to the body side member361is referred to as the joint angle of the joint362.

The robot has an encoder472disposed in the vicinity of the joint362. The encoder472is a sensor which detects an actual joint angle θmx of the joint362. Hereinafter, the actual joint angle of the joint is often referred to as an actual angle.

The robot has a controller400which controls an operation amount of the first actuator368aand an operation amount of the second actuator368b. The controller400controls the operation amounts of the actuators368aand368bto thereby control the joint angle of the joint362.

FIG. 2shows the configuration of the controller400. The controller400has major features of the controller200provided to the robot10of the embodiment 1 as described below. The controller400has a data storage device402as shown inFIG. 2. The data storage device402stores data required to operate the robot. The data storage device402stores joint angle data and load torque data, for example.

The joint angle data is data which describes a joint angle (instructed angle) of each joint when the robot actuates each joint to make a predetermined operation thereof over time. The joint angle data is prepared in advance by an operator of the robot, etc., and is taught in advance to the robot. The controller400controls the operation amount of actuators so that the joint angle of each joint will become an angle instructed by the joint angle data. Hereinafter, a joint angle described in the joint angle data is often referred to as an instructed angle.

The load torque data is data which describes a load torque of each joint which is expected when the robot actuates each joint to make a predetermined operation thereof over time. The load torque of a joint is an external torque applied from the outside, and is a torque to change a joint angle. That is, the load torque does not include a torque applied by wires.

The controller400has a differentiator412, a proportional integral derivative control (PID control) circuit414, a gain circuit416, an adder418, and a converter434. The differentiator412, the PID control circuit414, the gain circuit416, and the adder418are connected in series, and the data storage device402and the converter434are connected to each other by the series circuits. The gain circuit416is directly connected even to the data storage device402. The adder418is directly connected even to the data storage device402. The encoder472is connected to the differentiator412.

The differentiator412inputs an instructed angle θtx of the joint362from the data storage device402, inputs an actual angle θmx of the joint362from the encoder472, and outputs a deviation angle (θtx−θmx) therebetween. The deviation angle (θtx−θmx) represents an error between the instructed angle θtx and the actual angle θmx, and shows an angle required to modify the actual angle of the joint362to the instructed angle.

The PID control circuit414inputs the deviation angle (θtx−θmx) from the differentiator412, and outputs a modified deviation angle Δθx which is obtained by increasing and decreasing the deviation angle. If the magnitude (absolute value) |θtx−θmx| of the deviation angle is large, the PID control circuit414will output a modified deviation angle Δθx which is modified so that the deviation angle may be increased. The PID control circuit414cumulatively calculates the deviation angle, and outputs a modified deviation angle Δθx which is modified so that a larger cumulative value of the deviation angle may result in a further increased deviation angle. Further, the PID control circuit414calculates the change rate of the deviation angle, and outputs a modified deviation angle Δθx which is modified so that a smaller change rate of the deviation angle may result in a further increased deviation angle. In addition, increasing the deviation angle means that the (plus/minus) sign of the deviation angle (θtx−θmx) is kept unchanged, while the absolute value thereof is modified so that it may become large. A general-purpose PID control circuit, etc. can be used as the PID control circuit414.

The gain circuit416inputs the modified deviation angle Δθx from the PID control circuit414, inputs a load torque θtx of the joint362from the data storage device202, and outputs an amplified deviation angle Gx·Δθx. This coefficient Gx is a coefficient for amplifying the modified deviation angle Δθx. The gain circuit416will set a larger amplification coefficient Gx as the input load torque Etx is larger. The gain circuit416multiplies the input modified deviation angle Δθx by the set amplification coefficient Gx.

The adder418inputs the instructed angle θtx of the joint362from the data storage device402, inputs the amplified deviation angle Gx·Δθx from the gain circuit416, and outputs a modified instruction angle (θtx+Gx·Δθx). The adder418obtains the modified instruction angle (θtx+Gx·Δθx) by adding the instructed angle θtx to the amplified deviation angle Gx·Δθx. The modified instruction angle (θtx+Gx·Δθx) outputted by the adder418is an angle that has been modified from the instructed angle θtx with respect to the deviation between the instructed angle θtx and the actual angle θtm concerning the joint362. Here, as the load torque of the joint362is larger, the magnitude of the modification will be larger.

The converter434inputs the modified instruction angle from the adder414, and calculates a modified effective length La2for the first wire366aand a modified effective length Lb2for the second wire366bform the modified instruction angle. The effective length of a wire is the length of a wire projected from an actuator. If the effective lengths of the first wire366aand the second wire366bare adjusted to the modified effective length La2and Lb2calculated from the modified instruction angle, respectively, the joint angle of the joint362will be adjusted to the modified instruction angle.

As shown inFIG. 2, the controller400has a first driver451which controls the first actuator368a, and a second driver452which controls the second actuator368b. The first driver451and the second driver452are connected to the converter434. The first actuator368ais connected to the first driver451. The second actuator368bis connected to the second driver452.

The first driver451inputs the modified effective length La2for the first wire366acalculated by the converter434, and calculates an operation amount of the first actuator368aon the basis of the input modified effective length La2. And then, the first driver451operates the first actuator368aby the calculated operation amount. The first driver451stores a reference relationship between an operation amount of the first actuator368aand a length by which the first wire366ais moved back and forth by the operation amount (or, a distance by which the other end of the first wire366amoves back and forth). The first driver451calculates the operation amount of the first actuator368aon the basis of the modified effective length La2and the stored reference relationship.

The second driver452stores a reference relationship between an operation amount of the second actuator368b, and a length by which the second wire366bis moved back and forth by the operation amount (or, a distance by which the other end of the second wire366bmoves back and forth). The second driver452inputs the modified effective length Lb2for the second wire366bcalculated by the converter434, and calculates an operation amount of the second actuator368bfrom the input modified effective length Lb2. And then, the second driver452operates the second actuator368bby the calculated operation amount.

As described above, the controller400can calculate the modified instruction angle (θtx+Gx·Δθx) by modifying the instructed angle θtx of the joint362based upon the deviation between the instructed angle θtx and the actual angle θmx of the joint362, and can calculate the modified effective lengths La2, Lb2for the wires366a,366bbased upon the modified instruction angle (θtx+Gx·Δθx). Then, the controller400can calculate the operation amount of the first actuator368afrom the modified effective length La2, and can calculate the operation amount of the second actuator368bfrom the modified effective length Lb2. Accordingly, the operation amounts of the actuators368a,368bis calculated with respect to the deviation in the joint angle of the joint362. In the controller400, when the deviation in the joint angle of the joint362occurs, the operation amount of the first actuator368aand the second actuator368bare calculated so that the deviation will be removed.

In the controller400, when the instructed angle of the joint362is modified by the deviation between the instructed angle and the actual angle, the magnitude of the modification is adjusted by the PID control circuit414and the gain circuit416. Particularly, the magnitude of the modification is adjusted by the gain circuit416so that a larger load torque of the joint362may result in a larger magnitude of the instruction angle modification. As a result, when the load torque of the joint362is larger, the operation amount of the first actuator368aor the second actuator368bwill be adjusted to be larger with respect to the deviation in the joint angle of the joint362.

While the robot operates, the joint362acts in various ways. For example, there is a case where the joint362operates to support the total weight of the robot, and there is also a case where the joint362operate to support only the weight of the distal side member363. The load torque of the joint362varies according to the operation of the robot. When the load torque applied to the joint362is large, the first wire366aand the second wire366bwill stretch or contract substantially, and a large deviation in the joint angle of the joint362may result. When the load torque of the joint362is larger, the controller400modifies the instructed angle more substantially with respect to the magnitude of the deviation. Therefore, when the load torque of the joint362is larger, the first actuator368aand the second actuator368bperform larger operation so that the deviation is removed. Therefore, the deviation in the joint angle of the joint362will be removed rapidly, and the joint angle is accurately adjusted to the instruction angle.

On the other hand, when the load torque of the joint362is small, the first wire366aand the second wire366bwill stretch or contract slightly, and therefore a large deviation in the joint angle of the joint362does not occur. As the load torque of the joint362is smaller, the controller400modifies the instructed angle more slightly with respect to the magnitude of the deviation. Therefore, neither the first actuator368anor the second actuator368boperates excessively. This prevents the joint angle of the joint362from vibrating, for example. Since the deviation occurs slightly, the deviation can be removed rapidly and the joint angle is accurately adjusted to the instructed angle.

The controller400can appropriately add the deviation in the joint angle of the joint362to the operation amount of the first actuator368aor the second actuator368b, thereby adjusting the joint angle of the joint362accurately to an instructed angle.

Features of Embodiment 2

FIG. 3shows a controller404. The controller404has major features of the controller provided to the robot of the embodiment 2 as described below. The controller404can be used for controlling the operation amount of the first actuator368aand the second actuator368bshown inFIG. 1similarly to the controller400. The controller404can replace the controller400for controlling the robot shown inFIG. 1.

Hereinafter, although the controller404will be described, the same components as those of the controller400shown inFIG. 1are denoted by the same reference numerals, and the detailed description thereof is omitted so as to avoid repeated description.

As shown inFIG. 3, the controller404has the data storage device402. The data storage device402stores joint angle data and expected tension data The expected tension data is data which describes a tension expected to be generated in each wire when the robot actuates each joint to make a predetermined operation thereof over time.

The controller404has the differentiator412, the PID control circuit414, the adder418, a first converter432, and a second converter434. The first converter432is connected to the data storage device402. The differentiator412, the PID control circuit414, and the adder418are connected in series, and the data storage device402and the second converter434are connected to each other by the series circuits.

The adder418inputs an instructed angle Δθx of the joint362from the data storage device402, inputs a modified deviation angle Δθx from the PID control circuit414, and outputs a modified instruction angle (θtx+Δθx) obtained by adding the instructed angle θtx to the modified deviation angle Δθx. The modified instruction angle (θtx+Δθx) output by the adder418is an angle which is obtained by modifying the instructed angle θtx of the joint362according to the deviation between the instructed angle θtx and the actual angle θtx.

The first converter432and the second converter434are almost the same as the converter434in the controller400. Here, the first converter432inputs the instructed angle θtx of the joint362from the data storage device402, and calculates an expected effective length La1for the first wire366aand an expected effective length Lb1for the second wire366bfrom the instructed angle. The second converter434inputs the modified instruction angle (θtx+Δθx) from the adder414, and calculates a modified effective length La2for the first wire366aand a modified effective length Lb2for the second wire366bfrom the modified instruction angle.

The controller404has a first variable distributor461and a second variable distributor462. The first converter432, the second converter434, and the data storage device402are connected to the input part of the first variable distributor461. The first driver451is connected to the output part of the first variable distributor461. The first converter432, the second converter434, and the data storage device402are connected to the input part of the second variable distributor462. The second driver452is connected to the output part of the second variable distributor462.

The first variable distributor461inputs the expected effective length La1for the first wire366afrom the first converter432, inputs the modified effective length La2for the first wire366afrom the second converter434, and inputs an expected tension Ta of the first wire366afrom the data storage device402. And then, the first variable distributor461calculates a distributed effective length from the input expected effective length La1and modified effective length La2. The distributed effective length calculated by the first variable distributor461is a value between the expected effective length La1and the modified effective length La2. And, the distributed effective length is set to be near to the modified effective length La2as the tension of the first wire366ais larger. The first variable distributor461input the expected tension Ta of the first wire366afrom the data storage device202, and calculates the distributed effective length expressed by the following equation.
(Distributed effective length)=La1+(La2−La1)·k
k in the above equation is 0 (zero)≦k≦1, and is a coefficient proportional to the tension of the first wire366a. The distributed effective length calculated by the first variable distributor461can be considered as a value which is modified by adding the deviation in the joint angle of the joint362to the expected effective length La1calculated from the instruction angle of the joint362. The magnitude of the modification becomes larger as the tension of the first wire366ais larger, and especially, is proportional to the tension of the first wire366a. The second variable distributor462calculates the distributed effective length (Lb1+(Lb2−Lb1)·k) for the second wire366bsimilarly to the first variable distributor461. In addition, the coefficient k which is used for calculation by the second variable distributor462is determined from the tension of the second wire366b, and differs from the coefficient k which is used for calculation by the first variable distributor461.

The first driver451inputs the distributed effective length of the first wire366afrom the first variable distributor461, and calculates an operation amount of the first actuator368afrom the distributed effective length. The operation amount calculated from the distributed effective length can be considered as an operation amount calculated from an angle which is obtained by modifying an instructed angle of the joint362according to the deviation angle between the instructed angle and the actual angle. The magnitude of the modification of the instructed angle will be larger as the tension of the first wire366ais larger. The second driver452calculates an operation amount of the second actuator368bsimilarly to the first driver451. As a result, when the tension of the first wire366ais larger than the tension of the second wire366b, the first driver451calculates the operation amount from an angle which is obtained by modifying the instructed angle more substantially than the second driver452. When the tension of the second wire366bis larger than the tension of the first wire366a, the second driver452calculates the operation amount from an angle which is obtained by modifying the instructed angle more substantially than the first driver451. The first driver451and the second driver452operate the first actuator368aand the second actuator368bby the calculated operation amount, respectively.

The controller404calculates the expected effective length La1for the first wire366aand the expected effective length Lb1for the second wire366bfrom the instructed angle of the joint362. The expected effective lengths La1and Lb1are calculated without considering the deviation in the joint angle of the joint362. Further, the controller404calculates the modified effective length La2for the first wire366aand the modified effective length Lb2for the second wire366bfrom the modified instruction angle which is obtained by modifying the instructed angle of the joint362according to the deviation between the instructed angle and the actual angle. The modified effective lengths La2and Lb2are calculated with considering the deviation in the joint angle of the joint362. Then, the controller404calculates the distributed effective length for the first wire366afrom the expected effective length La1and modified effective length La2for the first wire366a. At this time, as the tension of the first wire366ais larger, the distributed effective length will be near to the effective length La2. That is, as the tension of the first wire366ais larger, the distributed effective length for the first wire366awill be more substantially affected by the deviation in the joint362. The distributed effective length for the second wire366bis calculated similarly to that for the first wire366a. As a result, in the first wire366aand the second wire366b, the distributed effective length for the wire with a larger tension will be more substantially affected by the deviation in the joint angle the joint362.

In the controller404, the operation amounts of the first actuator368aand the second actuator368bare calculated from the distributed effective lengths for the first wire366aand the second wire366b, respectively. As a result, when the tension of the first wire366ais larger than the tension of the second wire366b, the operation amount of the first actuator368awill be more substantially modified with respect to the deviation in the joint angle of the joint362than the operation amount of the second actuator368b. Conversely, when the tension of the second wire366bis larger than the tension of the first wire366a, the operation amount of the second actuator368bwill be more substantially modified with respect to the deviation in the joint angle of the joint362than the operation amount of the first actuator368a.

As described previously, while the robot operates, the load torque applied to the joint362varies according to the operation of the robot. When the load torque is applied to the joint362, the tension of either the first wire366aor the second wire366bwill increase, while the tension of the other one will decrease. As the load torque of the joint362varies every moment, the tensions of the first wire366aand the tension the second wire366balso vary every moment. Since the rigidities of the wires vary depending on the tension of the wire, the rigidity of the first wire366aand the second wire366bwill vary every moment according to the operation of the robot.

When the rigidity of the wire varies, the relationship between the operation amount of the actuator which moves the wire and the amount of change in the joint angle caused by the operation amount also varies. In particular, when the tension of the wire is small, the rigidity of the wire is low and is apt to vary. A delay may occur in the change (so-called responsiveness) of the joint angle with respect to the operation of the actuator, if the operation amount of the actuator is modified substantially with respect to the deviation in the joint angle. As a result, the joint angle may be vibrating. On the other hand, when the tension of the wire is large, the rigidity of the wire is high and stable. The deviation in the joint angle can be rapidly removed by modifying the operation amount of the actuator substantially with respect to the deviation. The joint angle can now be accurately adjusted to an instructed angle.

When the controller404calculates the operation amount of the first actuator368aand the operation amount of the second actuator368b, the controller404adds the deviation in the joint angle more largely to the operation amount of the actuator which moves the wire, whose tension is larger, than to the operation amount of the other actuator, whose tension is smaller. When the deviation in the joint angle of the joint362occurs, the controller404operates the actuator for the wire with a larger tension substantially with respect to the deviation, while it operates the other actuator for the other wire with a smaller tension slightly with respect to the deviation. That is, the controller404causes a wire which is high and stable in rigidity to be moved substantially with respect to the deviation, and causes a wire which is low and unstable in rigidity to be moved slightly with respect to the deviation. Accordingly, the deviation in the joint angle of the joint362can be rapidly removed, and the joint angle can be prevented from vibrating.

The controller404can appropriately add the deviation caused in the joint angle of the joint362to the operation amounts of the first actuator368aand the second actuator368b, thereby adjusting the joint angle of the joint362accurately to the instructed angle.

An embodiment of the present invention will be described with reference to the drawings. The present embodiment applies the technique of the present invention to a humanoid robot.

FIG. 4is a front view of a lower body of a robot10.FIG. 5is a side view of the lower body of the robot10.FIG. 6is a view showing the structure of an ankle jointFIG. 7is a view showing the configuration of an actuator. Although not shown, the robot10additionally has a head part, an upper body, an upper arm, a lower arm, etc.

In the present embodiment, an anteroposterior direction (traveling direction of the robot10) of a foot part is defined as an X-axis, a horizontal direction is defined as a Y axis, and a direction in which a lower leg part or a body extends is defined as a Z axis. The axes are orthogonal to each other.

As shown inFIG. 4, the robot10in the present embodiment has right and left legs12. The shape of the right and left legs12is mirror-symmetrical. The leg12is mainly composed of a thigh part14, a lower leg (shin) part16, and a foot part18. The thigh part14and the body part20are jointed by a hip joint22. The thigh part14and the lower leg part16are jointed by a knee joint24. The lower leg part16and the foot part18are jointed by an ankle joint26.

With reference toFIGS. 4,5, and6, the hip joint22, the knee joint24, and the ankle joint26will be described in order. First, the hip joint22will be described. A disk36which rotates around the Z axis is attached to a plate-like pelvic part28via a bearing34(refer toFIG. 5). A pair of right and left disks36are provided. A shaft30extending from the pelvic part28side toward the thigh part14(extending in the Z axis direction) is fixed to the center of each disk36. The shaft30rotates around the Z axis with respect to the pelvic part28.

An upper end of the thigh part14is connected to a lower end of a shaft30via a universal joint32. The universal joint32permits the thigh part14to rotate around the X axis and around the Y axis with respect to the shaft30.

The hip joint22has the shaft30which can rotate around the Z axis with respect to the pelvic part28, and the universal joint32which permits the thigh part14to rotate around the X axis and around the Y axis with respect to the shaft30, and constitutes a triaxial joint which is rotatable around each of the X, Y, and Z axes.

Next, the knee joint24will be described. Two parallel flanges40extend downward at a lower end of each thigh part14. Two parallel flanges44extend upward at an upper end of a shaft42constituting each lower leg part16. The knee joint24has a shaft46which extends in the Y axis direction through these flanges40and44. The knee joint24permits the lower leg part16to rotate around the Y axis with respect to the thigh part14.

Next, the ankle joint26will be described. SinceFIG. 6shows the simplified structure of the ankle joint26, the shape or dimension of the angle joint does not necessarily coincide with an actual shape or actual dimension. Two parallel flanges58extend downward at a lower part of the shaft42of each lower leg part16. Two parallel flanges60extend upward at the top face of the foot part18. The flanges58of the lower leg part16and the flanges60of the foot part18are jointed by a cross tip universal coupling62to constitute a universal joint. The ankle joint26permits the foot part18to rotate around the X axis and around the Y axis with respect to the lower leg part24. That is, the ankle joint26is a biaxial joint which has the degree of freedom for each of the X and Y axes.

Each joint of the robot10is driven using a wire (The rotation of a hip joint around the Z axis excluded. Only this rotation is directly rotated by a motor without using a wire). Each wire has an end connected to a distal side member, and the other end connected to an actuator. The actuator moves each wire back and forth with respect to the distal side member.

As shown inFIGS. 4 and 5, the robot10has, for example, a wire50aand an actuator52awhich moves the wire50aback and forth, a wire50band an actuator52bwhich moves the wire50bback and forth, a wire50cand an actuator52cwhich moves the wire50cback and forth, etc. These control mainly the operation of the hip joint22. As shown inFIGS. 4 and 5, the robot10has a wire66aand an actuator68awhich moves the wire66aback and forth, a wire66band an actuator68bwhich moves the wire66bback and forth, a wire66cand an actuator68cwhich moves the wire66cback and forth, a wire66dand an actuator68dwhich moves the wire66dback and forth, etc. These mainly control the operation of the knee joint24or the ankle joint26.

The wires used for the robot10have the relationship between tension and stretch as previously described with reference toFIG. 11. That is, the rigidity of each wire changes depending on a caused tension. Particularly, the rigidity is low in a state where a small tension is caused, and as the tension changes, the rigidity is also apt to change.

With reference toFIG. 6, the wires66a,66b, and66cwhich drive the ankle joint26will be described. Wire termination guides70a,70b, and70care fixed to the foot part18. Each of the wire termination guides70a,70b, and70cis circular arc-shaped, the central axis of each circular arc extends in the Y axis direction, and the surface of the circular arc has a predetermined width (distance extending along the Y axis). The wire termination guide70ais on X axis, and is disposed further ahead than the ankle joint26in the X axis direction. The circular arc surface of the wire termination guide70afaces the front direction of the X axis. The wire termination guides70band70care located further behind than the ankle joint26in the X axis direction. The wire termination guide70bis located outside the ankle joint26, and the wire termination guide70cis located inside the ankle joint26. The circular arc surface of the wire termination guide70b,70cfaces the rear direction of the X axis.

Lower ends of the three wires66a,66b, and66care fixed to wire connection points72a,72b, and72c, respectively, of the lower ends of the wire termination guides70a,70b, and70c(the wire connection point72cis shown inFIG. 4). The other end of each of the wires66a,66b, and66cextends toward the knee joint24. The wire termination guides70a,70b, and70cprevent the wires66a,66b, and66cfrom being sharply bent with a small radius of curvature.

By the above configuration, by loosening the wires66band66cin the same way while the wire66ais pulled toward the knee joint24, the foot part18rotates in one direction around the Y axis of the ankle joint26, and the tiptoe side (the left in the X axis direction ofFIG. 6) of the foot part18operates to rise. Otherwise, by pulling the wires66band66ctoward the knee joint24in the same way while the wire66ais loosened, the foot part18rotates in the other direction around the Y axis of the ankle joint26, and the heel side (the right in the X axis direction ofFIG. 6) of the foot part18operates to rise.

Further, by loosening the wire66cwhile the wire66bis pulled toward the knee joint24, the foot part18rotates in one direction around the X axis of the ankle joint26, and the outside (the right in the Y axis direction ofFIG. 6) of the foot part18operates to rise. By pulling the wire66ctoward the knee joint24while the wire66bis loosened, the foot part18rotates in the other direction around the X axis of the ankle joint26, and the inside (the left in the Y axis direction ofFIG. 6) of the foot part18operates to rise.

By combining the above operations, the joint angle of the ankle joint26around the X axis and the joint angle of the ankle joint around the Y axis can be independently adjusted by moving the three wires66a,66b, and66cback and forth. In addition, the positions of the wire connection points72a,72b, and72care not limited to those in the present embodiment.

Next, the wires which control the operation of the knee joint24will be described. The operation of the knee joint24is adjusted using the wires66a,66b,66c, and66d. As shown inFIG. 6, three pulleys64a,64b, and64care arranged alternately with the two flanges44at an upper portion of the shaft42of the lower leg part16. The three pulleys64a,64b, and64care supported so as to be rotatable around a shaft46which passes through the flanges44in the Y axis direction. The wires66a,66b, and66care wound around the pulleys64a,64b, and64c, respectively. The wires66a,66b, and66care separated from the pulleys on the front side of the pulleys64a,64b, and64c. Further, as shown well inFIGS. 4 and 5, the wire66dis fixed by the flanges44around the rear side of the X axis of the knee joint24.

By the above configuration, by loosening the wire66dwhile the three wires66a,66b, and66care pulled in the same way toward the thigh part14, the knee joint24rotates in one direction around the Y axis, and the knee joint24operates to extend. By pulling the wire66dtoward the thigh part14while the three wires66a,66b, and66care loosened in the same way, the knee joint24rotates in the other direction around the Y axis, and the knee joint24operates to bend. When the three wires66a,66b, and66care made to simultaneously move back and forth at the same speed, the knee joint24can be rotated without rotating the ankle joint26.

As shown inFIGS. 4 and 5, the actuators68a,68b,68c, and68dwhich move the wires66a,66b,66c, and66dback and forth are disposed in the thigh part14. In the robot10, even an actuator for adjusting the rotation angle of the ankle joint26as well as the knee joint24is disposed in the thigh part14. Accordingly, the distal side of a leg12is configured lightly, and the moment of inertia around the hip joint22is suppressed low. The robot10can operate the lower leg12with a small torque.

Next, the wires which control the operation of the hip joint22will be described. As shown inFIGS. 4 and 5, ends of the wires50a,50b, and50cwhich drive the hip joint22are also fixed to lower ends49a,49b, and49cof the wire termination guides48a,48b, and48c. The rotation angle of the hip joint22around the X axis and the rotation angle of the hip joint around the Y axis can be independently adjusted by moving wires50a,50b, and50cback and forth, respectively. Further, the disk36which is rotatable in the pelvic part28is rotated around the Z axis by a motor38. The motor38is fixed to the pelvic part28. The rotation angle of the hip joint22around the Z axis is adjusted by the motor38.

With reference toFIG. 7, actuators which move the wires back and forth will be described.FIG. 7shows the actuator68awhich moves the wire66aback and forth. The actuator68ahas a pair of flanges102and106, and three guide rods108,110, and112which connect them together. A feed screw120is disposed between the pair of flanges102and106. The feed screw120is supported to be rotatable, but not to be movable in its axial direction. A movable plate104is threadedly engaged with the feed screw120. The movable plate104has the structure of being guided by the guide rods108,110, and112. An end of the wire66ais fixed to the movable plate104. The actuator68ahas a motor114. The motor114is connected to the feed screw120via a gear116and a gear118.

When the motor114rotates, the feed screw120rotates. When the feed screw120rotates, the movable plate104slides along the guide rods and the wire66ais pulled in or fed out. The rotational amount of the motor114is proportional to an amount by which a connecting end of the wire66aconnected to the movable plate104moves back and forth. The motor114is connected to a first driver251described in the latter section, and the operation of the motor114is adjusted by the first driver251.

In the robot10the actuators48b,48c,68a,68b,68c, and68dwhich move the other wires50b,50c,66a,66b,66c, and66dback and forth have the same structure as shown inFIG. 7. In addition, the actuators which move the wires back and forth are not limited to this type.

Next, the controller which controls the operation of the robot10will be described. The body part of the robot10(whose illustration is omitted) is provided with a controller which controls the operation of the actuators48b,48c,68a,68b,68c, and68d, etc. Hereinafter, taking the ankle joint26as an example, a method in which the controller controls the operation of the actuators68a,68b, and68cwhich operate the ankle joint26will be described.

FIG. 8shows the configuration of a portion of a controller200included in the robot10.FIG. 8shows mainly a portion of the controller200for controlling the operation of the actuators68a,68b, and68c. The portion of the controller200shown inFIG. 8controls the operation of the actuators68a,68b, and68carranged in one of the right and left legs12. The controller200further includes a set of components shown inFIG. 8in order to control the operation of the actuators68a,68b, and68carranged in the another leg12.

As shown inFIG. 8, the controller200has the data storage device202. The data storage device202stores joint angle data, load torque data, expected tension data, etc., for example.

The joint angle data is data which describes a joint angle (instructed angle) of each joint, when the robot10actuates each joint to make a predetermined operation thereof over time. For example, the joint angle data describes time-series data which describe an instructed angle θtx of the ankle joint26around the X axis, and time-series data which describe an instructed angle θty of the ankle joint around the Y axis.

The load torque data is data which describes a load torque expected to be applied thereto when the robot actuates each joint to make a predetermined operation thereof over time. The load torque data describes the load torque of each joint in its rotative direction over time. The load torque data describes, for example, an expected load torque Etx of the ankle joint26around the X axis and an expected load torque Ety of the ankle joint around the Y axis over time.

The expected tension data is data which describes a tension expected to be generated in each wire when the robot10actuates each joint to make a predetermined operation thereof over time. For example, as for the ankle joint26, the expected tension data describes the expected value of the tension Ta caused in the wire66a, the expected value of the tension Tb caused in the wire66b, and the expected value of the tension Tc caused in the wire66cover time.

Referring toFIG. 9, taking the ankle joint26as example, a load torque applied to the ankle joint26, and tensions to be caused in the wires66a,66band66cwill be described.FIG. 9(a) shows a state where the foot part18is located in the air.FIG. 9(b) shows a state where the foot part18makes contact with a ground surface H. It is assumed that the instructed angles (θtx, θty) concerning the ankle joint26are equal to each other in a point of time shown inFIG. 9(a), and a point of time shown inFIG. 9(b).

In the state where the foot part18is located in the air as shown inFIG. 9(a), for example, the gravity Wt of the foot part18, etc. acts on the foot part18. The gravity Wt tends to rotate the ankle joint26around the Y axis. Such an external torque (except for torques caused by the wires66a,66b, and66c) which tends to change the joint angle of the ankle joint26around the Y axis is referred to as the load torque of the ankle joint26around the Y axis. In this state, when the load torque of the ankle joint26around the Y axis and the torques applied to the ankle joint26around the Y axis caused by the tensions Ta, Tb, and Tc of the wires86a,86b, and86care balanced with each other in a state where the joint angle of the ankle joint26around the Y axis is the instructed angle θty, the joint angle of the ankle joint26around the Y axis is maintained at the instructed angle θty.

In the state where the foot part18makes contact with the ground surface H as shown inFIG. 9(b), for example, the gravity Wt of the foot part18, a reaction force F of the foot part18from the ground surface H, etc. act on the foot part18. The gravity Wt and reaction force F tend to rotate the ankle joint26around the Y axis. When the load torque of the ankle joint26around the Y axis caused by the gravity W, the reaction force F, etc. and the torques applied to the ankle joint26around the Y axis caused by the tensions Ta, Tb, and Tc of the wires86a,86b, and86care balanced with each other in a state where the joint angle of the ankle joint26around the Y axis is the instructed angle θty, the joint angle of the ankle joint26around the Y axis is maintained at the instructed angle θty.

As apparent from comparison betweenFIGS. 9(a) and9(b), even when the instructed angles (θtx, θty) of the ankle joint26are equal to each other, the load torque of the ankle-joint26around the Y axis changes every moment following the operation of the robot. As the load torque changes every moment, the tension Ta, Tb, and Tc of the wires66a,66b, and66calso need to change every moment. This is not limited to the ankle joint26, but is similarly applied to about each of the other joints.

When the tension of each of the wires66a,66b, and66cchanges, each of the wire66a,66b, and66cwill stretch according to the tension change. As each of the wires66a,66b, and66cstretches, the joint angle of the ankle joint26changes even when the actuator68a,68b, or68cwhich moves each wire back and forth does not operate. In other words, it is necessary to calculate the operation amount of each of the actuators68a,68b, and68cin consideration of the extension of each of the wires66a,66b, and66c.

The robot10previously grasps the load torque of each joint which changes every moment following its own operation, and the tension of each wire which changes every moment following its own operation.

As shown inFIG. 8, the controller200has a first converter232. The first converter232inputs the instructed angles (θtx, θty) of the ankle joint26around the X and Y axes, and calculates and outputs expected effective lengths La1, Lb1, and Lc1for the wires66a,66b, and66c, respectively. The first converter232corresponds to the first converter432shown inFIG. 3. The first converter232calculates the effective length for each wire similarly to the first converter432shown inFIG. 3. When the effective length for each wire is adjusted by the expected effective lengths La1, Lb1, and Lc1calculated from the instructed angles (θtx, θty), the joint angles of the ankle joint26around the X and Y axes will be adjusted to the instructed angles (θtx, θty).

The controller200has a second converter234. The second converter234itself is the same as the first converter232.

The controller200has a first differentiator212, a first proportional integral derivative control (PID control) circuit214, a first gain circuit216, and a first adder218. The first differentiator212, the first PID control circuit214, the first gain circuit216, and the first adder218are connected in series, and the series circuit connects the data storage device202with the second converter234.

The controller200has a second differentiator222, a second proportional integral derivative control (PID control) circuit224, a second gain circuit226, and a second adder228. The second differentiator222, the second PID control circuit224, the first gain circuit226, and the first adder228are connected in series, and the series circuit connects the data storage device202with the second converter234. The first differentiator212and the second differentiator222are the same as each other. Similarly, the first PID control circuit214and the second PID control circuit224are the same as each other, the first gain circuit216and the second gain circuit226are the same as each other, the first adder218and the second adder228are the same as each other.

As shown inFIG. 8, the first gain circuit216and the second gain circuit226are directly connected even to a data storage device216. The first adder218and the second adder228are directly connected even to the data storage device216.

The controller200has a first encoder272which detects an actual joint angle (actual angle) θmx of the ankle joint26around the X axis, and a second encoder274θmy which detects an actual joint angle (actual angle) θmx of the ankle joint26around the Y axis. The first encoder272is connected to the first differentiator212. The second encoder274is connected to the second differentiator222. Although not shown inFIGS. 4,5, and6, the first encoder272and the second encoder274are disposed in the vicinity of the ankle joint26. A set of the first encoder272and the second encoder274are disposed in each of the right and left legs12.

The first differentiator212inputs an instructed angle θtx of the ankle joint26around the X axis from the data storage device202, and inputs an actual angle θmx of the ankle joint26from the first encoder272, and outputs a deviation angle (θtx−θmx) therebetween.

The first PD control circuit214inputs the deviation angle (θtx−θmx) from the first differentiator212, and outputs a modified deviation angle Δθx which is modified by increasing and decreasing the deviation angle. The first PID control circuit214calculates the modified deviation angle Δθx in a way similar to the PID control circuit414shown inFIG. 2.

The first gain circuit216inputs the modified deviation angle Δθx from the first PID control circuit214, inputs a load torque Etx of the ankle joint26from the data storage device202, and outputs an amplified deviation angle Gx·Δθx. This coefficient Gx is a coefficient for amplifying the modified deviation angle Δθ. The first gain circuit216calculates the amplified deviation angle Gx·Δθx in a way similar to the gain circuit416described in Feature1.

The first adder218inputs the instructed angle θtx of the ankle joint26from the data storage device202, inputs the amplified deviation angle Gx·Δθx from the first gain circuit216, and outputs a modified instruction angle (θtx+Gx·Δθx) obtained by adding the instructed angle θtx to the amplified deviation angle Gx·Δθx. The modified instruction angle (θtx+Gx·Δθx) output by the first adder218is an angle which is obtained by modifying the instructed angle θtx of the ankle joint26around the Y axis according to the deviation between the instructed angle θtx and the actual angle θtm. The magnitude of the modification is adjusted so that a larger load torque Etx of the ankle joint26around Y axis may result in a larger magnitude of modification.

The second differentiator222, the second PID control circuit224, the second gain circuit226, and the second adder228perform the same processing as that in the ankle joint26around the Y axis. The second adder228outputs the modified instruction angle (θty+Gy·Δθy) of the ankle joint26around the Y axis.

The second converter234inputs the modified instruction angles (θtx+Gx·Δθx, θty+Gy·Δθy) of the ankle joint26around the X and Y axes from the first adder218and the second adder228, and calculates and outputs expected effective lengths La2, Lb2, and Lc2for the wires66a,66b, and66c, respectively. When the effective length for each wire is adjusted by the expected effective lengths La2Lb2, and Lc2calculated from the instructed angles (θtx, θty), the joint angles of the ankle joint26around the X and Y axes will be adjusted to the modified instruction angles (θtx+Gx·Δθx, θty+Gy·Δθy).

The controller200has a first driver251which controls the operation of the actuator68a, a second driver252which controls the operation of the actuator68b, and a third driver253which controls the operation of the actuator68c.

The controller200has a first selector241, a second selector242, and a third selector243. The first selector241is interposed in a circuit which connects the first converter232and the second converter234to the first driver251. The second selector242is interposed in a circuit which connects the first converter232and the second converter234to the second driver252. The third selector243is interposed in a circuit which connects the first converter232and the second converter234to the third driver253. The first selector241is constructed to selectively connect one of the first converter232and the second converter234to the first driver251. The second selector242is constructed to selectively connect one of the first converter232and the second driver252to the second driver252. The third selector243is constructed to selectively connect one of the first converter232and the second converter234to the third driver253.

The controller200has a first switching unit261, a second switching unit262, and a third switching unit263. The first switching unit261is connected to the first selector241. The second switching unit262is connected to the second selector242. The third switching unit263is connected to the third selector243. Further, the first switching unit261, the second switching unit262, and the third switching unit263are connected even to the data storage device202.

The first switching unit261inputs an expected tension Ta of the wire66afrom the data storage device202, and switches the first selector241on the basis of the value of the expected tension Ta of the wire66a. When the expected tension Ta of the wire66ais smaller than a predetermined value, the first switching unit261switches the first selector241so as to connect the first converter232to the first driver251. Further, when the expected tension Ta of the wire66ais larger than a predetermined value, the first switching unit261switches the first selector241so as to connect the second converter234to the first driver251. Accordingly, when the tension of the wire66ais small, the expected effective length La1is input to the first driver251from the first converter232. And, when the tension of the wire66ais large, the modified effective length La2is input to the first driver251from the second converter234.

Similarly, the second switching unit262switches the second selector242on the basis of the expected tension Tb of the wire66b. That is, when the tension of the wire66bis small, the expected effective length Lb1is input to the second driver252from the first converter232. And, when the tension of the wire66bis large, the modified effective length Lb2is input to the second driver252from the second converter234. Similarly, the third switching unit263switches the third selector243on the basis of the value of the expected tension. To of the wire66c. That is, when the tension of the wire66cis small, the expected effective length Lc1is input to the third driver253from the first converter232. And, when the tension of the wire66cis large, the modified effective length Lc2is input to the third driver253from the second converter234.

The first driver251calculates an operation amount of the actuator68aon the basis of the inputted one of the expected effective length La1and modified effective length La2for the wire66a, and operates the actuator68aby the calculated operation amount. The first driver251stores a reference relationship between a rotation angle of the motor114of the actuator68aand a length by which the wire66ais moved back and forth by the operation of the actuator. The first driver251calculates the operation amount of the actuator68aon the basis of the input effective length for the wire66aand a stored reference relationship.

Similarly, the second driver252calculates an operation amount of the actuator68b, and operates the actuator68bby the calculated operation amount. The third driver253calculates an operation amount of the actuator68c, and operates the actuator68by the calculated operation amount.

With the configuration as described above, the controller200calculates the targeted expected effective lengths La1, Lb1, and Lc1for the wires66a,66b, and66cfrom the instructed angles of the ankle joint26around the X and Y axes. The expected effective lengths La1, Lb1, and Lc1are calculated without adding deviations caused in the joint angle of the ankle joint26. Further, the controller200calculates modified instruction angles around the X and Y axes, which are obtained by modifying the instructed angles of the ankle joint26on the basis of deviations between the instructed angles and actual angles, and calculates targeted modified effective lengths La2, Lb2, and Lc2for the wires66a,66b, and66cfrom the calculated modified instruction angles around the X and Y axes. The modified effective lengths La2, Lb2, and Lc2are calculated with deviations caused in the joint angle of the ankle joint26being added thereto. At this time, as the load torque of the ankle joint26is larger, the modified effective lengths are calculated with deviations being more largely added thereto.

In the controller200, when the tension of the wire66ais small, the operation amount of the actuator68ais calculated from the expected effective length La1. That is, when the tension of the wire66ais small, the operation amount of the actuator68ais calculated without respect to deviations caused in the joint angle of the ankle joint26. On the other hand, when the tension of the wire66ais large, the operation amount of the actuator68ais calculated from the modified effective length La2. That is, when the tension of the wire66ais large, the operation amount of the actuator68ais calculated with respect to the deviations caused in the joint angle of the ankle joint26. Each operation amounts of the other actuators68b,68cis calculated similarly to the above mentioned calculation. As a result, among the actuators68a,68b, and68c, for only one (or some) of the actuators which moves a wire with a large tension, the operation amount thereof is calculated with respect to the deviations caused in the joint angle of the ankle joint26. Furthermore, as the load torque of the ankle joint26is larger, the deviations are modified so as to be larger than the actual value, and the operation amount of the actuator is calculated with respect to the modified deviations.

While the robot10operates, the load torque of the ankle joint26changes variously following the operation of the robot10, and consequently the tensions of the wires66a,66b, and66calso change variously therewith. Since the rigidity of the wires66a,66b, and66cchange depending on the tensions of the wires66a,66b, and66c, the rigidity of the wires66a,66b, and66cchange every moment following the operation of the robot10.

When deviations are caused in the joint angle of the ankle joint26, the controller200operates, with respect to the deviation, actuators for wires whose tensions are larger, and operates, without respect to the deviation, actuators for wires whose tensions are smaller. That is, the controller200causes wires which are high and stable in rigidity to be moved in accordance with the deviations, and causes wires which are low and unstable in rigidity no to be moved in accordance with the deviations. At this time, for the actuators to be operated, they are operated more largely with respect to the deviation, as the load torque of the ankle joint26is larger. That is, the actuators made to move back and forth are operated more largely with respect to the deviations, as the load torque of the ankle joint26is larger and as the deviations caused in the joint angle of the ankle joint26are larger. Accordingly, the deviation caused in the joint angle of the ankle joint26can be rapidly removed, and the joint angle can be prevented from being vibrating.

The controller200can appropriately add the deviation caused in the joint angle of the ankle joint26to the operation amounts of the actuators68a,68b, and68c, thereby adjusting the joint angle of the ankle joint26correctly to the instructed angle.

Although mainly the ankle joint26has been described hitherto, each of the other joints of the robot10performs the same processing operation. The robot10can continue to accurately control the joint angle of each joint, and can accurately perform an operation instructed by the joint angle data.

Even when the deviation in the joint angle occurs, the robot10is adapted such that a wire with a small tension is not operated selectively. Accordingly, the deviation in the joint angle can be more largely added to the operation amount of actuators which move wires back and forth (or, a feedback gain can be increased), even when some wires have small tensions. Accordingly, it becomes unnecessary to maintain the tension of all wires to be large. It is possible to reduce loads applied to the wires and the joints, and possible to reduce the power consumption of the actuators.

The robot10can also use a controller300shown inFIG. 10instead of the controller200. Hereinafter, the controller300will be described. Here, in order to avoid repeated description, points different from those of the controller200will mainly be described.

The controller300has a first variable distributor311, a second variable distributor312, and a third variable distributor313. The first variable distributor311is connected to the first converter232, the second converter234, and the first driver251. The second variable distributor312is connected to the first converter232, the second converter234, and the second driver252. The third variable distributor313is connected to the first converter232, the second converter234, and the second driver253.

The controller300has a tension sensor321which measures a tension caused in the wire66a, a second tension sensor322which measures a tension caused in the wire66b, and a third tension sensor323which measures a tension caused in the wire66c. The first tension sensor321is connected to the first variable distributor311, and outputs a measured value of the tension caused on the wire66ato the first variable distributor311. The second tension sensor322is connected to the second variable distributor312, and outputs a measured value of the tension caused in the wire66bto the second variable distributor312. The third tension sensor323is connected to the third variable distributor313, and outputs a measured value of the tension caused in the wire66cto the third variable distributor313.

The first variable distributor311inputs the expected effective length La1outputted by the first converter232, and inputs the modified effective length La2outputted by the second converter234. And, the first variable distributor311calculates and outputs distributed effective lengths from the input expected effective length La1input and modified effective length La2. The first variable distributor311calculates the distributed effective length according to a calculating expression descried below.
(Distributed effective length)=La1+(La2−La1)·k
k of the above expression is a coefficient of 0 (zero)≦k≦1. The first variable distributor311sets the above coefficient k on the basis of the tension of the wire66ainputted from the first tension sensor321. Especially, the coefficient k is set so as to be proportional to the input tension of the wire66a. Accordingly, as the tension of wire66ais larger, the first variable distributor311outputs the distributed effective length which has a nearer value to the modified effective length La2output by the second converter234.

Similarly to the first variable distributor311, the second variable distributor312calculates and outputs the distributed effective length for the wire66b, and the third variable distributor313calculates and outputs the distributed effective length for the wire66c.

The first driver251calculates an operation amount of the actuator68afrom the distributed effective length outputted by the first variable distributor311, and operates the actuator68aby the calculated operation amount. The second driver252calculates an operation amount of the actuator68bfrom the distributed effective length outputted by the second variable distributor312, and operates the actuator68bby the calculated operation amount. The third driver253calculates an operation amount of the actuator68cfrom the distributed effective length output by the third variable distributor313, and operates the actuator68cby the calculated operation amount.

With the configuration as described above, the controller300calculates the operation amounts of the actuators68a,68b, and68cfrom the distributed effective lengths for the wires66a,66b, and68c, respectively. For each of the wires66a,66b, and68c, as the tension of a wire which is larger, the deviations caused in the joint angle of the ankle joint26will be added more largely to the operation amount of the actuator that moves the wire back and forth.

When deviations are caused in the joint angle of the ankle joint26, the controller300operates actuators for wires whose tensions are larger more largely with respect to the deviation, and operates actuators for wires whose tension are small slightly with respect to the deviation. That is, the controller200causes wires which are high and stable in rigidity to be moved more largely with respect to the deviations, and causes wires which are low and unstable in rigidity not to be moved much with respect to the deviation. Accordingly, the deviation caused in the joint angle of the ankle joint26can be rapidly removed, and the joint angle can be prevented from vibrating.

A robot using the controller300can appropriately add the deviation caused in the joint angle of the ankle joint26to the operation amounts of the actuators68a,68b, and68c, thereby adjusting the joint angle of the ankle joint26accurately to the instructed angle.

Specific examples of embodiments of the present invention were described above, but these examples merely illustrate some possibilities of the invention and do not restrict the claims thereof. The art set forth in the claims includes various transformations and modifications of the specific examples explained above.

The wires are not limited to those made of metal. For example, wires (yams) may be made of polymeric fibers.

A robot may further include a device for calculating a load torque of each joint from stored joint angle data. The movement of a robot can be calculated from time-series data on the instructed angle concerning each joint described in the joint angle data. By calculating the movement of a robot, a load torque of each joint can be calculated.

Furthermore, the technical elements disclosed in the present specification or figures may be utilized independently or in various combinations, and are not limited to the combinations set forth in the claims at the time of filing of the application. Further, the purpose of the example illustrated by the present specification and drawings is to satisfy multiple objectives simultaneously, and satisfying any one of those objectives gives technical value and utility to the present invention.