Robot Control System

The robot control system addresses the lack of reaction force transmission in existing systems by using a controller to switch between leg modes and incorporate sensors, allowing operators to intuitively control and recognize ground conditions for improved stability and ease of operation.

JP7807736B2Active Publication Date: 2026-01-28SCHOOL CORP NANZAN GAKUEN +2
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2022020319
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-14
Publication Date
2026-01-28
Estimated Expiration
2042-02-14

AI Technical Summary

Technical Problem

Existing robot control systems fail to transmit the reaction force acting on the robot's leg tips to the operator, making it difficult for the operator to recognize ground conditions such as unevenness, which can hinder the robot's ability to walk on uneven terrain.

Method used

A robot control system that includes a controller capable of switching between grounded and swing leg modes, using leg position and reaction force sensors to intuitively control the robot's leg tips and allow the operator to feel the reaction force, with additional features like operation assist forces and three-dimensional ground sensing.

Benefits of technology

Enables the operator to intuitively control the robot's leg tips and recognize ground conditions, enhancing stability and ease of operation, especially on uneven terrain, while providing intuitive and simple control methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007807736000001
    Figure 0007807736000001
  • Figure 0007807736000002
    Figure 0007807736000002
  • Figure 0007807736000003
    Figure 0007807736000003
Patent Text Reader

Abstract

To provide a robot control system that can intuitively control tip positions of operating legs of a robot by performing operation to an operation instrument and enables an operator to recognize reaction force acting on tips of the legs.SOLUTION: An operation instrument comprises: an operation position sensor that detects an operation position; and an operation instrument actuator that moves an operation switch and the operation position. A controller provided in a robot control system executes at least one of processing for switching operating legs from a grounding-leg mode to an idling-leg mode on the basis of an operation state of the operation switch and processing for switching the operating legs from the idling-leg mode to the grounding-leg mode, controls the operating legs so that positions of tips of the operating legs at least in the idling-leg mode move in accordance with the operation position, and controls the operation instrument actuator in accordance with reaction force acting on the tips of the operating legs detected by a tip reaction force sensor provided in the robot.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a robot control system, for example, a robot control system in which the movement of a robot's legs (manipulator) is controlled in response to an operation on an operating device. [Background technology]

[0002] There are known robot control systems that control robots based on the operation of a human (operator). For example, Patent Document 1 discloses a master-slave remote control device that controls the position and posture of the robot's legs in response to the operator's movements (particularly the posture of the lower limbs). This remote control device allows the operator to control the robot's walking through intuitive operations. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-97539 Summary of the Invention [Problem to be solved by the invention]

[0004] However, in the remote control device of Patent Document 1, the external force (reaction force) acting on the robot's leg tips is not transmitted to the operator. As a result, the operator cannot recognize the condition of the ground, such as unevenness, which may make it difficult for the robot to walk on uneven ground. Therefore, a robot control system is needed that can control the position of the robot's leg tips through intuitive operation and allow the operator to recognize the reaction force acting on the leg tips. [Means for solving the problem]

[0005] According to one feature of the present disclosure, in a robot control system, a controller controls a robot in response to an operation of an operating device. The robot has a body, a plurality of legs movably provided relative to the body, leg actuators for moving the plurality of legs, a leg position sensor for detecting a tip position of a tip of an operating leg, which is at least one of the plurality of legs, relative to the body, and a tip reaction force sensor for detecting a force acting on the tip of the operating leg as a tip reaction force.

[0006] The operating device has at least one operating device movably mounted relative to the base, an operating position sensor that detects the operating position, which is the position of the operating device relative to the base, at least one operating switch, and an operating device actuator that moves the operating position.

[0007] The controller executes at least one of a process of switching the control mode of the operating leg from a grounded leg mode in which the tip of the operating leg is in contact with the ground to a swing leg mode in which the tip is separated from the ground, based on the operating state of the operating switch, and a process of switching the control mode from the swing leg mode to the grounded leg mode, and controls the leg actuator so that, at least in the swing leg mode, the tip position of the operating leg moves in accordance with the operating position of the operating device, and controls the operating device actuator so that the operating reaction force obtained in accordance with the tip reaction force acts on the operating device.

[0008] The operator can intuitively control the tip position of the robot's control leg by changing the control position of the controller (the position of the operated member on the controller operated by the operator, for example, the position of the gripper held by the operator). Furthermore, the operator can detect the tip reaction force acting on the control leg from the operation reaction force acting on the controller (operated member). For example, when searching for a new contact point for a control leg in swing mode, the operator can recognize the conditions of the candidate position (such as the unevenness and hardness of the ground) based on the operation reaction force when moving the tip of the control leg to the candidate position for the contact point. Therefore, this feature enables bilateral control of the robot using the controller.

[0009] In addition, the operator can make the tip of the control leg in the swing mode contact an object other than the ground. For example, the operator can move an obstacle by making the tip of the control leg contact the obstacle. In other words, the control leg in this feature can be used as a manipulator.

[0010] According to another feature of the present disclosure, the controller controls leg actuators of the legs in the ground-contact leg mode to adjust the attitude of the fuselage relative to the ground.

[0011] The adjustment of the attitude of the torso by the controller is performed, for example, to move the torso forward relative to the ground. Alternatively, the attitude adjustment is performed to reduce the possibility of the robot tipping over. The tip position of the control leg in the ground contact leg mode may be controlled according to the operation position of the controller, or may be automatically controlled together with the adjustment of the attitude of the torso by the controller. Therefore, according to this feature, the tip position of the control leg in the swing leg mode is operated by the operator, while the leg in the ground contact leg mode (specifically, the control leg in the ground contact leg mode and / or the leg other than the control leg in the ground contact leg mode) is controlled by the controller, making it easier for the operator to control the robot.

[0012] According to another feature of the present disclosure, the controller controls the operator actuator so that an operation assist force for assisting the operation of the operator acts on the operator.

[0013] The operation assist force is generated, for example, when the operator attempts to move the tip position of the operating leg to an unreachable area. Alternatively, when the operating position of the controller and the tip position of the operating leg are separated from each other, the operation assist force may be generated to move the operating position to a position corresponding to the tip position. Therefore, this feature makes it even easier for the operator to operate the robot.

[0014] According to another feature of the present disclosure, at least one of the multiple legs is a follower leg that follows the control leg, and when the torso is moved forward relative to the ground, the controller acquires a position that is the same as or near the contact point with the tip of the control leg as a target position for the contact point with the ground of the follower leg in swing mode, and controls the leg actuator so that the position of the tip of the follower leg moves in accordance with the target position.

[0015] As an example, the robot includes a left front leg and a right front leg that are operating legs, at least one left-side following leg that is a following leg of the left front leg, and at least one right-side following leg that is a following leg of the right front leg, and the operating device includes a left-side operating device that is an operating device for the left front leg, a left-side operating switch that is an operating switch for the left front leg, a right-side operating device that is an operating device for the right front leg, and a right-side operating switch that is an operating switch for the right front leg.

[0016] If the robot is a six-legged walking robot, the left middle leg and left hind leg are the left trailing leg relative to the left front leg, which is the controlled leg, and the right middle leg and right hind leg are the right trailing leg relative to the right front leg, which is the controlled leg. In this case, when the operator uses the left controller to operate the left front leg in swing mode and select (determine) a stable, even location on the ground that is smooth as a contact point, a position identical to or nearby that contact point is selected as the target position for the left middle leg and left hind leg. Therefore, even if the operator does not select a contact point for the left middle leg and left hind leg, which are the contact points, the tips of the trailing legs will contact a stable location, increasing the likelihood that the robot will walk stably without falling over. Therefore, this feature allows the operator to operate the robot with intuitive and simple operations.

[0017] According to another feature of the present disclosure, a robot control system includes a robot having a forward area sensor capable of detecting a three-dimensional shape of the ground in a forward area of ​​the torso, an operation device having a display, and a controller causing information regarding the three-dimensional shape to be displayed on the display.

[0018] The forward area sensor is, for example, a stereo camera incorporating two cameras arranged on the left and right sides. In this case, the display is, for example, an HMD (head-mounted display) incorporating two displays, one for the left eye and one for the right eye. The operator can recognize the three-dimensional shape of the ground in front of the robot based on information about the three-dimensional shape of the forward area displayed on the display (for example, an image reflecting the parallax of the stereo cameras displayed on the HMD). Therefore, this feature makes it possible to give the operator a sense of immersion, making it even easier for the operator to operate the robot.

[0019] According to another feature of the present disclosure, when the magnitude of the tip reaction force correlation value correlated with the tip reaction force is greater than a predetermined reaction force threshold, the controller sets a value equivalent to the tip reaction force correlation value in the operation reaction force as the reaction force threshold.

[0020] In this case, the actuation reaction force will not exceed a value corresponding to the reaction force threshold (reaction force threshold corresponding value). Therefore, if a large force acts on the tip of the operating leg for some reason or if noise is mixed into the output signal of the tip reaction force sensor, the actuation reaction force will not become excessive. Furthermore, it is possible to configure a robot control system so that a relatively large force can be generated at the tip of the operating leg when the operator applies a relatively small force to the controller (specifically, the reaction force threshold corresponding value).

[0021] According to another feature of the present disclosure, a robot control system includes a controller including a robot controller on the robot side and an operation device controller on the operation device side, which communicate with each other wirelessly.

[0022] For example, the robot control system can be configured so that the robot controller controls the tip position of the operating leg and the operating device controller controls the operating reaction force. Furthermore, the robot control system can be configured so that the robot controller and the operating device controller communicate wirelessly with each other, allowing an operator to operate a robot located in a remote location. [Brief explanation of the drawings]

[0023] [Figure 1] 1 is a schematic diagram of a robot control system according to a first embodiment. [Figure 2] FIG. 2 is a block diagram of a robot included in the robot control system. [Figure 3] FIG. 2 is a simplified diagram showing the links and rotary joints of the legs of the robot. [Figure 4] FIG. 1 is a schematic plan view showing the reachable area of ​​the robot's leg tips. [Figure 5] FIG. 2 is a block diagram of an operation device included in the robot control system. [Figure 6] 2 is a simplified diagram showing a link and a rotary joint of a controller provided in the operating device. FIG. [Figure 7] 10 is an example of a screen displayed on an HMD provided in the operation device. [Figure 8] FIG. 10 is a block diagram showing the relationship between control of the leg tips of the robot and control of the gripping portion of the operating device. [Figure 9] 10 is a time chart showing a tip reaction force acting on the leg tip of a robot, a corrected tip reaction force obtained by correcting the tip reaction force, and changes in the leg tip position. [Figure 10] FIG. 1 is a schematic plan view showing a robot walking. [Figure 11] This is an example of the screen displayed on the HMD when the robot is holding an object from both sides using its left and right front legs. [Figure 12] 10 is a time chart showing changes in the corrected tip reaction force of the leg tip of the robot and the operation reaction force of the gripping portion of the operation device. [Figure 13] 10 is a flowchart showing an operating leg control processing routine executed by the robot control device. [Figure 14] 10 is a flowchart showing a follow-up leg control processing routine executed by the robot control device. [Figure 15] 10 is a flowchart showing a follow-up leg state management processing routine executed by the robot control device. [Figure 16]10 is a flowchart showing an operator control processing routine executed by the operation control device. [Figure 17] FIG. 10 is a schematic diagram of a robot control system according to a second embodiment. [Figure 18] 10 is a flowchart showing an operating leg control processing routine executed by the robot control device. [Figure 19] 10 is a flowchart showing an operator control processing routine executed by the operation control device. [Figure 20] FIG. 10 is a schematic diagram of a robot included in a robot control system according to a third embodiment. [Figure 21] FIG. 2 is a block diagram of a robot included in the robot control system. [Figure 22] FIG. 2 is a simplified diagram showing the links and rotary joints of the legs of the robot. [Figure 23] FIG. 2 is a block diagram of an operation device included in the robot control system. [Figure 24] 2 is a simplified diagram showing a link and a rotary joint of a controller provided in the operating device. FIG. [Figure 25] 4 is a flowchart showing a robot control processing routine executed by the robot control device. [Figure 26] 10 is a flowchart showing an operator control processing routine executed by the operation control device. DETAILED DESCRIPTION OF THE INVENTION

[0024] First Embodiment A first embodiment of the present invention will be described with reference to FIGS. 1 to 16. The same reference numbers in the description refer to the same elements having the same functions, although duplicated explanations will not be given. The robot control system 1 shown in FIG. 1 includes a robot 2 and an operating device 8. As shown in FIGS. 1 and 2, the robot 2 includes a trunk 3 and a left front leg 41, a left middle leg 42, a left hind leg 43, a right front leg 44, a right middle leg 45, and a right hind leg 46, which are movable members movable relative to the trunk 3. In other words, the robot 2 is a six-legged walking robot. The operating device 8 includes a left operating device 83a and a right operating device 83b that are operated by an operator to control the robot 2.

[0025] In the following description, a body coordinate system (body coordinate values) is used. The body coordinate system is an orthogonal coordinate system in which the geometric center of the body 3 is the origin O, the front-to-back direction with respect to the body 3 is the x-axis, the left-to-right direction is the y-axis, and the up-down direction is the z-axis.

[0026] 2, the robot 2 includes a robot control device 31, a stereo camera 32, an IMU 33, and a wireless communication device 34 (34a). The robot control device 31 includes, as its main element, a microcomputer equipped with a CPU, RAM, and non-volatile memory. For convenience, the robot control device 31 is also referred to as a "robot controller."

[0027] The CPU reads data, performs numerical calculations, and outputs the results of calculations by sequentially executing predetermined programs (routines). The RAM temporarily stores data referenced by the CPU. The non-volatile memory is composed of ROM and rewritable flash memory, and stores programs executed by the CPU and lookup tables (maps) referenced when the programs are executed.

[0028] The stereo camera 32 is disposed on a protruding portion on the upper surface of the body 3 (see FIG. 1). The stereo camera 32 includes a left camera and a right camera (not shown). Each of the left camera and the right camera of the stereo camera 32 captures (takes) an image (forward image) of the area in front of the body 3 and transmits a signal representing the forward image to the robot control device 31. For convenience, the stereo camera 32 is also referred to as a "forward area sensor."

