KR20180004397A - Walking robot and method for controlling balancing the same - Google Patents
Walking robot and method for controlling balancing the same Download PDFInfo
- Publication number
- KR20180004397A KR20180004397A KR1020170181896A KR20170181896A KR20180004397A KR 20180004397 A KR20180004397 A KR 20180004397A KR 1020170181896 A KR1020170181896 A KR 1020170181896A KR 20170181896 A KR20170181896 A KR 20170181896A KR 20180004397 A KR20180004397 A KR 20180004397A
- Authority
- KR
- South Korea
- Prior art keywords
- gravity
- robot
- center
- calculated
- torque
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0009—Constructional details, e.g. manipulator supports, bases
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/10—Programme-controlled manipulators characterised by positioning means for manipulator elements
- B25J9/104—Programme-controlled manipulators characterised by positioning means for manipulator elements with cables, chains or ribbons
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/162—Mobile manipulator, movable base with manipulator arm mounted on it
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1633—Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1638—Programme controls characterised by the control loop compensation for arm bending/inertia, pay load weight/inertia
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1641—Programme controls characterised by the control loop compensation for backlash, friction, compliance, elasticity in the joints
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
- B62D57/032—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Transportation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Manipulator (AREA)
Abstract
Description
토크 서보로 각 관절이 동작하는 보행 로봇의 안정적인 자세 제어를 위한 보행 로봇 및 그 자세 제어 방법에 관한 것이다.The present invention relates to a walking robot for stable posture control of a walking robot in which each joint is operated by a torque servo, and a posture control method thereof.
인간과 유사한 관절 체계를 가지고 인간의 작업 및 생활 공간에서 인간과 공존하며 보행하는 로봇의 연구 개발이 활발하게 진행되고 있다. 보행 로봇은 이족 또는 3족 이상의 복수의 다리를 가지는 다족 보행 로봇으로 구성되며, 안정적인 보행을 위해 각 관절에 위치한 전기 모터, 유압 모터 등의 액츄에이터를 구동해야 한다. 액츄에이터의 구동 방식은 각 관절의 지령(command) 각도, 즉 지령(command) 위치를 주고 그것을 추종 제어하는 위치 기반의 ZMP(Zero Moment Point) 제어 방식과, 각 관절의 지령(command) 토크를 주고 그것을 추종 제어하는 토크 기반의 FSM(Finite State Machine) 제어 방식을 들 수 있다.Research and development of robots that coexist with human beings in a human work and living space with a human-like joint system and are walking are actively proceeding. The walking robot is composed of a multi-legged walking robot having two or more legs or three or more legs, and actuators such as an electric motor and a hydraulic motor located at each joint must be driven for stable walking. The driving method of the actuator is based on a position-based ZMP (zero moment point) control method in which a command angle of each joint, that is, a command position is given and controlled, and a command torque of each joint is given And a torque-based finite state machine (FSM) control method for controlling tracking.
ZMP 제어 방식은 ZMP 구속 조건, 즉 ZMP가 지지하는 다리로 이루어진 지지다각형 내의 안전 영역(한발로 지지하고 있을 경우에는 그 발의 영역, 양발로 지지하고 있을 경우에는 양발의 영역을 포함하는 convex polygon 내에서 안전을 고려하여 작게 설정한 영역을 의미한다)에 존재해야 한다는 조건을 만족하도록 보행 방향, 보행 폭, 보행 속도 등을 미리 설정하고, 이 설정에 대응하는 각 다리의 보행 패턴을 생성하며, 그 보행 패턴에 따라 각 다리의 보행 궤적을 계산한다. 또한 계산된 보행 궤적의 역기구학(Inverse Kinematics) 계산을 통해 각 다리의 관절의 각도를 계산하고, 각 관절의 현재 각도와 목표 각도에 기초하여 각 관절의 목표 제어 값을 계산한다. 또한 매 제어시간마다 각각의 다리가 계산된 보행 궤적을 추종하도록 하는 서보 제어(servo control)를 통해 구현된다. 즉, 보행 시 각 다리의 위치가 보행 패턴에 따른 보행 궤적을 정확히 추종하는지 검출하고, 각 다리가 보행 궤적을 이탈하면 모터의 토크를 조절하여 각 다리가 보행 궤적을 정확히 추종하도록 제어하여 보행하는 방식이다.The ZMP control method is based on a ZMP constraint, that is, a safety zone in a supporting polygon composed of bridges supported by the ZMP (within the convex polygon including the area of the foot when supporting with one foot, The walking width, the walking speed, and the like are preliminarily set so as to satisfy the condition that the vehicle should be present in a predetermined area in consideration of safety, and a walking pattern of each leg corresponding to this setting is generated, The walking trajectory of each leg is calculated according to the pattern. In addition, the angle of each joint is computed by inverse kinematics calculation of the calculated gait trajectory, and the target control value of each joint is calculated based on the current angle and the target angle of each joint. And is implemented through servo control that allows each leg to follow the calculated gait trajectory at every control time. That is, it is possible to detect whether the position of each leg exactly follows the walking trace according to the walking pattern, and control the torque of the motor when each leg departs from the walking trajectory, to be.
그러나, ZMP 제어 방식은 위치 기반의 제어 방법이기 때문에 정확한 위치 제어가 가능한 반면, ZMP를 제어하기 위해 각 관절의 정확한 각도 제어를 수행해야 하므로 높은 서보 게인을 필요로 한다. 이로 인해 높은 전류를 필요로 하기 때문에 에너지 효율이 낮고 관절의 강성이 커서 주위 환경에 큰 충격을 줄 수 있다. 또한 각 관절의 각도를 계산하기 위해선 기구학적 특이점(Kinematic Singularity)을 피해야 하므로 보행 중 무릎을 항상 굽힌 자세를 유지하게 되어 인간과 다른 부자연스러운 보행을 하게 된다.However, since the ZMP control method is a position-based control method, precise position control can be performed, whereas accurate angle control of each joint is required to control the ZMP, so a high servo gain is required. Because of this, high current is required, which results in low energy efficiency and high rigidity of the joints, which can greatly affect the environment. In order to calculate the angle of each joint, the kinematic singularity should be avoided, so that the knee is always bent while walking, resulting in unnatural walking.
외력의 작용이나 지면의 경사 변화에도 직립 자세와 밸런싱 유지가 가능한 상체 각도를 안정적으로 유지하는 보행 로봇 및 그 자세 제어 방법을 제안하고자 한다.We propose a walking robot and its attitude control method which stably maintain the upper body angle which is able to maintain upright posture and balancing even with the action of external force or the change of slope of the ground.
이를 위해 본 발명의 일 측면은 상체와, 상체의 하측에 연결된 펠비스 링크와, 펠비스 링크의 하측에 연결된 복수의 힙 관절부와, 복수의 힙 관절부에 각각 연결된 복수의 다리와, 복수의 다리에 각각 마련된 발을 구비한 보행 로봇의 자세 제어 방법에 있어서, 로봇의 현재 무게중심의 위치를 계산하고; 로봇의 목표 무게중심의 위치를 설정하고; 설정된 목표 무게중심의 위치와 계산된 현재 무게중심의 위치 간의 에러를 계산하고; 계산된 무게중심 에러를 이용하여 로봇의 균형을 잡기 위해 보상해야 하는 힘을 계산하고; 계산된 보상 힘을 상기 복수의 다리에 분배하고; 분배된 보상 힘에 따라 각 다리의 관절 토크를 계산하고; 계산된 관절 토크를 이용하여 토크 서보 제어를 수행하되, 로봇의 균형을 잡기 위해 보상해야 하는 힘은, 계산된 현재 무게중심의 위치와 설정된 목표 무게중심의 위치 사이에 가상의 스프링이 존재할 때 가상의 스프링의 상수와 계산된 무게중심 에러의 곱으로 나타낸다.To this end, one aspect of the present invention provides a hip joint comprising: an upper body; a pelvis link connected to the lower side of the upper body; a plurality of hip joints connected to the lower side of the pelvis link; a plurality of legs respectively connected to the plurality of hip joints; A method of controlling a posture of a walking robot, the method comprising: calculating a position of a current center of gravity of the robot; Setting a position of the target center of gravity of the robot; Calculate an error between the position of the set target center of gravity and the calculated position of the center of gravity; Calculating a force to be compensated for balancing the robot using the calculated center-of-gravity error; Distributing the calculated compensating force to the plurality of legs; Calculating a joint torque of each leg according to the distributed compensation force; The torque servo control is performed using the calculated joint torque. The force that must be compensated for balancing the robot is calculated as follows. When there is a virtual spring between the calculated position of the current center of gravity and the center of the set target center of gravity, It is expressed as the product of the spring constant and the calculated center-of-gravity error.
또한 목표 무게중심의 위치는, 지면과 접촉된 복수의 발 사이의 중점에서 지면과 수직인 위치로 설정한다.Further, the position of the center of gravity of the target is set at a position perpendicular to the ground at a midpoint between a plurality of feet brought into contact with the ground.
또한 목표 무게중심의 위치는, 지면과 접촉된 복수의 발 내의 임의의 점에서 지면과 수직인 위치로 설정한다.Further, the position of the target center of gravity is set at a position perpendicular to the ground at any point in a plurality of feet contacting the ground.
또한 계산된 보상 힘을 복수의 다리에 분배하는 것은, 로봇의 무게중심이 지면에 투영된 점과 복수의 발 간의 거리 비율을 계산하고; 계산된 거리 비율을 이용하여 로봇의 무게중심이 지면에 투영된 점으로부터 가까운 다리가 더 큰 값을 갖는다.And distributing the calculated compensating force to the plurality of legs is calculated by calculating a ratio of a distance between a point where the center of gravity of the robot is projected on the ground and a plurality of feet; Using the calculated distance ratio, the bridge near the point where the center of gravity of the robot is projected on the ground has a larger value.
또한 펠비스 링크의 실제 회전 각도를 측정하고; 측정된 실제 회전 각도와 목표 회전 각도와의 에러를 계산하고; 계산된 회전 각도 에러를 이용하여 로봇의 균형을 잡기 위해 보상해야 하는 모멘트를 계산하는 것을 더 포함하고, 관절 토크를 계산하는 것은, 계산된 보상 모멘트와 계산된 보상 힘을 발생시키기 위한 관절 토크를 계산한다.Measuring the actual rotation angle of the flywheel link; Calculating an error between the measured actual rotation angle and the target rotation angle; And calculating a moment to be compensated for balancing the robot using the calculated rotational angle error, wherein calculating the joint torque calculates a joint torque to produce the calculated compensation moment and the calculated compensating force do.
또한 펠비스 링크의 실제 회전 각도를 측정하는 것은, IMU를 이용하여 몸통의 기울어짐에 대한 요우 방향(Z축 주위의 회전), 피치 방향(Y축 주위의 회전), 롤 방향(X축 주위의 회전)의 회전 각도를 측정한다.The actual rotational angle of the flywheel link can be measured by measuring the yaw direction (rotation around the Z axis), the pitch direction (rotation about the Y axis), the roll direction (about the X axis) Rotation) is measured.
또한 각 다리에 대한 중력 보상 토크를 계산하는 것을 더 포함하고, 관절 토크를 계산하는 것은, 중력 보상 토크를 이용하여 계산된 각 다리의 관절 토크를 보상한다.The method further includes calculating a gravity compensation torque for each leg, wherein calculating the joint torque compensates for the joint torque of each leg calculated using the gravity compensation torque.
또한 중력 보상 토크는 모든 족부 관절의 각도 q와 각 다리에 속한 모든 링크의 질량 및 무게중심의 위치와 상체의 총질량 및 무게중심 위치로부터 계산한다.Also, the gravity compensation torque is calculated from the angle q of all foot joints, the position of the mass and center of gravity of all links belonging to each leg, and the total mass and center of gravity of the upper body.
또한 각 다리에 대한 중력 보상 토크를 계산하는 것은, 복수의 다리에 분배된 힘에 따라 상체의 무게를 고려하여 중력 보상을 실시한다.In order to calculate the gravity compensation torque for each leg, gravity compensation is performed in consideration of the weight of the upper body according to the force distributed to the plurality of legs.
또한 각 다리에 대한 중력 보상 토크를 계산하는 것은, 복수의 다리 상태에 따라 반대쪽 다리의 무게를 고려하여 중력 보상을 실시한다.In order to calculate the gravity compensation torque for each leg, gravity compensation is performed in consideration of the weight of the opposite leg according to a plurality of leg conditions.
또한 복수의 다리 상태는 복수의 다리에 각각 마련된 발의 지면 접촉 여부에 따라 상체를 지지하는 상태 또는 스윙하는 상태로 분리한다.The plurality of legs are separated into a state of supporting the upper body or a state of swinging according to whether or not the feet provided on the respective legs are in contact with the ground.
또한 각 다리에 대한 댐핑 토크를 계산하는 것을 더 포함하고, 관절 토크를 계산하는 것은, 댐핑 토크를 이용하여 계산된 각 다리의 관절 토크를 보상한다.The method further includes calculating damping torque for each leg, and calculating the joint torque compensates for the joint torque of each leg calculated using the damping torque.
본 발명의 일 측면은 상체와, 상체의 하측에 연결된 펠비스 링크와, 펠비스 링크의 하측에 연결된 복수의 힙 관절부와, 복수의 힙 관절부에 각각 연결된 복수의 다리와, 복수의 다리에 각각 마련된 발을 구비한 보행 로봇에 있어서, 로봇의 현재 무게중심의 위치를 계산하는 계산부; 로봇의 목표 무게중심의 위치를 설정하는 설정부; 설정된 목표 무게중심의 위치와 계산된 현재 무게중심의 위치 간의 에러를 계산하고, 계산된 무게중심 에러를 이용하여 로봇의 균형을 잡기 위해 보상해야 하는 힘을 계산하고, 계산된 보상 힘을 복수의 다리에 분배하고, 분배된 보상 힘에 따라 각 다리의 관절 토크를 계산하는 자세 제어부; 및 계산된 관절 토크를 각 다리의 관절에 전달하여 토크 서보 제어를 수행하는 서보 제어부를 포함하되, 로봇의 균형을 잡기 위해 보상해야 하는 힘은, 계산된 현재 무게중심의 위치와 설정된 목표 무게중심의 위치 사이에 가상의 스프링이 존재할 때 가상의 스프링의 상수와 계산된 무게중심 에러의 곱으로 나타낸다.According to an aspect of the present invention, there is provided a hip joint comprising: an upper body; a pelvis link connected to the lower side of the upper body; a plurality of hip joints connected to the lower side of the Felis link; a plurality of legs respectively connected to the plurality of hip joints; A walking robot comprising a foot, comprising: a calculation unit for calculating a position of a current center of gravity of the robot; A setting unit for setting a position of the center of gravity of the target of the robot; Calculating an error between the position of the set target center of gravity and the calculated position of the current center of gravity, calculating a force to be compensated for balancing the robot using the calculated center-of-gravity error, And calculates a joint torque of each leg according to the distributed compensation force; And a servo control unit for performing torque servo control by transmitting the calculated joint torque to the joints of the respective legs. The force to be compensated for balancing the robot is determined by calculating the position of the calculated current center of gravity, When there is a virtual spring between the positions, it is expressed as the product of the virtual spring constant and the calculated center-of-gravity error.
또한 자세 제어부는, 로봇의 무게중심이 지면에 투영된 점과 복수의 발 간의 거리 비율을 계산하고, 계산된 거리 비율을 이용하여 로봇의 무게중심이 지면에 투영된 점으로부터 가까운 다리가 더 큰 값을 가지도록 계산된 보상 힘을 복수의 다리에 분배한다.The posture control unit calculates the ratio of the distance between the point where the center of gravity of the robot is projected on the ground and the plurality of feet by using the calculated distance ratio so that the center of gravity of the robot is closer to the point To the plurality of legs.
또한 펠비스 링크의 실제 회전 각도를 측정하는 IMU를 더 포함하고, 자세 제어부는, 측정된 실제 회전 각도와 목표 회전 각도와의 에러를 계산하고, 계산된 회전 각도 에러를 이용하여 로봇의 균형을 잡기 위해 보상해야 하는 모멘트를 계산한다.And further comprising an IMU for measuring an actual rotation angle of the flywheel, wherein the posture control unit calculates an error between the measured actual rotation angle and the target rotation angle, and balances the robot using the calculated rotation angle error Calculate the moment to be compensated for.
또한 자세 제어부는, 계산된 보상 모멘트와 계산된 보상 힘을 발생시키기 위한 관절 토크를 계산하여 각 다리의 자세를 제어한다.Further, the posture control section calculates the joint moment to generate the calculated compensation force and the joint torque to control the posture of each leg.
또한 자세 제어부는, IMU를 이용하여 몸통의 기울어짐에 의한 펠비스 링크의 롤 방향(roll, X축 주위의 회전), 피치 방향(pitch, Y축 주위의 회전), 요우 방향(yaw, Z축 주위의 회전)의 실제 회전 각도를 측정한다.Also, the posture control unit controls the pitch direction (pitch, rotation around the Y axis), the yaw direction (yaw, Z axis) of the flywheel link due to tilting of the trunk using the IMU, And the actual rotation angle of the rotation around the axis of rotation.
또한 자세 제어부는, 각 다리에 대한 중력 보상 토크를 계산하고, 계산된 중력 보상 토크를 이용하여 각 다리의 관절 토크를 보상한다.Further, the posture control section calculates the gravity compensation torque for each leg, and compensates for the joint torque of each leg using the calculated gravity compensation torque.
또한 자세 제어부는, 각 다리에 대한 댐핑 토크를 계산하고, 계산된 댐핑 토크를 이용하여 각 다리의 관절 토크를 보상한다.Further, the posture control section calculates the damping torque for each leg, and compensates for the joint torque of each leg using the calculated damping torque.
제안된 보행 로봇 및 그 자세 제어 방법에 의하면, 로봇의 무게중심과 힙 관절부의 회전 각도를 이용하여 외부에서 작용하는 어떠한 힘이나 지면의 경사 정도 등을 포함한 외부의 변화에 능동적으로 대응함으로써 직립 자세와 밸런싱 유지가 가능한 상체 각도를 안정적으로 유지할 수 있다.According to the proposed walking robot and its posture control method, by using the center of gravity of the robot and the rotation angle of the hip joint, it is possible to actively cope with external changes including external force or inclination of the ground, It is possible to stably maintain the upper body angle capable of balancing maintenance.
또한, 로봇이 평지와 경사면에 대해 사전 정보가 주어지지 않은 상황에서도 지구 중력 방향에 대해 직립 자세를 유지할 수 있고, 서 있는 면이 서서히 기울어 질 경우에도 능동적으로 발목 관절 각도를 바꾸면서 상체와 다리는 변함없는 자세를 유지하는 것도 가능하다.In addition, the robot can maintain the upright postures in the direction of the gravity of the earth even if no information is given about the flat surface and the slope, and the upper body and the legs change while actively changing the angle of the ankle joint even when the standing surface is gradually inclined It is also possible to maintain the posture without.
또한, 상체와 다리의 자세를 유지할 때 로봇의 무게중심을 발 가운데 둔 자세도 가능하고, 로봇의 무게중심을 한 쪽 발 위로 오게끔 지정하면 한 쪽 발로 치우친 자세를 취하게 되며, 발 앞쪽이나 뒤쪽으로 치우친 자세 역시 마찬가지 방법으로 가능하게 된다. 이 변경은 실시간으로 가능하다.In addition, when maintaining the posture of the upper body and the leg, it is possible to position the center of gravity of the robot in the middle of the foot, and if the center of gravity of the robot is positioned on one side of the foot, Is also possible in the same way. This change is possible in real time.
또한, 로봇의 무게중심의 목표 높이(Z 성분)를 줄일 경우 힙, 무릎, 발목의 관절 토크가 변하고 그 결과 관절 각도가 변하여 상체를 목표 높이로 낮추는 것이 실시간으로 가능하다.Also, when the target height (Z component) of the center of gravity of the robot is reduced, the joint torque of the hip, knee, and ankle changes, and as a result, the angle of the joint changes so that the upper body can be lowered to the target height in real time.
또한, 펠비스 링크의 목표 회전 각도(roll, pitch, yaw)를 모두 0으로 세팅한다면 곧게 선 자세가 되고, 그 외 값으로 세팅하면 임의의 방향으로 숙인 자세가 가능하다. 특히 요우(yaw) 값을 바꿀 경우 몸통(pelvis)이 수직축에 대해 트위스트(twist)된 자세를 만들 수 있다. 이 변경은 실시간으로 가능하다.In addition, if the target rotation angle (roll, pitch, yaw) of the flywheel link is set to all zeros, it becomes a straight line posture, and if it is set to any other value, it is possible to sway in any direction. Particularly when changing the yaw value, the pelvis can be twisted about the vertical axis. This change is possible in real time.
또한, 외력이 주어질 경우, 정의된 스프링 상수에 해당하는 강성(stiffness)을 가지고 버티며, 계속해서 밀면 마치 사람처럼 발의 앞이나 뒤가 들린 상태가 되는데 여전히 밸런싱 기능이 수행된다. 결과적으로 기존 방법보다 더 증가된 힘에 대해서도 넘어지지 않고 서 있는 것이 가능하게 되었다.In addition, when an external force is given, it has stiffness that corresponds to the defined spring constant, and if it is continuously pushed, balancing function is performed even if it is in front of or behind the foot like a person. As a result, it became possible to stand still without increasing the strength of the existing method.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관 구성도이다.
도 2는 도 1에 나타낸 로봇의 주요 관절 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 의한 로봇의 자세 제어 블록도이다.
도 4는 본 발명의 일 실시예에 의한 로봇의 링크 구성을 나타낸 사시도이다.
도 5는 본 발명의 일 실시예에 의한 로봇의 링크 구성을 나타낸 정면도이다.
도 6은 본 발명의 일 실시예에 의한 보행 로봇의 자세 제어 방법을 나타낸 동작 순서도이다.1 is an external view of a robot according to an embodiment of the present invention.
Fig. 2 is a view showing a main joint structure of the robot shown in Fig. 1. Fig.
FIG. 3 is a block diagram of a posture control of a robot according to an embodiment of the present invention.
4 is a perspective view illustrating a link structure of a robot according to an embodiment of the present invention.
5 is a front view showing a link configuration of a robot according to an embodiment of the present invention.
6 is a flowchart illustrating a method of controlling a posture of a walking robot according to an embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관 구성도이고, 도 2는 도 1에 나타낸 로봇의 주요 관절 구조를 나타낸 도면이다.FIG. 1 is an external view of a robot according to an embodiment of the present invention, and FIG. 2 is a view showing a main joint structure of the robot shown in FIG.
도 1 및 도 2에서, 로봇(100)은 인간과 마찬가지로 두 개의 다리(110)에 의해 직립 이동하는 이족 보행 로봇으로, 몸통(102), 머리(104), 팔(106)로 이루어진 상체(101)와, 두 개의 다리(110)로 이루어진 하체(103)를 가진다.1 and 2, a
로봇(100)의 상체(101)는 몸통(102)과, 몸통(102)의 상부에 목(120)을 통해 연결된 머리(104)와, 몸통(102)의 상부 양측에 어깨(114L, 114R)를 통해 연결된 두 개의 팔(106L, 106R)과, 이 두 개의 팔(106L, 106R)의 말단에 각각 연결된 손(108L, 108R)으로 이루어진다.The
로봇(100)의 몸통(102)에는 상체(101)가 회전할 수 있도록 요우 방향의 1 자유도를 가지는 허리 관절부(15)가 설치된다.The
로봇(100)의 하체(103)는 허리 관절부(15)의 하측에 연결된 펠비스 링크(16)와, 펠비스 링크(16)의 하부 양측에 연결된 두 개의 다리(110L, 110R)와, 두 개의 다리(110L, 110R) 말단에 각각 연결된 발(112L, 112R)로 이루어진다. The
참조 부호에서, "R"과 "L"는 각각 로봇(100)의 오른쪽(right)과 왼쪽(left)을 나타내고, COG(Center Of Gravity)는 로봇(100)의 무게 중심을 나타낸다.Reference characters "R" and "L" denote the right and left sides of the
또한, 로봇(100)의 머리(104)에는 주위를 촬영하는 카메라(41)와, 사용자 음성을 입력하는 마이크로폰(42)이 설치된다.A
머리(104)는 목 관절부(280)를 통해 상체(101)의 몸통(102)과 연결된다. 목 관절부(280)는 요우 방향(yaw, Z축 회전)의 회전 관절(281)과, 피치 방향(pitch, Y축 회전)의 회전 관절(282) 및 롤 방향(roll, X축 회전)의 회전 관절(283)을 포함하여 3 자유도를 가진다.The
목 관절부(280)의 각각의 회전 관절(281, 282, 283)에는 머리(104)의 회전을 위한 모터들(예를 들어, 전기 모터, 유압 모터 등의 액츄에이터)이 연결된다.Motors (e.g., electric motors, actuators such as hydraulic motors) for rotating the
로봇(100)의 두 개의 팔(106L, 106R)은 각각 상박 링크(31), 하박 링크(32) 및 손(33)을 가진다.The two
상박 링크(31)는 어깨 관절부(250L, 250R)를 통해 상체(101)에 연결되고, 상박 링크(31)와 하박 링크(32)는 팔꿈치 관절부(260)를 통해 서로 연결되며, 하박 링크(32)와 손(33)은 손목 관절부(270)를 통해 서로 연결된다.The
어깨 관절부(250L, 250R)는 상체(101)의 몸통(102)의 양측에 설치되어 두 개의 팔(106L, 106R)을 상체(101)의 몸통(102)에 연결한다.The
팔꿈치 관절부(260)는 피치 방향의 회전 관절(261)과, 요우 방향의 회전 관절(262)를 포함하여 2 자유도를 가진다.The elbow
손목 관절부(270)는 피치 방향의 회전 관절(271)과, 롤 방향의 회전 관절(272)을 포함하여 2 자유도를 가진다.The wrist
손(33)에는 5개의 손가락(33a)이 설치된다. 각각의 손(33a)에는 모터에 의해 구동되는 다수의 관절(미도시)들이 설치될 수 있다. 손가락(33a)은 팔(106)의 움직임에 연동하여 물건을 파지하거나 특정 방향을 가리키는 것과 같은 다양한 동작을 실행한다.The
그리고, 몸통(102)의 하측에는 두 개의 힙 관절부(210)을 가지는 펠비스(pelvis) 링크(16)가 연결된다. 펠비스 링크(16)는 인간의 골반에 해당하는 부분으로 힙 관절부(210)를 통해 상체(101)의 몸통(102)에 연결된다. 펠비스 링크(16)에는 IMU((Inertial Measurement Unit; 17)가 설치된다. IMU(17)는 중력 방향과 관성계에 대해 펠비스 링크(16)의 상대적 각도를 검출하여 롤 방향(roll, X축 회전), 피치 방향(pitch, Y축 회전), 요우 방향(yaw, Z축 회전)의 자세 정보를 발생시킨다.A
그리고, 로봇(100)의 두 개의 다리(110L, 110R)는 각각 대퇴 링크(21)와 하퇴 링크(22), 발(112L, 112R)을 가진다. The two
대퇴 링크(21)는 인간의 허벅다리(허벅지)에 해당하는 부분으로 힙 관절부(210)를 통해 펠비스 링크(16)에 연결되고, 대퇴 링크(21)와 하퇴 링크(22)는 무릎 관절부(220)를 통해 서로 연결되며, 하퇴 링크(22)와 발(112L, 112R)은 발목 관절부(230)를 통해 서로 연결된다.The
힙 관절부(210)는 요우 방향(yaw, Z축 주위의 회전)의 회전 관절(211; 힙 요우 조인트)과, 피치 방향(pitch, Y축 주위의 회전)의 회전 관절(212; 힙 피치 조인트)과, 롤 방향(roll, X축 주위의 회전)의 회전 관절(213; 힙 롤 조인트)을 포함하여 3 자유도를 가진다.The hip
무릎 관절부(220)는 피치 방향의 회전 관절(221)을 포함하여 1 자유도를 가진다.The knee joint 220 has a degree of freedom including a rotation joint 221 in the pitch direction.
발목 관절부(230)는 피치 방향의 회전 관절(231)과, 롤 방향의 회전 관절(232)을 포함하여 2 자유도를 가진다.The ankle
두 개의 다리(110L, 110R) 각각에는 힙 관절부(210), 무릎 관절부(220), 발목 관절부(230)에 대해 6개의 회전 관절이 마련되므로, 두 개의 다리(110L, 110R) 전체에 대해서는 12개의 회전 관절이 마련된다.Since each of the two
한편, 두 개의 다리(110L, 110R)에서 발(112L, 112R)과 발목 관절부(230)의 사이에는 다축 F/T센서(Multi-Axis Force and Torque Sensor; 24)가 각각 설치된다. F/T 센서(24)는 발(112L, 112R)로부터 전달되는 힘의 3방향 성분(Fx, Fy, Fz)과 모멘트의 3방향 성분(Mx, My, Mz)을 측정함으로써 발(112L, 112R)의 착지 여부 및 발(112L, 112R)에 가해지는 하중을 검출한다.On the other hand, a multi-axis F / T sensor (Multi-Axis Force and Torque Sensor) 24 is installed between the
도면에 도시되어 있지 않지만, 로봇(100)에는 각 회전 관절을 구동하는 모터 등과 같은 액츄에이터가 설치된다. 로봇(100)의 동작 전반을 제어하는 자세 제어부는 이 모터를 적절히 제어함으로써 로봇(100)의 다양한 동작을 구현할 수 있다.Although not shown in the drawing, the
로봇(100)은 제어 동작(Control Action)의 실행을 위해 각 제어 동작(Control Action)에 대응하여 각 관절의 토크 지령을 계산하고, 계산된 토크 지령을 각 관절에 설치된 모터 등의 액츄에이터에 출력하여 액츄에이터를 구동시킨다.The
본 발명의 일 실시예에서는 로봇(100)의 무게중심 위치와 펠비스 링크(16)의 관성계에서 본 각도를 이용하여 로봇(100)이 실시간으로 균형을 잡기 위해 보상해야 하는 힘과 모멘트를 계산한다. 그리고 계산된 보상 힘과 보상 모멘트를 두 개의 다리(110L, 110R)에 분배하여 각 다리(110L, 110R)의 자세를 제어하기 위한 관절 토크를 계산하고, 계산된 관절 토크를 이용하여 두 개의 다리(110L, 110R)에 대한 토크 서보 제어를 수행한다. 이에 따라 관절 토크는 상체(101) 각도를 안정적으로 유지하게 되므로 로봇(100)의 직립 자세와 밸런싱 유지가 가능하다. 또한, 각 다리(110L, 110R)에 대하여 중력에 의한 토크를 보상하는 부분을 추가하여 중력으로 인해 무게중심이 아래로 처지지 않게 한다. 또한, IMU(17)로부터 로봇(100)과 중력 방향의 상대적 기울어짐을 알 수 있기 때문에 지면이 어떤 방향으로 기울어져 있더라도 능동적으로 발목 관절부(230)의 토크를 제어하면서 상체(101)와 다리(110L, 110R)는 변함없는 자세를 유지할 수 있도록 한다. 이를 도 3을 참조하여 구체적으로 설명한다.In an embodiment of the present invention, the force and moment to be compensated for real-time balancing of the
도 3은 본 발명의 일 실시예에 의한 로봇의 자세 제어 블록도이고, 도 4는 본 발명의 일 실시예에 의한 로봇의 링크 구성을 나타낸 사시도이며, 도 5는 본 발명의 일 실시예에 의한 로봇의 링크 구성을 나타낸 정면도이다.4 is a perspective view illustrating a link structure of a robot according to an embodiment of the present invention, and FIG. 5 is a perspective view of a robot according to an embodiment of the present invention. Fig. 2 is a front view showing a link configuration of the robot.
도 3에서, 본 발명의 일 실시예에 의한 로봇(100)의 자세 제어 시스템은 센서부(300), 설정부(310), 자세 제어부(320), 서보 제어부(330) 및 두 다리(110L, 110R)의 힙 관절부(210), 무릎 관절부(220), 발목 관절부(230)를 포함한다.3, the posture control system of the
센서부(300)는 펠비스 링크(16)의 롤 방향(roll, X축 회전), 피치 방향(pitch, Y축 회전), 요우 방향(yaw, Z축 회전)의 기울기 및 회전 각도를 측정하는 IMU(17)와, 로봇(100)의 발(112)과 발목 관절부(230)의 사이에 설치되어 발(112)의 지면 접촉 여부를 검출하는 F/T 센서(24)를 포함한다.The
여기서, 상체(101)의 자세를 검출하는 센서로는 IMU(17) 외에도 Tilting Detection, Gyro Sensor 등을 사용할 수 있으며, 발(112)의 지면 접촉 여부를 검출하는 센서로는 F/T 센서(24) 외에도 접촉 센서 또는 이와 상응하는 센서를 사용할 수 있다.Tilt detection, gyro sensor, etc. may be used in addition to the
설정부(310)는 로봇(100)이 직립 자세를 유지하면서 실시간으로 균형을 잡을 수 있도록 로봇(100)이 지면과 접촉된 두 발(110L, 110R) 사이의 중점에서 지면과 수직인 위치로 로봇(100)의 목표 무게중심(COG) C´(x, y, z)의 위치를 설정하는 것으로, 도 4에 도시한 바와 같이, 로봇(100)의 균형을 잡기 위해 로봇(100)의 상태(State)에 부합하는 목표 무게중심(COG) C´(x, y, z)의 위치를 설정한다.The
자세 제어부(320)는 설정부(310)로부터 설정된 로봇(100)의 목표 무게중심(COG)과 센서부(300)로부터 검출된 센서 정보를 바탕으로 로봇(100)의 자세를 제어하는 PD(Proportional-Derivative) 또는 PID(Proportional-Integral-Derivative) Controller로, 무게중심 계산부(321), 무게중심 에러 계산부(322), 보상 힘 계산부(323), 다리 분배부(324), 회전 각도 에러 계산부(325), 보상 모멘트 계산부(326), 제1 및 제2토크 계산부(327, 328) 및 토크 보상부(329)를 포함한다.The
무게중심 계산부(321)는 IMU(17)와 순기구학 계산(Forward Kinematics)에 의하여 로봇(100)의 현재 무게중심(COG) C(x, y, z)의 위치를 계산한다. 로봇(100)의 현재 무게중심(COG) C(x, y, z)의 위치는 도 4에 도시한 바와 같이, 몸통(102)에 마련되며, 이때 현재 무게중심(COG) C(x, y, z)의 방향은 중력(Gravity)의 방향에 고정된 관성계의 방향(Orientation)에 따른다.The center of
무게중심 에러 계산부(322)는 계산된 현재 무게중심(COG) C(x, y, z)의 위치와 설정된 목표 무게중심(COG) C´(x, y, z)의 위치 간의 에러 e를 아래의 [수학식 1]과 같이, 계산한다.The center-of-
[수학식 1][Equation 1]
e = C´ - Ce = C ' -C
보상 힘 계산부(323)는 계산된 현재 무게중심(COG) C(x, y, z)의 위치와 설정된 목표 무게중심(COG) C´(x, y, z)의 위치 사이에 가상의 스프링(105; 상수 kp)이 있다고 할 때, 무게중심 에러 계산부(322)에서 계산된 무게중심 에러 e를 이용하여 로봇(100)의 균형을 잡기 위해 보상해야 하는 힘 f(fx, fy, fz)을 아래의 [수학식 2]와 같이, 계산한다.The compensation
[수학식 2]&Quot; (2) "
다리 분배부(324)는 무게중심 에러 e를 이용하여 계산된 보상 힘 f(fx, fy, fz)을 아래의 [수학식 3]과 같이, 두 다리(110L, 110R)에 분배한다.
[수학식 3]&Quot; (3) "
, ,
[수학식 3]에서, wL, wR은 도 5에 도시한 바와 같이, 로봇(100)의 무게중심(COG)이 지면에 투영된 점과 두 발(112L, 112R) 간의 거리 비율 dL, dR을 이용하여 로봇(100)의 무게중심(COG)이 지면에 투영된 점으로부터 가까운 다리(예를 들어, 110L)가 아래의 [수학식 4]와 같이, 더 큰 값을 갖도록 한다.In Equation (3), w L , w R is using, the center of gravity (COG) of the
[수학식 4]&Quot; (4) "
, ,
회전 각도 에러 계산부(325)는 IMU(17)로부터 측정된 펠비스 링크(16)의 롤 방향(roll, X축 회전), 피치 방향(pitch, Y축 회전), 요우 방향(yaw, Z축 회전)의 회전 각도와 목표 회전 각도와의 에러 e1를 계산한다.The rotation
보상 모멘트 계산부(326)는 펠비스 링크(16)의 롤 방향(roll, X축 회전), 피치 방향(pitch, Y축 회전), 요우 방향(yaw, Z축 회전)의 세 축에 대해 가상의 스프링(상수 k1)이 있다고 가정했을 때, 회전 각도 에러 계산부(325)에서 계산된 회전 각도 에러 e1를 이용하여 로봇(100)의 균형을 잡기 위해 보상해야 하는 모멘트 M(Mx, My, Mz)을 아래의 [수학식 5]와 같이, 계산한다.The compensation
[수학식 5]&Quot; (5) "
제1 및 제2토크 계산부(327, 328)는 보상 모멘트 계산부(326)에서 계산된 보상 모멘트 M과 보상 힘 계산부(323)에서 계산된 보상 힘 f를 발생시키기 위한 관절 토크 τ를 두 다리(110L, 110R)에 대하여 아래의 [수학식 6]과 같이, 각각 계산한다.The first and second
[수학식 6]&Quot; (6) "
[수학식 6]에서, 관절 토크 τ는 6-벡터이다.In Equation (6), the joint torque tau is a 6-vector.
토크 보상부(329)는 [수학식 6]에서 구한 관절 토크 τ에 추가적으로 중력 보상을 위한 토크 G(q)를 더하여 아래의 [수학식 7]과 같이, 보상된 관절 토크 τ1를 계산한다. 이때 관절 토크 τ는 왼쪽 다리(110L)의 토크 와 오른쪽 다리(110R)의 토크 에 대해 동일한 과정을 거치므로 이하에서는 τ라고 설명한다.The
[수학식 7]&Quot; (7) "
[수학식 7]에서, G(q)는 모든 족부 관절의 각도 q와, 각 다리(110R, 110L)에 속한 모든 링크 (21, 22)의 질량 및 무게중심의 위치와 상체(101)의 총질량 및 무게중심 위치로부터 계산이 가능하다.In Equation (7), G (q) represents the angle q of all the foot joints, the position of the mass and the center of gravity of all the
또한, 토크 보상부(329)는 시스템의 passivity를 구현하여 안정성을 더하기 위해 각 관절에 댐핑(속도에 비례하여 저항하는) 토크 dw를 더하여 아래의 [수학식 8]과 같이, 보상된 관절 토크 τ2를 계산한다.Further, the
[수학식 8]&Quot; (8) "
[수학식 8]에서, d는 적절히 설정한 댐핑 계수이고, w는 측정한 관절 각속도이다.In Equation (8), d is a properly set damping coefficient, and w is a measured joint angular velocity.
서보 제어부(330)는 토크 보상부(329)에서 최종적으로 보상된 관절 토크 τ2를 두 다리(110L 또는 110R)의 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)에 각각 제공하여 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)에 설치된 모터 등의 액츄에이터를 구동시키도록 보상된 관절 토크 τ2에 대응하는 토크 제어 신호를 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)에 출력한다.The
따라서, 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)는 서보 제어부(330)로부터 토크 제어 신호를 입력받아 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)에 설치된 모터 등의 액츄에이터를 구동시킴으로써 지면이 기울어져 있더라도 로봇(100)이 직립 자세를 유지하면서 실시간으로 균형을 유지할 수 있도록 한다.Accordingly, the
이하, 상기와 같이 구성된 보행 로봇 및 그 자세 제어 방법의 동작과정 및 작용효과를 설명한다.Hereinafter, the operation process and effect of the walking robot and the attitude control method constructed as above will be described.
도 6은 본 발명의 일 실시예에 의한 보행 로봇의 자세 제어 방법을 나타낸 동작 순서도이다.6 is a flowchart illustrating a method of controlling a posture of a walking robot according to an embodiment of the present invention.
도 6에서, 사용자 인터페이스를 통해 로봇(100)의 자세 제어를 지시하기 위한 사용자 명령을 입력한다(400).In FIG. 6, a user command for instructing the control of the attitude of the
자세제어 명령이 입력되면, 로봇(100)의 펠비스 링크(16)에 설치된 IMU(17)는 펠비스와 몸통(102)을 포함한 상체(101)의 기울기와 방향을 관성계에 대한 롤 방향(roll, X축 회전), 피치 방향(pitch, Y축 회전), 요우 방향(yaw, Z축 회전)의 회전 각도로 측정하여 자세 제어부(320)의 무게중심 계산부(321)에 전송한다(402).The
따라서, 무게중심 계산부(321)는 IMU(17)와 순기구학 계산(Forward Kinematics)에 의하여 로봇(100)의 현재 무게중심(COG) C(x, y, z)의 위치를 계산하여 무게중심 에러 계산부(322)에 전송한다(404).The center of
그리고, 설정부(310)는 로봇(100)이 지면과 접촉된 두 발(110L, 110R) 사이의 중점에서 지면과 수직인 위치로 로봇(100)의 목표 무게중심(COG) C´(x, y, z)의 위치를 설정하여 무게중심 에러 계산부(322)에 전송한다(406).The
이에 따라, 무게중심 에러 계산부(322)는 무게중심 계산부(321)에서 계산된 현재 무게중심(COG) C(x, y, z)의 위치와 설정부(310)에서 설정된 목표 무게중심(COG) C´(x, y, z)의 위치 간의 에러 e를 아래의 [수학식 1]과 같이, 계산하여 보상 힘 계산부(323)에 전송한다(408).Accordingly, the center-of-
[수학식 1][Equation 1]
e = C´ - Ce = C ' -C
보상 힘 계산부(323)는 무게중심 에러 계산부(322)에서 계산된 무게중심 에러 e를 이용하여 로봇(100)의 균형을 잡기 위해 보상해야 하는 힘 f(fx, fy, fz)을 아래의 [수학식 2]와 같이, 계산하여 다리 분배부(324)에 전송한다.The compensation
[수학식 2]&Quot; (2) "
따라서, 다리 분배부(324)는 무게중심 에러 e를 이용하여 계산된 보상 힘 f(fx, fy, fz)을 아래의 [수학식 3]과 같이, 두 다리(110L, 110R)에 분배한다(410).Accordingly, the bridge minutes to distribute 324 the center of gravity error e compensated force f (f x, f y, f z) of Equation 3, the two legs (110L, 110R), as shown in the following calculation using the (410).
[수학식 3]&Quot; (3) "
, ,
[수학식 3]에서, wL, wR은 도 5에 도시한 바와 같이, 로봇(100)의 무게중심(COG)이 지면에 투영된 점과 두 발(112L, 112R) 간의 거리 비율 dL, dR을 이용하여 로봇(100)의 무게중심(COG)이 지면에 투영된 점으로부터 가까운 다리(예를 들어, 110L)가 아래의 [수학식 4]와 같이, 더 큰 값을 갖도록 한다.In Equation (3), w L , w R is using, the center of gravity (COG) of the
[수학식 4]&Quot; (4) "
, ,
그리고, 회전 각도 에러 계산부(325)는 IMU(17)로부터 측정된 펠비스 링크(16)의 롤 방향(roll, X축 회전), 피치 방향(pitch, Y축 회전), 요우 방향(yaw, Z축 회전)의 회전 각도와 목표 회전 각도와의 에러 e1를 계산하여 보상 모멘트 계산부(326)에 전송한다(412).The rotation
따라서, 보상 모멘트 계산부(326)는 회전 각도 에러 계산부(324)에서 계산된 회전 각도 에러 e1를 이용하여 로봇(100)의 균형을 잡기 위해 보상해야 하는 모멘트 M(Mx, My, Mz)을 아래의 [수학식 5]와 같이, 계산한다(414).Accordingly, the compensation
[수학식 5]&Quot; (5) "
발(112)을 로봇(100)의 베이스 링크라고 보고, 무게중심(COG)을 펠비스 링크(16) 상에 존재하는 엔드 이펙터(end effector)라고 볼 때의 6-by-6 자코비안(jacobian) 행렬 J를 계산한다. 자코비안은 관절 공간의 속도를 작업 공간의 속도로 변환할 수 있는 행렬이며, 순기구학 계산(Forward Kinematics)으로부터 유도된다.The foot 112 is referred to as the base link of the
이에, 제1 및 제2토크 계산부(327, 328)는 보상 모멘트 계산부(326)에서 계산된 보상 모멘트 M과 보상 힘 계산부(323)에서 계산된 보상 힘 f를 발생시키기 위한 관절 토크 τ를 두 다리(110L, 110R)에 대하여 아래의 [수학식 6]과 같이, 각각 계산한다(416).The first and second
[수학식 6]&Quot; (6) "
[수학식 6]에서, 관절 토크 τ는 6-벡터이다.In Equation (6), the joint torque tau is a 6-vector.
이어서, 토크 보상부(329)는 [수학식 6]에서 구한 관절 토크 τ에 추가적으로 중력 보상을 위한 토크 G(q)를 더하여 아래의 [수학식 7]과 같이, 보상된 관절 토크 τ1를 계산한다. 이때 관절 토크 τ는 왼쪽 다리(110L)의 토크 와 오른쪽 다리(110R)의 토크 에 대해 동일한 과정을 거치므로 이하에서는 τ라고 설명한다.Next, the
[수학식 7]&Quot; (7) "
[수학식 7]에서, G(q)는 모든 족부 관절의 각도 q와 각 다리 (110R, 110L)에 속한 모든 링크 (21, 22)의 질량 및 무게중심의 위치와 상체(101)의 총질량 및 무게중심 위치로부터 계산이 가능하다.In Equation (7), G (q) is the sum of the angles q of all the foot joints, the positions of the masses and the centers of gravity of all the
이외에도, 토크 보상부(329)는 시스템의 passivity를 구현하여 안정성을 더하기 위해 각 관절에 댐핑(속도에 비례하여 저항하는) 토크 dw를 더하여 아래의 [수학식 8]과 같이, 보상된 관절 토크 τ2를 계산한다(418).In addition, the
[수학식 8]&Quot; (8) "
[수학식 8]에서, d는 댐핑 계수이고, w는 관절 각속도이다.In Equation (8), d is the damping coefficient, and w is the joint angular velocity.
이후, 서보 제어부(330)는 토크 보상부(329)에서 최종적으로 보상된 관절 토크 τ2를 두 다리(110L 또는 110R)의 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)에 각각 제공하여 힙 관절부(210), 무릎 관절부(220) 및 발목 관절부(230)에 설치된 모터 등의 액츄에이터를 구동시킴으로써(420), 지면이 기울어져 있더라도 로봇(100)이 직립 자세를 유지하면서 실시간으로 균형을 유지할 수 있도록 한다.The
따라서, 지면의 각도가 수평이 아니어도 로봇(100)의 균형을 잡을 수 있으며, 로봇(100)이 천천히 움직일 때나 빠르게 움직일 때 모두 균형을 잡을 수 있다.Therefore, the
또한, 지면이 기울어져 있더라도 몸통(102)을 지지하는 두 다리(110L, 110R)의 관절을 이용하여 로봇(100)의 균형을 유지하기 때문에, 그 방법이 간단하여 6 자유도의 관절을 가진 로봇(100)에 적용할 수 있다.Even if the ground surface is inclined, since the balance of the
16 : 펠비스 링크
17 : IMU
100 : 로봇
101 : 상체
102 : 몸통
110L, 110R : 다리
112L, 112R : 발
210 : 힙 관절부
220 : 무릎 관절부
230 : 발목 관절부
300 : 센서부
310 : 설정부
320 : 자세 제어부
321 : 무게중심 계산부
322 : 무게중심 에러 계산부
323 : 보상 힘 계산부
324 : 다리 분배부
325 : 회전 각도 에러 계산부
326 : 보상 모멘트 계산부
327, 328 : 토크 계산부
329 : 토크 보상부
330 : 서보 제어부16: Pelvis Link 17: IMU
100: robot 101: upper body
102:
112L, 112R: Foot 210: Hip Joint
220: knee joint 230: ankle joint
300: sensor unit 310: setting unit
320: attitude control unit 321:
322: center-of-gravity error calculation unit 323:
324: leg distribution portion 325: rotation angle error calculation section
326: Compensation
329: Torque compensating unit 330: Servo control unit
Claims (19)
상기 로봇의 현재 무게중심의 위치를 계산하고;
상기 로봇의 목표 무게중심의 위치를 설정하고;
상기 설정된 목표 무게중심의 위치와 상기 계산된 현재 무게중심의 위치 간의 에러를 계산하고;
상기 계산된 무게중심 에러를 이용하여 상기 로봇의 균형을 잡기 위해 보상해야 하는 힘을 계산하고;
상기 계산된 보상 힘을 상기 복수의 다리에 분배하고;
상기 분배된 보상 힘에 따라 각 다리의 관절 토크를 계산하고;
상기 계산된 관절 토크를 이용하여 토크 서보 제어를 수행하되,
상기 로봇의 균형을 잡기 위해 보상해야 하는 힘은, 상기 계산된 현재 무게중심의 위치와 상기 설정된 목표 무게중심의 위치 사이에 가상의 스프링이 존재할 때 상기 가상의 스프링의 상수와 상기 계산된 무게중심 에러의 곱으로 나타내는 보행 로봇의 자세 제어 방법.A plurality of leg joints connected to a lower side of the Felis link, a plurality of legs respectively connected to the plurality of hip joint parts, and legs respectively provided to the legs, A method of controlling a posture of a walking robot,
Calculating a position of the current center of gravity of the robot;
Setting a position of the target center of gravity of the robot;
Calculating an error between the set target center of gravity position and the calculated current center of gravity position;
Calculating a force to be compensated for balancing the robot using the calculated center-of-gravity error;
Distributing the calculated compensating force to the plurality of legs;
Calculate a joint torque of each leg according to the distributed compensation force;
Performing torque servo control using the calculated joint torque,
A force to be compensated for balancing the robot is calculated by calculating a difference between a constant of the virtual spring and a calculated center-of-gravity error when there is a virtual spring between the calculated current center of gravity and the center of the set target center of gravity, Of the posture of the robot.
상기 목표 무게중심의 위치는,
상기 지면과 접촉된 상기 복수의 발 사이의 중점에서 상기 지면과 수직인 위치로 설정하는 보행 로봇의 자세 제어 방법.The method according to claim 1,
The position of the center of gravity of the target,
And setting a position perpendicular to the ground at a midpoint between the plurality of feet in contact with the ground.
상기 목표 무게중심의 위치는,
상기 지면과 접촉된 상기 복수의 발 내의 임의의 점에서 상기 지면과 수직인 위치로 설정하는 보행 로봇의 자세 제어 방법.The method according to claim 1,
The position of the center of gravity of the target,
And setting a position perpendicular to the ground at an arbitrary point in the plurality of feet in contact with the ground.
상기 계산된 보상 힘을 상기 복수의 다리에 분배하는 것은,
상기 로봇의 무게중심이 상기 지면에 투영된 점과 상기 복수의 발 간의 거리 비율을 계산하고;
상기 계산된 거리 비율을 이용하여 상기 로봇의 무게중심이 상기 지면에 투영된 점으로부터 가까운 다리가 더 큰 값을 갖는 보행 로봇의 자세 제어 방법.The method according to claim 2 or 3,
And distributing the calculated compensating force to the plurality of legs,
Calculating a ratio of a distance between a point where the center of gravity of the robot is projected on the ground and the plurality of feet;
And a leg near the point where the center of gravity of the robot is projected on the ground surface has a larger value using the calculated distance ratio.
상기 펠비스 링크의 실제 회전 각도를 측정하고;
상기 측정된 실제 회전 각도와 목표 회전 각도와의 에러를 계산하고;
상기 계산된 회전 각도 에러를 이용하여 상기 로봇의 균형을 잡기 위해 보상해야 하는 모멘트를 계산하는 것을 더 포함하고,
상기 관절 토크를 계산하는 것은,
상기 계산된 보상 모멘트와 상기 계산된 보상 힘을 발생시키기 위한 관절 토크를 계산하는 보행 로봇의 자세 제어 방법.The method according to claim 1,
Measuring an actual rotation angle of the flywheel link;
Calculating an error between the measured actual rotation angle and the target rotation angle;
Further comprising calculating a moment to be compensated for balancing the robot using the calculated rotation angle error,
Calculating the joint torque,
And calculating the calculated compensation moment and the joint torque for generating the calculated compensation force.
상기 펠비스 링크의 실제 회전 각도를 측정하는 것은,
IMU를 이용하여 몸통의 기울어짐에 대한 요우 방향(Z축 주위의 회전), 피치 방향(Y축 주위의 회전), 롤 방향(X축 주위의 회전)의 회전 각도를 측정하는 보행 로봇의 자세 제어 방법.6. The method of claim 5,
Measuring the actual rotation angle of the flywheel link may include:
The posture control of the walking robot that measures the yaw direction (rotation around the Z axis), the pitch direction (rotation around the Y axis) and the roll direction (rotation around the X axis) with respect to the tilt of the body using the IMU Way.
상기 각 다리에 대한 중력 보상 토크를 계산하는 것을 더 포함하고,
상기 관절 토크를 계산하는 것은,
상기 중력 보상 토크를 이용하여 상기 계산된 각 다리의 관절 토크를 보상하는 보행 로봇의 자세 제어 방법.6. The method of claim 5,
Further comprising calculating a gravity compensation torque for each leg,
Calculating the joint torque,
And compensates for the calculated joint torque of each leg by using the gravity compensation torque.
상기 중력 보상 토크는 모든 족부 관절의 각도 q와 각 다리에 속한 모든 링크의 질량 및 무게중심의 위치와 상체의 총질량 및 무게중심 위치로부터 계산하는 보행 로봇의 자세 제어 방법.8. The method of claim 7,
Wherein the gravity compensation torque is calculated from the angle q of all the foot joints, the positions of the mass and the center of gravity of all links belonging to each leg, the total mass of the upper body and the position of the center of gravity.
상기 각 다리에 대한 중력 보상 토크를 계산하는 것은,
상기 복수의 다리에 분배된 힘에 따라 상기 상체의 무게를 고려하여 중력 보상을 실시하는 보행 로봇의 자세 제어 방법.8. The method of claim 7,
Calculating the gravity compensation torque for each leg,
And performing gravity compensation in consideration of the weight of the upper body according to a force distributed to the plurality of legs.
상기 각 다리에 대한 중력 보상 토크를 계산하는 것은,
상기 복수의 다리 상태에 따라 반대쪽 다리의 무게를 고려하여 중력 보상을 실시하는 보행 로봇의 자세 제어 방법.8. The method of claim 7,
Calculating the gravity compensation torque for each leg,
And performing gravity compensation in consideration of the weight of the opposite leg according to the plurality of leg states.
상기 복수의 다리 상태는 상기 복수의 다리에 각각 마련된 발의 지면 접촉 여부에 따라 상기 상체를 지지하는 상태 또는 스윙하는 상태로 분리하는 보행 로봇의 자세 제어 방법.11. The method of claim 10,
Wherein the plurality of legs are separated into a state supporting the upper body or a state swinging according to whether or not the feet provided on the respective legs are in contact with the ground.
상기 각 다리에 대한 댐핑 토크를 계산하는 것을 더 포함하고,
상기 관절 토크를 계산하는 것은,
상기 댐핑 토크를 이용하여 상기 계산된 각 다리의 관절 토크를 보상하는 보행 로봇의 자세 제어 방법.8. The method of claim 7,
Further comprising calculating a damping torque for each leg,
Calculating the joint torque,
Wherein the calculated joint torque of each leg is compensated using the damping torque.
상기 로봇의 현재 무게중심의 위치를 계산하는 계산부;
상기 로봇의 목표 무게중심의 위치를 설정하는 설정부;
상기 설정된 목표 무게중심의 위치와 상기 계산된 현재 무게중심의 위치 간의 에러를 계산하고, 상기 계산된 무게중심 에러를 이용하여 상기 로봇의 균형을 잡기 위해 보상해야 하는 힘을 계산하고, 상기 계산된 보상 힘을 상기 복수의 다리에 분배하고, 상기 분배된 보상 힘에 따라 각 다리의 관절 토크를 계산하는 자세 제어부; 및
상기 계산된 관절 토크를 상기 각 다리의 관절에 전달하여 토크 서보 제어를 수행하는 서보 제어부를 포함하되,
상기 로봇의 균형을 잡기 위해 보상해야 하는 힘은, 상기 계산된 현재 무게중심의 위치와 상기 설정된 목표 무게중심의 위치 사이에 가상의 스프링이 존재할 때 상기 가상의 스프링의 상수와 상기 계산된 무게중심 에러의 곱으로 나타내는 보행 로봇.A plurality of leg joints connected to a lower side of the Felis link, a plurality of legs respectively connected to the plurality of hip joint parts, and legs respectively provided to the legs, In the walking robot,
A calculation unit for calculating a position of the current center of gravity of the robot;
A setting unit for setting a position of a center of gravity of the robot;
Calculating an error between a position of the set target center of gravity and a position of the calculated current center of gravity, calculating a force to be compensated for balancing the robot using the calculated center-of-gravity error, A posture control unit for distributing a force to the plurality of legs and calculating a joint torque of each leg according to the distributed compensation force; And
And a servo control unit for performing torque servo control by transmitting the calculated joint torque to the joints of the legs,
A force to be compensated for balancing the robot is calculated by calculating a difference between a constant of the virtual spring and a calculated center-of-gravity error when there is a virtual spring between the calculated current center of gravity and the center of the set target center of gravity, Of the walking robot.
상기 자세 제어부는,
상기 로봇의 무게중심이 지면에 투영된 점과 상기 복수의 발 간의 거리 비율을 계산하고, 상기 계산된 거리 비율을 이용하여 상기 로봇의 무게중심이 상기 지면에 투영된 점으로부터 가까운 다리가 더 큰 값을 가지도록 상기 계산된 보상 힘을 상기 복수의 다리에 분배하는 보행 로봇.14. The method of claim 13,
The posture control unit,
Calculating a ratio of a distance between a point at which the center of gravity of the robot is projected on the ground and a distance between the plurality of feet and calculating a distance between the point at which the center of gravity of the robot is projected on the ground and a bridge Wherein the compensating force is distributed to the plurality of legs.
상기 펠비스 링크의 실제 회전 각도를 측정하는 IMU를 더 포함하고,
상기 자세 제어부는,
상기 측정된 실제 회전 각도와 목표 회전 각도와의 에러를 계산하고, 상기 계산된 회전 각도 에러를 이용하여 상기 로봇의 균형을 잡기 위해 보상해야 하는 모멘트를 계산하는 보행 로봇.14. The method of claim 13,
Further comprising an IMU measuring an actual rotation angle of the flywheel link,
The posture control unit,
Calculates an error between the measured actual rotation angle and a target rotation angle and calculates a moment to be compensated for balancing the robot using the calculated rotation angle error.
상기 자세 제어부는,
상기 계산된 보상 모멘트와 상기 계산된 보상 힘을 발생시키기 위한 관절 토크를 계산하여 상기 각 다리의 자세를 제어하는 보행 로봇.16. The method of claim 15,
The posture control unit,
And calculates the joint torque to generate the calculated compensation moment and the calculated compensation force to control the posture of each leg.
상기 자세 제어부는,
상기 IMU를 이용하여 몸통의 기울어짐에 의한 상기 펠비스 링크의 롤 방향(roll, X축 주위의 회전), 피치 방향(pitch, Y축 주위의 회전), 요우 방향(yaw, Z축 주위의 회전)의 실제 회전 각도를 측정하는 보행 로봇.16. The method of claim 15,
The posture control unit,
(Roll, rotation around the X axis), pitch direction (pitch, rotation about the Y axis), the yaw direction (yaw, rotation about the Z axis) by the tilting of the trunk by the IMU ) To measure the actual rotation angle of the robot.
상기 자세 제어부는, 상기 각 다리에 대한 중력 보상 토크를 계산하고, 상기 계산된 중력 보상 토크를 이용하여 상기 각 다리의 관절 토크를 보상하는 보행 로봇.16. The method of claim 15,
Wherein the posture control unit calculates a gravity compensation torque for each of the legs and compensates for the joint torque of each leg using the calculated gravity compensation torque.
상기 자세 제어부는, 상기 각 다리에 대한 댐핑 토크를 계산하고, 상기 계산된 댐핑 토크를 이용하여 상기 각 다리의 관절 토크를 보상하는 보행 로봇.
19. The method of claim 18,
Wherein the posture control unit calculates a damping torque for each leg and compensates for the joint torque of each leg using the calculated damping torque.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170181896A KR20180004397A (en) | 2017-12-28 | 2017-12-28 | Walking robot and method for controlling balancing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170181896A KR20180004397A (en) | 2017-12-28 | 2017-12-28 | Walking robot and method for controlling balancing the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100122157A Division KR20120060578A (en) | 2010-12-02 | 2010-12-02 | Walking robot and method for controlling balancing the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180004397A true KR20180004397A (en) | 2018-01-11 |
Family
ID=61004244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170181896A KR20180004397A (en) | 2017-12-28 | 2017-12-28 | Walking robot and method for controlling balancing the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180004397A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200083259A (en) * | 2018-12-29 | 2020-07-08 | 유비테크 로보틱스 코프 | An inverse kinematics calculation method for mass center of humanoid robot |
KR20230161262A (en) | 2022-05-18 | 2023-11-27 | 주식회사 현대케피코 | Gait Control Method and System of Walking Robot Using Microphone |
-
2017
- 2017-12-28 KR KR1020170181896A patent/KR20180004397A/en active Search and Examination
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200083259A (en) * | 2018-12-29 | 2020-07-08 | 유비테크 로보틱스 코프 | An inverse kinematics calculation method for mass center of humanoid robot |
KR20230161262A (en) | 2022-05-18 | 2023-11-27 | 주식회사 현대케피코 | Gait Control Method and System of Walking Robot Using Microphone |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101778027B1 (en) | Walking robot and method for controlling balancing the same | |
KR102044437B1 (en) | Balancing control apparatus of robot and method for controlling the same | |
KR20120060578A (en) | Walking robot and method for controlling balancing the same | |
KR101687631B1 (en) | Walking control apparatus of robot and method for controlling the same | |
JP5991857B2 (en) | Robot balance control apparatus and control method thereof | |
KR101004820B1 (en) | Locomotion device, control method of locomotion device, robot device and operation control method of robot device | |
KR101953113B1 (en) | Robot and control method thereof | |
US6505096B2 (en) | Posture control system of legged mobile robot | |
KR101687630B1 (en) | Walking robot and method for controlling balancing the same | |
KR101687628B1 (en) | Walking control apparatus of robot and method for controlling the same | |
US5841258A (en) | Remote control system for legged moving robot | |
US20130079929A1 (en) | Robot and control method thereof | |
EP2343161A1 (en) | Walking robot and method of controlling the same | |
KR20130095973A (en) | Walking robot and control method thereof | |
KR20100086355A (en) | Robot walking control apparatus and method thereof | |
KR20110084631A (en) | Humanoid robot and walking control method thereof | |
KR20120024098A (en) | Walking robot and control method thereof | |
WO2004033160A1 (en) | Robot device operation control device and operation control method | |
KR20180004397A (en) | Walking robot and method for controlling balancing the same | |
JP2002210681A (en) | Motion control device and method for leg-type moving robot, and robot device | |
JP2004181613A (en) | Robot device, device and method for controlling operation of legged locomotion robot, sensor system for legged locomotion robot, and moving body device | |
JP5232120B2 (en) | Control device for moving body | |
JP3568527B2 (en) | Mobile device | |
Wasielica et al. | Active stabilization of a humanoid robot base on inertial measurement unit data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment |