KR20130034082A - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20130034082A
KR20130034082A KR1020110097909A KR20110097909A KR20130034082A KR 20130034082 A KR20130034082 A KR 20130034082A KR 1020110097909 A KR1020110097909 A KR 1020110097909A KR 20110097909 A KR20110097909 A KR 20110097909A KR 20130034082 A KR20130034082 A KR 20130034082A
Authority
KR
South Korea
Prior art keywords
robot
joint
torque
roll
target
Prior art date
Application number
KR1020110097909A
Other languages
English (en)
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 KR1020110097909A priority Critical patent/KR20130034082A/ko
Priority to US13/627,667 priority patent/US20130079929A1/en
Priority to EP12186608A priority patent/EP2574527A2/en
Publication of KR20130034082A publication Critical patent/KR20130034082A/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Manipulator (AREA)

Abstract

본 발명의 일 실시예에 의한 로봇의 제어 방법은 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계, 상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계, 상기 처리한 데이터를 기초로 상기 로봇의 지지 상태와 좌표계를 설정하는 단계, 상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계, 상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계, 상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계, 및 상기 설정한 스테이트 머신을 추종하여 상기 로봇의 보행 및 밸런싱을 제어하는 단계를 포함한다.

Description

로봇 및 그 제어 방법{ROBOT AND WALKING CONTROL METHOD THEREOF}
동역학 기반의 동적 보행에 따라 보행하는 로봇 및 그 제어 방법에 관한 것이다.
일반적으로 인간형 로봇이란 인간과 유사한 관절 체계를 가지고 이족 보행을 수행하는 로봇을 말한다. 이와 같은 인간형 로봇은 안정적인 이족 보행을 위해 각 관절에 위치한 전기 액추에이터, 유압 액추에이터 등의 액츄에이터를 구동해야 한다.
액추에이터의 구동 방식으로 ZMP(Zero Moment Point) 제어 방식이란 각 관절의 명령 위치를 추종하여 제어하는 위치 제어 방식을 말한다. 종래의 ZMP 제어 방식은 무릎을 굽히고 골반의 위치를 일정하게 유지하는 등 인간과 유사하지 않은 부자연스러운 보행을 하며, 또한, 미리 정해진 위치를 정확하게 제어하기 위해서 높은 위치 제어 게인을 통해 로봇의 동적 특성에 역행하는 제어를 수행하므로 에너지 비효율적이다. 특히, ZMP 제어 방식은 후진성이 낮은 메커니즘으로 관절을 구성하여 임의의 굴곡이 있는 비평탄 지형에 취약하여 쉽게 넘어지는 문제점이 있다.
본 발명의 일측면은 인간과 유사하게 자연스러운 보행을 할 수 있고, 낮은 위치 제어 게인을 사용하여 로봇의 동적 특성에 순행하므로 에너지 효율적이며, 비평탄 지형을 안정하게 보행할 수 있는 로봇 및 그 제어 방법을 제공한다.
이를 위한 본 발명의 일 실시예에 의한 로봇의 제어 방법은 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계; 상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계; 상기 처리한 데이터를 기초로 상기 로봇의 지지 상태와 좌표계를 설정하는 단계; 상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계; 상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계; 상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및 상기 설정한 스테이트 머신을 추종하여 상기 로봇의 보행 및 밸런싱을 제어하는 단계를 포함한다.
상기 데이터를 검출하고 처리하는 단계는 상기 로봇의 몸통에 설치되는 IMU 센서가 상기 로봇 베이스의 위치, 속도, 기울기를 검출하고, 상기 로봇의 발에 설치되는 F/T 센서가 상기 로봇의 발에 작용하는 z축 방향 외력을 검출하고, 상기 로봇의 각 회전 관절에 설치되는 엔코더 센서가 상기 로봇의 각 회전 관절의 위치, 각도, 속도를 검출한다.
상기 데이터를 검출하고 처리하는 단계는 상기 IMU 센서와 F/T 센서가 검출한 데이터를 스무딩 필터 또는 저역 통과 필터 처리하고, 상기 엔코더 센서가 검출한 데이터를 저역 통과 필터 처리한다.
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 발에 작용하는 z축 방향 외력이 미리 설정된 임계값보다 크면 상기 발을 상기 로봇의 지지하는 발로 판단한다.
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지하는 발의 위치를 원점으로 하여 좌표계를 설정한다.
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지 상태가 왼쪽 지지 상태, 오른쪽 지지 상태, 양쪽 지지 상태로 구분된다.
상기 로봇의 상태를 처리하는 단계는 상기 로봇의 상태가 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도를 포함한다.
상기 로봇의 상태를 처리하는 단계는 상기 좌표계를 이용하여 다음 식(1)에 따라 상기 로봇 베이스의 위치, 속도를 보상하여 계산한다.
식(1)
Figure pat00001
여기서 pBx', pBy'는 각각 보상된 상기 로봇 베이스의 x축 위치, y축 위치이고, pBx, pBy는 각각 상기 좌표계를 이용하여 계산한 상기 로봇 베이스의 x축 위치, y축 위치이고, lleg는 상기 로봇의 다리의 길이이고, Broll_FK, Bpitch_FK는 각각 상기 좌표계를 이용하여 정기구학 연산을 통해 계산한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
상기 로봇의 상태를 처리하는 단계는 상기 처리한 데이터를 기초로 상기 좌표계를 이용하고 정기구학 연산 및 동역학 연산을 통해서 상기 각 회전 관절의 위치, 각도, 속도를 보상하여 계산한다.
상기 적응 제어하는 단계는 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도로 목표 보행 궤적을 생성한다.
상기 적응 제어하는 단계는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정한다.
식(2)
Figure pat00002
여기서 lstep은 상기 보폭이고, VB는 상기 로봇 베이스의 속도이고, h0는 상기 로봇 베이스의 초기화 높이이고, g는 중력가속도이고, psweep은 상기 각 회전 관절의 모션을 제어하는 제어변수이고, lleg는 상기 로봇의 다리의 길이이고, xdes는 상기 로봇 베이스의 x축 변위이고, xdes,max는 상기 로봇 베이스의 x축 변위의 최대값이고, ptorso는 가상의 몸통의 회전 각도를 제어하는 제어변수이고, ctorso,max는 미리 설정된 가상의 몸통의 회전 각도의 최대값이고, psweep,max는 상기 각 회전 관절의 모션을 제어하는 제어변수의 최대값이고, csweep,max, csweep,min은 각각 미리 설정된 상기 각 회전 관절의 모션의 최대값, 최소값이고, pknee는 상기 로봇의 무릎 관절의 회전 각도를 제어하는 제어변수이고, cknee,max, cknee,min은 각각 미리 설정된 상기 무릎 관절의 회전 각도의 최대값, 최소값이고, proll은 상기 각 회전 관절의 롤 방향 회전 각도를 제어하는 제어변수이고, croll,max, croll,min은 각각 미리 설정된 상기 각 회전 관절의 롤 방향 회전 각도의 최대값, 최소값이고, ptoeoff는 상기 발의 딛는 위치를 제어하는 제어변수이고, ctoeoff,max, ctoeoff,min은 각각 미리 설정된 상기 발의 딛는 위치의 최대값, 최소값이다.
상기 적응 제어하는 단계는 다음 식(3)에 따라 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 실제 기울기와 상기 로봇 베이스의 목표 기울기의 차이로 상기 목표 보행 궤적을 보정하여 상기 로봇의 몸통의 자세를 제어한다.
식(3)
Figure pat00003
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
상기 적응 제어하는 단계는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어한다.
식(4)
Figure pat00004
여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
한편, 본 발명의 다른 일 실시예에 의한 로봇의 제어 방법은 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계; 상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계; 상기 처리한 데이터를 기초로 로봇의 지지 상태와 좌표계를 설정하는 단계; 상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계; 상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계; 상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및 상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계를 포함한다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 다음 식(5)에 따라 상기 각 회전 관절의 구동 토크를 계산한다.
식(5)
Figure pat00005
여기서 τd는 상기 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크를 다음 식(6)에 따라 계산한다.
식(6)
Figure pat00006
여기서 τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 상기 각 회전 관절의 목표 각도이고, q는 상기 각 회전 관절의 각도이고,
Figure pat00007
는 상기 각 회전 관절의 속도이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 중력 보상 토크를 다음 식(7)에 따라 계산한다.
식(7)
Figure pat00008
여기서 τg_comp는 상기 중력 보상 토크이고, RB는 상기 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 상기 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 밸런싱 토크를 다음 식(8)에 따라 계산한다.
식(8)
Figure pat00009
여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 다음 식(9)에 따라 반사 토크를 계산한다.
식(9)
Figure pat00010
여기서 τreflex는 상기 반사 토크이고, η는 가중치이고, σ는 상기 로봇의 양쪽 다리의 거리이고, σ0는 상기 양쪽 다리의 거리 제한이다.
본 발명의 일 실시예에 의한 로봇은 보행을 위한 복수의 회전 관절과 로봇 베이스를 구비하는 로봇에 있어서, 상기 로봇의 목표 보행 모션이 입력되는 입력부; 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하고, 상기 로봇의 보행 궤적을 나타내는 스테이트 머신을 설정하고, 상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 구동부에 배분하는 제어부; 및 상기 제어부가 배분하는 구동 토크에 따라 상기 로봇의 각 회전 관절을 구동하는 구동부를 포함한다.
상기 제어부는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 로봇의 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정한다.
식(2)
Figure pat00011
여기서 lstep은 상기 보폭이고, VB는 상기 로봇 베이스의 속도이고, h0는 상기 로봇 베이스의 초기화 높이이고, g는 중력가속도이고, psweep은 상기 각 회전 관절의 모션을 제어하는 제어변수이고, lleg는 상기 로봇의 다리의 길이이고, xdes는 상기 로봇 베이스의 x축 변위이고, xdes,max는 상기 로봇 베이스의 x축 변위의 최대값이고, ptorso는 가상의 몸통의 회전 각도를 제어하는 제어변수이고, ctorso,max는 미리 설정된 가상의 몸통의 회전 각도의 최대값이고, psweep,max는 상기 각 회전 관절의 모션을 제어하는 제어변수의 최대값이고, csweep,max, csweep,min은 각각 미리 설정된 상기 각 회전 관절의 모션의 최대값, 최소값이고, pknee는 상기 로봇의 무릎 관절의 회전 각도를 제어하는 제어변수이고, cknee,max, cknee,min은 각각 미리 설정된 상기 무릎 관절의 회전 각도의 최대값, 최소값이고, proll은 상기 각 회전 관절의 롤 방향 회전 각도를 제어하는 제어변수이고, croll,max, croll,min은 각각 미리 설정된 상기 각 회전 관절의 롤 방향 회전 각도의 최대값, 최소값이고, ptoeoff는 상기 발의 딛는 위치를 제어하는 제어변수이고, ctoeoff,max, ctoeoff,min은 각각 미리 설정된 상기 발의 딛는 위치의 최대값, 최소값이다.
상기 제어부는 다음 식(3)에 따라 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 실제 기울기와 상기 로봇 베이스의 목표 기울기의 차이로 상기 목표 보행 궤적을 보정하여 상기 로봇의 몸통의 자세를 제어한다.
식(3)
Figure pat00012
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서로 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
상기 제어부는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어한다.
식(4)
Figure pat00013
여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
상기 제어부는 다음 식(5)에 따라 상기 각 회전 관절의 구동 토크를 계산하한다.
식(5)
Figure pat00014
여기서 τd는 상기 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
상기 제어부는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크를 다음 식(6)에 따라 계산한다.
식(6)
Figure pat00015
여기서 τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 상기 각 회전 관절의 목표 각도이고, q는 상기 각 회전 관절의 각도이고,
Figure pat00016
는 상기 각 회전 관절의 속도이다.
상기 제어부는 상기 중력 보상 토크를 다음 식(7)에 따라 계산한다.
식(7)
Figure pat00017
여기서 τg_comp는 상기 중력 보상 토크이고, RB는 상기 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 상기 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
상기 제어부는 상기 밸런싱 토크를 다음 식(8)에 따라 계산한다.
식(8)
Figure pat00018
여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다.
상기 제어부는 다음 식(9)에 따라 반사 토크를 계산한다.
식(9)
Figure pat00019
여기서 τreflex는 상기 반사 토크이고, η는 가중치이고, σ는 상기 로봇의 양쪽 다리의 거리이고, σ0는 상기 양쪽 다리의 거리 제한이다.
상술한 본 발명의 일측면에 의하면 인간과 유사하게 자연스러운 보행을 할 수 있고, 낮은 위치 제어 게인을 사용하여 로봇의 동적 특성에 순행하므로 에너지 효율적이며, 비평탄 지형을 안정하게 보행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 로봇의 외관의 개략적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 개략적인 구조도이다.
도 3은 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 측면도이다.
도 4는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 정면도이다.
도 5는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 평면도이다.
도 6은 본 발명의 일 실시예에 따른 로봇의 선회 보행을 개략적으로 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 로봇의 스테이트 머신(state machine)을 개략적으로 나타내는 측면도이다.
도 8은 본 발명의 일 실시예에 따른 로봇의 스테이트 머신을 개략적으로 나타내는 정면도이다.
도 9는 본 발명의 일 실시예에 따른 로봇의 보행을 개략적으로 나타내는 측면도이다.
도 10은 본 발명의 일 실시예에 따른 로봇의 구조를 개략적으로 나타내는 블록도이다.
도 11은 본 발명의 일 실시예에 따른 로봇의 제어 방법을 개략적으로 나타내는 흐름도이다.
이하에서는 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 로봇의 외관의 개략적인 구성도이다.
도 1을 참조하면, 로봇(100)은 인간과 마찬가지로 두 개의 다리(110)에 의해 직립 이동하는 이족 보행 로봇으로, 몸통(102), 머리(104), 두 개의 팔(106)로 이루어진 상체(101)와, 두 개의 다리(110)로 이루어진 하체(103)를 가진다.
로봇(100)의 상체(101)는 몸통(102)과, 몸통(102)의 상부에 목(120)을 통해 연결된 머리(104)와, 몸통(102)의 상부 양측에 어깨(114L, 114R)를 통해 연결된 두 개의 팔(106L, 106R)과, 이 두 개의 팔(106L, 106R)의 말단에 각각 연결된 손(108L, 108R)으로 이루어진다.
로봇(100)의 하체(103)는 상체(101)의 몸통(102) 하부 양측에 연결된 두 개의 다리(110L, 110R)와, 두 개의 다리(110L, 110R) 말단에 각각 연결된 발(112L, 112R)로 이루어진다.
참조 부호에서, "R"과 "L"은 각각 로봇(100)의 오른쪽(right)과 왼쪽(left)을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 개략적인 구조도이다.
도 2를 참조하면, 로봇(100)의 몸통(102)에는 상체(101)가 회전할 수 있도록 요우 방향(yaw, Z축 회전)의 회전 관절(15)과 피치 방향(pitch, Y축 회전)의 회전 관절(16)을 포함하여 2 자유도를 가진다.
또한, 로봇(100)의 머리(104)에는 주위를 촬영하는 카메라(41)와, 사용자 음성을 입력하는 마이크로폰(42)이 설치된다.
머리(104)는 목 관절부(280)를 통해 상체(101)의 몸통(102)과 연결된다. 목 관절부(280)는 요우 방향의 회전 관절(281)과, 피치 방향의 회전 관절(282) 및 롤 방향(roll, X축 회전)의 회전 관절(283)을 포함하여 3 자유도를 가진다.
로봇(100)의 두 개의 팔(106L, 106R)은 각각 상박 링크(31), 하박 링크(32) 및 손(33)을 가진다.
상박 링크(31)는 어깨 관절부(250L, 250R)를 통해 상체(101)에 연결되고, 상박 링크(31)와 하박 링크(32)는 팔꿈치 관절부(260)를 통해 서로 연결되며, 하박 링크(32)와 손(33)은 손목 관절부(270)를 통해 서로 연결된다.
어깨 관절부(250L, 250R)는 상체(101)의 몸통(102)의 양측에 설치되어 두 개의 팔(106L, 106R)을 상체(101)의 몸통(102)에 연결한다.
팔꿈치 관절부(260)는 피치 방향의 회전 관절(261)과, 요우 방향의 회전 관절(262)를 포함하여 2 자유도를 가진다.
손목 관절부(270)는 피치 방향의 회전 관절(271)과, 롤 방향의 회전 관절(272)을 포함하여 2 자유도를 가진다.
손(33)에는 5개의 손가락(33a)이 설치된다. 각각의 손(33a)에는 모터에 의해 구동되는 다수의 관절(미도시)들이 설치될 수 있다. 손가락(33a)은 팔(106)의 움직임에 연동하여 물건을 파지하거나 특정 방향을 가리키는 것과 같은 다양한 동작을 실행한다.
그리고, 로봇(100)의 두 개의 다리(110L, 110R)는 각각 대퇴 링크(21)와 하퇴 링크(22), 발(112L, 112R)을 가진다.
대퇴 링크(21)는 인간의 허벅다리(허벅지)에 해당하는 부분으로 힙 관절부(210)를 통해 상체(101)의 몸통(102)에 연결되고, 대퇴 링크(21)와 하퇴 링크(22)는 무릎 관절부(220)를 통해 서로 연결되며, 하퇴 링크(22)와 발(112L, 112R)은 발목 관절부(230)를 통해 서로 연결된다.
힙 관절부(210)는 요우 방향의 회전 관절(211)과, 피치 방향의 회전 관절(212)과, 롤 방향의 회전 관절(213)을 포함하여 3 자유도를 가진다.
무릎 관절부(220)는 피치 방향의 회전 관절(221)을 포함하여 1 자유도를 가진다.
발목 관절부(230)는 피치 방향의 회전 관절(231)과, 롤 방향의 회전 관절(232)을 포함하여 2 자유도를 가진다.
두 개의 다리(110L, 110R) 각각에는 힙 관절부(210), 무릎 관절부(220), 발목 관절부(230)에 대해 6개의 회전 관절이 마련되므로, 두 개의 다리(110L, 110R) 전체에 대해서는 12개의 회전 관절이 마련된다.
한편, 로봇(100)의 몸통(102)에는 로봇 베이스(미도시)가 설치된다. 로봇 베이스는 몸통(102) 뿐만 아니라 힙 관절부(210)에 설치하는 것도 가능하다.
로봇(100)의 몸통(102)에는 IMU 센서(Inertial Measurement Unit Sensor; 14)가 설치된다. IMU 센서(14)는 로봇 베이스의 위치, 속도, 기울기를 검출한다. IMU 센서(14)는 몸통(102) 뿐만 아니라 머리(104)에 설치해도 되며, 힙 관절부(210)에 설치하는 것도 가능하다.
두 개의 다리(110L, 110R)에서 발(112L, 112R)과 발목 관절부(230)의 사이에는 F/T 센서(Force and Torque Sensor; 24)가 각각 설치된다. F/T 센서(24)는 로봇(100)의 발(112L, 112R)에 작용하는 z축 방향 외력을 검출한다.
도면에 도시되어 있지 않지만, 로봇(100)에는 각 회전 관절을 구동하는 모터 등과 같은 액추에이터가 설치된다. 로봇(100)의 동작 전반을 제어하는 제어부는 이 모터를 적절히 제어함으로써 로봇(100)의 다양한 동작을 구현할 수 있다.
도 3은 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 측면도이다.
도 3을 참조하면, 로봇의 보행 방향(x축)에 대해서 가상의 몸통의 피치 방향(virtual torso pitch)의 회전 관절의 회전각(Θ1), 스윙하는 다리의 힙 관절부의 피치 방향(swing hip pitch)의 회전 관절의 회전각(Θ2), 스윙하는 다리의 무릎 관절부의 피치 방향(swing knee pitch)의 회전 관절의 회전각(Θ3), 스윙하는 다리의 발목 관절부의 피치 방향(swing ankle pitch)의 회전 관절의 회전각(Θ4), 지지하는 다리의 힙 관절부의 피치 방향(stance hip pitch)의 회전 관절의 회전각(Θ5), 지지하는 다리의 무릎 관절부의 피치 방향(stance knee pitch)의 회전 관절의 회전각(Θ6), 지지하는 다리의 발목 관절부의 피치 방향(stance ankle pitch)의 회전 관절의 회전각(Θ7)을 도시하고 있다.
도 4는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 정면도이다.
도 2 및 도 4를 참조하면, 로봇의 보행 방향(x축)에 대해서 가상의 몸통의 롤 방향(virtual torso roll)의 회전 관절의 회전각(Θ8), 스윙하는 다리의 힙 관절부의 롤 방향(swing hip roll)의 회전 관절의 회전각(Θ9), 스윙하는 다리의 발목 관절부의 롤 방향(swing ankle roll)의 회전 관절의 회전각(Θ10), 지지하는 다리의 힙 관절부의 롤 방향(stance hip roll)의 회전 관절의 회전각(Θ11), 지지하는 다리의 발목 관절부의 롤 방향(stance ankle roll)의 회전 관절의 회전각(Θ12)을 도시하고 있다.
도 5는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 평면도이다.
도 2 및 도 5를 참조하면, 로봇의 보행 방향(x축)에 대해서 스윙하는 다리의 힙 관절부의 요우 방향(swing hip yaw)의 회전 관절의 회전각(Θ13), 지지하는 다리의 힙 관절부의 요우 방향(stance hip yaw)의 회전 관절의 회전각(Θ14)을 도시하고 있다.
도 3 내지 도 5에서는 왼쪽 다리가 지지하는 상태이고 오른쪽 다리가 스윙하는 상태이나, 지지하는 다리와 스윙하는 다리는 상호적으로 변경될 수 있다.
한편, 도 3 내지 도 5에서는 로봇(100)의 하체(103)의 주요 관절에 대해서만 도시하고 있으나, 로봇(100)의 상체(101)의 주요 관절에 대한 동작도 하체(103)의 주요 관절에 대한 동작과 동일한 방식으로 구현할 수 있다.
도 6은 본 발명의 일 실시예에 따른 로봇의 선회 보행을 개략적으로 나타내는 도면이다.
도 2 및 도 6을 참조하면, 점선으로 도시한 영역은 로봇의 왼쪽 발(112L)을 나타내며, 실선으로 도시한 영역은 로봇의 오른쪽 발(112R)을 나타낸다. 로봇은 힙 관절부(210)의 요우 방향의 회전을 통해서 보행 방향을 변경한다. 즉, 로봇은 양쪽 힙 관절부(210)의 적절한 요우 방향의 회전을 통해 회전 모션을 수행한다. 로봇의 회전 모션에 로봇의 직선 모션이 조합되는 경우 로봇은 직선 보행 외에도 선회 보행을 수행할 수 있다.
이하에서는 본 발명의 일 실시예에 따른 로봇의 목표 보행 모션을 설정하는 방식을 설명한다.
로봇의 목표 보행 모션은 직선 모션과 회전 모션의 조합을 통해서 이루어진다. 구체적으로, 로봇의 보행 명령은 로봇 베이스의 x축 변위를 정의하는 xdes, 로봇 베이스의 y축 변위를 정의하는 ydes, 로봇 베이스의 z축 회전을 정의하는 Θdes의 조합으로 이루어진다. 예를 들어, 목표 회전 각도 Θdes가 0이고 목표 변위 xdes의 값이 주어진다면 로봇은 직선 보행을 하게 되며, 목표 회전 각도 Θdes가 0이 아니고 목표 변위 xdes`의 값이 주어진다면 직선 모션과 회전 모션이 동시에 이루어져 선회 보행이 가능하게 된다.
도 2 및 도 6을 참조하면, 제어부가 목표 회전 각도 Θdes를 힙 관절부(210)의 요우 방향의 회전 관절(211)에 적용하고, 로봇(100)의 힙 관절부(210)가 요우 방향으로 회전하면서 로봇(100)의 보행 방향이 x축 방향에서 y축 방향으로 변경된다.
이하에서는 본 발명의 일 실시예에 따른 센서 데이터를 처리하는 과정을 설명한다.
로봇에는 IMU 센서가 설치되어 로봇 베이스의 기울기를 검출하고, F/T 센서가 설치되어 로봇의 발에 작용하는 z축 방향 외력을 검출한다. 또한, 로봇의 각 회전 관절에는 엔코더 센서가 설치되어 회전 관절의 위치, 각도, 속도를 검출한다.
제어부는 IMU 센서가 검출한 로봇 베이스의 기울기와 F/T 센서가 검출한 로봇의 발에 작용하는 z축 방향 외력을 스무딩 필터(smoothing filter) 또는 저역 통과 필터(low pass filter) 처리를 한다. 또한, 제어부는 엔코더 센서가 검출한 각 회전 관절의 위치, 각도, 속도도 저역 통과 필터 처리를 한다.
이하에서는 본 발명의 일 실시예에 따른 로봇의 지지 상태를 설정하는 과정을 설명한다.
F/T 센서는 로봇의 발에 작용하는 z축 방향 외력을 검출한다. 즉, F/T 센서는 로봇의 발에 작용하는 하중을 측정할 수 있고, 제어부는 F/T 센서가 측정한 하중이 미리 설정된 임계값보다 크면 그 발을 지지하는 발로 판단할 수 있다.
한편, 로봇의 지지 상태는 복수 개의 상태로 구분할 수 있다. 예를 들어, 로봇이 보행하는 경우 로봇의 왼쪽 다리가 지지하고 오른쪽 다리가 스윙하는 상태, 로봇의 왼쪽 다리가 스윙하고 오른쪽 다리가 지지하는 상태, 또는 로봇이 보행하지 않고 정지한 경우 로봇의 왼쪽 다리와 오른쪽 다리가 모두 지지하는 상태로 구분할 수 있다.
제어부는 로봇의 지지하는 발을 판단하고, 로봇의 지지 상태에 따라 지지하는 발의 위치를 원점으로 하여 좌표계를 설정한다. 로봇의 지지하는 발이 변경되면 좌표계 또한 변경하여 설정한다. 즉, 변경된 지지하는 발의 위치를 다시 원점으로 하여 좌표계를 설정한다.
로봇의 지지 상태는 상술한 바와 같이 왼쪽 지지 상태, 오른쪽 지지 상태, 양쪽 지지 상태로 구분되며, 로봇의 다리는 지지하는 다리와 스윙하는 다리로 구분될 수 있다.
이하에서는 본 발명의 일 실시예에 따른 로봇의 상태를 처리하는 과정을 설명한다.
로봇의 상태는 로봇 베이스의 위치, 속도, 기울기와 로봇의 각 회전 관절의 위치, 각도, 속도를 포함하는 개념이다.
필터 처리한 센서 데이터를 기초로 로봇 베이스의 위치, 속도를 계산한다. 좌표계에 따른 수치적인 오차를 줄이기 위해 현재 로봇의 지지 상태에 따른 좌표계를 이용하여 계산한다. 로봇의 지지 상태에 따른 좌표계는 로봇의 지지하는 다리가 지면에 고정되어 있다고 가정하므로 인간과 유사하게 발뒤꿈치를 이용하는 힐 랜딩 모션(heel landing motion)으로 인해 로봇의 발바닥이 지면과 완전히 접하지 않는 상태가 발생하게 되는데, 이 때 로봇 베이스의 위치 및 속도 계산에 오차가 발생할 수 있다.
따라서, 다음의 식(1)에 의해서 로봇 베이스의 위치, 속도를 보상한다.
식(1)
Figure pat00020
여기서 pBx', pBy'는 각각 보상된 로봇 베이스의 x축 위치, y축 위치이고, pBx, pBy는 각각 좌표계를 이용하여 계산한 로봇 베이스의 x축 위치, y축 위치이고, lleg는 로봇의 다리의 길이이다.
Broll_FK, Bpitch_FK는 각각 좌표계를 이용하여 정기구학 연산을 통해 계산한 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 IMU 센서가 검출한 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
한편, 로봇의 각 회전 관절의 위치, 각도, 속도는 필터 처리한 센서 데이터를 기초로 정기구학 및 동역학 연산을 통해서 계산한다.
도 7은 본 발명의 일 실시예에 따른 로봇의 스테이트 머신을 개략적으로 나타내는 측면도이다.
도 8은 본 발명의 일 실시예에 따른 로봇의 스테이트 머신을 개략적으로 나타내는 정면도이다.
도 7 및 도 8을 참조하면, 로봇의 스테이트 머신을 기반으로 로봇의 보행 궤적을 생성한다. 예를 들어, 로봇의 보행 궤적은 5개의 자세로 구분될 수 있다.
먼저 t0에서 로봇의 양쪽 다리는 지면에 고정되어 있는 자세(S1; S6; ready state)이다. 그리고, tm에서 로봇의 왼쪽 다리를 스윙하기 위해, 로봇의 오른쪽 다리만으로 지면을 지지하면서 왼쪽 다리를 지면으로부터 들어 올린 자세(S2; S7; pre-steady state)이다. 다음으로 tf에서 로봇은 왼쪽 다리가 한 걸음 스윙한 상태로 로봇의 왼쪽 다리가 다시 지면을 지지하는 자세(S3; S8; left support phase triggered)이다. 여기서 시간의 순서는 t0, tm, tf의 순서이다.
마찬가지로, 로봇의 왼쪽 다리가 스윙한 자세(S3; S8)를 다시 t0로 가정하면, tm에서 로봇의 오른쪽 다리를 스윙하기 위해, 로봇의 왼쪽 다리만으로 지면을 지지하면서 오른쪽 다리를 지면으로부터 들어 올린 자세(S4; S9; steady state)이다. 다음으로 tf에서 로봇은 오른쪽 다리가 한 걸음 스윙한 상태로 로봇의 오른쪽 다리가 다시 지면을 지지하는 자세(S5; S10; right support phase triggered)이다.
로봇이 정지하는 경우 로봇의 오른쪽 다리가 스윙한 자세(S4; S9)를 다시 t0로 가정하면, tm에서 로봇의 오른쪽 다리만으로 지면을 지지하면서 왼쪽 다리를 지면으로부터 들어 올린 자세(S2; S7; post-steady state)이다. 다음으로 tf에서 로봇의 양쪽 다리는 지면에 고정되어 있는 자세(S1; S6; stop state)로 복귀한다.
이와 같이 로봇의 보행 궤적은 5개의 자세로 구분될 수 있으며, 각 자세는 좌표계에서 로봇의 각 회전 관절의 경유점으로 나타낼 수 있다. 예를 들어, 도 7에서는 각 회전 관절의 경유점을 각 회전 관절의 위치, 피치 방향 회전 각도로 나타낼 수 있고, 도 8에서는 각 회전 관절의 경유점을 각 회전 관절의 위치, 롤 방향 회전 각도로 나타낼 수 있다.
한편, 제어부는 스테이트 머신에서 로봇의 지지하는 다리와 스윙하는 다리를 F/T 센서가 측정하는 하중을 기초로 변경한다. 예를 들어, 로봇의 왼쪽 다리에 측정된 하중이 미리 설정된 임계값보다 큰 경우 왼쪽 다리를 스윙하고, 오른쪽 다리로 지면을 지지하도록 제어한다. 이와 반대로 로봇의 오른쪽 다리에 측정된 하중이 미리 설정된 임계값보다 큰 경우 오른쪽 다리를 스윙하고, 왼쪽 다리로 지면을 지지하도록 제어한다. 이에 따라 로봇은 왼쪽 다리와 오른쪽 다리를 교대로 지지하고 스윙하면서 보행할 수 있다.
그리고, 각 회전 관절의 경유점은 카트물-롬 스플라인(catmull-rom spline)을 통해 보간되어, 최종적으로 각 회전 관절의 전체적인 모션을 표현한다.
즉, 스테이트 머신은 각 회전 관절의 경유점으로 구성되며, 제어부는 경유점을 변경함으로써 로봇의 목표 보행 궤적을 변경할 수 있다. 제어부는 경유점을 제어하는 복수의 제어변수를 이용하여 로봇의 보행 궤적을 실시간으로 변경할 수 있다.
도 9는 본 발명의 일 실시예에 따른 로봇의 보행을 개략적으로 나타내는 측면도이다.
도 9를 참조하면, 로봇이 정지 상태에서 왼쪽 다리를 한 걸음 스윙하여 보행하고, 오른쪽 다리를 한 걸음 스윙하여 보행한 뒤에 왼쪽 다리를 반 걸음 스윙하여 보행하고 정지하는 것을 도시하고 있다(ready state → pre-steady state → steady state → post-steady state → stop state).
이와 같이 로봇의 보행 궤적은 복수의 자세로 구분될 수 있으며, 제어부는 로봇의 보행 궤적에 대응하는 경유점을 보간하고, 각 경유점에 따라 각 회전 관절을 실시간으로 제어한다.
이하에서는 본 발명의 일 실시예에 따른 로봇의 적응 제어 과정을 설명한다.
로봇이 보행을 하면서 넘어지지 않기 위해서는 보행할 때 마다 적절한 위치에 발을 딛어야 한다. 제어부는 로봇의 지지하는 다리가 변경되는 순간 로봇의 상태, 예를 들어 로봇 베이스의 위치, 속도, 기울기, 각 회전 관절의 위치, 각도, 속도를 계산하여 적절하게 목표 보행 궤적을 생성한다.
목표 보행 모션의 생성은 기본적으로 가상의 역진자 모델을 이용하여 최초 에너지와 최종 에너지가 동일하고 로봇 베이스의 속도가 0이 되는 위치에 로봇의 발을 딛는다는 원리에 기초한다. 적응 제어 과정은 다음 식(2)를 이용하여 로봇의 보폭을 결정하고, 로봇의 보폭을 로봇의 각 회전 관절에 매핑(mapping)하여 발의 딛는 위치를 결정한다.
식(2)
Figure pat00021
여기서 lstep은 로봇의 보폭이고, VB는 로봇 베이스의 속도이고, h0는 로봇 베이스의 초기화 높이이고, g는 중력가속도이고, psweep은 각 회전 관절의 모션을 제어하는 제어변수이고, lleg는 상기 로봇의 다리의 길이이다.
xdes는 로봇 베이스의 x축 변위이고, xdes,max는 로봇 베이스의 x축 변위의 최대값이고, ptorso는 가상의 몸통의 회전 각도를 제어하는 제어변수이고, ctorso,max는 미리 설정된 가상의 몸통의 회전 각도의 최대값이고, psweep,max는 각 회전 관절의 모션을 제어하는 제어변수의 최대값이다.
csweep,max, csweep,min은 각각 미리 설정된 각 회전 관절의 모션의 최대값, 최소값이고, pknee는 로봇의 무릎 관절의 회전 각도를 제어하는 제어변수이고, cknee,max, cknee,min은 각각 미리 설정된 무릎 관절의 회전 각도의 최대값, 최소값이다.
proll은 각 회전 관절의 롤 방향 회전 각도를 제어하는 제어변수이고, croll,max, croll,min은 각각 미리 설정된 각 회전 관절의 롤 방향 회전 각도의 최대값, 최소값이고, ptoeoff는 로봇의 발의 딛는 위치를 제어하는 제어변수이고, ctoeoff,max, ctoeoff,min은 각각 미리 설정된 발의 딛는 위치의 최대값, 최소값이다.
한편, 로봇의 적응 제어 과정은 로봇의 몸통의 자세를 제어하는 과정과 로봇의 스윙하는 다리의 자세를 제어하는 과정을 포함한다.
로봇의 몸통의 자세를 제어하기 위해 다음의 식(3)을 이용하여 IMU 센서로 검출한 로봇 베이스의 실제 기울기와 로봇 베이스의 목표 기울기의 차이 만큼 목표 보행 궤적을 보정한다.
식(3)
Figure pat00022
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 IMU 센서로 검출한 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
로봇의 스윙하는 다리의 자세를 제어하기 위해 다음의 식(4)를 이용하여 로봇이 스윙하는 다리의 발을 딛을 때 기울어지지 않도록, 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 제어한다.
식(4)
Figure pat00023
여기서 qsw_ankle_roll,d'는 보정된 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 목표 보행 궤적상의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 IMU 센서의 센서 데이터와 정기구학 연산을 통해 계산한 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
이하에서는 본 발명의 일 실시예에 따른 밸런싱(balancing) 제어 과정을 설명한다.
로봇의 보행을 제어하기 위한 각 회전 관절의 구동 토크는 다음의 식(5)를 이용하여 계산한다. 제어부는 각 회전 관절의 구동 토크를 각 회전 관절을 구동하는 액추에이터에 배분하여 로봇의 보행 모션을 수행한다.
식(5)
Figure pat00024
여기서 τd는 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 스테이트 머신을 추종하기 위한 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
스테이트 머신을 추종하기 위한 각 회전 관절의 토크는 다음의 식(6)에 따라서 계산한다.
식(6)
Figure pat00025
여기서 τstate_machine는 스테이트 머신을 추종하기 위한 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 각 회전 관절의 목표 각도이고, q는 각 회전 관절의 각도이고,
Figure pat00026
는 각 회전 관절의 속도이다.
제어부는 로봇의 스윙하는 다리에 중력 보상 토크를 부가함으로써 낮은 위치 게인을 사용한 제어를 가능하게 하고, 로봇의 관절을 보다 자연스럽게 움직이도록 한다. 중력 보상 토크는 다음의 식(7)에 따라서 계산한다.
식(7)
Figure pat00027
여기서 τg_comp는 중력 보상 토크이고, RB는 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
제어부는 로봇이 위치하는 지형의 기울기에 따른 밸런싱 토크를 다음의 식(8)에 따라 계산한다.
식(8)
Figure pat00028
여기서 Fvirtual은 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 로봇 베이스의 목표 위치이고, PB는 로봇 베이스의 위치이고, m은 로봇의 질량이고, VB는 로봇 베이스의 속도이고, τmodel은 밸런싱 토크이고, JT는 지지하는 다리의 발목과 로봇 베이스까지를 기술하는 자코비안 행렬이다.
로봇이 보행하여 다리가 스윙하는 동안에는 로봇에 작용하는 외력에 대하여 대응하기 어렵다. 따라서, 제어부는 이를 보완하기 위한 반사 제어를 수행한다. 반사 제어는 비평탄 지형으로 인해 로봇의 자세가 무너질 때 이를 회복하기 위해 빠르게 발을 내딛고 양쪽 다리가 충돌하지 않도록 제어한다.
이와 같은 반사 제어는 다음의 식(9)에 따라 계산한다. 즉, 가상의 파텐셜 배리어(potential barrier)를 지정하고 로봇 베이스의 위치, 속도, 기울기, 각 회전 관절의 위치, 각도, 속도를 이용하여 양쪽 다리가 가깝다고 판단되는 경우 역방향 토크를 힙 관절부의 롤 방향 회전 관절에 배분함으로써 이루어진다.
식(9)
Figure pat00029
여기서 τreflex는 반사 토크이고, η는 가중치이고, σ는 로봇의 양쪽 다리의 거리이고, σ0는 양쪽 다리의 거리 제한이다.
도 10은 본 발명의 일 실시예에 따른 로봇의 구조를 개략적으로 나타내는 블록도이다.
도 10을 참조하면, 로봇은 로봇의 목표 보행 모션이 입력되는 입력부(310), 목표 보행 모션에 따라 로봇의 목표 보행 궤적을 생성하여 적응 제어하고, 로봇의 보행 궤적을 나타내는 스테이트 머신을 설정하고, 설정한 스테이트 머신을 추종하는 각 회전 관절의 구동 토크를 각 회전 관절의 구동부에 배분하는 제어부(320), 제어부(320)가 배분하는 구동 토크에 따라 로봇의 각 회전 관절을 구동하는 구동부(330)을 포함하여 구성된다.
제어부(320)는 가상의 역진자 모델을 이용하여 로봇의 보폭을 결정하고, 결정한 보폭을 로봇의 각 회전 관절에 매핑하여 로봇의 발의 딛는 위치를 결정한다. 또한, 제어부(320)는 IMU 센서가 검출한 로봇 베이스의 실제 기울기와 로봇 베이스의 목표 기울기의 차이로 목표 보행 궤적을 보정하여 로봇의 몸통의 자세를 제어한다. 제어부(320)는 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 로봇의 스윙하는 다리의 자세를 제어한다.
제어부(320)는 로봇의 목표 보행 궤적에 따라 각 회전 관절을 구동하기 위한 구동 토크를 계산한다. 제어부(320)는 스테이트 머신을 추종하기 위한 각 회전 관절의 토크, 중력 보상 토크, 밸런싱 토크, 반사 토크를 상술한 바와 같은 방식으로 계산할 수 있다.
도 11은 본 발명의 일 실시예에 따른 로봇의 제어 방법을 개략적으로 나타내는 흐름도이다.
도 11을 참조하면, 로봇의 목표 보행 모션을 설정한다(S410). 로봇의 목표 보행 모션은 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 이루어 진다.
그리고, 로봇에 설치되는 복수의 센서의 각 센서 데이터를 처리한다(S420). 로봇의 몸통에는 IMU센서가 설치되고, 로봇의 발과 발목 관절부의 사이에는 F/T 센서가 설치되고, 로봇의 각 회전 관절에는 엔코더 센서가 설치된다.
IMU 센서는 로봇 베이스의 위치, 속도, 기울기를 검출하고, F/T 센서는 로봇의 발에 작용하는 z축 방향 외력을 검출한다. 엔코더 센서는 각 회전 관절의 위치, 각도, 속도를 검출한다.
IMU 센서가 검출한 로봇 베이스의 기울기와 F/T 센서가 검출한 로봇의 발에 작용하는 z축 방향 외력은 스무딩 필터(smoothing filter) 또는 저역 통과 필터(low pass filter) 처리를 한다. 또한, 엔코더 센서가 검출한 각 회전 관절의 위치, 각도, 속도도 저역 통과 필터 처리를 한다.
다음으로 로봇의 지지 상태와 좌표계를 설정한다(S430). F/T 센서는 로봇의 발에 작용하는 z축 방향 외력을 검출하므로, 로봇의 발에 작용하는 하중을 측정할 수 있다. 따라서, F/T 센서가 측정한 하중이 미리 설정된 임계값보다 크면 그 발을 지지하는 발로 판단할 수 있다.
로봇의 지지 상태는 왼쪽 지지 상태, 오른쪽 지지 상태, 양쪽 지지 상태로 구분될 수 있으며, 로봇의 지지 상태에 따라 지지하는 발의 위치를 원점으로 하여 좌표계를 설정한다.
로봇의 각 센서 데이터를 기초로 로봇의 상태를 처리한다(S440). 로봇의 상태는 로봇 베이스의 위치, 속도, 기울기와 로봇의 각 회전 관절의 위치, 각도, 속도를 포함하는 개념이다.
로봇의 지지하는 다리에 변경이 있는지 판단한다(S450). F/T 센서는 로봇의 발에 작용하는 z축 방향 외력을 검출한다. 따라서, F/T 센서는 로봇의 발에 작용하는 하중을 측정할 수 있고, F/T 센서가 측정한 하중을 기초로 로봇의 지지하는 다리에 변경이 있는지 판단할 수 있다.
한편, 로봇의 지지하는 발이 변경되면 좌표계 또한 변경하여 설정한다. 즉, 변경된 지지하는 발의 위치를 다시 원점으로 하여 좌표계를 설정한다.
로봇의 지지하는 다리의 변경이 있으면 목표 보행 모션에 따라 로봇의 목표 보행 궤적을 생성하여 적응 제어한다(S460). 로봇의 지지하는 다리가 변경되는 순간 로봇 베이스의 위치, 속도, 기울기, 각 회전 관절의 위치, 각도, 속도를 계산하여 적절하게 목표 보행 궤적을 생성하며, 목표 보행 모션의 생성은 기본적으로 가상의 역진자 모델을 이용한다.
또한, 로봇의 적응 제어 과정은 IMU 센서로 검출한 로봇 베이스의 실제 기울기와 로봇 베이스의 목표 기울기의 차이 만큼 목표 보행 궤적을 보정하여 로봇의 몸통의 자세를 제어하는 과정, 로봇이 스윙하는 다리의 발을 딛을 때 기울어지지 않도록, 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 제어하는 과정을 포함한다.
로봇의 보행 전에 로봇의 보행 궤적을 나타내는 스테이트 머신을 설정한다(S470). 스테이트 머신은 각 회전 관절의 경유점으로 구성되며, 경유점을 변경함으로써 로봇의 목표 보행 궤적을 변경할 수 있다.
설정한 스테이트 머신을 추종하여 로봇의 보행 및 밸런싱을 제어한다(S480).
로봇의 보행을 제어하기 위한 각 회전 관절의 구동 토크는 스테이트 머신을 추종하기 위한 각 회전 관절의 토크, 중력 보상 토크, 밸런싱 토크, 반사 토크를 조합한 형태이다.
중력 보상 토크는 로봇의 스윙하는 다리에 중력 보상 토크를 부가함으로써 낮은 위치 게인을 사용한 제어를 가능하게 한다. 밸런싱 토크는 로봇이 위치하는 지형의 기울기에 따라 로봇이 안정한 자세를 유지하도록 하기 위한 것이다.
한편, 반사 토크는 비평탄 지형으로 인해 로봇의 자세가 무너질 때 이에 대응하기 위한 것이다. 이에 따라 로봇 베이스의 위치, 속도, 기울기, 각 회전 관절의 위치, 각도, 속도를 이용하여 양쪽 다리가 가깝다고 판단되는 경우 역방향 토크를 힙 관절부의 롤 방향 회전 관절에 배분한다.
100: 로봇 101: 상체
102: 몸통 103: 하체
104: 머리 106: 팔
110: 다리 310: 입력부
320: 제어부 330: 구동부

Claims (28)

  1. 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계;
    상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계;
    상기 처리한 데이터를 기초로 상기 로봇의 지지 상태와 좌표계를 설정하는 단계;
    상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계;
    상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계;
    상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및
    상기 설정한 스테이트 머신을 추종하여 상기 로봇의 보행 및 밸런싱을 제어하는 단계를 포함하는 로봇의 제어 방법.
  2. 제1항에 있어서,
    상기 데이터를 검출하고 처리하는 단계는 상기 로봇의 몸통에 설치되는 IMU 센서가 상기 로봇 베이스의 위치, 속도, 기울기를 검출하고, 상기 로봇의 발에 설치되는 F/T 센서가 상기 로봇의 발에 작용하는 z축 방향 외력을 검출하고, 상기 로봇의 각 회전 관절에 설치되는 엔코더 센서가 상기 로봇의 각 회전 관절의 위치, 각도, 속도를 검출하는 로봇의 제어 방법.
  3. 제2항에 있어서,
    상기 데이터를 검출하고 처리하는 단계는 상기 IMU 센서와 F/T 센서가 검출한 데이터를 스무딩 필터 또는 저역 통과 필터 처리하고, 상기 엔코더 센서가 검출한 데이터를 저역 통과 필터 처리하는 로봇의 제어 방법.
  4. 제1항에 있어서,
    상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 발에 작용하는 z축 방향 외력이 미리 설정된 임계값보다 크면 상기 발을 상기 로봇의 지지하는 발로 판단하는 로봇의 제어 방법.
  5. 제4항에 있어서,
    상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지하는 발의 위치를 원점으로 하여 좌표계를 설정하는 로봇의 제어 방법.
  6. 제4항에 있어서,
    상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지 상태가 왼쪽 지지 상태, 오른쪽 지지 상태, 양쪽 지지 상태로 구분되는 로봇의 제어 방법.
  7. 제1항에 있어서,
    상기 로봇의 상태를 처리하는 단계는 상기 로봇의 상태가 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도를 포함하는 로봇의 제어 방법.
  8. 제7항에 있어서,
    상기 로봇의 상태를 처리하는 단계는 상기 좌표계를 이용하여 다음 식(1)에 따라 상기 로봇 베이스의 위치, 속도를 보상하여 계산하는 로봇의 제어 방법.
    식(1)
    Figure pat00030

    여기서 pBx', pBy'는 각각 보상된 상기 로봇 베이스의 x축 위치, y축 위치이고, pBx, pBy는 각각 상기 좌표계를 이용하여 계산한 상기 로봇 베이스의 x축 위치, y축 위치이고, lleg는 상기 로봇의 다리의 길이이고, Broll_FK, Bpitch_FK는 각각 상기 좌표계를 이용하여 정기구학 연산을 통해 계산한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
  9. 제8항에 있어서,
    상기 로봇의 상태를 처리하는 단계는 상기 처리한 데이터를 기초로 상기 좌표계를 이용하고 정기구학 연산 및 동역학 연산을 통해서 상기 각 회전 관절의 위치, 각도, 속도를 보상하여 계산하는 로봇의 제어 방법.
  10. 제1항에 있어서,
    상기 적응 제어하는 단계는 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도로 목표 보행 궤적을 생성하는 로봇의 제어 방법.
  11. 제10항에 있어서,
    상기 적응 제어하는 단계는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정하는 로봇의 제어 방법.
    식(2)
    Figure pat00031

    여기서 lstep은 상기 보폭이고, VB는 상기 로봇 베이스의 속도이고, h0는 상기 로봇 베이스의 초기화 높이이고, g는 중력가속도이고, psweep은 상기 각 회전 관절의 모션을 제어하는 제어변수이고, lleg는 상기 로봇의 다리의 길이이고, xdes는 상기 로봇 베이스의 x축 변위이고, xdes,max는 상기 로봇 베이스의 x축 변위의 최대값이고, ptorso는 가상의 몸통의 회전 각도를 제어하는 제어변수이고, ctorso,max는 미리 설정된 가상의 몸통의 회전 각도의 최대값이고, psweep,max는 상기 각 회전 관절의 모션을 제어하는 제어변수의 최대값이고, csweep,max, csweep,min은 각각 미리 설정된 상기 각 회전 관절의 모션의 최대값, 최소값이고, pknee는 상기 로봇의 무릎 관절의 회전 각도를 제어하는 제어변수이고, cknee,max, cknee,min은 각각 미리 설정된 상기 무릎 관절의 회전 각도의 최대값, 최소값이고, proll은 상기 각 회전 관절의 롤 방향 회전 각도를 제어하는 제어변수이고, croll,max, croll,min은 각각 미리 설정된 상기 각 회전 관절의 롤 방향 회전 각도의 최대값, 최소값이고, ptoeoff는 상기 발의 딛는 위치를 제어하는 제어변수이고, ctoeoff,max, ctoeoff,min은 각각 미리 설정된 상기 발의 딛는 위치의 최대값, 최소값이다.
  12. 제10항에 있어서,
    상기 적응 제어하는 단계는 다음 식(3)에 따라 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 실제 기울기와 상기 로봇 베이스의 목표 기울기의 차이로 상기 목표 보행 궤적을 보정하여 상기 로봇의 몸통의 자세를 제어하는 로봇의 제어 방법.
    식(3)
    Figure pat00032

    여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
  13. 제10항에 있어서,
    상기 적응 제어하는 단계는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어하는 로봇의 제어 방법.
    식(4)
    Figure pat00033

    여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
  14. 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계;
    상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계;
    상기 처리한 데이터를 기초로 로봇의 지지 상태와 좌표계를 설정하는 단계;
    상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계;
    상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계;
    상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및
    상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계를 포함하는 로봇의 제어 방법.
  15. 제14항에 있어서,
    상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 다음 식(5)에 따라 상기 각 회전 관절의 구동 토크를 계산하는 로봇의 제어 방법.
    식(5)
    Figure pat00034

    여기서 τd는 상기 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
  16. 제15항에 있어서,
    상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크를 다음 식(6)에 따라 계산하는 로봇의 제어 방법.
    식(6)
    Figure pat00035

    여기서 τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 상기 각 회전 관절의 목표 각도이고, q는 상기 각 회전 관절의 각도이고,
    Figure pat00036
    는 상기 각 회전 관절의 속도이다.
  17. 제15항에 있어서,
    상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 중력 보상 토크를 다음 식(7)에 따라 계산하는 로봇의 제어 방법.
    식(7)
    Figure pat00037

    여기서 τg_comp는 상기 중력 보상 토크이고, RB는 상기 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 상기 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
  18. 제15항에 있어서,
    상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 밸런싱 토크를 다음 식(8)에 따라 계산하는 로봇의 제어 방법.
    식(8)
    Figure pat00038

    여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다.
  19. 제15항에 있어서,
    상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 다음 식(9)에 따라 반사 토크를 계산하는 로봇의 제어 방법.
    식(9)
    Figure pat00039

    여기서 τreflex는 상기 반사 토크이고, η는 가중치이고, σ는 상기 로봇의 양쪽 다리의 거리이고, σ0는 상기 양쪽 다리의 거리 제한이다.
  20. 보행을 위한 복수의 회전 관절과 로봇 베이스를 구비하는 로봇에 있어서,
    상기 로봇의 목표 보행 모션이 입력되는 입력부;
    상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하고, 상기 로봇의 보행 궤적을 나타내는 스테이트 머신을 설정하고, 상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 구동부에 배분하는 제어부; 및
    상기 제어부가 배분하는 구동 토크에 따라 상기 로봇의 각 회전 관절을 구동하는 구동부를 포함하는 로봇.
  21. 제20항에 있어서,
    상기 제어부는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 로봇의 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정하는 로봇.
    식(2)
    Figure pat00040

    여기서 lstep은 상기 보폭이고, VB는 상기 로봇 베이스의 속도이고, h0는 상기 로봇 베이스의 초기화 높이이고, g는 중력가속도이고, psweep은 상기 각 회전 관절의 모션을 제어하는 제어변수이고, lleg는 상기 로봇의 다리의 길이이고, xdes는 상기 로봇 베이스의 x축 변위이고, xdes,max는 상기 로봇 베이스의 x축 변위의 최대값이고, ptorso는 가상의 몸통의 회전 각도를 제어하는 제어변수이고, ctorso,max는 미리 설정된 가상의 몸통의 회전 각도의 최대값이고, psweep,max는 상기 각 회전 관절의 모션을 제어하는 제어변수의 최대값이고, csweep,max, csweep,min은 각각 미리 설정된 상기 각 회전 관절의 모션의 최대값, 최소값이고, pknee는 상기 로봇의 무릎 관절의 회전 각도를 제어하는 제어변수이고, cknee,max, cknee,min은 각각 미리 설정된 상기 무릎 관절의 회전 각도의 최대값, 최소값이고, proll은 상기 각 회전 관절의 롤 방향 회전 각도를 제어하는 제어변수이고, croll,max, croll,min은 각각 미리 설정된 상기 각 회전 관절의 롤 방향 회전 각도의 최대값, 최소값이고, ptoeoff는 상기 발의 딛는 위치를 제어하는 제어변수이고, ctoeoff,max, ctoeoff,min은 각각 미리 설정된 상기 발의 딛는 위치의 최대값, 최소값이다.
  22. 제21항에 있어서,
    상기 제어부는 다음 식(3)에 따라 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 실제 기울기와 상기 로봇 베이스의 목표 기울기의 차이로 상기 목표 보행 궤적을 보정하여 상기 로봇의 몸통의 자세를 제어하는 로봇.
    식(3)
    Figure pat00041

    여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서로 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
  23. 제21항에 있어서,
    상기 제어부는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어하는 로봇.
    식(4)
    Figure pat00042

    여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
  24. 제20항에 있어서,
    상기 제어부는 다음 식(5)에 따라 상기 각 회전 관절의 구동 토크를 계산하는 로봇.
    식(5)
    Figure pat00043

    여기서 τd는 상기 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
  25. 제24항에 있어서,
    상기 제어부는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크를 다음 식(6)에 따라 계산하는 로봇의 제어 방법.
    식(6)
    Figure pat00044

    여기서 τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 상기 각 회전 관절의 목표 각도이고, q는 상기 각 회전 관절의 각도이고,
    Figure pat00045
    는 상기 각 회전 관절의 속도이다.
  26. 제24항에 있어서,
    상기 제어부는 상기 중력 보상 토크를 다음 식(7)에 따라 계산하는 로봇.
    식(7)
    Figure pat00046

    여기서 τg_comp는 상기 중력 보상 토크이고, RB는 상기 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 상기 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
  27. 제24항에 있어서,
    상기 제어부는 상기 밸런싱 토크를 다음 식(8)에 따라 계산하는 로봇.
    식(8)
    Figure pat00047

    여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다.
  28. 제24항에 있어서,
    상기 제어부는 다음 식(9)에 따라 반사 토크를 계산하는 로봇.
    식(9)
    Figure pat00048

    여기서 τreflex는 상기 반사 토크이고, η는 가중치이고, σ는 상기 로봇의 양쪽 다리의 거리이고, σ0는 상기 양쪽 다리의 거리 제한이다.
KR1020110097909A 2011-09-28 2011-09-28 로봇 및 그 제어 방법 KR20130034082A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110097909A KR20130034082A (ko) 2011-09-28 2011-09-28 로봇 및 그 제어 방법
US13/627,667 US20130079929A1 (en) 2011-09-28 2012-09-26 Robot and control method thereof
EP12186608A EP2574527A2 (en) 2011-09-28 2012-09-28 Robot and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110097909A KR20130034082A (ko) 2011-09-28 2011-09-28 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20130034082A true KR20130034082A (ko) 2013-04-05

Family

ID=47351382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110097909A KR20130034082A (ko) 2011-09-28 2011-09-28 로봇 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20130079929A1 (ko)
EP (1) EP2574527A2 (ko)
KR (1) KR20130034082A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101490885B1 (ko) * 2013-12-18 2015-02-06 국방과학연구소 보행의도 추정기반 착용로봇 및 그 제어방법
KR20160135560A (ko) * 2015-05-18 2016-11-28 국방과학연구소 구동장치의 불균형 토크 보상 제어장치 및 방법
US10471610B2 (en) 2015-06-16 2019-11-12 Samsung Electronics Co., Ltd. Robot arm having weight compensation mechanism
KR20220036188A (ko) * 2020-09-15 2022-03-22 한국과학기술연구원 발자국 생성을 통한 휴머노이드 로봇의 균형 복원 방법
KR20220045725A (ko) 2020-10-06 2022-04-13 코가플렉스 주식회사 이동 로봇 및 이의 위치 추정 방법

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120070291A (ko) * 2010-12-21 2012-06-29 삼성전자주식회사 보행 로봇 및 그의 동시 위치 인식 및 지도 작성 방법
JP6332900B2 (ja) 2012-08-31 2018-05-30 セイコーエプソン株式会社 ロボットシステム及びロボット制御装置
JP6155780B2 (ja) 2013-04-10 2017-07-05 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP2014205197A (ja) 2013-04-10 2014-10-30 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP2014205199A (ja) * 2013-04-10 2014-10-30 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP2014205198A (ja) 2013-04-10 2014-10-30 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP6354122B2 (ja) 2013-06-05 2018-07-11 セイコーエプソン株式会社 ロボット
US9259838B1 (en) 2014-07-24 2016-02-16 Google Inc. Systems and methods for ground plane estimation
US9308648B2 (en) * 2014-07-24 2016-04-12 Google Inc. Systems and methods for robotic self-right
US9618937B1 (en) 2014-08-25 2017-04-11 Google Inc. Slip detection using robotic limbs
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
US10081098B1 (en) 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9517561B2 (en) * 2014-08-25 2016-12-13 Google Inc. Natural pitch and roll
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9499218B1 (en) 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US9561592B1 (en) * 2015-05-15 2017-02-07 Google Inc. Ground plane compensation for legged robots
US9586316B1 (en) 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
US9789919B1 (en) 2016-03-22 2017-10-17 Google Inc. Mitigating sensor noise in legged robots
WO2017181319A1 (zh) * 2016-04-18 2017-10-26 江南大学 基于粒子群优化和强化学习算法的仿生双足机器人动态行走控制***
US11981031B2 (en) * 2016-08-18 2024-05-14 The Trustees Of The University Of Pennsylvania Systems and methods for controlling robotic behaviors
CN109843519A (zh) * 2016-10-20 2019-06-04 三菱电机株式会社 三旋转自由度连接机构、机器人、机器人臂和机器人手
CN107273850B (zh) * 2017-06-15 2021-06-11 上海工程技术大学 一种基于移动机器人的自主跟随方法
CN109987169B (zh) * 2017-12-29 2021-01-08 深圳市优必选科技有限公司 双足机器人的步态控制方法、装置、终端设备及介质
US20200306998A1 (en) * 2019-03-25 2020-10-01 Boston Dynamics, Inc. Multi-Body Controller
CN110202580B (zh) * 2019-06-28 2020-08-21 北京理工大学 一种扰动恢复的仿人机器人空间柔顺控制模型构建方法
WO2020233050A1 (zh) * 2019-11-26 2020-11-26 浙江大学 一种双足机器人不平整路面动态跑步步态实现方法
CN111625002B (zh) * 2019-12-24 2022-12-13 杭州电子科技大学 一种仿人机器人爬楼步态规划与控制的方法
CN112711259B (zh) * 2020-12-28 2024-04-02 深圳市优必选科技股份有限公司 动态生成脚印集方法、装置、存储介质及双足机器人
CN112949676B (zh) * 2020-12-29 2022-07-08 武汉理工大学 一种柔性下肢助力外骨骼机器人的自适应运动模式识别方法
CN112623062B (zh) * 2021-01-06 2022-03-29 中国铁建重工集团股份有限公司 一种行走底盘及工程机械
CN116985110A (zh) * 2022-07-25 2023-11-03 腾讯科技(深圳)有限公司 控制足式机器人的方法和装置及足式机器人
CN116872217B (zh) * 2023-09-04 2023-11-17 深圳市普渡科技有限公司 机器人控制方法、装置、机器人和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101464124B1 (ko) * 2008-06-04 2014-11-20 삼성전자주식회사 로봇 및 그 보행제어방법
FR2947236B1 (fr) * 2009-06-30 2011-07-15 Aldebaran Robotics Procede pour controler la marche d'un robot mobile et robot mettant en oeuvre le procede

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101490885B1 (ko) * 2013-12-18 2015-02-06 국방과학연구소 보행의도 추정기반 착용로봇 및 그 제어방법
KR20160135560A (ko) * 2015-05-18 2016-11-28 국방과학연구소 구동장치의 불균형 토크 보상 제어장치 및 방법
US10471610B2 (en) 2015-06-16 2019-11-12 Samsung Electronics Co., Ltd. Robot arm having weight compensation mechanism
KR20220036188A (ko) * 2020-09-15 2022-03-22 한국과학기술연구원 발자국 생성을 통한 휴머노이드 로봇의 균형 복원 방법
KR20220045725A (ko) 2020-10-06 2022-04-13 코가플렉스 주식회사 이동 로봇 및 이의 위치 추정 방법

Also Published As

Publication number Publication date
EP2574527A2 (en) 2013-04-03
US20130079929A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
KR20130034082A (ko) 로봇 및 그 제어 방법
KR101985790B1 (ko) 보행 로봇 및 그 제어 방법
KR101778027B1 (ko) 보행 로봇 및 그 자세 제어 방법
US7873436B2 (en) Gait generator for mobile robot
JP4998506B2 (ja) ロボット制御装置、ロボット制御方法、及び脚式ロボット
EP2347867B1 (en) Walking control apparatus of robot and method of controlling the same
KR102044437B1 (ko) 로봇의 균형 제어 장치 및 그 제어 방법
KR101004820B1 (ko) 이동체 장치, 이동체 장치의 제어 방법, 로봇 장치, 로봇 장치의 동작 제어 방법
JP5607886B2 (ja) 歩行ロボット及びその制御方法
US8825213B2 (en) Gait generating device for legged mobile robot and operational target generating device for robot
KR101687629B1 (ko) 인간형 로봇 및 그 보행 제어방법
KR101687630B1 (ko) 보행 로봇 및 그 균형 제어 방법
EP2343164B1 (en) Walking control apparatus of robot and method of controlling the same
KR20120060578A (ko) 보행 로봇 및 그 자세 제어 방법
EP2590043A2 (en) Walking robot and control method thereof
US20060106495A1 (en) Control device of legged mobile robot
KR20120134036A (ko) 로봇 및 그 제어방법
EP2343161A1 (en) Walking robot and method of controlling the same
US7561941B2 (en) Ambulatory robot and method for controlling the same
KR20130068694A (ko) 보행 로봇 및 그 제어 방법
KR20100086355A (ko) 로봇의 보행 제어장치 및 그 방법
KR20120024098A (ko) 보행 로봇 및 그 제어방법
KR20180004397A (ko) 보행 로봇 및 그 자세 제어 방법
JP4946566B2 (ja) 歩行ロボット及び歩行制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid