KR20240008401A - 발자국 접촉 검출 - Google Patents

발자국 접촉 검출 Download PDF

Info

Publication number
KR20240008401A
KR20240008401A KR1020247000137A KR20247000137A KR20240008401A KR 20240008401 A KR20240008401 A KR 20240008401A KR 1020247000137 A KR1020247000137 A KR 1020247000137A KR 20247000137 A KR20247000137 A KR 20247000137A KR 20240008401 A KR20240008401 A KR 20240008401A
Authority
KR
South Korea
Prior art keywords
robot
swing leg
leg
impact
swing
Prior art date
Application number
KR1020247000137A
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 보스턴 다이나믹스, 인크.
Publication of KR20240008401A publication Critical patent/KR20240008401A/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • 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
    • 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
    • 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/024Vehicles 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 specially adapted for moving on inclined or vertical surfaces
    • 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/028Vehicles 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 having wheels and mechanical legs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40541Identification of contact formation, state from several force measurements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40599Force, torque sensor integrated in joint

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Human Computer Interaction (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)

Abstract

발자국 접촉 검출 방법(300)은 로봇(100)의 스윙 다리(120SW)에 대한 관절 역학(134JD)을 수신하는 단계를 포함하며, 스윙 다리는 로봇의 보행의 유각기를 수행한다. 상기 방법은 또한 로봇의 포즈의 추정치를 규정하는 오도메트리(192)를 수신하는 단계, 및 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트(202)에 대응하는지 여부를 결정하는 단계를 포함한다. 예상치 못한 토크가 임팩트에 대응하는 경우, 상기 방법은 임팩트가 오도메트리 및 관절 역학에 기초하여 지면(12)에 대한 스윙 다리의 착지를 나타내는지 여부를 결정하는 단계를 더 포함한다. 임팩트가 스윙 다리의 착지를 나타내지 않는 경우, 상기 방법은 로봇의 오도메트리 및 스윙 다리의 관절 역학에 기초하여 임팩트의 원인을 분류하는 단계를 포함한다.

Description