[0029] The IMU 33 detects x-axis acceleration Ax, y-axis acceleration Ay, and z-axis acceleration Az, which are accelerations in the directions of the x-axis, y-axis, and z-axis, respectively, as well as x-axis angular velocity ωx, y-axis angular velocity ωy, and z-axis angular velocity ωz, which are rotational velocities (angular velocities) in the directions of the x-axis, y-axis, and z-axis, respectively. The combination of these values ​​detected by the IMU 33 is also referred to as a body movement value M(Ax, Ay, Az, ωx, ωy, ωz). The IMU 33 is configured using a well-known inertial measurement unit.

[0030] The wireless communication device 34 (34a) performs data communication with the wireless communication device 34 (34b) included in the operation device 8 shown in Fig. 5. Specifically, the wireless communication device 34 (34a) transmits information (data) input from the robot control device 31 to the wireless communication device 34 (34b), and outputs information received from the wireless communication device 34 (34b) to the robot control device 31.

[0031] As can be seen from Fig. 3, which is a simplified diagram of the left front leg 41, the left front leg 41 includes links 41a to 41c and a base 41d. One end of the base 41d is fixedly connected to the body 3. The other end of the base 41d is connected to one end of the link 41a via a rotary joint (first leg joint). The other end of the link 41a is connected to one end of the link 41b via a rotary joint (second leg joint). The other end of the link 41b is connected to one end of the link 41c via a rotary joint (third leg joint). The other end of the link 41c (i.e., the tip of the left front leg 41) is adapted to come into contact with the ground (ground surface).

[0032] The angle between the rotation axis of the first leg joint and a plane perpendicular to the z-axis in the trunk coordinate system (for example, the plane represented by z=0, hereinafter also referred to as the "horizontal trunk plane") is 45°. In top view, the rotation axis of the first leg joint extends diagonally forward from the trunk 3, and the angle between the rotation axis of the first leg joint and a plane perpendicular to the x-axis in the trunk coordinate system (for example, the plane represented by x=0, hereinafter also referred to as the "vertical trunk plane") is 30°. The rotation axis of the first leg joint and the rotation axis of the second leg joint are perpendicular to each other. The rotation axis of the second leg joint and the rotation axis of the third leg joint are parallel to each other.

[0033] The rotation angle αs, which is the rotation angle of the first leg joint (i.e., the rotation angle of link 41a relative to base 41d), is controlled by the torque generated by motor 51 (motor 51a) (see FIG. 2). The rotation angle βs, which is the rotation angle of the second leg joint (i.e., the rotation angle of link 41b relative to link 41a), is controlled by the torque generated by motor 51 (motor 51b). The rotation angle γs, which is the rotation angle of the third leg joint (i.e., the rotation angle of link 41c relative to link 41b), is controlled by the torque generated by motor 51 (motor 51c). Motor 51 is configured by a well-known DC servo motor. For convenience, motor 51 is also referred to as a "leg actuator."

[0034] The angle sensor 52 (angle sensor 52a) detects the rotation angle αs of the first leg joint of the left front leg 41, and outputs a signal representing the rotation angle αs to the robot control device 31. The angle sensor 52 (angle sensor 52b) detects the rotation angle βs of the second leg joint of the left front leg 41, and outputs a signal representing the rotation angle βs to the robot control device 31. The angle sensor 52 (angle sensor 52c) detects the rotation angle γs of the third leg joint of the left front leg 41, and outputs a signal representing the rotation angle γs to the robot control device 31. The angle sensor 52 is configured by a well-known resolver device. For convenience, the angle sensor 52 is also referred to as a "leg position sensor."

[0035] Hereinafter, the combination of rotation angle αs, rotation angle βs, and rotation angle γs is also referred to as leg rotation angle Ls (αs, βs, γs). Based on the leg rotation angle Ls, the lengths of links 41a to 41c, and the angle between the rotation axis of the first leg joint and the vertical plane of the trunk, the robot control device 31 acquires (calculates) the leg tip position Ps (xs, ys, zs), which is the trunk coordinate value of the tip (tip position) of the left front leg 41, using a well-known method.

[0036] The area on the ground that can be reached by the tip of the left front leg 41 when the robot 2 is in the "reference state" (i.e., the range to which the tip of the left front leg 41 can move) is shown in a simplified form by area R3 in FIG. 4. The reference state is a state in which the robot 2 is walking on flat, level ground, the torso 3 is horizontal to the ground, and the distance between the ground and the center of gravity Gb of the torso is a predetermined reference distance Ds. The center of gravity Gb of the torso is the center of mass (center of mass) of the torso 3, and in this embodiment, is approximately equal to the geometric center of the torso 3 (i.e., the origin O in the torso coordinate system).

[0037] The current sensor 53 (current sensor 53a) detects the current αa flowing through the motor 51a and outputs a signal representing the current αa to the robot controller 31. The current sensor 53 (current sensor 53b) detects the current βa flowing through the motor 51b and outputs a signal representing the current βa to the robot controller 31. The current sensor 53 (current sensor 53c) detects the current γa flowing through the motor 51c and outputs a signal representing the current γa to the robot controller 31.

[0038] Hereinafter, the combination of current αa, current βa, and current γa is also referred to as current As (αa, βa, γa). Current As is proportional to the torque acting on (or generated by) each of motors 51 (motors 51a to 51c). Current sensor 53 is also referred to as the "tip reaction force sensor" for convenience.

[0039] The left middle leg 42, left hind leg 43, right front leg 44, right middle leg 45, and right hind leg 46 shown in FIG. 1 each have a configuration similar to that of the left front leg 41. The left middle leg 42 includes links 42a to 42c. The rotation axis of the first leg joint of the left middle leg 42 extends directly to the side from the torso 3. That is, the rotation axis of the first leg joint of the left middle leg 42 is parallel to the vertical plane of the torso. The robot control device 31 controls the leg rotation angle Ls (αs, βs, γs) of the left middle leg 42 by controlling the motor 51 (motors 51d to 51f) provided in the left middle leg 42. The robot control device 31 obtains the leg tip position Ps (xs, ys, zs) of the left middle leg 42 based on the leg rotation angle Ls (αs, βs, γs) detected by the angle sensor 52 (angle sensors 52d to 52f). The reachable area on the ground of the tip of the left middle leg 42 when the robot 2 is in the reference state is simply shown by area R4 in FIG.

[0040] The left hind leg 43 includes links 43a to 43c. The rotation axis of the first leg joint of the left hind leg 43 extends diagonally backward in a top view, and the angle between the rotation axis of the first leg joint of the left hind leg 43 and the vertical plane of the torso is 30°. The robot control device 31 controls the motor 51 (motors 51g to 51i) provided in the left hind leg 43 to control the leg rotation angle Ls (αs, βs, γs) of the left hind leg 43. The robot control device 31 obtains the leg tip position Ps (xs, ys, zs) of the left hind leg 43 based on the leg rotation angle Ls (αs, βs, γs) detected by the angle sensor 52 (angle sensors 52g to 52i). The reachable area on the ground of the tip of the left hind leg 43 when the robot 2 is in the reference state is simply shown by area R5 in FIG. 4.

[0041] The right front leg 44 includes links 44a to 44c. The rotation axis of the first leg joint of the right front leg 44 extends diagonally forward in a top view, and the angle between the rotation axis of the first leg joint of the right front leg 44 and the vertical plane of the torso is 30°. The robot control device 31 controls the motors 51 (motors 51j to 51k and motor 51m) included in the right front leg 44 to control the leg rotation angle Ls (αs, βs, γs) of the right front leg 44.

[0042] The robot control device 31 acquires the position Ps (xs, ys, zs) of the tip of the right front leg 44 based on the leg rotation angle Ls (αs, βs, γs) detected by the angle sensor 52 (angle sensors 52j to 52k and angle sensor 52m). The reachable area on the ground of the tip of the right front leg 44 when the robot 2 is in the reference state is shown in simplified form by area R6 in FIG. 4. The robot control device 31 acquires the current As (αa, βa, γa) of the right front leg 44 detected by the current sensor 53 (current sensors 53j to 53k and current sensor 53m).

[0043] The right middle leg 45 includes links 45a to 45c. The rotation axis of the first leg joint of the right middle leg 45 extends directly to the side from the torso 3. That is, the rotation axis of the first leg joint of the right middle leg 45 is parallel to the vertical plane of the torso. The robot control device 31 controls the motor 51 (motor 51n and motors 51p to 51q) provided in the right middle leg 45 to control the leg rotation angle Ls (αs, βs, γs) of the right middle leg 45. The robot control device 31 obtains the leg tip position Ps (xs, ys, zs) of the right middle leg 45 based on the leg rotation angle Ls (αs, βs, γs) detected by the angle sensor 52 (angle sensor 52n and angle sensors 52p to 52q). The reachable area on the ground of the tip of the right middle leg 45 when the robot 2 is in the reference state is simply indicated by area R7 in FIG. 4.

[0044] The right hind leg 46 includes links 46a to 46c. The rotation axis of the first leg joint of the right hind leg 46 extends diagonally backward in a top view, and the angle between the rotation axis of the first leg joint of the right hind leg 46 and the vertical plane of the torso is 30°. The robot control device 31 controls the motor 51 (motors 51r to 51t) provided in the right hind leg 46 to control the leg rotation angle Ls (αs, βs, γs) of the right hind leg 46. The robot control device 31 obtains the leg tip position Ps (xs, ys, zs) of the right hind leg 46 based on the leg rotation angle Ls (αs, βs, γs) detected by the angle sensor 52 (angle sensors 52r to 52t). The reachable area on the ground of the tip of the right hind leg 46 when the robot 2 is in the reference state is simply shown by area R8 in FIG. 4.

[0045] 5, the operation device 8 includes a wireless communication device 34 (34b), an operation control device 81, an HMD 82, a left operation unit 83a, and a right operation unit 83b. The operation control device 81 is configured by a general-purpose computer including a CPU, RAM, and non-volatile memory (not shown). For convenience, the operation control device 81 is also referred to as an "operation device controller."

[0046] The wireless communication device 34 (34b) transmits information (data) input from the operation control device 81 to the wireless communication device 34 (34a), and outputs information received from the wireless communication device 34 (34a) to the operation control device 81.

[0047] The HMD 82 includes a left display 82a and a right display 82b. The images displayed on the displays of the HMD 82 are controlled by the operation control device 81. When the robot 2 is operating, the operation control device 81 causes the left display 82a and the right display 82b of the HMD 82 to display forward images captured by the left camera and the right camera of the stereo camera 32, respectively, as illustrated in FIG. 6. Therefore, the operator can recognize the three-dimensional shape of the area forward of the robot 2 (specifically, the torso 3).

[0048] As can be seen from FIGS. 5 and 7, the left operating device 83a includes links 84a to 84f, a base 84g, angle sensors 85a to 85c, motors 86a to 86c, and buttons 87a to 87b.

[0049] The base 84g is the base of the left-side operating device 83a and is placed on a desk. The base 84g is connected to one end of the link 84a via a rotary joint (first operating joint). The other end of the link 84a is connected to one end of the link 84b via a rotary joint (second operating joint). The other end of the link 84b is connected to one end of the link 84c via a rotary joint (third operating joint).

[0050] The other end of link 84c is connected to one end of link 84d via a rotary joint (fourth operating joint). The other end of link 84d is connected to one end of link 84e via a rotary joint (fifth operating joint). The other end of link 84e is connected to one end of link 84f via a rotary joint (sixth operating joint).

[0051] The angle sensor 85 (angle sensor 85a) detects the rotation angle αm of the first operating joint and outputs a signal representing the rotation angle αm to the operation control device 81. The angle sensor 85 (angle sensor 85b) detects the rotation angle βm of the second operating joint and outputs a signal representing the rotation angle βm to the operation control device 81. The angle sensor 85 (angle sensor 85c) detects the rotation angle γm of the third operating joint and outputs a signal representing the rotation angle γm to the operation control device 81. Hereinafter, the combination of the rotation angle αm, the rotation angle βm, and the rotation angle γm will also be referred to as the operation rotation angle Lm (αm, βm, γm). The angle sensor 85 is configured by a well-known resolver device. For convenience, the angle sensor 85 will also be referred to as the "operation position sensor."

[0052] The motor 86 (motor 86a) generates torque that changes the rotation angle αm in response to an instruction from the operation control device 81. The motor 86 (motor 86b) generates torque that changes the rotation angle βm in response to an instruction from the operation control device 81. The motor 86 (motor 86c) generates torque that changes the rotation angle γm in response to an instruction from the operation control device 81. For convenience, the motor 86 is also referred to as an "operator actuator."

[0053] The operation control device 81 acquires (calculates) an operation position Pm (xm, ym, zm), which is the position (coordinate value) of the fifth operation joint, using a well-known method based on the operation rotation angle Lm and the lengths of links 84a to 84d, etc. The operation position Pm is expressed as a coordinate value in a Cartesian coordinate system (operation coordinate system) in which the position of the first operation joint is the origin, the front-to-rear direction of the left operation device 83a is the x-axis, the left-to-right direction is the y-axis, and the up-and-down direction is the z-axis.

[0054] The operator adjusts (changes) the operating position Pm by gripping and moving the link 84f. The link 84f is an operated member operated by the operator, and for convenience, is also referred to as a "grip" or an "operator." Note that in this embodiment, the rotation angles of the fourth to sixth operating joints are not reflected in the processing executed by the operation control device 81, but the presence of these rotation joints makes it easier for the operator to operate the link 84f (i.e., adjust the operating position Pm).

[0055] Buttons 87a and 87b are provided on the grip portion (i.e., link 84f). The operation state of each of buttons 87a and 87b is switched between an on state and an off state by operation by the operator, and a signal representing the operation state is received by operation control device 81. For convenience, buttons 87a and 87b are also referred to as "operation switches."

[0056] The right-side operating device 83b has a configuration similar to that of the left-side operating device 83a. The operation control device 81 acquires (receives) signals representing the operation rotation angle Lm (αm, βm, γm) of the right-side operating device 83b and the operation states of the buttons 87a, 87b. In addition, the operation control device 81 controls the torque generated by each of the motors 86 (motors 86a to 86c) of the right-side operating device 83b.

[0057] (Operation of the gripper and control of the operating legs) The operator can control the left front leg 41 and the right front leg 44 (for convenience, also referred to as the "operated legs") by operating the left controller 83a and the right controller 83b. More specifically, when either of the buttons 87a, 87b of the left controller 83a is in the ON state, the leg tip position Ps (xs, ys, zs) of the left front leg 41 changes in accordance with the operation position Pm (xm, ym, zm) of the left controller 83a. Similarly, when either of the buttons 87a, 87b of the right controller 83b is in the ON state, the leg tip position Ps of the right front leg 44 changes in accordance with the operation position Pm of the right controller 83b.

