KR101200191B1 - 데이터 기반 바이페드 제어 장치 및 방법 - Google Patents

데이터 기반 바이페드 제어 장치 및 방법 Download PDF

Info

Publication number
KR101200191B1
KR101200191B1 KR1020100068103A KR20100068103A KR101200191B1 KR 101200191 B1 KR101200191 B1 KR 101200191B1 KR 1020100068103 A KR1020100068103 A KR 1020100068103A KR 20100068103 A KR20100068103 A KR 20100068103A KR 101200191 B1 KR101200191 B1 KR 101200191B1
Authority
KR
South Korea
Prior art keywords
pose information
biped
time point
swing
information corresponding
Prior art date
Application number
KR1020100068103A
Other languages
English (en)
Other versions
KR20120007372A (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 KR1020100068103A priority Critical patent/KR101200191B1/ko
Priority to US13/808,784 priority patent/US9336182B2/en
Priority to EP10854762.1A priority patent/EP2594374A1/en
Priority to PCT/KR2010/004943 priority patent/WO2012008640A1/ko
Publication of KR20120007372A publication Critical patent/KR20120007372A/ko
Application granted granted Critical
Publication of KR101200191B1 publication Critical patent/KR101200191B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

바이페드(biped) 제어가 수행된다. 바이페드 제어에 있어서 추적 제어(tracking control)을 위한 타켓 포즈 정보는, 애니매이션 엔진으로부터 주어지거나 및/또는 모션 캡처 데이터로부터 획득되는 참조 포즈 정보를 변조함으로써 생성된다. 이러한 참조 포즈 정보의 변조에 있어서, 현재 포즈 정보가 피드백되어 이용될 수 있다.

Description

데이터 기반 바이페드 제어 장치 및 방법{DATA-DRIVEN BIPED CONTROL APPARATUS AND METHOD}
데이터 기반의 바이페드 제어 장치 및 방법에 연관되며, 보다 특정하게는 바이페드(biped character or simply "biped")의 동작의 시뮬레이션 및/또는 바이페드 로봇 제어를 위한 데이터 기반 제어 장치 및 방법에 연관된다.
물리적으로 시뮬레이션된(physically-simulated) 가상의 세계에서 양족의 캐릭터(biped characters)의 동작을 제어하는 것은 컴퓨터 애니메이션, 로봇공학(robotics), 그리고 생체역학(biomechanics) 등에서 중요한 논점(issue)이다.
시뮬레이션 되는 바이페드 캐릭터의 동작 제어 및/또는 바이페드 로봇의 동작을 제어하기 위해서, 제어 이론(control theory) 및 기계 학습(machine learning) 등으로부터 걷기(walking)나 중심잡기(balancing)와 같은 각각의 개별적 인간 행동(human behavior)을 물리적으로 시뮬레이션 하는 컨트롤러(controller)가 소개되어 왔다.
이러한 방법 중 하나는, 인간의 동작 캡처(motion capture)를 통해 얻어지는 모션 데이터들을 추적 제어(tracking control)하고, 이를 통해 바이페드의 동작을 시뮬레이션 하는 것이다.
그런데, 모션 캡처 데이터(motion captured data)를 단순히 추적 제어 하는 경우, 모션 캡처 배우(actor)와 바이페드의 질량 키 등의 불일치 및 측정의 오류, 추적상의 오차, 나아가 바이페드에 대한 외적인 요동(disturbance), 이를테면 바이페드 진행방향에 장애물이 있거나, 바이페드에 물리적인 외력이 직접 작용하거나, 그라운드의 경사도 변화나 그라운드의 흔들림 등에 의해 바이페드는 쉽게 균형을 잃고 넘어질 수 있다.
다양한 시뮬레이팅 환경이나 물리적 외력(disturbance)에도 불구하고 바이페드의 밸런스 유지의 신뢰도를 높인 데이터 기반 바이페드 제어 장치 및 방법이 제공된다.
참조 모션 데이터의 가공을 위한 별도의 pre-computation을 생략함으로써, 다양한 애니매이션 엔진(animation engine)과 플러그인 형태로 결합되는 데이터 기반 바이페드 제어 장치 및 방법이 제공된다.
본 발명의 일측에 따르면, 피드백 되는 바이페드의 현재 포즈 정보를 이용하여, 참조 포즈 정보를 변조함으로써 다음에 추적할 타켓 포즈 정보를 생성하는 밸런스 유지 모듈, 및 상기 현재 포즈 정보를 이용하여, 상기 참조 포즈 정보에 포함되는 적어도 일부 요소의 시간 흐름에 따른 궤적을 편집하는 동기화 모듈을 포함하는, 데이터 기반의 바이페드 제어 장치가 제공된다.
여기서, 상기 타켓 포즈 정보는, 상기 바이페드의 스탠스 힙(stance hip), 스윙 힙(swing hip), 스탠스 앵클(stance ankle), 스윙 풋 하이트(swing foot height) 중 적어도 하나일 수 있다.
상기 바이페드의 타켓 포즈 정보가 상기 바이페드의 스탠스 힙인 경우, 상기 밸런스 유지 모듈은, 상기 현재 포즈 정보에서의 스탠스 힙 각도를 상기 참조 포즈 정보에서의 스탠스 힙 각도와 비교한 차이를 이용하여, 상기 참조 포즈 정보에서의 스탠스 힙 각도를 변조하여, 상기 타켓 포즈 정보의 스탠스 힙 각도를 계산할 수 있다.
한편, 상기 바이페드의 타켓 포즈 정보가 상기 바이페드의 스윙 힙 및 스탠스 앵클 각도 중 적어도 하나인 경우, 상기 밸런스 유지 모듈은, 상기 현재 포즈 정보에서의 바이페드 중심의 속도를 상기 참조 포즈 정보에서의 바이페드 중심의 속도와 비교한 차이를 이용하여, 상기 참조 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 변조하여, 상기 타켓 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 계산할 수 있다.
또한, 이 경우, 상기 밸런스 유지 모듈은, 상기 현재 포즈 정보에서의 바이페드 중심과 스탠스 앵클 사이의 거리를 상기 참조 포즈 정보에서의 바이페드 중심과 스탠스 앵클 사이의 거리와 비교한 차이를 이용하여, 상기 참조 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 변조하여, 상기 타켓 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 계산할 수도 있다.
한편, 상기 바이페드의 타켓 포즈 정보가 상기 바이페드의 스윙 풋 하이트인 경우, 상기 밸런스 유지 모듈은, 상기 현재 포즈 정보에서의 스윙 풋 하이트를 상기 참조 포즈 정보에서의 스윙 풋 하이트와 비교한 차이를 이용하여, 상기 참조 포즈 정보에서의 스윙 풋 하이트를 변조하여, 상기 타켓 포즈 정보의 스윙 풋 하이트를 계산할 수 있다.
또한, 이 경우, 상기 밸런스 유지 모듈은, 상기 현재 포즈 정보에서의 스윙 풋 하이트의 변화 속도를 상기 참조 포즈 정보에서의 스윙 풋 하이트의 변화 속도와 비교한 차이를 이용하여, 상기 참조 포즈 정보에서의 스윙 풋 하이트를 변조하여, 상기 타켓 포즈 정보의 스윙 풋 하이트를 계산할 수도 있다.
한편, 상기 동기화부는, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 빠르게 이루어지는 경우, 상기 참조 포즈 정보의 궤적의 일부를 잘라내어 상기 참조 포즈 정보의 궤적을 편집할 수 있다.
이 경우, 상기 동기화부는, 상기 참조 포즈 정보의 적어도 하나의 프래임을 삭제할 수 있다.
한편, 상기 동기화부는, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 늦게 이루어지는 경우, 상기 참조 포즈 정보의 궤적에 잉여 궤적을 삽입하여 상기 참조 포즈 정보의 궤적을 편집할 수 있다.
이 경우, 상기 동기화부는, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 늦게 이루어지는 경우, 상기 참조 포즈 정보에 적어도 하나의 프래임을 추가할 수 있다.
본 발명의 다른 일측에 따르면, 피드백 되는 바이페드의 현재 포즈 정보를 이용하여, 참조 포즈 정보를 변조함으로써 다음에 추적할 타켓 포즈 정보를 생성하는 밸런스 유지 모듈을 포함하고, 상기 밸런스 유지 모듈은, 상기 바이페드의 현재 포즈 정보를 이용하여, 상기 바이페드의 스탠스 힙(stance hip), 스윙 힙(swing hip), 스탠스 앵클(stance ankle), 스윙 풋 하이트(swing foot height) 중 적어도 하나에 대응하는 상기 참조 포즈 정보를 변조함으로써 다음에 추적할 상기 타켓 포즈 정보를 생성하는, 데이터 기반의 바이페드 제어 장치가 제공된다.
본 발명의 또 다른 일측에 따르면, 피드백 되는 바이페드의 현재 포즈 정보를 이용하여, 참조 포즈 정보에 포함되는 적어도 일부 요소의 시간 흐름에 따른 궤적을 편집하는 동기화 모듈을 포함하고, 상기 동기화부는, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 빠르게 이루어지는 경우, 상기 참조 포즈 정보의 궤적의 일부를 잘라내고, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 늦게 이루어지는 경우, 상기 참조 포즈 정보의 궤적에 잉여 궤적을 삽입하여 상기 참조 포즈 정보의 궤적을 편집하는, 데이터 기반의 바이페드 제어 장치가 제공된다.
본 발명의 또 다른 일측에 따르면, 바이페드 제어 장치의 밸런스 유지 모듈이, 피드백 되는 바이페드의 현재 포즈 정보를 이용하여, 참조 포즈 정보를 변조함으로써 다음에 추적할 타켓 포즈 정보를 생성하는 밸런스 유지 단계, 및 상기 바이페드 제어 장치의 동기화 모듈이, 상기 현재 포즈 정보를 이용하여, 상기 참조 포즈 정보에 포함되는 적어도 일부 요소의 시간 흐름에 따른 궤적을 편집하는 동기화 단계를 포함하는, 데이터 기반의 바이페드 제어 방법이 제공된다.
바이페드의 밸런스 유지를 위한 제어 과정이 복잡한 pre-computation이나 학습 모델(model learning) 없이 수행될 수 있다.
바이페드의 밸런스 유지를 위해 별도의 pre-computation이 요구되지 않으므로, 참조 모션 데이터(reference motion data)를 제공할 수 있는 어떤 모듈이라도 결합될 수 있으므로, 다양한 애니매이션 엔진들을 그대로 플러그인 형태로 사용할 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 기반 제어 장치를 도시한다.
도 2는 본 발명의 일실시예에 의한 데이터 기반 제어 장치(100)의 의해 제어되는 바이페드의 예시적 모습을 도시한다.
도 3은 본 발명의 일실시예에 의한 데이터 기반의 바이페드 제어 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 일실시예에 따라, 참조 모션 데이터를 모션 큐에서 관리하는 모습을 도시하는 개념도이다.
도 5는 본 발명의 일실시예에 따라, 밸런스 유지 모듈이 현재 포즈 정보 피드백을 통해 타켓 포즈의 스탠스 힙의 각도를 계산하는 과정을 도시한다.
도 6은 본 발명의 일실시예에 따라, 밸런스 유지 모듈이 현재 포즈 정보 피드백을 통해 타켓 포즈의 스윙 힙의 각도를 계산하는 과정을 도시한다.
도 7은 본 발명의 일실시예에 따라, 밸런스 유지 모듈이 현재 포즈 정보 피드백을 통해 타켓 포즈의 스윙 풋 하이트를 계산하는 과정을 도시한다.
도 8 및 도 9는 본 발명의 일실시예에 따라, 스윙 풋의 빠른 착지에 대응하여 동기화부가 동기화를 위해 참조 포즈 정보를 편집하는 과정을 도시한다.
도 10 및 도 11은 본 발명의 일실시예에 따라, 스윙 풋의 스윙 풋의 늦은 착지에 대응하여 동기화부가 동기화를 위해 참조 포즈 정보를 편집하는 과정을 도시한다.
도 12는 본 발명의 일실시예에 따른 데이터 기반 제어 장치가 동작하는 전체 플로우를 도시하기 위한 시스템 개념도이다.
도 13은 본 발명의 일실시예에 따라, 데이터 기반 제어 장치에 결합될 수 있는 도 12의 애니매이션 엔진의 상세한 동작을 도시하는 개념도이다.
도 14는 본 발명의 일실시예에 따른 바이페드 제어 및 시뮬레이트 과정을 도시하는 흐름도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 데이터 기반 제어 장치(100)를 도시한다.
본 발명의 일실시예에 따르면, 데이터 기반의 바이페드 제어 장치(100)는 밸런싱 유지 모듈(110) 및 동기화 모듈(120)을 포함한다.
밸런싱 유지 모듈(110)은 참조 모션 데이터를 구성하는 참조 포즈의 스트림을, 계속적으로 변조한다(modulate stream of reference poses continuously).
특히, 본 실시예에 따르면, 상기 참조 포즈의 스트림 변조는, 추적 제어를 이용한 바이페드 동작 시뮬레이트 런타임(runtime)에 현재 바이페드 포즈를 피드백 받으면서 실시간으로 수행되므로, 미리 계산될(pre-computation) 필요가 없이 빠르게 적용될 수 있다.
그리고, 동기화 모듈(120)은 바이페드의 걷기 동작 시뮬레이션 중 스윙 풋(swing foot)의 그라운드 랜딩(ground landing) 오차를 없애기 위해, 참조 모션 데이터의 일부 포즈 스트림을 제거하거나, 및/또는 일부 포즈 스트림을 추가적으로 삽입함으로써, 참조 모션 데이터와 시뮬레이트 되는 바이페드 동작 사이의 동기화를 수행한다.
이렇게 밸런스 유지 모듈(110) 및 동기화 모듈(120)이 런타임 시에 실시간으로 변조한 모션 포즈의 스트림은 추적 제어부(tracking controller)에 제공되어, 추적 제어가 수행되고, 그러면 시뮬레이터에 의한 바이페드 시뮬레이팅이 수행된다.
이러한 실시예에 따르면, 구체적인 시뮬레이팅 환경에서, 바이페드가 단순히 원래의 참조 모션 데이터를 쫓아가기만 하는 것이 아니고, 현재 바이페드의 포즈가 실시간으로 피드백 되어 참조 모션 데이터가 계속적으로 변조되는 것이므로, 바이페드의 밸런스 유지 실패의 확률이 크게 작아진다.
밸런스 유지 모듈(110)의 구체적인 동작은 도 5 내지 도 7을 참조하여 보다 상세히 후술하며, 동기화 모듈(120)의 구체적인 동작은 도 8 내지 도 11을 참조하여 보다 상세히 후술한다.
도 2는 본 발명의 일실시예에 의한 데이터 기반 제어 장치(100)의 의해 제어되는 바이페드(biped)(200)의 예시적 모습을 도시한다.
바이페드(200)는 양족 보행 캐릭터를 의미하며, 컴퓨팅 시스템에서 동작을 시뮬레이트 하거나, 및/또는 로보틱스 분야에서 실제 보행 로봇의 동작을 제어하는 데에 이용된다.
바이페드(200)는 복수 개의 rigid body들(head, torso, pelvis, upper arms, lower arms, thighs, shins, and feet)이 볼-소켓 조인트(ball-and-socket joint)들에 의해 연결되어 있는 구성일 수 있다.
이러한 바이페드의 특성 때문에 바이페드 시뮬레이트, 컨트롤의 문제는 복수 개의 조인트에서의 토크 발생의 문제로 귀결된다.
여기서, 바이페드는 인간의 신체를 상당히 단순화 시킨 모델이며, 자유도(Degree of Freedom; DOF)가 크게 낮다. 바이페드의 시뮬레이션은 원하는 시뮬레이션 환경에서, 어떻게 하면 바이페드(200)가 밸런스를 유지하도록 할 것인가의 문제와, 또한 바이페드(200)가 자연스럽게 보이는 동작을 하도록 할 것인가의 문제로 대표될 수 있다.
바이페드 제어에 관한 조금 더 구체적인 언급을 위해 도 3을 참조하기로 한다.
도 3은 본 발명의 일실시예에 의한 데이터 기반의 바이페드 제어 방법을 설명하기 위한 개념도이다.
바이페드(300)는 도 2의 바이페드(200)를 2차원적으로 평면화하여 나타낸 것이다. 도시된 바와 같이, 바이페드(300)의 움직임은 바이페드에 포함된 전체 관절 각각에 대한 토크 값들의 실시간 제어에 의해 구현될 수 있다.
Rigid body(320)과 rigid body(310)은 조인트(301)에 의해 연결되며, 두 rigid body 사이의 상대적인 위치(position)나 방향(orientation)들은 결국 조인트(301)에서의 토크 값의 계산에 의해 시뮬레이트 될 수 있다.
그런데, 바이페드 모델의 동작을 위한 제어 방법 중 일 예는, 추적의 대상이 되는 참조 동작(reference motion)을 추적 제어(tracking control)함으로써 바이페드 모델의 동작을 제어하는 것이다.
[수학식1]
Figure 112010045526186-pat00001
여기서,
Figure 112010045526186-pat00002
,
Figure 112010045526186-pat00003
,
Figure 112010045526186-pat00004
는 각각, 참조 동작(reference motion)으로부터 평가된 조인트의 각도(joint angles), 조인트 각속도(joint velocities) 및 조인트 각가속도(joint accelerations)를 나타내며,
Figure 112010045526186-pat00005
,
Figure 112010045526186-pat00006
는 각각, 바이페드의 현재 조인트의 각도(joint angles) 및 조인트 각속도(joint velocities)를 나타낸다.
조인트에서의 토크(torque)는 목표 각 가속도(desired joint acceleration)
Figure 112010045526186-pat00007
로부터 인버스 다이나믹스(inverse dynamics)에 의해 계산되며, 이렇게 계산된 토크가 시뮬레이터(simulator)에 제공되면 포워드 다이나믹스(forward dynamics)에 의해 시뮬레이터가 바이페드를 움직인다(actuates).
이러한 추적 컨트롤(tracking control)에 의한 바이페드 각 조인트들에 대한 토크 계산과 시뮬레이터의 움직임 과정은 다양한 응용예에 의해 구현될 수 있다. 따라서, 본 발명의 사상을 벗어나지 않는 범위에서, 참조 모션 데이터(Reference motion data)를 이용하여 바이페드 움직임 제어를 수행하는 어떠한 실시예라도 본 발명의 권리범위에서 배제되는 것으로 해석되어서는 안 된다.
또한, 참조 모션 데이터가 획득되는 방법에 있어서도, 다양한 응용 예가 있을 수 있으며, 본 발명은 이하에서 서술하는 특정한 실시예에 국한되는 것으로만 해석되어서는 안 되며, 본 발명의 범위는 청구범위에 기재된 사항에 의해 해석되어야 한다.
따라서, 추적 제어(tracking control)방법에 의해 참조 모션 데이터들을 추적 제어함으로써 바이페드의 움직임을 제어하고 시뮬레이트 하는 것이라면, 구체적인 추적 제어 방법의 종류, 참조 모션 데이터를 제공하는 애니매이션 엔진 등의 종류, 구체적인 움직임(actuating) 시뮬레이팅 방법의 종류 등은, 이하에서 언급되지 않는 것이라도 얼마든지 채용될 수 있으며, 이러한 실시예 또한 본 발명의 사상을 벗어나지 않는 한도에서는 본 발명의 권리범위에 포함되는 것으로 이해되어야 한다.
본 발명의 일실시예에 따르면, 데이터 기반의 바이페드 제어 장치(100)의 밸런싱 유지 모듈(110)이 참조 모션 데이터를 구성하는 참조 포즈의 스트림을, 계속적으로 변조한다(modulate stream of reference poses continuously).
특히, 본 발명의 일실시예에 따르면, 상기 참조 포즈의 스트림 변조는, 추적 제어를 이용한 바이페드 동작 시뮬레이트 런타임(runtime)에 현재 바이페드 포즈를 피드백 받으면서 실시간으로 수행되므로, 미리 계산될(pre-computation) 필요가 없이 빠르게 적용될 수 있다.
이렇게 밸런스 유지 모듈(110)이 런타임 시에 실시간으로 변조한 모션 포즈의 스트림은 추적 제어부(tracking controller)에 제공되어, 추적 제어가 수행되고, 그러면 시뮬레이터에 의한 바이페드 시뮬레이팅이 수행된다.
이러한 실시예에 따르면, 구체적인 시뮬레이팅 환경에서, 바이페드가 단순히 원래의 참조 모션 데이터를 쫓아가기만 하는 것이 아니고, 현재 바이페드의 포즈가 실시간으로 피드백 되어 참조 모션 데이터가 계속적으로 변조되는 것이므로, 바이페드의 밸런스 유지 실패의 확률이 크게 작아진다.
여기서 참조 모션 데이터의 실시간 수정 과정에서 모션 큐(motion queue)가 이용될 수 있으며, 이는 도 4를 참조하여 상술한다.
도 4는 본 발명의 일실시예에 따라, 참조 모션 데이터를 모션 큐에서 관리하는 모습을 도시하는 개념도이다.
본 실시예에서는 애니매이션 엔진 또는 다른 어떤 참조 모션 데이터의 소스로부터 획득한 모션 데이터가 스윙 풋(swing foot)의 변화 단위로 쪼개지고, 쪼개진 단위는 다시 복수 개의 프레임 포즈인 포스처(posture)로 구분되어 관리된다.
이를테면, 모션 데이터 단위 M가 바이페드의 왼쪽 다리를 스윙 풋으로 하는 것이면, 모션 데이터 단위 M'은 오른쪽 다리를 스윙 풋으로 하는 것이다. 그리고, M은 프래임 래이트(frame rate)에 따라 복수 개의 포스처로 관리된다.
시간의 흐름에 따라 포스처들이 디큐(dequeue)되어서 추적 제어에 활용되며, 본 발명의 실시예들에 따른 밸런스 유지 모듈(110)은, 현재 바이페드의 포즈 정보를 피드백 받아서, 이렇게 디큐된 포스처들(이하에서는 참조 포즈(reference pose)라고 한다)을 변조한다.
한편, 본 발명의 다른 일실시예에 따르면, 데이터 기반의 바이페드 제어 장치(100)의 동기화 모듈(120)이 상기 밸런싱 유지 모듈(110)의 참조 포즈 변조 외에, 참조 모션 데이터 내의 일부 참조 포즈 스트림을 제거하거나, 또는 삽입하는데, 이 경우에는 일부 포스처를 동시에 디큐하거나 및/또는 일부 포스처를 인테그레이션(integration)하여 생성한 포스처를 인큐(enqueue)한다.
이하에서는, 본 발명의 실시예들에 따른 밸런스 유지 모듈(110)과 동기화 모듈(120)의 동작을 구체적인 예시와 함께 설명한다.
바이페드의 동작 제어를 이해하기 위해, 잠시 인간 보행의 밸런스 유지를 언급하기로 한다. 인체의 자유도(DOF)는 바이페드의 그것보다 훨씬 높아서, 더 많은 요인들이 밸런스 유지에 기여하지만, 기본적으로 인간의 밸런싱(balancing) 동작도 힙 관절(hip joint) 및 스탠스 앵클(stance ankle)을 포함하여, 몇 개의 관절에서의 토크 값 제어에 크게 의존하고 있다.
따라서, 본 발명의 일실시예에 따르면, 인간인 배우(actor)의 보행을 모션 캡처하여 획득한 모션 캡처 데이터(motion captured data)를 추적 제어(tracking control)하여 바이페드의 동작을 시뮬레이트 한다.
또한, 본 발명의 다른 일실시예에 따르면, 유저 인터액션에 따른 바이페드 캐릭터(물리적인 로보트의 동작 제어에 있어서는 로보트 자체)의 동작 참조 데이터를 별도의 플러그인 애니매이션 엔진으로부터 제공받을 수도 있다.
어떠한 방식으로든, 추적 제어를 통해 추적할 참조 모션 데이터가 주어지는 경우, 본 발명의 실시예에 따른 데이터 기반 바이페드 제어 장치(100)는 현재 바이페드의 포즈 정보를 피드백 받아서, 이를 이용한 모션 데이터 변조를 런타임에서 수행한다.
참조 모션 데이터의 정보는 아래 수학식 2을 참조하여 이해될 수 있다.
[수학식 2]
Figure 112010045526186-pat00008
Figure 112010045526186-pat00009
상기 수학식 2에서, M(t)는 상기 도 4의 모션 큐(motion queue)의 탑(top)에 있는, 현재 t 시점에서 참조되어야 할 참조 포즈(reference pose)이다. 엄밀히는 참조 M(t)는 모션을 중 특정 시점에서의 포즈를 대표하는 하나의 프래그먼트(fragment)에 대응한다.
그리고,
Figure 112010045526186-pat00010
Figure 112010045526186-pat00011
는 각각 바이페드의 루트(root) 위치(position) 및 루트 방향(root orientation)을 대표하고,
Figure 112010045526186-pat00012
는 k 번째 조인트가 그 부모 링크(parent link)에 대해 갖는 상대적 방향(relative orientation)을 대표한다.
따라서, 하나의 참조 포즈 M(t)는 어느 한 순간(for one instance)에서의 바이페드의 포즈에 대응한다.
본 발명의 일실시예에 따르면, 밸런스 유지 모듈(110)은 이러한 참조 포즈 M(t)를 런타임(runtime)에서 계속적으로(continuously) 변조(modulate)한다.
그런데 모션 큐에서 나온(dequeued out of motion queue) M(t)에 대한 단순 추적 제어(tracking control) 만으로는 바이페드 밸런스 유지는 쉽게 실패될 수 있다. 이러한 밸런스 유지의 실패 원인에는 다양한 것들이 있다.
이를 테면, 상기 참조 포즈 M(t)의 집합인 모션 데이터의 획득 환경, 또는 모델링 과정에서의 인자(factor)가 실제 시뮬레이트 되는 바이페드의 그것과 불일치하기 때문이다.
모션 데이터는 모션 캡처에 의해 획득된 것일 수 있는데, 모션 캡처 시의 배우(actor)의 키, 무게, 관절 위치 등이 시뮬레이트 되는 바이페드의 그것과 불일치 하는 경우 등이 이러한 경우에 해당한다. 여기서, 이러한 불일치는 계산 상의 오류 또는 측정 값의 오차 등 다양한 원인에서 기인한다.
현재 프래임(frame)의 모션 데이터를 M(tc)라 하고, 다음 프래임의 모션 데이터를 참조 포즈 M(tc+1)이라 할 때, 참조 포즈 M(tc+1)을 단순히 추적 제어부(tracking controller)에 제공하여(feed), 추적 제어를 한다면, 바이페드의 동작을 시뮬레이트 함에 있어서 밸런스 유지에 실패하기 쉽다. 여기서 밸런스 유지의 실패는, 이를테면, 바이페드가 넘어지거나 정확한 동작을 하지 않는 등의 다양한 경우를 포함한다.
또한, 시뮬레이트 환경 내에서 바이페드가 걸어가는 그라운드 위에 장애물(obstacle)이 있거나, 그라운드 경사가 변하거나, 물체가 날아와서 바이페드에 부딪히거나, 또는 그라운드의 흔들림과 같은 예상치 못한 물리적 외력(disturbance)이 시뮬레이트에 영향을 주는 경우에도, 바이페드의 밸런스 유지에 실패하기 쉽다.
그러므로, 본 발명의 실시예에 따르면, 밸런스 유지 모듈(110)은, 시뮬레이트 되는 바이페드의 현재 포즈 정보(current pose information) P를 시뮬레이터로부터 피드백 받아서, 다음 참조 정보 M(tc+1)를 변조하여, 타켓 포즈
Figure 112010045526186-pat00013
를 생성하여 추적 제어부에 제공한다(feed to tracking controller).
그러면, 추적 제어부는 이 타켓 포즈
Figure 112010045526186-pat00014
를 추적 제어하고, 시뮬레이터는 바이페드의 시뮬레이션을 수행한다.
본 발명의 일실시예에 따른 밸런스 유지 모듈(110)은, 이러한 방식으로 매 순간(for every instance)의 참조 포즈 정보 M(t)를 모듈레이트 하여, 타켓 포즈
Figure 112010045526186-pat00015
의 스트림을 런타임에서 실시간으로 생성한다. 따라서, 상기한 바와 같이, 런타임 이전에는 별도의 pre-computation이 요구되지 않는다.
도 5는 본 발명의 일실시예에 따라 밸런스 유지 모듈(110)이 현재 포즈 정보 피드백을 통해 타켓 포즈
Figure 112010045526186-pat00016
의 스탠스 힙의 각도를 계산하는 과정을 도시한다.
[수학식3]
Figure 112010045526186-pat00017
밸런스 유지 모듈(110)은 현재 포즈 정보에서의 스탠스 힙 각도와 다음 추적될 예정이었던 참조 포즈 정보 M(tc+1)에서의 힙 각도의 차이인 (θd - θsth)에 의해 원래 추적될 예정이던 θsth을 변조하여, 타켓 포즈
Figure 112010045526186-pat00018
의 스탠스 힙의 각도 θstance_hip을 계산한다.
상기 수학식 3에서, C0는 조정(calibration)을 위한 상수이고, s(t)는 갑작스러운(abrupt) 자세 변동이 없도록 부드러운 트랜지션(smooth transition)을 가능하게 하는 함수이다.
상기 수학식 3은, 부모 링크에 대한 상대적 방향(orientation)으로 다시 작성하여, 하기 수학식 4와 같이 쓰일 수도 있으며, 그 의미는 동일하다.
[수학식4]
Figure 112010045526186-pat00019
도 6은 본 발명의 일실시예에 따라 밸런스 유지 모듈(110)이 현재 포즈 정보 피드백을 통해 타켓 포즈
Figure 112010045526186-pat00020
의 스윙 힙의 각도를 계산하는 과정을 도시한다.
[수학식5]
Figure 112010045526186-pat00021
여기서, 밸런스 유지 모듈(110)은 현재 포즈 정보에서의 바이페드 중심 속도와 참조 포즈 정보 M(tc)에서의 중심 속도의 차이인 (Vd - V), 현재 포즈 정보와 참조 포즈 정보 간에 스탠스 앵클-바이페드 중심 거리의 차이인 (dd-d)에 의해 원래 추적될 예정이던 θswh를 변조하여, 타켓 포즈
Figure 112010045526186-pat00022
의 스윙 힙 각도 θswing_hip을 계산한다.
현재 스피드인가 참조 스피드보다 크다는 것(Vd < V)은, 바이페드가 앞으로 기울어져서 밸런스를 잃기 쉬운 상태(dd < d)이라는 점을 피드백 과정에 활용하였다.
도 6은 본 발명의 일실시예에 따라 밸런스 유지 모듈(110)이 현재 포즈 정보 피드백을 통해 타켓 포즈
Figure 112010045526186-pat00023
의 스탠스 앵클의 각도를 계산하는 과정을 도시한다.
[수학식6]
Figure 112010045526186-pat00024
수학식 6의 경우, 피드백에 의한 변조 대상이 원래 추적될 예정이던 참조 포즈의 스탠스 앵클 θsta이라는 점 외에는, 수학식 5와 동일하다.
한편, 바이페드가 방향을 변경하거나(turning) 또는 회전하는(spinning) 경우에는, 벡터 V와 벡터 d를 포함하는 Sagittal 평면(sagittal plane)과 Coronal 평면(coronal plane)이 빠르게 변하기 때문에, 밸런스 유지 제어에 어려움이 되기도 한다.
따라서 본발명의 일실시예에 따르면, 이러한 Sagittal 평면과 Coronal 평면 대신 벡터 V를 포함하는 수직 평면(vertical plane)과 그에 직교하는 또 다른 수직 평면(perpendicular vertical plane)을 이용하여 밸런스 유지 제어를 수행한다.
도 7은 본 발명의 일실시예에 따라 밸런스 유지 모듈(110)이 현재 포즈 정보 피드백을 통해 타켓 포즈
Figure 112010045526186-pat00025
의 스윙 풋 하이트(swing foot height)를 계산하는 과정을 도시한다.
[수학식7]
Figure 112010045526186-pat00026
수학식 7에서는, 스윙 풋의 그라운드에 대한 상대적 높이를 피드백 한다는 점에서 상기 수학식들과 차이가 있고, 또한 상대적 높이 hd, h 뿐만 아니라 그 미분 값인 스윙 풋의 수직방향 속도가 함께 피드백된다는 점에서 차이가 있다.
이상에서는 밸런스 유지 모듈(110)의 동작의 구체적 실시예를 설명하였고, 이하에서는 동기화부(120)의 동작을 설명한다.
동기화에서 고려되는 것은, 시뮬레이트 되고 있는 바이페드의 현재 포즈에서 스윙 풋이 참조 포즈로부터 예상되는 것 보다 먼저 땅에 착지하거나, 늦게 착지하는 문제이다.
동기화부(120)는 이러한 빠른 착지(early landing of swing foot) 또는 늦은 착지(late landing of swing foot)을 보정하여, 참조 포즈의 스트림 일부를 편집함으로써 현재 포즈와 동기화를 맞춘다.
여기서 상기 편집이라 함은, 도 4 등을 참조하여 상술한 바와 같이, 일부 참조 포즈 스트림의 제거(모션 큐에서 일괄적으로 디큐) 또는 삽입(모션 큐로의 인큐)일 수 있다.
동기화부(120)의 동작은 아래 수학식 8에 의해 이해될 수 있다.
[수학식 8]
Figure 112010045526186-pat00027
여기서,
Figure 112010045526186-pat00028
는 두 포즈
Figure 112010045526186-pat00029
Figure 112010045526186-pat00030
사이의 변위(displacement between the two poses)를 나타내며, r(t)는 부드러운 전환(smooth transition)을 위한 감쇄 함수이다.
r(t) 함수는 두 포즈 사이를 매끄럽게(seamlessly) 연결해 줄 수 있는 것이면 다양한 응용이 가능하다. 이를테면, r(t) 함수는 M'(t)의 시작에서 1이고, M'(t)의 끝에서는 0이며, 시작 부분과 끝 부분 각각에서 도함수(derivatives)는 0인 함수일 수 있다.
다만, 트랜지션을 위한 r(t) 함수와 트랜지션 대상의 각도를 적용하는 방법은, 구체적인 피드백 대상에 따라 다르게 설정될 수 있다.
이를테면, 바이페드 전체의 무게를 지탱하는(support) 스탠스 풋의 경우에는 부드러운 트랜지션을 위한 r(t) 때문에 전체 바이페드의 밸런스 제어가 어려워지는 경우도 있으므로, 이러한 경우에는 의도적으로 다른 피드백 대상보다 트랜지션을 작게하여 빠른 동작 변경이 수행되도록 할 수 있다.
그리고 스탠스 풋은 부모 링크(parent link)에 대해 갖는 상대적 방향(relative orientation)보다 지면에 대한 각도가 더욱 중요하기 때문에, 트랜지션을 마친 후의 스탠스 풋의 지면에 대한 각도를 트랜지션 하기 전의 참조 모션의 스탠스 풋의 지면에 대한 각도와 같게 함으로써 보다 안정적으로 바이페드를 제어할 수 있다.
한편, 상기 스탠스 앵클에 대한 제어의 경우에도 r(t)가 스윙 힙 등 다른 피드백 대상과는 달리 설정될 수 있다. 이하에서는 별다른 언급이 없더라도, 제어 성능 향상을 위해 트랜지션 함수인 r(t)가 각 피드백 대상에 따라 다르게 설정될 수 있다는 점이 이해될 수 있다.
현재 포즈에서 빠른 착지 문제가 있는 경우 동기화부(120)의 동작은 도 8 내지 도 9를 참조하여 보다 상세히 후술하고, 늦은 착지의 문제가 있는 경우 동기화부의 동작은 도 10 내지 도 11을 참조하여 보다 상세히 후술한다.
도 8 및 도 9는 스윙 풋의 빠른 착지(earlier landing of swing foot)에 대응하여 동기화부(120)가 동기화를 위해 참조 포즈 정보를 편집하는 과정을 도시한다.
시뮬레이션 과정에서 실제 시뮬레이트 되는 바이페드의 스윙 풋이 참조 포즈 M(t)의 프레임 포스처(posture)들이 모두 디큐(dequeue)되기 전의 M(tc) 포스처에서 그라운드에 접할(contact) 수 있다.
즉, 참조 포즈 M(t)와 스윙 풋이 서로 다른 M'(t)의 프레임이 시작되기 전에 참조 포즈 M(t)의 스윙 풋이 먼저 착지를 하므로, 이 경우를 스윙 풋의 빠른 착지(earlier landing of swing foot)이라고 한다.
이러한 빠른 착지의 경우에는, 바이페드가 밸런스를 잃지 않고 동작이 자연스럽게 연결되게 하기 위해서, 참조 모션 데이터의 일부 포즈 스트림을 삭제한다.
이러한 일부 포즈 스트림의 삭제는 모션 큐에서 M(t)의 끝의 몇 개의 포스처 디큐를 의미한다.
도 8을 참조하면, 스윙 힙 각도 등의 어느 각도가 시간 흐름에 따라 궤적(trajectory)(810)과 같이 표현된다.
이러한 궤적(810)은 일정한 주기를 갖고, 이러한 주기는 원래 스윙 풋 체인지(swing foot change)가 발생하는 시간 라인 800, 802, 및 804에 의해 구분될 수 있다.
그런데, 계속적인 피드백에 의해 계산되어서 추적되고 있는 타켓 포스처의 궤적(820)에서, 원래 스윙 풋 체인지 시점(802) 보다 빠른 시점(801)에서 스윙 풋의 착지가 발생된 것(821)이 확인된다.
이 경우, 동기화부(120)은, 포인트(811)와 포인트(812) 사이의 궤적을 잘라내고, 스윙 풋 체인지 이후의 참조 포즈를 앞당겨서 갖다 붙인다. 이는 궤적의 측면에서는 궤적의 일부 삭제와 이동으로 이해될 수 있지만, 실제로는 도 4의 모션 큐에서 M'의 시작 전의 M에 속하는 마지막 몇 개의 포스처를 일괄적으로 디큐하는 것에 의해 구현된다.
이 경우, 갑작스러운(abrupt) 동작의 변화가 있지 않고, 부드럽게 전환되게 하기 위해 또 다른 트랜지션 함수가 궤적에 적용되어 매끄럽게(seamlessly) 이어지도록 할 수 있다. 도 9의 영역(910)은 이러한 결과를 도시한다.
이상에서는 한 번의 스윙 풋 체인지 과정에서의 빠른 착지 문제에 따른 동기화 과정을 설명하였으며, 이후에 반복되는 스윙 풋 체인지 과정에서의 문제 해결 또한 상기한 내용의 반복이다.
도 10 및 도 11은 스윙 풋의 스윙 풋의 늦은 착지(late landing of swing foot)에 대응하여 동기화부(120)가 동기화를 위해 참조 포즈 정보를 편집하는 과정을 도시한다.
참조 포즈의 각도 궤적(1010)에서는 원래 시점들(1000, 1002, 1004)에서 스윙 풋 체인지가 이루어져야 하나, 실제 타켓 포즈의 각도 궤적(1020)에서는 포인트(1021)에 이르러서도 스윙 풋의 착지가 이루어지지 않은 경우이다.
이 경우에는 동기화부(120)가 궤적(1010)에서 스윙 풋 체인지가 발생하는 포인트(1011)를 잘라서 뒤로 밀고, 그 사이에 적절한 궤적 정보를 삽입하여 바이페드의 밸런스 유지를 돕는다.
도 11을 참조하면, 포인트(1011) 뒤에 일정 영역(1100)에 잉여 궤적이 삽입된 것을 볼 수 있다. 이러한 과정은 앞선 궤적 정보(또는 포즈의 각도 정보들)를 인테그래이션(integration)하는 등의 적절한 방법으로 수행될 수 있다.
구체적으로는, 각 조인트 각도의 인테그래이션에 의해 실제로는 없는 포즈 정보들을 만드는데, 상기 도 10 및 도 11에서는 궤적에 대해 설명하였지만, 실제로는 도 4를 참조하여 상술한 모션 큐에 잉여 포스처를 인큐(enqueue)함으로써 상기 궤적 편집이 수행될 수 있다.
도 12는 본 발명의 일실시예에 따른 데이터 기반 제어 장치(100)가 동작하는 전체 플로우를 도시하기 위한 시스템 개념도(system overview)이다.
본 발명의 일실시예에 따르면, 사용자 인터액션(1201)이 수신되면, 애니매이션 엔진(1210)이 모션 데이터의 정보를 상기 데이터 기반 제어 장치(100)에 전달한다.
이 경우 전달되는 모션 데이터는 복수 개의 프래임에 대응하는 참조 포즈 스트림일 수도 있으며, 그렇지 않은 경우에는 데이터 기반 제어 장치(100)가 모션 데이터의 샘플링을 통해 참조 포즈 스트림을 생성할 수 있다.
한편, 데이터 기반 제어 장치(100)는 액츄애이터(actuator)(1230)로부터 현재 제어 되고 있는 바이페드의 현재 포즈 정보를 피드백 받아서, 이러한 참조 포즈 스트림을 런타임에서 실시간으로 변조한다.
여기서, 상기 액츄애이터(1230)는 물리적인 바이페드 로봇 제어의 경우 바이페드 조인트 액츄애이터에 대응하며, 바이페드 캐릭터의 컴퓨팅 시뮬레이트 실시예에서는 시뮬레이팅 제어부에 대응한다. 본 명세서에서는 별다른 언급이 없더라도, 바이페드 동작 제어나 시뮬레이트가 컴퓨팅 환경에서 바이페드 캐릭터의 시뮬레이트뿐만 아니라, 실제 바이페드 로봇의 동작 제어의 실시예를 포함하는 것으로 해석되어야 한다.
이러한 실시간 변조가 이상에서 설명한 밸런스 유지 모듈(110)의 동작 및 동기화 모듈(120)의 동작이다.
이러한 실시간 변조에 의해, 타켓 포즈 정보
Figure 112010045526186-pat00031
가 추적 제어부(1220)에 제공(feed)되고, 추적 제어부는 바이페드의 각 조인트의 토크
Figure 112010045526186-pat00032
를 시뮬레이터 제어부(1230)에 제공(feed)한다.
또한, 이 경우에 추적 제어부(1220)에도 시뮬레이터 제어부(1230)로부터 피드백이 이루어질 수 있다.
본 발명의 일 실시예에 따르면, 현재 포즈가 데이터 기반 제어 장치(100)에 피드백되는 것보다 추적 제어부(1220)에 피드백 되는 횟수가 월등히 많을 수 있다. 이를테면, 전자가 30Hz로 피드백 되면, 후자는 900Hz로 피드백 되는 수준일 수 있다.
도 13은 본 발명의 일실시예에 따라, 데이터 기반 제어 장치(100)에 결합될 수 있는 도 12의 애니매이션 엔진(1210)의 상세한 동작을 도시하는 개념도이다.
애니매이션 엔진(1210)은 패턴 생성부(1310)을 포함하며, 사용자 인터액션(1301), 이를테면 특정 방향으로 바이페드 캐릭터를 조작하는 조작 명령 등이 수신되면, 패턴 생성부(1310)은 모션 데이터베이스(1320)에 쿼리를 주어, 모션 프래그먼트들(fragments)을 되돌려 받고, 이를 상기 데이터 기반 제어 장치(100)가 참조 포즈 정보로 사용하도록 이동 패턴 스트림(1302)으로서 제공한다.
도 14는 본 발명의 일실시예에 따른 바이페드 제어 및 시뮬레이트 과정을 도시하는 흐름도이다.
단계(S1410)에서 유저 인터액션 처리에 의해 바이페드에 대한 시뮬레이팅 요구가 수신되면, 단계(S1420)에서 움직임 패턴 스트림이 생성된다. 이 경우에는 모션 캡처 데이터로부터 필요한 스트림을 획득할 수도 있고, 플러그인 되는 애니매이션 엔진으로부터 스트림을 얻을 수도 있다.
그러면, 단계(S1430)에서 본 발명의 일실시예에 따른 데이터 기반 제어 장치(100)가 참조 포즈 스트림을 런타임에서 실시간 변조함으로써 타켓 포즈 스트림을 생성한다.
이러한 단계(S1430)의 과정은 도 4 내지 도 11을 참조하여 상술한 밸런스 유지 모듈(110)과 동기화 모듈(120)의 구체적 동작과 같다.
그러면, 추적 제어부가 단계(S1440)에서 타켓 포즈 스트림을 추적 제어 하며, 시뮬레이터는 단계(S1450)에서 이를 시뮬레이트 하여 디스플레이 하며, 시뮬레이트된 바이페드의 현재 포즈 정보는 다시 피드백 된다. 이상의 피드백 내용 등은 도 12 내지 도 13을 참조하여 상술한 바와 같다.
본 발명의 일실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 데이터 기반의 바이페드 제어 장치
110: 밸런스 유지 모듈
120: 동기화 모듈

Claims (18)

  1. 피드백되는 바이페드의 제1 시점에 대응하는 현재 포즈 정보를 이용하여, 상기 제1 시점의 다음 시점인 제2 시점에 대응하는 참조 포즈 정보를 변조함으로써 상기 바이페드가 상기 제2 시점에 추적할 포즈 정보인 타켓 포즈 정보를 생성하는 밸런스 유지 모듈; 및
    상기 현재 포즈 정보를 이용하여, 상기 참조 포즈 정보에 포함되는 복수 개의 시점 각각에 대응하는 복수 개의 참조 포즈 스트림의 적어도 일부를 편집함으로써 상기 참조 포즈 정보를 상기 현재 포즈 정보에 동기화하는 동기화 모듈
    을 포함하는, 데이터 기반의 바이페드 제어 장치.
  2. 제1항에 있어서,
    상기 타켓 포즈 정보는, 상기 제2 시점에 대응하는 상기 바이페드의 스탠스 힙(stance hip), 스윙 힙(swing hip), 스탠스 앵클(stance ankle), 스윙 풋 하이트(swing foot height) 중 적어도 하나를 포함하는, 데이터 기반의 바이페드 제어 장치.
  3. 제1항에 있어서,
    상기 밸런스 유지 모듈은, 상기 제1 시점에 대응하는 현재 포즈 정보에서의 스탠스 힙 각도를 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스탠스 힙 각도와 비교한 차이를 이용하여, 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스탠스 힙 각도를 변조하여, 상기 바이페드가 상기 제2 시점에 추적할 타켓 포즈 정보의 스탠스 힙 각도를 계산하는, 데이터 기반의 바이페드 제어 장치.
  4. 제1항에 있어서,
    상기 밸런스 유지 모듈은, 상기 제1 시점에 대응하는 현재 포즈 정보에서의 바이페드 중심의 속도를 상기 제2 시점에 대응하는 참조 포즈 정보에서의 바이페드 중심의 속도와 비교한 차이를 이용하여, 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 변조하여, 상기 바이페드가 상기 제2 시점에 추적할 타켓 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 계산하는, 데이터 기반의 바이페드 제어 장치.
  5. 제1항에 있어서,
    상기 밸런스 유지 모듈은, 상기 제1 시점에 대응하는 현재 포즈 정보에서의 바이페드 중심과 스탠스 앵클 사이의 거리를 상기 제2 시점에 대응하는 참조 포즈 정보에서의 바이페드 중심과 스탠스 앵클 사이의 거리와 비교한 차이를 이용하여, 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 변조하여, 상기 바이페드가 상기 제2 시점에 추적할 타켓 포즈 정보에서의 스윙 힙 각도 및 스탠스 앵클의 각도 중 적어도 하나를 계산하는, 데이터 기반의 바이페드 제어 장치.
  6. 제1항에 있어서,
    상기 밸런스 유지 모듈은, 상기 제1 시점에 대응하는 현재 포즈 정보에서의 스윙 풋 하이트를 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스윙 풋 하이트와 비교한 차이를 이용하여, 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스윙 풋 하이트를 변조하여, 상기 바이페드가 상기 제2 시점에 추적할 타켓 포즈 정보의 스윙 풋 하이트를 계산하는, 데이터 기반의 바이페드 제어 장치.
  7. 제1항에 있어서,
    상기 밸런스 유지 모듈은, 상기 제1 시점에 대응하는 현재 포즈 정보에서의 스윙 풋 하이트의 변화 속도를 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스윙 풋 하이트의 변화 속도와 비교한 차이를 이용하여, 상기 제2 시점에 대응하는 참조 포즈 정보에서의 스윙 풋 하이트를 변조하여, 상기 바이페드가 상기 제2 시점에 추적할 타켓 포즈 정보의 스윙 풋 하이트를 계산하는, 데이터 기반의 바이페드 제어 장치.
  8. 제1항에 있어서,
    상기 동기화 모듈은, 상기 바이페드의 제1 시점에 대응하는 현재 포즈 정보로부터 추측되는 스윙 풋 착지가 상기 제2 시점에 대응하는 참조 포즈 정보로부터 추측되는 스윙 풋 착지보다 빠르게 이루어지는 경우, 상기 복수 개의 참조 포즈 스트림의 적어도 일부를 잘라내는, 데이터 기반의 바이페드 제어 장치.
  9. 삭제
  10. 제1항에 있어서,
    상기 동기화 모듈은, 상기 바이페드의 제1 시점에 대응하는 현재 포즈 정보로부터 추측되는 스윙 풋 착지가 상기 제2 시점에 대응하는 참조 포즈 정보로부터 추측되는 스윙 풋 착지보다 늦게 이루어지는 경우, 상기 복수 개의 참조 포즈 스트림에 적어도 하나의 잉여 궤적 스트림을 삽입하는, 데이터 기반의 바이페드 제어 장치.
  11. 삭제
  12. 피드백되는 바이페드의 제1 시점에 대응하는 현재 포즈 정보를 이용하여, 상기 제1 시점의 다음 시점인 제2 시점에 대응하는 참조 포즈 정보를 변조함으로써 상기 바이페드가 상기 제2 시점에 추적할 포즈 정보인 타켓 포즈 정보를 생성하는 밸런스 유지 모듈을 포함하고,
    상기 밸런스 유지 모듈은, 상기 바이페드의 상기 제1 시점에 대응하는 현재 포즈 정보를 이용하여, 상기 바이페드의 스탠스 힙(stance hip), 스윙 힙(swing hip), 스탠스 앵클(stance ankle), 스윙 풋 하이트(swing foot height) 중 적어도 하나를 포함하는 상기 제2 시점에 대응하는 참조 포즈 정보를 변조함으로써 상기 바이페드가 상기 제2 시점에 추적할 포즈 정보인 상기 타켓 포즈 정보를 생성하는, 데이터 기반의 바이페드 제어 장치.
  13. 피드백되는 바이페드의 실제 포즈 스트림에 대응하는 현재 포즈 정보를 이용하여, 상기 바이페드가 추적할 복수 개의 참조 포즈 스트림에 대응하는 참조 포즈 정보에 포함되는 적어도 일부의 포즈 스트림을 편집함으로써 상기 참조 포즈 정보를 상기 현재 포즈 정보에 동기화하는 동기화 모듈을 포함하고,
    상기 동기화 모듈은, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 빠르게 이루어지는 경우, 상기 복수 개의 참조 포즈 스트림의 적어도 일부를 잘라내고, 상기 바이페드의 현재 포즈 정보에서의 스윙 풋 착지가 상기 참조 포즈 정보에서의 스윙 풋 착지보다 늦게 이루어지는 경우, 상기 참조 포즈 스트림에 적어도 하나의 잉여 궤적 스트림을 삽입하는, 데이터 기반의 바이페드 제어 장치.
  14. 바이페드 제어 장치의 밸런스 유지 모듈이, 피드백 입력 받은 바이페드의 제1 시점에 대응하는 현재 포즈 정보를 이용하여, 상기 제1 시점의 다음 시점인 제2 시점에 대응하는 참조 포즈 정보를 변조함으로써 상기 바이페드가 상기 제2 시점에 추적할 포즈 정보인 타켓 포즈 정보를 생성하는 밸런스 유지 단계; 및
    상기 바이페드 제어 장치의 동기화 모듈이, 상기 현재 포즈 정보를 이용하여, 상기 참조 포즈 정보에 포함되는 복수 개의 시점 각각에 대응하는 복수 개의 참조 포즈 스트림의 적어도 일부를 편집함으로써 상기 참조 포즈 정보를 상기 현재 포즈 정보에 동기화하는 동기화 단계
    를 포함하는, 데이터 기반의 바이페드 제어 방법.
  15. 제14항에 있어서,
    상기 타켓 포즈 정보는, 상기 제2 시점에 대응하는 상기 바이페드의 스탠스 힙(stance hip), 스윙 힙(swing hip), 스탠스 앵클(stance ankle), 스윙 풋 하이트(swing foot height) 중 적어도 하나를 포함하는, 데이터 기반의 바이페드 제어 방법.
  16. 제14항 내지 제15항 중 어느 한 항의 바이페드 제어 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
  17. 삭제
  18. 삭제
KR1020100068103A 2010-07-14 2010-07-14 데이터 기반 바이페드 제어 장치 및 방법 KR101200191B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100068103A KR101200191B1 (ko) 2010-07-14 2010-07-14 데이터 기반 바이페드 제어 장치 및 방법
US13/808,784 US9336182B2 (en) 2010-07-14 2010-07-27 Apparatus and method for controlling a data-based biped
EP10854762.1A EP2594374A1 (en) 2010-07-14 2010-07-27 Apparatus and method for controlling a data-based biped
PCT/KR2010/004943 WO2012008640A1 (ko) 2010-07-14 2010-07-27 데이터 기반 바이페드 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100068103A KR101200191B1 (ko) 2010-07-14 2010-07-14 데이터 기반 바이페드 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120007372A KR20120007372A (ko) 2012-01-20
KR101200191B1 true KR101200191B1 (ko) 2012-11-13

Family

ID=45469618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100068103A KR101200191B1 (ko) 2010-07-14 2010-07-14 데이터 기반 바이페드 제어 장치 및 방법

Country Status (4)

Country Link
US (1) US9336182B2 (ko)
EP (1) EP2594374A1 (ko)
KR (1) KR101200191B1 (ko)
WO (1) WO2012008640A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9956687B2 (en) * 2013-03-04 2018-05-01 Microsoft Technology Licensing, Llc Adapting robot behavior based upon human-robot interaction
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
US10169903B2 (en) * 2016-06-12 2019-01-01 Apple Inc. Animation techniques for mobile devices
KR101895331B1 (ko) 2017-03-17 2018-09-05 광운대학교 산학협력단 바이페드 제어 장치 및 방법
KR101898512B1 (ko) * 2017-06-23 2018-09-14 한국과학기술원 생체역학적 관찰 기반의 연령별 보행 모션 변환 제공 방법 및 그 장치
CN109951654B (zh) * 2019-03-06 2022-02-15 腾讯科技(深圳)有限公司 一种视频合成的方法、模型训练的方法以及相关装置
US11104001B2 (en) * 2019-03-13 2021-08-31 Sony Interactive Entertainment Inc. Motion transfer of highly dimensional movements to lower dimensional robot movements
US11087514B2 (en) * 2019-06-11 2021-08-10 Adobe Inc. Image object pose synchronization
CN111419236B (zh) * 2020-03-30 2023-05-05 哈尔滨工业大学 基于惯性传感器的运动模式无关下肢动力学实时解算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100551757B1 (ko) * 2001-04-27 2006-02-13 혼다 기켄 고교 가부시키가이샤 레그식 이동 로봇의 동작 생성 장치
JP2006142465A (ja) 2004-11-25 2006-06-08 Institute Of Physical & Chemical Research 二足歩行ロボットとその歩行制御方法
JP2008200813A (ja) 2007-02-21 2008-09-04 Kyoto Univ 二足歩行ロボット

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337235A (en) * 1992-03-12 1994-08-09 Honda Giken Kogyo Kabushiki Kaisha Locomotion control system for legged mobiled robot
US5808433A (en) * 1995-09-29 1998-09-15 Honda Giken Kogyo Kabushiki Kaisha Method of generating gait of legged walking robot and system for controlling its locomotion
DE69725764T2 (de) * 1996-07-25 2004-08-05 Honda Giken Kogyo K.K. Vorrichtung zur nachbildung des ganges für einen zweibeinigen robotor
US6505096B2 (en) * 1996-12-19 2003-01-07 Honda Giken Kogyo Kabushiki Kaisha Posture control system of legged mobile robot
JP3672406B2 (ja) * 1997-01-31 2005-07-20 本田技研工業株式会社 脚式移動ロボットの歩容生成装置
JP4188607B2 (ja) * 2001-06-27 2008-11-26 本田技研工業株式会社 二足歩行移動体の床反力推定方法及び二足歩行移動体の関節モーメント推定方法
EP1466705B1 (en) * 2001-12-28 2010-05-19 Honda Giken Kogyo Kabushiki Kaisha Gait producing device for leg type movable robot, and control device
EP1475198B1 (en) * 2002-01-18 2007-05-23 Honda Giken Kogyo Kabushiki Kaisha Controller of legged mobile robot
CN1649698A (zh) * 2002-03-18 2005-08-03 索尼株式会社 机器人设备、腿式移动机器人的运动控制设备和方法、腿式移动机器人的传感器***和移动单元
EP1502711B1 (en) * 2002-04-26 2011-02-23 Honda Giken Kogyo Kabushiki Kaisha Control device of legged mobile robot
JP3833567B2 (ja) * 2002-05-01 2006-10-11 本田技研工業株式会社 移動ロボットの姿勢制御装置
EP1547732A4 (en) * 2002-10-01 2012-01-04 Sony Corp ROBOT DEVICE AND CONTROL PROCEDURE THEREFOR
JP3599244B2 (ja) * 2002-11-06 2004-12-08 ソニー株式会社 ロボット装置、ロボット装置の運動制御装置並びに運動制御方法
JP4127043B2 (ja) * 2002-12-11 2008-07-30 ソニー株式会社 脚式移動ロボット並びに脚式移動ロボットの関節軸として適用されるアクチュエータ装置
WO2005000534A1 (ja) * 2003-06-27 2005-01-06 Honda Motor Co., Ltd. 脚式移動ロボットの制御装置
DE602004029256D1 (de) * 2003-06-27 2010-11-04 Honda Motor Co Ltd Gangerzeugungsvorrichtung für beweglichen roboter mit beinen
JP4587738B2 (ja) 2003-08-25 2010-11-24 ソニー株式会社 ロボット装置及びロボットの姿勢制御方法
JP4513320B2 (ja) * 2003-12-17 2010-07-28 ソニー株式会社 ロボット装置、並びにロボット装置の運動制御方法
US7765030B2 (en) * 2004-02-16 2010-07-27 Honda Motor Co., Ltd. Gait generator for mobile robot
JP4912891B2 (ja) * 2004-12-14 2012-04-11 本田技研工業株式会社 脚式移動ロボットおよびその制御プログラム
EP1844907B1 (en) * 2004-12-14 2010-07-14 HONDA MOTOR CO., Ltd. Legged mobile robot and control program for the robot
JP4548135B2 (ja) * 2005-02-03 2010-09-22 トヨタ自動車株式会社 脚式ロボットとその制御方法
JP5034235B2 (ja) * 2006-01-16 2012-09-26 ソニー株式会社 制御システム及び制御方法、並びにコンピュータ・プログラム
JP4836592B2 (ja) * 2006-02-09 2011-12-14 ソニー株式会社 ロボット装置及びその制御方法
JP4692443B2 (ja) * 2006-09-06 2011-06-01 トヨタ自動車株式会社 脚式ロボット
JP4392037B2 (ja) * 2007-09-12 2009-12-24 トヨタ自動車株式会社 脚式ロボット、及びその制御方法
WO2009067458A1 (en) * 2007-11-21 2009-05-28 Honda Motor Co., Ltd. Learning capture points for humanoid push recovery
EP3219295B1 (en) * 2008-09-04 2023-11-15 Otto Bock HealthCare LP Hybrid terrain-adaptive lower-extremity systems
US8332068B2 (en) * 2008-12-19 2012-12-11 Honda Motor Co., Ltd. Intelligent stepping for humanoid fall direction change
KR20100073438A (ko) * 2008-12-23 2010-07-01 삼성전자주식회사 로봇 및 그 제어방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100551757B1 (ko) * 2001-04-27 2006-02-13 혼다 기켄 고교 가부시키가이샤 레그식 이동 로봇의 동작 생성 장치
JP2006142465A (ja) 2004-11-25 2006-06-08 Institute Of Physical & Chemical Research 二足歩行ロボットとその歩行制御方法
JP2008200813A (ja) 2007-02-21 2008-09-04 Kyoto Univ 二足歩行ロボット

Also Published As

Publication number Publication date
KR20120007372A (ko) 2012-01-20
WO2012008640A1 (ko) 2012-01-19
EP2594374A1 (en) 2013-05-22
US20130211586A1 (en) 2013-08-15
US9336182B2 (en) 2016-05-10

Similar Documents

Publication Publication Date Title
KR101200191B1 (ko) 데이터 기반 바이페드 제어 장치 및 방법
Kwon et al. Control Systems for Human Running using an Inverted Pendulum Model and a Reference Motion Capture Sequence.
Yamane et al. Simultaneous tracking and balancing of humanoid robots for imitating human motion capture data
US8781624B2 (en) Systems and methods for tracking and balancing robots for imitating motion capture data
Da Silva et al. Simulation of human motion data using short‐horizon model‐predictive control
Kuffner Jr Goal-directed navigation for animated characters using real-time path planning and control
US8860732B2 (en) System and method for robust physically-plausible character animation
Yamane et al. Control-aware mapping of human motion data with stepping for humanoid robots
Kenwright Responsive biped character stepping: When push comes to shove
Kenwright Real-Time Reactive Biped Characters: Staying Upright and Balanced
Ramos et al. Dynamic motion capture and edition using a stack of tasks
Zordan et al. Control of rotational dynamics for ground and aerial behavior
Feng Online Hierarchical Optimization for Humanoid Control.
Di Fava et al. Multi-contact motion retargeting from human to humanoid robot
Oliva et al. Towards dynamic visual servoing for interaction control and moving targets
Hwang et al. Editing and Synthesizing Two‐Character Motions using a Coupled Inverted Pendulum Model
Sentis et al. Motion planning of extreme locomotion maneuvers using multi-contact dynamics and numerical integration
KR102317949B1 (ko) 객체의 모션을 생성하는 방법 및 장치
García et al. Time-varying model predictive control for highly dynamic motions of quadrupedal robots
Meriçli et al. Improving biped walk stability using real-time corrective human feedback
Abdolmaleki et al. Omnidirectional walking with a compliant inverted pendulum model
Raibert et al. Animation of legged maneuvers: jumps, somersaults, and gait transitions
Yi et al. Active stabilization of a humanoid robot for real-time imitation of a human operator
Seekircher et al. Motion capture and contemporary optimization algorithms for robust and stable motions on simulated biped robots
KR102093476B1 (ko) 자동 타임 워핑에 기반한 온라인 궤적 최적화 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151028

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171023

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 7