발자국 접촉 검출{FOOTSTEP CONTACT DETECTION}
[0001] 본 개시는 발자국 접촉 검출(footstep contact detection)에 관한 것이다.
[0002] 로봇은 일반적으로 작업들의 수행을 위한 프로그래밍된 가변 모션들을 통해 재료, 부품들, 도구들 또는 특수 디바이스들을 이동시키도록 설계된 재프로그램 가능한 다기능 매니퓰레이터(manipulator)로서 정의된다. 로봇들은 물리적으로 고정된 매니퓰레이터들(예를 들어, 산업용 로봇 팔들), 환경 전체에 걸쳐 이동하는 이동 로봇들(예를 들어, 다리들(legs), 휠들(wheels) 또는 트랙션 기반 메커니즘들(traction based mechanisms)을 사용함), 또는 매니퓰레이터와 이동 로봇의 일부 조합일 수 있다. 로봇들은 예를 들어 제조, 수송, 위험한 환경들, 탐사 및 의료를 포함하는 다양한 산업들에서 이용되고 있다. 이와 같이, 다양한 협응식 다리 이동 수단을 필요로 하는 장애물들 또는 피처들(features)을 갖는 환경들을 횡단하는 로봇들의 능력은 그러한 산업들에 추가적인 이점들을 제공한다.
[0003] 본 개시의 일 양태는 발자국 접촉 검출을 위한 방법을 제공한다. 상기 방법은, 로봇의 데이터 처리 하드웨어에서, 로봇의 스윙 다리에 대한 관절 역학을 수신하는 단계를 포함한다. 스윙 다리는 로봇의 보행의 유각기를 수행한다. 상기 방법은 또한, 데이터 처리 하드웨어에서, 세계 기준 프레임에 대한 로봇의 포즈의 추정치를 규정하는 오도메트리를 수신하는 단계를 포함한다. 상기 방법은, 데이터 처리 하드웨어에 의해, 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트에 대응하는지 여부를 결정하는 단계를 더 포함한다. 스윙 다리에 대한 예상치 못한 토크가 임팩트에 대응하는 경우, 상기 방법은, 데이터 처리 하드웨어에 의해, 임팩트가 로봇의 오도메트리 및 스윙 다리의 관절 역학에 기초하여 로봇 주위의 지면에 대한 스윙 다리의 착지를 나타내는지 여부를 결정하는 단계를 포함한다. 임팩트가 스윙 다리의 착지를 나타내지 않는 경우, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 오도메트리 및 스윙 다리의 관절 역학에 기초하여 임팩트의 원인을 분류하는 단계를 포함한다.
[0004] 본 개시의 구현예들은 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 상기 방법은, 데이터 처리 하드웨어에 의해, 임팩트의 분류된 원인에 기초하여 로봇의 스윙 다리에 대한 응답을 생성하는 단계를 포함한다. 임팩트가 스윙 다리의 착지를 나타내는 경우, 상기 방법은, 데이터 처리 하드웨어에 의해, 스윙 다리의 분류를 스탠스 다리로 변경하는 단계를 포함할 수 있다. 상기 방법은 임팩트의 원인이 트립으로 분류되는 경우에 각각의 임팩트에 대한 응답으로서 스윙 다리를 들어올리는 단계를 포함할 수 있다.
[0005] 일부 예들에서, 임팩트의 원인을 분류하는 단계는 로봇의 스윙 다리에 대한 유각기의 완료율이 스윙 다리의 관절 역학에 기초하여 유각기 임계치를 충족한다고 결정하는 단계를 포함하며, 유각기 임계치는 스윙 다리가 유각기의 초기에 있음을 나타낸다. 이러한 예에서, 임팩트의 원인을 분류하는 단계는 또한 스윙 다리에 대한 임팩트의 원인을 리프트오프 스커핑으로 분류하는 단계를 포함한다. 여기서, 스윙 다리는 스윙 다리에 대한 임팩트의 원인을 리프트오프 스커핑으로 분류하는 것에 응답하는 보행의 유각기를 계속 수행한다.
[0006] 일부 구성들에서, 임팩트의 원인을 분류하는 단계는 스윙 다리의 고관절이 스윙 다리의 관절 역학에 기초하여 사전결정된 모션 제한을 초과한다고 결정하는 단계를 포함한다. 여기서, 관절 역학은 지면에 대한 고관절의 외전-내전 성분 및 지면에 대한 고관절의 굴곡-신전 성분을 포함하고, 외전-내전 성분은 굴곡-신전 성분의 함수로서 사전결정된 모션 제한을 포함한다. 이러한 구성에서, 임팩트의 원인을 분류하는 단계는 또한 스윙 다리에 대한 임팩트의 원인을 스윙 다리가 로봇의 본체와 접촉하는 것으로 분류하는 단계를 포함한다. 여기서, 스윙 다리는 스윙 다리에 대한 임팩트의 원인을 스윙 다리가 로봇의 본체와 접촉하는 것으로 분류하는 것에 응답하는 보행의 유각기를 계속 수행한다.
[0007] 일부 구현예들에서, 임팩트의 원인을 분류하는 단계는 반대측 다리에 대한 스윙 다리의 제1 최근접 지점과 스윙 다리에 대한 반대측 다리의 제2 최근접 지점 사이의 벡터 거리가 스윙 다리가 반대측 다리와 교차했음을 나타낸다고 결정하는 단계를 포함한다. 여기서, 임팩트의 원인을 분류하는 단계는 또한, 스윙 다리의 원위 단부가 반대측 다리의 각각의 원위 단부와 교차했다고 결정하는 단계, 스윙 다리의 제1 무릎 관절이 반대측 다리의 제2 무릎 관절과 교차했다고 결정하는 단계, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 스윙 다리가 로봇의 반대측 다리와 교차한 것으로 분류하는 단계, 및 로봇의 반대측 다리와의 교차를 해제하도록 스윙 다리를 이동시키는 단계를 포함한다.
[0008] 일부 예들에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 단계는, 스윙 다리가 로봇의 반대측 다리 근처에 위치결정된다고 결정하는 단계, 각각의 임팩트에 대응하는 토크가 스윙 다리의 고관절의 측방향 성분에서 주로 비롯된 관절 역학으로부터 기인한다고 결정하는 단계, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 교차되지 않은 반대측 다리의 임팩트로 분류하는 단계, 및 스윙 다리를 로봇의 시상면으로부터 멀리 이동시키는 단계를 포함한다.
[0009] 일부 구성들에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 단계는, 스윙 다리의 무릎이 유각기 동안에 후방으로 이동하고 있다고 결정하는 단계, 각각의 임팩트에 대응하는 예상치 못한 토크를 야기하는 관절 역학이 스윙 다리의 무릎 토크 및 스윙 다리의 고관절에 대한 내전-외전 토크 모두보다 큰 스윙 다리의 고관절에 대한 굴곡-신전 토크를 포함한다고 결정하는 단계, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 스윙 다리의 무릎이 로봇의 본체 뒤의 지형과 접촉하는 것으로 분류하는 단계, 및 스윙 다리의 무릎을 로봇의 본체에 대해 전방으로 시프팅시키는 단계를 포함한다.
[0010] 일부 구현예들에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 단계는 스윙 다리의 무릎이 인식된 지면에 인접하여 있다고 결정하는 단계를 포함하며, 무릎은 로봇의 본체에 대해 전방으로 이동하고, 인식된 지면은 로봇에 대한 센서 데이터에 의해 규정된다. 이러한 구현예에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 단계는 또한, 스윙 다리의 무릎이 스윙 다리의 원위 단부보다 인식된 지면에 더 근접하여 있다고 결정하는 단계, 각각의 임팩트에 대응하는 예상치 못한 토크가 스윙 다리의 고관절에서 일어난다고 결정하는 단계, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 스윙 다리의 무릎이 로봇의 본체 아래의 지형과 접촉하는 것으로 분류하는 단계, 및 스윙 다리의 무릎이 로봇의 본체 아래의 지형과 접촉하는 것에 대한 응답 없이 스윙 다리의 이동을 계속하는 단계를 포함한다.
[0011] 일부 예들에서, 로봇의 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트에 대응하는지 여부를 결정하는 단계는 예상치 못한 토크가 임팩트 검출 임계치를 충족하는지 여부를 결정하는 단계를 포함하며, 임팩트 검출 임계치는 알려진 임팩트에 대응하는 토크의 크기를 포함한다. 다른 예들에서, 데이터 처리 하드웨어에 의해 스윙 다리에 대한 예상치 못한 토크를 결정하는 단계는, 로봇에 대한 관절 토크 센서들에 의해 측정된 측정 토크, 중력에 의해 유발되는 각각의 토크를 나타내는 제1 예상 토크, 및 로봇의 스윙 다리를 가속하기 위한 대응하는 토크를 나타내는 제2 예상 토크 사이의 차이에 기초한다.
[0012] 일부 구성들에서, 로봇의 스윙 다리의 관절이 관절의 모션 범위에 대한 한계에 인접하는 경우, 상기 방법은, 데이터 처리 하드웨어에 의해, 예상치 못한 토크가 유각기 동안의 스윙 다리에 대한 임팩트를 나타내지 못한다고 결정하는 단계를 포함한다. 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트에 대응하는지 여부를 결정하는 단계는 스윙 다리에 대한 예상치 못한 토크가 스윙 다리의 관절의 모션과 반대되는 임팩트 토크에 대응한다고 결정하는 단계를 포함할 수 있다.
[0013] 일부 구현예들에서, 스윙 다리의 관절 역학은 스윙 다리의 무릎 관절의 관절 역학 및 스윙 다리의 고관절의 관절 역학에 대응한다. 고관절의 관절 역학은 스윙 다리를 외전 또는 내전하는 외전-내전 토크 및 스윙 다리를 굴곡 또는 신전하는 굴곡-신전 토크를 포함할 수 있다.
[0014] 본 개시의 다른 양태는 발자국 접촉 검출을 수행하도록 구성된 로봇을 제공한다. 로봇은 본체, 및 본체에 결합되고 환경을 횡단하도록 구성된 2 개 이상의 다리들을 포함한다. 2 개 이상의 다리들은 스윙 다리를 포함한다. 로봇은 2 개 이상의 다리들과 통신하는 제어 시스템을 포함하며, 제어 시스템은 데이터 처리 하드웨어 및 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 처리 하드웨어 상에서 실행될 때, 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 로봇의 스윙 다리에 대한 관절 역학을 수신하는 동작을 포함한다. 스윙 다리는 로봇의 보행의 유각기를 수행한다. 동작들은 또한 세계 기준 프레임에 대한 로봇의 포즈의 추정치를 규정하는 오도메트리를 수신하는 동작을 포함한다. 동작들은 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트에 대응하는지 여부를 결정하는 동작을 더 포함한다. 스윙 다리에 대한 예상치 못한 토크가 임팩트에 대응하는 경우, 동작들은 임팩트가 로봇의 오도메트리 및 스윙 다리의 관절 역학에 기초하여 로봇 주위의 지면에 대한 스윙 다리의 착지를 나타내는지 여부를 결정하는 동작을 포함한다. 임팩트가 스윙 다리의 착지를 나타내지 않는 경우, 동작들은 로봇의 오도메트리 및 스윙 다리의 관절 역학에 기초하여 임팩트의 원인을 분류하는 동작을 포함한다.
[0015] 본 개시의 구현예들은 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 동작들은 임팩트의 분류된 원인에 기초하여 로봇의 스윙 다리에 대한 응답을 생성하는 동작을 포함한다. 임팩트가 스윙 다리의 착지를 나타내는 경우, 동작들은 스윙 다리의 분류를 스탠스 다리로 변경하는 동작을 포함할 수 있다. 동작들은 임팩트의 원인이 트립으로 분류되는 경우에 각각의 임팩트에 대한 응답으로서 스윙 다리를 들어올리는 동작을 포함할 수 있다.
[0016] 일부 예들에서, 임팩트의 원인을 분류하는 동작은 로봇의 스윙 다리에 대한 유각기의 완료율이 스윙 다리의 관절 역학에 기초하여 유각기 임계치를 충족한다고 결정하는 동작을 포함한다. 여기서, 유각기 임계치는 스윙 다리가 유각기의 초기에 있음을 나타낸다. 이러한 예에서, 임팩트의 원인을 분류하는 동작은 또한 스윙 다리에 대한 임팩트의 원인을 리프트오프 스커핑으로 분류하는 동작을 포함한다. 여기서, 스윙 다리는 스윙 다리에 대한 임팩트의 원인을 리프트오프 스커핑으로 분류하는 것에 응답하는 보행의 유각기를 계속 수행한다.
[0017] 일부 구성들에서, 임팩트의 원인을 분류하는 동작은 스윙 다리의 고관절이 스윙 다리의 관절 역학에 기초하여 사전결정된 모션 제한을 초과한다고 결정하는 동작을 포함한다. 여기서, 관절 역학은 지면에 대한 고관절의 외전-내전 성분 및 지면에 대한 고관절의 굴곡-신전 성분을 포함하고, 외전-내전 성분은 굴곡-신전 성분의 함수로서 사전결정된 모션 제한을 포함한다. 이러한 구성에서, 임팩트의 원인을 분류하는 동작은 또한 스윙 다리에 대한 임팩트의 원인을 스윙 다리가 로봇의 본체와 접촉하는 것으로 분류하는 동작을 포함한다. 여기서, 스윙 다리는 스윙 다리에 대한 임팩트의 원인을 스윙 다리가 로봇의 본체와 접촉하는 것으로 분류하는 것에 응답하는 보행의 유각기를 계속 수행한다.
[0018] 일부 구현예들에서, 임팩트의 원인을 분류하는 동작은 반대측 다리에 대한 스윙 다리의 제1 최근접 지점과 스윙 다리에 대한 반대측 다리의 제2 최근접 지점 사이의 벡터 거리가 스윙 다리가 반대측 다리와 교차했음을 나타낸다고 결정하는 동작을 포함한다. 여기서, 임팩트의 원인을 분류하는 동작은 또한, 스윙 다리의 원위 단부가 반대측 다리의 각각의 원위 단부와 교차했다고 결정하는 동작, 스윙 다리의 제1 무릎 관절이 반대측 다리의 제2 무릎 관절과 교차했다고 결정하는 동작, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 스윙 다리가 로봇의 반대측 다리와 교차한 것으로 분류하는 동작, 및 로봇의 반대측 다리와의 교차를 해제하도록 스윙 다리를 이동시키는 동작을 포함한다.
[0019] 일부 예들에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 동작은, 스윙 다리가 로봇의 반대측 다리 근처에 위치결정된다고 결정하는 동작, 각각의 임팩트에 대응하는 토크가 스윙 다리의 고관절의 측방향 성분에서 주로 비롯된 관절 역학으로부터 기인한다고 결정하는 동작, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 교차되지 않은 반대측 다리의 임팩트로 분류하는 동작, 및 스윙 다리를 로봇의 시상면으로부터 멀리 이동시키는 동작을 포함한다.
[0020] 일부 구성들에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 동작은, 스윙 다리의 무릎이 유각기 동안에 후방으로 이동하고 있다고 결정하는 동작, 각각의 임팩트에 대응하는 예상치 못한 토크를 야기하는 관절 역학이 스윙 다리의 무릎 토크 및 스윙 다리의 고관절에 대한 내전-외전 토크 모두보다 큰 스윙 다리의 고관절에 대한 굴곡-신전 토크를 포함한다고 결정하는 동작, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 스윙 다리의 무릎이 로봇의 본체 뒤의 지형과 접촉하는 것으로 분류하는 동작, 및 스윙 다리의 무릎을 로봇의 본체에 대해 전방으로 시프팅시키는 동작을 포함한다.
[0021] 일부 구현예들에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 동작은 스윙 다리의 무릎이 인식된 지면에 인접하여 있다고 결정하는 동작을 포함하며, 무릎은 로봇의 본체에 대해 전방으로 이동하고, 인식된 지면은 로봇에 대한 센서 데이터에 의해 규정된다. 이러한 구현예에서, 각각의 임팩트에 대응하는 로봇의 다리에 대한 상태를 분류하는 동작은 또한, 스윙 다리의 무릎이 스윙 다리의 원위 단부보다 인식된 지면에 더 근접하여 있다고 결정하는 동작, 각각의 임팩트에 대응하는 예상치 못한 토크가 스윙 다리의 고관절에서 일어난다고 결정하는 동작, 로봇의 스윙 다리에 대한 각각의 임팩트를 유발하는 상태를 스윙 다리의 무릎이 로봇의 본체 아래의 지형과 접촉하는 것으로 분류하는 동작, 및 스윙 다리의 무릎이 로봇의 본체 아래의 지형과 접촉하는 것에 대한 응답 없이 스윙 다리의 이동을 계속하는 동작을 포함한다.
[0022] 일부 예들에서, 로봇의 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트에 대응하는지 여부를 결정하는 동작은 예상치 못한 토크가 임팩트 검출 임계치를 충족하는지 여부를 결정하는 동작을 포함하며, 임팩트 검출 임계치는 알려진 임팩트에 대응하는 토크의 크기를 포함한다. 다른 예들에서, 스윙 다리에 대한 예상치 못한 토크를 결정하는 동작, 로봇에 대한 관절 토크 센서들에 의해 측정된 측정 토크, 중력에 의해 유발되는 각각의 토크를 나타내는 제1 예상 토크, 및 로봇의 스윙 다리를 가속하기 위한 대응하는 토크를 나타내는 제2 예상 토크 사이의 차이에 기초한다.
[0023] 일부 구성들에서, 로봇의 스윙 다리의 관절이 관절의 모션 범위에 대한 한계에 인접하는 경우, 동작들은 예상치 못한 토크가 유각기 동안의 스윙 다리에 대한 임팩트를 나타내지 못한다고 결정하는 동작을 포함한다. 스윙 다리에 대한 예상치 못한 토크가 스윙 다리에 대한 임팩트에 대응하는지 여부를 결정하는 동작은 스윙 다리에 대한 예상치 못한 토크가 스윙 다리의 관절의 모션과 반대되는 임팩트 토크에 대응한다고 결정하는 동작을 포함할 수 있다.
[0024] 일부 구현예들에서, 스윙 다리의 관절 역학은 스윙 다리의 무릎 관절의 관절 역학 및 스윙 다리의 고관절의 관절 역학에 대응한다. 고관절의 관절 역학은 스윙 다리를 외전 또는 내전하는 외전-내전 토크 및 스윙 다리를 굴곡 또는 신전하는 굴곡-신전 토크를 포함할 수 있다.
[0025] 본 개시의 하나 이상의 구현예들의 세부사항들은 첨부 도면들 및 하기의 설명에 기재되어 있다. 다른 양태들, 특징들 및 이점들은 이 설명 및 도면들, 그리고 청구범위로부터 명백할 것이다.
[0026] 도 1a는 환경 내의 예시적인 로봇의 개략도이다.
[0027] 도 1b는 도 1a의 로봇을 위한 예시적인 시스템들의 개략도이다.
[0028] 도 2a는 도 1a의 로봇을 위한 예시적인 임팩트 검출 시스템의 개략도이다.
[0029] 도 2b 내지 도 2e는 도 1a의 로봇을 위한 임팩트 검출 시스템에 의한 임팩트 검출 동안의 예시적인 스윙 다리들의 개략도들이다.
[0030] 도 2g 내지 도 2l은 도 1a의 로봇에 의해 경험되는 예시적인 임팩트 상태들의 사시도들이다.
[0031] 도 2f는 도 1a의 로봇을 위한 예시적인 임팩트 검출 시스템의 개략도이다.
[0032] 도 3은 로봇이 로봇 주위의 환경에서 임팩트들을 검출하기 위한 동작들의 예시적인 배열이다.
[0033] 도 4는 본원에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0034] 다양한 도면들에서 유사한 참조 부호들은 유사한 요소들을 나타낸다.
[0035] 로봇이 환경에 대해 기동할 때, 로봇의 다양한 시스템은 스텝 위치(예를 들어, 다리에 대한 발 배치), 로봇의 다리들의 이동 방법(예를 들어, 스윙 궤적들(swing trajectories)), 장애물들의 회피 방법, 균형 유지 방법 등을 나타내도록 로봇과 통신한다. 로봇 이동의 보다 중요한 양태들 중 하나는 환경과의 로봇의 관계를 이해하는 것이다. 예를 들어, 하나의 양태는 로봇의 구조물이 그 자체 또는 환경에 있는 물체들(예를 들어, 환경의 트랙션 표면(traction surface))과 상호 작용하는 방법을 이해하는 것이다. 이동 동안에, 이러한 상호 작용들은 환경뿐만 아니라, 로봇의 특성들(예를 들어, 속도, 보행, 위치 등)에 따라 달라진다. 로봇에 대한 이러한 관계들을 이해하기 위해, 로봇은 임팩트(impact) 검출 및/또는 임팩트 반응에 다양한 기술들을 사용한다.
[0036] 보행 로봇(legged-robot)의 경우, 로봇의 다리가 트랙션 표면(예를 들어, 지면)과 접촉했을 때를 정확하게 검출하는 것이 중요할 수 있다. 예를 들어, 로봇의 다리가 지면과 접촉(즉, 착지)하지만, 로봇이 다리의 착지를 검출하지 못한 경우, 로봇은 이러한 다리를 계속 하향으로 이동하여, 본질적으로 지면을 통해 다리를 가압하려고 한다. 여기서, 다리를 계속 하향으로 이동하는 경우, 로봇은 다리에 작용하는 지면으로부터의 수직력을 받는다. 문제는 이러한 수직력이 로봇의 균형을 방해하여, 일부 상황들에서는 로봇이 전도되게(예를 들어, 뒤집히게) 할 수 있다는 것이다. 로봇이 착지를 늦게 검출하는 경우, 이는 로봇이 예상보다 큰 임팩트를 받기 때문에 로봇의 측방향 안정성에 영향을 미친다. 다시 말해서, 로봇은 실제로 일어났을 때 지면 임팩트를 예상하지 못한다. 따라서, 로봇은 그러한 임팩트를 고려하지 못하거나 적절하게 균형을 잡지 못할 수 있다.
[0037] 착지를 정확하게 검출하는 것 외에도, 로봇은 또한 임팩트 검출을 이용하여 트립들(trips)을 검출한다. 트립은 일반적으로 로봇의 보행 장애를 지칭한다. 다시 말해서, 로봇은 계획된 이동 궤적(예를 들어, 보행 제어기에 기초함)을 갖지만, 일부 물체, 환경 요소 또는 그 자체와의 접촉으로 인한 트립이 있을 수 있다. 트립들 및 트랙션 표면 접촉(예를 들어, 다리의 착지) 모두에 대해, 그러한 상태들을 검출할 뿐만 아니라, 그러한 상태를 검출 및/또는 그에 응답하는 데 걸리는 시간을 최소화하는 것이 유리할 수 있다. 종종 트립이 있는 경우, 로봇이 트립을 보다 빨리 검출할수록, 로봇이 트립으로부터 보다 적은 힘(또는 회전)을 받을 것이다. 추가적으로, 트립을 검출하는 속도와 로봇이 트립 상태(trip condition)를 극복할(예를 들어, 안정화되거나 모션을 계속할) 가능성 사이에는 비례 관계가 있을 수 있다. 다시 말해서, 트립을 신속하게 검출하는 것은 로봇의 시스템들이 트립에 신속하게 반응 및/또는 응답하게 할 수 있다. 따라서, 트립 검출은 환경에 대해 이동하는 동안 로봇에 대한 장애들을 최소화하는 것을 목표로 한다.
[0038] 도 1a를 참조하면, 로봇(100)은 본체(110)를 포함하며, 본체(110)는 본체(110)에 결합되고 로봇(100)이 환경(10)에 대해 이동할 수 있게 하는 로코모션-기반 구조물들(locomotion-based structures)(이를 테면, 다리들(120a 내지 120d))을 갖는다. 일부 예들에서, 각각의 다리(120)는 하나 이상의 관절들(J)이 다리(120)의 부재들(122)이 이동할 수 있게 하도록 하는 관절연결형 구조물이다. 예를 들어, 각각의 다리(120)는 다리(120)의 상부 부재(122, 122U)를 본체(110)에 결합하는 고관절(hip joint)(JH), 및 다리(120)의 상부 부재(122U)를 다리(120)의 하부 부재(122L)에 결합하는 무릎 관절(knee joint)(JK)을 포함한다. 임팩트 검출을 위해, 고관절(JH)은 로봇(100)의 관상면(frontal plane)(즉, x-방향 축(AX) 및 z-방향 축(AZ)의 방향들로 연장되는 X-Z 평면)에서 일어나는, "JHx"로 지정된 고관절(JH)의 외전-내전(abduction-adduction) 회전, 및 로봇(100)의 시상면(sagittal plane)(즉, y-방향 축(AY) 및 z-방향 축(AZ)의 방향들로 연장되는 Y-Z 평면)에서 일어나는, "JHy"로 지정된 고관절(JH)의 굴곡-신전(flexion-extension) 회전으로 더욱 세분화될 수 있다. 도 1a는 4 개의 다리들(120a 내지 120d)을 갖는 4족 보행 로봇을 도시하지만, 로봇(100)은 환경(10) 내의 지형을 횡단하기 위한 수단을 제공하는 임의의 수의 다리들 또는 로코모션-기반 구조물들(예를 들어, 2 개의 다리들을 갖는 2족 보행 또는 인간형 로봇)을 포함할 수 있다.
[0039] 지형을 횡단하기 위해, 각각의 다리(120)는 지형의 표면(즉, 트랙션 표면)과 접촉하는 원위 단부(124)를 갖는다. 다시 말해서, 다리(120)의 원위 단부(124)는 로봇(100)의 이동 동안에 피봇하거나, 자리잡거나 또는 일반적으로 트랙션을 제공하기 위해 로봇(100)에 의해 사용되는 다리(120)의 단부이다. 예를 들어, 다리(120)의 원위 단부(124)는 로봇(100)의 발에 대응한다. 일부 예들에서, 도시되지는 않았지만, 다리(120)의 원위 단부(124)는 원위 단부(124)가 다리(120)의 하부 부재(122L)에 대해 관절연결 가능하도록 하는 발목 관절(ankle joint)(JA)을 포함한다.
[0040] 로봇(100)은 중력 방향을 따른 수직 중력 축(예를 들어, Z-방향 축(AZ)으로 도시됨)과, 로봇(100)의 분포된 질량의 가중된 상대 포지션의 합계가 0(zero)이 되는 지점인 질량 중심(CM)을 갖는다. 로봇(100)은 로봇(100)에 의해 취해지는 특정 자세(attitude) 또는 스탠스(stance)를 규정하기 위해 수직 중력 축(AZ)(즉, 중력에 대한 고정 기준 프레임(fixed reference frame))에 대한 CM에 기초하는 포즈(pose)(P)를 더 갖는다. 로봇(100)의 자세는 공간에서의 로봇(100)의 배향 또는 각도 포지션에 의해 규정될 수 있다. 본체(110)에 대한 다리(120)의 이동들은 로봇(100)의 포즈(P)(즉, 로봇의 CM 포지션과 로봇(100)의 자세 또는 배향의 조합)를 변경한다. 여기서, 높이는 일반적으로 z-방향을 따른 거리를 지칭한다. 로봇(100)의 시상면은 y-방향 축(AY) 및 z-방향 축(AZ)의 방향들로 연장되는 Y-Z 평면에 대응한다. 다시 말해서, 시상면은 로봇(100)을 좌측 및 우측으로 이등분한다. 일반적으로 시상면에 수직인 지면(횡방향 평면으로도 지칭됨)은 x-방향 축(AX) 및 y-방향 축(AY)의 방향들로 연장됨으로써 X-Y 평면에 걸쳐 있다. 지면은 로봇(100)의 다리들(120)의 원위 단부들(124)이 트랙션을 생성하여 로봇(100)이 환경(10)에 대해 이동하는 것을 도울 수 있는 지면(12)을 지칭한다. 로봇(100)의 다른 해부학적 평면은 로봇(100)의 본체(110)를 가로질러(예를 들어, 제1 다리(120a)를 갖는 로봇(100)의 좌측으로부터 제2 다리(120b)를 갖는 로봇(100)의 우측까지) 연장되는 관상면이다. 관상면은 x-방향 축(AX) 및 z-방향 축(AZ)의 방향들로 연장됨으로써 X-Z 평면에 걸쳐 있다.
[0041] 보행 로봇이 환경(10)에 대해 이동하는 경우, 로봇의 다리들(120)은 보행 사이클을 겪는다. 일반적으로, 보행 사이클은 다리(120)가 지면(12)에 착지하거나 지면(12)과 접촉할 때 시작되고, 동일한 다리(120)가 다시 한번 지면(12)과 접촉할 때 종료된다. 보행 사이클은 대개 2 개의 단계들, 즉 유각기(swing phase) 및 입각기(stance phase)로 분류될 수 있다. 유각기 동안에, 다리(120)는, (i) 지면(12)으로부터의 리프트-오프(lift-off)(때로는 입각기와 유각기 사이의 전환 및 토우-오프(toe-off)로도 지칭됨), (ii) 다리(120)의 무릎 관절(JK)에서의 굴곡, (iii) 다리(120)의 무릎 관절(JK)의 신전, 및 (iv) 지면(12)에의 다시 착지를 수행한다. 여기서, 유각기의 다리(120)는 스윙 다리(120SW)로 지칭된다. 스윙 다리(120SW)가 스윙 다리(120SW)의 이동을 통해 진행할 때, 다른 다리(120)는 입각기를 수행한다. 입각기는 다리(120)의 원위 단부(124)(예를 들어, 발)가 지면(12) 상에 있는 기간을 지칭한다. 입각기 동안에, 다리(120)는, (i) 유각기로부터 입각기로의 전환을 트리거(trigger)하는 초기 지면 접촉, (ii) 다리(120)가 지면 접촉을 댐핑하는 부하 반응(loading response), (iii) 반대측 다리(즉, 스윙 다리(120SW))가 리프트-오프하여 (유각기를 통해 대략 절반으로) 균형 포지션으로 스윙하는 동안의 중간-스탠스 지지, 및 (iv) 로봇의 COM이 다리(120) 위에 있을 때부터 반대측 다리(120)가 지면(12)에 착지할 때까지의 말기-스탠스 지지를 수행한다. 여기서, 입각기의 다리(120)는 스탠스 다리(120ST)로 지칭된다.
[0042] 환경(10)에 대해 기동하기 위해, 로봇(100)은 하나 이상의 센서들(132, 132a 내지 132n)(예를 들어, 제1 센서(132, 132a) 및 제2 센서(132, 132b)로서 도시됨)을 갖는 센서 시스템(130)을 포함한다. 센서들(132)은 비전/이미지 센서들, 관성 센서들(예를 들어, 관성 측정 유닛(inertial measurement unit; IMU)), 힘 센서들, 및/또는 운동학적 센서들을 포함할 수 있다. 센서들(132)의 일부 예들은 스테레오 카메라와 같은 카메라, 스캐닝 광-검출 및 거리 측정(light-detection and ranging; LIDAR) 센서, 또는 스캐닝 레이저-검출 및 거리 측정(laser-detection and ranging; LADAR) 센서를 포함한다. 일부 예들에서, 센서(132)는 센서(132)에 대응하는 감지 범위 또는 영역을 한정하는 대응하는 시야(들)(FV)를 갖는다. 예를 들어, 도 1a는 로봇(100)에 대한 시야(FV)를 도시한다. 각각의 센서(132)는, 예를 들어 센서(132)가 하나 이상의 축(예를 들어, 지면과 관련하여 x-축, y-축, 또는 z-축)을 중심으로 시야(FV)를 변경할 수 있도록 피봇 가능 및/또는 회전 가능할 수 있다.
[0043] 일부 구현예들에서, 센서 시스템(130)은 관절(J)에 결합된 센서(들)(132)를 포함한다. 일부 예들에서, 이러한 센서들(132)은 로봇(100)의 관절(J)을 작동시키는 모터에 결합된다(예를 들어, 센서들(132, 132a, 132b)). 여기서, 이러한 센서들(132)은 관절-기반 센서 데이터(134)의 형태로 관절 역학(134, 134JD)을 생성한다. 관절-기반 센서 데이터(134)로서 수집된 관절 역학(134JD)은 관절 각도들(예를 들어, 하부 부재(122L)에 대한 상부 부재(122U)), 관절 속도(예를 들어, 관절 각속도 또는 관절 각가속도), 및/또는 관절(J)에서 받는 관절 토크들(또한 관절력들(joint forces)로도 지칭됨)을 포함할 수 있다. 여기서, 하나 이상의 센서들(132)에 의해 생성된 관절-기반 센서 데이터(134)는 원시 센서 데이터, 상이한 유형들의 관절 역학(134JD)을 형성하도록 추가로 처리되는 데이터, 또는 이들 둘의 일부 조합일 수 있다. 예를 들어, 센서(132)는 관절 포지션(또는 관절(J)에 결합된 부재(들)(122)의 포지션)을 측정하고, 로봇(100)의 시스템들은 포지션 데이터로부터 속도 및/또는 가속도를 도출하도록 추가 처리를 수행한다. 다른 예들에서, 센서(132)는 속도 및/또는 가속도를 직접 측정하도록 구성된다.
[0044] 센서(132)로 시야(FV)를 조사할 때, 센서 시스템(130)은 시야(FV)에 대응하는 센서 데이터(134)(이미지 데이터로도 지칭됨)를 생성한다. 일부 예들에서, 센서 데이터(134)는 3차원 체적형 이미지 센서(132)에 의해 생성된 3차원 체적형 포인트 클라우드(three-dimensional volumetric point cloud)에 대응하는 이미지 데이터이다. 추가적으로 또는 대안적으로, 로봇(100)이 환경(10)에 대해 기동할 때, 센서 시스템(130)은 관성 측정 데이터(예를 들어, IMU에 의해 측정됨)를 포함하는 로봇(100)에 대한 포즈 데이터를 수집한다. 일부 예들에서, 포즈 데이터는 로봇(100)에 대한 운동학적 데이터 및/또는 배향 데이터, 예를 들어 로봇(100)의 다리(120)의 관절들(J) 또는 다른 부분들에 대한 운동학적 데이터 및/또는 배향 데이터를 포함한다. 센서 데이터(134)에 의해, 로봇(100)의 인식 시스템(200)은 환경(10) 주위의 지형에 대한 맵들(maps)(182)을 생성할 수 있다.
[0045] 로봇(100)이 환경(10)에 대해 기동하는 동안, 센서 시스템(130)은 환경(10)의 지형 및/또는 로봇(100)의 구조물과 관련된 센서 데이터(134)(예를 들어, 로봇(100)의 관절 역학 및/또는 오도메트리(odometry))를 수집한다. 예를 들어, 도 1a는 로봇(100)의 환경(10)으로서 방(room)에 관한 센서 데이터(134)를 수집하는 센서 시스템(130)을 도시한다. 센서 시스템(130)이 센서 데이터(134)를 수집할 때, 컴퓨팅 시스템(140)은 센서 데이터(134)를 로봇(100)의 다양한 시스템들(예를 들어, 제어 시스템(170), 인식 시스템(180), 오도메트리 시스템(190) 및/또는 임팩트 검출기(200))에 저장, 처리 및/또는 통신하도록 구성된다. 센서 데이터(134)와 관련된 컴퓨팅 작업들을 수행하기 위해, 로봇(100)의 컴퓨팅 시스템(140)은 데이터 처리 하드웨어(142) 및 메모리 하드웨어(144)를 포함한다. 데이터 처리 하드웨어(142)는 로봇(100)에 대한 활동들(예를 들어, 이동 및/또는 이동 기반 활동들)과 관련된 컴퓨팅 작업들을 수행하기 위해 메모리 하드웨어(144)에 저장된 명령들을 실행하도록 구성된다. 일반적으로 말하면, 컴퓨팅 시스템(140)은 데이터 처리 하드웨어(142) 및/또는 메모리 하드웨어(144)의 하나 이상의 위치들을 지칭한다.
[0046] 일부 예들에서, 컴퓨팅 시스템(140)은 로봇(100) 상에 위치된 로컬 시스템이다. 로봇(100) 상에 위치되는 경우, 컴퓨팅 시스템(140)은 중앙 집중형(즉, 로봇(100) 상의 단일 위치/영역, 예를 들어 로봇(100)의 본체(110)에 있음), 분산형(즉, 로봇(100) 주위의 다양한 위치들에 위치됨), 또는 이들 둘의 하이브리드 조합(예를 들어, 다수의 중앙 집중형 하드웨어 및 소수의 분산형 하드웨어의 경우)일 수 있다. 일부 차이점들을 예시하기 위해, 분산형 컴퓨팅 시스템(140)은 활동 위치(예를 들어, 다리(120)의 관절을 이동시키는 모터)에서 처리가 일어나게 할 수 있는 반면, 중앙 집중형 컴퓨팅 시스템(140)은 로봇(100) 상의 다양한 포지션들에 위치된 시스템들과 통신하는(예를 들어, 다리(120)의 관절을 이동시키는 모터와 통신하는) 중앙 처리 허브를 허용할 수 있다.
[0047] 추가적으로 또는 대안적으로, 컴퓨팅 시스템(140)은 로봇(100)으로부터 원격으로 위치되는 컴퓨팅 리소스들(computing resources)을 포함한다. 예를 들어, 컴퓨팅 시스템(140)은 네트워크(150)를 통해 원격 시스템(160)(예를 들어, 원격 서버 또는 클라우드-기반 환경)과 통신한다. 컴퓨팅 시스템(140)과 매우 유사하게, 원격 시스템(160)은 원격 데이터 처리 하드웨어(162) 및 원격 메모리 하드웨어(164)와 같은 원격 컴퓨팅 리소스들을 포함한다. 여기서, 센서 데이터(134) 또는 다른 처리된 데이터(예를 들어, 컴퓨팅 시스템(140)에 의해 로컬로 처리되는 데이터)는 원격 시스템(160)에 저장될 수 있고, 컴퓨팅 시스템(140)에 액세스 가능할 수 있다. 일부 예들에서, 컴퓨팅 시스템(140)은 컴퓨팅 시스템(140)의 리소스들이 원격 시스템(160)의 리소스들에 상주할 수 있도록 컴퓨팅 리소스들(142, 144)의 확장들로서 원격 리소스들(162, 164)을 이용하도록 구성된다.
[0048] 일부 구현예들에서, 도 1a 및 도 1b에 도시된 바와 같이, 로봇(100)은 제어 시스템(170) 및 인식 시스템(180)을 포함한다. 인식 시스템(180)은 센서 시스템(130)으로부터 센서 데이터(134)를 수신하고 센서 데이터(134)를 맵들(182)로 처리하도록 구성된다. 인식 시스템(180)에 의해 생성된 맵들(182)에 의해, 인식 시스템(180)은 환경(10)에 대해 로봇(100)을 이동시키는 것과 같은 로봇(100)에 대한 제어된 동작들을 수행하기 위해 맵들(182)을 제어 시스템(170)에 전달할 수 있다. 일부 예들에서, 인식 시스템(180)이 제어 시스템(170)과 분리되어 있지만 제어 시스템(170)과 통신함으로써, 제어 시스템(170)에 대한 처리는 로봇(100)을 제어하는 데 초점을 맞출 수 있는 반면, 인식 시스템(180)에 대한 처리는 센서 시스템(130)에 의해 수집된 센서 데이터(134)를 해석하는 데 초점을 맞추고 있다. 예를 들어, 이러한 시스템들(170, 180)은 환경(10)에서의 로봇(100)의 정확하고 부드러운 이동을 보장하기 위해 병렬로 처리를 실행한다.
[0049] 일부 예들에서, 제어 시스템(170)은 적어도 하나의 제어기(172), 경로 생성기(174), 스텝 로케이터(step locator)(176) 및 본체 플래너(body planner)(178)를 포함한다. 제어 시스템(170)은 적어도 하나의 센서 시스템(130) 및 로봇(100)의 임의의 다른 시스템(예를 들어, 인식 시스템(180), 오도메트리 시스템(190) 및/또는 임팩트 검출기(200))과 통신하도록 구성될 수 있다. 제어 시스템(170)은 하드웨어(140)를 사용하여 동작들 및 다른 기능들을 수행한다. 제어기(172)는 로봇(100)의 시스템들(예를 들어, 제어 시스템(170), 인식 시스템(180), 오도메트리 시스템(190) 및/또는 임팩트 검출기(200))로부터의 입력 또는 피드백에 기초하여 환경(10)에 대해 횡단하기 위해 로봇(100)의 이동을 제공하도록 구성된다. 이것은 로봇(100)의 포즈들 및/또는 거동들 사이의 이동을 포함할 수 있다. 예를 들어, 제어기(172)는 상이한 발자국 패턴들, 다리 패턴들, 본체 이동 패턴들 또는 비전 시스템 감지 패턴들을 제어한다.
[0050] 일부 예들에서, 제어기(172)는 복수의 제어기들(172)을 포함하며, 제어기들(172) 각각은 고정 케이던스(fixed cadence)를 갖는다. 고정 케이던스는 다리(120)의 스텝 단계 또는 유각기에 대한 고정 타이밍을 지칭한다. 예를 들어, 제어기(172)는 로봇(100)이 특정 주파수(예를 들어, 250 밀리초, 350 밀리초 등마다의 스텝)로 다리들(120)을 이동시키도록(예를 들어, 스텝을 내디디도록) 명령한다. 각각의 제어기(172)가 고정 케이던스를 갖는 복수의 제어기들(172)의 경우, 로봇(100)은 제어기들(172)을 전환함으로써 가변 타이밍을 경험할 수 있다. 일부 구현예들에서, 로봇(100)이 환경(10)을 횡단할 때, 로봇(100)은 고정 케이던스 제어기들(172)을 연속적으로 전환/선택한다(예를 들어, 3 밀리초마다 제어기(170)를 재선택함).
[0051] 도 1b를 참조하면, 경로 생성기(174)는 로봇(100)에 대한 수평 모션을 결정하도록 구성된다. 예를 들어, 수평 모션은 로봇(100)의 병진(즉, X-Y 평면에서의 이동) 및/또는 요(yaw)(즉, Z-방향 축(AZ)을 중심으로 한 회전)를 지칭한다. 경로 생성기(174)는 센서 데이터(134)에 기초하여 로봇(100) 주위의 환경(10) 내의 장애물들을 결정한다. 경로 생성기(174)는 스텝 로케이터(176)가 로봇(100)의 다리들(120)에 대한 발 위치들(예를 들어, 로봇(100)의 다리들(120)의 원위 단부들(124)을 배치하기 위한 위치들)을 식별할 수 있도록 장애물들을 스텝 로케이터(176)에 전달한다. 스텝 로케이터(176)는 인식 시스템(180)으로부터의 입력들(예를 들어, 맵(들)(182))을 사용하여 발 배치들(즉, 로봇(100)이 스텝을 내디뎌야 하는 위치들)을 생성한다. 본체 플래너(178)는, 스텝 로케이터(176)와 매우 유사하게, 인식 시스템(180)으로부터 입력들(예를 들어, 맵(들)(182))을 수신한다. 일반적으로 말하면, 본체 플래너(178)는 환경(10)에 대해 성공적으로 이동하도록 로봇(100)의 본체(110)의 역학(예를 들어, 회전, 예컨대 피치(pitch) 또는 요 및/또는 COM의 높이)을 조정하도록 구성된다.
[0052] 인식 시스템(180)은 다양한 장애물들을 갖는 지형에서 로봇(100)이 보다 정밀하게 이동하는 것을 돕는 로봇(100)의 시스템이다. 센서들(132)이 로봇(100) 주위의 공간(즉, 로봇의 환경(10))에 대한 센서 데이터(134)를 수집할 때, 인식 시스템(180)은 센서 데이터(134)를 사용하여 환경(10)에 대한 하나 이상의 맵들(182)을 형성한다. 인식 시스템(180)이 맵(182)을 생성하면, 인식 시스템(180)은 또한 (예를 들어, 센서 데이터(134)를 기존의 맵 상에 투영함으로써) 맵(182)에 정보를 추가하고 그리고/또는 맵(182)으로부터 정보를 제거하도록 구성된다.
[0053] 도 1b를 추가로 참조하면, 오도메트리 시스템(190)은 로봇(100)이 세계 기준 프레임(world reference frame)(예를 들어, 환경(10)) 내에 위치되는 위치, 및 로봇(100)이 해당 세계 기준 프레임에서 이동하는 속도를 측정하도록 구성된다. 다시 말해서, 오도메트리 시스템(190)은 세계 기준 프레임에 대한 로봇(100)의 특성에 대한 하나 이상의 추정치들(예를 들어, 측정치들)로서 오도메트리 정보(192)를 생성한다. 일부 예들에서, 오도메트리 시스템(190)은 IMU(예를 들어, 가속도계(들) 및/또는 자이로(들)(gyro(s)))와 같은 센서(132)로부터 센서 데이터(134)를 수신한다. 센서 데이터(134)와 함께, 오도메트리 시스템(190)은 다리(120)의 원위 단부(124)가 지면(12)과 접촉하고 미끄러지지 않을 때 원위 단부(124)가 정지 상태에 있다는 가정에 기초하여 오도메트리 정보(192)를 생성할 수 있다. 이러한 가정을 센서 데이터(134)와 조합함으로써, 오도메트리 시스템(190)은 세계 기준 프레임(예를 들어, 환경(10))에 대한 로봇 모션에 관한 오도메트리 정보(192)를 생성한다. 다시 말해서, 오도메트리 시스템(190)은 세계 기준 프레임에 대해 로봇(100)에 대한 추정치들을 생성하기 위해 운동학 및 관성 측정치들을 고려한다.
[0054] 로봇(100)의 임팩트 검출 시스템(200)은 로봇(100)의 다른 시스템들(예를 들어, 센서 시스템(130), 컴퓨팅 시스템(140), 원격 시스템(160), 제어 시스템(170), 인식 시스템(180) 및/또는 오도메트리 시스템(190))로부터 입력들을 수신하도록 구성된다. 로봇(100)의 다른 시스템들로부터의 정보를 활용함으로써, 임팩트 검출 시스템(200)은 임팩트(202)를 식별하고, 임팩트(202)를 분류하며, 일부 경우들에서 임팩트(202)에 대한 응답(204)을 생성하도록(예를 들어, 트립 응답을 호출함) 정보에 입각한 결정을 내리려고 시도한다. 일부 예들에서, 임팩트 검출 시스템(200)은 입력들로서 관절 역학(134JD)을 수신한다. 예를 들어, 임팩트 검출 시스템(200)은 관절력들(134JD, 134JDa)을 수신하여, 임팩트 검출 시스템(200)이 원위 단부(124)(로봇(100)의 발(124)로도 지칭됨)가 지면(12)과 접촉할 때를 검출할 수 있게 한다. 일부 예들에서, 임팩트 검출 시스템(200)은 관절 각도들(134JD, 134JDb)을 수신하여, (예를 들어, 로봇(100)에 의해 인식되는 바와 같이) 원위 단부(124)가 이동을 중지할 때 및/또는 지면(12)에 대한 원위 단부(124)의 위치를 검출한다. 일부 구현예들에서, 임팩트 검출 시스템(200)은 각속도들(134JD, 134JDc)을 수신하여, 원위 단부(124)의 속도를 검출한다(예를 들어, 발이 지면에 대한 이동을 중지했는지 여부를 검출함). 도 2a는 관절력들, 관절 각도들 및 각속도들(134JDa 내지 134JDc) 각각을 수신하는 임팩트 검출 시스템(200)을 도시하지만, 임팩트 검출 시스템(200)에 의한 검출의 일부 유형들은 보다 많거나 보다 적은 입력들을 사용할 수 있다.
[0055] 일부 구성들에서, 관절 역학(134JD)에 부가하여, 임팩트 검출 시스템(200)은 로봇(100)의 오도메트리(192)를 수신한다. 오도메트리는 임팩트 검출 시스템(200)이 세계 기준 프레임(예를 들어, 환경(10)에 대한 로봇(100))의 운동학 및 상대 기준 프레임(relative reference frame)(예를 들어, 로봇(100) 자체에 대한 로봇(100)의 본체(110) 또는 다리들(120))의 운동학 모두를 고려함으로써 로봇(100)의 구조물의 역학에 대한 추정치들을 결정할 수 있게 한다. 예를 들어, 로봇(100)의 발(124)의 속도는 세계 기준 프레임에서의 본체(110)의 속도(예를 들어, 오도메트리 시스템(190)에 의해 결정됨)와 본체(110)에 대한 발(124)의 속도(예를 들어, 센서 시스템(130)에 의해 감지됨)를 합한 것과 동일하다.
[0056] 추가적으로 또는 대안적으로, 임팩트 검출 시스템(200)은 (예를 들어, 관절 역학(134JD) 및/또는 오도메트리(192)에 부가하여) 인식 시스템(180)으로부터 맵(182)을 수신한다. 일부 예들에서, 임팩트 검출 시스템(200)은 인식 시스템(180)의 실패들을 고려하여 트립 상태들 또는 트랙션 표면 접촉을 이해한다. 그러나 일부 구현예들에서, 인식 시스템(180)의 맵들(182)은 임팩트 검출 시스템(200)이 트립의 유형을 분류할 수 있게 한다. 예를 들어, 맵(182)이 지면(12) 부근에 있는 발(124)을 인식하지 못한 경우보다, 맵(182)이 지면을 발(124)에 가까운 것으로 인식할 때 발(124)이 지면에 착지했을 가능성이 더 높다.
[0057] 도 2a를 참조하면, 임팩트 검출 시스템(200)은 검출기(210)를 포함한다. 검출기(210)는 로봇(100)의 하나 이상의 다리들(120)(예를 들어, 발들)에 대한 예상치 못한 힘(들)(F)(또는 토크들(T))을 식별하도록 구성된다. 임팩트 검출 시스템(200)이 예상치 못한 힘(F)(또는 토크(T))을 식별하는 경우, 임팩트 검출 시스템(200)은 예상치 못한 힘(F)이 임팩트(202)에 대응하는지 여부를 결정한다. 이동 동안에, 스윙 다리(120SW)는 전형적으로 최소량의 토크(T)를 생성한다. 이러한 최소량의 토크(T)는 일반적으로 역동 역학(inverse dynamics)에 의해 예측 가능하다. 다시 말해서, 역동 역학 및 중력에 기초하여, 스윙 다리(120SW)에 작용하는 예상 토크(T)의 양이 있다. 이러한 예상 토크(T)의 양은 보행 모션(즉, 역동 역학으로부터의 토크(TID))을 달성하도록 다리(120)를 가속화하기 위해 예상되는 토크(T)와 조합하여 중력에 의해 기여되는 토크(즉, 중력 토크(Tg))와 동일하다. 스윙 다리(120SW)가 받는 토크(T)의 대부분이 알려져 있기 때문에, 검출기(210)는 예상치 못한 토크(T)(보상 토크(Tcomp)로도 지칭됨)를 결정하도록 구성된다. 예를 들어, 하기의 수학식 (1)은 검출기(210)가 보상 토크(Tcomp)를 결정하는 데 사용하는 수학식을 나타낸다.
Tcomp = Tmeasured - Tg - TID (1)
여기서, Tmeasured는 관절 센서(들)(132)로부터 측정된 토크이다. 다시 말해서, 검출기(210)는 센서 시스템(130)으로부터 (예를 들어, 로봇(100)의 관절들(J)에 있는 센서들(132)로부터의) 센서 데이터(134)에 기초하여 스윙 다리(120SW)에 작용하는 측정된 토크(Tmeasured)의 양을 수신 및/또는 결정하도록 구성된다. 측정된 토크(Tmeasured)의 양과 예상 토크들(T)(즉, 중력 토크(Tg) 및 역동 역학으로부터의 토크(TID))에 의해, 검출기(210)는 보상 토크(Tcomp)를 결정한다. 보상 토크(Tcomp)에 기초하여, 검출기(210)는 스윙 다리(120SW)가 임팩트(202)를 받을 때를 식별하도록 구성된다.
[0058] 일부 구현들에서, 검출기(210)는 보상 토크(Tcomp)가 임팩트 토크 임계치(Tth)를 충족하는지 여부를 결정함으로써 스윙 다리(120SW)에 대한 토크(T)가 스윙 다리(120SW)에 대한 임팩트(202)에 대응하는지 여부를 결정한다(예를 들어, 검출기(210)는 보상 토크(Tcomp)가 임팩트 토크 임계치(Tth)로서 설정된 값을 초과한다고 결정함). 여기서, 임팩트 토크 임계치(TTH)는 임팩트 검출 시스템(200)이 임팩트 검출 동안에 예상하는 노이즈(noise)의 양을 나타내도록 구성된다. 다시 말해서, 검출기(210)는 검출기(210)가 일반적으로 센서 노이즈에 기초하여 임팩트(202)를 잘못 검출하지 않는 것을 보장하기 위해 임팩트 토크 임계치(TTH)를 갖도록 구성될 수 있다. 보상 토크(Tcomp)가 임팩트 토크 임계치(Tth)를 충족하는 경우, 검출기(210)는 임팩트(202)(또는 잠재적인 임팩트(202))가 스윙 다리(120SW)에 일어났음을 전달한다. 반대로, 보상 토크(Tcomp)가 임팩트 토크 임계치(Tth)를 충족하지 못하는 경우, 검출기(210)는 스윙 다리(120SW)에 대한 토크(T)를 계속 모니터링한다.
[0059] 일부 예들에서, 검출기(210)는 스윙 다리(120SW)의 각 관절(J)에 대한 토크(T)를 모니터링한다. 예를 들어, 검출기(210)는 무릎 관절(JK)에서의 토크(T), 고관절의 외전-내전 성분(JHx), 및 고관절의 굴곡-신전 성분(JHy)을 모니터링한다. 일부 구현예들에서, 각각의 관절(J)에 대해, 검출기(210)는 잠재적인 임팩트에 대응하는 증거(evidence)(212)를 생성한다. 여기서, 도 2a에 도시된 바와 같이, 증거(212)는 임팩트 토크 임계치(TTH)보다 큰 보상 토크(TCOMP)를 나타내는 곡선 아래의 영역을 지칭한다. 예를 들어, 검출기(210)는 보상 토크(TCOMP)를 나타내는 곡선 아래지만 임팩트 토크 임계치(TTH) 위의 적분으로서 증거(212)를 생성한다. 도 2a에 도시된 바와 같이, 증거(212)를 결정하기 위해, 검출기(210)는 보상 토크(TCOMP)의 절대 값을 적분한다.
[0060] 검출기(210)가 증거(212)를 생성하는 경우, 보상 토크(TCOMP)의 값이 임팩트(202)가 일어나지 않았음을 나타낼 때 검출기(210)는 증거(212)를 제거하도록 추가로 구성될 수 있다. 일부 예들에서, 보상 토크(TCOMP)를 나타내는 곡선은 임팩트 토크 임계치(TTH)를 초과하지만, 임팩트 토크 임계치(TTH) 아래의 값으로 하강할 것이다. 임팩트 토크 임계치(TTH) 아래로의 이러한 하강이 일어나는 경우, 검출기(210)는 임팩트 검출 시스템(200)이 거짓 임팩트를 식별할 가능성을 감소시키도록 증거(212)를 제거한다. 유사하게, 일부 구현예들에서, 보상 토크(TCOMP)의 값은 보상 토크(TCOMP)의 값이 부호들을 (예를 들어, 양으로부터 음으로, 또는 그 반대로) 변경하기 때문에 임팩트(202)가 발생하지 않았음을 나타낸다. 여기서, 검출기(210)는 임팩트 검출 시스템(200)이 (예를 들어, 보상 토크(TCOMP)의 절대 값의 적분에 기초하여) 동일한 부호를 갖는 것으로 임팩트(202)를 식별하도록 구성되기 때문에 부호 변경 이전에 임의의 증거(212)를 소거한다. 따라서, 부호의 변경은 잠재적인 거짓 임팩트를 나타낸다.
[0061] 일부 예들에서, 검출기(210)는 다리(120)의 모든 관절들(J)에 대한 증거(212)의 합이 증거 임계치(212TH)를 충족하는 경우에 임팩트(202)가 스윙 다리(120SW)에 대해 일어난다고 결정한다. 여기서, 증거 임계치(212TH)는 스윙 다리(120SW)가 임팩트(202)를 나타내는 전반적으로 모든 관절들(J)에 걸쳐 경험하는 요구 증거의 양을 지칭한다. 도 2a는 다리(120)의 모든 관절들(J)에 대한 증거(212)의 합이 증거 임계치(212TH)를 충족하는지 여부를 검출기(210)가 결정하는 것을 도시하지만, 검출기(210)의 다른 구성들은 다리(120)의 모든 관절들(J)보다 적은 것들에 대해(예를 들어, 무릎 관절(JK) 및 고관절(JH)의 하나의 성분에 대해, 또는 무릎 관절(JK) 없이 고관절(JH)의 2 개의 성분들에 대해) 이러한 결정을 수행할 수 있다.
[0062] 일부 구성들에서, 증거 임계치(212TH)는 유각기에 따라 달라진다. 예를 들어, 임팩트 검출 시스템(200)은 스윙 다리(120SW)의 착지가 예상되지 않을 때보다 스윙 다리(120SW)의 착지가 예상될 때 더 큰 감도를 갖도록 구성된다. 이에 기초하여, 증거 임계치(212TH)는 유각기의 완료율에 기초하여 스케일링되거나 수정될 수 있다. 여기서, 로봇(100)의 다른 시스템들은 유각기의 완료율을 임팩트 검출기 시스템(200)에 전달할 수 있다. 예를 들어, 제어 시스템(170)은 유각기의 완료율을 임팩트 검출 시스템(200)에 전달하며, 이는 고정 케이던스를 갖는 스윙 다리(120SW)에 대한 보행 사이클을 수행하는 제어기(172)에 기초하여 완료율이 도출될 수 있기 때문이다. 일부 예들에서, 임팩트 검출 시스템(200)은 스윙 다리(120SW)의 현재 위치(예를 들어, 센서 데이터(134)에 의해 결정됨) 및 스윙 다리(120SW)를 작동시키는 제어기(172)에 기초하여 유각기의 완료율을 결정하도록 구성된다.
[0063] 도 2b를 참조하면, 일부 구현들에서, 검출기(210)는 잠재적인 임팩트 또는 임팩트(202)에 대한 추가 분석을 수행하도록 구성된다. 다시 말해서, 요구된 증거(212TH)가 임팩트(202)를 나타내지만, 검출된 임팩트(202)가 실제 임팩트인지 여부를 확인하기 위해 검출된 임팩트(202)의 실제 상황들이 분석될 수 있는 상황들이 있을 수 있다. 도 2b와 같은 일부 예들에서, 로봇(100)의 다리(120)의 구조물은 다리(120)의 모션 범위를 제한하는 엔드 스톱(end stop)(126)을 포함한다. 예를 들어, 모션 범위는 다리(120)의 구조물에 대한 손상을 방지하기 위해 또는 다리(120)를 관절연결하는 하나 이상의 모터들의 제한들에 기초하여 엔드 스톱(126)에 의해 제한된다. 엔드 스톱(126)이 다리(120)의 모션 범위를 제한하는 경우, 다리(120)의 관절 센서들(132)은 엔드 스톱(126)에 의해 가해지는 힘(F)에 의해 유발되는 갑작스러운 측정된 토크를 경험할 수 있다. 엔드 스톱(126)으로부터의 이러한 힘(F)이 토크(T)에 대한 정확한 부호를 생성하더라도, 검출기(210)는 스윙 다리(120SW)가 엔드 스톱(126) 근처에 있음을 검출기(210)가 식별한 후에 일어나는 임팩트(202)를 무시하도록 구성된다.
[0064] 도 2c 내지 도 2e를 참조하면, 검출기(210)는 잠재적인 임팩트(202)를 유발하는 토크(T)가 항상 다리(120)의 모션(예를 들어, 스윙 다리(120SW)의 발(124)의 모션)에 반대되는 것을 보장하도록 구성될 수 있다. 다시 말해서, 임팩트 검출 시스템(200)은 상태가 다리(120)의 관련 관절(J)의 속도를 높이는(예를 들어, 다리(120) 자체의 속도를 높이는) 측정된 토크를 야기하는 경우에 상태를 임팩트(202)로 분류하지 않는다. 도 2c 내지 도 2e는 임팩트(202)에 대응하는 토크(T)가 다리(120)의 모션(예를 들어, 다리(120)의 발(124)의 모션으로서 도시됨)에 반대되는지 여부를 검출기(210)가 결정하는 상태들을 도시한다. 각각의 예에서, 발(124)은 DT로 지정된 이동 방향으로 이동하고 있다. 도 2c를 참조하면, 발(124)은 좌측으로 이동하고 있으며, 그에 따라 검출기(210)는 무릎 관절(JK)에서의 제2 토크(T, T2)가 아닌 무릎 관절(JK)에서의 제1 토크(T, T1)만을 고려하며, 이는 제2 토크(T2)가 발(124)의 모션에 기여하기 때문이다. 도 2d에서, 발(124)에 대한 이동 방향(DT)은 하향이다. 어느 하나의 방향에서의 토크(T)가 이러한 하향 모션과 반대되는 것을 포함할 수 있기 때문에, 검출기(210)는 잠재적인 토크 기여도가 불분명한 경우에 어느 하나의 방향으로 작용하는 토크(T)(예를 들어, 제1 토크(T1) 또는 제2 토크(T2))를 고려하도록 구성된다. 도 2e에서, 발(124)에 대한 이동 방향(DT)은 주로 하향이지만, 우측으로 이동하는 방향 성분을 갖는다. 여기서, 검출기(210)는 토크(T)가 임팩트(202)에 대응하는 것(또는 그 반대)을 보장하기 위해 검출기(210)가 발(124)의 방향 성분(예를 들어, 제2 토크(T2))과 반대되는 방향으로 보다 큰 토크(T)를 요구하도록 각 방향으로의 토크(T)에 가중치를 가할 수 있다.
[0065] 일부 예들에서, 검출기(210)는 발(124)의 속도를 식별한 후에, 잠재적인 임팩트 토크(T)가 발(124)의 속도를 증가시키는지 또는 감소시키는지 여부를 결정한다. 잠재적인 임팩트 토크(T)가 발(124)의 속도 증가에 기여하는 경우, 검출기(210)는 이러한 임팩트(202)(또는 잠재적인 임팩트)를 무시한다. 반면에, 잠재적인 임팩트 토크(T)가 발(124)의 속도 감소에 기여하는 경우, 검출기(210)는 이러한 임팩트(202)가 (예를 들어, 검출기(210)의 다른 기준들에 따라) 실제 임팩트로서 검출되게 할 수 있다.
[0066] 도 2a 및 도 2f를 참조하면, 검출기(210)가 임팩트(202)를 검출하는 경우, 검출기(210)는 해당 임팩트(202)를 임팩트 검출 시스템(200)의 분류기(220)에 전달하도록 구성된다. 분류기(220)는 임팩트(202)의 상태를 결정하도록 구성된다. 다시 말해서, 어떤 유형의 임팩트(202)가 로봇(100)의 다리(120)에 일어났는지 또는 일어나고 있는지, 그리고 임팩트(202)의 유형에 따라, 응답(204)이 생성된다. 일부 예들에서, 분류기(220)는 응답(204)을 로봇(100)의 다른 시스템들(예를 들어, 제어 시스템(170))에 전달한다. 제어 시스템(170)이 응답(204)을 수신하는 경우, 제어 시스템(170)의 제어기(172)는 임팩트(202)를 극복하기에(예를 들어, 로봇(100)을 안정화하기에) 적절한 이동을 생성할 수 있다. 일부 예들에서, 분류기(220)는 분류기(220)가 다른 유형들의 임팩트들(202) 이전의 특정 유형들의 임팩트들(202)(예를 들어, 트립 상태 이전의 착지 접촉)을 분류하려고 시도하도록 계층 구조로 구성된다.
[0067] 일부 예들에서, 분류기(220)는 임팩트(202)를 분류하기 위해 임팩트(202)를 받는 다리(120)의 원위 단부(124)(즉, 발(124))의 특성을 이용한다. 보다 구체적으로, 분류기(220)는 세계에서의 발(124)의 포지션(예를 들어, 관절 역학(134JD)과 오도메트리 정보(192)의 일부 조합으로부터 도출됨), 세계에서의 발(124)의 속도(예를 들어, 관절 역학(134JD)과 오도메트리 정보(192)의 일부 조합으로부터 도출됨), 및 세계 프레임에서의 발(124)에 대한 힘들을 사용할 수 있다. 여기서, 세계 프레임에서의 발(124)에 대한 힘들은 두 가지 상이한 방식들로 도출될 수 있다. 제1 접근법에서, 분류기(220)는 야코비안 변환(Jacobian transformation)에 기초하여 관절 역학(134JD)의 관절 토크들(T)로부터 힘들을 도출함으로써 세계 프레임에서의 힘들을 결정할 수 있다. 제2 접근법에서, 분류기(220)는 역동 역학을 사용하여 세계 프레임에서의 발(124)에 대한 힘을 생성한다. 일부 예들에서, 분류기(220)는 제1 접근법 및 제2 접근법 모두에 기초하여 발(124)에 대한 힘들을 결정하지만, 어느 접근법이든, 분류를 수행하기 위해 0에 보다 근접한 세계 프레임에서의 발(124)에 대한 힘을 생성하는 접근법을 사용한다. 일부 구현예들에서, 임팩트의 유형(202)을 분류할 때, 분류기(220)는 발(124)의 역학에 중요성을 연관시킨다. 예를 들어, 분류 목적들에서, 발(124)에 대한 힘이 가장 중요한 특성이고, 발(124)의 속도가 그 다음 중요한 특성이며, 이어서 가장 덜 중요한 것이 발(124)의 포지션이다.
[0068] 도 2f를 참조하면, 일부 예들에서, 분류기(220)는 먼저 임팩트(202)가 스윙 다리(120SW)의 착지에 대응하는지 여부를 결정한다. 임팩트(202)를 착지로 분류하기 위해, 분류기(220)는 일반적으로 다리(120)의 원위 단부(124)가 상당한 수직력들(예를 들어, 지면(12)으로부터의 수직력을 나타냄)을 받는지 여부, 및/또는 제어 시스템(170)이 원위 단부(124)에 하향으로 이동하도록 명령하고 있는 경우에도 원위 단부(124)의 속도가 하향으로 더 이상 이동하지 않는지 여부를 결정한다. 여기서, 분류기(220)는 수직력의 상당한 크기(예를 들어, 로봇(100)을 불안정화시킬 위험이 있음)를 나타내는 수직력 임계치를 갖도록 구성될 수 있다. 다시 말해서, 분류기(220)가 원위 단부(124)에 대한 수직력이 수직력 임계치를 충족한다고(예를 들어, 수직력 임계치로서 설정된 값을 초과함) 결정하는 경우, 분류기(220)는 스윙 다리(120SW)에 대한 임팩트(202)를 착지로 분류한다. 일부 구현예들에서, 분류기(220)는 특정 상황들에 기초하여 수직력 임계치를 수정한다. 예를 들어, 분류기(220)는 로봇(100)이 (예를 들어, 제어 시스템(170)을 통해) 트립에 응답하는 경우에(예를 들어, 임팩트 검출 시스템(200)이 임팩트(202)에 대한 응답(204)을 생성함) 수직력 임계치를 수정한다. 다른 예들에서, 분류기(220)는 유각기(예를 들어, 유각기의 완료율)에 기초하여 수직력 임계치를 수정한다. 예시하기 위해, 분류기(220)가 스윙 다리(120SW)가 유각기의 초기(예를 들어, 리프트-오프 직후)라고 인식하는 경우, 분류기(220)는 수직력 임계치를 수정할 수 있다. 추가적으로 또는 대안적으로, 분류기(220)가 임팩트(202)를 표준 트립으로 식별하지만, 로봇(100)이 표준 트립에 대한 응답(204)으로서 발(124)을 들어올릴 수 없는 경우, 분류기(220)는 대신에 임팩트(202)를 착지로 분류한다.
[0069] 일부 구성들에서, 스윙 다리(120SW)가 유각기에 대한 완료의 거의 마지막인 경우, 분류기(220)는 임의의 새로운 임팩트(202)를 착지로 분류한다. 예를 들어, 유각기의 완료율이 95% 이상의 완료인 경우, 분류기(220)는 임팩트(202)를 착지로 분류한다. 여기서, 이러한 상태는 갑작스러운 비검출 착지에 의한 불안정화, 또는 착지의 늦은 검출로 인해 생길 수 있는 다른 문제들의 위험으로부터 로봇(100)을 보호한다.
[0070] 일부 예들에서, 분류기(220)는 스윙 다리(120SW)가 유각기의 말기에 있고 스윙 다리(120SW)에 대한 계획된 궤적이 지면(12)을 향해 하향으로 이동하는 경우에 임팩트(202)를 착지로 분류한다. 예를 들어, 유각기의 완료율이 약 65% 이상의 완료이고 스윙 다리(120SW)에 대한 계획된 궤적이 지면(12)을 향해 하향으로 이동하는 경우, 분류기(220)는 임팩트(202)를 착지로 분류한다.
[0071] 스윙 다리(120SW)가 유각기의 말기에 있고 스윙 다리(120SW)에 대한 계획된 궤적이 지면(12)을 향해 하향으로 이동하는 이러한 예들에서, 분류기(220)가 임팩트(202)를 착지로 분류하기 위해 사용하는 추가 기준이지만 대안적인 기준들이 있을 수 있다. 제1 추가 기준은 발(124)에 대한 힘이 상당히 큰 것(예를 들어, 수직력 임계치 또는 그 일부 버전을 충족함)일 수 있다. 제2 추가 기준은 발(124)이 받는 임펄스(impulse)가 상당히 큰 것일 수 있다. 예를 들어, 수직력 임계치와 매우 유사하게, 분류기(220)는 착지를 나타내는, 발(124)이 받는 시간 경과에 따른 힘의 양을 나타내는 임펄스 임계치를 갖도록 구성된다(예를 들어, 발(124)에 대한 임펄스가 임팩트 검출 시스템(200)에 구성된 임펄스 임계치를 초과함). 제3 추가 기준은 발(124)의 측정된 속도가 (예를 들어, 제어 시스템(170)에 의해) 의도된 대로 (지면(12)을 향한 z-방향으로) 하향으로가 아닌 것일 수 있다. 예를 들어, 발(124)의 포지션 변화는 발(124)의 임계 속도보다 크고(예를 들어, -0.5 m/s보다 큼), 그에 따라 제어 시스템(170)이 발(124)이 지면(12)을 향한 z-방향으로 하향으로 이동하게 하도록 의도했지만, 발(124)은 실제로 지면(12)을 향해 감소하는 속도로 이동하고 있다.
[0072] 도 2f를 추가로 참조하면, 임팩트(202)가 스윙 다리(120SW)의 착지에 대응하지 않는 경우, 분류기(220)는 임팩트(202)가 특별한 유형의 트립 상태(222, 222SP)에 의해 유발되었는지 여부를 식별하도록 구성된다. 특별한 트립 상태들(222SP)의 일부 예들은 하기를 포함한다: 다리(120)의 허벅지(122U)가 본체(110) 상에 있는 경우; 발(124)이 리프트오프 스커핑(liftoff scuffing)을 경험하는 경우; 스윙 다리(120SW)가 반대측 다리(120CL)와 교차하는 경우(도 2g 및 도 2h); 스윙 다리(120SW)가 반대측 다리(120CL)와 부딪치는 경우(도 2i); 로봇(100)의 무릎이 로봇(100) 뒤의 지형 상에 있는 경우(도 2j); 및 다리(120)의 무릎이 로봇(100) 아래의 지형 상에 있는 경우(도 2k). 일부 구현예들에서, 분류기(220)는 로봇(100)의 관절 역학(134JD) 및/또는 오도메트리 정보(192)에 기초하여 특별한 트립 상태(222SP)를 식별한다. 분류기(220)가 특별한 유형의 트립 상태(222SP)를 식별하는 경우, 트립의 유형에 따라, 분류기(220)는 트립을 극복하고 그리고/또는 트립의 영향들을 감소시키는 응답(204)을 생성할 수 있다. 분류기(220)가 임팩트(202)가 특별한 유형의 트립 상태(222SP)에 의해 유발되지 않았다고 결정하는 경우, 분류기(220)는 표준 트립 상태(222, 222STD)(예를 들어, 도 2l에 도시됨)에 의해 유발되는 것으로 임팩트(202)를 분류한다. 표준 트립 상태(222STD)의 경우, 분류기(220)는 임팩트(202)를 받는 발(124)을 들어올리는(즉, 발(124)의 높이를 z-방향으로 증가시키는) 응답(204)을 생성한다. 도 2l은 로봇(100)에 대한 표준 트립 상태(222STD)를 도시한다.
[0073] 일부 구성들에서, 분류기(220)가 임팩트(202)가 스윙 다리(120SW)의 착지에 의해 유발되지 않았고 스윙 다리(120SW)가 유각기의 초기(예를 들어, 유각기의 10% 미만 완료)에 있다고 결정하는 경우, 분류기(220)는 임팩트(202)를 리프트오프 스커핑으로 분류한다. 일부 예들에서, 분류기(220)는 스윙 다리(120SW)가 유각기의 초기에 있음을 나타내는 유각기 임계치(예를 들어, 유각기 임계치 미만)를 유각기의 완료율이 충족한다고 결정한다. 여기서, 리프트오프 스커핑은 스윙 다리(120SW)가 지면(12)을 리프트오프할 때 스윙 다리(120SW)가 지면과 접촉하는 경우(예를 들어, 로봇(100)이 이륙(takeoff)할 때 발(124)을 찧는 경우)를 지칭한다. 이러한 특별한 트립 상태(222SP)에서, 스윙 다리(120SW)는 지면(12)을 계속 리프트오프하고, 그에 따라 임팩트(202)를 유발한 지면(12)을 제거할 것이다. 따라서, 분류기(220)는 스윙 다리(120SW)가 임팩트(202)의 결과로서 어떠한 저항도 위험하지 않기 때문에 이러한 리프트오프 스커핑에 기초하여 응답(204)을 생성하지 않는다.
[0074] 일부 구성들에서, 분류기(220)는 로봇(100)의 본체(110) 상의 허벅지(즉, 다리(120)의 상부 부재(122L))의 포지션이 검출된 임팩트(202)를 유발했다고 결정한다. 여기서, 이러한 특별한 트립 상태(222SP)는 관절 역학(134JD)이 고관절의 외전-내전 성분(JHx)이 사전결정된 한계를 초과함을 나타내는 경우에 발생한다. 일반적으로 말하면, 고관절의 각 성분(JHx,z)은 사전결정된 한계를 갖도록 구성될 수 있다. 예를 들어, 제어 시스템(170) 또는 로봇(100)의 다른 시스템은 로봇(100)의 치수들 및/또는 로봇(100)의 페이로드(payload)에 기초하여 사전결정된 한계를 설정할 수 있다. 일부 예들에서, 고관절의 외전-내전 성분(JHx)은 고관절의 굴곡-신전 성분(JHy)의 함수인 사전결정된 한계를 갖는다. 다시 말해서, 외전/내전이 고관절의 외전-내전 성분(JHx)에 대한 사전설정된 한계를 초과하는 경우, 다리(120)의 상부 부재(122U)는 로봇(100)의 본체(110)와 충돌할 위험이 있다. 리프트오프 스커핑의 특별한 트립 상태(222SP)와 매우 유사하게, 분류기(220)는 이러한 유형의 임팩트(202)에 기초하여 응답(204)을 생성하지 않으며, 스윙 다리(120SW)는 보행의 유각기를 계속 수행한다.
[0075] 도 2g 및 도 2h를 참조하면, 일부 예들에서, 분류기(220)는 스윙 다리(120SW)(예를 들어, 제1 다리(120a)로서 도시됨)가 반대측 다리(120CL)(예를 들어, 제2 다리(120b, 120ST)로서 도시됨)와 교차하여 임팩트(202)를 유발했다고 결정한다. 여기서, 반대측 다리(120CL)는 제1 다리(120a)가 제2 다리(120b)로부터 시상면(즉, Y-Z 평면)과 반대측에 있는 2 개의 다리들(120a, 120b) 사이의 관계를 지칭한다. 예를 들어, 4족 보행 로봇(도시된 바와 같음)의 경우, 스탠스 다리(120ST)는 일반적으로 이동 동안에 로봇(100)에 대한 균형을 유지하기 위해 스윙 다리(120SW)에 대한 반대측 다리(120CL)(및 그 반대)이다. 일부 예들에서, 분류기(220)는 로봇(100)의 운동학에 기초하여 스윙 다리(120SW)가 반대측 다리(120CL) 근처에 있는지 여부를 결정함으로써 이러한 유형의 특별한 트립 상태(222SP)를 결정한다. 이러한 예들에서, 스윙 다리(120SW)가 반대측 다리(120CL) 근처에 있는지 여부를 결정하는 것은 반대측 다리(120CL)에 대한 스윙 다리(120SW)의 제1 최근접 지점과 스윙 다리(120SW)에 대한 반대측 다리(120CL)의 제2 최근접 지점 사이의 벡터 거리(vector distance)를 결정하는 것을 포함할 수 있다. 여기서, 벡터 거리가 스윙 다리(120SW)가 반대측 다리(120CL)와 교차했음을 나타내는 경우, 분류기(220)는 추가적으로 각 다리(120SW, 120CL)의 발들(124a, 124b)이 교차되는지 여부, 및/또는 각 다리(120SW, 120CL)의 무릎 관절들(JK, JKa, JKb)이 교차되는지 여부를 결정할 수 있다. 일부 구성들에서, 분류기(220)는 이러한 상태들 중 하나 이상이 참임(예를 들어, 하나가 참이거나, 둘이 참이거나, 또는 셋 모두가 참임)을 결정하도록 구성된다. 다시 말해서, 분류기(220)는, (i) 벡터 거리가 다리들(120SW, 120CL)이 교차됨을 나타내는지 여부, (ii) 무릎 관절들(JK, JKa, JKb)의 포지션이 다리들(120SW, 120CL)이 교차됨을 나타내는지 여부, 또는 (iii) 발들(124a, 124b)의 포지션이 다리들(120SW, 120CL)이 교차됨을 나타내는지 여부를 결정한다. 반대측 다리(120CL)와 교차하는 스윙 다리(120SW)가 임팩트(202)를 야기하는 경우, 분류기(220)는 다리들(120SW, 120CL)과의 교차를 해제하는 응답(204)을 생성할 수 있다. 예를 들어, 분류기(220)는 스윙 다리(120SW)의 무릎 관절(JK)을 스윙 다리(120SW)의 고관절(JH)의 z-방향으로 수직축을 향해 이동시킨다.
[0076] 도 2i를 참조하면, 일부 구현들에서, 분류기(220)는 스윙 다리(120SW)가 반대측 다리(120CL) 근처에 있지만 (예를 들어, 로봇(100)의 운동학에 기초하여) 반대측 다리(120CL) 위로 교차되지 않는다고 결정한다. 여기서, 분류기(220)는 스윙 다리(120SW)가 반대측 다리(120CL)와 접촉하여 임팩트(202)를 유발했지만 임팩트(202) 동안, 이전 또는 직후에 반대측 다리(120CL) 위로 교차하지 않았다고 결정할 수 있다. 일부 예들에서, 분류기(220)는, (i) 스윙 다리(120SW)가 유각기의 너무 말기에 있지 않다는 것(예를 들어, 65% 미만 완료), 및 (ii) 검출기(210)가 임팩트(202)를 결정하는 데 사용된 증거(212)가 주로 고관절의 외전-내전 성분(JHx)에서 비롯되었다는 것을 식별함으로써 이러한 결정을 형성한다. 다시 말해서, 고관절의 측방향 회전(JHx)의 토크는 (예를 들어, 각각 개별적으로 또는 함께 조합하여) 무릎 관절(JK) 및 고관절의 굴곡-신전 성분(JHy)의 토크들보다 임팩트(202)를 식별하는 증거(212)에 대한 더 큰 기여자(contributor)였다. 스윙 다리(120SW)가 반대측 다리(120CL)와 충돌하여 임팩트(202)를 유발하는 경우, 분류기(220)는 (예를 들어, 하나 이상의 다리들(120SW, 120CL)을 관상면에서 서로 멀리 이동시킴으로써) 다리들(120SW, 120CL)을 분리하는 응답(204)을 생성할 수 있다. 다시 말해서, 스윙 다리(120SW)는 스탠스 다리(120ST)로부터 분리하기 위해 (예를 들어, x-축(AX)을 따라) 관상면에서의 원래 계획된 모션을 무시하면서, 시상면 내에서의 원래 계획된 모션을 계속할 수 있다.
[0077] 도 2k 및 도 2l을 참조하면, 일부 구성들에서, 분류기(220)는 다리(120)(예를 들어, 스윙 다리(120SW))와 로봇(100)의 본체(110) 뒤(예를 들어, 도 2j에 도시됨) 또는 아래(예를 들어, 도 2k에 도시됨)의 지형 사이의 충돌이 임팩트(202)를 유발한다고 결정한다. 스윙 다리(120SW)의 무릎 관절(JK)과 로봇(100) 뒤의 지형 사이의 접촉에 기초하여 임팩트(202)가 일어나는 특별한 트립 상태(222SP)의 경우에, 분류기(220)는, (i) 스윙 다리(120SW)의 무릎 관절(JK)이 본체(110)로부터 멀리 후방으로(예를 들어, y-방향으로) 이동하고 있고, (ii) 증거(212)가 스윙 다리(120SW)에 대한 고관절의 굴곡-신전 성분(JHy)이 관절 토크의 가장 큰 기여자임을 나타낸다고 결정한다. 일부 예들에서, 스윙 다리(120SW)에 대한 고관절의 굴곡-신전 성분(JHy)은 (예를 들어, 개별적으로 또는 조합하여) 무릎 관절(JK) 및 고관절의 외전-내전 성분(JHx) 모두의 관절 토크(T) 기여도보다 크다. 일부 구현예들에서, 분류기(220)는 스윙 다리(120SW)의 운동학을 사용하여 스윙 다리(120SW)의 무릎 관절(JK)이 본체(110)로부터 멀리 후방으로 이동하고 있다고 결정한다. 분류기(220)가 임팩트(202)를 다리(120)와 로봇(100) 뒤의 지형 사이의 충돌로 분류하는 경우, 분류기(220)는 무릎 관절(JK)을 전방으로(예를 들어, y-방향을 따라 로봇(100)의 CM을 향해) 이동시키는 응답(204)을 생성한다.
[0078] 도 2l을 참조하면, 여기서, 분류기(220)는 다리(120)와 로봇(100)의 본체(110) 아래의 지형 사이의 충돌이 임팩트(202)를 유발했다고 결정한다. 이러한 특별한 트립 상태(222SP)를 결정하기 위해, 분류기(220)는 무릎 관절(JK)이 전방으로(예를 들어, 스윙 다리(120SW)의 고관절(JH)에 대해 y-방향으로 전방으로) 이동하고 있고, 임팩트(202)를 생성하는 증거(212)가 무릎 관절(JK) 이외의 관절들(J)에서 발생했다고 결정한다. 추가적으로 또는 대안적으로, 분류기(220)는 인식 시스템(180)의 하나 이상의 맵들(182)을 사용하여, 스윙 다리(120SW)의 무릎 관절(JK)이 스윙 다리(120SW)의 발(124)보다 지면(12)에 더 근접하여 있다고 결정할 수 있다. 맵(182)은 또한 스윙 다리(120SW)의 무릎 관절(JK)이 지면(12) 근처에서 최근에 인식되었음을 나타낼 수 있다. 이러한 특별한 트립 상태(222SP)에서, 보행의 유각기를 계속함으로써 스윙 다리(120SW)의 전방 모션이 물체를 지나서 무릎 관절(JK)을 운반하여 임팩트(202)를 유발할 것이기 때문에, 분류기(220)는 응답(204)을 생성하지 않도록 구성된다.
[0079] 일부 예들에서, 임팩트 검출 시스템(200)은 인식 시스템(180)이 오프(off)되거나 잘 기능하지 않는 경우에(예를 들어, 센서(들)(132)가 문제가 있는 경우) 유리할 수 있다. 이것이 일어나는 경우, 임팩트 검출 시스템(200)은 환경(10) 내에서의 검출을 위한 기본 시스템으로서 사용될 수 있다. 반대로, 인식 시스템(180)이 적절하게 작동하는 경우, 임팩트 검출 시스템(200)은, 특히 인식 시스템(180)이 실수를 하거나 일시적인 문제에 직면하는 경우들에서, 검출을 위한 강인한 보조 시스템을 제공할 수 있다.
[0080] 도 3은 발자국 접촉 검출 방법(300)을 수행하기 위한 동작들의 배열이다. 동작(302)에서, 방법(300)은 로봇(100)의 스윙 다리(120SW)에 대한 관절 역학(134JD)을 수신한다. 여기서, 스윙 다리(120SW)는 로봇(100)의 보행의 유각기를 수행한다. 동작(304)에서, 방법(300)은 세계 기준 프레임에 대한 로봇(100)의 특성들(예를 들어, 포즈)의 추정치를 규정하는 오도메트리(192)를 수신한다. 동작(306)에서, 방법(300)은 스윙 다리(120SW)에 대한 토크(T)가 스윙 다리(120SW)에 대한 임팩트(202)에 대응하는지 여부를 결정한다. 스윙 다리(120SW)에 대한 토크(T)가 임팩트(202)에 대응하는 경우, 동작(308, 308a)에서, 방법(300)은 로봇(100)의 오도메트리(192) 및 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 임팩트(202)가 로봇(100) 주위의 지면(12)에 대한 스윙 다리(120SW)의 착지를 나타내는지 여부를 결정한다. 동작(308, 308b)에서, 임팩트(202)가 스윙 다리(120SW)의 착지를 나타내지 않는 경우, 방법(300)은 로봇(100)의 오도메트리(192) 및 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 임팩트(202)의 원인을 분류한다.
[0081] 도 4는 본 명세서에 설명된 시스템들(예를 들어, 센서 시스템(130), 컴퓨팅 시스템(140), 원격 시스템(160), 제어 시스템(170), 인식 시스템(180), 오도메트리 시스템(190) 및/또는 임팩트 검출 시스템(200)) 및 방법들(예를 들어, 방법(300))을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(400)의 개략도이다. 컴퓨팅 디바이스(400)는 랩탑들, 데스크탑들, 워크스테이션들, 개인용 정보 단말기들, 서버들, 블레이드 서버들(blade servers), 메인프레임들(mainframes) 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 본원에 나타낸 구성요소들, 이들의 연결들 및 관계들, 및 이들의 기능들은 단지 예시적인 것이며, 본 명세서에서 설명 및/또는 청구된 발명들의 구현예들을 제한하려는 것은 아니다.
[0082] 컴퓨팅 디바이스(400)는 프로세서(410)(예를 들어, 데이터 처리 하드웨어), 메모리(420)(예를 들어, 메모리 하드웨어), 저장 디바이스(430), 메모리(420) 및 고속 확장 포트들(450)에 연결되는 고속 인터페이스/제어기(440), 저속 버스(470) 및 저장 디바이스(430)에 연결되는 저속 인터페이스/제어기(460)를 포함한다. 구성요소들(410, 420, 430, 440, 450 및 460) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 장착되거나 적절하게 다른 방식들로 장착될 수 있다. 프로세서(410)는, 고속 인터페이스(440)에 연결된 디스플레이(480)와 같은 외부 입/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 표시하기 위해, 메모리(420) 또는 저장 디바이스(430)에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(400) 내에서 실행하기 위한 명령들을 처리할 수 있다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 메모리 유형들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(400)이 연결될 수 있으며, 각각의 디바이스는 (예를 들어, 서버 뱅크(server bank), 블레이드 서버들의 그룹, 또는 다중 프로세서 시스템으로서) 필요한 동작들의 일부들을 제공한다.
[0083] 메모리(420)는 컴퓨팅 디바이스(400) 내에 비일시적으로 정보를 저장한다. 메모리(420)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(420)는 컴퓨팅 디바이스(400)에 의한 사용을 위해 임시적 또는 영구적으로 프로그램들(예를 들어, 명령들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(ROM)/프로그램 가능 판독 전용 메모리(PROM)/소거 가능한 프로그램 가능 판독 전용 메모리(EPROM)/전자적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어에 사용됨)를 포함하지만 이에 제한되지 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 상변화 메모리(PCM)뿐만 아니라, 디스크들 또는 테이프들을 포함하지만 이에 제한되지 않는다.
[0084] 저장 디바이스(430)는 컴퓨팅 디바이스(400)를 위한 대용량 스토리지를 제공할 수 있다. 일부 구현예들에서, 저장 디바이스(430)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현예들에서, 저장 디바이스(430)는, 스토리지 영역 네트워크(storage area network) 내의 디바이스들 또는 다른 구성들을 포함하는, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이일 수 있다. 추가 구현예들에서, 컴퓨터 프로그램 제품은 정보 캐리어(information carrier)에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(420), 저장 디바이스(430), 또는 프로세서(410) 상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
[0085] 고속 제어기(440)는 컴퓨팅 디바이스(400)에 대한 대역폭 집약적 동작들(bandwidth-intensive operations)을 관리하는 한편, 저속 제어기(460)는 보다 낮은 대역폭 집약적 동작들을 관리한다. 임무들(duties)의 그러한 할당은 단지 예시적인 것일 뿐이다. 일부 구현예들에서, 고속 제어기(440)는 메모리(420)에, (예를 들어, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(480)에, 그리고 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(450)에 연결된다. 일부 구현예들에서, 저속 제어기(460)는 저장 디바이스(430) 및 저속 확장 포트(490)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(490)는 하나 이상의 입/출력 디바이스들, 예컨대 키보드, 포인팅 디바이스, 스캐너, 또는, 예를 들어 네트워크 어댑터를 통해, 스위치 또는 라우터(router)와 같은 네트워킹 디바이스에 결합될 수 있다.
[0086] 컴퓨팅 디바이스(400)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(400)는 표준 서버(400a)로서 또는 그러한 서버들(400a)의 그룹에 여러 번 구현되거나, 랩톱 컴퓨터(400b)로서, 또는 랙 서버 시스템(rack server system)(400c)의 일부로서 구현될 수 있다.
[0087] 본원에 설명된 시스템들 및 기술들의 다양한 구현예들은 디지털 전자 및/또는 광 회로, 집적 회로, 특수 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현예들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들로부터 데이터 및 명령들을 송신하도록 결합된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현예를 포함할 수 있다.
[0088] 이러한 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그램 가능한 프로세서에 대한 기계 명령들을 포함하고, 고급 절차 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에 사용된 바와 같이, 용어 "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"는 기계 판독 가능 신호로서 기계 명령들을 수신하는 기계 판독 가능 매체를 포함하는 프로그램 가능 프로세서에 기계 명령들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, 프로그램 가능 논리 디바이스들(PLDs))를 지칭한다. 용어 "기계 판독 가능 신호"는 기계 명령들 및/또는 데이터를 프로그램 가능한 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다.
[0089] 본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령들을 수행하기 위한 프로세서, 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어 자기 디스크들, 광자기 디스크들 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나, 또는 둘 모두를 수행하도록 작동적으로 결합된다. 그러나, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체들은, 예로서, 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
[0090] 사용자와의 상호 작용을 제공하기 위해, 본 개시의 하나 이상의 양태들은 디스플레이 디바이스, 예를 들어, CRT(cathode ray tube), LCD(liquid crystal display) 모니터, 또는 정보를 사용자에게 표시하기 위한 터치 스크린, 및 선택적으로, 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼(trackball)을 갖는 컴퓨터에서 구현될 수 있다. 사용자와 상호 작용을 또한 제공하기 위해 다른 종류들의 디바이스들이 사용될 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각적 피드백, 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성(speech) 또는 촉각 입력을 포함하여, 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자가 사용하는 디바이스로 문서들을 전송하고 디바이스로부터 문서를 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 사용자와 상호 작용할 수 있다.
[0091] 다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 개시의 사상 및 범위로부터 벗어남이 없이 다양한 변형들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현예들은 하기의 청구범위의 범위 내에 있다.

Claims (32)

  1. 로봇(100)의 데이터 처리 하드웨어(data processing hardware)(142)에서, 상기 로봇(100)의 스윙 다리(swing leg)(120SW)에 대한 관절 역학(joint dynamics)(134JD)을 수신하는 단계 ― 상기 스윙 다리(120SW)는 상기 로봇(100)의 보행의 유각기(swing phase)를 수행함 ―;
    상기 데이터 처리 하드웨어(142)에서, 세계 기준 프레임(world reference frame)에 대한 상기 로봇(100)의 포즈(pose)의 추정치를 규정하는 오도메트리(odometry)(192)를 수신하는 단계;
    상기 데이터 처리 하드웨어(142)에 의해, 상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)에 대한 임팩트(impact)(202)에 대응하는지 여부를 결정하는 단계; 및
    상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 임팩트(202)에 대응하는 경우,
    상기 데이터 처리 하드웨어(142)에 의해, 상기 임팩트(202)가 상기 로봇(100)의 오도메트리(192) 및 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 상기 로봇(100) 주위의 지면(12)에 대한 상기 스윙 다리(120SW)의 착지를 나타내는지 여부를 결정하는 단계; 및
    상기 임팩트(202)가 상기 스윙 다리(120SW)의 착지를 나타내지 않는 경우, 상기 데이터 처리 하드웨어(142)에 의해, 상기 로봇(100)의 오도메트리(192) 및 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 상기 임팩트(202)의 원인을 분류하는 단계를 포함하는,
    방법(300).
  2. 제1 항에 있어서,
    상기 데이터 처리 하드웨어(142)에 의해, 상기 임팩트(202)의 분류된 원인에 기초하여 상기 로봇(100)의 스윙 다리(120SW)에 대한 응답(204)을 생성하는 단계를 더 포함하는,
    방법(300).
  3. 제1 항 또는 제2 항에 있어서,
    상기 임팩트(202)가 상기 스윙 다리(120SW)의 착지를 나타내는 경우, 상기 데이터 처리 하드웨어(142)에 의해, 상기 스윙 다리(120SW)의 분류를 스탠스 다리(stance leg)(120ST)로 변경하는 단계를 더 포함하는,
    방법(300).
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인이 트립(trip)으로 분류되는 경우에 각각의 임팩트(202)에 대한 응답(204)으로서 상기 스윙 다리(120SW)를 들어올리는 단계를 더 포함하는,
    방법(300).
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인을 분류하는 단계는,
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 유각기의 완료율(percent completion)이 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 유각기 임계치를 충족한다고 결정하는 단계 ― 상기 유각기 임계치는 상기 스윙 다리(120SW)가 상기 유각기의 초기에 있음을 나타냄 ―; 및
    상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 리프트오프 스커핑(liftoff scuffing)으로 분류하는 단계를 포함하며,
    상기 스윙 다리(120SW)는 상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 상기 리프트오프 스커핑으로 분류하는 것에 응답하는 상기 보행의 유각기를 계속 수행하는,
    방법(300).
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인을 분류하는 단계는,
    상기 스윙 다리(120SW)의 고관절이 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 사전결정된 모션 제한을 초과한다고 결정하는 단계 ― 상기 관절 역학(134JD)은 상기 지면(12)에 대한 상기 고관절의 외전-내전(abduction-adduction) 성분 및 상기 지면(12)에 대한 상기 고관절의 굴곡-신전(flexion-extension) 성분을 포함하고, 상기 외전-내전 성분은 상기 굴곡-신전 성분의 함수로서 상기 사전결정된 모션 제한을 포함함 ―; 및
    상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 상기 스윙 다리(120SW)가 상기 로봇(100)의 본체(110)와 접촉하는 것으로 분류하는 단계를 포함하며,
    상기 스윙 다리(120SW)는 상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 상기 스윙 다리(120SW)가 상기 로봇(100)의 본체(110)와 접촉하는 것으로 분류하는 것에 응답하는 상기 보행의 유각기를 계속 수행하는,
    방법(300).
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인을 분류하는 단계는,
    반대측 다리(120CL)에 대한 상기 스윙 다리(120SW)의 제1 최근접 지점과 상기 스윙 다리(120SW)에 대한 상기 반대측 다리(120CL)의 제2 최근접 지점 사이의 벡터 거리(vector distance)가 상기 스윙 다리(120SW)가 상기 반대측 다리(120CL)와 교차했음을 나타낸다고 결정하는 단계;
    상기 스윙 다리(120SW)의 원위 단부(124)가 상기 반대측 다리(120CL)의 각각의 원위 단부(124)와 교차했다고 결정하는 단계;
    상기 스윙 다리(120SW)의 제1 무릎 관절이 상기 반대측 다리(120CL)의 제2 무릎 관절과 교차했다고 결정하는 단계;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 각각의 임팩트(202)를 유발하는 상태를 상기 스윙 다리(120SW)가 상기 로봇(100)의 반대측 다리(120CL)와 교차한 것으로 분류하는 단계; 및
    상기 로봇(100)의 반대측 다리(120CL)와의 교차를 해제하도록 상기 스윙 다리(120SW)를 이동시키는 단계를 포함하는,
    방법(300).
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    각각의 임팩트(202)에 대응하는 상기 로봇(100)의 다리(120)에 대한 상태를 분류하는 단계는,
    상기 스윙 다리(120SW)가 상기 로봇(100)의 반대측 다리(120CL) 근처에 위치결정된다고 결정하는 단계;
    상기 각각의 임팩트(202)에 대응하는 토크가 상기 스윙 다리(120SW)의 고관절의 측방향 성분에서 주로 비롯된 관절 역학(134JD)으로부터 기인한다고 결정하는 단계;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 각각의 임팩트(202)를 유발하는 상태를 교차되지 않은 반대측 다리(120CL)의 임팩트(202)로 분류하는 단계; 및
    상기 스윙 다리(120SW)를 상기 로봇(100)의 시상면으로부터 멀리 이동시키는 단계를 더 포함하는,
    방법(300).
  9. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    각각의 임팩트(202)에 대응하는 상기 로봇(100)의 다리(120)에 대한 상태를 분류하는 단계는,
    상기 스윙 다리(120SW)의 무릎이 상기 유각기 동안에 후방으로 이동하고 있다고 결정하는 단계;
    상기 각각의 임팩트(202)에 대응하는 예상치 못한 토크를 야기하는 상기 관절 역학(134JD)이 상기 스윙 다리(120SW)의 무릎 토크 및 상기 스윙 다리(120SW)의 고관절에 대한 내전-외전 토크 모두보다 큰 상기 스윙 다리(120SW)의 고관절에 대한 굴곡-신전 토크를 포함한다고 결정하는 단계;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 각각의 임팩트(202)를 유발하는 상태를 상기 스윙 다리(120SW)의 무릎이 상기 로봇(100)의 본체(110) 뒤의 지형과 접촉하는 것으로 분류하는 단계; 및
    상기 스윙 다리(120SW)의 무릎을 상기 로봇(100)의 본체(110)에 대해 전방으로 시프팅(shifting)시키는 단계를 더 포함하는,
    방법(300).
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    각각의 임팩트(202)에 대응하는 상기 로봇(100)의 다리(120)에 대한 상태를 분류하는 단계는,
    상기 스윙 다리(120SW)의 무릎이 인식된 지면(12)에 인접하여 있다고 결정하는 단계 ― 상기 무릎은 상기 로봇(100)의 본체(110)에 대해 전방으로 이동하고, 상기 인식된 지면(12)은 상기 로봇(100)에 대한 센서(132) 데이터에 의해 규정됨 ―;
    상기 스윙 다리(120SW)의 무릎이 상기 스윙 다리(120SW)의 원위 단부(124)보다 상기 인식된 지면(12)에 더 근접하여 있다고 결정하는 단계;
    상기 각각의 임팩트(202)에 대응하는 예상치 못한 토크가 상기 스윙 다리(120SW)의 고관절에서 일어난다고 결정하는 단계;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 각각의 임팩트(202)를 유발하는 상태를 상기 스윙 다리(120SW)의 무릎이 상기 로봇(100)의 본체(110) 아래의 지형과 접촉하는 것으로 분류하는 단계; 및
    상기 스윙 다리(120SW)의 무릎이 상기 로봇(100)의 본체(110) 아래의 지형과 접촉하는 것에 대한 응답(204) 없이 상기 스윙 다리(120SW)의 이동을 계속하는 단계를 더 포함하는,
    방법(300).
  11. 제1 항 내지 제10 항 중 어느 한 항에 있어서,
    상기 로봇(100)의 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)에 대한 임팩트(202)에 대응하는지 여부를 결정하는 단계는, 상기 예상치 못한 토크가 임팩트(202) 검출 임계치를 충족하는지 여부를 결정하는 단계를 포함하며, 상기 임팩트(202) 검출 임계치는 알려진 임팩트(202)에 대응하는 토크의 크기를 포함하는,
    방법(300).
  12. 제1 항 내지 제11 항 중 어느 한 항에 있어서,
    상기 데이터 처리 하드웨어(142)에 의해, 상기 로봇(100)에 대한 관절 토크 센서들(132)에 의해 측정된 측정 토크; 중력에 의해 유발되는 각각의 토크를 나타내는 제1 예상 토크; 및 상기 로봇(100)의 스윙 다리(120SW)를 가속하기 위한 대응하는 토크를 나타내는 제2 예상 토크 사이의 차이에 기초하여 상기 스윙 다리(120SW)에 대한 예상치 못한 토크를 결정하는 단계를 더 포함하는,
    방법(300).
  13. 제1 항 내지 제12 항 중 어느 한 항에 있어서,
    상기 로봇(100)의 스윙 다리(120SW)의 관절이 상기 관절의 모션 범위에 대한 한계에 인접하는 경우, 상기 데이터 처리 하드웨어(142)에 의해, 상기 예상치 못한 토크가 상기 유각기 동안의 상기 스윙 다리(120SW)에 대한 임팩트(202)를 나타내지 못한다고 결정하는 단계를 더 포함하는,
    방법(300).
  14. 제1 항 내지 제13 항 중 어느 한 항에 있어서,
    상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)에 대한 임팩트(202)에 대응하는지 여부를 결정하는 단계는, 상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)의 관절의 모션과 반대되는 임팩트(202) 토크에 대응한다고 결정하는 단계를 포함하는,
    방법(300).
  15. 제1 항 내지 제14 항 중 어느 한 항에 있어서,
    상기 스윙 다리(120SW)의 관절 역학(134JD)은 상기 스윙 다리(120SW)의 무릎 관절의 관절 역학(134JD) 및 상기 스윙 다리(120SW)의 고관절의 관절 역학(134JD)에 대응하는,
    방법(300).
  16. 제15 항에 있어서,
    상기 고관절의 관절 역학(134JD)은 상기 스윙 다리(120SW)를 외전 또는 내전하는 외전-내전 토크 및 상기 스윙 다리(120SW)를 굴곡 또는 신전하는 굴곡-신전 토크를 포함하는,
    방법(300).
  17. 본체(110);
    상기 본체(110)에 결합되고 환경(10)을 횡단하도록 구성된 2 개 이상의 다리들(120) ― 상기 2 개 이상의 다리들(120)은 스윙 다리(120SW)를 포함함 ―;
    상기 2 개 이상의 다리들(120)과 통신하는 제어 시스템(170)을 포함하며, 상기 제어 시스템(170)은 데이터 처리 하드웨어(142) 및 상기 데이터 처리 하드웨어(142)와 통신하는 메모리 하드웨어(144)를 포함하고, 상기 메모리 하드웨어(144)는, 상기 데이터 처리 하드웨어(142) 상에서 실행될 때, 상기 데이터 처리 하드웨어(142)가 동작들을 수행하게 하는 명령들을 저장하고, 상기 동작들은,
    상기 로봇(100)의 스윙 다리(120SW)에 대한 관절 역학(134JD)을 수신하는 동작 ― 상기 스윙 다리(120SW)는 상기 로봇(100)의 보행의 유각기를 수행함 ―;
    세계 기준 프레임에 대한 상기 로봇(100)의 포즈(pose)의 추정치를 규정하는 오도메트리(192)를 수신하는 동작;
    상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)에 대한 임팩트(impact)(202)에 대응하는지 여부를 결정하는 동작; 및
    상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 임팩트(202)에 대응하는 경우,
    상기 임팩트(202)가 상기 로봇(100)의 오도메트리(192) 및 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 상기 로봇(100) 주위의 지면(12)에 대한 상기 스윙 다리(120SW)의 착지를 나타내는지 여부를 결정하는 동작; 및
    상기 임팩트(202)가 상기 스윙 다리(120SW)의 착지를 나타내지 않는 경우, 상기 로봇(100)의 오도메트리(192) 및 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 상기 임팩트(202)의 원인을 분류하는 동작을 포함하는,
    로봇(100).
  18. 제17 항에 있어서,
    상기 동작들은 상기 임팩트(202)의 분류된 원인에 기초하여 상기 로봇(100)의 스윙 다리(120SW)에 대한 응답(204)을 생성하는 동작을 더 포함하는,
    로봇(100).
  19. 제17 항 또는 제18 항에 있어서,
    상기 동작들은, 상기 임팩트(202)가 상기 스윙 다리(120SW)의 착지를 나타내는 경우, 상기 데이터 처리 하드웨어(142)에 의해, 상기 스윙 다리(120SW)의 분류를 스탠스 다리(120ST)로 변경하는 동작을 더 포함하는,
    로봇(100).
  20. 제17 항 내지 제19 항 중 어느 한 항에 있어서,
    상기 동작들은 상기 임팩트(202)의 원인이 트립으로 분류되는 경우에 각각의 임팩트(202)에 대한 응답(204)으로서 상기 스윙 다리(120SW)를 들어올리는 동작을 더 포함하는,
    로봇(100).
  21. 제17 항 내지 제20 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인을 분류하는 동작은,
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 유각기의 완료율이 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 유각기 임계치를 충족한다고 결정하는 동작 ― 상기 유각기 임계치는 상기 스윙 다리(120SW)가 상기 유각기의 초기에 있음을 나타냄 ―; 및
    상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 리프트오프 스커핑으로 분류하는 동작을 포함하며,
    상기 스윙 다리(120SW)는 상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 상기 리프트오프 스커핑으로 분류하는 것에 응답하는 상기 보행의 유각기를 계속 수행하는,
    로봇(100).
  22. 제17 항 내지 제21 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인을 분류하는 동작은,
    상기 스윙 다리(120SW)의 고관절이 상기 스윙 다리(120SW)의 관절 역학(134JD)에 기초하여 사전결정된 모션 제한을 초과한다고 결정하는 동작 ― 상기 관절 역학(134JD)은 상기 지면(12)에 대한 상기 고관절의 외전-내전 성분 및 상기 지면(12)에 대한 상기 고관절의 굴곡-신전 성분을 포함하고, 상기 외전-내전 성분은 상기 굴곡-신전 성분의 함수로서 상기 사전결정된 모션 제한을 포함함 ―; 및
    상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 상기 스윙 다리(120SW)가 상기 로봇(100)의 본체(110)와 접촉하는 것으로 분류하는 동작을 포함하며,
    상기 스윙 다리(120SW)는 상기 스윙 다리(120SW)에 대한 상기 임팩트(202)의 원인을 상기 스윙 다리(120SW)가 상기 로봇(100)의 본체(110)와 접촉하는 것으로 분류하는 것에 응답하는 상기 보행의 유각기를 계속 수행하는,
    로봇(100).
  23. 제17 항 내지 제22 항 중 어느 한 항에 있어서,
    상기 임팩트(202)의 원인을 분류하는 동작은,
    반대측 다리(120CL)에 대한 상기 스윙 다리(120SW)의 제1 최근접 지점과 상기 스윙 다리(120SW)에 대한 상기 반대측 다리(120CL)의 제2 최근접 지점 사이의 벡터 거리가 상기 스윙 다리(120SW)가 상기 반대측 다리(120CL)와 교차했음을 나타낸다고 결정하는 동작;
    상기 스윙 다리(120SW)의 원위 단부(124)가 상기 반대측 다리(120CL)의 각각의 원위 단부(124)와 교차했다고 결정하는 동작;
    상기 스윙 다리(120SW)의 제1 무릎 관절이 상기 반대측 다리(120CL)의 제2 무릎 관절과 교차했다고 결정하는 동작;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 각각의 임팩트(202)를 유발하는 상태를 상기 스윙 다리(120SW)가 상기 로봇(100)의 반대측 다리(120CL)와 교차한 것으로 분류하는 동작; 및
    상기 로봇(100)의 반대측 다리(120CL)와의 교차를 해제하도록 상기 스윙 다리(120SW)를 이동시키는 동작을 포함하는,
    로봇(100).
  24. 제17 항 내지 제23 항 중 어느 한 항에 있어서,
    각각의 임팩트(202)에 대응하는 상기 로봇(100)의 다리(120)에 대한 상태를 분류하는 동작은,
    상기 스윙 다리(120SW)가 상기 로봇(100)의 반대측 다리(120CL) 근처에 위치결정된다고 결정하는 동작;
    상기 각각의 임팩트(202)에 대응하는 토크가 상기 스윙 다리(120SW)의 고관절의 측방향 성분에서 주로 비롯된 관절 역학(134JD)으로부터 기인한다고 결정하는 동작;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 각각의 임팩트(202)를 유발하는 상태를 교차되지 않은 반대측 다리(120CL)의 임팩트(202)로 분류하는 동작; 및
    상기 스윙 다리(120SW)를 상기 로봇(100)의 시상면으로부터 멀리 이동시키는 동작을 더 포함하는,
    로봇(100).
  25. 제17 항 내지 제24 항 중 어느 한 항에 있어서,
    각각의 임팩트(202)에 대응하는 상기 로봇(100)의 다리(120)에 대한 상태를 분류하는 동작은,
    상기 스윙 다리(120SW)의 무릎이 상기 유각기 동안에 후방으로 이동하고 있다고 결정하는 동작;
    상기 각각의 임팩트(202)에 대응하는 예상치 못한 토크를 야기하는 상기 관절 역학(134JD)이 상기 스윙 다리(120SW)의 무릎 토크 및 상기 스윙 다리(120SW)의 고관절에 대한 내전-외전 토크 모두보다 큰 상기 스윙 다리(120SW)의 고관절에 대한 굴곡-신전 토크를 포함한다고 결정하는 동작;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 각각의 임팩트(202)를 유발하는 상태를 상기 스윙 다리(120SW)의 무릎이 상기 로봇(100)의 본체(110) 뒤의 지형과 접촉하는 것으로 분류하는 동작; 및
    상기 스윙 다리(120SW)의 무릎을 상기 로봇(100)의 본체(110)에 대해 전방으로 시프팅시키는 동작을 더 포함하는,
    로봇(100).
  26. 제17 항 내지 제25 항 중 어느 한 항에 있어서,
    각각의 임팩트(202)에 대응하는 상기 로봇(100)의 다리(120)에 대한 상태를 분류하는 동작은,
    상기 스윙 다리(120SW)의 무릎이 인식된 지면(12)에 인접하여 있다고 결정하는 동작 ― 상기 무릎은 상기 로봇(100)의 본체(110)에 대해 전방으로 이동하고, 상기 인식된 지면(12)은 상기 로봇(100)에 대한 센서(132) 데이터에 의해 규정됨 ―;
    상기 스윙 다리(120SW)의 무릎이 상기 스윙 다리(120SW)의 원위 단부(124)보다 상기 인식된 지면(12)에 더 근접하여 있다고 결정하는 동작;
    상기 각각의 임팩트(202)에 대응하는 예상치 못한 토크가 상기 스윙 다리(120SW)의 고관절에서 일어난다고 결정하는 동작;
    상기 로봇(100)의 스윙 다리(120SW)에 대한 상기 각각의 임팩트(202)를 유발하는 상태를 상기 스윙 다리(120SW)의 무릎이 상기 로봇(100)의 본체(110) 아래의 지형과 접촉하는 것으로 분류하는 동작; 및
    상기 스윙 다리(120SW)의 무릎이 상기 로봇(100)의 본체(110) 아래의 지형과 접촉하는 것에 대한 응답(204) 없이 상기 스윙 다리(120SW)의 이동을 계속하는 동작을 더 포함하는,
    로봇(100).
  27. 제17 항 내지 제26 항 중 어느 한 항에 있어서,
    상기 로봇(100)의 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)에 대한 임팩트(202)에 대응하는지 여부를 결정하는 동작은, 상기 예상치 못한 토크가 임팩트(202) 검출 임계치를 충족하는지 여부를 결정하는 동작을 포함하며, 상기 임팩트(202) 검출 임계치는 알려진 임팩트(202)에 대응하는 토크의 크기를 포함하는,
    로봇(100).
  28. 제17 항 내지 제27 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 로봇(100)에 대한 관절 토크 센서들(132)에 의해 측정된 측정 토크; 중력에 의해 유발되는 각각의 토크를 나타내는 제1 예상 토크; 및 상기 로봇(100)의 스윙 다리(120SW)를 가속하기 위한 대응하는 토크를 나타내는 제2 예상 토크 사이의 차이에 기초하여, 상기 스윙 다리(120SW)에 대한 예상치 못한 토크를 결정하는 동작을 더 포함하는,
    로봇(100).
  29. 제17 항 내지 제28 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 로봇(100)의 스윙 다리(120SW)의 관절이 상기 관절의 모션 범위에 대한 한계에 인접하는 경우, 상기 예상치 못한 토크가 상기 유각기 동안의 상기 스윙 다리(120SW)에 대한 임팩트(202)를 나타내지 못한다고 결정하는 동작을 더 포함하는,
    로봇(100).
  30. 제17 항 내지 제29 항 중 어느 한 항에 있어서,
    상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)에 대한 임팩트(202)에 대응하는지 여부를 결정하는 동작은, 상기 스윙 다리(120SW)에 대한 예상치 못한 토크가 상기 스윙 다리(120SW)의 관절의 모션과 반대되는 임팩트(202) 토크에 대응한다고 결정하는 동작을 포함하는,
    로봇(100).
  31. 제17 항 내지 제30 항 중 어느 한 항에 있어서,
    상기 스윙 다리(120SW)의 관절 역학(134JD)은 상기 스윙 다리(120SW)의 무릎 관절의 관절 역학(134JD) 및 상기 스윙 다리(120SW)의 고관절의 관절 역학(134JD)에 대응하는,
    로봇(100).
  32. 제31 항에 있어서,
    상기 고관절의 관절 역학(134JD)은 상기 스윙 다리(120SW)를 외전 또는 내전하는 외전-내전 토크 및 상기 스윙 다리(120SW)를 굴곡 또는 신전하는 굴곡-신전 토크를 포함하는,
    로봇(100).