[0058] In addition, the operation control device 81 generates, in the grip portion (specifically, the fifth operation joint) of the left-side controller 83a, a force corresponding to the tip end reaction force Fe(xe, ye, ze), which is a force acting from the outside on the tip of the left front leg 41. Similarly, the operation control device 81 generates, in the grip portion of the right-side controller 83b, an operation reaction force Fm corresponding to the tip end reaction force Fe acting on the tip of the right front leg 44.

[0059] The following describes the control of the leg tip position Ps of the left front leg 41 and the control of the operation reaction force Fm of the left-side controller 83a, which are executed by the robot controller 31 and the operation controller 81. The control of the leg tip position Ps and the operation reaction force Fm of the right side (i.e., the right front leg 44 and the right-side controller 83b) is the same as that of the left side (i.e., the left front leg 41 and the left-side controller 83a), so a detailed description thereof will be omitted where appropriate.

[0060] The operation control device 81 transmits the operation positions Pm of the operation legs and the operation states of the buttons 87a, 87b as "operation information" to the robot control device 31 via the wireless communication device 34 every time a predetermined control period Δt elapses. The robot control device 31 stores the content of the received operation information in RAM. Meanwhile, the robot control device 31 transmits the currents As of the operation legs as "reaction force information" to the operation control device 81 via the wireless communication device 34 every time a control period Δt elapses. The operation control device 81 stores the content of the received reaction force information in RAM.

[0061] The robot control device 31 acquires the target leg tip positions Pr(xr, yr, zr) and the target movement amounts ΔPs(xu, yu, zu) for the left front leg 41 and the right front leg 44 at every control period Δt for use in controlling the leg tip positions Ps of the manipulated legs. The target leg tip position Pr of the left front leg 41 is the leg tip position Ps(xs, ys, zs) of the left front leg 41 corresponding to the manipulated position Pm(xm, ym, zm) of the left-side controller 83a. The target leg tip position Pr of the left front leg 41 is acquired based on the following equations (1) to (3). The proportionality coefficient k1, the correction value kx, the correction value ky, and the correction value kz in equations (1) to (3) are constants that have been adapted in advance. xr=k1×xm+kx ……(1) yr=k1×ym+ky ……(2) zr=k1×zm+kz ……(3)

[0062] Similarly, the desired leg tip position Pr of the right front leg 44 is obtained based on the following equations (4) to (6). xr=k1×xm-kx ……(4) yr=k1×ym-ky ……(5) zr=k1×zm-kz ……(6)

[0063] The target movement amount ΔPs(xu, yu, zu) is a target value of the amount of change in the leg tip position Ps(xs, ys, zs) during the period from the present time until the control period Δt has elapsed. The robot control device 31 obtains the target movement amount ΔPs by feedback control (specifically, PD control) based on the following equation (7) (see FIG. 8). ΔPs=(Pr-Ps)×Kp +1 / Δt×{(Pr-Ps)-(Prp-Psp)}×Kd ……(7)

[0064] In equation (7), the previous target foot tip position Prp(xrp, yrp, zrp) is the target foot tip position Pr obtained the control period Δt before the current time. The previous foot tip position Psp(xsp, ysp, zsp) is the foot tip position Ps obtained the control period Δt before the current time. The coefficients Kp and Kd are control gains that have been adapted in advance. In equation (7), the target movement amount ΔPs, the target foot tip position Pr, the foot tip position Ps, the previous target foot tip position Prp, and the previous foot tip position Psp are each treated as a vector.

[0065] When the target movement amount ΔPs is acquired, the robot control device 31 controls each of the motors 51 corresponding to the operating legs so that the amount of change in the leg tip position Ps at the point in time when the control period Δt has elapsed from the current point in time is equal to the target movement amount ΔPs.

[0066] Meanwhile, the operation control device 81 acquires joint torques Ts (αt, βt, γt) for each of the left-side actuator 83a and the right-side actuator 83b every time a control period Δt elapses, in order to use the acquired torques for controlling the operation reaction force Fm. The joint torques Ts are target values ​​for torques generated by the motors 86 corresponding to the first to third operation joints, respectively. When the motors 86 generate the joint torques Ts, an operation reaction force Fm is generated in the grip portions of the left-side actuator 83a and the right-side actuator 83b.

[0067] To obtain the joint torque Ts, the operation control device 81 obtains the reaction torque Tk (αk, βk, γk) based on the following equation (8). In equation (8), the reaction torque Tk and the current As (αa, βa, γa) are each treated as vectors. The proportionality coefficient k2 in equation (8) is a constant (scalar value) that is adapted in advance. The reaction torque Tk is a torque acting on each of the first to third leg joints detected by the current sensor 53, and is a value whose magnitude is adjusted based on the proportionality coefficient k2. Tk = k2 × As ……(8)

[0068] In addition, the operation control device 81 obtains the action torque Te(αe, βe, γe) based on the following equation of motion (9). Inertia torque Ti(αi, βi, γi), friction torque Tf(αf, βf, γf), and gravitational torque Tg(αg, βg, γg) in equation (9) represent the inertia torque, friction torque, and gravitational torque when no external force is acting on the tip of the left front leg 41 (or right front leg 44). In equation (9), the action torque Te, reaction torque Tk, inertia torque Ti, friction torque Tf, and gravitational torque Tg are each treated as vectors. Te = Tk - Ti - Tf - Tg ……(9)

[0069] Note that the values ​​of the inertia torque Ti, friction torque Tf, and gravity torque Tg are acquired (identified) in advance for various combinations of the leg rotation angle Ls (αs, βs, γs) and the first-order derivative (i.e., velocity) and second-order derivative (i.e., acceleration) of the leg rotation angle Ls. Therefore, the action torque Te (αe, βe, γe) is calculated by substituting the values ​​of the reaction torque Tk, the leg rotation angle Ls, and the first-order and second-order derivatives of the leg rotation angle Ls into equation (9).

[0070] Furthermore, the operation control device 81 acquires the tip reaction force Fe based on the following equation (10). In equation (10), the tip reaction force Fe and the acting torque Te are each treated as a vector. The matrix Js in equation (10) is a Jacobian matrix related to the left front leg 41 (or the right front leg 44). Fe=(Js T ) -1 Te ……(10)

[0071] The operation control device 81 applies well-known LPF (low pass filter) processing to the acquired tip reaction force Fe. The tip reaction force Fe(xe, ye, ze) to which the LPF processing has been applied is also referred to as a corrected tip reaction force Fef(xef, yef, zef). For convenience, the corrected tip reaction force Fef is also referred to as a "tip reaction force correlation value."

[0072] An example of changes in the tip reaction force Fe and corrected tip reaction force Fef of the left front leg 41 is shown in Fig. 9. In Fig. 9, the tip reaction force ze, which is the value of the tip reaction force Fe in the z-axis direction, is shown by a solid line L1. In addition, the corrected tip reaction force zef, which is the value of the corrected tip reaction force Fef in the z-axis direction, is shown by a dashed line L2. As can be seen from Fig. 9, in the corrected tip reaction force Fef, gradual changes (step-like changes) in the tip reaction force Fe due to the sensitivity of the current sensor 53 and the communication speed of the wireless communication device 34 are smoothed by LPF processing.

[0073] Next, the operation control device 81 obtains the operation reaction force Fm(xf, yf, zf) based on the following equation (11). In equation (11), the operation reaction force Fm and the corrected tip end reaction force Fef are each treated as vectors. The proportionality coefficient k3 in equation (11) is a pre-adapted constant (scalar value). In addition, if the magnitude of the operation reaction force Fm is greater than a predetermined reaction force threshold Fth, the operation control device 81 adjusts each value of the operation reaction force Fm(xf, yf, zf) so that the magnitude of the operation reaction force Fm becomes the reaction force threshold Fth. Fm = k3 × Fef ……(11)

[0074] Furthermore, the operation control device 81 obtains the joint torque Ts based on the following equation (12). In equation (12), the joint torque Ts and the operation reaction force Fm are each treated as a vector. The matrix Jm in equation (12) is the Jacobian matrix for the left-side actuator 83a (or the right-side actuator 83b). Next, the operation control device 81 causes each of the motors 86 to generate a torque equal to the obtained joint torque Ts. Ts=Jm T Fm ……(12)

[0075] 9, the solid line L3 indicates the change in the leg tip position zs, which is the z-axis coordinate of the leg tip position Ps of the left front leg 41. In this example, for example, at time t1, the leg tip of the left front leg 41 comes into contact with the ground, and as a result, the tip reaction force Fe and the corrected tip reaction force Fef (i.e., the tip reaction force ze and the corrected tip reaction force zef) in the z-axis direction start to increase.

[0076] Because the joint torque Ts is acquired based on the corrected tip reaction force Fef (rather than the tip reaction force Fe), it is possible to avoid a stepwise change in the joint torque Ts due to a stepwise change in the tip reaction force Fe, which would result in an uncomfortable feeling being felt by the operator. For example, even if noise is mixed in when detecting the current As and the detected value temporarily fluctuates greatly, it is possible to avoid a large fluctuation in the joint torque Ts acquired based on the corrected tip reaction force Fef.

[0077] 9, the operator can recognize that the tip of the left front leg 41 has landed on the ground due to the operation reaction force Fm generated in the grip portion of the left controller 83a. That is, the operator recognizes that the tip of the left front leg 41 has landed on the ground due to an increase in the operation reaction force Fm in the z-axis direction in the operation coordinate system, which increases based on the corrected tip reaction force Fef (specifically, the corrected tip reaction force zef in the z-axis direction) that starts to increase at time t1. Furthermore, the operator can recognize that the point of contact of the left front leg 41 is stable (i.e., not fragile) ground based on the degree of increase in the magnitude of the operation reaction force Fm in the z-axis direction after time t1.

[0078] Thereafter, at time t3, the tip of the left front leg 41 leaves the ground, resulting in a decrease in the corrected tip reaction force Fef (and consequently the operation reaction force Fm). At time t2, the operator switches button 87a of the left controller 83a from the on state to the off state, and switches button 87b from the off state to the on state.

[0079] The control of the controlled legs according to the operation states of the buttons 87a, 87b on the left controller 83a and the right controller 83b will be specifically described below. Hereinafter, the buttons 87a on the left controller 83a and the right controller 83b will also be referred to as the "free leg button," and the buttons 87b will also be referred to as the "grounded leg button."

[0080] When the operator operates an operating leg as a swinging leg (i.e., a leg whose tip is away from the ground), the operator turns on the swinging leg button corresponding to the operating leg (i.e., presses down the swinging leg button). On the other hand, when the operator operates an operating leg as a grounding leg (i.e., a leg whose tip is in contact with the ground), the operator turns on the grounding leg button corresponding to the operating leg. In other words, the robot control device 31 switches the control mode of the operating leg (i.e., either the left front leg 41 or the right front leg 44) corresponding to the controller whose swinging leg button is turned on to "swinging leg mode". On the other hand, the control mode of the operating leg corresponding to the controller whose grounding leg button is turned on to "grounding leg mode".

[0081] When the operator places the tip of the control leg on the ground and the grounded leg button is turned on, the robot control device 31 stores the position Ps (xs, ys, zs) of the control leg tip at that time as the grounded position (reference position) described below. When the operator operates the grip part while keeping the grounded leg button on and moves the tip of the control leg from the front to the rear relative to the torso 3, the torso 3 moves forward as the tip of the control leg moves.

[0082] Thereafter, when the operator lifts the tip of the controlled leg off the ground, he turns on the swing leg button (instead of the ground leg button). Furthermore, while keeping the swing leg button on, the operator operates the grip part to move the tip of the controlled leg from rear to front relative to the torso 3. In other words, the operator moves the tip of the controlled leg toward a new ground contact position.

[0083] (Control of the following legs) The control of the legs other than the controlled leg (i.e., the left middle leg 42, left hind leg 43, right middle leg 45, and right hind leg 46, which are also collectively referred to as "following legs" for convenience) by the robot control device 31 will be described. The robot control device 31 manages the control mode (control state) of each of the following legs. The control mode of the following legs is classified into one of the first to fourth control modes. A following leg in the first to third control modes is a free leg, and a following leg in the fourth control mode is a ground-contact leg.

[0084] The first control mode is a control state in which the leg tip that is on the ground is lifted off the ground and moved to a predetermined leg tip standby position Lw. The combination of leg rotation angles Ls (αs, βs, γs) when the leg tip is at the leg tip standby position Lw is expressed as the leg tip standby position Lw (αw, βw, γw). The second control mode is a control state in which the leg tip waits in the leg tip standby position Lw.

[0085] The third control mode is a control state in which the leg tips are moved from the leg tip standby position Lw to a "target ground contact position" described later. The fourth control mode is a control state in which the leg tips are moved from the front to the rear relative to the torso 3 while in a state in which the leg tips are in contact with the ground. Therefore, the torso 3 moves forward by the movement of the leg tips of the trailing leg in the fourth control mode and the controlled leg whose ground contact leg button is in the on state.

[0086] The robot control device 31 executes a "leg state management process" at each control period Δt in order to manage the control mode of each of the following legs. When executing the leg state management process, the robot control device 31 determines whether a transition condition, which will be described later, is satisfied for each of the following legs, and changes the control mode of the leg for which the transition condition is satisfied.

[0087] The condition (second transition condition) for the control mode to switch from the first control mode to the second control mode is met when the leg tip reaches the leg tip standby position Lw. The condition (third transition condition) for the control mode to switch from the second control mode to the third control mode is met when the leg tip of the leg adjacent to the front of the trunk 3 is included in the reachable area of ​​the own leg (in this case, the three-dimensional area above the ground). The leg adjacent to the front of the trunk 3 will hereinafter also be referred to as the "front adjacent leg." For example, the front adjacent leg of the left middle leg 42 is the left front leg 41.

[0088] The condition for switching the control mode from the third control mode to the fourth control mode (fourth transition condition) is met when the leg tip reaches the target ground contact position. The condition for switching the control mode from the fourth control mode to the first control mode (first transition condition) is also called the "swing leg condition."

[0089] If the leg for which it is determined whether the swing leg condition is met is referred to as the "control target leg," the swing leg condition when the left middle leg 42 or the right middle leg 45 is the control target leg is met when the leg adjacent to the control target leg rearward with respect to the torso 3 (i.e., the left hind leg 43 or the right hind leg 46) enters the fourth control mode. In other words, the swing leg condition of the middle leg (i.e., either the left middle leg 42 or the right middle leg 45) is met when the rearmost leg adjacent to the torso 3 rearward (i.e., either the left hind leg 43 or the right hind leg 46) takes over the ground contact position of the middle leg.

[0090] The swing leg condition when the left hind leg 43 and the right hind leg 46 (i.e., the last legs) are the controlled legs is met when the "center of gravity condition" is met and the number of legs that have touched the ground after the controlled leg has touched the ground is three or more. The center of gravity condition is met when the trunk center of gravity Gb is included in a "support polygon" in a top view, which is a polygon with vertices at the tips of the grounded legs other than the controlled leg (specifically, the controlled leg in the grounded leg mode and the trailing leg in the fourth control mode).

[0091] For example, when the tip of the left hind leg 43, which is the leg to be controlled, touches the ground, the swing leg condition of the left middle leg 42, which is the adjacent front leg, is met, and so the left middle leg 42 transitions to the first control mode. Thereafter, when the tips of three of the legs other than the left hind leg 43 (i.e., the left front leg 41, left middle leg 42, right front leg 44, right middle leg 45, and right hind leg 46) touch the ground, the number of legs that have touched the ground after the left hind leg 43 touches the ground becomes "3." Therefore, if the center of gravity condition is met, the swing leg condition of the left hind leg 43 (i.e., the leg to be controlled) is met at this time.

[0092] The robot control device 31 determines the target ground contact position of the following leg in the third control mode using the "ground contact point tracking method." The ground contact point tracking method is a method for acquiring (determining) a position that is the same as or close to the ground contact position of the adjacent front leg as the target ground contact position of the following leg. For example, a position adjacent to and behind the ground contact position of the left front leg 41 is acquired as the target ground contact position of the left middle leg 42. Similarly, a position adjacent to and behind the ground contact position of the left middle leg 42 (thus, a location close to the ground contact position of the left front leg 41) is acquired as the target ground contact position of the left hind leg 43. The ground contact point tracking method will be described with reference to FIG. 10.

[0093] In this example, the operator operates the left controller 83a and the right controller 83b to move the robot 2 forward. In Fig. 10, the black circles indicate the contact positions immediately after the leg tips touch the ground, and the white circles indicate the contact positions immediately before the leg tips leave the ground. In other words, the leg tip positions indicated by the black circles at a certain point in time subsequently move backward relative to the torso 3 and change to the leg tip positions indicated by the white circles.

[0094] The position of the torso 3 when the right front leg 44 transitions from a free leg to a grounded leg (i.e., immediately after the operator changes the grounded leg button of the right controller 83b to the on state) is indicated by torso position 3a1. At this time, the respective leg tips of the grounded legs, the left middle leg 42, the right front leg 44, and the right hind leg 46, are indicated by black circles, points PL21, PR11, and PR31. Meanwhile, the respective leg tips of the free legs, the left front leg 41, the left hind leg 43, and the right middle leg 45, are indicated by white circles, points PL11, PL31, and PR21.

[0095] Point PL21, which is the ground contact point of the left middle leg 42, is located adjacent to and behind point PL11, which is the ground contact point of the left front leg 41. In addition, point PR31, which is the ground contact point of the right hind leg 46, is located adjacent to and behind point PR21, which is the ground contact point of the right middle leg 45. In other words, the ground contact points of the trailing legs, the left middle leg 42 and the right hind leg 46, are determined by the ground contact point following method.

[0096] In other words, in response to the operator's operation, the tip of the left front leg 41, which is the operated leg, moves backward relative to the torso 3 and reaches the reachable area of ​​the left middle leg 42 (for example, the area where areas R3 and R4 in FIG. 4 overlap each other), and then the left middle leg 42 touches the ground. Similarly, the tip of the right middle leg 45 moves backward relative to the torso 3 and reaches the reachable area of ​​the right hind leg 46 (for example, the area where areas R7 and R8 overlap each other), and then the right hind leg 46 touches the ground.

[0097] Thereafter, the position of the trunk 3 when the left front leg 41 transitions from a free leg to a grounded leg and the right front leg 44 transitions from a grounded leg to a free leg is indicated by trunk position 3a2. That is, the trunk 3 moves (forward) from the position indicated by trunk position 3a1 to the position indicated by trunk position 3a2.

[0098] The tips of the left front leg 41, left hind leg 43, and right middle leg 45, which are the legs on the ground, are indicated by black circles, points PL12, PL32, and PR22, respectively. On the other hand, the tips of the left middle leg 42, right front leg 44, and right hind leg 46, which are the free legs, are indicated by white circles, points PL21, PR11, and PR31, respectively.

[0099] Point PR22, which is the ground contact point of the right middle leg 45, is located adjacent to and behind point PR11, which is the ground contact point of the right front leg 44. In addition, point PL32, which is the ground contact point of the left hind leg 43, is located adjacent to and behind point PL21, which is the ground contact point of the left middle leg 42. In other words, the ground contact points of the trailing legs, the right middle leg 45 and the left hind leg 43, are determined by the ground contact point following method.

[0100] Furthermore, the position of the trunk 3 when the left front leg 41 transitions from a grounded leg to a free leg and the right front leg 44 transitions from a free leg to a grounded leg is indicated by trunk position 3a3. That is, the trunk 3 moves from the position indicated by trunk position 3a2 to the position indicated by trunk position 3a3.

[0101] The tips of the left middle leg 42, right front leg 44, and right rear leg 46, which are the legs on the ground, are indicated by black circles, points PL22, PR12, and PR32, respectively. On the other hand, the tips of the left front leg 41, left rear leg 43, and right middle leg 45, which are the free legs, are indicated by white circles, points PL12, PL32, and PR22, respectively.

[0102] Point PL22, which is the ground contact point of the left middle leg 42, is located adjacent to and behind point PL12, which is the ground contact point of the left front leg 41. In addition, point PR32, which is the ground contact point of the right hind leg 46, is located adjacent to and behind point PR22, which is the ground contact point of the right middle leg 45. In other words, the ground contact points of the trailing legs, the left middle leg 42 and the right hind leg 46, are determined by the ground contact point following method.

[0103] Next, a method for controlling a trailing leg in the fourth control mode (i.e., a ground-contacting leg) will be described. If there is a control leg in the ground-contacting leg mode (i.e., the ground-contacting leg button is on), the robot control device 31 moves the tip of the trailing leg, which is a ground-contacting leg, in accordance with the movement of the tip of the control leg.

[0104] More specifically, the robot control device 31 acquires a target trunk movement value ΔC (xc, yc, zc, Δφ, Δψ, Δθ) every time a control period Δt elapses. The target trunk movement value ΔC is a target value for the amount of movement of the trunk 3 during the period from the present time until the control period Δt elapses. The target trunk movement value ΔC is expressed by a combination of the trunk coordinates (xc, yc, zc) of the trunk center of gravity Gb after the control period Δt has elapsed, and the rotation angle Δφ about the x-axis, the rotation angle Δψ about the y-axis, and the rotation angle Δθ about the z-axis of the trunk 3 after the control period Δt has elapsed.

[0105] The robot control device 31 acquires a target trunk movement value ΔC so that the trunk 3 moves in accordance with the movement of the tip of the control leg in the ground-contact leg mode (i.e., a change in the tip position Ps) and the state of the robot 2 approaches the reference state. At this time, the robot control device 31 acquires the target trunk movement value ΔC so that the magnitudes of the rotation angles Δφ, Δψ, and Δθ do not exceed predetermined upper rotation limits.

[0106] On the other hand, if there is no control leg in the ground-contact leg mode, the robot control device 31 acquires a desired center-of-gravity position Gt(xg, yg, zg). In this embodiment, the robot control device 31 acquires a desired center-of-gravity position Gt so that the center of gravity of a support polygon having vertices at the tips of the following legs, which are ground-contact legs, coincides with the center of gravity Gb of the trunk in a top view. In addition, the robot control device 31 acquires a desired trunk movement value ΔC so that the trunk center of gravity Gb approaches the desired center-of-gravity position Gt.

[0107] Once the desired trunk movement value ΔC is acquired, the robot control device 31 acquires the leg tip movement position Pg(xn, yn, zn) of each of the trailing legs, which are ground-contacting legs. The leg tip movement position Pg is the trunk coordinate value of the leg tip of the ground-contacting leg at the time when the trunk 3 has moved and rotated as represented by the desired trunk movement value ΔC. Once the leg tip movement position Pg is acquired, the robot control device 31 controls the leg tip position Ps of the trailing leg, which is the ground-contacting leg, so that the leg tip position Ps after the control period Δt has elapsed is equal to the leg tip movement position Pg.

[0108] (Operation of the left and right front legs in swing mode) As described above, the robot control device 31 moves the torso 3 in accordance with changes in the leg tip position Ps of the controlled leg that is in the ground contact leg mode (i.e., the ground contact leg button is in the ON state). When the ground contact leg buttons of the left controller 83a and the right controller 83b are no longer in the ON state (regardless of whether the swing leg button is in the ON state), the robot control device 31 controls the trailing leg based on the target center-of-gravity position Gt. Thereafter, when all the trailing legs become ground contact legs and the center of gravity of the support polygon formed by the tips of the trailing legs substantially coincides with the center of gravity Gb of the torso in a top view, the movement of the torso 3 stops.

[0109] At this time, the operator can operate the control leg in swing mode (i.e., the swing leg button is on) to move the leg tip to a new ground contact point. Alternatively, the operator can use the control leg in swing mode for purposes other than walking the robot 2. In other words, the operator can use the control leg in swing mode as a manipulator.

[0110] For example, as can be seen from the example of the display image on the HMD 82 shown in Figure 11, the operator can also use the left front leg 41 and right front leg 44 in the swing mode to grasp and lift an object (in this example, a box B1).

[0111] Furthermore, the magnitude of the actuation reaction force Fm is adjusted so that it is equal to or less than the reaction force threshold value Fth. For example, Fig. 12 shows an example of changes in the corrected tip reaction force Fef and the actuation reaction force Fm when the tip of the left front leg 41 is brought into contact with the ground. In Fig. 12, the corrected tip reaction force zef, which is the value of the corrected tip reaction force Fef in the z-axis direction, is indicated by a solid line L4. The actuation reaction force zf, which is the value of the actuation reaction force Fm generated in the grip portion of the left operating device 83a in the z-axis direction, is indicated by a solid line L5.

[0112] As can be seen from the solid line L5, the actuation reaction force zf varies within a range equal to or less than the reaction force threshold Fth. Therefore, even if the corrected tip reaction force zef increases due to a relatively high leg tip moving speed when the tip of the left front leg 41 touches the ground, the actuation reaction force zf does not increase, which would cause the operator to feel uncomfortable. In addition, even if noise is mixed in when detecting the current As and the detected value increases, the actuation reaction force Fm does not become excessive. Furthermore, by applying a force equal to the reaction force threshold Fth to the left controller 83a or the right controller 83b, the operator can generate a force in the actuating leg that is greater than the force corresponding to the reaction force threshold Fth.

[0113] (Specific operation - robot control device) The specific operation of the robot control device 31 will now be described. The CPU of the robot control device 31 (hereinafter also simply referred to as "CPU") executes a "control leg control processing routine" shown by the flowchart in FIG. 13 every time a control period Δt elapses. After completing the processing of this routine, the CPU executes a follower leg control processing routine shown by the flowchart in FIG. 14. The CPU executes a routine not shown, and transmits information representing forward images captured by the stereo camera 32 to the operation control device 81 via the wireless communication device 34 as needed.

[0114] 13, the CPU starts the process from step 1300 and proceeds to step 1305 to select one of the control legs. That is, the CPU selects one of the left front leg 41 and the right front leg 44.

[0115] Next, the CPU proceeds to step 1310 and determines whether the free leg button or the grounded leg button of the selected controlled leg is in the ON state. That is, the CPU determines whether at least one of the buttons 87a and 87b is in the ON state based on the operation information received from the operation control device 81 during the period from the end of the last execution of this routine to the present time.

[0116] If the free leg button or the grounded leg button is in the on state, the CPU determines "Yes" in step 1310 and sequentially executes the processes of steps 1315 to 1335, which will be described below.

[0117] Step 1315: The CPU acquires the desired leg tip position Pr. That is, the CPU acquires the desired leg tip position Pr by applying the operation position Pm corresponding to the selected operation leg included in the operation information last received from the operation control device 81 to the above-mentioned equations (1) to (3) or equations (4) to (6).

[0118] Step 1320: The CPU acquires the target movement amount ΔPs. That is, the CPU acquires the target movement amount ΔPs by applying the leg tip position Ps and the target leg tip position Pr, as well as the previous leg tip position Psp and the previous target leg tip position Prp stored the previous time this routine was executed, to the above-mentioned equation (7). At this time, the CPU acquires the leg tip position Ps(xs, ys, zs) based on the leg rotation angle Ls(αs, βs, γs) of the selected controlled leg. In addition, if the target leg tip position Pr is outside the reachable area of ​​the selected controlled leg, the CPU adjusts the target leg tip position Pr so that it is included in the reachable area.

[0119] Step 1325: The CPU stores the foot tip position Ps in the RAM as the previous foot tip position Psp. Step 1330: The CPU stores the target leg tip position Pr in the RAM as the previous target leg tip position Prp.

[0120] Step 1335: The CPU controls the leg tip position Ps based on the target movement amount ΔPs. That is, the CPU controls the motor 51 of the selected operating leg so that the amount of change in the leg tip position Ps from the current time point until the control period Δt has elapsed is equal to the target movement amount ΔPs. Specifically, the CPU obtains the amount of change in the leg rotation angle Ls (leg rotation angle change amount) when the leg tip position Ps has changed by the target movement amount ΔPs. In addition, the CPU controls the motor 51 so that the leg rotation angle Ls changes by the leg rotation angle change amount during the period from the current time point until the control period Δt has elapsed.

[0121] In step 1340, the CPU determines whether the ground leg button for the selected control leg is in the ON state. If the ground leg button is in the ON state, the CPU determines "Yes" in step 1340 and proceeds to step 1345, where it determines whether the ground leg button has just been turned ON. In other words, the CPU determines whether this routine is being executed for the first time after the ground leg button was turned ON.

