KR101549817B1 - 로봇의 보행 제어장치 및 그 방법 - Google Patents

로봇의 보행 제어장치 및 그 방법 Download PDF

Info

Publication number
KR101549817B1
KR101549817B1 KR1020090005678A KR20090005678A KR101549817B1 KR 101549817 B1 KR101549817 B1 KR 101549817B1 KR 1020090005678 A KR1020090005678 A KR 1020090005678A KR 20090005678 A KR20090005678 A KR 20090005678A KR 101549817 B1 KR101549817 B1 KR 101549817B1
Authority
KR
South Korea
Prior art keywords
robot
zmp
joint
walking
control
Prior art date
Application number
KR1020090005678A
Other languages
English (en)
Other versions
KR20100086355A (ko
Inventor
권웅
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to KR1020090005678A priority Critical patent/KR101549817B1/ko
Priority to US12/656,020 priority patent/US8612054B2/en
Publication of KR20100086355A publication Critical patent/KR20100086355A/ko
Application granted granted Critical
Publication of KR101549817B1 publication Critical patent/KR101549817B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles 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/02Vehicles 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/032Vehicles 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
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02GINSTALLATION OF ELECTRIC CABLES OR LINES, OR OF COMBINED OPTICAL AND ELECTRIC CABLES OR LINES
    • H02G3/00Installations of electric cables or lines or protective tubing therefor in or on buildings, equivalent structures or vehicles
    • H02G3/02Details
    • H02G3/04Protective tubing or conduits, e.g. cable ladders or cable troughs
    • H02G3/0456Ladders or other supports
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B39/00Locking of screws, bolts or nuts
    • F16B39/22Locking of screws, bolts or nuts in which the locking takes place during screwing down or tightening
    • F16B39/24Locking of screws, bolts or nuts in which the locking takes place during screwing down or tightening by means of washers, spring washers, or resilient plates that lock against the object
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02GINSTALLATION OF ELECTRIC CABLES OR LINES, OR OF COMBINED OPTICAL AND ELECTRIC CABLES OR LINES
    • H02G3/00Installations of electric cables or lines or protective tubing therefor in or on buildings, equivalent structures or vehicles
    • H02G3/02Details
    • H02G3/06Joints for connecting lengths of protective tubing or channels, to each other or to casings, e.g. to distribution boxes; Ensuring electrical continuity in the joint
    • H02G3/0608Joints for connecting non cylindrical conduits, e.g. channels
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02GINSTALLATION OF ELECTRIC CABLES OR LINES, OR OF COMBINED OPTICAL AND ELECTRIC CABLES OR LINES
    • H02G3/00Installations of electric cables or lines or protective tubing therefor in or on buildings, equivalent structures or vehicles
    • H02G3/30Installations of cables or lines on walls, floors or ceilings

Abstract

토크 기반에 의해 로봇의 동작 상태를 선정하여 로봇의 보행을 제어할 때 로봇의 ZMP가 안전 영역에 들어오도록 로봇 관절의 토크를 제어함으로써 토크 기반에 따라 보행하는 로봇에서 발생할 수 있는 불필요한 동작을 제거한다.
로봇, FSM, ZMP, COG, 보행, 토크 제어

Description

로봇의 보행 제어장치 및 그 방법{robot walking control apparatus and method thereof}
본 발명은 로봇의 보행 제어장치 및 그 방법에 관한 것으로, 더욱 상세하게는 토크 기반에 따라 보행하는 로봇에서 비효율적인 동작을 제거하는 로봇의 보행 제어장치 및 그 방법에 관한 것이다.
인간과 유사한 관절 체계를 가지고 인간의 작업 및 생활공간에 용이하게 두 발로 걷는 보행 로봇의 연구 개발이 활발하게 진행되고 있다. 이족 보행은 4족 또는 6족 보행에 비해 불안정하고 자세 제어나 보행 제어가 상대적으로 더 어려운 단점이 있지만, 고르지 못한 지면 또는 계단과 같이 불연속적인 보행 면에 좀 더 유연하게 대응할 수 있는 장점을 가진다.
이족 보행을 제어하는 방법으로는 위치 기반(로봇 관절의 목표위치를 추종해야함을 의미한다)의 Zero Moment Point(이하, ZMP라 한다) 제어방법과 토크 기반(로봇 관절의 목표토크를 추종해야함을 의미한다)의 동적보행 제어방법 또는 Finite State Machine(이하, FSM라 한다) 제어 방법이 있다.
ZMP 제어방법은 ZMP구속조건, 즉 ZMP가 지지하는 다리로 이루어진 지지다각형 내의 안전영역(한발로 지지하고 있을 경우에는 그 발의 영역, 양발로 지지하고 있을 경우에는 양발의 영역을 포함하는 convex polygon내에서 안전을 고려하여 작게 설정한 영역을 의미한다)에 존재해야한다는 조건을 만족하도록 보행 방향, 보행 폭, 보행 속도 등을 미리 설정하고, 이 설정에 대응하는 각 다리의 보행 패턴을 생성하며, 그 보행 패턴에 따라 각 다리의 보행 궤적을 계산한다. 또한 계산된 보행 궤적의 역기구학(Inverse Kinematics) 계산을 통해 각 다리의 관절의 위치를 계산하고, 각 관절의 현재 위치와 목표 위치에 기초하여 각 관절의 목표 제어 값을 계산한다. 또한, 매 제어시간마다 각각의 다리가 계산된 보행 궤적을 추종하도록 하는 서보 제어(servo control)를 통해 구현된다. 보행 시 각 다리가 보행 궤적을 이탈하면 모터의 토크를 제어하여 각 다리가 보행 궤적을 정확히 추종하도록 제어한다.
FSM 제어방법은, 매 제어시간마다 위치를 추종하여 보행하는 방식이 아니라 보행 로봇의 각 동작 상태(State)를 미리 정의해 두고 보행 시 각 동작 상태를 참조하여 적절히 보행하는 방식이다. FSM 제어방법은 보행 로봇의 각 동작의 상태(여기서 상태라 함은 FSM에서의 상태(state)를 의미한다)를 미리 정의해 두고, 보행 시 각 동작의 상태(state)를 참조하여 각 관절의 목표 토크를 계산하고 이를 추종하도록 제어하여 적절히 보행하는 방식이다.
토크 기반의 FSM 제어방법은 일반적으로 토크 명령에 의한 제어이고, Back-drivability를 활용하여 탄성메커니즘의 구조에 적용할 수 있기 때문에 에너지 효 율적이고, 강성이 낮아서 주위 환경에 대해 안전하다. 토크 기반의 FSM 제어방법은, 보행 시 동작 상태를 바꿈으로써 로봇이 다양한 포즈를 취할 수 있으나 한정된 동작 상태에서 선정해야 하는 제약으로 인하여 임무 수행을 위한 보행 동작과 관계 없이 로봇의 균형을 잡기 위한 별도의 동작을 하게 된다. 이러한 밸런싱 동작은 로봇의 발을 구르는 스텝 모션이 대표적이며, 이러한 동작이 만약 밸런싱이 유지된다면 불필요한 동작이 될 수 있으므로 이러한 비효율성으로 인하여 시간 지연이 발생하고 에너지가 낭비된다.
본 발명의 일 측면은, 토크 기반에 따른 보행 제어 시 주어진 임무를 수행하는 보행 동작과 관계 없는 비효율적인 동작을 배제하는 로봇의 보행 제어장치 및 그 방법을 제시하는데 있다.
본 발명의 실시예에 따른 로봇의 보행 제어장치는, 복수의 다리를 가진 로봇; 및 FSM(Finite State Machine) 기반의 보행 제어모드에 따라 로봇의 동작 상태를 전환할 때 로봇의 ZMP(Zero Moment Point)의 위치에 따라 로봇 관절의 운동량을 보상하고, 보상된 로봇 관절의 운동량에 따라 로봇 관절의 토크 명령을 계산하고, 계산된 토크 명령에 따라 로봇의 보행을 제어하는 제어부를 포함한다.
삭제
또한 제어부는 로봇의 ZMP가 미리 정의된 안전영역에 들어오도록 로봇 관절의 운동량을 보상한다.
또한 미리 정의된 안전영역은 로봇의 ZMP 구속조건을 만족하도록 설정된다.
또한 제어부는 로봇에 설치된 센서를 이용하여 얻은 각 관절의 위치와 속도와 가속도에 따라 로봇의 ZMP를 계산한다.
본 발명의 실시예에 따른 로봇의 보행 제어장치는, 복수의 다리를 가진 로봇; 및 FSM(Finite State Machine) 기반의 보행 제어모드와 ZMP(Zero Moment Point) 기반의 보행 제어모드 중 어느 하나의 제어모드를 선택하고, FSM 기반의 보행 제어모드에 따라 로봇의 동작 상태를 전환할 때 로봇의 ZMP의 위치에 따라 로봇 관절의 운동량을 보상하고, 보상된 로봇 관절의 운동량에 따라 로봇 관절의 토크 명령을 계산하고, 계산된 토크 명령에 따라 로봇의 보행을 제어하는 제어부를 포함한다.
본 발명의 실시예에 따른 로봇의 보행 제어방법은, FSM(Finite State Machine) 기반의 보행 제어모드에 따라 로봇의 동작 상태를 선정하고; 선정된 동작 상태로 전환하는 로봇의 ZMP(Zero Moment Point)를 계산하고; 로봇의 ZMP가 미리 정의된 안전영역에 존재하는지 여부를 판단하여 로봇 관절의 보상 운동량을 계산하고; 로봇 관절의 보상 운동량에 기초하여 로봇 관절의 토크 명령을 계산하고; 로봇 관절의 토크 명령에 따라 로봇의 보행을 제어한다.
또한 로봇의 ZMP가 미리 정의된 안전영역에 존재하지 않으면 (식 2)에 따라 로봇 관절의 보상 운동량을 계산한다.
(식 2)
△x(tk+1) = Ka(tk)(Px(tk)-Pxd(tk)) + △x(tk)
△y(tk+1) = Ka(tk)(Py(tk)-Pyd(tk)) + △y(tk)
여기서, tk+1은 현재 제어주기이고, tk는 이전 제어주기이고, Ka는 조정 파라미터이고, Pxd는 X축 목표 ZMP이고, Px는 X축 현재 ZMP이며, Pyd는 Y축 목표 ZMP이고, Py는 Y축 현재 ZMP이며, (△x(tk+1), △y(tk+1))는 X축과 Y축에서의 현재 무게중심(COG)의 보상 운동량이고, (△x(tk), △y(tk))는 X축과 Y축에서의 이전 무게중심(COG)의 보상 운동량이다.
또한 로봇 관절의 보상 운동량을 이용하여 다음 (식 3)에 따라 로봇 관절의 토크 명령을 계산한다.
(식 3)
τ = kpd + △θ-θ)-kd(dθ/dt)
여기서, τ는 로봇 관절의 토크 명령이고, kp는 PD제어의 P게인(gain), kd는 PD제어의 D게인(gain)이고, θd는 관절의 목표위치, θ는 관절의 현재위치이고, △θ는 관절의 보상 운동량이고, t는 시간이다.
본 발명의 실시예에 따른 로봇의 보행 제어방법은, 사용자 명령과 센서부로부터 받은 정보를 이용하여 판단한 보행 환경에 따라 FSM(Finite State Machine) 기반의 보행 제어모드와 ZMP(Zero Moment Point) 기반의 보행 제어모드 중 어느 하나의 보행 제어모드를 선택하고; FSM 기반의 제어모드에 따라 로봇의 동작 상태를 전환할 때 로봇의 ZMP의 위치에 따라 로봇 관절의 운동량을 보상하고; 보상된 로봇 관절의 운동량에 따라 로봇 관절의 토크 명령을 계산하고; 계산된 토크 명령에 따라 로봇의 보행을 제어한다
또한 로봇 관절의 운동량 보상은, 로봇의 동작 상태를 선정하고, 선정된 동작 상태로 전환하는 로봇의 ZMP를 계산하고, 로봇의 ZMP가 미리 정의된 안전영역에 들어오도록 로봇 관절의 운동량을 보상한다.
이상과 같은 본 발명은 토크 기반에 따른 보행을 제어하기 위한 동작 상태가 선정되면 안전영역에 위치하도록 각 관절의 토크를 제어하므로 로봇의 보행 동작이 간결하게 이루어짐은 물론 시간 지연 및 에너지의 낭비를 방지할 수 있다.
이하 본 발명의 일 실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1에 도시한 바와 같이, 로봇(100)의 상체(102)의 상부에는 목(120)을 통해 머리(104)가 연결된다. 상체(102)의 상부 양측에는 어깨(114L, 114R)를 통해 두 개의 팔(106L, 106R)이 연결된다. 두 개의 팔(106L, 106R) 각각의 말단에는 손(108L, 108R)이 연결된다. 상체(102)의 하부 양측에는 두 개의 다리(110L, 110R)가 연결된다. 두 개의 다리(110L, 110R) 각각의 말단에는 발(112L, 112R)이 연결된다. 머리(104)와 두 개의 팔(106L, 106R), 두 개의 다리(110L, 110R), 각각 두 개 씩의 손(108L, 108R)과 발(112L, 112R) 각각은 관절을 통해 일정 수준의 자유도를 갖는다. 상체(102)의 내부는 커버(116)에 의해 보호된다. 참조 부호에서 "R"과 "L"는 각각 로봇(100)의 우측(right)과 좌측(left)을 나타낸다.
도 2는 도 1에 나타난 로봇의 관절 구조를 나타낸 도면이다. 도 2에 나타낸 바와 같이, 로봇(100)의 두 개의 다리(110L, 110R)는 각각 대퇴 링크(21)와 하퇴 링크(22), 발(112L, 112R)을 구비한다. 대퇴 링크(21)는 대퇴 관절부(210)를 통해 상체(102)에 연결된다. 대퇴 링크(21)와 하퇴 링크(22)는 무릎 관절부(220)를 통해 서로 연결되고, 하퇴 링크(22)와 발(112L, 112R)은 발목 관절부(230)를 통해 서로 연결된다.
대퇴 관절부(210)는 3 자유도를 갖는다. 구체적으로 대퇴 관절부(210)는 요유 방향(yaw, Z축 주위의 회전)의 회전 관절(211)과, 피치 방향(pitch, Y축 주위의 회전)의 회전 관절(212), 롤 방향(roll, X축 주위의 회전)의 회전 관절(213)을 갖는다.
무릎 관절부(220)는 피치 방향의 회전 관절(221)을 포함하여 1 자유도를 가진다. 발목 관절부(230)는 피치 방향의 회전 관절(231)과 롤 방향의 회전 관절(232)을 포함하여 2 자유도를 가진다.
두 개의 다리(110L, 110R) 각각에는 세 관절부(210, 220, 230)에 대해 6개의 회전 관절이 마련되므로, 두 개의 다리(110L, 110R) 전체에 대해서는 12개의 회전 관절이 마련된다.
한편 두 개의 다리(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)에 가해지는 하중을 검출한다.
머리(104)에는 주위를 촬영하는 카메라(41)와, 사용자 음성을 입력하는 마이크로폰(42)이 설치된다.
머리(104)는 목 관절부(280)를 통해 상체(102)와 연결된다. 목 관절부(280)는 요우 방향의 회전 관절(281), 피치 방향의 회전 관절(282) 및 롤 방향의 회전 관절(283)을 포함하여 3 자유도를 가질 수 있다.
목 관절부(280)의 각각의 회전 관절(281, 282, 283)에는 머리 회전용 모터들(미도시)이 연결된다.
어깨 관절 어셈블리(250L, 250R)는 상체(102)의 양측에 장착되어 두 개의 팔(106L, 106R)을 상체(102)에 연결한다.
두 개의 팔(106L, 106R)은 상박 링크(31), 하박 링크(32) 및 손(33)을 구비한다. 상박 링크(31)는 어깨 관절 어셈블리(250L. 250R)를 통해 상체(102)에 연결된다. 상박 링크(31)와 하박 링크(32)는 팔꿈치 관절부(260)를 통해 서로 연결되고, 하박 링크(32)와 손(33)은 손목 관절부(270)를 통해 서로 연결된다.
팔꿈치 관절부(260)는 피치 방향의 회전 관절(261)과, 요우 방향의 회전 관절(262)를 포함하여 2 자유도를 가지고, 손목 관절부(270)는 피치 방향의 회전 관절(271)과 롤 방향의 회전 관절(272)을 포함하여 2 자유도를 가질 수 있다.
손(33)에는 5개의 손가락(33a)이 설치된다. 각각의 손(33a)에는 모터에 의해 구동되는 다수의 관절(미도시)들이 설치될 수 있다. 손가락(33a)은 팔(106)의 움직임에 연동하여 물건을 파지하거나 특정 방향을 가리키는 것과 같은 다양한 동작을 실행한다.
상체(102)에는 포즈 센서(pose sensor)(14)가 설치된다. 포즈 센서(14)는 연직축에 대한 상체(102)의 경사 각도와 그 각속도 등을 검출하여 자세 정보를 발생시킨다. 이 포즈 센서(204)는 상체(102) 뿐만 아니라 머리(104)에 설치해도 좋다. 또한 상체(102)를 구성하는 가슴(102a)과 허리(102b) 사이에는 가슴(102a)이 허리(102b)에 대해 회전할 수 있도록 요우(Yaw) 방향의 회전 관절(15)이 설치된다.
도면에 도시되어 있지 않지만, 로봇(100)에는 각 회전 관절을 구동하는 모터 등과 같은 액츄에이터가 설치된다. 로봇(100)의 동작 전반을 제어하는 제어부는 이 모터를 적절히 제어함으로써 로봇(100)의 다양한 동작을 구현할 수 있다.
토크 기반의 FSM 제어방법은, 도 3에 예시적으로 도시한 바와 같이, 로봇의 동작 상태를 미리 정의된 복수개의 상태 (도 3에서는 6개-S1, S2, S3, S4, S5, S6)로 구분한다. 각각의 동작 상태는 보행 시 로봇이 취하는 포즈를 의미하며, 이러한 로봇의 포즈를 적절하게 전환함으로서 원활한 보행이 이루어진다(참고논문: J.Hodgins, "Simulation of Human Running", IEEE ICRA94).
도 3에서 설명된 일실시예의 경우 제1상태(flight)(S1)는 다리를 스윙하는 포즈이고, 제2상태(loading)(S2)는 발을 지면에 내려 놓는 포즈이며, 제3상태(heel contact)(S3)는 발 뒤쪽(heel)을 지면에 접촉시키는 포즈이고, 제4상 태(heel and toe contact)(S4)는 발 뒤쪽(heel)과 앞쪽(toe)을 동시에 지면에 접촉시키는 포즈이며, 제5상태(toe contact)(S5)는 발 앞쪽(toe)을 접촉시키는 포즈이고, 제6상태(unloading)(S6)는 발을 지면에서 떼어 내는 포즈에 해당한다.
각각의 동작 상태에서 다른 동작 상태로 전환하기 위해서는 그 상태 전환을 위한 제어 동작(control action)이 요구된다. 여기서 제1상태에서 제2상태로 전환하는 경우(S1→S2) 발 뒤쪽이 지면에 닿게 하는 제어 동작(heel touches ground)이 요구되고, 제2상태에서 제3상태로 전환하는 경우(S2→S3) 지면에 닿은 발에 연결된 무릎을 구부리는 제어 동작(knee bends)이 요구되며, 제3상태에서 제4상태로 전환하는 경우(S3→S4) 발 앞쪽이 지면에 닿게 하는 제어 동작(ball of foot touches ground)이 요구되고, 제4상태에서 제5상태로 전환하는 경우(S4→S5) 지면에 닿은 발에 연결된 무릎을 펴는 제어 동작(knee extends)이 요구되며, 제5상태에서 제6상태로 전환하는 경우(S5→S6) 지면에 닿은 발에 연결된 무릎을 완전하게 펴는 제어 동작(knee fully extended)이 요구되고, 제6상태에서 제1상태로 전환하는 경우(S6→S1) 발 앞쪽을 지면에서 떼어 내는 제어 동작(ball of foot leaves ground)이 요구된다.
로봇은 제어 동작(control action)의 실행을 위해 각 제어 동작에 대응하여 각 관절의 토크 명령을 계산하며, 계산된 토크 명령에 따라 각 관절에 설치된 모터 등과 같은 액츄에이터를 구동한다.
토크 기반의 보행 제어방법은 이렇게 미리 정의된 각 동작 상태에 의존하여 로봇의 보행을 제어한다. 이때 주어진 임무를 수행하기 위해 어느 한 상태에서 다 른 상태로 전환하는 단순한 처리에 의해서도 보행은 이루어진다. 하지만, 로봇의 동작 상태를 바꾸는 것만으로는 보행 제어가 부적절하여 로봇이 균형을 잃을 수 있다. 이때 보행 로봇이 균형을 잃지 않도록 발을 구르는 동작을 취할 수 있지만, 이러한 밸런싱 동작이 임무를 완수하기까지 시간 지연되거나 에너지 낭비를 초래하므로 이런 비효율적인 동작은 사전에 방지할 필요가 있다.
본 발명에 따른 토크 기반의 FSM 제어방법에서는, 임의의 동작 상태가 선정되면, 그 선정된 동작 상태에 따라 보행 제어를 실행하기 앞서, 로봇의 ZMP를 계산하고, 계산된 로봇의 ZMP가 ZMP 구속조건을 만족하도록 각 관절의 운동량을 보상하여 각 관절의 토크 명령을 계산한다. 이를 자세하게 설명한다.
도 4에 도시한 바와 같이, 본 발명의 일 실시예에 따른 로봇의 제어장치(1)는 제어부(3) 이외에 로봇을 제어하기 위한 사용자 명령을 입력하는 사용자 인터페이스(2)와, 로봇의 각 관절에 설치된 모터 등의 액츄에이터를 구동하는 관절부(11)와, 로봇에 설치되어 각 관절에 가해지는 힘 또는 로봇의 자세 정보를 측정하는 센서부(12)를 포함한다.
제어부(3)는 사용자 인터페이스(2)를 통하여 입력된 사용자 명령과 센서부(12)로부터 제공된 정보를 바탕으로 로봇의 보행 동작을 제어한다. 제어부(3)는 FSM 기반 보행제어부(4)와 임피던스 제어부(9)와 관절 제어부(10)를 포함한다. FSM 기반 보행제어부(4)는 상태전환 제어부(5)와 목표포즈 제어부(6)와 관절토크 제어부(7)와 밸런스 피드백 제어부(8)를 포함한다.
상태전환 제어부(5)가 현재 로봇의 동작 상태 다음으로 취할 동작 상태를 선 정하며, 그 선정된 동작 상태가 로봇이 이행할 목표 포즈가 된다.
목표포즈 제어부(6)가 로봇이 안정되게 목표 포즈를 취할 수 있도록 관절의 운동량을 보상하여 토크 명령을 계산한다. 이를 도 5를 참조하여 자세히 설명한다. 상태전환 제어부(5)의 처리 결과에 따라 목표 포즈를 선정하고(51), 센서부(12)를 통해 로봇에 설치된 포즈 센서 및 각 관절의 위치와 속도와 가속도로부터 현재 로봇의 ZMP를 계산한다(52). 그런 다음 계산된 ZMP가 안전영역에 있는지 판단한다(53).
계산된 ZMP가 안전영역에 있으면 ZMP 구속조건을 만족하는 것으로 인정하여 (식 1)을 이용하여 토크 명령(τ)을 계산한다(54).
(식 1)
τ = kpd-θ)-kd(dθ/dt)
(식 1)에서 kp는 PD제어의 P게인(gain), kd는 PD제어의 D게인(gain)이고, θd는 관절의 목표위치, θ는 관절의 현재위치이다.
계산된 ZMP가 안전영역을 벗어나면, 로봇의 ZMP가 ZMP 구속조건을 만족하는 목표값을 추종하여 안전영역에 들어갈 수 있도록 무게중심(COG; center of gravity)의 보상 운동량(△x(tk+1), △y(tk+1))을 계산한다. 보상 운동량은 (식 2)에 따라 계산한다(55).
(식 2)
△x(tk+1) = Ka(tk)(Px(tk)-Pxd(tk)) + △x(tk)
△y(tk+1) = Ka(tk)(Py(tk)-Pyd(tk)) + △y(tk)
(식 2)에서, tk+1은 현재 제어주기이고, tk는 이전 제어주기이고, Ka는 조정 파라미터이고, Pxd는 X축 목표 ZMP이고, Px는 X축 현재 ZMP이며, Pyd는 Y축 목표 ZMP이고, Py는 Y축 현재 ZMP이며, (△x(tk+1), △y(tk+1))는 X축과 Y축에서의 현재 무게중심(COG)의 보상 운동량이고, (△x(tk), △y(tk))는 X축과 Y축에서의 이전 무게중심(COG)의 보상 운동량이다.
무게 중심의 보상운동량으로부터 자코비안(Jacobian)을 이용한 역기구학(Inverse Kinematics)식을 적용하면 각 관절의 보상운동량 △θ를 구할 수 있다.
목표포즈 제어부(6)는 자코비안으로 계산되는 역기구학을 이용하여 COG의 보상 운동량(△x(tk+1), △y(tk+1))에 대응하는 각 관절의 보상 운동량(△θ(tk+1))을 계산한다(56).
각 관절의 보상 운동량을 구하면, 각 관절의 토크 명령을 (식 3)에 따라 계산한다(57).
(식 3)
τ = kpd + △θ-θ)-kd(dθ/dt)
(식 3)에서, τ는 로봇 관절의 토크 명령이고, kp는 PD제어의 P게인(gain), kd는 PD제어의 D게인(gain)이고, θd는 관절의 목표위치, θ는 관절의 현재위치이고, △θ는 관절의 보상 운동량이고, t는 시간이다.
관절토크 제어부(7)는 계산된 토크 명령에 따라 각 관절의 토크 제어신호를 생성한다. 밸런스 피드백 제어부(8)는 일반적인 FSM제어 (참고논문: K.Yin, K.Loken, M. Panne, "SIMBICON: Simple Biped Locomotion Control", SIGG2007)에서 채택되고 있는 부분으로서 모델링 오차에 의한 에러(unmodeled error)에 대처하고 또한 목표포즈 제어부(6)에서 관절의 운동 보상량을 적용하여도 아직 ZMP가 안전영역에 진입하지 못해 발생할 수 있는 불안정한 상황에 대처하는 역할을 한다.
임피던스 제어부(9)는 FSM 기반 보행제어부(4)에서의 처리 결과에 따라 각 관절의 임피던스 제어(강성 제어)를 수행하기 위한 신호를 출력하고, 그 출력에 따라 관절 제어부(10)는 관절부(11)의 각 관절의 토크 및 위치 제어를 수행한다.
한편 로봇의 보행 환경에 따라 ZMP 제어방법과 FSM 제어방법 중 어느 하나를 선택하여 제어모드를 전환하고 전환된 제어모드에 기초하여 로봇의 보행을 제어할 수 있다.
도 6에 도시한 바와 같이, 제어부(300)는 기본적으로 로봇(100)의 보행 제어를 수행하고, 아울러 로봇(100)의 보행 환경(보행 면의 평탄 여부 또는 장애물 유무 등)에 따라 FSM 기반 보행제어와 ZMP 기반 보행제어 중 어느 하나를 선택하여 로봇(100)의 보행을 제어한다. 제어부(300)는 평탄 지형에서의 보행 또는 비교적 단순한 형태의 보행 제어를 위해 FSM 기반 보행 제어를 선택한다. 한편 제어부(300)는 계단과 같은 비평탄 지형이나 장애물 등으로 인항 보폭 등이 지정되어야 하는 경우 또는 문 열기나 물건 옮기기 등과 같은 정확한 전신 동작 제어가 필요할 때 ZMP 기반 보행 제어를 선택한다.
모드설정부(302)는 모드 스위치(304)와 ZMP-FSM 모드전환부(306)와 FSM-ZMP 모드전환부(308)로 구성된다. 모드스위치(304)는 로봇(100)의 현재 제어모드(FSM 또는 ZMP)와 사용자 인터페이스(310)를 통해 외부로부터 입력되는 사용자 명령, 모션계획부(312)를 통해 입력되는 로봇(100)의 목표 동작에 기초하여 ZMP-FSM 모드전환부(306)와 FSM-ZMP 모드전환부(308) 중 어느 하나를 활성화시켜 로봇(100)의 보행 제어방법을 상호 전환한다. 또한 모드 스위치(304)는 로봇(100)의 보행 제어방법을 상호 전환함에 있어서 보행 데이터베이스(314)의 보행 제어데이터와, FSM 데이터베이스(316)의 FSM 제어데이터와, 센서부(328)를 통해 측정되는 발바닥에 가해지는 힘과 각 관절의 토크, 상체의 자세(기울기), 시각 정보와 청각 정보로 함께 참조한다.
ZMP-FSM 모드전환부(306)는 로봇(100)의 보행 제어를 ZMP 기반 제어모드에서 FSM 기반 제어모드로 전환한다. 로봇(100)의 제어모드가 FSM 기반 제어모드로 전환되면 로봇(100)은 FSM 기반 보행제어부(318)에 의해 FSM 제어 방식으로 그 동작이 제어된다. FSM-ZMP 모드전환부(308)는 로봇(100)의 보행 제어를 FSM 기반 제어 모드에서 ZMP 기반 제어모드로 전환한다. 로봇(100)의 제어 모드가 ZMP 기반 제어모드로 전환되면 로봇(100)은 ZMP 기반 보행제어부(320)에 의해 ZMP 제어방식으로 그 동작이 제어된다. 로봇(100)의 제어는 임피던스 제어부(322)에 의한 각 관절의 임피던스 제어(강성 제어)와 관절 제어부(324)에 의한 각 관절부(326)의 토크 및 위치 제어를 통해 이루어진다.
도 7는 본 발명의 다른 실시예에 따른 로봇의 보행 제어방법을 나타낸 흐름도로서, 이 로봇의 제어 방법에 따르면 새로운 동작 명령이 입력되고 그 동작 명령이 제어 모드의 변경을 필요로 하는 경우 해당 동작의 수행에 바람직한 제어모드로 전환하여 로봇을 제어한다.
로봇(100)은 지정된 동작을 수행하는 동안 새로운 동작 명령이 발생하면 이 새로운 동작 명령에 따른 동작을 수행하기 위해 현재의 제어 모드를 다른 제어 모드로 변경할 필요가 있는지 판단한다(401)(403).
새롭게 발생한 동작 명령의 동작에 필요한 제어모드로 로봇(100)의 동작 모드를 전환한다. 예를 들면 새롭게 발생한 동작 명령의 동작이 평탄 지형에서의 보행 또는 비교적 단순한 형태의 보행인 경우에는 FSM 제어모드를 선택한다. 이와 달리 계단과 같은 비평탄 지형이나 장애물 등으로 인하여 보폭 등이 지정되어야 하는 경우 또는 문 열기나 물건 옮기기 등과 같은 정확한 전신 동작 제어가 필요한 경우에는 ZMP 제어모드를 선택한다.
제어모드의 변경이 불필요하면(403의 아니오) 기존의 제어모드에 따라 보행을 제어한다(404).
제어모드의 변경이 필요하면, 변경한 제어모드가 FSM 제어모드인지 판단한다(405). 그 판단 결과 변경할 제어모드로 ZMP 제어모드가 선택되면 그 ZMP 제어모드에 따라 로봇(100)의 보행을 제어한다(406).
변경할 제어모드로 FSM 제어모드가 선택되면, FSM 기반 보행제어부(318)에 의해 FSM 제어 방식으로 그 동작이 제어된다. FSM 기반 보행제어부(318)가 로봇(100)의 보행 제어하는 다음의 동작(407, 409, 411, 413, 415, 417, 419)은 전술한 실시예에서 설명했던 도 5의 제어 방법(51, 52, 53, 54, 55, 56, 57)를 적용할 수 있으며, 이에 대해서는 간략하게 설명한다.
FSM 기반 보행제어부(318)는 로봇의 목표 포즈를 선정하고(51), 센서부(328)를 통해 제공되는 각 관절의 위치와 속도와 가속도로부터 현재 로봇의 ZMP를 계산한다(409). 그런 다음 계산된 ZMP가 안전영역에 있는지 판단한다(411).
계산된 ZMP가 안전영역에 있으면 ZMP 구속조건을 만족하는 것으로 인정하여 그에 대응하는 (식 1)을 이용하여 토크 명령(τ)을 계산한다(413). 계산된 ZMP가 안전영역을 벗어나면, 로봇의 ZMP가 ZMP 구속조건을 만족하는 안전영역에 들어갈 수 있도록 COG의 보상 운동량을 (식 2)를 이용하여 계산한다(415). 그런 다음 운동역학방정식을 이용하여 계산한 보상 운동량에 대응하는 각 관절의 보상 운동량을 계산한다(417). 각 관절의 보상 운동량을 구하면, 각 관절의 토크 명령을 (식 3)에 따라 계산한다(419). 이후 관절의 토크 명령에 따라 각 관절의 토크를 제어함으로서 로봇의 보행을 안정적으로 제어한다(421).
도 1은 본 발명의 일 실시예에 따른 로봇의 외관을 나타낸 도면이다.
도 2는 도 1의 로봇의 관절 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 FSM 기반 보행 시 적용하는 로봇 동작 상태 및 제어 동작을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 로봇의 보행 제어장치의 블록도이다.
도 5는 본 발명의 일 실시예예 따른 로봇의 보행 제어방법을 나타낸 흐름도이다.
도 6은 본 발명의 다른 실시예에 따른 로봇의 보행 제어장치의 블록도이다.
도 7는 본 발명의 다른 실시예에 따른 로봇의 보행 제어방법을 나타낸 흐름도이다.
*도면의 주요부분에 대한 부호 설명*
1 : 로봇 제어장치
2 : 사용자 인터페이스
3 : 제어부
4 : 보행 제어부

Claims (11)

  1. 복수의 다리를 가진 로봇; 및
    FSM(Finite State Machine) 기반의 보행 제어모드에 따라 상기 로봇의 동작 상태를 전환할 때 상기 로봇의 ZMP(Zero Moment Point)의 위치에 따라 로봇 관절의 운동량을 보상하고, 상기 보상된 로봇 관절의 운동량에 따라 상기 로봇 관절의 토크 명령을 계산하고, 상기 계산된 토크 명령에 따라 상기 로봇의 보행을 제어하는 제어부를 포함하는 로봇의 보행 제어장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제어부는 상기 로봇의 ZMP가 미리 정의된 안전영역에 들어오도록 상기 로봇 관절의 운동량을 보상하는 로봇의 보행 제어장치.
  4. 제3항에 있어서,
    상기 미리 정의된 안전영역은 상기 로봇의 ZMP 구속조건을 만족하도록 설정되는 로봇의 보행 제어장치.
  5. 제3항에 있어서,
    상기 제어부는 상기 로봇에 설치된 센서를 이용하여 얻은 각 관절의 위치와 속도와 가속도에 따라 상기 로봇의 ZMP를 계산하는 로봇의 보행 제어장치.
  6. 복수의 다리를 가진 로봇; 및
    FSM(Finite State Machine) 기반의 보행 제어모드와 ZMP(Zero Moment Point) 기반의 보행 제어모드 중 어느 하나의 보행 제어모드를 선택하고, FSM 기반의 보행 제어모드에 따라 상기 로봇의 동작 상태를 전환할 때 상기 로봇의 ZMP의 위치에 따라 로봇 관절의 운동량을 보상하고, 상기 보상된 로봇 관절의 운동량에 따라 상기 로봇 관절의 토크 명령을 계산하고, 상기 계산된 토크 명령에 따라 상기 로봇의 보행을 제어하는 제어부를 포함하는 로봇의 보행 제어장치.
  7. FSM(Finite State Machine) 기반의 보행 제어모드에 따라 로봇의 동작 상태를 선정하고;
    상기 선정된 동작 상태로 전환하는 상기 로봇의 ZMP(Zero Moment Point)를 계산하고;
    상기 로봇의 ZMP가 미리 정의된 안전영역에 존재하는지 여부를 판단하여 로봇 관절의 보상 운동량을 계산하고;
    상기 로봇 관절의 보상 운동량에 기초하여 상기 로봇 관절의 토크 명령을 계산하고;
    상기 로봇 관절의 토크 명령에 따라 상기 로봇의 보행을 제어하는 로봇의 보행 제어방법.
  8. 제7항에 있어서,
    상기 로봇의 ZMP가 상기 미리 정의된 안전영역에 존재하지 않으면 (식 2)에 따라 상기 로봇 관절의 보상 운동량을 계산하는 로봇의 보행 제어방법.
    (식 2)
    △x(tk+1) = Ka(tk)(Px(tk)-Pxd(tk)) + △x(tk)
    △y(tk+1) = Ka(tk)(Py(tk)-Pyd(tk)) + △y(tk)
    여기서, tk+1은 현재 제어주기이고, tk는 이전 제어주기이고, Ka는 조정 파라미터이고, Pxd는 X축 목표 ZMP이고, Px는 X축 현재 ZMP이며, Pyd는 Y축 목표 ZMP이고, Py는 Y축 현재 ZMP이며, (△x(tk+1), △y(tk+1))는 X축과 Y축에서의 현재 무게중심(COG)의 보상 운동량이고, (△x(tk), △y(tk))는 X축과 Y축에서의 이전 무게중심(COG)의 보상 운동량이다.
  9. 제8항에 있어서,
    상기 로봇 관절의 보상 운동량을 이용하여 다음 (식 3)에 따라 상기 로봇 관절의 토크 명령을 계산하는 로봇의 보행 제어방법.
    (식 3)
    τ = kpd + △θ-θ)-kd(dθ/dt)
    여기서, τ는 로봇 관절의 토크 명령이고, kp는 PD제어의 P게인(gain), kd는 PD제어의 D게인(gain)이고, θd는 관절의 목표위치, θ는 관절의 현재위치이고, △θ는 관절의 보상 운동량이고, t는 시간이다.
  10. 사용자 명령과 센서부로부터 받은 정보를 이용하여 판단한 보행 환경에 따라 FSM(Finite State Machine) 기반의 보행 제어모드와 ZMP(Zero Moment Point) 기반의 보행 제어모드 중 어느 하나의 보행 제어모드를 선택하고;
    FSM 기반의 제어모드에 따라 로봇의 동작 상태를 전환할 때 상기 로봇의 ZMP의 위치에 따라 로봇 관절의 운동량을 보상하고;
    상기 보상된 로봇 관절의 운동량에 따라 상기 로봇 관절의 토크 명령을 계산하고;
    상기 계산된 토크 명령에 따라 상기 로봇의 보행을 제어하는 로봇의 보행 제어방법.
  11. 제10항에 있어서,
    상기 로봇 관절의 운동량 보상은,
    상기 로봇의 동작 상태를 선정하고, 상기 선정된 동작 상태로 전환하는 상기 로봇의 ZMP를 계산하고, 상기 로봇의 ZMP가 미리 정의된 안전영역에 들어오도록 상기 로봇 관절의 운동량을 보상하는 로봇의 보행 제어방법.
KR1020090005678A 2009-01-22 2009-01-22 로봇의 보행 제어장치 및 그 방법 KR101549817B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090005678A KR101549817B1 (ko) 2009-01-22 2009-01-22 로봇의 보행 제어장치 및 그 방법
US12/656,020 US8612054B2 (en) 2009-01-22 2010-01-13 Robot walking control apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090005678A KR101549817B1 (ko) 2009-01-22 2009-01-22 로봇의 보행 제어장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20100086355A KR20100086355A (ko) 2010-07-30
KR101549817B1 true KR101549817B1 (ko) 2015-09-04

Family

ID=42337588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090005678A KR101549817B1 (ko) 2009-01-22 2009-01-22 로봇의 보행 제어장치 및 그 방법

Country Status (2)

Country Link
US (1) US8612054B2 (ko)
KR (1) KR101549817B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11230001B2 (en) * 2018-12-28 2022-01-25 Ubtech Robotics Corp Ltd Biped robot gait control method and biped robot

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8138707B2 (en) * 2007-10-23 2012-03-20 Honda Motor Co., Ltd. Bipedal walking robot
KR20100001567A (ko) * 2008-06-27 2010-01-06 삼성전자주식회사 보행 로봇 및 그 제어 방법
KR101667032B1 (ko) * 2009-10-30 2016-10-17 삼성전자 주식회사 로봇의 경로 계획 장치 및 그 방법
KR101766755B1 (ko) * 2010-08-17 2017-08-10 삼성전자주식회사 보행 로봇 및 그 제어방법
KR20120060578A (ko) * 2010-12-02 2012-06-12 삼성전자주식회사 보행 로봇 및 그 자세 제어 방법
KR101809972B1 (ko) * 2010-12-21 2017-12-18 삼성전자주식회사 보행 로봇 및 그 제어방법
KR20120071599A (ko) * 2010-12-23 2012-07-03 삼성전자주식회사 보행 로봇 및 그 제어 방법
KR101953113B1 (ko) * 2011-05-30 2019-03-05 삼성전자주식회사 로봇 및 그 제어방법
JP5991857B2 (ja) * 2011-06-10 2016-09-14 三星電子株式会社Samsung Electronics Co.,Ltd. ロボットの均衡制御装置及びその制御方法
KR101985790B1 (ko) * 2012-02-21 2019-06-04 삼성전자주식회사 보행 로봇 및 그 제어 방법
US9292786B2 (en) * 2014-02-03 2016-03-22 Disney Enterprises, Inc. Universal balancing controller for lateral stabilization of bipedal robots in dynamic unstable environments
US9308648B2 (en) * 2014-07-24 2016-04-12 Google Inc. Systems and methods for robotic self-right
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
CN105511465B (zh) * 2015-12-02 2017-08-04 歌尔股份有限公司 一种双足机器人的步态控制方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004009205A (ja) * 2002-06-06 2004-01-15 Mitsuba Corp 2足歩行ロボット

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4308615A (en) * 1979-09-17 1981-12-29 Honeywell Information Systems Inc. Microprocessor based maintenance system
EP1344612B1 (en) * 2000-11-17 2011-01-05 Sony Corporation Device and method for controlling motion of legged mobile robot, and motion unit generating method for legged mobile robot
KR100837988B1 (ko) * 2000-11-20 2008-06-13 소니 가부시끼 가이샤 각식 이동 로봇을 위한 동작 제어 장치 및 동작 제어방법, 및 로봇 장치
GB0104995D0 (en) * 2001-02-28 2001-04-18 Isis Innovation Artificial morpho-functional multiped and motion controller therefor
US7103447B2 (en) * 2002-09-02 2006-09-05 Sony Corporation Robot apparatus, and behavior controlling method for robot apparatus
JP4587738B2 (ja) * 2003-08-25 2010-11-24 ソニー株式会社 ロボット装置及びロボットの姿勢制御方法
US20060026162A1 (en) * 2004-07-19 2006-02-02 Zoran Corporation Content management system
US7313463B2 (en) * 2005-03-31 2007-12-25 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics
US8467904B2 (en) * 2005-12-22 2013-06-18 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of pose of articulated systems
JP4836592B2 (ja) * 2006-02-09 2011-12-14 ソニー株式会社 ロボット装置及びその制御方法
JP4930003B2 (ja) * 2006-11-20 2012-05-09 株式会社日立製作所 移動ロボット

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004009205A (ja) * 2002-06-06 2004-01-15 Mitsuba Corp 2足歩行ロボット

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11230001B2 (en) * 2018-12-28 2022-01-25 Ubtech Robotics Corp Ltd Biped robot gait control method and biped robot

Also Published As

Publication number Publication date
KR20100086355A (ko) 2010-07-30
US20100185330A1 (en) 2010-07-22
US8612054B2 (en) 2013-12-17

Similar Documents

Publication Publication Date Title
KR101549817B1 (ko) 로봇의 보행 제어장치 및 그 방법
KR101985790B1 (ko) 보행 로봇 및 그 제어 방법
JP5916998B2 (ja) 人間型ロボット及びその歩行制御方法
KR101687628B1 (ko) 로봇의 보행 제어 장치 및 그 제어 방법
EP2347867B1 (en) Walking control apparatus of robot and method of controlling the same
JP5607886B2 (ja) 歩行ロボット及びその制御方法
KR101687629B1 (ko) 인간형 로봇 및 그 보행 제어방법
JP3599244B2 (ja) ロボット装置、ロボット装置の運動制御装置並びに運動制御方法
KR101687630B1 (ko) 보행 로봇 및 그 균형 제어 방법
KR101809972B1 (ko) 보행 로봇 및 그 제어방법
US20130116820A1 (en) Walking robot and control method thereof
US20110172824A1 (en) Walking robot and method of controlling the same
KR101766755B1 (ko) 보행 로봇 및 그 제어방법
KR20120024098A (ko) 보행 로봇 및 그 제어방법
KR101760883B1 (ko) 로봇 및 그 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180717

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190717

Year of fee payment: 5