KR1020247000137A 2019-08-06 2019-09-17 발자국 접촉 검출 KR20240008401A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962883636P 2019-08-06 2019-08-06
US62/883,636 2019-08-06
US16/573,579 2019-09-17
PCT/US2019/051535 WO2021025710A1 (en) 2019-08-06 2019-09-17 Footstep contact detection
US16/573,579 US11383381B2 (en) 2019-08-06 2019-09-17 Footstep contact detection
KR1020227003697A KR102622838B1 (ko) 2019-08-06 2019-09-17 발자국 접촉 검출

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020227003697A Division KR102622838B1 (ko) 2019-08-06 2019-09-17 발자국 접촉 검출

Publications (1)

Publication Number Publication Date
KR20240008401A true KR20240008401A (ko) 2024-01-18

Family

ID=74499126

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247000137A KR20240008401A (ko) 2019-08-06 2019-09-17 발자국 접촉 검출
KR1020227003697A KR102622838B1 (ko) 2019-08-06 2019-09-17 발자국 접촉 검출

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227003697A KR102622838B1 (ko) 2019-08-06 2019-09-17 발자국 접촉 검출

Country Status (6)

Country Link
US (2) US11383381B2 (ko)
EP (1) EP4011175A1 (ko)
JP (1) JP7381709B2 (ko)
KR (2) KR20240008401A (ko)
CN (1) CN114401887A (ko)
WO (1) WO2021025710A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9259838B1 (en) * 2014-07-24 2016-02-16 Google Inc. Systems and methods for ground plane estimation
US11548151B2 (en) * 2019-04-12 2023-01-10 Boston Dynamics, Inc. Robotically negotiating stairs
CN116991090A (zh) * 2022-07-25 2023-11-03 腾讯科技(深圳)有限公司 机器人的运动起摆方法、装置、机器人、存储介质及产品
WO2024035800A1 (en) * 2022-08-09 2024-02-15 Ghost Robotics Corporation Leg-stub re-swing for legged robot
CN115503850B (zh) * 2022-11-17 2023-03-31 国网智能科技股份有限公司 足式机器人足端触地检测方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04152075A (ja) * 1990-10-17 1992-05-26 Hitachi Ltd 歩行機械
JP2003159674A (ja) * 2001-11-21 2003-06-03 Sony Corp ロボット装置、ロボット装置の外力検出方法及びロボット装置の外力検出プログラム、並びにロボット装置の外力検出のためのキャリブレーション方法及びロボット装置の外力検出のためのキャリブレーションプログラム
JP4130739B2 (ja) 2002-01-28 2008-08-06 本田技研工業株式会社 二足歩行移動体の床反力推定方法
JP4295947B2 (ja) * 2002-02-15 2009-07-15 ソニー株式会社 脚式移動ロボット及びその移動制御方法
DE60336992D1 (de) * 2002-03-18 2011-06-16 Sony Corp Robotereinrichtung mit steuerverfahren
JP4440759B2 (ja) 2004-12-17 2010-03-24 本田技研工業株式会社 2足歩行移動体の床反力推定方法
CN100594459C (zh) * 2008-10-28 2010-03-17 北京理工大学 一种仿人机器人稳定行走的脚着地时间的控制方法及系统
WO2011096965A2 (en) * 2009-11-04 2011-08-11 Vanderbilt University Systems and control methodologies for improving stability in powered lower limb devices
KR101687631B1 (ko) * 2010-01-18 2016-12-20 삼성전자주식회사 로봇의 보행 제어 장치 및 그 제어 방법
KR101766755B1 (ko) * 2010-08-17 2017-08-10 삼성전자주식회사 보행 로봇 및 그 제어방법
CN103318289A (zh) * 2013-07-04 2013-09-25 北京理工大学 一种腿型结构可变的模块化液压驱动四足机器人
US9044859B2 (en) * 2013-10-31 2015-06-02 Disney Enterprises, Inc. Method for gait generation and tracking control for a bipedal walking robot
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
KR101788437B1 (ko) * 2016-01-21 2017-10-19 서강대학교산학협력단 다족 다관절 주행로봇의 제어방법
US10337561B2 (en) * 2016-12-15 2019-07-02 Boston Dynamics, Inc. Transmission with integrated overload protection for a legged robot
CN107128394B (zh) * 2017-05-11 2019-02-19 上海大学 一种仿生四足机器人腿机构
JP7111463B2 (ja) 2017-12-15 2022-08-02 サンコール株式会社 歩行動作補助装置