[0122] If the ground contact leg button has just been turned on, the CPU determines "Yes" in step 1345 and proceeds to step 1350, where it stores the leg tip position Ps in RAM as the reference position of the following leg. That is, in the following leg control processing routine, the CPU acquires a position adjacent to and behind the stored reference position as the target ground contact position of the following leg. Next, the CPU proceeds to step 1355.

[0123] If the grounded leg button has not just been turned on, the CPU determines “No” in step 1345 and proceeds directly to step 1355 .

[0124] In step 1355, the CPU acquires a desired trunk movement value ΔC based on the desired movement amount ΔPs. That is, the CPU acquires a desired trunk movement value ΔC so that the trunk 3 moves in accordance with changes in the leg tip position Ps of the controlled leg in the ground-contact leg mode.

[0125] Next, the CPU proceeds to step 1360 and transmits the current As of the selected operating leg as reaction force information to the operation control device 81. Furthermore, the CPU proceeds to step 1365 and determines whether or not the above-mentioned processing has been executed for the left and right operating legs. If there is an operating leg for which processing has not yet been executed, the CPU determines "No" in step 1365 and proceeds to step 1305 and selects the operating leg for which processing has not been executed (that has not been selected).

[0126] On the other hand, if processing has been executed for the left and right control legs, the CPU makes a "Yes" determination in step 1365 and proceeds to step 1395, where it ends the processing of this routine and starts the processing of the follower leg control processing routine of FIG.

[0127] If the determination condition in step 1310 is not met (i.e., if both the free leg button and the grounded leg button of the selected controlled leg are in the OFF state), the CPU determines "No" in step 1310 and proceeds directly to step 1365. If the determination condition in step 1340 is not met (i.e., if the grounded leg button of the selected controlled leg is in the OFF state), the CPU determines "No" in step 1340 and proceeds directly to step 1360.

[0128] Next, the follower leg control processing routine will be described. When the processing of the control leg control processing routine ends, the CPU starts processing from step 1400 in Fig. 14 and proceeds to step 1405, where it determines whether or not a desired trunk movement value ΔC has been acquired. That is, the CPU determines whether or not there is a control leg in the ground contact leg mode, and as a result, whether or not a desired trunk movement value ΔC has been acquired in the processing of step 1355 in Fig. 13. If a desired trunk movement value ΔC has been acquired, the CPU determines "Yes" in step 1405 and proceeds directly to step 1420.

[0129] On the other hand, if the desired trunk movement value ΔC has not been acquired (i.e., if there is no controlled leg in the ground contact leg mode), the CPU determines "No" in step 1405 and proceeds to step 1410 to acquire the desired center-of-gravity position Gt. Specifically, the CPU acquires the leg tip position Ps of each of the following legs, which are ground contact legs, based on the leg rotation angle Ls, and acquires the center-of-gravity position of the support polygon of the following leg based on the leg tip position Ps. In addition, the CPU acquires the desired center-of-gravity position Gt so that the center of gravity of the support polygon coincides with the trunk center of gravity Gb in a top view and the trunk 3 approaches the reference state.

[0130] Next, the CPU proceeds to step 1415 and acquires a target trunk movement value ΔC based on the target center-of-gravity position Gt. Specifically, the CPU acquires the target trunk movement value ΔC so that the trunk center of gravity Gb approaches the target center-of-gravity position Gt at a predetermined target movement speed Sr and the trunk 3 approaches the reference state.

[0131] In step 1420, the CPU selects one of the following legs as the leg to be controlled. Then, the CPU proceeds to step 1425 and executes the "following leg state management processing routine" shown in the flowchart of Figure 15. The routine of Figure 15 will be described later.

[0132] 15 ends, the CPU proceeds to step 1430 and determines whether the controlled leg is in the second control mode. If the controlled leg is in the second control mode, the CPU determines "Yes" in step 1430 and proceeds directly to step 1455. In this case, the leg tip position Ps of the controlled leg is not changed.

[0133] On the other hand, if the leg to be controlled is not in the second control mode, the CPU determines "No" in step 1430 and proceeds to step 1460 to determine whether the leg to be controlled is in the fourth control mode. If the leg to be controlled is in the fourth control mode, the CPU determines "Yes" in step 1460 and proceeds to step 1465 to obtain the leg tip movement position Pg based on the desired trunk movement value ΔC.

[0134] Next, the CPU proceeds to step 1450 and controls the controlled leg based on the leg tip movement position Pg. That is, the CPU controls the motor 51 of the controlled leg so that the leg tip position Ps of the controlled leg when the control period Δt has elapsed from the current time point is equal to the leg tip movement position Pg. Specifically, the CPU obtains the amount of change in the leg rotation angle Ls when the leg tip position Ps becomes the leg tip movement position Pg (leg rotation angle change amount). In addition, the CPU controls the motor 51 of the controlled leg so that the leg rotation angle Ls changes by the leg rotation angle change amount during the period from the current time point to the elapse of the control period Δt. Then, the CPU proceeds to step 1455.

[0135] If the controlled leg is not in the fourth control mode, the CPU determines "No" in step 1460 and proceeds to step 1435 to determine whether the controlled leg is in the third control mode. If the controlled leg is in the third control mode, the CPU determines "Yes" in step 1435 and proceeds to step 1440 to obtain a leg tip movement position Pg based on the target ground contact position. That is, the CPU obtains a leg tip movement position Pg such that the controlled leg tip approaches the target ground contact position obtained in step 1535 of FIG. 15. Next, the CPU proceeds to step 1450.

[0136] If the controlled leg is not in the third control mode (i.e., if the controlled leg is in the first control mode), the CPU determines "No" in step 1435 and proceeds to step 1445, where it acquires the leg tip moving position Pg based on the leg tip standby position Lw. That is, the CPU acquires the leg tip moving position Pg so that the leg tip of the controlled leg approaches the leg tip standby position Lw. Next, the CPU proceeds to step 1450.

[0137] In step 1455, the CPU determines whether or not the above-described processing has been performed for all the following legs. That is, the CPU determines whether or not all the following legs have been selected as legs to be controlled. If all the following legs have been selected as legs to be controlled, the CPU determines "Yes" in step 1455 and proceeds to step 1495, where it ends the processing of this routine.

[0138] On the other hand, if there is a following leg that has not been selected as the leg to be controlled, the CPU determines "No" in step 1455 and proceeds to step 1420, where it selects one of the following legs that has not yet been selected as the leg to be controlled.

[0139] Next, the following leg state management processing routine of Fig. 15 will be described. When the CPU proceeds to step 1425 of Fig. 14, it starts the processing from step 1500 of Fig. 15, proceeds to step 1505, and determines whether the leg to be controlled is in the first control mode.

[0140] If the controlled leg is in the first control mode, the CPU determines "Yes" in step 1505 and proceeds to step 1510 to determine whether the second transition condition for the controlled leg is met. Specifically, the CPU determines whether the distance between the leg tip position Ps(xs, ys, zs) of the controlled leg and the leg tip position represented by the leg tip standby position Lw(αw, βw, γw) is smaller than a predetermined threshold.

[0141] If the second transition condition for the controlled leg is satisfied, the CPU determines "Yes" in step 1510 and proceeds to step 1515 to change the control mode of the controlled leg to the second control mode. Next, the CPU proceeds to step 1595 to end the processing of this routine and proceeds to step 1430 in Figure 14.

[0142] On the other hand, if the second transition condition for the control target leg is not satisfied, the CPU determines “No” in step 1510 and proceeds directly to step 1595 .

[0143] If the controlled leg is not in the first control mode, the CPU determines "No" in step 1505 and proceeds to step 1520 to determine whether the controlled leg is in the second control mode.

[0144] If the controlled leg is in the second control mode, the CPU determines "Yes" in step 1520 and proceeds to step 1525 to determine whether the third transition condition for the controlled leg is met. That is, the CPU determines whether the tip of the leg adjacent to the controlled leg in front of the controlled leg is included in the reachable area of ​​the controlled leg.

[0145] If the third transition condition for the controlled leg is met, the CPU determines "Yes" in step 1525 and proceeds to step 1530, where it changes the control mode of the controlled leg to the third control mode. Next, the CPU proceeds to step 1535, where it acquires the target ground contact position of the controlled leg. If the controlled leg is the left middle leg 42 or the right middle leg 45, the CPU acquires the target ground contact position of the controlled leg as a position adjacent to and rear of the reference position of the operating leg, which is the front adjacent leg stored in step 1350 of FIG. 13. If the controlled leg is the left hind leg 43 or the right hind leg 46, the CPU acquires the target ground contact position of the controlled leg as a position adjacent to and rear of the ground contact position of the front adjacent leg (i.e., either the left middle leg 42 or the right middle leg 45). Then, the CPU proceeds to step 1595.

[0146] On the other hand, if the third transition condition for the control target leg is not satisfied, the CPU determines “No” in step 1525 and proceeds directly to step 1595 .

[0147] If the controlled leg is not in the second control mode, the CPU determines "No" in step 1520 and proceeds to step 1540 to determine whether the controlled leg is in the third control mode.

[0148] If the controlled leg is in the third control mode, the CPU determines "Yes" in step 1540 and proceeds to step 1545 to determine whether the fourth transition condition for the controlled leg is met. Specifically, the CPU determines whether the distance between the leg tip position Ps of the controlled leg and the target ground contact position is smaller than a predetermined threshold.

[0149] If the fourth transition condition for the controlled leg is met, the CPU determines "Yes" in step 1545 and proceeds to step 1550 to change the control mode of the controlled leg to the fourth control mode.

[0150] On the other hand, if the fourth transition condition for the control target leg is not satisfied, the CPU determines “No” in step 1545 and proceeds directly to step 1595 .

[0151] If the controlled leg is not in the third control mode (i.e., if the controlled leg is in the fourth control mode), the CPU determines "No" in step 1540 and proceeds to step 1555 to determine whether the first transition condition (swing leg condition) for the controlled leg is met. That is, the CPU determines whether the leg adjacent to the controlled leg in front is a ground contact leg and whether the torso center of gravity Gb is included in a support polygon defined by the foot tip positions of the ground contact legs other than the controlled leg in a top view (i.e., the center of gravity condition is met).

[0152] If the first transition condition (swing leg condition) of the control-target leg is satisfied, the CPU determines "Yes" in step 1555 and proceeds to step 1560 to change the control mode of the control-target leg to the first control mode.

[0153] On the other hand, if the first transition condition (swing leg condition) of the leg to be controlled is not satisfied, the CPU determines “No” in step 1555 and proceeds directly to step 1595 .

[0154] (Specific operation-control device) Next, a specific operation of the operation control device 81 will be described. The CPU of the operation control device 81 (hereinafter also simply referred to as "CPU") executes the "operator control processing routine" shown by the flowchart in Fig. 16 every time a control period Δt elapses. The CPU executes a routine not shown, and displays the forward image received from the robot control device 31 on the left display 82a and right display 82b of the HMD 82 as needed.

[0155] At an appropriate timing, the CPU starts the process from step 1600 in Figure 16 and proceeds to step 1605 to select one of the controllers. That is, the CPU selects one of the left controller 83a and the right controller 83b.

[0156] Next, the CPU determines whether the free leg button or the grounded leg button of the selected controller is in the ON state, that is, the CPU determines whether at least one of the buttons 87a and 87b is in the ON state.

[0157] If the free leg button or the grounded leg button is in the on state, the CPU determines "Yes" in step 1610 and sequentially executes the processes of steps 1615 to 1635, which will be described below.

[0158] Step 1615: The CPU acquires the reaction torque Tk of the operating leg corresponding to the selected operating device. That is, the CPU acquires the reaction torque Tk by applying the current As of the selected operating leg, which is included in the reaction information received from the robot control device 31 during the period from the end of the last execution of this routine to the present time, to the above equation (8). Step 1620: The CPU obtains the action torque Te by applying the reaction torque Tk to the above equation (9).

[0159] Step 1625: The CPU obtains the tip reaction force Fe by applying the action torque Te to the above equation (10). Step 1630: The CPU obtains a corrected tip reaction force Fef by applying LPF processing to the tip reaction force Fe. Step 1635: The CPU obtains the operation reaction force Fm by applying the corrected tip end reaction force Fef to the above equation (11).

[0160] At step 1640, the CPU determines whether the magnitude |Fm| of the actuation reaction force Fm is greater than the reaction force threshold Fth. If the magnitude |Fm| of the actuation reaction force Fm is greater than the reaction force threshold Fth, the CPU determines "Yes" at step 1640 and proceeds to step 1645, where it adjusts the actuation reaction force Fm(xf, yf, zf) so that the magnitude |Fm| of the actuation reaction force Fm becomes equal to the reaction force threshold Fth. That is, the CPU reduces the magnitudes of the actuation reaction force xf, actuation reaction force yf, and actuation reaction force zf, which are the components of the actuation reaction force Fm in the x-axis direction, y-axis direction, and z-axis direction, respectively. Next, the CPU proceeds to step 1650.

[0161] On the other hand, if the magnitude |Fm| of the operation reaction force Fm is equal to or smaller than the reaction force threshold value Fth, the CPU determines “No” in step 1640 and proceeds directly to step 1650 .

[0162] In step 1650, the CPU obtains the joint torque Ts(αt, βt, γt) by applying the operation reaction force Fm to the above equation (12). Next, the CPU proceeds to step 1655 and controls the operating device based on the joint torque Ts. That is, the CPU causes each of the motors 86 included in the selected operating device to generate a torque equal to the joint torque Ts.

[0163] Furthermore, the CPU proceeds to step 1660 and transmits the operation state and operation position Pm of the selected buttons of the controller (that is, the free leg button and the grounded leg button) to the robot control device 31 as operation information.

[0164] Next, the CPU proceeds to step 1665 and determines whether the above-mentioned processing has been performed on the left and right controllers. If there are any controllers for which processing has not yet been performed, the CPU determines "No" in step 1665 and proceeds to step 1605 and selects the controller for which processing has not been performed (that has not been selected). On the other hand, if the above-mentioned processing has been performed on the left and right controllers, the CPU determines "Yes" in step 1665 and proceeds to step 1695, ending processing of this routine.

[0165] If the determination condition in step 1610 is not met (i.e., if both the free leg button and the grounded leg button are in the OFF state), the CPU determines "No" in step 1610 and proceeds directly to step 1660. Therefore, in this case, no operation reaction force Fm is generated in the grip portion of the selected controller.

[0166] Second Embodiment A second embodiment will be described with reference to FIG. 2 and FIGS. 17 to 19. A robot control system 1a according to the second embodiment includes a robot 2a and an operation device 8a. The robot 2a is equipped with a robot control device 31a having a configuration similar to that of the robot control device 31 (see FIG. 2). The operation device 8a is equipped with an operation control device 81a and an operation unit 83c (see FIG. 17). The operation control device 81a has a configuration similar to that of the operation control device 81. The operation unit 83c has a configuration similar to that of the left operation unit 83a, but does not have a button 87b. The operation control device 81a generates an auxiliary torque Th (αh, βh, γh) in addition to a joint torque Ts in a grip portion of the operation unit 83c (i.e., the link 84f, more specifically, the fifth operation joint). The differences between them will be described below.

[0167] The operator uses the controller 83c to control the operating leg in the swing mode (i.e., either the left front leg 41 or the right front leg 44). For example, when the left front leg 41 is in the swing mode, the robot control device 31a controls the leg tip position Ps(xs, ys, zs) of the left front leg 41 in accordance with the operating position Pm(xm, ym, zm) of the controller 83c. Meanwhile, the operation control device 81a generates an operation reaction force Fm(xf, yf, zf) in the gripping portion (specifically, the fifth operating joint) of the controller 83c in accordance with the tip reaction force Fe(xe, ye, ze) of the left front leg 41.

[0168] When the operator places the tip of the left front leg 41 on the ground at the desired position and then turns on button 87a (specifically, by temporarily pressing button 87a), the robot control device 31a switches the left front leg 41 to ground-contact leg mode and the right front leg 44 to swing leg mode.

[0169] Thereafter, the robot control device 31a controls the leg tip position Ps of the right front leg 44 in accordance with the operated position Pm of the controller 83c. However, at the point in time when the right front leg 44 is switched to the free leg mode, the leg tip position Ps of the right front leg 44 is deviated from the operated position Pm of the controller 83c. Therefore, the operation control device 81a executes a "correction process" for the operated position Pm.

[0170] Specifically, the operation control device 81a generates an auxiliary torque Th to move the gripping portion of the operation device 83c so that the operation position Pm becomes a value corresponding to the tip position Ps of the right front leg 44. When the correction process for the operation position Pm is completed (i.e., when the operation position Pm reaches a position corresponding to the tip position Ps of the right front leg 44), the robot control device 31a controls the tip position Ps of the right front leg 44 in accordance with the operation position Pm.

[0171] Furthermore, when the leg tip position Ps of the right front leg 44 (in the swing leg mode) approaches the boundary of the reachable area, the operation control device 81a generates an assist torque Th in a direction that moves the operation position Pm toward a predetermined operation assist position Pt(xt, yt, zt). Therefore, when operating the grip portion of the controller 83c (i.e., when moving the operation position Pm), the operator can recognize that the leg tip of the operation leg in the swing leg mode is approaching an unreachable area.

[0172] In this embodiment, the operation assist position Pt is approximately equal to the operation position Pm corresponding to the leg tip position Ps when the leg rotation angle Ls (αs, βs, γs) of the operating leg matches the leg tip standby position Lw. For convenience, the force generated in the grip portion of the operation device 83c when each of the motors 86 of the operation device 83c generates a torque equal to the assist torque Th is also referred to as the "operation assist force."

[0173] (Specific operation - robot control device) The specific operation of the robot control device 31a will be described. The CPU of the robot control device 31a (hereinafter simply referred to as "CPU") executes a "control leg control processing routine" shown by a flowchart in FIG. 18 every time a control period Δt elapses, instead of the routine in FIG. 13. The correction flag Xh, which is set to a value of "0" or "1" and referenced in this routine, is set to "0" when the robot control device 31a is started up. When the correction processing of the operation position Pm is being executed, the value of the correction flag Xh is set to "1."

[0174] When the CPU finishes processing the routine in Figure 18, it executes the following leg control processing routine in Figure 14. However, since the desired trunk movement value ΔC is always obtained in the routine in Figure 18, the CPU always determines "No" in step 1405 in Figure 14.

[0175] 18, the CPU starts the process from step 1800 and proceeds to step 1805 to determine whether or not the button 87a of the controller 83c has just been turned on. That is, the CPU determines whether or not this routine is being executed for the first time after receiving operation information from the operation control device 81a indicating that the operation state of the button 87a is on.

[0176] If the button 87a has not just been turned on, the CPU determines "No" in step 1805 and proceeds to step 1850 to determine whether the value of the correction flag Xh is "1." If the value of the correction flag Xh is not "1," the CPU determines "No" in step 1850 and proceeds to step 1865. In this case, the correction process for the operator 83c has not been executed.

[0177] In step 1865, the CPU controls the controlled leg in the swing mode based on the controlled position Pm of the controller 83c. Specifically, the CPU controls the leg tip position Ps of the controlled leg in the swing mode by executing the same processes as in steps 1315 to 1335 in Fig. 13. Next, the CPU proceeds to step 1870 and transmits the current As of the controlled leg in the swing mode to the operation control device 81 as reaction force information.

[0178] Furthermore, the CPU proceeds to step 1875, where it determines whether the leg tip of the controllable leg in the swing mode is approaching the boundary of the reachable area. Specifically, the CPU determines that the leg tip of the controllable leg is approaching the boundary of the reachable area when the distance between the leg tip position Ps and the trunk coordinate value that is closest to the leg tip position Ps(xs, ys, zs) among the set of trunk coordinate values ​​that represent the boundary of the reachable area is smaller than a predetermined threshold.

[0179] If the tip of the control leg is not approaching the boundary of the reachable area, the CPU determines "No" in step 1875 and sequentially executes the processing of steps 1830 to 1845. Next, the CPU proceeds to step 1895, ends the processing of this routine, and starts the processing of the following leg control processing routine of Figure 14.

[0180] Step 1830: The CPU acquires a desired center-of-gravity position Gt. Specifically, the CPU acquires a desired center-of-gravity position Gt so that the center of gravity of a support polygon having vertices at the tips of the control leg in the ground-contact leg mode and the follower leg in the fourth control mode coincides with the center of gravity Gb of the trunk in a top view. Step 1835: The CPU acquires a desired trunk movement value ΔC based on the desired center-of-gravity position Gt. Specifically, the CPU acquires the desired trunk movement value ΔC by executing the same process as in step 1415 of Fig. 14.

[0181] Step 1840: The CPU acquires the leg tip movement position Pg of the controlled leg in the ground contact leg mode based on the desired trunk movement value ΔC. Specifically, the CPU acquires the leg tip movement position Pg of the controlled leg by performing the same process as in step 1465 of Figure 14. Step 1845: The CPU controls the controlled leg in the ground-contact leg mode based on the leg-tip moving position Pg. Specifically, the CPU controls the motor 51 of the controlled leg in the ground-contact leg mode by executing the same process as in step 1450 in Figure 14.

[0182] On the other hand, if the button 87a of the controller 83c has just been turned on, the CPU determines "Yes" in step 1805 and sequentially executes the processes of steps 1810 to 1825. Next, the CPU proceeds to step 1830.

[0183] Step 1810: The CPU stores the toe tip position Ps as the reference position (by executing the same process as in step 1350 in FIG. 13). Step 1815: The CPU switches the controlled leg between swing mode and ground contact mode. That is, the CPU switches the controlled leg that was in the swing mode to ground contact mode, and switches the controlled leg that was in the ground contact mode to the swing mode.

[0184] Step 1820: The CPU sets the value of the correction flag Xh to “1”. Step 1825: The CPU transmits the leg tip position Ps of the operating leg that is in the swing leg mode (that has newly entered the swing leg mode) to the operation control device 81a as "corrected position information."

[0185] The next time this routine is executed, it will not be immediately after the button 87a of the controller 83c has been turned on, so the CPU determines "No" in step 1805 and proceeds to step 1850. Furthermore, because the value of the correction flag Xh is "1," the CPU determines "Yes" in step 1850 and proceeds to step 1855, where it determines whether the correction process has ended.

[0186] Specifically, the CPU determines that the correction process has been completed if the distance between the (actual) leg tip position Ps of the controlled leg that has newly entered the swing leg mode and the leg tip position Ps corresponding to the controlled position Pm included in the last received operation information is smaller than a predetermined threshold. If the correction process has not been completed, the CPU determines "No" in step 1855 and proceeds to step 1825. In other words, if the leg tip position Ps of the controlled leg in the swing leg mode and the controlled position Pm of the controller 83c are separated from each other, the corrected position information is repeatedly transmitted to the operation control device 81a, and as a result, the operation control device 81a recognizes that the situation calls for the execution of the correction process.

[0187] Thereafter, when the correction process is completed, the CPU determines "Yes" in step 1855 and proceeds to step 1860, where it sets the value of the correction flag Xh to "0." Next, the CPU proceeds to step 1865. That is, in this case, the leg tip position Ps of the controlled leg that has entered the swing leg mode is controlled based on the controlled position Pm of the controller.

[0188] When the leg tip position Ps of the controlled leg in swing mode approaches the boundary of the reachable area, the CPU determines "Yes" in step 1875, proceeds to step 1880, and transmits "boundary approach information" to the operation control device 81a. Therefore, in this case, the operation control device 81a recognizes that the leg tip position Ps of the controlled leg in swing mode is approaching the boundary of the reachable area. Next, the CPU proceeds to step 1830.

[0189] (Specific operation-control device) Next, a specific operation of the operation control device 81a will be described. The CPU (hereinafter also simply referred to as "CPU") of the operation control device 81a executes an "operator control processing routine" shown by the flowchart in Fig. 19 instead of the routine in Fig. 16 every time a control period Δt elapses.

[0190] At an appropriate timing, the CPU starts the process from step 1900 in Fig. 19 and proceeds to step 1905 to determine whether or not corrected position information has been received. Specifically, the CPU determines whether or not corrected position information has been received from the robot control device 31a during the period from the end of the processing of this routine that was executed last time until the present time.

[0191] If corrected position information has been received (i.e., if the correction process of the operation device 83c is being executed), the CPU determines "Yes" in step 1905 and sequentially executes the processes of steps 1910 to 1925. Next, the CPU proceeds to step 1995 and ends the process of this routine.

[0192] Step 1910: The CPU acquires the assist torque Th based on the leg tip position Ps included in the corrected position information. Specifically, the CPU acquires the assist torque Th so that the operation position Pm moves toward the position corresponding to the leg tip position Ps when each of the motors 86 of the operation device 83c generates a torque equal to the assist torque Th (αh, βh, γh).

[0193] Step 1915: The CPU acquires the joint torque Ts based on the reaction torque Tk. Specifically, if the correction process for the operator 83c is not currently being executed, the manipulation control device 81a has received reaction force information from the robot control device 31a through the process of step 1870 in FIG. 18. In this case, the CPU acquires the joint torque Ts by executing the same processes as steps 1615 to 1650 in FIG. 16. On the other hand, if no reaction force information has been received during the period from the end of the last execution of this routine to the present time (i.e., if the correction process for the operator 83c is currently being executed), the CPU sets the values ​​of each of the joint torques Ts (αt, βt, γt) to "0."

[0194] Step 1920: The CPU controls the manipulator 83c based on the assist torque Th and the joint torque Ts. Specifically, the CPU causes each of the motors 86 of the manipulator 83c to generate a torque equal to the sum of the assist torque Th and the joint torque Ts. Step 1925: The CPU transmits the button operation state and operation position Pm of the operation device 83c as operation information to the robot control device 31a (by executing the same process as in step 1660 in FIG. 16).

[0195] If corrected position information has not been received (i.e., if the correction process of the operating device 83c has ended), the CPU determines "No" in step 1905 and proceeds to step 1930 to determine whether or not boundary approach information has been received. Specifically, the CPU determines whether or not boundary approach information has been received from the robot control device 31a during the period from the end of the process of this routine that was executed last time until the present time.

[0196] If boundary approach information has been received, the CPU determines "Yes" in step 1930 and proceeds to step 1935, where it obtains the assist torque Th based on the operation assist position Pt. Specifically, the CPU obtains the assist torque Th so that when each of the motors 86 of the operation device 83c generates a torque equal to the assist torque Th, the operation position Pm moves toward the position corresponding to the operation assist position Pt. Next, the CPU proceeds to step 1915.

[0197] On the other hand, if boundary approach information has not been received, the CPU determines "No" in step 1935 and proceeds directly to step 1915. Note that if neither corrected position information nor boundary approach information has been received during the period from the end of the previous execution of this routine to the present time, the values ​​of the assist torques Th(αh, βh, γh) are set to "0" in the processing of step 1915.

[0198] Third Embodiment A third embodiment will be described with reference to Figs. 20 to 26. A robot control system 1b according to the third embodiment includes a robot 6, which is a bipedal walking robot, and an operating device 9. An operator controls the position and angle of the leg tip of the robot 6 (specifically, the foot at the tip of the free leg) by operating the grip of the operating device 9. The robot 6 is equipped with a six-axis force sensor that detects the tip reaction force acting on the foot, and an operating reaction force equivalent to the detected tip reaction force is generated in the grip corresponding to the free leg. The differences between these two will be described below.

[0199] 20 and 21, the robot 6 includes a robot control device 31b having a configuration similar to that of the robot control device 31, a body 61, and a left leg 71a and a right leg 71b that are movable members that are movable relative to the body 61. For convenience, the left leg 71a and the right leg 71b are also referred to as "operating legs." In this embodiment, the body coordinate system of the robot 6 is an orthogonal coordinate system in which the geometric center of the body 61 is the origin O, the front-to-back direction with respect to the body 61 is the x-axis, the left-to-right direction is the y-axis, and the up-down direction is the z-axis.

[0200] The torso 61 is equipped with an IMU 33, a wireless communication device 34 (34a), and a stereo camera 62. The stereo camera 62 includes a left camera 62a and a right camera 62b. The left camera 62a and the right camera 62b each capture an image of the area in front of the torso 61 (i.e., a front image) and transmit a signal representing the front image to the robot control device 31b. For convenience, the stereo camera 62 is also referred to as a "front area sensor."

[0201] The left leg 71a and the right leg 71b have the same structure and are connected to the torso 61 so that the left leg 71a and the right leg 71b are bilaterally symmetrical. Each of the left leg 71a and the right leg 71b includes links 72a to 72d, a base 72e, and a foot 72f (see FIG. 22). One end of the base 72e is fixed to the torso 61. The other end of the base 72e is connected to one end of the link 72a via a rotational joint (first leg joint).

[0202] The other end of link 72a is connected to one end of link 72b via two rotational joints (a second leg joint and a third leg joint). The rotational axis of the second leg joint is perpendicular to the rotational axis of the first leg joint, and the rotational axis of the third leg joint is perpendicular to the rotational axis of the second leg joint. The other end of link 72b is connected to one end of link 72c via a rotational joint (a fourth leg joint).

[0203] The other end of link 72c is connected to one end of link 72d via two rotational joints (a fifth leg joint and a sixth leg joint). The rotation axis of the fifth leg joint is mutually perpendicular to the rotation axis of the fourth leg joint, and the rotation axis of the sixth leg joint is mutually perpendicular to the rotation axis of the fifth leg joint. The other end of link 72d is connected to foot 72f. Foot 72f has a substantially rectangular shape when viewed from above, and has a contact surface (lower surface) that comes into contact with the ground.

[0204] The rotation angle αb of the first leg joint is controlled by the torque generated by the motor 73 (motor 73a) (see FIG. 21). The rotation angle βb of the second leg joint is controlled by the torque generated by the motor 73 (motor 73b). The rotation angle γb of ​​the third leg joint is controlled by the torque generated by the motor 73 (motor 73c).

[0205] The rotation angle δb of the fourth leg joint is controlled by the torque generated by the motor 73 (motor 73d). The rotation angle εb of the fifth leg joint is controlled by the torque generated by the motor 73 (motor 73e). The rotation angle ζb of the sixth leg joint is controlled by the torque generated by the motor 73 (motor 73f). For convenience, the motor 73 is also referred to as the "leg actuator."

[0206] The angle sensor 74 (angle sensor 74a) detects the rotation angle αb of the first leg joint and outputs a signal representing the rotation angle αb to the robot control device 31b. The angle sensor 74 (angle sensor 74b) detects the rotation angle βb of the second leg joint and outputs a signal representing the rotation angle βb to the robot control device 31b. The angle sensor 74 (angle sensor 74c) detects the rotation angle γb of ​​the third leg joint and outputs a signal representing the rotation angle γb to the robot control device 31b.

[0207] The angle sensor 74 (angle sensor 74d) detects the rotation angle δb of the fourth leg joint and outputs a signal representing the rotation angle δb to the robot control device 31b. The angle sensor 74 (angle sensor 74e) detects the rotation angle εb of the fifth leg joint and outputs a signal representing the rotation angle εb to the robot control device 31b. The angle sensor 74 (angle sensor 74f) detects the rotation angle ζb of the sixth leg joint and outputs a signal representing the rotation angle ζb to the robot control device 31b. For convenience, the angle sensor 74 is also referred to as the "leg position sensor."

[0208] A force sensor 75 is installed at the connection between the link 72d and the foot 72f. The force sensor 75 is a well-known six-axis force sensor (force torque sensor) that detects a reaction force Fq acting on the foot 72f (and thus the force sensor 75) and outputs a signal representing the detected reaction force Fq to the robot control device 31b. For convenience, the force sensor 75 is also referred to as a "tip reaction force sensor."

[0209] The combination of rotation angles αb, βb, γb, δb, εb, and ζb is also referred to as leg rotation angle Lb (αb, βb, γb, δb, εb, ζb). The robot control device 31b acquires the leg tip position Pb(xb, yb, zb) and leg tip orientation Qb(φb, ψb, θb) of each of the left leg 71a and the right leg 71b using a well-known method based on the leg rotation angle Lb, the lengths of links 72a to 72d, and the shape (size) of foot 72f.

[0210] In this embodiment, the leg tip position Pb is the trunk coordinate value of the intersection of the axis of the link 72d and the upper surface of the foot 72f. The leg tip posture Qb is expressed by a combination of the rotation angles of the foot 72f in the x-, y-, and z-axes directions relative to the leg tip position Pb.

[0211] The robot control device 31b acquires a tip reaction force Fd (xd, yd, zd, φd, ψd, θd) based on the detected reaction force Fq. Specifically, the robot control device 31b corrects the detected reaction force Fq based on the leg tip posture Qb, etc., and acquires, as the tip reaction force Fd, a combination of the direction and magnitude of the reaction force in each of the x-axis, y-axis, and z-axis directions, and the direction and magnitude of the torque in each of the rotational directions around the x-axis, y-axis, and z-axis.

[0212] 23, the operation device 9 includes a wireless communication device 34 (34b), an operation control device 81b having a configuration similar to that of the operation control device 81, an HMD 82, a left-side operation device 91a, and a right-side operation device 91b. The left-side operation device 91a and the right-side operation device 91b have an appearance and structure similar to that of the left-side operation device 83a and the right-side operation device 83b, and further include an angle sensor 85 (angle sensors 85d to 85f) and a motor 86 (motors 86d to 86f).

[0213] The angle sensor 85 (angle sensor 85d) detects the rotation angle δm of the fourth operating joint (i.e., the rotary joint connecting link 84c and link 84d) and outputs a signal representing the rotation angle δm to the operation control device 81b. The angle sensor 85 (angle sensor 85e) detects the rotation angle εm of the fifth operating joint (i.e., the rotary joint connecting link 84d and link 84e) and outputs a signal representing the rotation angle εm to the operation control device 81b. The angle sensor 85 (angle sensor 85f) detects the rotation angle ζm of the sixth operating joint (i.e., the rotary joint connecting link 84e and link 84f) and outputs a signal representing the rotation angle ζm to the operation control device 81b.

[0214] The motor 86 (motor 86d) generates torque that changes the rotation angle δm in response to an instruction from the operation control device 81b. The motor 86 (motor 86e) generates torque that changes the rotation angle εm in response to an instruction from the operation control device 81b. The motor 86 (motor 86f) generates torque that changes the rotation angle ζm in response to an instruction from the operation control device 81b.

[0215] In this embodiment, the combination of torques generated by the motors 86 in response to the tip reaction force Fd is also referred to as joint torque Ts(αt, βt, γt, δt, εt, ζt). In addition, the combination of torques generated by the motors 86 to assist the operation by the operator is also referred to as assist torque Th(αh, βh, γh, δh, εh, ζh).

[0216] The combination of rotation angles αm, βm, γm, δm, εm, and ζm is also referred to as the operation rotation angle Lme (αm, βm, γm, δm, εm, ζm). The operation control device 81b obtains the operation position Pm (xm, ym, zm) and operation posture Qm (φm, ψm, θm) based on the operation rotation angle Lme using a well-known method. The operation posture Qm is the inclination (i.e., extension direction) of the link 84f, which is the gripping part, and is expressed by a combination of rotation angles in the directions of the x-axis, y-axis, and z-axis.

[0217] When making the robot 6 walk, the operator turns on the swing leg button of one of the left controller 91a and the right controller 91b and turns on the ground-contact leg button of the other. That is, when the robot 6 walks, one of the left leg 71a and the right leg 71b is in swing leg mode and the other is in ground-contact leg mode. Hereinafter, of the left leg 71a and the right leg 71b, the leg in swing leg mode will be simply referred to as the "swing leg," and the leg in ground-contact leg mode will be simply referred to as the "ground-contact leg."

[0218] When the operator operates the gripping part corresponding to the free leg (i.e., when the operator changes the operating position Pm and operating posture Qm), the leg tip position Pb and leg tip posture Qb of the free leg change accordingly. When the operator moves the foot 72f of the free leg forward relative to the body 61, the robot control device 31b moves the foot 72f of the ground-contacting leg backward relative to the body 61.

[0219] At this time, the robot control device 31b acquires a target ZMP (xa, ya, za) for the robot 6, and controls the leg tip position Pb and leg tip orientation Qb of the grounded leg so that the target ZMP is included in the foot 72f of the grounded leg in a top view, thereby controlling the orientation of the robot 6. The target ZMP is the target position of the point (so-called zero moment point) where the direction of the resultant force (total inertial force) of gravity acting on the center of gravity of the robot 6 at the time when a control period Δt has elapsed from the current time and the inertial force generated as the robot 6 moves intersects with the ground.

[0220] When the operator places the foot 72f of the free leg on the ground at a desired position, the operator turns off the free leg button of the controller corresponding to the free leg (i.e., one of the left controller 91a and the right controller 91b) and turns on the ground leg button. In addition, the operator turns off the ground leg button of the controller corresponding to the ground leg (i.e., the other of the left controller 91a and the right controller 91b) and turns on the free leg button. In other words, the operator switches between the free leg and the ground leg.

[0221] Next, the operator moves the foot 72f of the new free leg to a new ground contact position. That is, the operator alternately moves the left leg 71a and the right leg 71b forward relative to the body 61, causing the robot 6 to move forward (walk).

[0222] The operation control device 81b applies a force corresponding to the tip reaction force Fd of the free leg to the gripping part corresponding to the free leg. Specifically, the operation control device 81b controls the motor 86 to generate a joint torque Ts so that the operation position Pm and the operation posture Qm change according to the tip reaction force Fd.

[0223] In addition, the operation control device 81b moves the gripping part corresponding to the grounded leg in accordance with the movement of the foot 72f of the grounded leg. Specifically, the operation control device 81b causes the motor 86 to generate an auxiliary torque Th so that the operation position Pm and the operation posture Qm change according to the leg tip position Pb and leg tip posture Qb of the grounded leg.

[0224] (Specific operation - robot control device) The specific operation of the robot control device 31b will be described. The CPU (hereinafter simply referred to as "CPU") of the robot control device 31b executes a "robot control processing routine" shown in the flowchart of Fig. 25 every time a control period Δt elapses.

[0225] 25, the CPU starts the process from step 2500 and proceeds to step 2505 to determine whether or not a free leg and a grounded leg are present. Specifically, the CPU determines whether or not the free leg button of one of the left controller 91a and the right controller 91b is in the ON state and the grounded leg button of the other is in the ON state, based on the operation information received from the operation control device 81b during the period from the end of the last execution of this routine to the present time.

[0226] If there is a free leg and a grounded leg, the CPU determines "Yes" in step 2505 and sequentially executes the processes of steps 2510 to 2555. Next, the CPU proceeds to step 2595 and ends the process of this routine.

[0227] Step 2510: The CPU acquires the desired leg tip position Pv and desired leg tip posture Qv of the free leg. The desired leg tip position Pv(xv, yv, zv) is the desired value of the leg tip position Pb. The desired leg tip posture Qv(φv, ψv, θv) is the desired value of the leg tip posture Qb. Specifically, the CPU acquires the desired leg tip position Pv based on the operated position Pm by performing the same process as in step 1315 in Figure 13.

[0228] Similarly, the CPU obtains a desired leg tip posture Qv based on the manipulated posture Qm. For example, the CPU obtains a desired leg tip posture φv, which is the rotation angle of the desired leg tip posture Qv in the x-axis direction, by multiplying the manipulated posture φb, which is the rotation angle of the manipulated posture Qm in the x-axis direction, by a predetermined proportional coefficient, and then adding a predetermined constant to the obtained value.

[0229] Step 2515: The CPU acquires a target movement amount ΔPv and a target posture change amount ΔQv of the free leg. The target movement amount ΔPv is a target value for the amount of change in the leg tip position Pb during the period from the current time until the control period Δt has elapsed. The target posture change amount ΔQv is a target value for the amount of change in the target leg tip posture Qv during the period from the current time until the control period Δt has elapsed.

[0230] Specifically, the CPU acquires the desired movement amount ΔPv through feedback processing (PD control) by executing the same processing as step 1320 in Figure 13. Similarly, the CPU acquires the desired posture change amount ΔQv through feedback processing. That is, the CPU acquires it through PD control based on the leg tip posture Qb and the desired leg tip posture Qv, as well as the leg tip posture Qb and the desired leg tip posture Qv stored the last time this routine was executed (i.e., acquired the control cycle Δt earlier).

[0231] Step 2520: The CPU controls the free leg based on the target movement amount ΔPv and the target posture change amount ΔQv. That is, the CPU controls the motor 73 of the free leg so that the change amounts of the leg tip position Pb and the leg tip posture Qb at the point in time when the control period Δt has elapsed from the present time are equal to the target movement amount ΔPv and the target posture change amount ΔQv.

[0232] Step 2525: The CPU transmits the reaction force Fd of the tip of the free leg, acquired based on the detected reaction force Fq, to ​​the operation control device 81b as reaction force information. Step 2530: The CPU acquires a target ZMP. Specifically, the CPU acquires a target position of the ZMP (zero moment point) of the robot 6 using a well-known method based on the leg tip positions Pb and leg tip orientations Qb of the left leg 71 a and the right leg 71 b, the trunk movement value M (Ax, Ay, Az, ωx, ωy, ωz) detected by the IMU 33, and the like.

[0233] Step 2535: The CPU acquires a desired leg tip position Pv and a desired leg tip orientation Qv of the grounded leg based on the desired ZMP. Specifically, the CPU acquires the desired leg tip position Pv and the desired leg tip orientation Qv so that when the foot 72f of the free leg moves forward relative to the trunk 61, the foot 72f of the grounded leg moves backward relative to the trunk 61 and the desired ZMP is included in the support polygon in top view. The support polygon in this case is the lower surface (ground surface) of the foot 72f of the grounded leg.

[0234] Step 2540: The CPU executes the same process as in step 2515 to obtain the desired movement amount ΔPv and the desired posture change amount ΔQv of the ground-contact leg. Step 2545: The CPU executes the same process as in step 2520 to control the ground-contacting leg based on the desired movement amount ΔPv and the desired attitude change amount ΔQv. Step 2550: The CPU transmits the leg tip position Pb and leg tip posture Qb of the leg on the ground to the operation control device 81b as corrected position information.

[0235] If the determination condition in step 2505 is not met (that is, if there is no free leg or grounded leg), the CPU determines “No” in step 2505 and proceeds directly to step 2595 .

[0236] (Specific operation-control device) Next, a specific operation of the operation control device 81b will be described. The CPU (hereinafter also simply referred to as "CPU") of the operation control device 81b executes an "operator control processing routine" shown by the flowchart in Fig. 26 instead of the routine in Fig. 16 every time a control period Δt elapses.

[0237] At the appropriate timing, the CPU starts processing from step 2600 in FIG. 26 and proceeds to step 2605, where it determines whether or not one of the free leg buttons of the controllers (i.e., the left controller 91a and the right controller 91b) (only) is in the on state and the other of the grounded leg buttons (only) is in the on state.

