KR101687629B1 - 인간형 로봇 및 그 보행 제어방법 - Google Patents

인간형 로봇 및 그 보행 제어방법 Download PDF

Info

Publication number
KR101687629B1
KR101687629B1 KR1020100004286A KR20100004286A KR101687629B1 KR 101687629 B1 KR101687629 B1 KR 101687629B1 KR 1020100004286 A KR1020100004286 A KR 1020100004286A KR 20100004286 A KR20100004286 A KR 20100004286A KR 101687629 B1 KR101687629 B1 KR 101687629B1
Authority
KR
South Korea
Prior art keywords
zmp
joint
robot
calculated
measured
Prior art date
Application number
KR1020100004286A
Other languages
English (en)
Other versions
KR20110084631A (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 KR1020100004286A priority Critical patent/KR101687629B1/ko
Priority to US13/006,821 priority patent/US8682488B2/en
Priority to EP11151203A priority patent/EP2347866B1/en
Publication of KR20110084631A publication Critical patent/KR20110084631A/ko
Application granted granted Critical
Publication of KR101687629B1 publication Critical patent/KR101687629B1/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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D10/00District heating systems
    • F24D10/003Domestic delivery stations having a heat exchanger
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D19/00Details
    • F24D19/10Arrangement or mounting of control or safety devices
    • F24D19/1006Arrangement or mounting of control or safety devices for water heating systems
    • F24D19/1009Arrangement or mounting of control or safety devices for water heating systems for central heating
    • F24D19/1015Arrangement or mounting of control or safety devices for water heating systems for central heating using a valve or valves
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D2220/00Components of central heating installations excluding heat sources
    • F24D2220/04Sensors
    • F24D2220/042Temperature sensors
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D2220/00Components of central heating installations excluding heat sources
    • F24D2220/04Sensors
    • F24D2220/044Flow sensors

Abstract

FSM 기반 보행 시 ZMP 에러를 보상하여 안정적인 보행을 구현하는 인간형 로봇과 그 보행 제어방법을 개시한다. 인간형 로봇은 로봇의 ZMP 안정 영역에서 계산 ZMP의 위치와 측정 ZMP의 위치에 따라 구분되는 각각의 경우에 따라 계산된 보상값들을 이용하여 관절 위치 궤적 명령이나 관절 토크 궤적 명령을 보상하여 관절에 설치된 엑츄에이터를 구동시킬 수 있다.

Description

인간형 로봇 및 그 보행 제어방법{HUMANOID ROBOT AND WALKING CONTROL METHOD THEREOF}
FSM 기반 보행 시 ZMP 에러를 보상하여 안정적인 보행을 구현하는 인간형 로봇 및 그 보행 제어방법에 관한 것이다.
인간과 유사한 관절 체계를 가지고 인간의 작업 및 생활공간에 용이하게 적용될 수 있는 두 발로 걷는 보행 로봇의 연구 개발이 활발하게 진행되고 있다.
이족 로봇의 보행 제어 방법으로는 위치 기반의 Zero Moment Point(이하, ZMP라 한다) 보행 제어방법과 토크 기반의 동적 보행 제어방법 또는 Finite State Machine(이하, FSM라 한다) 보행 제어방법이 있다.
ZMP 기반 보행 제어방법은 보행 방향, 보행 폭, 보행 속도 등을 미리 설정하고, 이 설정에 대응하는 양발과 몸통의 보행 패턴을 ZMP 구속조건에 의해 생성하며, 그 보행 패턴의 역기구학(Inverse Kinematics) 계산을 통해 각 다리의 관절 위치 궤적을 계산한다. 또한, 각 다리의 관절이 계산된 관절 위치 궤적을 추종하도록 하는 위치 서보 제어(position servo control)를 통해 구현된다. 보행 시 각 다리의 관절은 보행패턴으로부터 구한 관절 위치의 궤적을 정확히 추종하도록 제어한다.
ZMP 기반 보행 제어방법은 역기구학으로부터 각 관절의 각도를 계산할 때 기구학적 특이점(kinematic singularity)을 피해야 하므로 보행 중 무릎을 항상 굽힌 자세를 유지해야 하기 때문에 인간과 다른 부자연스러운 보행을 할 수 있다.
ZMP 기반 보행 제어 방법은 ZMP를 제어하기 위해 각 관절의 정확한 위치 제어를 수행해야 하므로 높은 위치 서보 제어 게인(gain)을 필요로 한다. 그 결과 모터에서 높은 전류를 필요로 하기 때문에 에너지 비효율적이고, 관절의 강성이 커져서 주위환경에의 충돌 시 큰 충격을 줄 수 있다.
FSM 기반 보행 제어방법은 보행 로봇의 각 동작의 상태(여기서 상태라 함은 FSM에서의 상태(state)를 의미한다)를 미리 정의해 두고, 보행 시 각 동작의 상태(state)를 참조하여 각 관절의 토크를 제어하여 적절히 보행하는 방식이다.
FSM 기반 보행 제어방법은 보행 시 동작 상태를 바꿈으로써 로봇이 다양한 포즈를 취할 수 있으나 한정된 동작 상태에서 선정해야 하는 제약으로 인하여 임무 수행을 위한 보행 동작과 관계 없이 로봇의 균형을 잡기 위한 별도의 동작을 하게 된다. 이러한 밸런싱 동작은 로봇의 발을 구르는 스텝 모션이 대표적이며, 이러한 불필요한 동작으로 인하여 시간 지연이 발생하고 에너지가 낭비된다.
4족 보행 로봇에 비하여 로봇의 균형 유지가 어려운 이족 로봇과 같은 인간형 로봇에 FSM 기반 보행을 적용하기 위해서는 인간형 로봇이 주위 환경과 상호 작용하는 것을 감안할 필요가 있다. 즉 주위 환경에 따라 로봇의 동작 상태를 피드백하여 보행 동작을 제어하는 것이 요구된다.
FSM 기반 보행 제어 시 ZMP 에러를 보상하여 안정적인 보행을 구현하는 인간형 로봇 및 그 보행 제어방법을 개시한다.
본 발명의 실시예에 따른 인간형 로봇은, 로봇 보행 시 움직일 수 있는 관절들을 포함하는 로봇 관절부; 상기 로봇의 착지 정보와 자세 정보를 측정하는 센서부; 상기 로봇의 보행 패턴으로 로봇의 보행을 실행하기 위해 상기 각 관절의 관절 위치 궤적 명령이나 관절 토크 궤적 명령을 계산하는 보행패턴 생성부; 상기 보행패턴 생성부에 의해 계산된 관절의 궤적을 이용하여 계산된 상기 로봇의 계산 ZMP를 출력하는 ZMP 계산부; 상기 센서부의 측정값으로 측정된 상기 로봇의 측정 ZMP를 출력하는 ZMP 측정부; 상기 ZMP 계산부에 의해 계산된 계산 ZMP와 상기 ZMP 측정부에 의해 측정된 측정 ZMP를 이용하여 상기 관절 위치 궤적 명령이나 상기 관절 토크 궤적 명령을 보상하기 위한 보상값을 계산하여 출력하는 보상값 계산부; 상기 보행패턴 생성부에 의해 계산된 관절 위치 궤적 명령 또는 관절 토크 궤적 명령에 상기 보상값 계산부에 의해 계산된 보상값을 더하여 관절 위치 궤적 명령 또는 관절 토크 궤적 명령을 보상하는 보상부;를 포함한다.
상기 보행패턴 생성부가 왼발 또는 오른발이 지면에 착지할 경우 서로 스위칭하는 복수의 상태 머신과, 상기 복수의 상태 머신의 스위칭에 따라 왼발 또는 오른발의 착지 상태를 판단하여 상기 각 관절의 관절 위치 궤적 명령을 계산하는 관절 위치 궤적 계산부를 포함한다.
상기 보행패턴 생성부가 상기 관절 위치 궤적 명령을 이용하여 관절 토크 궤적 명령을 계산하는 관절 토크 궤적 계산부를 더 포함한다.
상기 관절 토크 궤적 계산부가 식 1과 같이 각 관절의 관절 토크 명령(
Figure 112010003075910-pat00001
)을 계산한다.
Figure 112010003075910-pat00002
Figure 112010003075910-pat00003
(
Figure 112010003075910-pat00004
-
Figure 112010003075910-pat00005
)
Figure 112010003075910-pat00006
식 1
여기서
Figure 112010003075910-pat00007
는 관절 위치 궤적 명령이고,
Figure 112010003075910-pat00008
는 모터 등의 엑츄에이터로부터 피드백되는 현재 관절 위치이고,
Figure 112010003075910-pat00009
는 비례 게인이고,
Figure 112010003075910-pat00010
는 미분된 관절 위치 궤적 명령이고,
Figure 112010003075910-pat00011
는 미분된 현재 관절 위치이고,
Figure 112010003075910-pat00012
는 미분 게인이고,
Figure 112010003075910-pat00013
는 역 운동학 방정식을 이용하여 미리 계산된 피드포워드 파라미터이다.
상기 ZMP 계산부가 로봇의 질량모델로부터 식2와 같이 계산 ZMP(Pxc, Pyc)를 계산한다.
Figure 112010003075910-pat00014
Figure 112010003075910-pat00015
식 2
여기서
Figure 112016049459596-pat00016
은 F/T 센서의 개수이고,
Figure 112016049459596-pat00017
는 로봇의 i번째 링크의 질량이고,
Figure 112016049459596-pat00147
,
Figure 112016049459596-pat00148
,
Figure 112016049459596-pat00149
는 로봇의 i번째 링크의 무게 중심의 x축, y축, z축 방향의 위치이고,
Figure 112016049459596-pat00150
는 ZMP의 z축 좌표이고,
Figure 112016049459596-pat00018
,
Figure 112016049459596-pat00019
,
Figure 112016049459596-pat00020
는 로봇의 i번째 링크의 무게 중심의 x축, y축, z축 방향의 가속도이고,
Figure 112016049459596-pat00021
는 로봇의 i번째 링크의 관성 모멘트(moment of inertia)이고,
Figure 112016049459596-pat00022
는 로봇의 i번째 링크의 각속도이고,
Figure 112016049459596-pat00023
는 중력 가속도이고, (0,1,0)는 3 by 1 행렬이다.
상기 ZMP 측정부가 상기 센서부의 측정값을 이용하여 식 3과 같이 로봇의 측정 ZMP(Pxm, Pym)를 출력한다.
Figure 112010003075910-pat00024
Figure 112010003075910-pat00025
식 3
여기서
Figure 112010003075910-pat00026
은 F/T 센서의 개수이고,
Figure 112010003075910-pat00027
Figure 112010003075910-pat00028
Figure 112010003075910-pat00029
는 i번째 F/T 센서로 힘 측정 시 x축, y축, z축 방향의 기준 위치이고,
Figure 112010003075910-pat00030
는 ZMP의 z축 좌표이고,
Figure 112010003075910-pat00031
Figure 112010003075910-pat00032
는 i번째 F/T 센서의 x축, y축 방향의 모멘트이고,
Figure 112010003075910-pat00033
Figure 112010003075910-pat00034
Figure 112010003075910-pat00035
는 i번째 F/T 센서의 x축, y축, z축 방향의 힘이다.
상기 보상값 계산부가 계산 ZMP와 측정 ZMP를 이용하여 보상값을 계산하되, 보상하려는 관절의 계산 ZMP와 측정 ZMP의 차이에 비례 게인을 곱셈한 값과 미분된 계산 ZMP와 미분된 측정 ZMP의 차이에 미분 게인을 곱셈한 값을 보상값으로 출력한다.
상기 보상부가 상기 로봇의 안정 영역에서 계산 ZMP의 위치와 측정 ZMP의 위치에 따라 구분되는 각각의 경우에 따라 보상한다.
본 발명의 실시예에 따른 인간형 로봇의 보행 제어방법은, 로봇의 보행 패턴에 따라 로봇의 보행을 실행하기 위해 각 관절의 관절 위치 궤적 명령이나 관절 토크 궤적 명령을 계산하고; 상기 보행 패턴에 의해 계산된 관절의 궤적을 이용하여 상기 로봇의 계산 ZMP를 계산하고; 상기 로봇에 설치된 센서로 측정된 측정값으로 상기 로봇의 측정 ZMP를 측정하고, 상기 계산 ZMP와 상기 측정 ZMP를 이용하여 상기 관절 위치 궤적 명령이나 상기 관절 토크 궤적 명령을 보상하기 위한 보상값을 계산하고; 상기 보상값을 이용하여 상기 관절 위치 궤적 명령 또는 상기 관절 토크 궤적 명령을 보상하는 것;을 포함한다.
상기 보상값을 계산하는 것은 보상하려는 관절의 계산 ZMP와 측정 ZMP의 차이에 비례 게인을 곱셈하고, 미분된 계산 ZMP와 미분된 측정 ZMP의 차이에 미분 게인을 곱셈하는 것을 포함한다.
상기 관절 위치 궤적 명령 또는 상기 관절 토크 궤적 명령을 보상하는 것은 상기 로봇의 안정 영역에서 계산 ZMP의 위치와 측정 ZMP의 위치에 따라 구분되는 각각의 경우에 따라 보상한다.
상기 계산 ZMP와 상기 측정 ZMP가 모두 안정 영역 안에 위치하는 경우, 상기 측정 ZMP를 이동시켜 상기 계산 ZMP를 추종하도록 보상한다.
상기 계산 ZMP가 안정 영역에 위치하고 상기 측정 ZMP가 안정 영역 밖에 위치하는 경우, 상기 안정영역 밖에 위치하는 측정 ZMP를 이동시켜 상기 안정 영역 안에 위치하는 계산 ZMP를 추종하도록 보상한다.
상기 계산 ZMP가 안정 영역 밖에 위치하고 상기 측정 ZMP가 안정 영역 안에 위치하는 경우, 상기 보상값을 이용하여 보상하는 동작을 실행하지 않는다.
상기 계산 ZMP와 상기 측정 ZMP가 모두 안정 영역 밖에 위치하는 경우, 상기 계산 ZMP의 위치에서 가장 가까운 안정 영역의 경계점을 이용하여 계산된 보상값으로 보상한다.
이상과 같이 실시예에 의한 인간형 로봇 및 그 보행 제어방법은, FSM 기반 보행 제어에 의해 모터 토크를 서보 제어하므로 기존의 보행 방법보다 다음과 같은 장점을 가질 수 있다. 먼저 보행 중 각 관절의 위치를 정확하게 제어할 필요가 없으므로 낮은 서보 게인으로 보행이 가능하여 에너지 소비를 줄일 수 있다. 또한 보행 중 각 관절의 저강성을 가짐으로써 주위 환경과의 충돌 시 충격을 적게할 수 있어 안전하며, 역기구학을 풀어야 하는 기존의 보행 방법에서 실행하기 어려운 무릎 펴기 보행을 할 수 있어 인간 친화적인 보행을 구현할 수 있고 무릎을 굽히는데 필요한 에너지를 절약할 수 있다. 또한 복잡한 동역학 방정식을 풀지 않아도 되므로 6자유도의 관절을 가진 로봇에 적용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 인간형 로봇의 외관을 나타낸 도면이다.
도 2는 도 1의 인간형 로봇의 관절 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 FSM 기반 보행 시 적용하는 로봇 동작 상태 및 제어 동작을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 인간형 로봇의 제어 블록도이다.
도 5는 도 4의 보행패턴 생성부가 관절 위치 궤적 명령을 출력하기 위한 상세 구성도이다.
도 6은 도 4의 보행패턴 생성부가 관절 위치 궤적 명령을 이용하여 관절 토크 궤적 명령을 출력하기 위한 상세 구성도이다.
도 7a 내지 도 7d은 본 발명의 일 실시예에 따른 계산 ZMP와 측정 ZMP가 일치하는 않는 각각 경우를 나타내는 것으로, 도 7a는 계산 ZMP와 측정 ZMP가 모두 안정 영역에 위치하는 경우이고, 도 7b는 계산 ZMP가 안정 영역에 위치하고 측정 ZMP가 안정 영역 밖에 위치하는 경우이고, 도 7c는 계산 ZMP가 안정 영역 밖에 위치하고 측정 ZMP가 안정 영역에 위치하는 경우이고, 도 7d는 계산 ZMP와 측정 ZMP가 모두 안정 영역 밖에 위치하는 경우이다.
도 8은 본 발명의 일 실시예에 따른 인간형 로봇의 보행 제어방법을 나타낸 흐름도이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
도 1에 도시한 바와 같이, 인간형 로봇(100)의 상체(102) 상부에는 목(120)을 통해 머리(104)가 연결된다. 상체(102) 상부 양측에는 어깨(114L, 114R)를 통해 두 개의 팔(106L, 106R)이 연결된다. 두 개의 팔(106L, 106R) 각각의 말단에는 손(33L, 33R)이 연결된다. 상체(102)의 하부 양측에는 두 개의 다리(110L, 110R)가 연결된다. 두 개의 다리(110L, 110R) 각각의 말단에는 발(112L, 112R)이 연결된다.
머리(104)와 두 개의 팔(106L, 106R), 두 개의 다리(110L, 110R), 각각 두 개씩의 손(33L, 33R)과 발(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)의 경사 각도와 그 각속도 등을 검출하여 자세 정보를 발생시킨다. 이 포즈 센서(14)는 상체(102) 뿐만 아니라 머리(104)에 설치해도 좋다. 또한 상체(102)를 구성하는 가슴(102a)과 허리(102b) 사이에는 가슴(102a)이 허리(102b)에 대해 회전할 수 있도록 요우 방향의 회전 관절(15)이 설치된다.
도면에 도시되어 있지 않지만, 인간형 로봇(100)에는 각 회전 관절을 구동하는 모터 등과 같은 액츄에이터가 설치된다. 이 모터를 적절히 제어함으로써 인간형 로봇(100)의 다양한 동작을 구현할 수 있다.
FSM 기반 보행 제어방법은, 도 3에 예시한 바와 같이, 로봇의 동작 상태를 미리 정의된 6개(S1, S2, S3, S4, S5, S6)로 구분할 수 있다. 각각의 동작 상태는 보행 시 로봇이 취하는 포즈를 의미한다.
제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)는 발을 지면에서 떼어 내는 포즈에 해당한다.
도 4는 본 발명의 일 실시예에 따른 인간형 로봇의 제어 블록도이고, 도 5는 도 4의 보행패턴 생성부가 관절 위치 궤적 명령을 출력하기 위한 상세 구성도이고, 도 6은 도 4의 보행패턴 생성부가 관절 위치 궤적 명령을 이용하여 관절 토크 궤적 명령을 출력하기 위한 상세 구성도이다.
도 4에 도시한 바와 같이, 인간형 로봇(100)은 보행패턴 생성부(300), 보상부(310), 엑츄에이터 구동부(320), 로봇 관절부(330), ZMP 계산부(340), 보상값 계산부(350), ZMP 측정부(360), 센서부(370)를 포함한다.
로봇 관절부(330)는 로봇 보행을 위한 두 개의 다리(110L, 110R)의 대퇴 관절부(210), 무릎 관절부(220), 발목 관절부(230) 전체의 12개 회전 관절을 포함하는 것으로, 이때 두 개의 다리에 속하는 관절만으로 한정되는 것은 아니고 안정적인 보행을 위해 상체와 팔 등 인간형 로봇(100)의 모든 관절을 포함할 수 있다.
센서부(370)는 로봇의 자세 정보를 측정하기 위해 상체(102)에 설치된 포즈 센서(14)와 로봇의 착지 정보를 측정하기 위해 발목 관절부(230)에 설치된 다축 F/T 센서(24)와, 로봇 관절부(330)의 각 관절에 설치된 모터 등과 같은 엑츄에이터의 회전을 측정하는 엔코더(도시하지 않음)를 포함할 수 있다.
보행패턴 생성부(300)가 로봇의 포즈에 따라 각 다리의 보행 궤적을 정의하는 로봇의 보행 패턴을 생성한다. 이때 보행 패턴에 따라 로봇의 보행을 실행하려면 각 관절을 움직일 수 있도록 각 관절의 관절 위치 궤적 명령을 계산하는 것이 필요한데, 도 5의 보행패턴 생성부(300)가 그러한 예이다.
도 5에서 보행 패턴 생성부(300)는 상태 머신 1(301), 상태 머신 2(302), 관절 위치 궤적 계산부(303)를 포함한다.
상태 머신 1(301)과 상태 머신(302)는 오른발 또는 왼발이 지면에 착지할 경우 발목 관절부(230)에 설치된 F/T 센서(24)의 착지 신호에 따라 서로 스위칭을 한다. 왼발이 스윙하고 오른발이 착지 상태이면 상태 머신 2(302)에서 상태 머신 1(301)로 스위칭하고, 오른발이 스윙하고 왼발이 착지 상태이면 상태 머신 1(301)에서 상태 머신 2(302)로 스위칭한다.
관절 위치 궤적 계산부(303)는 상태 머신 1(301)과 상태 머신2(302)의 스위칭에 따라 왼발과 오른발의 착지 상태를 판단하여 로봇 관절부(330)의 각 관절의 위치 궤적 명령 (
Figure 112010003075910-pat00036
)을 계산한다.
관절 위치 궤적 명령(
Figure 112010003075910-pat00037
)을 생성하는 다른 예로는, 사람의 모션을 캡쳐하고 한 주기내에서 각 관절의 움직임을 추출한 후 이 추출 정보를 바탕으로 인간형 로봇의 관절 위치에 매칭시켜서 관절 위치 궤적 명령을 계산할 수도 있다.
보행패턴 생성부(300)는 보행 패턴에 따라 각 관절을 움직이도록 각 관절의 관절 위치 궤적 명령을 이용하여 관절 토크 궤적 명령을 계산할 수 있다. 도 6의 보행패턴 생성부(300a)가 그러한 예이며 도 5와 비교하여 관절 토크 궤적 계산부(304)를 추가로 포함한다.
도 6에서 관절 위치 궤적 계산부(303)가 상태 머신 1(301)과 상태 머신2(302)의 스위칭에 따라 왼발과 오른발의 착지 상태를 판단하여 로봇 관절부(330)의 각 관절의 위치 궤적 명령 (
Figure 112010003075910-pat00038
)을 계산하여 관절 토크 궤적 계산부(304)에 출력한다. 그러면 관절 토크 궤적 계산부(304)가 각 관절의 위치 궤적 명령 (
Figure 112010003075910-pat00039
)을 이용하여 식1과 같이 각 관절의 관절 토크 명령(
Figure 112010003075910-pat00040
)을 계산할 수 있다.
Figure 112010003075910-pat00041
Figure 112010003075910-pat00042
(
Figure 112010003075910-pat00043
-
Figure 112010003075910-pat00044
)
Figure 112010003075910-pat00045
식 1
여기서
Figure 112010003075910-pat00046
는 관절 위치 궤적 명령이고,
Figure 112010003075910-pat00047
는 모터 등의 엑츄에이터로부터 피드백되는 현재 관절 위치이고,
Figure 112010003075910-pat00048
는 비례 게인이고,
Figure 112010003075910-pat00049
는 미분된 관절 위치 궤적 명령이고,
Figure 112010003075910-pat00050
는 미분된 현재 관절 위치이고,
Figure 112010003075910-pat00051
는 미분 게인이고,
Figure 112010003075910-pat00052
는 역 운동학 방정식(Inverse Dynamics)을 이용하여 미리 계산된 피드포워드 파라미터이다.
식 1은 비례 미분(PD) 제어기와 피드 포워드(FF) 제어기를 이용한 것이나, 이에 한정하는 것은 아니며 각 관절의 위치(
Figure 112010003075910-pat00053
)가 관절 위치 궤적 명령(
Figure 112010003075910-pat00054
)을 추종할 수 있는 어떠한 제어기도 이용할 수 있다. 식 1에서 비례 게인, 미분 게인, 피드포워드 파라미터는 안정적인 보행을 위해 반복적인 튜닝 작업으로 구할 수 있다.
보상부(320)는 도 5의 보행패턴 생성부(300)에서 제공되는 각 관절의 관절 위치 궤적 명령에 보상값 계산부(350)에서 계산된 관절 위치 궤적 보상값을 더하여 보상하고, 보상된 관절 위치 궤적 명령을 엑츄에이터 구동부(320)에 제공한다. 그러면 엑츄에이터 구동부(320)가 보상부(320)로부터 보상된 관절 위치 궤적 명령을 받은 경우에는, 그 관절 위치 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 모터 등의 엑츄에이터를 구동시킨다.
보상부(320)가 도 6의 보행패턴 생성부(300a)로부터 관절 토크 궤적 명령을 제공받은 경우에는 그 관절 토크 궤적 명령에 보상값 계산부(350)에서 계산된 관절 토크 궤적 보상값을 더하여 보상하고, 보상된 관절 토크 궤적 명령을 엑츄에이터 구동부(320)에 제공한다. 그러면 엑츄에이터 구동부(320)가 보상부(320)에 의해 보상된 관절 토크 궤적 명령을 제공받은 경우에는, 그 관절 토크 궤적 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 모터 등의 엑츄에이터를 구동시킨다.
이와 같이 엑츄에이터 구동부(320)에 의해 로봇 관절부(330)의 각 관절이 움직여서 보행 동작을 실행할 수 있다.
로봇의 포즈를 전환하여 보행 시 보행면의 상태, 장애물의 출현 등 주위 환경에 따라 보행 제어가 부적절하여 로봇이 균형을 잃을 수 있기 때문에, 안정적인 보행을 보장하려면 보상부(320)에서 관절 위치 궤적 명령 또는 관절 토크 궤적 명령을 적절하게 보상할 필요가 있다.
관절 위치 궤적 명령 또는 관절 토크 궤적 명령의 보상은 보상값 계산부(350)에서 주어지는 보상값에 의해 결정되며, 보상값 계산부(350)가 ZMP 계산부(340)에서 제공되는 계산 ZMP와 ZMP 측정부(360)에서 제공되는 측정 ZMP를 이용하여 보상값을 계산한다.
도 4에서 ZMP 계산부(340)는 로봇의 질량모델로부터 식2와 같이 계산 ZMP(Pxc, Pyc)를 계산한다.
Figure 112010003075910-pat00055
Figure 112010003075910-pat00056
식 2
여기서
Figure 112016049459596-pat00057
은 F/T 센서의 개수이고,
Figure 112016049459596-pat00058
는 로봇의 i번째 링크의 질량이고,
Figure 112016049459596-pat00151
,
Figure 112016049459596-pat00152
,
Figure 112016049459596-pat00153
는 로봇의 i번째 링크의 무게 중심의 x축, y축, z축 방향의 위치이고,
Figure 112016049459596-pat00154
는 ZMP의 z축 좌표이고,
Figure 112016049459596-pat00059
,
Figure 112016049459596-pat00060
,
Figure 112016049459596-pat00061
는 로봇의 i번째 링크의 무게 중심의 x축, y축, z축 방향의 가속도이고,
Figure 112016049459596-pat00062
는 로봇의 i번째 링크의 관성 모멘트(moment of inertia)이고,
Figure 112016049459596-pat00063
는 로봇의 i번째 링크의 각속도이고,
Figure 112016049459596-pat00064
는 중력 가속도이고, (0,1,0)는 3 by 1 행렬이다.
ZMP 측정부(360)는 센서부(370)의 측정값을 이용하여 식 3과 같이 로봇의 측정 ZMP(Pxm, Pym)를 측정한다.
Figure 112010003075910-pat00065
Figure 112010003075910-pat00066
식 3
여기서
Figure 112010003075910-pat00067
은 F/T 센서의 개수이고,
Figure 112010003075910-pat00068
Figure 112010003075910-pat00069
Figure 112010003075910-pat00070
는 i번째 F/T 센서로 힘 측정 시 x축, y축, z축 방향의 기준 위치이고,
Figure 112010003075910-pat00071
는 ZMP의 z축 좌표이고,
Figure 112010003075910-pat00072
Figure 112010003075910-pat00073
는 i번째 F/T 센서의 x축, y축 방향의 모멘트이고,
Figure 112010003075910-pat00074
Figure 112010003075910-pat00075
Figure 112010003075910-pat00076
는 i번째 F/T 센서의 x축, y축, z축 방향의 힘이다.
ZMP 계산부(340)에 의해 계산된 계산 ZMP는 보행 패턴 생성부(300)에서 제공된 각 관절의 궤적으로부터 구한 값으로 로봇이 가져야 할 이론적인 값이고, ZMP 측정부(360)에 의해 측정된 측정 ZMP는 실제 로봇의 ZMP이다.
로봇이 한 발 지지(single support) 상태에서 계산 ZMP의 위치와 측정 ZMP의 위치가 일치하지 않아 ZMP 에러가 발생할 수 있는데, 도 7a 내지 도 7d와 같이 4가지 경우로 구분할 수 있다. 이때 로봇이 두 발 지지(double support) 상태에서도 똑같이 적용할 수 있다.
도 7a 내지 도 7d에서 401은 발바닥이고, 402는 안정 영역을 의미한다.
로봇 보행 시 도 7a와 같이 계산 ZMP와 측정 ZMP가 모두 안정 영역(402) 안에 위치할 수 있고, 이 때에는 로봇이 균형을 잡기 위한 동작을 수행하지 않아도 된다. 하지만, 후술하는 도 7b 또는 도 7c와 같은 상황이 발생하는 것에 대비하기 위하여 측정 ZMP(●)가 계산 ZMP(○)를 추종하도록 보상값 계산부(350)가 보상값을 계산하여 보상부(310)에 제공한다. 이 때 보상값 계산부(350)가 발목 관절부(230)의 피치 방향의 회전 관절(231)과 롤 방향의 회전 관절(232)에 대해 보상값을 계산하나, 그 보상 대상의 관절의 수는 한정되지 않으며 안정적인 보행을 위한 로봇 관절부(330)의 모든 관절을 포함할 수 있다.
보상값 계산부(350)가 계산 ZMP와 측정 ZMP를 이용하여 보상값을 계산하는데, 예를 들어 보상하려는 관절의 x축 좌표의 보상값은 계산 ZMP와 측정 ZMP의 차이에 비례 게인(
Figure 112010003075910-pat00077
)을 곱셈한 값(
Figure 112010003075910-pat00078
)과 미분된 계산 ZMP와 미분된 측정 ZMP의 차이에 미분 게인(
Figure 112010003075910-pat00079
)을 곱셈한 값(
Figure 112010003075910-pat00080
)이 될 수 있다.
보상값 계산부(350)가 보상값을 보상부(310)에 제공하면, 보상부(310)가 보상값을 이용하여 관절 회전 궤적 명령을 보상한다.
예를 들어 보상된 관절 회전 궤적 명령(
Figure 112010003075910-pat00081
)은 식 4와 같이 나타낼 수 있다.
Figure 112010003075910-pat00082
식 4
여기서
Figure 112010003075910-pat00083
는 원래 관절 위치 궤적 명령이고,
Figure 112010003075910-pat00084
Figure 112010003075910-pat00085
은 보상값 계산부에서 제공된 보상값이다.
액츄에이터 구동부(320)가 보상부(310)에 의해 보상된 관절 위치 궤적 명령에 따라 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다. 이에 따라 도 7a에 도시한 바와 같이 측정 ZMP(○)가 화살표 방향으로 이동하여 계산 ZMP(●)를 추종한다.
한편, 보상부(320)가 도 6의 보행패턴 생성부(300a)로부터 관절 토크 궤적 명령을 제공받은 경우에는 그 관절 토크 궤적 명령에 보상값 계산부(350)에서 계산된 보상값을 더하여 보상하고, 보상된 관절 토크 궤적 명령을 엑츄에이터 구동부(320)에 제공한다.
예를 들어 보상된 관절 토크 궤적 명령(
Figure 112010003075910-pat00086
)은 식 5와 같이 나타낼 수 있다.
Figure 112010003075910-pat00087
여기서
Figure 112010003075910-pat00088
는 원래 관절 토크 명령이고,
Figure 112010003075910-pat00089
Figure 112010003075910-pat00090
은 보상값 계산부(350)에서 제공받은 보상값으로
Figure 112010003075910-pat00091
비례 게인이고,
Figure 112010003075910-pat00092
은 미분 게인이다.
그러면 액츄에이터 구동부(320)가 보상부(310)에 의해 보상된 관절 토크 궤적 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다. 이에 따라 도 7a에 도시한 바와 같이 측정 ZMP(○)가 화살표 방향으로 이동하여 계산 ZMP(●)를 추종하게 된다.
로봇 보행 시 도 7b와 같이 계산 ZMP가 안정 영역(402)에 위치하고 측정 ZMP가 안정 영역(402) 밖에 위치할 수 있다. 이는 로봇의 보행 패턴에 따른 기준에서는 안정적이지만 보행면의 바닥 조건, 모델링 오차, 제어 오차 등으로 인해 실제 로봇이 불안정한 상태에 있음을 의미한다. 이 때 보상값 계산부(350)가 식 4에 적용하기 위한 보상값
Figure 112010003075910-pat00093
Figure 112010003075910-pat00094
을 보상부(310)에 제공하거나 식 5에 적용하기 위한 보상값
Figure 112010003075910-pat00095
Figure 112010003075910-pat00096
을 보상부(310)에 제공한다. 그러면 보상부(310)가 보상값을 이용하여 관절 회전 궤적 명령이나 관절 토크 궤적 명령을 보상한다.
보상부(310)가 보상된 관절 회전 궤적 명령이나 보상된 관절 토크 궤적 명령을 엑츄에이터 구동부(320)에 제공하고, 엑츄에이터 구동부(320)가 보상된 관절 회전 궤적 명령이나 보상된 관절 토크 궤적 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다. 이에 따라 도 7b에 도시한 바와 같이 안정영역(402) 밖에 위치하는 측정 ZMP(○)가 화살표 방향으로 이동하여 안정 영역(402) 안에 위치하는 계산 ZMP(●)를 추종하게 된다.
로봇 보행 시 도 7c와 같이 계산 ZMP가 안정 영역(402) 밖에 위치하고 측정 ZMP가 안정 영역(402)에 위치할 수 있다. 이는 로봇의 보행 패턴에 따른 기준에서는 불안정하지만 실제로는 로봇이 안정한 상태에 있음을 의미하므로, 이 때 로봇이 균형을 잡을 수 있도록 보상값을 이용하여 보상하는 동작을 실행하지 않는다.
로봇 보행 시 도 7d와 같이 계산 ZMP와 측정 ZMP가 모두 안정 영역(402) 밖에 위치할 수 있다. 이 경우에는 측정 ZMP가 계산 ZMP를 추종해도 계산 ZMP가 안정 영역(402) 밖에 위치하므로 안정한 상태를 보장받을 수 없다. 이 때에는 측정 ZMP가 안정 영역(402)에 위치하도록 보상할 필요가 있다. 이를 위해 계산 ZMP(●)의 위치에서 가장 가까운 안정 영역(402)의 경계점(A)을 이용하여 보상값을 계산한다. 즉, ZMP 계산부(340)가 식 2를 이용하여 계산 ZMP(Pxc, Pyc)를 계산할 때 보행 패턴에 따른 관절의 궤적에 의존하지 않고 경계점(A)을 기준으로 계산한다. 이렇게 경계점(A)를 기준으로 구한 계산 ZMP가 보상값 계산부(350)에 제공됨으로서 적절한 보상값이 얻어진다.
보상부(310)는 경계점(A)을 이용하여 얻은 보상값으로 관절 위치 궤적 명령을 보상하거나 관절 토크 궤적 명령을 보상하여 엑츄에이터 구동부(320)에 제공한다. 그러면 엑츄에이터 구동부(320)가 보상된 관절 회전 궤적 명령이나 보상된 관절 토크 궤적 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다. 이에 따라 도 7d에 도시한 바와 같이 안정영역(402) 밖에 위치하는 측정 ZMP(○)가 화살표 방향으로 이동하여 안정 영역(402)에 위치할 수 있다.
이하에서는 본 발명의 일 실시예에 따른 인간형 로봇의 보행 제어방법을 설명한다.
보행 패턴 생성부(300)가 FSM 기반하여 인간형 로봇(100)이 보행할 수 있도록 보행 패턴을 발생한다. 이 때 도 5의 관절 위치 궤적 계산부(303)가 착지 상태를 판단하여 보행 패턴에 따라 로봇 관절부(330)의 각 관절을 움직일 수 있도록 각 관절의 관절 위치 궤적 명령을 계산하거나 도 6의 관절 토크 궤적 계산부(304)가 식 1과 같이 관절 위치 궤적 명령을 이용하여 관절 토크 궤적 명령을 계산한다(501). 여기서 관절 위치 궤적 명령을 생성하는 다른 예로는, 사람의 모션을 캡쳐하고 한 주기내에서 각 관절의 움직임을 추출한 후 이 추출 정보를 바탕으로 인간형 로봇의 관절 위치에 매칭시켜서 관절 위치 궤적 명령을 계산할 수도 있다.
보행패턴 생성부(300)의 각 관절의 궤적을 제공받은 ZMP 계산부(340)에서는 로봇의 질량모델로부터 식2와 같이 계산 ZMP(Pxc, Pyc)를 계산하여 보상값 계산부(350)에 제공한다(502).
센서부(370)의 다축 F/T 센서(24)와 포즈 센서(14)에 의해 측정된 정보가 ZMP 측정부(360)에 제공되고, ZMP 측정부(360)가 센서부(370)의 측정값을 이용하여 식 3에 따라 측정 ZMP(Pxm, Pym)를 계산하여 보상값 계산부(350)에 제공한다(503).
계산 ZMP와 측정 ZMP 모두 안정 영역(402)에 위치하는 경우(504의 예), 이 경우는 로봇이 균형을 잡기 위한 동작을 수행하지 않아도 되지만, 불안정한 상황이 발생하는 것에 대비하기 위하여 보상을 실시할 수 있다. 이를 위해 보상값 계산부(350)가 ZMP 계산부(340)로부터 제공받은 계산 ZMP와 ZMP 측정부(360)로부터 제공받은 측정 ZMP를 이용하여 보상값을 계산하며, 예를 들어 보상하려는 관절의 x축 좌표의 보상값은 계산 ZMP와 측정 ZMP의 차이에 비례 게인(
Figure 112010003075910-pat00097
)을 곱셈한 값(
Figure 112010003075910-pat00098
)과 미분된 계산 ZMP와 미분된 측정 ZMP의 차이에 미분 게인(
Figure 112010003075910-pat00099
)을 곱셈한 값(
Figure 112010003075910-pat00100
)이 될 수 있다(505).
보상부(310)가 관절 위치 궤적 계산부(303)에 의해 계산된 원래 관절 위치 궤적 명령에 보상값 계산부(350)에 의해 계산된 보상값을 더하여 관절 위치 궤적 명령을 보상하고, 보상된 관절 위치 궤적 명령을 엑츄에이터 구동부(320)에 제공한다. 여기서 보상부(310)가 관절 토크 궤적 계산부(304)에 의해 계산된 원래 관절 토크 궤적 명령에 보상값 계산부(350)에 의해 계산된 보상값을 더하여 관절 토크 궤적 명령을 보상하고, 보상된 관절 토크 궤적 명령을 엑츄에이터 구동부(320)에 제공할 수도 있다(506).
그러면 액츄에이터 구동부(320)가 보상부(310)에 의해 보상된 관절 위치 궤적 명령 또는 보상부(310)에 의해 보상된 관절 토크 궤적 명령에 따라 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다. 이에 따라 도 7a에 도시한 바와 같이 측정 ZMP(○)가 화살표 방향으로 이동하여 계산 ZMP(●)를 추종한다(507).
로봇의 보행 패턴에 따른 기준에서는 안정적이지만 보행면의 바닥 조건, 모델링 오차, 제어 오차 등으로 인해 실제 로봇이 불안정한 상태이므로 도 7b와 같이 계산 ZMP가 안정 영역(402)에 위치하고 측정 ZMP가 안정 영역(402) 밖에 위치할 수 있다(508의 예). 이 때 보상값 계산부(350)가 ZMP 계산부(340)로부터 제공받은 계산 ZMP와 ZMP 측정부(360)로부터 제공받은 측정 ZMP를 이용하여 보상값을 계산한다(509). 이 보상값을 이용하여 보상부(310)가 관절 회전 궤적 명령이나 관절 토크 궤적 명령을 보상한다(506). 보상부(310)가 보상된 관절 회전 궤적 명령이나 보상된 관절 토크 궤적 명령을 엑츄에이터 구동부(320)에 제공하고, 엑츄에이터 구동부(320)가 보상된 관절 회전 궤적 명령이나 보상된 관절 토크 궤적 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다(507). 이에 따라 도 7b에 도시한 바와 같이 안정영역(402) 밖에 위치하는 측정 ZMP(○)가 화살표 방향으로 이동하여 안정 영역(402)에 위치하는 계산 ZMP(●)를 추종하게 된다.
로봇 보행 시 도 7c와 같이 계산 ZMP가 안정 영역(402) 밖에 위치하고 측정 ZMP가 안정 영역(402)에 위치할 수 있다(510의 예). 이는 로봇의 보행 패턴에 따른 기준에서는 불안정하지만 실제로는 로봇이 안정한 상태에 있음을 의미하므로, 이 때 로봇이 균형을 잡을 수 있도록 보상값을 이용하여 보상하는 동작을 실행하지 않는다.
로봇 보행 시 도 7d와 같이 계산 ZMP와 측정 ZMP가 모두 안정 영역(402) 밖에 위치할 수 있다(511). 이 경우에는 측정 ZMP가 계산 ZMP를 추종해도 계산 ZMP가 안정 영역(402) 밖에 위치하므로 안정한 상태를 보장받을 수 없기 때문에 계산 ZMP(●)의 위치에서 가장 가까운 안정 영역(402)의 경계점(A)을 이용하여 보상값을 계산한다(512). 그러면 보상부(310)가 경계점(A)을 이용하여 얻은 보상값으로 관절 위치 궤적 명령을 보상하거나 관절 토크 궤적 명령을 보상하여 엑츄에이터 구동부(320)에 제공한다(506). 그러면 엑츄에이터 구동부(320)가 보상된 관절 회전 궤적 명령이나 보상된 관절 토크 궤적 명령을 추종하도록 로봇 관절부(330)의 각 관절에 설치된 엑츄에이터를 구동시킨다(507). 이에 따라 도 7d에 도시한 바와 같이 안정영역(402) 밖에 위치하는 측정 ZMP(○)가 화살표 방향으로 이동하여 안정 영역(402)에 위치할 수 있다.
300 : 보행패턴 생성부
310 : 보상부
320 : 엑츄에이터 구동부
330 : 로봇 관절부
340 : ZMP 계산부
350 : 보상값 계산부
360 : ZMP 측정부
370 : 센서부

Claims (15)

  1. 로봇 보행 시 움직일 수 있는 관절들을 포함하는 로봇 관절부;
    상기 로봇의 착지 정보와 자세 정보를 측정하는 센서부;
    상기 로봇의 보행 패턴으로 로봇의 보행을 실행하기 위해 상기 각 관절의 관절 위치 궤적 명령이나 관절 토크 궤적 명령을 계산하는 보행패턴 생성부;
    상기 보행패턴 생성부에 의해 계산된 관절의 궤적을 이용하여 계산된 상기 로봇의 계산 ZMP를 출력하는 ZMP 계산부;
    상기 센서부의 측정값으로 측정된 상기 로봇의 측정 ZMP를 출력하는 ZMP 측정부;
    상기 ZMP 계산부에 의해 계산된 계산 ZMP와 상기 ZMP 측정부에 의해 측정된 측정 ZMP를 이용하여 상기 관절 위치 궤적 명령이나 상기 관절 토크 궤적 명령을 보상하기 위한 보상값을 계산하여 출력하는 보상값 계산부; 및
    상기 보행패턴 생성부에 의해 계산된 관절 위치 궤적 명령 또는 관절 토크 궤적 명령에 상기 보상값 계산부에 의해 계산된 보상값을 더하여 관절 위치 궤적 명령 또는 관절 토크 궤적 명령을 보상하는 보상부를 포함하되,
    상기 보행패턴 생성부는 왼발 또는 오른발이 지면에 착지할 경우 서로 스위칭하는 복수의 상태 머신과, 상기 복수의 상태 머신의 스위칭에 따라 왼발 또는 오른발의 착지 상태를 판단하여 상기 각 관절의 관절 위치 궤적 명령을 계산하는 관절 위치 궤적 계산부를 포함하는 인간형 로봇.
  2. 삭제
  3. 제1항에 있어서,
    상기 보행패턴 생성부가 상기 관절 위치 궤적 명령을 이용하여 관절 토크 궤적 명령을 계산하는 관절 토크 궤적 계산부를 더 포함하는 인간형 로봇.
  4. 제3항에 있어서,
    상기 관절 토크 궤적 계산부가 식 1과 같이 각 관절의 관절 토크 명령(
    Figure 112010003075910-pat00101
    )을 계산하는 인간형 로봇.
    Figure 112010003075910-pat00102
    Figure 112010003075910-pat00103
    (
    Figure 112010003075910-pat00104
    -
    Figure 112010003075910-pat00105
    )
    Figure 112010003075910-pat00106
    식 1
    여기서
    Figure 112010003075910-pat00107
    는 관절 위치 궤적 명령이고,
    Figure 112010003075910-pat00108
    는 모터 등의 엑츄에이터로부터 피드백되는 현재 관절 위치이고,
    Figure 112010003075910-pat00109
    는 비례 게인이고,
    Figure 112010003075910-pat00110
    는 미분된 관절 위치 궤적 명령이고,
    Figure 112010003075910-pat00111
    는 미분된 현재 관절 위치이고,
    Figure 112010003075910-pat00112
    는 미분 게인이고,
    Figure 112010003075910-pat00113
    는 역 운동학 방정식을 이용하여 미리 계산된 피드포워드 파라미터이다.
  5. 제1항에 있어서,
    상기 ZMP 계산부가 로봇의 질량모델로부터 식2와 같이 계산 ZMP(Pxc, Pyc)를 계산하는 인간형 로봇.
    Figure 112016049459596-pat00114

    Figure 112016049459596-pat00115
    식 2
    여기서
    Figure 112016049459596-pat00116
    은 F/T 센서의 개수이고,
    Figure 112016049459596-pat00117
    는 로봇의 i번째 링크의 질량이고,
    Figure 112016049459596-pat00155
    ,
    Figure 112016049459596-pat00156
    ,
    Figure 112016049459596-pat00157
    는 로봇의 i번째 링크의 무게 중심의 x축, y축, z축 방향의 위치이고,
    Figure 112016049459596-pat00158
    는 ZMP의 z축 좌표이고,
    Figure 112016049459596-pat00118
    ,
    Figure 112016049459596-pat00119
    ,
    Figure 112016049459596-pat00120
    는 로봇의 i번째 링크의 무게 중심의 x축, y축, z축 방향의 가속도이고,
    Figure 112016049459596-pat00121
    는 로봇의 i번째 링크의 관성 모멘트(moment of inertia)이고,
    Figure 112016049459596-pat00122
    는 로봇의 i번째 링크의 각속도이고,
    Figure 112016049459596-pat00123
    는 중력 가속도이고, (0,1,0)는 3 by 1 행렬이다.
  6. 제1항에 있어서,
    상기 ZMP 측정부가 상기 센서부의 측정값을 이용하여 식 3과 같이 로봇의 측정 ZMP(Pxm, Pym)를 측정하는 인간형 로봇.
    Figure 112016049459596-pat00124

    Figure 112016049459596-pat00125
    식 3
    여기서
    Figure 112016049459596-pat00126
    은 F/T 센서의 개수이고,
    Figure 112016049459596-pat00127
    ,
    Figure 112016049459596-pat00128
    ,
    Figure 112016049459596-pat00129
    는 i번째 F/T 센서로 힘 측정 시 x축, y축, z축 방향의 기준 위치이고,
    Figure 112016049459596-pat00130
    는 ZMP의 z축 좌표이고,
    Figure 112016049459596-pat00131
    ,
    Figure 112016049459596-pat00132
    는 i번째 F/T 센서의 x축, y축 방향의 모멘트이고,
    Figure 112016049459596-pat00133
    ,
    Figure 112016049459596-pat00134
    ,
    Figure 112016049459596-pat00135
    는 i번째 F/T 센서의 x축, y축, z축 방향의 힘이다.
  7. 제1항에 있어서,
    상기 보상값 계산부가 계산 ZMP와 측정 ZMP를 이용하여 보상값을 계산하되, 보상하려는 관절의 계산 ZMP와 측정 ZMP의 차이에 비례 게인을 곱셈한 값과 미분된 계산 ZMP와 미분된 측정 ZMP의 차이에 미분 게인을 곱셈한 값을 보상값으로 출력하는 인간형 로봇.
  8. 제1항에 있어서,
    상기 보상부가 상기 로봇의 안정 영역에서 계산 ZMP의 위치와 측정 ZMP의 위치에 따라 구분되는 각각의 경우에 따라 보상하는 인간형 로봇.
  9. 로봇의 보행 패턴에 따라 로봇의 보행을 실행하기 위해 각 관절의 관절 위치 궤적 명령이나 관절 토크 궤적 명령을 계산하고;
    상기 보행 패턴에 의해 계산된 관절의 궤적을 이용하여 상기 로봇의 계산 ZMP를 계산하고;
    상기 로봇에 설치된 센서로 측정된 측정값으로 상기 로봇의 측정 ZMP를 측정하고,
    상기 계산 ZMP와 상기 측정 ZMP를 이용하여 상기 관절 위치 궤적 명령이나 상기 관절 토크 궤적 명령을 보상하기 위한 보상값을 계산하고;
    상기 보상값을 이용하여 상기 관절 위치 궤적 명령 또는 상기 관절 토크 궤적 명령을 보상하되,
    상기 관절 위치 궤적 명령이나 상기 관절 토크 궤적 명령을 계산하는 보행패턴 생성부는 왼발 또는 오른발이 지면에 착지할 경우 서로 스위칭하는 복수의 상태 머신과, 상기 복수의 상태 머신의 스위칭에 따라 왼발 또는 오른발의 착지 상태를 판단하여 상기 각 관절의 관절 위치 궤적 명령을 계산하는 관절 위치 궤적 계산부를 포함하는 인간형 로봇의 보행 제어방법.
  10. 제9항에 있어서,
    상기 보상값을 계산하는 것은 보상하려는 관절의 계산 ZMP와 측정 ZMP의 차이에 비례 게인을 곱셈하고, 미분된 계산 ZMP와 미분된 측정 ZMP의 차이에 미분 게인을 곱셈하는 것을 포함하는 인간형 로봇의 보행 제어방법.
  11. 제9항에 있어서,
    상기 관절 위치 궤적 명령 또는 상기 관절 토크 궤적 명령을 보상하는 것은
    상기 로봇의 안정 영역에서 계산 ZMP의 위치와 측정 ZMP의 위치에 따라 구분되는 각각의 경우에 따라 보상하는 인간형 로봇의 보행 제어방법.
  12. 제11항에 있어서,
    상기 계산 ZMP와 상기 측정 ZMP가 모두 안정 영역 안에 위치하는 경우,
    상기 측정 ZMP를 이동시켜 상기 계산 ZMP를 추종하도록 보상하는 인간형 로봇의 보행 제어방법.
  13. 제11항에 있어서,
    상기 계산 ZMP가 안정 영역에 위치하고 상기 측정 ZMP가 안정 영역 밖에 위치하는 경우,
    상기 안정영역 밖에 위치하는 측정 ZMP를 이동시켜 상기 안정 영역 안에 위치하는 계산 ZMP를 추종하도록 보상하는 인간형 로봇의 보행 제어방법.
  14. 제11항에 있어서,
    상기 계산 ZMP가 안정 영역 밖에 위치하고 상기 측정 ZMP가 안정 영역 안에 위치하는 경우,
    상기 보상값을 이용하여 보상하는 동작을 실행하지 않는 인간형 로봇의 보행 제어방법.
  15. 제11항에 있어서,
    상기 계산 ZMP와 상기 측정 ZMP가 모두 안정 영역 밖에 위치하는 경우,
    상기 계산 ZMP의 위치에서 가장 가까운 안정 영역의 경계점을 이용하여 계산된 보상값으로 보상하는 인간형 로봇의 보행 제어방법.
KR1020100004286A 2010-01-18 2010-01-18 인간형 로봇 및 그 보행 제어방법 KR101687629B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100004286A KR101687629B1 (ko) 2010-01-18 2010-01-18 인간형 로봇 및 그 보행 제어방법
US13/006,821 US8682488B2 (en) 2010-01-18 2011-01-14 Humanoid robot and walking control method thereof
EP11151203A EP2347866B1 (en) 2010-01-18 2011-01-18 Humanoid robot and walking control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100004286A KR101687629B1 (ko) 2010-01-18 2010-01-18 인간형 로봇 및 그 보행 제어방법

Publications (2)

Publication Number Publication Date
KR20110084631A KR20110084631A (ko) 2011-07-26
KR101687629B1 true KR101687629B1 (ko) 2016-12-20

Family

ID=43857729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100004286A KR101687629B1 (ko) 2010-01-18 2010-01-18 인간형 로봇 및 그 보행 제어방법

Country Status (3)

Country Link
US (1) US8682488B2 (ko)
EP (1) EP2347866B1 (ko)
KR (1) KR101687629B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101732901B1 (ko) * 2010-10-05 2017-05-08 삼성전자주식회사 보행 로봇 및 그 제어방법
JP5399593B2 (ja) * 2011-11-10 2014-01-29 パナソニック株式会社 ロボット、ロボットの制御装置、制御方法、及び制御プログラム
CN103197671A (zh) * 2012-01-04 2013-07-10 中国人民解放军第二炮兵工程学院 一种仿人机器人步态规划及合成方法
KR101985790B1 (ko) * 2012-02-21 2019-06-04 삼성전자주식회사 보행 로봇 및 그 제어 방법
CN103042525B (zh) * 2013-01-22 2016-04-13 北京理工大学 一种确定仿人机器人的抗扰动能力的方法
CN103273982B (zh) * 2013-04-27 2018-01-19 深圳市英倍达科技有限公司 一种多功能全地形仿生机器人
WO2016061471A1 (en) * 2014-10-17 2016-04-21 Hitachi High Technologies America, Inc. Interactive laboratory robotic system
US9352470B1 (en) * 2014-11-11 2016-05-31 Google Inc. Yaw slip handling in a robotic device
CN104590417B (zh) * 2014-12-26 2016-11-23 合肥工业大学 一种仿人机器人足部
JP6623522B2 (ja) * 2015-01-26 2019-12-25 セイコーエプソン株式会社 ロボット、ロボットシステムおよびサーバー
US9778132B1 (en) * 2015-12-16 2017-10-03 X Development Llc Methods and systems for force sensor calibration
CN105965506A (zh) * 2016-05-16 2016-09-28 北京格分维科技有限公司 一种基于遗传算法的人形双足机器人步行姿态控制方法
FR3063667B1 (fr) * 2017-03-13 2019-04-19 Staubli Faverges Procede de commande d'une cellule de travail automatisee
US11550335B2 (en) * 2018-11-28 2023-01-10 Ubtech Robotics Corp Ltd Biped robot and its moving method and apparatus
WO2020133288A1 (zh) * 2018-12-28 2020-07-02 深圳市优必选科技有限公司 一种双足机器人步态控制方法以及双足机器人
CN109634100B (zh) * 2018-12-30 2021-11-02 深圳市优必选科技有限公司 仿人机器人行走加速度补偿方法、装置及仿人机器人
CN112037312B (zh) * 2020-11-04 2021-02-09 成都市谛视科技有限公司 实时人体姿态逆向运动学求解方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3726009B2 (ja) * 2000-05-19 2005-12-14 本田技研工業株式会社 脚式移動ロボットの床形状推定装置
TW499349B (en) 2000-11-17 2002-08-21 Sony Corp Legged mobile robot, leg structure of legged mobile robot, and mobile leg unit for legged mobile robot
JP3760186B2 (ja) 2001-06-07 2006-03-29 独立行政法人科学技術振興機構 二脚歩行式移動装置及びその歩行制御装置並びに歩行制御方法
EP1486299B1 (en) * 2002-03-15 2012-03-14 Sony Corporation Operation control device for leg-type mobile robot and operation control method, and robot device
US7715945B2 (en) 2004-02-27 2010-05-11 Honda Motor Co., Ltd. Gait producing device for moving robot
US7313463B2 (en) * 2005-03-31 2007-12-25 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics

Also Published As

Publication number Publication date
US20110178636A1 (en) 2011-07-21
EP2347866B1 (en) 2013-01-16
EP2347866A1 (en) 2011-07-27
US8682488B2 (en) 2014-03-25
KR20110084631A (ko) 2011-07-26

Similar Documents

Publication Publication Date Title
KR101687629B1 (ko) 인간형 로봇 및 그 보행 제어방법
KR101633362B1 (ko) 인간형 로봇 및 그 보행 제어방법
KR101985790B1 (ko) 보행 로봇 및 그 제어 방법
EP2347867B1 (en) Walking control apparatus of robot and method of controlling the same
KR101732901B1 (ko) 보행 로봇 및 그 제어방법
JP3972854B2 (ja) ロボットの運動制御装置
JP5607886B2 (ja) 歩行ロボット及びその制御方法
KR101809972B1 (ko) 보행 로봇 및 그 제어방법
KR101687628B1 (ko) 로봇의 보행 제어 장치 및 그 제어 방법
KR101549817B1 (ko) 로봇의 보행 제어장치 및 그 방법
KR101687630B1 (ko) 보행 로봇 및 그 균형 제어 방법
KR20110082394A (ko) 보행 로봇 및 그 제어 방법
KR20130068694A (ko) 보행 로봇 및 그 제어 방법
JPH04201190A (ja) 脚式移動ロボットの歩行制御装置
WO2002040223A1 (fr) Robot mobile a deux jambes et son procede de commande, sa structure jambes, et unite jambe mobile destinee a ce robot
KR20120069924A (ko) 보행 로봇 및 그 제어 방법
KR20130049029A (ko) 보행 로봇 및 그 제어 방법
KR101766755B1 (ko) 보행 로봇 및 그 제어방법
KR20120024098A (ko) 보행 로봇 및 그 제어방법
WO2007139135A1 (ja) ロボット及び制御装置
KR101760883B1 (ko) 로봇 및 그 제어방법
JP5440152B2 (ja) 脚式ロボットとそのための歩容データ生成方法
JP3674787B2 (ja) ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム

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