Also Published As

Publication number Publication date
EP4011175A1 (en) 2022-06-15
WO2021025710A1 (en) 2021-02-11
US20220324104A1 (en) 2022-10-13
CN114401887A (zh) 2022-04-26
US20210039253A1 (en) 2021-02-11
KR102622838B1 (ko) 2024-01-08
JP7381709B2 (ja) 2023-11-15
JP2022543996A (ja) 2022-10-17
US11383381B2 (en) 2022-07-12
KR20220080070A (ko) 2022-06-14

Similar Documents

Publication Publication Date Title
KR102622838B1 (ko) 발자국 접촉 검출
US11851120B2 (en) Control of robotic devices with non-constant body pitch
EP4045390B1 (en) Dynamic planning controller
US20220193894A1 (en) Supervised Autonomous Grasping
US20210323618A1 (en) Identifying Stairs from Footfalls
US20230278214A1 (en) Robot localization using variance sampling
He et al. Bidirectional human–robot bimanual handover of big planar object with vertical posture
WO2022256811A1 (en) Alternate route finding for waypoint-based navigation maps
KR20230137334A (ko) 동적 사이트들에서의 로봇 자율성을 위한 시맨틱 모델들
US20230173671A1 (en) Slip handling and ground friction estimation for robots
US20220390952A1 (en) Detecting negative obstacles
US20220193906A1 (en) User Interface for Supervised Autonomous Grasping
US20220197292A1 (en) Automated Return of Teleoperated Vehicles
CN112506202A (zh) 机器人移动的控制方法、系统、机器人及计算机存储介质
US20220388174A1 (en) Autonomous and teleoperated sensor pointing on a mobile robot

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right