[0238] If one of the free leg buttons of the controller is in the ON state and the other grounded leg button is in the ON state, the CPU determines "Yes" in step 2605 and sequentially executes the processing of steps 2610 to 2630. Next, the CPU proceeds to step 2695 and ends the processing of this routine.

[0239] Step 2610: The CPU acquires the joint torque Ts on the swing leg side based on the reaction force information received from the robot control device 31b during the period from the end of the processing of this routine executed last time to the present time. That is, the CPU acquires the joint torque Ts of the controller (swing leg controller) whose swing leg button is in the ON state by executing the same processes as steps 1630 to 1650 in Fig. 16 based on the tip-end reaction force Fd of the swing leg included in the reaction force information. Specifically, the CPU acquires the joint torque Ts so that a force that changes the operating position Pm and operating attitude Qm corresponding to the tip-end reaction force Fd (6 axes) acting on the swing leg so as to change the leg tip position Pb and leg tip attitude Qb is generated in the grip part of the swing leg controller.

[0240] Step 2615: The CPU controls the operating device on the side of the swaying leg based on the joint torque Ts. Specifically, the CPU executes the same process as in step 1655 in Fig. 16 to control the motor 86 (motor 86a to motor 86f) of the swaying leg operating device to generate torque equal to the joint torque Ts.

[0241] Step 2620: The CPU acquires the assist torque Th for the grounded leg based on the corrected position information last received from the robot control device 31b. That is, by executing the same process as step 1910 in Fig. 19, the CPU acquires the assist torque Th so that the operation position Pm and operation posture Qm of the controller whose grounded leg button is in the on state (grounded leg controller) become values ​​corresponding to the foot tip position Pb and foot tip posture Qb of the grounded leg.

[0242] Step 2625: The CPU controls the controller on the ground leg side based on the assist torque Th. Specifically, the CPU executes the same process as in step 2615 to control the motors 86 (motors 86a to 86f) of the ground leg controller to generate torque equal to the assist torque Th.

[0243] Step 2630: The CPU transmits the button operation states, operation position Pm, and operation posture Qm of the left-side operating device 91a and the right-side operating device 91b as operation information to the robot control device 31b (by executing the same process as in step 1660 in FIG. 16).

[0244] If the judgment condition of step 2605 is not met (i.e., if there is no controller with the free leg button (only) in the on state and no controller with the grounded leg button (only) in the on state), the CPU judges "No" in step 2605 and proceeds directly to step 2630.

[0245] As described above, according to the first embodiment, the leg tip positions Ps of the left front leg 41 and the right front leg 44, which are the operating legs, can be intuitively and easily controlled by operating the links 84f (gripping portions, operating devices) of the left controller 83a and the right controller 83b. In addition, an operating reaction force Fm corresponding to the tip reaction force Fe acting on the tip of the operating leg is generated in the gripping portions (links 84f) of the left controller 83a and the right controller 83b, so the operator can recognize the state of the ground with which the tip of the operating leg is in contact and of objects other than the ground (for example, obstacles).

[0246] Furthermore, since the ground contact position of the follower leg is determined based on the ground contact position of the control leg, the operator can make the robot 2 walk by determining the ground contact position of only the control leg. In addition, the operator can grasp the three-dimensional shape of the front area of ​​the robot 2 (specifically, the trunk 3) from the left and right front images displayed on the HMD 82.

[0247] In addition, according to the second embodiment, the operator can make the robot 2a walk by operating one controller 83c. Furthermore, the operator's operation of the controller 83c is assisted by an auxiliary torque Th (operation auxiliary force) generated in the link 84f of the controller 83c.

[0248] Additionally, according to the third embodiment, a two-legged walking robot (robot 6), which is different from the six-legged walking robots (robot 2 and robot 2a), can be made to walk by operating the controllers (links 84f of the left controller 91a and right controller 91b). Furthermore, the operator can control the leg tip position Pb and leg tip orientation Qb (φb, ψb, θb) of the tip of the operating leg (foot 72f) by operating the controllers. At this time, a joint torque Ts is generated in the controller according to the tip reaction force Fd (six axes) acting on the foot 72f.

[0249] Although the present invention has been described with reference to the above structure, it will be apparent to those skilled in the art that many alternatives, modifications, and variations are possible without departing from the scope of the present invention. Therefore, the present invention includes all alternatives, modifications, and variations that do not depart from the spirit and scope of the appended claims. For example, the present invention is not limited to the specific structure described above, and can be modified as follows:

[0250] The robot 2 in the above embodiment is a six-legged walking robot. Alternatively, the robot 2 may be equipped with legs other than the left front leg 41 to the right hind leg 46. That is, the robot 2 may be an eight-legged walking robot, a ten-legged walking robot, or the like. Similarly, the robot 2a may be a four-legged walking robot. For example, if the robot 2 is an eight-legged walking robot, the left front leg and the right front leg may be controlled legs, while the target ground contact positions of the following legs (i.e., the last legs, the left hind leg and the right hind leg, and the four middle legs (other than the controlled leg and the last leg)) may be obtained by a ground contact point tracking method, and the fulfillment of the swing leg conditions of the last leg and the middle leg may be determined by the above-mentioned method.

[0251] The operating device (link 84f) of the operating device 8, 8a, 9 is operated by the operator's hand. Alternatively, the operating device (i.e., the operated member operated by the operator) may be configured to be operated by the operator's foot. In addition, the operating switch (buttons 87a, 87b) may be a pedal operated by the operator's foot.

[0252] In the robots 2 and 2a, similar to the robot 6, the posture (tilt) corresponding to the leg tip posture Qb as well as the leg tip position Ps corresponding to the leg tip position Pb of the operating leg may be controlled by operating the controller. In addition, a joint torque Ts may be acquired so as to change the operating position Pm of the controller and the posture of the controller corresponding to the operating posture Qm according to the reaction force (six axes) acting on the tip of the operating leg.

[0253] When none of the control legs are in the ground-contact leg mode, the robot control device 31 acquires the target center-of-gravity position Gt so that the center of gravity of a support polygon having vertices at the tips of the following legs, which are ground-contact legs, coincides with the center of gravity Gb of the trunk in a top view. Alternatively, the robot control device 31 may use a position different from the center of gravity Gb of the trunk as the target position of the center of gravity of the support polygon. The target position of the center of gravity of the support polygon may be, for example, a predetermined position that is further forward or rearward of the center of gravity Gb of the trunk with respect to the trunk 3.

[0254] The robot control device 31 determines that the center of gravity condition is met when the torso center of gravity Gb is included in a support polygon having vertices at the tips of the grounded legs other than the leg to be controlled, as viewed from above. Alternatively, the robot control device 31 may determine that the center of gravity condition is met when the torso center of gravity Gb is included in the support polygon, as viewed from above, and is away from the sides (i.e., multiple line segments) that make up the support polygon by a predetermined threshold or more (i.e., is inside the support polygon).

[0255] On the other hand, the robot control device 31b acquires the desired ZMP so that it is included in the support polygon (in this case, the underside of the foot 72f of the grounded leg) in a top view. Alternatively, the robot control device 31b may acquire the desired ZMP so that it is included in the support polygon in a top view and is away from the sides that make up the support polygon by a predetermined threshold or more.

[0256] The position Ps of the tip of the follower leg of the robot 2 may be controlled by feedback processing (PD control) in the same manner as the control leg of the robot 2.

[0257] Some of the processes that have been executed by the robot control devices 31, 31a, and 31b may be executed by the operation control devices 81, 81a, and 81b. Similarly, some of the processes that have been executed by the operation control devices 81, 81a, and 81b may be executed by the robot control devices 31, 31a, and 31b. Furthermore, some of the processes that have been executed by the robot control devices 31, 31a, and 31b and the operation control devices 81, 81a, and 81b may be executed by another control device (server) connected so as to enable data communication via a network.

[0258] The robot control devices 31, 31a, 31b and the operation control devices 81, 81a, 81b execute processing based on a common control period Δt. Alternatively, the control periods of the robot control devices 31, 31a, 31b and the operation control devices 81, 81a, 81b may be different from each other.

[0259] If the magnitude |Fm| of the operation reaction force Fm(xf, yf, zf) is greater than the reaction force threshold Fth, the robot control device 31 adjusts the operation reaction force Fm so that the magnitude |Fm| of the operation reaction force Fm becomes equal to the reaction force threshold Fth. Alternatively, if the magnitude of any of the components of the x-axis, y-axis, and z-axis of the operation reaction force Fm (i.e., |xf|, |yf|, and |zf|) is greater than the reaction force threshold Fth, the robot control device 31 may adjust the operation reaction force Fm so that the magnitude of that component becomes equal to the reaction force threshold Fth.

[0260] A position adjacent to and behind the ground contact position of the front adjacent leg has been acquired as the target ground contact position of the following leg of the robot 2. Alternatively, the same position as the ground contact position of the front adjacent leg may be acquired as the target ground contact position of the following leg. In this case, after the front adjacent leg transitions from a ground contact leg to a swing leg, the following leg is controlled so that its tip touches the ground.

[0261] The current sensor 53 was used as the tip reaction force sensor of the robots 2 and 2a. Instead of this, as with the robot 6, a six-axis force sensor (or a three-axis force sensor) may be used as the tip reaction force sensor.

[0262] The stereo cameras 32 and 62 have been used as the forward area sensors. Alternatively, sensors such as LiDAR (light detection and ranging) and millimeter-wave radar (three-dimensional object sensors) may be used as the forward area sensors. In this case, instead of the HMD 82, a single display that displays information about the three-dimensional shape of the ground (for example, the position and size of a target detected by the three-dimensional object sensor) may be used. [Explanation of symbols]

[0263] 1, 1a, 1b...Robot control system 2, 2a...Robot 3...Torso 3a1~3a3…Body position 6. Robot 8, 8a, 9...Operating device 31, 31a, 31b...Robot control device (controller, robot controller) 32...Stereo camera (front area sensor) 34(34a, 34b)...Wireless communication device 41...Left front leg (control leg) 41a~41c...Link 41d...Base 42...Left middle leg (following leg, left following leg) 42a~42c...Link 43...Left hind leg (following leg, left following leg) 43a~43c...Link 44...Right front leg (control leg) 44a~44c...Link 45...Right middle leg (following leg, right following leg) 45a~45c...Link 46...Right hind leg (following leg, right following leg) 46a~46c...Link 51 (51a to 51t)...Motor (leg actuator) 52 (52a to 52t)...Angle sensor (leg position sensor) 53 (53a to 53c, 53j to 53m)...Current sensor (tip reaction force sensor) 61...torso 62...Stereo camera (front area sensor) 62a...Left camera 62b...Right camera 71a...Left leg (operation leg) 71b…Right leg (control leg) 72a~72d...Link 72e…Base 72f…foot 73 (73a to 73f)...Motor (leg actuator) 74 (74a to 74f)...Angle sensor (leg position sensor) 75...Force sensor (tip reaction force sensor) 81, 81a, 81b...Operation control device (controller, operation device controller) 82...HMD (display) 82a...Left display 82b...Right display 83a…Left side controller 83b…Right side controller 83c...Operator 84a~84f...Link 84g…Base 85 (85a to 85f)...Angle sensor (operating position sensor) 86 (86a to 86f)...Motor (operating device actuator) 87a, 87b...Buttons (operation switches) 91a…Left side controller 91b…Right side controller

Claims

1. A robot control system in which a controller controls a robot in response to an operation on an operation device, The robot includes a torso and a plurality of legs movably provided with respect to the trunk; leg actuators that move the plurality of legs; a leg position sensor that detects a tip position of an operating leg that is at least one of the plurality of legs relative to the trunk; a tip reaction force sensor that detects a force acting on the tip of the operating leg as a tip reaction force, The operating device includes at least one operating device movably provided relative to a base portion; an operation position sensor that detects an operation position of the operating device relative to the base; At least one operating switch; an operating device actuator that moves the operating position, The controller executes at least one of a process of switching the control mode of the operating leg from a ground-contacting leg mode in which the tip of the operating leg is in contact with the ground to a swinging leg mode in which the tip is separated from the ground, and a process of switching the control mode from the swinging leg mode to the ground-contacting leg mode, based on an operation state of the operation switch; a leg actuator that controls the tip position of the operating leg in accordance with the operating position of the controller, and controls the controller actuator so that an operation reaction force obtained in accordance with the tip reaction force acts on the controller, at least in the swing leg mode.

2. 2. The robot control system according to claim 1, The controller a robot control system that controls the leg actuators of the legs in the ground-contact leg mode to adjust the attitude of the torso with respect to the ground;

3. 3. The robot control system according to claim 1, The controller A robot control system that controls the operator actuator so that an operation assist force for assisting the operation of the operator acts on the operator.

4. The robot control system according to any one of claims 1 to 3, at least one of the plurality of legs is a follower leg that follows the control leg, The controller a robot control system that, when moving the torso forward relative to the ground, acquires a position that is the same as or near a contact point of the tip of the operating leg as a target position of a contact point of the follower leg with the ground in the swing leg mode, and controls the leg actuators so that the tip position of the follower leg moves in accordance with the target position.

5. 5. The robot control system according to claim 4, The robot the left front leg and the right front leg being the operational legs; at least one left trailing leg, the trailing leg being the left front leg; at least one right trailing leg, the trailing leg being the right front leg; The operating device is a left-side controller that is the controller for the left front leg; a left side operation switch which is the operation switch for the left front leg; a right-side controller that is the controller for the right front leg; a right side operation switch which is the operation switch for the right front leg.

6. The robot control system according to any one of claims 1 to 5, The robot a front area sensor capable of detecting a three-dimensional shape of the ground in a front area of ​​the fuselage; The operating device is having a display, The controller A robot control system that displays information about the three-dimensional shape on the display.

7. 7. The robot control system according to claim 1, The controller When the magnitude of the tip reaction force correlation value correlated with the tip reaction force is greater than a predetermined reaction force threshold, a value equivalent to the tip reaction force correlation value in the operation reaction force is set as the reaction force threshold.

8. The robot control system according to any one of claims 1 to 7, The controller A robot control system including a robot controller on the robot side and an operation device controller on the operation device side, which communicate with each other wirelessly.

Citation Information

Patent Citations

  • Remote control system for bipedal robot

    JP1998291184A

  • Remote controller for biped robot

    JP2002210679A

  • Remote control system and remote control device for bipedal robot

    JP2004074370A

  • Apparatus for controlling robot having super multidegree of freedom

    JP2005066752A

  • Remote operation method, and device for movable body

    JP2014097539A