KR20130034082A - 로봇 및 그 제어 방법 - Google Patents
로봇 및 그 제어 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000006073 displacement reaction Methods 0.000 claims abstract description 26
- 210000002414 leg Anatomy 0.000 claims description 126
- 210000001503 joint Anatomy 0.000 claims description 68
- 210000002683 foot Anatomy 0.000 claims description 62
- 210000000544 articulatio talocruralis Anatomy 0.000 claims description 30
- 230000005484 gravity Effects 0.000 claims description 30
- 210000004394 hip joint Anatomy 0.000 claims description 26
- 210000000629 knee joint Anatomy 0.000 claims description 15
- 230000003044 adaptive effect Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 10
- 210000003423 ankle Anatomy 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 claims description 5
- 238000009499 grossing Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims 1
- 230000036544 posture Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 6
- 210000001624 hip Anatomy 0.000 description 5
- 241000282412 Homo Species 0.000 description 4
- 210000003127 knee Anatomy 0.000 description 3
- 210000000689 upper leg Anatomy 0.000 description 3
- 210000002310 elbow joint Anatomy 0.000 description 2
- 210000000323 shoulder joint Anatomy 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 210000003857 wrist joint Anatomy 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 230000005021 gait Effects 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 210000004197 pelvis Anatomy 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
- B62D57/032—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators 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
동역학 기반의 동적 보행에 따라 보행하는 로봇 및 그 제어 방법에 관한 것이다.
일반적으로 인간형 로봇이란 인간과 유사한 관절 체계를 가지고 이족 보행을 수행하는 로봇을 말한다. 이와 같은 인간형 로봇은 안정적인 이족 보행을 위해 각 관절에 위치한 전기 액추에이터, 유압 액추에이터 등의 액츄에이터를 구동해야 한다.
액추에이터의 구동 방식으로 ZMP(Zero Moment Point) 제어 방식이란 각 관절의 명령 위치를 추종하여 제어하는 위치 제어 방식을 말한다. 종래의 ZMP 제어 방식은 무릎을 굽히고 골반의 위치를 일정하게 유지하는 등 인간과 유사하지 않은 부자연스러운 보행을 하며, 또한, 미리 정해진 위치를 정확하게 제어하기 위해서 높은 위치 제어 게인을 통해 로봇의 동적 특성에 역행하는 제어를 수행하므로 에너지 비효율적이다. 특히, ZMP 제어 방식은 후진성이 낮은 메커니즘으로 관절을 구성하여 임의의 굴곡이 있는 비평탄 지형에 취약하여 쉽게 넘어지는 문제점이 있다.
본 발명의 일측면은 인간과 유사하게 자연스러운 보행을 할 수 있고, 낮은 위치 제어 게인을 사용하여 로봇의 동적 특성에 순행하므로 에너지 효율적이며, 비평탄 지형을 안정하게 보행할 수 있는 로봇 및 그 제어 방법을 제공한다.
이를 위한 본 발명의 일 실시예에 의한 로봇의 제어 방법은 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계; 상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계; 상기 처리한 데이터를 기초로 상기 로봇의 지지 상태와 좌표계를 설정하는 단계; 상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계; 상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계; 상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및 상기 설정한 스테이트 머신을 추종하여 상기 로봇의 보행 및 밸런싱을 제어하는 단계를 포함한다.
상기 데이터를 검출하고 처리하는 단계는 상기 로봇의 몸통에 설치되는 IMU 센서가 상기 로봇 베이스의 위치, 속도, 기울기를 검출하고, 상기 로봇의 발에 설치되는 F/T 센서가 상기 로봇의 발에 작용하는 z축 방향 외력을 검출하고, 상기 로봇의 각 회전 관절에 설치되는 엔코더 센서가 상기 로봇의 각 회전 관절의 위치, 각도, 속도를 검출한다.
상기 데이터를 검출하고 처리하는 단계는 상기 IMU 센서와 F/T 센서가 검출한 데이터를 스무딩 필터 또는 저역 통과 필터 처리하고, 상기 엔코더 센서가 검출한 데이터를 저역 통과 필터 처리한다.
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 발에 작용하는 z축 방향 외력이 미리 설정된 임계값보다 크면 상기 발을 상기 로봇의 지지하는 발로 판단한다.
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지하는 발의 위치를 원점으로 하여 좌표계를 설정한다.
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지 상태가 왼쪽 지지 상태, 오른쪽 지지 상태, 양쪽 지지 상태로 구분된다.
상기 로봇의 상태를 처리하는 단계는 상기 로봇의 상태가 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도를 포함한다.
상기 로봇의 상태를 처리하는 단계는 상기 좌표계를 이용하여 다음 식(1)에 따라 상기 로봇 베이스의 위치, 속도를 보상하여 계산한다.
식(1)
여기서 pBx', pBy'는 각각 보상된 상기 로봇 베이스의 x축 위치, y축 위치이고, pBx, pBy는 각각 상기 좌표계를 이용하여 계산한 상기 로봇 베이스의 x축 위치, y축 위치이고, lleg는 상기 로봇의 다리의 길이이고, Broll_FK, Bpitch_FK는 각각 상기 좌표계를 이용하여 정기구학 연산을 통해 계산한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
상기 로봇의 상태를 처리하는 단계는 상기 처리한 데이터를 기초로 상기 좌표계를 이용하고 정기구학 연산 및 동역학 연산을 통해서 상기 각 회전 관절의 위치, 각도, 속도를 보상하여 계산한다.
상기 적응 제어하는 단계는 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도로 목표 보행 궤적을 생성한다.
상기 적응 제어하는 단계는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정한다.
식(2)
여기서 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)
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
상기 적응 제어하는 단계는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어한다.
식(4)
여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
한편, 본 발명의 다른 일 실시예에 의한 로봇의 제어 방법은 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계; 상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계; 상기 처리한 데이터를 기초로 로봇의 지지 상태와 좌표계를 설정하는 단계; 상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계; 상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계; 상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및 상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계를 포함한다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 다음 식(5)에 따라 상기 각 회전 관절의 구동 토크를 계산한다.
식(5)
여기서 τd는 상기 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크를 다음 식(6)에 따라 계산한다.
식(6)
여기서 τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 상기 각 회전 관절의 목표 각도이고, q는 상기 각 회전 관절의 각도이고, 는 상기 각 회전 관절의 속도이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 중력 보상 토크를 다음 식(7)에 따라 계산한다.
식(7)
여기서 τg_comp는 상기 중력 보상 토크이고, RB는 상기 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 상기 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 밸런싱 토크를 다음 식(8)에 따라 계산한다.
식(8)
여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다.
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 다음 식(9)에 따라 반사 토크를 계산한다.
식(9)
여기서 τreflex는 상기 반사 토크이고, η는 가중치이고, σ는 상기 로봇의 양쪽 다리의 거리이고, σ0는 상기 양쪽 다리의 거리 제한이다.
본 발명의 일 실시예에 의한 로봇은 보행을 위한 복수의 회전 관절과 로봇 베이스를 구비하는 로봇에 있어서, 상기 로봇의 목표 보행 모션이 입력되는 입력부; 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하고, 상기 로봇의 보행 궤적을 나타내는 스테이트 머신을 설정하고, 상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 구동부에 배분하는 제어부; 및 상기 제어부가 배분하는 구동 토크에 따라 상기 로봇의 각 회전 관절을 구동하는 구동부를 포함한다.
상기 제어부는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 로봇의 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정한다.
식(2)
여기서 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)
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서로 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
상기 제어부는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어한다.
식(4)
여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
상기 제어부는 다음 식(5)에 따라 상기 각 회전 관절의 구동 토크를 계산하한다.
식(5)
여기서 τd는 상기 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
상기 제어부는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크를 다음 식(6)에 따라 계산한다.
식(6)
여기서 τstate_machine는 상기 스테이트 머신을 추종하기 위한 상기 각 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 상기 각 회전 관절의 목표 각도이고, q는 상기 각 회전 관절의 각도이고, 는 상기 각 회전 관절의 속도이다.
상기 제어부는 상기 중력 보상 토크를 다음 식(7)에 따라 계산한다.
식(7)
여기서 τg_comp는 상기 중력 보상 토크이고, RB는 상기 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 상기 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
상기 제어부는 상기 밸런싱 토크를 다음 식(8)에 따라 계산한다.
식(8)
여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다.
상기 제어부는 다음 식(9)에 따라 반사 토크를 계산한다.
식(9)
여기서 τreflex는 상기 반사 토크이고, η는 가중치이고, σ는 상기 로봇의 양쪽 다리의 거리이고, σ0는 상기 양쪽 다리의 거리 제한이다.
상술한 본 발명의 일측면에 의하면 인간과 유사하게 자연스러운 보행을 할 수 있고, 낮은 위치 제어 게인을 사용하여 로봇의 동적 특성에 순행하므로 에너지 효율적이며, 비평탄 지형을 안정하게 보행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 로봇의 외관의 개략적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 개략적인 구조도이다.
도 3은 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 측면도이다.
도 4는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 정면도이다.
도 5는 본 발명의 일 실시예에 따른 로봇의 주요 관절의 좌표를 개략적으로 나타내는 평면도이다.
도 6은 본 발명의 일 실시예에 따른 로봇의 선회 보행을 개략적으로 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 로봇의 스테이트 머신(state machine)을 개략적으로 나타내는 측면도이다.
도 8은 본 발명의 일 실시예에 따른 로봇의 스테이트 머신을 개략적으로 나타내는 정면도이다.
도 9는 본 발명의 일 실시예에 따른 로봇의 보행을 개략적으로 나타내는 측면도이다.
도 10은 본 발명의 일 실시예에 따른 로봇의 구조를 개략적으로 나타내는 블록도이다.
도 11은 본 발명의 일 실시예에 따른 로봇의 제어 방법을 개략적으로 나타내는 흐름도이다.
도 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)
여기서 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)
여기서 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)
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 IMU 센서로 검출한 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다.
로봇의 스윙하는 다리의 자세를 제어하기 위해 다음의 식(4)를 이용하여 로봇이 스윙하는 다리의 발을 딛을 때 기울어지지 않도록, 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 제어한다.
식(4)
여기서 qsw_ankle_roll,d'는 보정된 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 목표 보행 궤적상의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 IMU 센서의 센서 데이터와 정기구학 연산을 통해 계산한 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
이하에서는 본 발명의 일 실시예에 따른 밸런싱(balancing) 제어 과정을 설명한다.
로봇의 보행을 제어하기 위한 각 회전 관절의 구동 토크는 다음의 식(5)를 이용하여 계산한다. 제어부는 각 회전 관절의 구동 토크를 각 회전 관절을 구동하는 액추에이터에 배분하여 로봇의 보행 모션을 수행한다.
식(5)
여기서 τd는 각 회전 관절의 구동 토크이고, w1, w2, w3, w4는 가중치이고, τstate_machine는 스테이트 머신을 추종하기 위한 각 회전 관절의 토크이고, τg_comp는 중력 보상 토크이고, τmodel은 밸런싱 토크이고, τreflex는 반사 토크이다.
스테이트 머신을 추종하기 위한 각 회전 관절의 토크는 다음의 식(6)에 따라서 계산한다.
식(6)
여기서 τstate_machine는 스테이트 머신을 추종하기 위한 회전 관절의 토크이고, kp, kd는 매개변수이고, qd는 각 회전 관절의 목표 각도이고, q는 각 회전 관절의 각도이고, 는 각 회전 관절의 속도이다.
제어부는 로봇의 스윙하는 다리에 중력 보상 토크를 부가함으로써 낮은 위치 게인을 사용한 제어를 가능하게 하고, 로봇의 관절을 보다 자연스럽게 움직이도록 한다. 중력 보상 토크는 다음의 식(7)에 따라서 계산한다.
식(7)
여기서 τg_comp는 중력 보상 토크이고, RB는 로봇 베이스의 방위를 나타내는 3x3 행렬이고, qd는 각 회전 관절의 목표 각도이고, G()는 중력 보상 함수이다.
제어부는 로봇이 위치하는 지형의 기울기에 따른 밸런싱 토크를 다음의 식(8)에 따라 계산한다.
식(8)
여기서 Fvirtual은 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 로봇 베이스의 목표 위치이고, PB는 로봇 베이스의 위치이고, m은 로봇의 질량이고, VB는 로봇 베이스의 속도이고, τmodel은 밸런싱 토크이고, JT는 지지하는 다리의 발목과 로봇 베이스까지를 기술하는 자코비안 행렬이다.
로봇이 보행하여 다리가 스윙하는 동안에는 로봇에 작용하는 외력에 대하여 대응하기 어렵다. 따라서, 제어부는 이를 보완하기 위한 반사 제어를 수행한다. 반사 제어는 비평탄 지형으로 인해 로봇의 자세가 무너질 때 이를 회복하기 위해 빠르게 발을 내딛고 양쪽 다리가 충돌하지 않도록 제어한다.
이와 같은 반사 제어는 다음의 식(9)에 따라 계산한다. 즉, 가상의 파텐셜 배리어(potential barrier)를 지정하고 로봇 베이스의 위치, 속도, 기울기, 각 회전 관절의 위치, 각도, 속도를 이용하여 양쪽 다리가 가깝다고 판단되는 경우 역방향 토크를 힙 관절부의 롤 방향 회전 관절에 배분함으로써 이루어진다.
식(9)
여기서 τ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: 구동부
102: 몸통 103: 하체
104: 머리 106: 팔
110: 다리 310: 입력부
320: 제어부 330: 구동부
Claims (28)
- 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계;
상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계;
상기 처리한 데이터를 기초로 상기 로봇의 지지 상태와 좌표계를 설정하는 단계;
상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계;
상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계;
상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및
상기 설정한 스테이트 머신을 추종하여 상기 로봇의 보행 및 밸런싱을 제어하는 단계를 포함하는 로봇의 제어 방법. - 제1항에 있어서,
상기 데이터를 검출하고 처리하는 단계는 상기 로봇의 몸통에 설치되는 IMU 센서가 상기 로봇 베이스의 위치, 속도, 기울기를 검출하고, 상기 로봇의 발에 설치되는 F/T 센서가 상기 로봇의 발에 작용하는 z축 방향 외력을 검출하고, 상기 로봇의 각 회전 관절에 설치되는 엔코더 센서가 상기 로봇의 각 회전 관절의 위치, 각도, 속도를 검출하는 로봇의 제어 방법. - 제2항에 있어서,
상기 데이터를 검출하고 처리하는 단계는 상기 IMU 센서와 F/T 센서가 검출한 데이터를 스무딩 필터 또는 저역 통과 필터 처리하고, 상기 엔코더 센서가 검출한 데이터를 저역 통과 필터 처리하는 로봇의 제어 방법. - 제1항에 있어서,
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 발에 작용하는 z축 방향 외력이 미리 설정된 임계값보다 크면 상기 발을 상기 로봇의 지지하는 발로 판단하는 로봇의 제어 방법. - 제4항에 있어서,
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지하는 발의 위치를 원점으로 하여 좌표계를 설정하는 로봇의 제어 방법. - 제4항에 있어서,
상기 로봇의 지지 상태와 좌표계를 설정하는 단계는 상기 로봇의 지지 상태가 왼쪽 지지 상태, 오른쪽 지지 상태, 양쪽 지지 상태로 구분되는 로봇의 제어 방법. - 제1항에 있어서,
상기 로봇의 상태를 처리하는 단계는 상기 로봇의 상태가 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도를 포함하는 로봇의 제어 방법. - 제7항에 있어서,
상기 로봇의 상태를 처리하는 단계는 상기 좌표계를 이용하여 다음 식(1)에 따라 상기 로봇 베이스의 위치, 속도를 보상하여 계산하는 로봇의 제어 방법.
식(1)
여기서 pBx', pBy'는 각각 보상된 상기 로봇 베이스의 x축 위치, y축 위치이고, pBx, pBy는 각각 상기 좌표계를 이용하여 계산한 상기 로봇 베이스의 x축 위치, y축 위치이고, lleg는 상기 로봇의 다리의 길이이고, Broll_FK, Bpitch_FK는 각각 상기 좌표계를 이용하여 정기구학 연산을 통해 계산한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다. - 제8항에 있어서,
상기 로봇의 상태를 처리하는 단계는 상기 처리한 데이터를 기초로 상기 좌표계를 이용하고 정기구학 연산 및 동역학 연산을 통해서 상기 각 회전 관절의 위치, 각도, 속도를 보상하여 계산하는 로봇의 제어 방법. - 제1항에 있어서,
상기 적응 제어하는 단계는 상기 로봇 베이스의 위치, 속도, 기울기와 상기 각 회전 관절의 위치, 각도, 속도로 목표 보행 궤적을 생성하는 로봇의 제어 방법. - 제10항에 있어서,
상기 적응 제어하는 단계는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정하는 로봇의 제어 방법.
식(2)
여기서 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은 각각 미리 설정된 상기 발의 딛는 위치의 최대값, 최소값이다. - 제10항에 있어서,
상기 적응 제어하는 단계는 다음 식(3)에 따라 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 실제 기울기와 상기 로봇 베이스의 목표 기울기의 차이로 상기 목표 보행 궤적을 보정하여 상기 로봇의 몸통의 자세를 제어하는 로봇의 제어 방법.
식(3)
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서가 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다. - 제10항에 있어서,
상기 적응 제어하는 단계는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어하는 로봇의 제어 방법.
식(4)
여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다. - 로봇 베이스의 x축 변위, y축 변위, z축 회전의 조합으로 상기 로봇의 목표 보행 모션을 설정하는 단계;
상기 로봇의 몸통, 발, 각 회전 관절에 설치되는 센서를 통해 상기 로봇 베이스의 위치, 속도, 기울기, 상기 발에 작용하는 z축 방향 외력, 상기 각 회전 관절의 위치, 각도, 속도에 관한 데이터를 검출하고 처리하는 단계;
상기 처리한 데이터를 기초로 로봇의 지지 상태와 좌표계를 설정하는 단계;
상기 처리한 데이터를 기초로 상기 로봇의 상태를 처리하는 단계;
상기 로봇의 지지하는 다리의 변경이 있으면 상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하는 단계;
상기 로봇의 보행 궤적을 나타내는 스테이트 머신(state machine)을 설정하는 단계; 및
상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계를 포함하는 로봇의 제어 방법. - 제15항에 있어서,
상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 액추에이터에 배분하는 단계는 상기 밸런싱 토크를 다음 식(8)에 따라 계산하는 로봇의 제어 방법.
식(8)
여기서 Fvirtual은 상기 로봇에 작용하는 가상의 힘이고, kp, kd는 매개변수이고, PB,des는 상기 로봇 베이스의 목표 위치이고, PB는 상기 로봇 베이스의 위치이고, m은 상기 로봇의 질량이고, VB는 상기 로봇 베이스의 속도이고, τmodel은 상기 밸런싱 토크이고, JT는 상기 로봇의 지지하는 다리의 발목과 상기 로봇 베이스까지를 기술하는 자코비안 행렬이다. - 보행을 위한 복수의 회전 관절과 로봇 베이스를 구비하는 로봇에 있어서,
상기 로봇의 목표 보행 모션이 입력되는 입력부;
상기 목표 보행 모션에 따라 상기 로봇의 목표 보행 궤적을 생성하여 적응 제어하고, 상기 로봇의 보행 궤적을 나타내는 스테이트 머신을 설정하고, 상기 설정한 스테이트 머신을 추종하는 상기 각 회전 관절의 구동 토크를 상기 각 회전 관절의 구동부에 배분하는 제어부; 및
상기 제어부가 배분하는 구동 토크에 따라 상기 로봇의 각 회전 관절을 구동하는 구동부를 포함하는 로봇. - 제20항에 있어서,
상기 제어부는 가상의 역진자 모델을 이용하여 다음 식(2)에 따라 상기 로봇의 보폭을 결정하고 상기 보폭을 상기 로봇의 각 회전 관절에 매핑하여 상기 로봇의 발의 딛는 위치를 결정하는 로봇.
식(2)
여기서 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은 각각 미리 설정된 상기 발의 딛는 위치의 최대값, 최소값이다. - 제21항에 있어서,
상기 제어부는 다음 식(3)에 따라 상기 로봇의 몸통에 설치되는 센서가 검출한 상기 로봇 베이스의 실제 기울기와 상기 로봇 베이스의 목표 기울기의 차이로 상기 목표 보행 궤적을 보정하여 상기 로봇의 몸통의 자세를 제어하는 로봇.
식(3)
여기서 qhip_roll,d', qhip_pitch,d'는 각각 보정된 힙 관절의 롤 방향 회전 각도, 피치 방향 회전 각도이고, qhip_roll,d, qhip_pitch,d는 각각 상기 목표 보행 궤적상의 힙 관절의 롤 방향 회전각, 피치 방향 회전각이고, Broll,d, Bpitch,d는 각각 상기 로봇 베이스의 목표 롤 방향 기울기, 목표 피치 방향 기울기이고, Broll_IMU, Bpitch_IMU는 각각 상기 센서로 검출한 상기 로봇 베이스의 롤 방향 기울기, 피치 방향 기울기이다. - 제21항에 있어서,
상기 제어부는 다음 식(4)에 따라 상기 로봇의 발목 관절의 롤 방향 회전 각도를 지면과 평행하게 하여 상기 로봇의 스윙하는 다리의 자세를 제어하는 로봇.
식(4)
여기서 qsw_ankle_roll,d'는 보정된 상기 로봇의 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll,d는 상기 목표 보행 궤적상의 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이고, qsw_ankle_roll은 상기 처리한 데이터와 정기구학 연산을 통해 계산한 상기 스윙하는 다리의 발목 관절의 롤 방향 회전 각도이다.
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)
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)
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)
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 |
-
2011
- 2011-09-28 KR KR1020110097909A patent/KR20130034082A/ko not_active Application Discontinuation
-
2012
- 2012-09-26 US US13/627,667 patent/US20130079929A1/en not_active Abandoned
- 2012-09-28 EP EP12186608A patent/EP2574527A2/en not_active Withdrawn
Cited By (5)
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 |