KR20210152055A - 로봇으로 계단들을 오르내리기 - Google Patents

로봇으로 계단들을 오르내리기 Download PDF

Info

Publication number
KR20210152055A
KR20210152055A KR1020217036795A KR20217036795A KR20210152055A KR 20210152055 A KR20210152055 A KR 20210152055A KR 1020217036795 A KR1020217036795 A KR 1020217036795A KR 20217036795 A KR20217036795 A KR 20217036795A KR 20210152055 A KR20210152055 A KR 20210152055A
Authority
KR
South Korea
Prior art keywords
robot
leg
distal end
data processing
impact
Prior art date
Application number
KR1020217036795A
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=67928884&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20210152055(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 보스턴 다이나믹스, 인크. filed Critical 보스턴 다이나믹스, 인크.
Publication of KR20210152055A publication Critical patent/KR20210152055A/ko

Links

Images

Classifications

    • 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
    • B25J9/1666Avoiding collision or forbidden zones
    • 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/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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0891Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for land vehicles
    • G05D2201/0217

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Image Analysis (AREA)

Abstract

계단들(20)을 오르내리기 위한 방법(500)은 계단들을 갖는 환경(10)에서 기동하는 로봇(100)에 대한 이미지 데이터(164)를 수신하는 단계를 포함한다. 여기서, 로봇은 2 개 이상의 다리들(104)을 포함한다. 로봇이 계단들을 횡단하기 전에, 각각의 계단에 대해, 상기 방법은 수신된 이미지 데이터에 기초하여 대응하는 스텝 영역(220)을 결정하는 단계를 더 포함한다. 스텝 영역은 로봇의 대응하는 스윙 다리의 원위 단부(106)에 대한 대응하는 계단 상의 안전한 배치 구역을 식별한다. 또한, 로봇이 계단들을 횡단하기 전에, 상기 방법은 로봇의 중량 분포를 로봇의 전방 부분을 향해 시프팅시키는 단계를 포함한다. 상기 방법은 각각의 계단에 대해, 로봇의 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 단계를 더 포함하며, 목표 스텝 위치는 계단의 대응하는 스텝 영역 내에 있다.

Description

로봇으로 계단들을 오르내리기
[0001] 본 개시내용은 계단들을 오르내리는(negotiating) 로봇들에 관한 것이다.
[0002] 로봇은 일반적으로 작업들의 수행을 위한 프로그래밍된 가변 모션들을 통해 재료, 부품들, 도구들 또는 특수 디바이스들을 이동시키도록 설계된 재프로그램 가능한 다기능 매니퓰레이터(manipulator)로서 정의된다. 로봇들은 물리적으로 고정된 매니퓰레이터들(예를 들어, 산업용 로봇 팔들), 환경 전체에 걸쳐 이동하는 이동 로봇들(예를 들어, 다리들(legs), 휠들(wheels) 또는 트랙션 기반 메커니즘들(traction based mechanisms)을 사용함), 또는 매니퓰레이터와 이동 로봇의 일부 조합일 수 있다. 로봇들은 예를 들어 제조, 수송, 위험한 환경들, 탐사 및 의료를 포함하는 다양한 산업들에서 이용되고 있다. 이와 같이, 다양한 협응식 다리 이동 수단을 필요로 하는 장애물들 또는 피처들(features)을 갖는 환경들을 횡단하는 로봇들의 능력은 그러한 산업들에 추가적인 이점들을 제공한다.
[0003] 본 개시내용의 일 양태는 계단들을 오르내리기 위한 방법을 제공한다. 상기 방법은 데이터 처리 하드웨어에서, 계단들을 갖는 환경에서 기동하는 로봇에 대한 이미지 데이터를 수신하는 단계를 포함한다. 여기서, 로봇은 2 개 이상의 다리들을 포함한다. 로봇이 계단들을 횡단하기 전에, 각각의 계단에 대해, 상기 방법은 데이터 처리 하드웨어에 의해, 수신된 이미지 데이터에 기초하여 대응하는 스텝 영역을 결정하는 단계를 더 포함한다. 스텝 영역은 로봇의 대응하는 스윙 다리의 원위 단부에 대한 대응하는 계단 상의 안전한 배치 구역을 식별한다. 또한, 로봇이 계단들을 횡단하기 전에, 상기 방법은 데이터 처리 하드웨어에 의해, 로봇의 중량 분포를 로봇의 전방 부분을 향해 시프팅시키는 단계를 포함한다. 로봇이 계단들을 횡단할 때, 상기 방법은, 각각의 계단에 대해, 데이터 처리 하드웨어에 의해, 로봇의 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 단계를 추가로 포함하며, 목표 스텝 위치는 계단의 대응하는 스텝 영역 내에 있다.
[0004] 본 개시내용의 구현예들은 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 로봇이 계단들을 횡단하기 전에, 상기 방법은, 데이터 처리 하드웨어에 의해, 각각의 계단에 대한 대응하는 충돌 영역을 식별하는 단계를 더 포함한다. 여기서, 충돌 영역은 로봇이 계단들을 횡단할 때 로봇의 다리들이 회피해야 하는 대응하는 계단의 영역에 대응한다. 이러한 구현예들 중 일부에서, 로봇이 계단들을 횡단할 때, 상기 방법은, 데이터 처리 하드웨어에 의해, 계단들의 표면에 대한 로봇의 질량 중심의 몸체 높이, 및 로봇의 몸체를 따라 규정된 길이 방향 축을 중심으로 한 로봇의 피치를 조정하는 단계를 포함할 수 있으며, 몸체 높이 및 피치의 조정은 각각의 계단에 대해 식별된 대응하는 충돌 영역에 기초한다. 이러한 구현예들 중 다른 구현예들에서, 로봇이 계단들을 횡단할 때, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 각각의 다리에 대한 대응하는 다리 운동학을 식별하는 단계, 및 데이터 처리 하드웨어에 의해, 계단들의 표면에 대한 로봇의 질량 중심의 몸체 높이, 및 로봇의 몸체를 따라 규정된 길이 방향 축을 중심으로 한 로봇의 피치를 조정하는 단계를 포함할 수 있으며, 몸체 높이 및 피치의 조정은 각각의 계단에 대해 식별된 대응하는 충돌 영역 및 로봇의 각각의 다리에 대한 대응하는 다리 운동학에 기초한다.
[0005] 일부 예들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 대응하는 스윙 다리의 원위 단부가 목표 스텝 위치에 있는 대응하는 계단과 접촉하는 것을 검출하는 단계, 및 검출에 기초하여, 데이터 처리 하드웨어에 의해, 로봇의 대응하는 스윙 다리를 스탠스 다리로 분류하는 단계를 포함한다.
[0006] 일부 구성들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 후행 다리의 무릎 관절이 로봇의 몸체 뒤의 물체와 접촉하는 것을 검출하는 단계를 포함한다. 검출에 기초하여, 상기 방법은, 데이터 처리 하드웨어에 의해, 후행 다리의 무릎 관절을 로봇의 몸체 아래로 전방으로 이동시키는 단계를 포함한다.
[0007] 일부 구현예들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 대응하는 스윙 다리와 로봇의 반대측 스탠스 다리 사이의 임팩트를 검출하는 단계를 포함한다. 이들 구현예들에서, 검출된 임팩트에 기초하여, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 대응하는 스윙 다리의 원위 단부를 로봇의 반대측 스탠스 다리로부터 멀리 조정된 스텝 위치로 시프팅시키는 단계를 더 포함하며, 조정된 스텝 위치는 계단의 대응하는 스텝 영역 내에 있고 목표 스텝 위치에 대해 시프팅된다.
[0008] 일부 구성들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 상기 방법은, 데이터 처리 하드웨어에 의해, 로봇의 불안정성을 야기하는 로봇의 대응하는 스윙 다리의 트립 상태를 검출하는 단계를 포함한다. 이들 구성들에서, 검출된 트립 상태에 기초하여, 상기 방법은, 데이터 처리 하드웨어에 의해, 대응하는 스윙 다리의 원위 단부를 상승시키는 단계를 더 포함한다.
[0009] 선택적으로, 로봇이 계단들을 횡단하기 전에, 상기 방법은 또한, 데이터 처리 하드웨어에 의해, 고정 케이던스를 갖는 계단들을 횡단하기 위한 이동 제어기를 선택하는 단계를 포함하며, 고정 케이던스는 각각의 계단에 대해 결정된 대응하는 스텝 영역에 기초한다. 각각의 계단에 대해 결정된 대응하는 스텝 영역은 대응하는 계단의 디딤면 부분(tread portion)과 연관될 수 있다. 일부 예들에서, 로봇의 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시킬 때, 상기 방법은, 데이터 처리 하드웨어에 의해, 스탠스 다리의 원위 단부를 후단 계단에 위치결정하는 단계를 포함할 수 있으며, 후단 계단은, 로봇이 계단들을 올라갈 때 대응하는 스윙 다리에 대한 목표 스텝 위치와 연관된 계단 아래, 또는 로봇이 계단들을 내려갈 때 대응하는 스윙 다리에 대한 목표 스텝 위치와 연관된 계단 위 중 하나에 위치된다. 여기서, 로봇의 대응하는 스윙 다리의 원위 단부에 의한 이동 및 로봇의 후행 다리의 원위 단부에 의한 이동은 고정 케이던스로 일어날 수 있다.
[0010] 본 개시내용의 다른 양태는 계단들을 오르내리기 위한 로봇을 제공한다. 로봇은, 몸체, 몸체에 결합되고 계단들을 갖는 환경을 횡단하도록 구성된 2 개 이상의 다리들, 및 2 개 이상의 다리들과 통신하는 이동 제어기를 포함한다. 이동 제어기는 데이터 처리 하드웨어 및 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 처리 하드웨어 상에서 실행될 때, 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 계단들을 갖는 환경에서 기동하는 로봇에 대한 이미지 데이터를 수신하는 동작을 포함한다. 로봇이 계단들을 횡단하기 전에, 동작들은, 각각의 계단에 대해, 수신된 이미지 데이터에 기초하여 대응하는 스텝 영역을 결정하는 동작을 더 포함한다. 스텝 영역은 로봇의 대응하는 스윙 다리의 원위 단부에 대한 대응하는 계단 상의 안전한 배치 구역을 식별한다. 또한, 로봇이 계단들을 횡단하기 전에, 동작들은 로봇의 중량 분포를 로봇의 전방 부분을 향해 시프팅시키는 동작을 포함한다. 로봇이 계단들을 횡단할 때, 동작들은, 각각의 계단에 대해, 로봇의 대응하는 스윙 다리의 원위 단부를 계단의 대응하는 스텝 영역 내에 있는 목표 스텝 위치로 이동시키는 동작을 추가로 포함한다.
[0011] 이러한 양태는 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 동작들은, 로봇이 계단들을 횡단하기 전에, 각각의 계단에 대한 대응하는 충돌 영역을 식별하는 동작을 더 포함한다. 여기서, 충돌 영역은 로봇이 계단들을 횡단할 때 로봇의 다리들이 회피해야 하는 대응하는 계단의 영역에 대응한다. 이들 구현예들에서, 동작들은, 로봇이 계단들을 횡단할 때, 계단들의 표면에 대한 로봇의 질량 중심의 몸체 높이, 및 로봇의 몸체를 따라 규정된 길이 방향 축을 중심으로 한 로봇의 피치를 조정하는 동작을 포함할 수 있으며, 몸체 높이 및 피치의 조정은 각각의 계단에 대해 식별된 대응하는 충돌 영역에 기초한다. 이들 구현예들 중 다른 구현예들에서, 동작들은, 로봇이 계단들을 횡단할 때, 로봇의 각각의 다리에 대한 대응하는 다리 운동학을 식별하는 동작, 및 계단들의 표면에 대한 로봇의 질량 중심의 몸체 높이, 및 로봇의 몸체를 따라 규정된 길이 방향 축을 중심으로 한 로봇의 피치를 조정하는 동작을 포함할 수 있으며, 몸체 높이 및 피치의 조정은 각각의 계단에 대해 식별된 대응하는 충돌 영역 및 로봇의 각각의 다리에 대한 대응하는 다리 운동학에 기초한다.
[0012] 일부 예들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 동작들은, 로봇의 대응하는 스윙 다리의 원위 단부가 목표 스텝 위치에 있는 대응하는 계단과 접촉하는 것을 검출하는 동작, 및 검출에 기초하여, 로봇의 대응하는 스윙 다리를 스탠스 다리로 분류하는 동작을 포함한다.
[0013] 일부 구성들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 동작들은 로봇의 후행 다리의 무릎 관절이 로봇의 몸체 뒤의 물체와 접촉하는 것을 검출하는 동작을 포함한다. 검출에 기초하여, 동작들은 후행 다리의 무릎 관절을 로봇의 몸체 아래로 전방으로 이동시키는 동작을 포함한다.
[0014] 일부 구현예들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 동작들은 로봇의 대응하는 스윙 다리와 로봇의 반대측 스탠스 다리 사이의 임팩트를 검출하는 동작을 포함한다. 이러한 구현예들에서, 검출된 임팩트에 기초하여, 동작들은 로봇의 대응하는 스윙 다리의 원위 단부를 로봇의 반대측 스탠스 다리로부터 멀리 조정된 스텝 위치로 시프팅시키는 동작을 더 포함하며, 조정된 스텝 위치는 계단의 대응하는 스텝 영역 내에 있고 목표 스텝 위치에 대해 시프팅된다.
[0015] 일부 구성들에서, 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시키는 동안에, 동작들은 로봇의 불안정성을 야기하는 로봇의 대응하는 스윙 다리의 트립 상태를 검출하는 동작을 포함한다. 이들 구성들에서, 검출된 트립 상태에 기초하여, 동작들은 대응하는 스윙 다리의 원위 단부를 상승시키는 동작을 더 포함한다.
[0016] 선택적으로, 로봇이 계단들을 횡단하기 전에, 동작들은 또한 고정 케이던스를 갖는 계단들을 횡단하기 위한 이동 제어기를 선택하는 동작을 포함하며, 고정 케이던스는 각각의 계단에 대해 결정된 대응하는 스텝 영역에 기초한다. 각각의 계단에 대해 결정된 대응하는 스텝 영역은 대응하는 계단의 디딤면 부분과 연관될 수 있다. 일부 예들에서, 로봇의 대응하는 스윙 다리의 원위 단부를 목표 스텝 위치로 이동시킬 때, 동작들은 스탠스 다리의 원위 단부를 후단 계단에 위치결정하는 동작을 포함할 수 있으며, 후단 계단은, 로봇이 계단들을 올라갈 때 대응하는 스윙 다리에 대한 목표 스텝 위치와 연관된 계단 아래, 또는 로봇이 계단들을 내려갈 때 대응하는 스윙 다리에 대한 목표 스텝 위치와 연관된 계단 위 중 하나에 위치된다. 여기서, 로봇의 대응하는 스윙 다리의 원위 단부에 의한 이동 및 로봇의 후행 다리의 원위 단부에 의한 이동은 고정 케이던스로 일어날 수 있다.
[0017] 본 개시내용의 하나 이상의 구현예들의 세부사항들은 첨부 도면들 및 하기의 설명에 기재되어 있다. 다른 양태들, 특징들 및 이점들은 이 설명 및 도면들, 그리고 청구범위로부터 명백할 것이다.
[0018] 도 1a는 로봇 환경 내의 예시적인 로봇의 사시도이다.
[0019] 도 1b는 도 1a의 로봇의 시스템들의 예시적인 배열의 개략도이다.
[0020] 도 1c는 도 1a의 로봇 환경 내의 로봇의 예시적인 센서 시스템의 개략도이다.
[0021] 도 2a 및 도 2b는 로봇이 로봇 환경 내에서 지형을 횡단할 때 예시적인 몸체 플래너의 개략도들이다.
[0022] 도 3a 내지 도 3k는 로봇이 로봇 환경에서 계단들을 횡단할 때 도 1a의 로봇의 예들의 사시도들이다.
[0023] 도 4는 도 1a의 로봇이 로봇 환경을 횡단하는 동안의 계단 트랙커의 개략도이다.
[0024] 도 5는 로봇이 로봇 환경을 횡단하기 위한 동작들의 예시적인 배열이다.
[0025] 도 6은 본원에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0026] 다양한 도면들에서 유사한 참조 부호들은 유사한 요소들을 나타낸다.
[0027] 보행 로봇들(legged-robots)이 환경에서 기동할 때 로봇은 정확한 다리 이동 및 발 배치(즉, 원위 단부 배치)를 필요로 하는 지형(예를 들어, 인간이 만든 구조물들)과 마주칠 수 있다. 정확한 다리 이동 및 발 배치를 제공하기 위해, 로봇의 시스템들이 상이한 유형들의 지형을 인식할 때, 로봇의 이동 제어 시스템들은 로봇에 대한 치명적인 문제들을 초래할 수 있는 실수들, 심지어 작은 실수들을 방지하도록 지형을 횡단하는 로봇의 이동을 제한할 수 있다. 예를 들어, 인간들이 계단들을 횡단하는 경우, 이러한 작업에는 소정 정도의 협응(예를 들어, 눈-발 협응)이 필요하다. 협응 없이는, 인간은 계단들을 헛디디거나, 계단들에서 미끄러지거나, 넘어지거나, 떨어질 수 있다. 로봇들은 동일한 불행들과 마주치지만, 자연스러운 협응이 부족하다. 따라서, 로봇들은 정확한 다리 이동들을 협응시키기 위한 시스템들 및 방법들을 필요로 한다.
[0028] 도 1a는 로봇(100)에 대한 환경(10)의 일 예이다. 환경(10)은 일반적으로 횡단 시스템(110)에 따라 로봇(100)이 횡단할 수 있는 계단들(20, 20a 내지 20n) 또는 계단-유사 지형을 포함하는 일부 유형의 지형과 연관된 공간 구역을 지칭한다. 횡단 시스템(110)은 환경(10)에 대해 로봇(100)을 협응 및/또는 이동시키는 역할을 한다. 로봇(100)이 계단들(20) 또는 계단-유사 지형을 횡단하고 환경(10)에 대해 이동할 때, 횡단 시스템(110)은 지형을 분석하고, (예를 들어, 경로 생성기(path generator)(130), 스텝 플래너(step planner)(140), 몸체 플래너(body planner)(150)에 의해) 로봇(100)에 대한 모션 궤적들을 계획하고, 그리고/또는 로봇(100)이 (예를 들어, 제어기(120)에 의해) 다양한 이동들을 수행하도록 명령할 수 있다. 횡단 시스템(110)은 로봇(100)의 다양한 시스템들을 사용하여, 충돌들(C) 및/또는 로봇(100) 또는 로봇의 환경(10)에 대한 손상을 회피하면서 환경(10)을 성공적으로 횡단하려고 시도할 수 있다.
[0029] 계단들(20, 20a 내지 20n)은 일반적으로 수직 거리를 브리징(bridge)하도록 설계된 하나 초과의 계단(20)의 그룹(즉, n 개의 계단들(20)의 그룹)을 지칭한다. 수직 거리를 브리징하기 위해, 계단들(20a 내지 20n)은 전형적으로 피치(pitch)(또는 피치 라인)에 대한 수직 높이의 주어진 상승으로 수평 거리를 진행한다. 각각의 계단(20)은 전통적으로 디딤면(tread)(22) 및 수직면(riser)(24)을 포함한다. 계단(20)의 디딤면(22)은 밟히는 계단(20)의 수평 부분을 지칭하는 한편, 수직면(24)은 각각의 디딤면(22) 사이의 계단(20)의 수직 부분을 지칭한다. 각각의 계단(20)의 디딤면(22)은 계단(20)의 외부 에지로부터 계단들(20) 사이의 수직면(24)까지 측정하는 디딤면 깊이("d")에 걸쳐 있다. 주거용, 상업용 또는 산업용 구조물의 경우, 일부 계단들(20)은 또한 안전 목적들을 위해 건축 법규의 일부로서 계단코(nosing)(26)를 포함한다. 도 1a에 도시된 바와 같이, 계단코(26)는 디딤면(22) 아래의 수직면(24)을 지나서 돌출되는 디딤면(22)의 일부이다. 예를 들어, 계단코(26a)는 디딤면(22a)의 일부이고, 수직면(24a)을 지나서 돌출된다.
[0030] 계단-유사 지형은 보다 일반적으로 일정 거리에 걸쳐 높이가 변하는 지형을 지칭한다. 계단-유사 지형은 고도의 변화(예를 들어, 고도가 상승하는 상향 피치 또는 고도가 하강하는 하향 피치) 측면에서 계단과 유사할 수 있다. 그러나, 계단-유사 지형에서는, 디딤면(22) 및 수직면(24)의 윤곽이 명확하지 않다. 오히려, 계단-유사 지형은, 로봇이 스탠스 사지(stance limb)를 자리잡게 하기에 충분한 트랙션을 갖게 하고 선행 사지를 순차적으로 또는 동시에 사용하여 지형 내의 인접한 수직 장애물(수직면과 유사함)을 지나서 올라가거나 내려갈 수 있게 하는 디딤면-유사 부분들을 갖는 지형을 지칭할 수 있다. 예를 들어, 계단-유사 지형은 돌무더기(rubble), 경사진 암석 스크램블(rock scramble), 손상되거나 열화된 전통적인 계단들 등을 포함한다.
[0031] 로봇(100)은 다리들(104a 내지 104d)과 같은 로코모션-기반 구조체들(locomotion-based structures)을 갖는 몸체(102)를 포함하고, 다리들(104a 내지 104d)은 몸체(102)에 결합되고 로봇(100)이 환경(10)에 대해 이동할 수 있게 한다. 도 1a는 4 개의 다리들(104a 내지 104d)을 갖는 4족 보행 로봇을 도시하지만, 로봇(100)은 환경(10) 내의 지형을 횡단하기 위한 수단을 제공하는 임의의 수의 다리들 또는 로코모션-기반 구조체들(예를 들어, 2 개의 다리들을 갖는 2족 보행 또는 인간형 로봇)을 포함할 수 있다. 지형을 횡단하기 위해, 각각의 다리(104)는 지형의 표면과 접촉하는 원위 단부(106)를 갖는다. 다시 말해서, 다리(104)의 원위 단부(106)는 로봇(100)의 이동 동안에 피봇하거나, 자리잡게 하거나, 일반적으로 트랙션을 제공하기 위해 로봇(100)에 의해 사용되는 다리(104)의 단부이다. 예를 들어, 다리(104)의 원위 단부(106)는 로봇(100)의 발에 대응한다.
[0032] 일부 구현예들에서, 도 1b에 도시된 바와 같이, 횡단 시스템(110)은 적어도 하나의 제어기(120), 경로 생성기(130), 스텝 로케이터(step locator)(140) 및 몸체 플래너(150)를 포함한다. 횡단 시스템(110)은 적어도 하나의 센서 시스템(160) 및 지각 시스템(perception system)(200)과 통신하도록 구성된다. 횡단 시스템(110)은 로봇(100)의 데이터 처리 하드웨어(172) 및/또는 메모리 하드웨어(174)와 같은 하드웨어(170)를 사용하여 동작들 및 다른 기능들을 수행한다. 일부 예들에서, 하드웨어(170)는 로봇(100)의 다양한 시스템이 하드웨어(170)(예를 들어, 횡단 시스템(110), 센서 시스템(160), 지각 시스템(200) 및/또는 임팩트 검출기(impact detector)(300))의 사용을 공유할 수 있도록 로봇(100)의 중심이다. 일부 구성들에서, 로봇(100)의 하나 이상의 시스템들(예를 들어, 횡단 시스템(110), 제어기(120), 센서 시스템(160), 지각 시스템(200) 및/또는 임팩트 검출기(300) 등)은 자체 전용 하드웨어(예를 들어, 로봇(100)의 하드웨어(170)와 통신함)를 갖는다. 제어기(120)는 로봇(100)의 시스템들(예를 들어, 횡단 시스템(110), 지각 시스템(200), 임팩트 검출기(300) 등)로부터의 입력 또는 피드백에 기초하여 환경(10)에 대해 횡단하도록 로봇(100)의 이동을 제어하도록 구성된다. 이것은 로봇(100)의 포즈들 및/또는 거동들 사이의 이동을 포함할 수 있다. 예를 들어, 제어기(120)는 상이한 발자국 패턴들, 다리 패턴들, 몸체 이동 패턴들 또는 비전 시스템 감지 패턴들을 제어한다. 여기서, 제어기(120)는 로봇(100)의 시스템들(예를 들어, 횡단 시스템(110), 지각 시스템(200), 임팩트 검출기(300) 등)로부터 제공되는 이동들을 실행하기 위해 로봇(100)의 데이터 처리 하드웨어(172) 및/또는 메모리 하드웨어(174)와 통신하도록 구성된다.
[0033] 일부 예들에서, 제어기(120)는 복수의 제어기들(120)을 포함하며, 제어기들(120) 각각은 고정 케이던스(fixed cadence)를 갖는다. 고정 케이던스는 다리(104)의 스텝(step) 또는 스윙(swing) 단계에 대한 고정 타이밍을 지칭한다. 예를 들어, 제어기(120)는 로봇(100)이 특정 주파수(예를 들어, 250 밀리초, 350 밀리초 등마다의 스텝)로 다리들(104)을 이동시키도록(예를 들어, 스텝을 내디딤) 명령한다. 각각의 제어기(120)가 고정 케이던스를 갖는 복수의 제어기들(120)의 경우, 로봇(100)은 제어기들(120)을 전환함으로써 가변 타이밍을 경험할 수 있다. 일부 구현예들에서, 로봇(100)이 환경(10)을 횡단할 때, 로봇(100)은 고정 케이던스 제어기들(120)을 연속적으로 전환/선택한다(예를 들어, 3 밀리초마다 제어기(120)를 재선택함).
[0034] 횡단 시스템(110)은 제어기(120)에 대한 스텝 계획에 기초하여 제어기(120)를 선택할 수 있다. 횡단 시스템(110)은 환경(10)에 대해 로봇(100)을 이동시키기 위해 적어도 하나의 조향 지시 및 케이던스(즉, 주어진 제어기에 대해 프로그래밍된 이동 페이스(movement pace))에 기초하여 각각의 제어기(120)에 대한 스텝 계획을 생성할 수 있다. 스텝 계획은 제어기(120)의 케이던스에 기초하여 환경(10) 주위의 지형에 존재하는 충돌 영역(220)이 없는 경우 로봇(100)이 스텝을 내디딜 곳(즉, 다리들(104)의 원위 단부들(106)에 대한 배치 위치)에 대응하는 비제약 발 배치들의 맵(비제약 맵(unconstrained map)으로 지칭됨)을 지칭한다. 스텝 계획이 주어지면, 횡단 시스템(110)은 스텝 계획을 지각 시스템(200)에 의해 생성된 제약 맵(202)과 비교한다. 비교에 기초하여, 횡단 시스템(110)은 스텝 계획이 제약 맵(constrained map)(202) 내에서 식별된 제약조건들의 최소량을 위반하는 제어기(120)(즉, 제약 맵(202)을 달성하기 위해 최소량의 편차를 요구하는 스텝 계획)를 선택한다. 최소한의 편차를 갖는 제어기(120)를 선택함으로써, 횡단 시스템(110)은 로봇(100)이 충돌 영역들(220)(또는 목표 스텝 영역들(220))을 회피하기 위해 최소한의 조정을 필요로 하는 것을 보장할 수 있다.
[0035] 일부 구현예들에서, 횡단 시스템(110)은 스텝 계획과 제약 맵(202) 사이의 관계에 기초하여 각각의 제어기(120)에 점수(score)를 매기고 최적의 점수를 갖는 제어기(120)를 선택한다. 예를 들어, 횡단 시스템(110)은 제약 맵(202)을 달성하기 위해 최소한의 편차를 갖는 스텝 계획을 갖는 제어기(120)에 대응하는 최소의 점수를 갖는 제어기(120)를 선택한다. 일부 예들에서, 점수는 스텝 계획과 제약 맵(202) 사이의 관계에 부가하여 제어기(120)에 대한 소프트 제약조건들 또는 조건들에 기초하는 비용 함수(cost function)에 대응한다. 횡단 시스템(110)은 또한 점수매김(scoring) 및/또는 선택 이전에 특정 제어기(120)를 배제하는 조건들을 갖도록 구성될 수 있다. 조건들의 일부 예들은 지형과의 원하는 접촉이 스윙 발의 위치에 기초하여 달성 가능한지 여부 또는 특정 스텝 높이들이 횡단 동안에 필요한지 여부를 포함한다. 일부 구성들에서, 비용 함수는 상이한 조건들에 가중치들을 적용하며, 여기서 스텝 계획과 제약 맵 사이의 편차가 가장 중요한 조건이다.
[0036] 일부 예들에서, 메모리 하드웨어(174)는 횡단 시스템(110)에 대한 이동들 또는 이동 제약조건들을 로봇(100)에 로컬로 저장한다. 다른 예들에서, 이러한 이동들 또는 제약조건들은 횡단 시스템(110)에 의해 원격으로 저장 및/또는 액세스된다. 예를 들어, 횡단 시스템(110)은 네트워크(180)를 통해 원격 시스템(190)과 통신한다. 원격 시스템(190)은 원격 데이터 처리 하드웨어(194) 및 원격 메모리 하드웨어(196)와 같은 원격 리소스들(192)을 포함하는 서버 또는 클라우드 기반 환경일 수 있다. 일부 구현예들에서, 이동들 또는 횡단 제약조건들은 원격 리소스들(192)을 사용하여 원격 시스템(190)에 저장 및/또는 처리되고, 네트워크(180)를 통해 로봇(100)의 횡단 시스템(110) 및/또는 제어기(120)에 전달된다. 또 다른 예들에서, 횡단 시스템(110)과 관련된 상이한 출력들은 원격으로(예를 들어, 원격 시스템(190)을 통해) 및 로컬로(예를 들어, 메모리 하드웨어(174)를 통해) 처리 및/또는 저장된다.
[0037] 센서 시스템(160)은 하나 이상의 센서들(162, 162a 내지 162n)을 포함한다. 센서들(162)은 비전/이미지 센서들, 관성 센서들(예를 들어, 관성 측정 유닛(inertial measurement unit; IMU)), 힘 센서들, 및/또는 운동학적 센서들을 포함할 수 있다. 센서들(162)의 일부 예들은 스테레오 카메라와 같은 카메라, 스캐닝 광-검출 및 거리 측정(light-detection and ranging; LIDAR) 센서, 또는 스캐닝 레이저-검출 및 거리 측정(laser-detection and ranging; LADAR) 센서를 포함한다. 일부 예들에서, 센서(162)는 센서(162)에 대응하는 감지 범위 또는 영역을 규정하는 대응하는 시야(들)(FV)를 갖는다. 예를 들어, 도 1a는 로봇(100)에 대한 시야(FV)를 도시한다. 각각의 센서(162)는, 예를 들어 센서(162)가 하나 이상의 축(예를 들어, 접지면(G)과 관련하여 x-축, y-축, 또는 z-축)을 중심으로 시야(FV)를 변경할 수 있도록 피봇 가능 및/또는 회전 가능할 수 있다.
[0038] 센서(162)로 시야(FV)를 조사할 때, 센서 시스템(160)은 시야(FV)에 대응하는 센서 데이터(164)(이미지 데이터로도 지칭됨)를 생성한다. 일부 예들에서, 센서 데이터(164)는 3차원 체적형 이미지 센서(162)에 의해 생성된 3차원 체적형 포인트 클라우드(three-dimensional volumetric point cloud)에 대응하는 이미지 데이터이다. 추가적으로 또는 대안적으로, 로봇(100)이 환경(10)에 대해 기동할 때, 센서 시스템(160)은 관성 측정 데이터(예를 들어, IMU에 의해 측정됨)를 포함하는 로봇(100)에 대한 포즈 데이터를 수집한다. 일부 예들에서, 포즈 데이터는 로봇(100)에 대한 운동학적 데이터 및/또는 배향 데이터를 포함한다. 센서 데이터(164)에 의해, 지각 시스템(200)은 환경(10) 주위의 지형에 대한 맵(212)(또는 제약 맵(202))을 생성할 수 있다.
[0039] 환경(10)과 관련된 이미지 데이터, 포즈 데이터, 관성 데이터, 운동학적 데이터 등과 같은 센서 시스템(160)에 의해 수집된 센서 데이터(164)는 로봇(100)의 횡단 시스템(110)(예를 들어, 데이터 처리 하드웨어(172) 및 메모리 하드웨어(172))에 전달된다. 일부 예들에서, 센서 시스템(160)은 센서 데이터(164)를 수집하고 (예를 들어, 원격 리소스들(192)의 메모리 하드웨어(174) 또는 메모리 하드웨어(196)에) 저장한다. 다른 예들에서, 센서 시스템(160)은 센서 데이터(164)를 실시간으로 수집하고, 원시(즉, 미처리) 센서 데이터(164)를 저장하지 않고 센서 데이터(164)를 처리한다. 또 다른 예들에서, 횡단 시스템(110) 및/또는 원격 리소스들(162)은 처리된 센서 데이터(164) 및 원시 센서 데이터(164) 모두를 저장한다.
[0040] 로봇(100)이 환경(10)에 대해 기동할 때, 센서 시스템(160)은 환경(10)의 지형과 관련된 센서 데이터(164)를 수집한다. 예를 들어, 도 1a는 로봇(100)이 계단들(20)의 계단참(landing) 위에 서 있을 때 계단들(20)에 대한 센서 데이터(164)를 수집하는 센서 시스템(160)을 도시한다. 도 1c에 도시된 바와 같이, 계단들(20)의 구조는 센서 데이터(164)(즉, 불완전한 센서 데이터(164))의 오클루전(occlusion)을 초래할 수 있다. 예를 들어, 계단들(20)을 위 또는 아래로 바라볼 때, 센서 시스템(160)은 계단들(20) 전체를 상세하게 시각화할 수 없다. 전통적인 계단들(20)의 경우에, 이것은 종종 디딤면(22) 이전 또는 이후의 수직면(24)이 계단(20)의 디딤면(22)의 일부들을 시각적으로 가리기 때문이다. 이러한 장애물들로 인해, 센서 시스템(160)은 가려진 구역들에 대한 실제 센서 데이터(164)를 수집할 수 없다. 이것은 결국 가려진 구역들에 대한 센서 데이터(164)의 갭들(gaps)을 초래한다.
[0041] 도 1b를 참조하면, 경로 생성기(130)는 로봇(100)에 대한 수평 모션을 결정하도록 구성된다. 예를 들어, 수평 모션은 로봇(100)의 병진 및/또는 요(yaw)를 지칭한다. 경로 생성기(130)는 센서 데이터(164)에 기초하여 로봇(100) 주위의 환경(10) 내의 장애물들을 결정한다. 경로 생성기(130)는 스텝 플래너(140)가 로봇(100)의 다리들(104)에 대한 발 배치들(예를 들어, 로봇(100)의 다리들(104)의 원위 단부들(106)을 배치하기 위한 위치들)을 식별할 수 있도록 장애물들을 스텝 플래너(140)에 전달한다. 스텝 플래너(140)는 지각 시스템(200)으로부터의 입력들(예를 들어, 영역들(220, 230))을 사용하여 발 배치들(즉, 로봇(100)이 스텝을 내디뎌야 하는 위치)을 생성한다.
[0042] 일부 예들에서, 지각 시스템(200)은 환경(10) 주위의 지형의 센서 데이터(164)에 기초하여 맵(212)을 생성하는 맵 생성기(map generator)(210)를 포함한다. 일부 구현예들에서, 맵 생성기(210)는 불완전한 맵(212)을 생성하고, 센서 데이터(164)의 특성에 기초하여 센서 데이터(164)의 갭들을 채우도록 구성된다. 다시 말해서, 지각 시스템(200)의 맵 생성기(210)는 가시적 지형(TV)에 대해 수집된 센서 데이터(164)로부터 가려진 지형(추론된 지형(TI)으로도 지칭됨)에 대한 세부사항들을 추론한다. 센서 데이터(164)에 기초하여, 맵 생성기(210)는 누락된 센서 데이터(164)가 매끄러운 지형 또는 편평한 지형에 대응한다고 가정하도록 프로그래밍된다. 센서 데이터(164)가 원거리 물체에 인접한 근거리 물체를 나타내는 경우, 맵 생성기(210)는 이러한 원근 콘트라스트(near-far contrast)가 환경(10) 내의 센서 시스템(160)에 대한 오클루전으로 인해 일어난다고 가정한다. 맵 생성기(210)가 오클루전이 일어났다고 가정하는 경우, 맵 생성기(210)는 이러한 갭들을 편평한 지형으로서 매핑함으로써 센서 데이터(164)의 갭들을 채운다. 대조적으로, 센서 데이터(164)가 원근 콘트라스트를 나타내지 않는 경우, 맵 생성기(210)는 누락된 센서 데이터(164)가 센서 시스템(160)에 의한 불량한 시각으로 인한 것이라고 가정하고, 누락된 센서 데이터(164)를 매끄러운 지형으로서 매핑한다. 일반적으로 말하면, 계단들(20)에 의해 야기된 오클루전들은 맵 생성기(210)가 계단들(20)의 가려진 지형을 편평한 것으로 매핑하도록 원근 콘트라스트를 나타내는 센서 데이터(164)를 갖는다. 도 1c를 참조하면, 맵 생성기(210)는 수직면(24a 내지 24c)에 의해 야기된 계단들(20a 내지 20g)에 대한 가려진 세부사항들을 디딤면들(22a 내지 22c)의 편평한 부분들로서 맵핑한다(즉, 오클루전으로 인해 편평한 추론된 지형(TI)을 생성함).
[0043] 도 2a를 참조하면, 센서 데이터(164)로부터 맵 생성기(210)에 의해 생성된 맵(212)에 기초하여, 지각 시스템(200)은 (예를 들어, 로봇(100)의 횡단 시스템(110)이 실행하기 위해) 로봇(100)에 대한 제약 맵(202)을 생성한다. 지각 시스템(200)은 일반적으로 제약 맵(202) 또는 제약 맵(202)의 일부들(예를 들어, 충돌/비충돌 영역들(220, 230))을 횡단 시스템(110)(예를 들어, 횡단 시스템(110)의 스텝 로케이터(140))과 통신한다. 스텝 로케이터(140)는 환경(10)을 횡단하는 동안에 충돌을 회피하는 모션의 궤적들을 계획하도록 구성된 로봇(100)에 대한 궤적 플래너(모션 계획으로도 지칭함)를 지칭한다. 맵(212)에 의해, 지각 시스템(200)은 로봇(100)을 위한 계단(20) 상의 안전한 배치 구역을 식별하는 스텝 영역들(220)을 결정한다. 다리(104)의 원위 단부(106)는 스텝 영역(220) 내에 배치되고, 다리(104)의 일부와 계단들(20)의 구조물 사이의 간섭 가능성을 감소 및/또는 제거할 수 있다. 예를 들어, 도 2a는 7 개의 계단들(20a 내지 20g)에 대한 스텝 영역들(220, 220a 내지 20g)을 도시한다. 스텝 영역(220)의 외부에서, 로봇(100)의 다리(104)의 일부는 계단들(20)의 구조물과의 충돌들(C)의 위험이 있다. 일부 구현예들에서, 로봇(100)이 수직면(24)에 너무 근접하게 스텝을 내디디는 경우, 로봇(100)은 계단들(20)을 올라가거나 내려갈 때 계단들(20)의 일부(예를 들어, 수직면(24) 또는 디딤면(22)의 계단코(26))에 대해 다리(104)의 일부를 부딪칠 위험이 있다. 예를 들어, 도 2a는 로봇(100)의 다리(104d)가 그 정강이에 대응하는 구역에서 충돌(C)을 하는 것을 도시한다. 여기서, 로봇(100)이 계단(20)을 내려가고 로봇(100)의 뒷다리(104d)의 관절(J)을 구부릴 때 계단(20)의 수직면(24)에 대해 충돌(C)이 일어난다.
[0044] 일부 예들에서, 스텝 영역(220)의 외부는 계단(20)의 에지에 너무 근접하고, 그에 따라 이러한 구역에의 다리(104)의 원위 단부(106)의 배치는 로봇(100)의 다리(104)가 계단(20)에서 미끄러지게 할 것이다. 센서 데이터(164)에 기초하여 스텝 영역들(220)을 결정함으로써, 지각 시스템(200)은 로봇(100)이 계단들(20) 또는 계단-유사 지형을 성공적으로(예를 들어, 최소의 문제들로 또는 충돌들 없이) 횡단하는 것을 돕는다. 로봇(100)에 의한 충돌들(C)은 로봇(100)이 계단들(20) 또는 계단-유사 지형을 횡단하는 것을 방해하고, 로봇(100)이 작업을 수행 중이거나 목적지로 주행 중일 때 타이밍 문제들을 야기하고, 계단들(20)을 손상시키고, 그리고/또는 주행 동안에 로봇(100)을 손상시킬(예를 들어, 로봇(100)이 계단들(20)에서 떨어짐) 수 있기 때문에, 충돌들(C)은 일반적으로 문제들이 된다.
[0045] 일부 구현예들에서, 지각 시스템(200)은 각각의 계단(20)에 대한 적어도 하나의 충돌 영역(230)(예를 들어, 충돌 영역(230, 230a 내지 230f))을 결정한다. 충돌 영역(230)은 로봇(100)이 계단들(20, 20a 내지 20n)을 횡단할 때 로봇(100)의 다리(104)가 회피해야 하는 계단(20)의 영역을 지칭한다. 다시 말해서, 충돌 영역(230)에서, 로봇(100)의 다리(104)의 일부는 계단(20)의 구조물과 충돌(C)을 할 가능성이 있거나 불가피하게 충돌(C)을 할 것이다. 일부 예들에서, 지각 시스템(200)은 스텝 영역들(220) 대신에 충돌 영역들(230)(즉, 비-스텝 영역들)을 결정하고, 로봇(100)은 계단들(20)을 횡단하기 위해 충돌 영역들(230)을 회피하는 명령들을 수신한다. 다른 예들에서, 지각 시스템(200)은 스텝 영역들(220) 및 충돌 영역들(230)(즉, 영역들(220, 230)) 모두를 결정한다.
[0046] 일부 구성들에서, 지각 시스템(200)은 계단들(20)을 횡단하기 전에 스텝 영역들(220) 및/또는 충돌 영역들(230)을 결정한다. 추가적으로 또는 대안적으로, 지각 시스템(200)은 계단들(20)을 횡단하는 동안에(예를 들어, 실시간으로 연속적으로) 스텝 영역들(220) 및/또는 충돌 영역들(230)을 결정할 수 있다. 예를 들어, 지각 시스템(200)은 로봇(100)이 계단들(20)을 만나고 횡단함에 따라 스텝 영역들(220) 및/또는 충돌 영역들(230)을 연속적으로 결정한다. 지각 시스템(200)이 스텝 영역들(220) 및/또는 충돌 영역들(230)을 주행 이전에 결정할지 주행 도중에 결정할지 여부는 로봇(100)의 센서 시스템(160) 및/또는 다른 시스템들(예를 들어, 횡단 시스템(110))에 대한 설계 능력들 및/또는 처리 능력들에 의존할 수 있다.
[0047] 일부 예들에서, 지각 시스템(200)은 계단들(20)을 횡단하기 전에 로봇(100)의 포즈 및/또는 자세를 고려한다. 예를 들어, 로봇(100)은 계단들(20)을 전진으로(즉, 센서 시스템(160)의 전방 센서들이 횡단 방향(TD)을 향하여 있거나 감지함) 또는 후진으로(즉, 센서 시스템(160)의 전방 센서들이 횡단 방향(TD)과 반대 방향을 향하여 있음) 올라가거나 내려갈 수 있다. 여기서, 지각 시스템(200)은 스텝 영역들(220) 및/또는 충돌 영역들(230)을 결정하기 위해 로봇(100)이 계단들(20)을 전진으로 횡단할지 후진으로 횡단할지 여부를 인식한다. 계단(20)을 전진하여 내려가는 경우, 로봇(100)의 다리들(104) 구조(예를 들어, 다리들(104)의 관절들(J)의 굴곡)로 인해 각각의 계단(20)의 에지 근처에 좁은 스텝 영역(220)이 있을 수 있다. 전진하는 것과 후진하는 것 사이의 대조적인 예로서, 로봇(100)이 후진하여 계단들(20)을 횡단하는 경우, 지각 시스템(200)은, 로봇(100)의 다리들(104)의 구조에 기초하여, 스텝 영역들(220)이 디딤면(22)의 중간 50% 내지 70%에 대응한다고 결정한다. 다시 말해서, 지각 시스템(200)이 로봇의 배향(예를 들어, 포즈 및/또는 자세)을 인식함에 따라, 결정된 배향에서 계단들(20)의 구조물과 관련된 로봇(100)의 배향 및 제한들을 고려하기 위해 스텝 영역들(220) 및/또는 충돌 영역들(230)이 달라질 수 있다.
[0048] 지각 시스템(200)은 로봇(100)의 운동학 및/또는 센서 데이터(164)로부터의 지형 맵(212)에 기초하여 스텝 영역들(220) 및/또는 충돌 영역들(230)(영역들(220, 230)로도 지칭됨)을 결정할 수 있다. 일부 예들에서, 지각 시스템(200)은 맵(212) 내의 높이의 불연속부들이 지면이 가파른 구역들(예를 들어, 수직면(24) 또는 디딤면(22)의 에지)에 대응한다고 결정한다. 이러한 구역들은 충돌 영역들(230)로서 지정될 수 있다. 지각 시스템(200)은 또한 운동학을 사용하여 영역들(220, 230)을 결정할 수 있다. 예를 들어, 지각 시스템(200)은 로봇(100)의 주행 속도(예를 들어, 로봇(100)의 질량 중심의 속도) 및/또는 로봇(100)에 대한 횡단 방향(TD)(즉, 주행 방향)을 고려하여 영역들(220, 230)을 결정한다. 추가적으로 또는 대안적으로, 지각 시스템(200)은 불량한 센서 데이터(164)의 구역들을 충돌 영역들(230)로서 지정할 수 있다.
[0049] 일부 예들에서, 계단들(20)을 횡단하기 전에 또는 횡단하는 동안에, 로봇(100)은 로봇(100)의 전방 부분을 향해(예를 들어, 앞다리(104a 및 104b)를 향해) 로봇(100)의 중량 분포를 시프팅시킨다. 로봇(100)이 계단들(20)을 횡단할 때, 다리들(104)의 원위 단부들(106)에 대해 로봇(100)의 중량을 전방으로 시프팅시키는 것은 계단들(20)과의 다리들(104)의 잠재적 충돌들(C)을 감소시킬 수 있다. 예를 들어, 도 2a는 계단들(20a 내지 20g)을 내려가는 로봇(100)을 도시한다. 여기서, 도 2b는 로봇(100)의 중량을 전방으로 시프팅시킴으로써 하부 다리들(예를 들어, 다리들(104a 및 104b))이 보다 수직 또는 직립이 될 수 있게 하고 상부 다리들(예를 들어, 뒷다리들(104c 및 104d))이 보다 수평이 될 수 있게 하는 것을 도시한다. 다시 말해서, 운동학적으로, 다리들(104)의 원위 단부들(106)(예를 들어, 발들)에 대해 전방으로 시프팅될 때의 로봇(100)의 질량 중심(COM)은 로봇(100)의 뒷다리들(104c 및 104d)보다 로봇(100)의 앞다리들(104a 및 104b)에 보다 많은 중량을 야기한다. 다시 말해서, 로봇(100)의 질량 분포는 로봇(100)의 전방을 향하고, 앞다리들(104a 및 104b)은 각자의 원위 단부들(106a 및 106b)에서 수직력의 증가를 경험한다. 도 2b는 질량 중심(COM)이 초기 포지션(COMinitial)으로부터 횡단 방향(TD)을 향해 시프트 포지션(COMshift)으로 시프팅된 것을 도시한다. 이러한 시프트로 인해, 도 2b는, 점선들에 따르면, 뒷다리들 중 하나(104d)가 계단들(20)과의 충돌(C)을 회피하는 것을 나타낸다. 일부 예들에서, 로봇(100)의 제어기(120)는 질량 중심 역학의 관점에서 기능한다. 여기서, 이러한 유형의 기능에 의해, 몸체 플래너(150)는 로봇(100)의 도 2b에 도시된 바와 같이 계단들(20)을 횡단하기 위해 원위 단부들(106)에 대해 전방으로 질량 중심(COM)을 시프팅시키도록 제어기(120)에 명령한다.
[0050] 일부 예들에서, 몸체 플래너(150)는 횡단 시스템(110)에 따른 로봇(100)의 제어의 일부로서 로봇(100)에 대한 높이(HCOM) 및 피치(PCOM)를 결정하도록 구성된다. 여기서, 로봇(100)의 높이(HCOM)는 로봇(100)의 질량 중심(COM)과 계단들(20)(예를 들어, 도 2a에 도시된 바와 같이 질량 중심(COM) 아래의 디딤면(22)의 표면) 사이의 거리에 대응한다. 로봇(100)의 피치(PCOM)는 일반적으로 (예를 들어, 도 2a에 도시된 바와 같이) 로봇(100)의 몸체(102)의 길이 방향 축(AL)을 따라 몸체(102)의 중심에 대한 로봇(100)의 회전을 지칭한다. 다시 말해서, 로봇(100)의 피치의 조정은 로봇(100)의 몸체(102)의 전면(또는 몸체(102)의 후면)을 로봇(100)의 몸체(102)의 중심을 중심으로 계단들(20)을 향해 또는 계단들(20)로부터 멀리 회전 이동시킨다. 로봇(100)이 계단들(20)을 횡단하는 경우, 몸체 플래너(150) 및/또는 제어기(120)는 하나 이상의 계단들(20)에 대해 식별된 대응하는 충돌 영역(230)에 기초하여 로봇(100)에 대한 높이 및 피치를 조정할 수 있다. 몸체 플래너(150)는, 지형 맵(212)(또는 제약 맵(202)) 및 스텝 플래너(140)로부터의 발자국 위치들(예를 들어, 각각의 계단(20)에 대해 식별된 영역들(220, 230)), 및 제약조건들(240)의 세트와 같은 입력들에 기초하여, 로봇(100)에 대한 높이(HCOM) 및 피치(PCOM)를 결정할 수 있다. 일부 구현예들에서, 로봇(100)에 대한 높이(HCOM) 및 피치(PCOM)를 결정하기 위해, 몸체 플래너(150)는 입력들에 기초하여 제약조건들(240)을 충족하는 로봇(100)에 대한 최적의 궤적을 결정하도록 구성된 이차 프로그래밍 궤적 플래너(quadratic programming trajectory planner)이다. 예를 들어, 몸체 플래너(150)는 이동 구간 제어기(receding horizon controller)이다. 일부 구성들에서, 제약조건들(240)은 로봇(100)의 물리적 조건들 및/또는 계단 지형과 관련된다. 예를 들어, 몸체 플래너(150)는 높이 제약조건들과 같은 제약조건들(240)을 수신한다. 높이 제약조건의 하나의 그러한 예는 로봇(100)이 로봇(100) 아래의 표면과 접촉하는 것을 방해하는(즉, 로봇(100)의 원위 단부(106)가 계단들(20)과 접촉하는 것을 방해하는) 높이에 로봇(100)(예를 들어, 로봇(100)의 몸체)이 있지 않을 수 있음을 나타내는 제약조건(240)이다. 몸체 플래너(150)에 의해 수신되는 높이 제약조건의 다른 예는 계단들(20)과의 로봇(100)(예를 들어, 로봇(100)의 다리(104))의 충돌들(C)을 방지하기 위한 최소 높이이다. 다시 말해서, 로봇(100)의 몸체(102)는 충돌들(C)이 계단들(20)과 로봇(100) 사이에서 일어날 정도로 계단(20)에 근접하지(예를 들어, 낮지) 않을 수 있다. 어떤 경우든, 제약조건들(240)은 로봇(100)의 운동학에 기초하여 결정될 수 있다. 예를 들어, 몸체 플래너(150)는 운동학(예를 들어, 다리들(104)에 대응하는 운동학)에 기초하여 로봇(100)의 다리들(104)의 하나 이상의 원위 단부들(106)이 각각의 계단(20)의 표면 구역과 접촉한다고 결정할 수 있다. 유사하게, 몸체 플래너(150)가 충돌들(C)을 방지하기 위해 몸체(102)의 최소 높이에 대한 제약조건(240)을 결정하는 경우, 최소 높이는 로봇(100)의 운동학에 의해 결정될 수 있다.
[0051] 예시를 위해, 로봇(100)이 계단들(20)을 횡단할 때, 몸체 플래너(150)는 로봇(100)의 각각의 다리(104)에 대한 운동학을 식별할 수 있다. 각각의 다리(104)에 대한 이러한 운동학(예를 들어, 다리들(104)의 관절들(J)에 대한 다리들(104)의 굴곡(flexion) 또는 신전(extension))은 몸체 플래너(150)가 다리(104)(예를 들어, 각각의 다리(104) 아래에 있거나 다리(104)의 원위 단부(106)에 의해 접촉되는 대응하는 계단(20))와 연관될 수 있는 각각의 계단(20)에 대한 몸체(102)의 높이를 결정할 수 있게 한다. 다리들(104)의 운동학을 식별함으로써, 몸체 플래너(150)는 몸체(102)에 대한 높이 조정 및/또는 피치 조정이 하나 이상의 다리들(104)이 계단들(20)과 접촉하는 것을 방해하는지(즉, 로봇 100)에 대한 높이 제약조건을 충족하는지) 여부를 결정할 수 있다. 예를 들어, 높이 조정 또는 피치 조정이 다리(104)가 계단들(20)과 접촉하는 것을 방해하는 경우, 계단들(20)에 도달할 수 없는 해당 다리(104)는 계단들(20)과 충돌(C)의 위험이 증가하거나 로봇(100)에 대한 불균형을 야기할 위험이 증가할 수 있다. 일부 예들에서, 로봇(100)에 대한 높이 조정 또는 피치 조정이 높이 제약조건을 충족하는지 여부를 결정하는 것에 부가하여, 몸체 플래너(150)는 몸체 플래너(150)가 몸체(102)의 높이(HCOM) 및/또는 로봇(100)의 피치(PCOM)를 조정할 때 다리들(104)이 여전히 안전한 영역들에 위치되는 것(예를 들어, 원위 단부들(106)의 위치들이 충돌 영역들(230)보다는 스텝 영역들(220)에 위치됨)을 보장한다. 다시 말해서, 몸체 플래너(150)는 로봇(100)의 다리들(104)이 위치되는 영역들(220, 230)(예를 들어, 스텝 영역(220) 또는 충돌 영역(230)), 및 로봇(100)의 각각의 다리(104)에 대한 운동학에 기초하여 몸체(102)의 높이(HCOM) 및/또는 몸체(102)의 피치(PCOM)를 조정할 수 있다.
[0052] 추가적으로 또는 대안적으로, 몸체 플래너(150)는 몸체 플래너(150)가 충촉시키려고 시도하지만 다른 제약조건들과 절충(tradeoff)하여 충족시키지 못할 수 있는 동등 제약조건에 대응하는 비용(들)을 수신할 수 있다. 여기서, 예를 들어 몸체 플래너(150)는 다리들(104)의 하나 이상의 원위 단부들(106)에 대해(예를 들어, 로봇(100)의 발들에 대해) 몸체(102)의 히프(hip)의 원하는 높이를 수신한다. 몸체 플래너(150)의 다른 제약조건들은 최소 또는 최대 가속도와 같은 로봇(100)에 대한 가속도를 포함할 수 있다. 일부 구현예들에서, 몸체 플래너(150)는 로봇(100)의 설계 제약조건들 또는 구조적 제약조건들을 충족시키는 궤적을 계획한다. 예를 들어, 몸체 플래너(150)는 로봇(100)의 강도 또는 로봇(100)의 동작 속도를 고려하는 궤적을 계획한다. 일부 예들에서, 몸체 플래너(150)는 로봇(100)의 속도, 질량 중심(COM)의 포지션, 및/또는 가속도 파라미터들과 일치하는 궤적을 계획한다. 몸체 플래너(150)가 궤적을 결정하면, 몸체 플래너(150)는 실행을 위해 궤적을 제어기(120)에 전달할 수 있다. 일부 구성들에서, 몸체 플래너(150)는 로봇(100)이 환경(10)을 가로질러 횡단함에 따라 제어기(120)에 대한 궤적들을 지속적으로 통신하고, 그리고/또는 궤적들을 업데이트한다.
[0053] 도 3a 내지 도 3i를 참조하면, 로봇(100)은 또한 임팩트 검출기(300)를 포함할 수 있다. 임팩트 검출기(300)는 환경(10)(예를 들어, 계단들(20)과 충돌(C)) 또는 로봇(100) 자체(예를 들어, 앞다리(104a) 및 뒷다리(104c) 사이의 충돌(C))와 로봇(100)의 임팩트(310)(충돌(C))를 검출하도록 구성된다. 임팩트(310)에 기초하여, 임팩트 검출기(300)는 횡단 시스템(110)(예를 들어, 제어기(120)) 및/또는 몸체 플래너(150)에 대한 응답(320)을 생성할 수 있다. 일부 구현예들에서, 임팩트 검출기(300)는 임팩트(310)를 검출하고 로봇(100)의 횡단 시스템(110)(예를 들어, 제어기(120))에 의해 임팩트에 대한 응답(320)을 통신한다. 일부 예들에서, 응답(320)은 로봇(100)이 특정 이동으로 임팩트(310)에 반응하도록 명령한다. 다른 예들에서, 응답(320)은 로봇(100)이 특정 이동 반응 없이 환경(10)을 횡단하는 것을 진행하도록(예를 들어, 모션을 계속하도록) 명령한다. 이러한 응답들(320) 사이의 차이는 임팩트 검출기(300)가 검출하는 임팩트(310)의 유형에 의존한다.
[0054] 임팩트(310)를 감지하기 위해, 임팩트 검출기(300)는 로봇(100)의 센서 시스템(160)을 이용할 수 있다. 임팩트 검출기(300)는 근접 센서들, 비전/이미지 센서들, 관성 센서들, 힘 센서들, 운동학적 센서들 등과 같은, 센서 시스템(160)의 센서들(162)의 임의의 조합을 사용하여 임팩트(310)를 검출할 수 있다. 일부 예들에서, 임팩트 검출기(300)는 로봇(100)의 운동학과 함께 센서 데이터(164)를 사용하여 임팩트(310)가 로봇(100)의 모션 동안에 일어나는지 여부를 결정한다.
[0055] 로봇(100)이 다리(104)의 원위 단부(106)를 스텝 영역(220) 내의(즉, 또한 충돌 영역(230) 외부의) 목표 스텝 위치로 이동시키는 동안, 임팩트 검출기(300)는 임팩트들(310)을 감지하도록 구성된다. 일부 예들에서, 임팩트 검출기(300)는 다리(104)의 원위 단부(106)가 계단(20)의 대응하는 목표 스텝 위치와 접촉하는 것(즉, 목표 스텝 위치에 착지(touchdown)가 달성됨)을 검출한다. 예를 들어, 원위 단부(106)는 계단(20)의 목표 스텝 위치로서 (예를 들어, 스텝 영역(220)의) 디딤면(22)의 일부와 접촉한다. 이러한 검출된 임팩트(310)에 기초하여, 임팩트 검출기(300)는 대응하는 목표 스텝 위치에서 계단(20)과 접촉하는 다리(104)를 스탠스 다리(104ST)로서 분류하는 응답(320)을 생성한다. 다시 말해서, 목표 스텝 위치를 향해 이동 중이던 다리(즉, 스윙 다리(swing leg))(104)는 성공적인 착지가 일어날 때 스탠스 다리(104ST)가 된다. 예시를 위해, 도 3a 및 도 3b는 로봇(100)이 계단들(20)을 횡단하는 시퀀스를 도시한다. 시퀀스의 제1 프레임에서, 로봇(100)(도 3a에서 로봇(100a)으로서 도시됨)은 스윙 다리(104SW)로서의 앞다리(104a) 및 스탠스 다리(104ST)로서의 반대측 앞다리(104b)를 갖는다. 스윙 다리(104a, 104SW)가 착지하고 임팩트(310)를 생성할 때(도 3b에서 로봇(100b)을 갖는 제2 프레임에 도시됨), 임팩트 검출기(300)는 원래의 스탠스 다리(104b, 104ST)의 분류를 스윙 다리(104b, 104SW)로 변경한다.
[0056] 스윙 다리(104SW)는 환경(10)의 표면과 접촉하지 않으면서 모션 중인(즉, 스윙 중인) 다리(104)를 지칭한다. 대조적으로, 스탠스 다리(104ST)는 스윙 다리(104SW)의 모션의 균형을 유지하고 모션을 지원하기 위해 환경(10)의 표면 상에 자리잡은(즉, 접촉함) 다리(104)를 지칭한다. 로봇(100)이 스윙 다리(104SW)를 이동시킬 때, 일반적으로 제어기(120)는 스윙 다리(104SW)가 방해받지 않는 모션 경로를 따라 목표 스텝 위치로 이동하여 로봇(100)이 환경(10)을 횡단할 수 있게 하도록 의도한다. 스윙 다리(104SW)가 스윙 다리(104SW)의 모션을 방해하는 장애물을 만나는 경우에 문제들이 일어날 수 있으며, 이는 장애물이 예를 들어 로봇(100)이 균형을 상실하게(즉, 넘어지고 그리고/또는 떨어짐) 할 수 있는 계획된 모션의 편차를 야기할 수 있기 때문이다.
[0057] 일부 예들에서, 제어기(120)는 유각기(swing phase) 또는 입각기(stance phase)를 각각 완료하기 전에 스윙 다리(104SW) 및/또는 스탠스 다리(104ST)의 분류를 변경한다. 그 단계의 완료 전에 다리(104)의 분류를 변경함으로써, 제어기(120)는 지연을 보상하거나 명령 지연들(또는 모션 지연들)을 방지하여 로봇(100)의 매끄러운 모션을 제공할 수 있다. 다시 말해서, 제어기(120)는 스탠스 다리(104ST)의 리프트오프(liftoff)와 스윙 다리(104SW)의 착지를 동기화하려고 시도할 수 있다. 예를 들어, 제어기(120)는 착지 이전에 스윙 다리(104SW)를 스탠스 다리(104ST)로 분류한다. 유사하게, 제어기(120)는 각각의 다리(104)의 임의의 모션 이전에 현재 스탠스 다리(104ST)를 스윙 다리(104SW)로 분류할 수 있다. 일부 예들에서, 제어기(120)는 이전 스탠스 다리들(104ST) 모두를 동시에 들어올리기 전에 로봇(100)의 양쪽 스윙 다리들(104SW)이 착지하기를 대기한다. 이러한 예들에서, 이것은 (예를 들어, 로봇(100)이 속보와 같은 페이스/케이던스로 계단들(20)을 횡단할 때) 로봇(100)이 균형을 유지하는 것을 돕기 위해 일어날 수 있다.
[0058] 도 3c에서와 같은 일부 구현예들에서, 로봇(100)이 유각기 동안 이동을 위해 다리(104)(예를 들어, 뒷다리(104d, 104SW)로서 도시됨)를 들어올릴 때, (즉, 다리(104)가 로봇(100)의 몸체(102)에 결합하는 경우) 다리(104)의 무릎 관절(JK)은 히프 관절(JH)에 대해 후방으로 이동한다. 예를 들어, 유각기는 다리(104)가 로봇(100)의 몸체(102)를 향해 당겨지거나 들어올려지는 편심 모션(eccentric motion), 및 다리(104)가 로봇(100) 몸체(102)로부터 멀리 (예를 들어, 계단(20)의 디딤면(22)과 같은 표면에 대한) 착지를 향해 연장되는 동심 모션(concentric motion)을 포함한다. 무릎 관절(JK)이 후방으로 이동할 때(예를 들어, 편심 모션 동안), 다리(104)는 로봇(100) 뒤의 물체와 충돌(C)을 할 위험이 있을 수 있다. 다시 말해서, 무릎 관절(JK)이 후방으로 이동할 때, 다리(104)는 (예를 들어, 무릎 관절(JK)에서) 계단(20)의 수직면(24) 또는 벽과 같은 수직 물체와 같은 로봇(100) 뒤의 물체와 임팩트(310)를 가질 수 있다. 예를 들어, 로봇(100)은 로봇(100) 뒤에 벽을 갖는 계단(20)의 계단참 위에 서 있고, 뒷다리(104c 및 104d)의 스윙 모션은 벽을 임팩트한다. 여기서, 임팩트 검출기(300)는 로봇(100) 뒤의 지형과의 임팩트(310)를 검출하고, 로봇(100) 뒤의 지형으로부터 멀리 전방으로 무릎(즉, 무릎 관절(JK))을 이동시키는 응답(320)을 생성한다. 그와는 달리, 로봇(100)이 다리(104)를 계속해서 들어올리는 경우, 무릎 관절(JK)은 로봇(100) 뒤의 물체에 보다 큰 힘을 나타낼 수 있다. 로봇(100) 뒤의 물체가 벽인 경우에, 다리(104)를 계속 들어올리면, 무릎 관절(JK)이 로봇(100) 뒤의 벽에 박혀서 벽 또는 로봇(100)에 손상을 야기할 수 있다.
[0059] 일부 구성들에서, 로봇(100)이 이동하는 동안, 로봇(100)의 다리(104)는 반대측 다리(104C)와의 임팩트(310)를 갖는다. 예를 들어, 유각기 동안, 스윙 다리(104SW)는 반대측 스탠스 다리(104c)와 부딪친다. 반대측 다리(104C)는 로봇(100)의 시상면(PS)을 중심으로 로봇(100)의 몸체(102)의 반대측에 있는 다리(104)를 지칭한다. 시상면(PS)은 몸체(102)를 좌측 및 우측 절반들로 분할하는 해부학적 평면이다. 4족 보행 로봇(100)과 관련하여, 2 개의 앞다리들(104a 및 104b)은 로봇(100)의 시상면(PS)을 중심으로 서로 반대쪽(즉, 반대측)에 있는 반면, 유사하게 뒷다리들(104c 및 104d)은 로봇(100)의 시상면(PS)을 중심으로 서로 반대쪽(즉, 반대측)에 있다. 2족 보행 로봇(100)의 경우, 2 개의 다리들(104)은 항상 반대측 관계에 있다.
[0060] 도 3d 내지 도 3e에 도시된 바와 같이, 다리(104)가 반대측 다리(104C)와 임팩트(310)를 가질 때, 임팩트 검출기(300)는 이러한 임팩트(310)를 검출하고 임팩트(310)의 유형에 따라 그 응답(320)을 변경할 수 있다. 일부 예들에서, 검출된 임팩트(310)에 기초하여, 임팩트 검출기(300)는 스윙 다리(104SW) 또는 스윙 다리(104SW)의 원위 단부(106)를 반대측 스탠스 다리(104c)로부터 멀리 시프팅시키는 응답(320)을 생성한다. 다시 말해서, 스윙 다리(104SW)가 목표 스텝 위치에의 원위 단부(106)의 착지를 목표로 하는 대신에, 응답(320)은 스윙 다리(104SW)를 조정된 스텝 위치로 시프팅시킨다. 여기서, 조정된 스텝 위치는 계단(20)의 스텝 영역(220) 내(즉, 충돌 영역(230) 외부)에 있지만, 반대측 다리(104C)와의 임팩트(310)에 대처하기 위해 원래의 목표 스텝 위치에 대해 시프팅된다. 일부 구성들에서, 조정된 스텝 위치는 완전히 새로운 목표 스텝 위치이다.
[0061] 일부 예들에서, 임팩트(310)로 인해, 스텝 영역(220)에 대응하거나 충돌 영역(230) 외부에 대응하는 스텝 위치는 응답(320)에 대한 조정된 스텝 위치로서 이용 가능하지 않을 수 있다. 이러한 상황들에서, 임팩트 검출기(300) 및/또는 지각 시스템(200)은 지형 또는 로봇 자체와의 추가 임팩트(310)의 가능성을 최소화하는 조정된 스텝 위치를 결정할 수 있다. 예를 들어, 조정된 스텝 위치는 충돌 영역(230) 내에 있을 수 있지만, 충돌 영역(230)의 다른 부분들보다 낮은 충돌(C)의 확률을 갖는 충돌 역(230)의 구역 내에(예를 들어, 충돌 영역(230)의 에지들 근처에) 있을 수 있다. 일부 구현예들에서, 지각 시스템(200)은 충돌 영역(230)에 대한 충돌 확률 분포를 사전에 결정하거나 임팩트(310) 시에 결정할 수 있으며, 그에 따라 임팩트 검출기(300)는 충돌 확률 분포에 기초하여 추가 임팩트를 최소화하는 조정된 스텝 위치를 갖는 응답(320)을 생성할 수 있다. 일부 예들에서, 확률 분포에 의해, 조정된 스텝 위치는 충돌(C)에 대한 허용 가능한 확률 또는 신뢰도 레벨에 대응하는 임계치에 기초하여 선택된다. 다시 말해서, 임계치는, 교정 상황들에서 허용될 수 있는 충돌 영역(230)의 일부 구역들(예를 들어, 서브-영역들)이 있는 반면 교정 상황들에서도 너무 위험한 충돌 영역(230)의 다른 구역들이 있음을 나타낼 수 있다. 예를 들어, 일부 교정 상황들에서, 임팩트(310)는 다리(104)의 원위 단부(106)가 충돌 영역(230)의 덜 위험한 구역 내의 조정된 스텝 위치로 이동하는 것보다 로봇(100)에 더 큰 위험이 있을 수 있다. 보다 구체적으로, 눈에 띄는 임팩트를 일으킬 가능성이 있는 충돌 영역(230)의 구역은 교정 상황에서 허용될 수 있지만, 로봇(100)이 계단들(20)을 완전히 헛디디게 하는 충돌 영역(230)의 구역은 절대 허용되지 않는다. 추가적으로 또는 대안적으로, 지각 시스템(200)은 특정 구역에서 일어날 가능성이 있는 임팩트(310)의 유형에 대해 로봇(100)에 대한 위험성에 따라 충돌 영역(230)의 구역들을 가중하거나 분류할 수 있다. 이것은 로봇(100)이 위험성은 높지만 임팩트(310) 가능성이 낮은 충돌 영역(230)의 구역들을 고려하게 할 수 있다.
[0062] 도 3d에 도시된 바와 같은 일부 구현예들에서, 임팩트(310)가 다리(104)가 반대측 다리(104C)와 교차하게 하는 경우(예를 들어, 앞다리(104a)가 다른 반대측 앞다리(104bC)와 교차하는 것으로 도시됨), 임팩트 검출기(300)는 교차된 다리들(104)을 푸는 응답(320)을 생성한다. 예를 들어, 응답(320)은 교차된 다리들(104)을 풀고 반대측 다리(104C)와의 추가 접촉을 회피하기 위해 스윙 다리(104SW)가 모션 경로를 반전시키도록 명령할 수 있다. 일부 구성들에서, 응답(320)은, 임팩트 검출기(300)가 먼저 임팩트(310)를 검출하고, 스윙 다리(104SW)가 (예를 들어, 스윙 다리(104SW)가 스탠스 다리(104ST) 앞으로 교차되었는지 스탠스 다리(104ST) 뒤로 교차되었는지 여부에 따라) 전방 또는 후방으로 이동하도록 명령한 후에 스윙 다리(104SW)가 다리들(104)의 교차를 풀도록 측방향으로 이동하도록 명령하는 2-부분 응답이다. 응답(320)이 스윙 다리(104SW)가 다른 모션 경로를 취하도록 명령한 경우(예를 들어, 먼저 교차에 대처하려고 시도하기 위해 로봇(100)의 몸체(102)를 가로질러 다리(104)를 측방향으로 이동시킴), 스윙 다리(104SW)는 로봇(100)을 넘어뜨리거나 반대측 스탠스 다리(104C, 104ST)와 추가로 충돌한다. 더욱이, 응답(320)이 조정된 스텝 위치를 생성하지 않았다면, 스윙 다리(104SW)는 스탠스 다리(104ST)가 스윙 다리(104SW)가 될 때 스탠스 다리(104ST)가 후속 모션을 차단하는 포지션에 착지할 수 있다.
[0063] 다른 구현예들에서, 도 3e에 도시된 바와 같이, 임팩트(310)가 다리(104)(예를 들어, 스윙 앞다리(104a, 104SW))가 반대측 다리(104C)와 부딪치지만 교차하지 않게 하는 경우, 임팩트 검출기(300)는 스윙 다리(104SW)가 반대측 다리(104C)로부터 멀리 이동하게 하는 응답(320)을 생성한다. 여기서, 임팩트 검출기(300)는 임팩트(310)가 반대측 다리(104C)의 교차(예를 들어, 스윙 다리(104SW)가 반대측 다리(104C)의 내부와 부딪침)를 초래하지 않는다고 결정한다. 반대측 다리(104C)(예를 들어, 반대측 다리(104bC))와의 임팩트(310)가 교차를 초래하지 않는 경우, 임팩트 검출기(300)는 임팩트(310)에 대처하기 위해 조정된 목표 위치로서 스윙 다리(104SW)의 이동 위치에 대한 보다 많은 응답 옵션들을 갖는다. 예를 들어, 여기서, 스윙 다리(104SW)를 로봇(100)의 몸체(102)를 가로질러 측방향으로 이동시키는 것은 다리들(104) 사이에 더 이상의 임팩트를 초래하지 않을 가능성이 있다. 일부 구성들에서, 응답(320)은 스윙 다리(104SW)가 반대측 다리(104C)에서의 포지션으로부터 시상면(PS)의 스윙 다리측 상의 조정된 목표 위치 영역(220)으로 이동하게 한다.
[0064] 일부 예들에서, 도 3f는 스윙 다리(104SW)가 횡단 경로를 계속 진행하기 위해 그 위로 그리고 그것을 지나서 스윙해야 하는 물체(O)와의 임팩트(310)(즉, 로봇(100)을 넘어뜨릴 수 있는 임팩트(310))를 갖는 스윙 다리(104SW)(예를 들어, 앞다리(104b)로서 도시됨)를 도시한다. 다시 말해서, 임팩트(310)는 로봇(100)에 대해 불안정성을 야기할 수 있는 트립 상태(trip condition)를 나타낸다. 임팩트 검출기(300)가 이러한 임팩트(310)를 검출하는 경우, 임팩트 검출기(300)는 스윙 다리(104SW)에 대한 유각기의 스테이지에 기초하여 상이한 응답들(320)을 생성할 수 있다. 임팩트 검출기(300)가 스윙 다리(104SW)가 유각기 초기에 있다고 결정하는 경우(예를 들어, 스윙 다리가 로봇(100)의 몸체(102)를 향하는 동심 모션을 받고 있음), 임팩트 검출기(300)는 스윙 다리(104SW)의 원위 단부(106)를 추가로 상승시키는(즉, 원래의 리프트오프 표면 또는 평면으로부터 원위 단부(106)의 높이를 증가시키는) 응답(320)을 생성한다. 임팩트 검출기(300)가 스윙 다리(104SW)가 유각기 후기에 있다고 결정하는 경우(예를 들어, 스윙 다리(104SW)가 착지 위치를 향하는 편심 모션을 받고 있음), 임팩트 검출기(300)는 스윙 다리(104SW)의 원위 단부(106)를 즉시 착지시키는 응답(320)을 생성한다. 이러한 응답들(320)은 로봇(100)이 트립 상태를 나타내는 임팩트(310)로부터 균형을 잃거나 실제로 넘어질 가능성을 최소화한다.
[0065] 일부 예들에서, 임팩트 검출기(300)는 임팩트(310)를 검출하지만, 비계획적인 이동(즉, 임팩트(310)에 기초한 반작용 이동)을 초래하는 응답(320)을 생성하지 않는다. 다시 말해서, 로봇(100)의 적어도 하나의 다리(104)가 임팩트(310)를 경험하더라도, 임팩트 검출기(300)는, (a) 이러한 임팩트(310)에 대한 응답(320)을 생성하지 않거나, (b) 원래 이동 경로 진행하는 응답(320)을 생성한다. 일부 예들에서, 임팩트(310) 후에, 횡단 시스템(110)(예를 들어, 제어기(120))이 임계 기간 동안 응답(320)을 수신하지 않는 경우, 횡단 시스템(110)은 임팩트(310)가 일어나지 않은 것처럼 이동을 진행한다. 다른 예들에서, 임팩트(310) 후에, 횡단 시스템(110)은 임팩트 검출기(300)가 로봇(100)이 원래의 이동 경로로 진행하도록 명시적으로 명령하는 응답(320), 또는 "무응답"과 같은 플레이스홀더(placeholder) 응답(320)을 생성하도록 추가 모션을 진행하기 전에 응답(320)을 대기하도록 구성된다.
[0066] 도 3g는 임팩트 검출기(300)가 로봇(100)의 몸체(102)에 대한 다리(104)의 상부 부분(예를 들어, 다리(104)의 허벅지에 대응함)의 임팩트(310)를 검출하는 예이다. 예를 들어, 도 3g는 앞다리(104b)가 로봇(100)의 몸체(102)에 대한 임팩트(310)를 생성하는 것을 도시한다. 여기서, 로봇(100)의 몸체(102)에 대한 허벅지의 임팩트(310)가 있더라도, 임팩트(310)는 임팩트(310)에 기초하는 반작용 이동을 야기하는 응답(320)을 생성하지 않는다.
[0067] 다른 예로서, 도 3h는 다리(104)가 표면(예를 들어, 계단(20)의 디딤면(22))에서 들어올려질 때 임팩트 검출기(300)가 다리(104)의 원위 단부(106)(예를 들어, 앞다리(104a)의 원위 단부(106a))의 임팩트(310)를 검출하는 것을 도시한다. 예를 들어, 다리(104)가 유각기 초기에 스탠스 다리(104ST)로부터 스윙 다리(104SW)로 전환할 때, 다리(104)(예를 들어, 스윙 다리(104a, 104SW))의 리프트오프는 임팩트(310)(예를 들어, 표면에 대한 로봇(100)의 원위 단부(106a) 또는 발의 의 스커핑(Scuffing))를 생성한다. 리프트오프 스커핑은 또한 스탠스 다리(104ST)의 원위 단부(106)가 계단-유사 지형에 적어도 부분적으로 박히게 될 때 계단-유사 지형에 대해 일어날 수 있으며, 그에 따라 스탠스 다리(104ST)가 후속적으로 유각기를 시작할 때, 부분 박힘으로부터의 각각의 다리(104)를 제거하는 상향 모션은 임팩트(310)를 야기한다. 임팩트 검출기(300)가 임팩트(310)가 다리(104)의 원위 단부(106)에 대한 리프트오프 스커핑에 대응하는 것을 검출하는 경우, 임팩트 검출기(300)는 임팩트(310)에 기초하는 반작용 이동의 응답(320)을 생성하지 않는다. 여기서, 임팩트 검출기(300)는 스윙 다리(104SW)가 리프트오프 스커핑 후에 상향으로 계속 이동하고 임팩트(310)를 유발하는 장애물을 자연스럽게 제거할 가능성이 있기 때문에 반작용 이동을 생성하지 않을 수 있다.
[0068] 또 다른 예에서, 도 3i에 도시된 바와 같이, 임팩트 검출기(300)는 로봇(100) 아래의 지형에 대한 로봇(100)의 다리(104)(예를 들어, 뒷다리(104d))의 무릎 관절(JK)의 임팩트(310)를 검출한다. 여기서, 임팩트 검출기(300)는 이러한 유형의 임팩트(310)가 종종 스치는 임팩트(glancing impact)이기 때문에 임팩트(310)에 기초하는 반작용 이동의 응답(320)을 생성하지 않는다. 예를 들어, 로봇(100)이 계단들(20)을 내려가고 로봇(100)의 몸체(102)가 너무 낮은 경우, 스윙 다리(104SW)는 이동 방향(TD)으로 전방으로 스윙하고, 무릎 관절(JK)은 스윙 다리(104SW)가 이를 지나서 스윙하도록 의도되는 계단(20)(계단(2a)으로 도시됨)을 스친다. 이것은 종종 스치는 임팩트(310)이고 스윙 다리(104SW)가 스치는 임팩트 후에 계속 스윙할 것이기 때문에, 반작용 이동의 응답(320)은 로봇(100)이 계단들(20)을 성공적으로 횡단하는 데 종종 필요하지 않다. 이것은 몸체(102)의 높이와 로봇(100)의 다리들(104)의 운동학의 조합으로 인해 발생할 수 있다. 다시 말해서, 다리(104)는 무릎 관절(JK)이 각각의 다리(104)에 대한 유각기의 포지션 동안에 똑바로 아래로 놓이도록 구성될 수 있다. 유각기 동안의 이러한 무릎 관절(JK) 포지션으로 인해, 무릎 관절(JK)은 계단(20)의 코너(예를 들어, 디딤면(22)의 코너 또는 계단(20)의 계단코(26))를 스칠 수 있다.
[0069] 일부 예들에서, 로봇(100)이 계단들(20) 또는 계단-유사 지형을 횡단하는 것을 돕기 위해, 몸체 플래너(150)는 로봇(100)의 시상면(PS)으로부터 멀리 스윙 다리(104SW)의 무릎 관절(JK)을 위치결정하도록 제어기(120)에 명령한다. 예를 들어, 도 3j는 로봇(100)의 시상면(PS)으로부터 멀리, 그리고 다리(104)의 중립 포지션으로부터 멀리(예를 들어, 제1 축(A1)의 측방향 외측으로) 위치결정된 무릎 관절(JK)을 도시한다. 다시 말해서, 종종 로봇(100)의 다리(104)에 대한 중립 포지션은, 원위 단부(106)에서 다리(104)에 가해지는 임의의 힘을 균일하게 분배하고 관절들(JK, JH)에 의해 경험되는 토크를 최소화하려고 시도하기 위해 무릎 관절(JK)이 히프 관절(JH) 아래에 대체로 정렬되도록, 로봇(100)의 다리(104)가 접지면(예를 들어, 계단(20)의 디딤면(22)의 표면)에 대체로 수직일 때 발생한다. 여기서, 도 3j는 히프 관절(JH) 및 무릎 관절(JK)이 제2 축(A2)을 따라 정렬될 때 중립 포지션으로서 스탠스 앞다리(104b, 104ST)를 도시한다. 스윙 다리(104SW)의 무릎 관절(JK)을 로봇(100)의 시상면(PS)으로부터 멀리 위치결정함으로써, 스윙 다리(104SW)와 연관된 무릎 관절(JK)은 계단들(20) 또는 계단-유사 지형을 횡단하기 위한 이동 경로로부터의 잠재적인 편차 및 임팩트 검출기(300)에 의한 응답(320)을 초래하는 충돌(C)을 야기할 가능성이 적을 수 있다.
[0070] 일부 예들에서, 도 3k에 도시된 바와 같이, 계단(20)을 횡단하는 동안 로봇(100)은 선행 다리(104L) 및 후행 다리(104T)를 갖는다. 이러한 예들에서, 로봇(100)은, 4족 보행 로봇의 경우에, 앞다리들(104a 및 104b) 중 하나와 뒷다리들(104c 및 104d) 중 하나가 실질적으로 서로 협력하여 이동하도록 계단들(20)을 기어오르거나 기어내려갈 수 있다. 예를 들어, 로봇(100)이 기는 방식(crawling manner)으로 이동하여 계단들(20)을 횡단하도록, 앞다리(104a 및 104b)는 로봇(100)의 몸체(102)의 반대측에 있는 뒷다리(104c 및 104d)와 유사한 시간에 이동한다. 일부 예들에서, 선행 다리(104L)는 초기에 계단들(20)을 올라가거나 내려가도록 이동하는 다리(104)를 지칭하는 반면, 후행 다리(104T)는 로봇(100)이 계단들(20)을 횡단할 때의 타이밍에서 선행 다리(104L)를 추종하는 다리(104)를 지칭한다. 앞다리(104a 및 104b) 및 뒷다리(104c 및 104d)가 협력하여 이동할 수 있기 때문에, 각 세트의 다리들(104)(예를 들어, 앞다리 세트와 뒷다리 세트)은 선행 다리(104L) 및 후행 다리(104T)를 갖는다. 일부 예들에서, 선행 다리(104L)는 로봇(100)이 계단들(20)을 횡단할 때 초기 스윙 다리(104SW)에 의해 결정되는 반면, 후행 다리(104T)는 초기 스탠스 다리(104ST)에 대응한다. 일부 구성들에서, 선행 다리(104L)(또는 스윙 다리(104SW))의 원위 단부(106)를 계단(20)의 목표 스텝 위치로 이동시킬 때, 로봇(100)은 선행 다리(104L)에 대해 계단(20) 아래(올라가는 경우) 또는 위에(내려가는 경우) 위치된 후단 계단(20)의 대응하는 스텝 영역(220) 내에 위치된 목표 스텝 위치에 후행 다리(104T)의 원위 단부(106)를 위치결정한다. 예를 들어, 도 3k는 로봇이 계단들(20)을 올라가고 있을 때 제1 계단(20a)에 있는 선행 다리(104a, 104L)와 제1 계단(20a) 아래의 제2 계단(20b)에 있는 후행 다리(104b, 104T)를 도시한다. 도시된 예에서, 후행 다리(104T)가 위치되는 후단 계단(20)과 연관된 제2 계단(20b)은 선행 다리(104L)에 대한 목표 스텝 위치와 연관된 제1 계단(20a)에 인접하여 있다. 그러나, 다른 예들에서, 하나 이상의 중간 계단들(20)은 선행 다리(104L)에 대한 목표 스텝 위치와 연관된 선단 계단(20)과, 후행 다리(104T)에 대한 후행 스텝 위치와 연관된 후단 계단(20) 사이에 존재할 수 있다. 예를 들어, 도 1a를 참조하면, 보다 얕은 깊이들(d)을 갖는 디딤면들(22) 및/또는 보다 짧은 높이들(h)을 갖는 수직면들(24)을 가지는 계단들(20)은 목표 스텝 위치로 이동할 때 선행 다리(104L)(또는 스윙 다리(104SW))가 하나 이상의 계단들을 지나치게 할 수 있으며, 그에 따라 선행 다리(104L)에 대한 목표 스텝 위치와 연관된 선단 계단(20)과, 후행 다리(104T)에 대한 후행 스텝 위치와 연관된 후단 계단(20) 사이에 하나 이상의 중간 계단들(20)이 존재한다.
[0071] 일반적으로 말하면, 로봇(100)은 환경(10) 내의 지형의 구조물에 관한 많을 가정들을 포함하지 않을 수 있다. 가정들 없이, 로봇(100)의 시스템들은 센서 데이터(164)를 분석하여 환경(10) 내의 지형 유형을 결정한다. 이러한 접근방식은 노이즈가 많은 센서 데이터(164) 때문에 또는 보다 광범위하게 말하면 많은 수의 지형 가능성들이 존재하기 때문에 문제가 될 수 있다. 계단들(20)의 경우에, 계단들(20)은 종종 건축 법규들, 인체공학적 원리들, 또는 다른 건축 관례들에 기초하는, 예를 들어 디딤면들(22), 수직면들(24) 및 계단코들(26)과 같은 알려진 형상들을 포함한다. 일부 구성들에서, 로봇(100)은 계단들(20)에 대해 알려진 형상들을 이용하고, 도 4에 도시된 바와 같이 계단 트랙커(stair tracker)(400)를 포함한다. 계단 트랙커(400)는 계단들(20)이 일관된 구조를 나타낸다는 가정을 이용하는 로봇(100)의 시스템이다. 계단들(20)에 대한 구조적 가정들에 기초하여, 계단 트랙커(400)는 센서 데이터(164)를 수신하고 계단들(20)에 대한 가정들을 센서 데이터(164)에 피팅(fitting)시키고자 하도록 구성된다. 계단들(20)에 대한 구조적 가정들이 센서 데이터(164)와 피팅되는 경우, 계단 트랙커(400)는 센서 데이터(164)에 대응하는 지형을 계단들(20)로서 식별한다. 일부 예들에서, 계단 트랙커(400)가 센서 데이터(164) 내에서 계단들(20)을 식별하는 경우, 계단 트랙커(400)는 센서 데이터(164)로부터 계단들(20)에 대한 추가 세부사항들을 결정하도록 진행한다. 이러한 세부사항들은 (예를 들어, 로봇(100)에 대한) 계단들(20)의 정확한 배향, 각각의 계단(20)의 깊이("d"), 각각의 계단(20)의 높이("h") 등을 포함할 수 있다. 도 4는 (예를 들어, 스테레오 카메라로부터의) 센서 데이터(164)의 포인트 클라우드를 도시하며, 계단들(20)의 세트가 센서 데이터(164) 위에 부여되어 있다. 여기서, 계단 트랙커(400)는, 계단들(20)이 센서 데이터(164) 내에 존재한다는 가정을 사용하여, 센서 데이터(164)가 계단 구조의 피치와 유사한 포인트 클라우드 패턴을 갖는다고 식별한다. 이러한 예는 계단 트랙커(400)가 환경(10)에 대한 센서 데이터(164)에 노이즈가 많은 경우에도 계단들(20)을 식별하는 데 유리할 수 있음을 나타낸다.
[0072] 도 5는 계단들(20)을 오르내리는 방법(500)의 일 예이다. 동작(502)에서, 방법(500)은 계단들(20)을 갖는 환경(10)에서 기동하는 로봇(100)에 관한 이미지 데이터(164)를 수신한다. 로봇(100)은 2 개 이상의 다리들(104)을 포함한다. 동작(504)에서, 방법(500)은 로봇(100)이 계단들(20)을 횡단하기 전에 동작(504a) 및 동작(504b)을 수행한다. 동작(504a)에서, 방법(500)은 수신된 이미지 데이터(164)에 기초하여 각각의 계단(20)에 대해 대응하는 스텝 영역(220)을 결정한다. 스텝 영역(220)은 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)에 대한 대응하는 계단(20) 상의 안전한 배치 구역을 식별한다. 동작(504b)에서, 방법(500)은 로봇(100)의 전방 부분을 향해 로봇(100)의 중량 분포를 시프팅시킨다. 동작(506)에서, 로봇(100)이 계단들(20)을 횡단할 때, 각각의 계단(20)에 대해, 방법(500)은 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 목표 스텝 위치로 이동시킨다. 목표 스텝 위치는 계단(20)의 대응하는 스텝 영역(220) 내에 있다.
[0073] 도 6은 본 명세서에 설명된 로봇(100)의 시스템들(예를 들어, 횡단 시스템(110), 제어기(120), 지각 시스템(200), 임팩트 검출기(300), 계단 트랙커(400) 등) 및 방법들(예를 들어, 방법(500))을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(600)의 개략도이다. 컴퓨팅 디바이스(600)는 랩탑들, 데스크탑들, 워크스테이션들, 개인용 정보 단말기들, 서버들, 블레이드 서버들(blade servers), 메인프레임들(mainframes) 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 본원에 나타낸 구성요소들, 이들의 연결들 및 관계들, 및 이들의 기능들은 단지 예시적인 것이며, 본 명세서에서 설명 및/또는 청구된 발명들의 구현예들을 제한하려는 것은 아니다.
[0074] 컴퓨팅 디바이스(600)는 프로세서(610), 메모리(620), 저장 디바이스(630), 메모리(620) 및 고속 확장 포트들(650)에 연결되는 고속 인터페이스/제어기(640), 저속 버스(670) 및 저장 디바이스(630)에 연결되는 저속 인터페이스/제어기(660)를 포함한다. 구성요소들(610, 620, 630, 640, 650 및 660) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 장착되거나 적절하게 다른 방식들로 장착될 수 있다. 프로세서(610)는, 고속 인터페이스(640)에 연결된 디스플레이(680)와 같은 외부 입/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 표시하기 위해, 메모리(620) 또는 저장 디바이스(630)에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(600) 내에서 실행하기 위한 명령들을 처리할 수 있다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 메모리 유형들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)이 연결될 수 있으며, 각각의 디바이스는 (예를 들어, 서버 뱅크(server bank), 블레이드 서버들의 그룹, 또는 다중 프로세서 시스템으로서) 필요한 동작들의 일부들을 제공한다.
[0075] 메모리(620)는 컴퓨팅 디바이스(600) 내에 비일시적으로 정보를 저장한다. 메모리(620)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(620)는 컴퓨팅 디바이스(600)에 의한 사용을 위해 임시적 또는 영구적으로 프로그램들(예를 들어, 명령들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(ROM)/프로그램 가능 판독 전용 메모리(PROM)/소거 가능한 프로그램 가능 판독 전용 메모리(EPROM)/전자적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어에 사용됨)를 포함하지만 이에 제한되지 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 상변화 메모리(PCM)뿐만 아니라, 디스크들 또는 테이프들을 포함하지만 이에 제한되지 않는다.
[0076] 저장 디바이스(630)는 컴퓨팅 디바이스(600)를 위한 대용량 스토리지를 제공할 수 있다. 일부 구현예들에서, 저장 디바이스(630)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현예들에서, 저장 디바이스(630)는, 스토리지 영역 네트워크(storage area network) 내의 디바이스들 또는 다른 구성들을 포함하는, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이일 수 있다. 추가 구현예들에서, 컴퓨터 프로그램 제품은 정보 캐리어(information carrier)에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(620), 저장 디바이스(630), 또는 프로세서(610) 상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
[0077] 고속 제어기(640)는 컴퓨팅 디바이스(600)에 대한 대역폭 집약적 동작들(bandwidth-intensive operations)을 관리하는 한편, 저속 제어기(660)는 보다 낮은 대역폭 집약적 동작들을 관리한다. 임무들(duties)의 그러한 할당은 단지 예시적인 것일 뿐이다. 일부 구현예들에서, 고속 제어기(640)는 메모리(620)에, (예를 들어, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(680)에, 그리고 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(650)에 연결된다. 일부 구현예들에서, 저속 제어기(660)는 저장 디바이스(630) 및 저속 확장 포트(690)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(690)는 하나 이상의 입/출력 디바이스들, 예컨대 키보드, 포인팅 디바이스, 스캐너, 또는, 예를 들어 네트워크 어댑터를 통해, 스위치 또는 라우터(router)와 같은 네트워킹 디바이스에 결합될 수 있다.
[0078] 컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(600)는 표준 서버(600a)로서 또는 그러한 서버들(600a)의 그룹에 여러 번 구현되거나, 랩톱 컴퓨터(600b)로서, 또는 랙 서버 시스템(rack server system)(600c)의 일부로서 구현될 수 있다.
[0079] 본원에 설명된 시스템들 및 기술들의 다양한 구현예들은 디지털 전자 및/또는 광 회로, 집적 회로, 특수 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현예들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들로부터 데이터 및 명령들을 송신하도록 결합된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현예를 포함할 수 있다.
[0080] 이러한 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그램 가능한 프로세서에 대한 기계 명령들을 포함하고, 고급 절차 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에 사용된 바와 같이, 용어 "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"는 기계 판독 가능 신호로서 기계 명령들을 수신하는 기계 판독 가능 매체를 포함하는 프로그램 가능 프로세서에 기계 명령들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, 프로그램 가능 논리 디바이스들(PLDs))를 지칭한다. 용어 "기계 판독 가능 신호"는 기계 명령들 및/또는 데이터를 프로그램 가능한 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다.
[0081] 본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령들을 수행하기 위한 프로세서, 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어 자기 디스크들, 광자기 디스크들 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나, 또는 둘 모두를 수행하도록 작동적으로 결합된다. 그러나, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체들은, 예로서, 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
[0082] 사용자와의 상호 작용을 제공하기 위해, 본 개시내용의 하나 이상의 양태들은 디스플레이 디바이스, 예를 들어, CRT(cathode ray tube), LCD(liquid crystal display) 모니터, 또는 정보를 사용자에게 표시하기 위한 터치 스크린, 및 선택적으로, 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼(trackball)을 갖는 컴퓨터에서 구현될 수 있다. 사용자와 상호 작용을 또한 제공하기 위해 다른 종류들의 디바이스들이 사용될 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각적 피드백, 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성(speech) 또는 촉각 입력을 포함하여, 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자가 사용하는 디바이스로 문서들을 전송하고 디바이스로부터 문서를 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 사용자와 상호 작용할 수 있다.
[0083] 다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위로부터 벗어남이 없이 다양한 변형들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현예들은 하기의 청구범위의 범위 내에 있다.

Claims (24)

  1. 방법(500)으로서,
    데이터 처리 하드웨어(data processing hardware)(172)에서, 계단들(20)을 갖는 환경(10)에서 기동하는 로봇(100)에 대한 이미지 데이터(image data)(164)를 수신하는 단계 ― 상기 로봇(100)은 2 개 이상의 다리들(legs)(104)을 포함함 ―;
    상기 로봇(100)이 상기 계단들(20)을 횡단하기 전에,
    각각의 계단(20)에 대해, 상기 데이터 처리 하드웨어(172)에 의해, 수신된 이미지 데이터(164)에 기초하여 대응하는 스텝 영역(step region)(220)을 결정하는 단계 ― 상기 스텝 영역(220)은 상기 로봇(100)의 대응하는 스윙 다리(swing leg)(104SW)의 원위 단부에 대한 대응하는 계단(20) 상의 안전한 배치 구역을 식별함 ―; 및
    상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 중량 분포를 상기 로봇(100)의 전방 부분을 향해 시프팅(shifting)시키는 단계; 및
    상기 로봇(100)이 상기 계단들(20)을 횡단할 때, 각각의 계단(20)에 대해, 상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 계단의 대응하는 스텝 영역(220) 내에 있는 목표 스텝 위치로 이동시키는 단계를 포함하는,
    방법(500).
  2. 제1 항에 있어서,
    상기 로봇(100)이 상기 계단들(20)을 횡단하기 전에, 상기 데이터 처리 하드웨어(172)에 의해, 각각의 계단(20)에 대한 대응하는 충돌 영역(230)을 식별하는 단계를 더 포함하며, 상기 충돌 영역(230)은 상기 로봇(100)이 상기 계단들(20)을 횡단할 때 상기 로봇(100)의 다리들(104)이 회피해야 하는 상기 대응하는 계단(20)의 영역에 대응하는,
    방법(500).
  3. 제2 항에 있어서,
    상기 로봇(100)이 상기 계단들(20)을 횡단할 때, 상기 데이터 처리 하드웨어(172)에 의해, 상기 계단들(20)의 표면에 대한 상기 로봇(100)의 질량 중심(COM)의 몸체 높이, 및 상기 로봇(100)의 몸체(102)를 따라 규정된 길이 방향 축을 중심으로 한 상기 로봇(100)의 피치(pitch)를 조정하는 단계를 더 포함하며, 상기 몸체 높이 및 피치의 조정은 각각의 계단(20)에 대해 식별된 상기 대응하는 충돌 영역(230)에 기초하는,
    방법(500).
  4. 제2 항에 있어서,
    상기 로봇(100)이 상기 계단들(20)을 횡단할 때,
    상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 각각의 다리(104)에 대한 대응하는 다리 운동학(leg kinematics)을 식별하는 단계; 및
    상기 데이터 처리 하드웨어(172)에 의해, 상기 계단들(20)의 표면에 대한 상기 로봇(100)의 질량 중심(COM)의 몸체 높이, 및 상기 로봇(100)의 몸체(102)를 따라 규정된 길이 방향 축을 중심으로 한 상기 로봇(100)의 피치를 조정하는 단계를 더 포함하며, 상기 몸체 높이 및 피치의 조정은 각각의 계단(20)에 대해 식별된 상기 대응하는 충돌 영역(230) 및 상기 로봇(100)의 각각의 다리(104)에 대한 대응하는 다리 운동학에 기초하는,
    방법(500).
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 대응하는 스윙 다리(swing leg)(104SW)의 원위 단부(106)를 상기 목표 스텝 위치(target step location)로 이동시키는 동안에,
    상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)가 상기 목표 스텝 위치에 있는 상기 대응하는 계단(20)과 접촉하는 것을 검출하는 단계; 및
    상기 검출에 기초하여, 상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 대응하는 스윙 다리(104SW)를 스탠스 다리(stance leg)(104ST)로 분류하는 단계를 더 포함하는,
    방법(500).
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 후행 다리(trailing leg)(104T)의 무릎 관절(JK)이 상기 로봇(100)의 몸체(102) 뒤의 물체와 접촉하는 것을 검출하는 단계; 및
    상기 검출에 기초하여, 상기 데이터 처리 하드웨어(172)에 의해, 상기 후행 다리(104T)의 무릎 관절(JK)을 상기 로봇(100)의 몸체(102) 아래로 전방으로 이동시키는 단계를 더 포함하는,
    방법(500).
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 대응하는 스윙 다리(104SW)와 상기 로봇(100)의 반대측 스탠스 다리(104C) 사이의 임팩트(impact)(310)를 검출하는 단계; 및
    검출된 임팩트(310)에 기초하여, 상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 로봇(100)의 반대측 스탠스 다리(104C)로부터 멀리 조정된 스텝 위치로 시프팅시키는 단계를 더 포함하며, 상기 조정된 스텝 위치는 상기 계단의 대응하는 스텝 영역(220) 내에 있고 상기 목표 스텝 위치에 대해 시프팅되는,
    방법(500).
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 데이터 처리 하드웨어(172)에 의해, 상기 로봇(100)의 불안정성을 야기하는 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 트립 상태(trip condition)를 검출하는 단계; 및
    검출된 트립 상태에 기초하여, 상기 데이터 처리 하드웨어(172)에 의해, 상기 대응하는 스윙 다리의 원위 단부(106)를 상승시키는 단계를 더 포함하는,
    방법(500).
  9. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    상기 로봇(100)이 상기 계단들(20)을 횡단하기 전에, 상기 데이터 처리 하드웨어(172)에 의해, 고정 케이던스(fixed cadence)를 갖는 상기 계단들(20)을 횡단하기 위한 이동 제어기(120)를 선택하는 단계를 더 포함하며, 상기 고정 케이던스는 각각의 계단(20)에 대해 결정된 상기 대응하는 스텝 영역(220)에 기초하는,
    방법(500).
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시킬 때, 상기 데이터 처리 하드웨어(172)에 의해, 스탠스 다리(104ST)의 원위 단부(106)를 후단 계단(20)에 위치결정하는 단계를 더 포함하며,
    상기 후단 계단(20)은,
    상기 로봇(100)이 상기 계단들(20)을 올라갈 때 상기 대응하는 스윙 다리(104SW)에 대한 목표 스텝 위치와 연관된 계단(20) 아래; 또는
    상기 로봇(100)이 상기 계단들(20)을 내려갈 때 상기 대응하는 스윙 다리(104SW)에 대한 목표 스텝 위치와 연관된 계단(20) 위 중 하나에 위치되는,
    방법(500).
  11. 제10 항에 있어서,
    상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)에 의한 이동 및 상기 로봇(100)의 스탠스 다리(104ST)의 원위 단부(106)에 의한 이동은 고정 케이던스로 일어나는,
    방법(500).
  12. 제1 항 내지 제11 항 중 어느 한 항에 있어서,
    각각의 계단(20)에 대해 결정된 상기 대응하는 스텝 영역(220)은, 상기 대응하는 계단(20)의 디딤면 부분(tread portion)(22)과 연관되는,
    방법(500).
  13. 로봇(100)으로서,
    몸체(102);
    몸체(102)에 결합되고 계단들(20)을 갖는 환경(10)을 횡단하도록 구성된 2 개 이상의 다리들(104); 및
    2 개 이상의 다리들(104)과 통신하는 이동 제어기(120)를 포함하며, 상기 이동 제어기(120)는 데이터 처리 하드웨어(172) 및 상기 데이터 처리 하드웨어(172)와 통신하는 메모리 하드웨어(174)를 포함하고, 상기 메모리 하드웨어(174)는, 상기 데이터 처리 하드웨어(172) 상에서 실행될 때, 상기 데이터 처리 하드웨어(172)가 동작들을 수행하게 하는 명령들을 저장하고,
    상기 동작들은,
    계단들(20)을 갖는 환경(10)에서 기동하는 상기 로봇(100)에 대한 이미지 데이터(164)를 수신하는 동작;
    상기 로봇(100)이 상기 계단들(20)을 횡단하기 전에,
    각각의 계단(20)에 대해, 수신된 이미지 데이터(164)에 기초하여 대응하는 스텝 영역(220)을 결정하는 동작―상기 스텝 영역(220)은 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)에 대한 대응하는 계단(20) 상의 안전한 배치 구역을 식별함―; 및
    상기 로봇(100)의 중량 분포를 상기 로봇(100)의 전방 부분을 향해 시프팅시키는 동작; 및
    상기 로봇(100)이 상기 계단들(20)을 횡단할 때, 각각의 계단(20)에 대해, 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 계단의 대응하는 스텝 영역(220) 내에 있는 목표 스텝 위치로 이동시키는 동작을 포함하는,
    로봇(100).
  14. 제13 항에 있어서,
    상기 동작들은, 상기 로봇(100)이 상기 계단들(20)을 횡단하기 전에, 각각의 계단(20)에 대한 대응하는 충돌 영역(230)을 식별하는 동작을 더 포함하며, 상기 충돌 영역(230)은 상기 로봇(100)이 상기 계단들(20)을 횡단할 때 상기 로봇(100)의 다리들(104)이 회피해야 하는 상기 대응하는 계단(20)의 영역에 대응하는,
    로봇(100).
  15. 제14 항에 있어서,
    상기 동작들은, 상기 로봇(100)이 상기 계단들(20)을 횡단할 때, 상기 계단들(20)의 표면에 대한 상기 로봇(100)의 질량 중심(COM)의 몸체 높이, 및 상기 로봇(100)의 몸체(102)를 따라 규정된 길이 방향 축을 중심으로 한 상기 로봇(100)의 피치를 조정하는 동작을 더 포함하며, 상기 몸체 높이 및 피치의 조정은 각각의 계단(20)에 대해 식별된 상기 대응하는 충돌 영역(230)에 기초하는,
    로봇(100).
  16. 제14 항에 있어서,
    상기 동작들은, 상기 로봇(100)이 상기 계단들(20)을 횡단할 때,
    상기 로봇(100)의 각각의 다리(104)에 대한 대응하는 다리 운동학을 식별하는 동작; 및
    상기 계단들(20)의 표면에 대한 상기 로봇(100)의 질량 중심(COM)의 몸체 높이, 및 상기 로봇(100)의 몸체(102)를 따라 규정된 길이 방향 축을 중심으로 한 상기 로봇(100)의 피치를 조정하는 동작을 더 포함하며, 상기 몸체 높이 및 피치의 조정은 각각의 계단(20)에 대해 식별된 상기 대응하는 충돌 영역(230) 및 상기 로봇(100)의 각각의 다리(104)에 대한 대응하는 다리 운동학에 기초하는,
    로봇(100).
  17. 제13 항 내지 제16 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)가 상기 목표 스텝 위치에 있는 상기 대응하는 계단(20)과 접촉하는 것을 검출하는 동작; 및
    상기 검출에 기초하여, 상기 로봇(100)의 대응하는 스윙 다리(104SW)를 스탠스 다리(104ST)로 분류하는 동작을 더 포함하는,
    로봇(100).
  18. 제13 항 내지 제17 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 로봇(100)의 후행 다리(104T)의 무릎 관절(JK)이 상기 로봇(100)의 몸체(102) 뒤의 물체와 접촉하는 것을 검출하는 동작; 및
    상기 검출에 기초하여, 상기 후행 다리(104T)의 무릎 관절(JK)을 상기 로봇(100)의 몸체(102) 아래로 전방으로 이동시키는 동작을 더 포함하는,
    로봇(100).
  19. 제13 항 내지 제18 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 로봇(100)의 대응하는 스윙 다리(104SW)와 상기 로봇(100)의 반대측 스탠스 다리(104C) 사이의 임팩트(310)를 검출하는 동작; 및
    검출된 임팩트(310)에 기초하여, 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 로봇(100)의 반대측 스탠스 다리(104C)로부터 멀리 조정된 스텝 위치로 시프팅시키는 동작을 더 포함하며, 상기 조정된 스텝 위치는 상기 계단의 대응하는 스텝 영역(220) 내에 있고 상기 목표 스텝 위치에 대해 시프팅되는,
    로봇(100).
  20. 제13 항 내지 제19 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시키는 동안에,
    상기 로봇(100)의 불안정성을 야기하는 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 트립 상태를 검출하는 동작; 및
    검출된 트립 상태에 기초하여, 상기 대응하는 스윙 다리의 원위 단부(106)를 상승시키는 동작을 더 포함하는,
    로봇(100).
  21. 제13 항 내지 제20 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 로봇(100)이 상기 계단들(20)을 횡단하기 전에, 고정 케이던스를 갖는 상기 계단들(20)을 횡단하기 위한 이동 제어기(120)를 선택하는 동작을 더 포함하며, 상기 고정 케이던스는 각각의 계단(20)에 대해 결정된 상기 대응하는 스텝 영역(220)에 기초하는,
    로봇(100).
  22. 제13 항 내지 제21 항 중 어느 한 항에 있어서,
    상기 동작들은, 상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)를 상기 목표 스텝 위치로 이동시킬 때, 스탠스 다리(104ST)의 원위 단부(106)를 후단 계단(20) 상에 위치결정하는 동작을 더 포함하며,
    상기 후단 계단(20)은,
    상기 로봇(100)이 상기 계단들(20)을 올라갈 때 상기 대응하는 스윙 다리(104SW)에 대한 목표 스텝 위치와 연관된 계단(20) 아래; 또는
    상기 로봇(100)이 상기 계단들(20)을 내려갈 때 상기 대응하는 스윙 다리(104SW)에 대한 목표 스텝 위치와 연관된 계단(20) 위 중 하나에 위치되는,
    로봇(100).
  23. 제22 항에 있어서,
    상기 로봇(100)의 대응하는 스윙 다리(104SW)의 원위 단부(106)에 의한 이동 및 상기 로봇(100)의 스탠스 다리(104ST)의 원위 단부(106)에 의한 이동은 고정 케이던스로 일어나는,
    로봇(100).
  24. 제13 항 내지 제23 항 중 어느 한 항에 있어서,
    각각의 계단(20)에 대해 결정된 상기 대응하는 스텝 영역(220)은 상기 대응하는 계단(20)의 디딤면 부분(22)과 연관되는,
    로봇(100).
KR1020217036795A 2019-04-12 2019-08-23 로봇으로 계단들을 오르내리기 KR20210152055A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/382,390 2019-04-12
US16/382,390 US11548151B2 (en) 2019-04-12 2019-04-12 Robotically negotiating stairs
PCT/US2019/047928 WO2020209888A1 (en) 2019-04-12 2019-08-23 Robotically negotiating stairs

Publications (1)

Publication Number Publication Date
KR20210152055A true KR20210152055A (ko) 2021-12-14

Family

ID=67928884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217036795A KR20210152055A (ko) 2019-04-12 2019-08-23 로봇으로 계단들을 오르내리기

Country Status (6)

Country Link
US (4) US11548151B2 (ko)
EP (1) EP3953779A1 (ko)
JP (1) JP7351920B2 (ko)
KR (1) KR20210152055A (ko)
CN (1) CN113661462A (ko)
WO (1) WO2020209888A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9517561B2 (en) * 2014-08-25 2016-12-13 Google Inc. Natural pitch and roll
US11599128B2 (en) 2020-04-22 2023-03-07 Boston Dynamics, Inc. Perception and fitting for a stair tracker
US11548151B2 (en) * 2019-04-12 2023-01-10 Boston Dynamics, Inc. Robotically negotiating stairs
CN110919653B (zh) * 2019-11-29 2021-09-17 深圳市优必选科技股份有限公司 机器人的爬楼控制方法、装置、存储介质和机器人
CN111127497B (zh) * 2019-12-11 2023-08-04 深圳市优必选科技股份有限公司 一种机器人及其爬楼控制方法和装置
US11560192B2 (en) * 2020-04-24 2023-01-24 Ubtech Robotics Corp Ltd Stair climbing gait planning method and apparatus and robot using the same
CN112572630A (zh) * 2020-11-05 2021-03-30 江苏金成源实业投资有限公司 一种用于楼梯运输的机器人
CN112572624A (zh) * 2020-12-22 2021-03-30 武汉尹珞蝌蚪教育科技有限公司 一种可远程操控的可攀高机器人
CN112847340B (zh) * 2020-12-25 2022-09-16 深圳市优必选科技股份有限公司 一种控制方法、控制装置及机器人
CN112847356B (zh) * 2020-12-31 2022-05-20 国网智能科技股份有限公司 一种变电站足式巡检机器人安全控制方法及系统
CN112623066B (zh) * 2021-03-09 2021-05-25 北京哈崎机器人科技有限公司 一种牵引式驱动装置及足式机器人
US20230023246A1 (en) * 2021-04-02 2023-01-26 Asylon, Inc. Integration between unmanned aerial system and unmanned ground robotic vehicle
CN113534831B (zh) * 2021-07-28 2023-09-08 清华大学深圳国际研究生院 一种提高四足机器人爬楼梯能力的静步态规划方法及装置
CN114161401B (zh) * 2021-11-17 2023-12-15 深圳市优必选科技股份有限公司 质心高度规划方法、装置、计算机可读存储介质及机器人
CN115071857B (zh) * 2022-06-15 2023-05-05 河南工程学院 一种四轮腿式全地形农业机器人
US20230415343A1 (en) 2022-06-23 2023-12-28 Boston Dynamics, Inc. Automatically trasitioning a robot to an operational mode optimized for particular terrain
WO2024035800A1 (en) * 2022-08-09 2024-02-15 Ghost Robotics Corporation Leg-stub re-swing for legged robot
CN116853379B (zh) * 2023-07-12 2024-03-26 广东福临门世家智能家居有限公司 一种不锈钢门窗制造的楼梯运输设备

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5318342B2 (ko) 1974-01-11 1978-06-14
JPS61257375A (ja) 1985-05-07 1986-11-14 Mitsubishi Heavy Ind Ltd 脚型移動機械の制御方法
JPH0780422B2 (ja) 1986-10-29 1995-08-30 マツダ株式会社 自動車のサンル−フ装置
JP3176701B2 (ja) * 1992-04-15 2001-06-18 本田技研工業株式会社 移動体の現在位置認識処理装置
US5416393A (en) 1992-05-20 1995-05-16 Honda Giken Kogyo Kabushiki Kaisha Legged mobile robot foot structure
JP3024023B2 (ja) 1992-05-22 2000-03-21 本田技研工業株式会社 脚式移動ロボットの歩行制御装置
JP3278467B2 (ja) 1992-08-18 2002-04-30 本田技研工業株式会社 移動ロボットの制御装置
JP3321943B2 (ja) 1993-12-17 2002-09-09 株式会社デンソー 燃料蒸散防止機構用異常検出装置
JP3330710B2 (ja) 1993-12-30 2002-09-30 本田技研工業株式会社 移動ロボットの位置検知および制御装置
JP3662996B2 (ja) * 1996-01-25 2005-06-22 本田技研工業株式会社 脚式移動ロボットの歩行制御装置
JP3626303B2 (ja) * 1996-12-18 2005-03-09 本田技研工業株式会社 脚式移動ロボットの足底接地位置検出装置
JP3621808B2 (ja) 1997-06-20 2005-02-16 本田技研工業株式会社 脚式移動ロボットの足平接地状態把握装置
FR2773339B1 (fr) 1998-01-06 2000-01-28 Commissariat Energie Atomique Appareil stabilise par un gyroscope, et notamment un robot bipede
JP2000153476A (ja) 1998-09-14 2000-06-06 Honda Motor Co Ltd 脚式移動ロボット
JP4295947B2 (ja) 2002-02-15 2009-07-15 ソニー株式会社 脚式移動ロボット及びその移動制御方法
EP1504858B1 (en) 2002-04-26 2014-06-04 Honda Giken Kogyo Kabushiki Kaisha Control device and footstep determination device for legged mobile robot
JP2003340763A (ja) 2002-05-24 2003-12-02 Mitsubishi Heavy Ind Ltd 2足歩行ロボットの階段昇降方法及び2足歩行ロボット
US7127326B2 (en) 2002-11-15 2006-10-24 Iguana Robotics, Inc. Certain principles of biomorphic robots including foot placement selection using non-geometric visual properties
JP2004181600A (ja) 2002-12-05 2004-07-02 Sony Corp 脚式移動ロボット
US7653216B2 (en) * 2003-12-23 2010-01-26 Carnegie Mellon University Polyhedron recognition system
WO2005087452A1 (ja) 2004-03-17 2005-09-22 Sony Corporation ロボット装置、及びその動作制御方法、並びに移動装置
US8289321B2 (en) * 2004-03-17 2012-10-16 Sony Corporation Method and apparatus for detecting plane, and robot apparatus having apparatus for detecting plane
JP4479372B2 (ja) 2004-06-25 2010-06-09 ソニー株式会社 環境地図作成方法、環境地図作成装置、及び移動型ロボット装置
US7380618B2 (en) 2005-02-22 2008-06-03 Gamma Two, Inc. Stair climbing platform apparatus and method
US7878276B2 (en) * 2005-07-08 2011-02-01 H. Phillip Limbacher, Jr. Ambulatory vehicle
EP3045273B1 (en) 2006-03-03 2018-12-12 Universal Robots A/S Joint for a robot
US8843244B2 (en) 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
US8626472B2 (en) * 2006-07-21 2014-01-07 James C. Solinsky System and method for measuring balance and track motion in mammals
JP5318342B2 (ja) 2006-10-31 2013-10-16 旭化成ケミカルズ株式会社 ニトロセルロースをバインダーとした高安全性ニトラミン発射薬
KR101074494B1 (ko) 2009-02-17 2011-10-17 동아대학교 산학협력단 이족 인간형 로봇의 계단 오르기를 위한 최적 궤적 설계 방법
KR101064638B1 (ko) 2009-02-17 2011-09-15 동아대학교 산학협력단 이족 인간형 로봇의 계단 내려오기를 위한 최적 궤적 설계 방법
WO2011017668A2 (en) 2009-08-06 2011-02-10 The Regents Of The University Of California Multimodal dynamic robotic systems
US8457830B2 (en) 2010-03-22 2013-06-04 John R. Goulding In-line legged robot vehicle and method for operating
WO2012086604A1 (ja) 2010-12-24 2012-06-28 住友重機械工業株式会社 清掃装置
JP5623362B2 (ja) 2011-09-28 2014-11-12 本田技研工業株式会社 段差部認識装置
KR20130049029A (ko) * 2011-11-03 2013-05-13 삼성전자주식회사 보행 로봇 및 그 제어 방법
KR101820299B1 (ko) * 2011-11-23 2018-03-02 삼성전자주식회사 3차원 데이터 영상의 계단 인식 방법
JP2013237126A (ja) 2012-05-15 2013-11-28 Nsk Ltd 歩容データの作成装置及び歩容データの作成方法
JP2014100767A (ja) 2012-11-20 2014-06-05 Toshiba Corp 多脚歩行ロボットの段差歩行制御装置及び方法
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
CN103273985B (zh) 2013-06-18 2015-07-08 辰星(天津)自动化设备有限公司 一种四足爬楼梯机器人机构
CN103273984A (zh) 2013-06-18 2013-09-04 辰星(天津)自动化设备有限公司 仿四足动物爬楼机器人
JP6071815B2 (ja) 2013-09-06 2017-02-01 本田技研工業株式会社 脚式移動ロボットの制御装置
JP6068302B2 (ja) 2013-09-13 2017-01-25 本田技研工業株式会社 脚式移動ロボットの制御装置
JP6071839B2 (ja) 2013-10-22 2017-02-01 本田技研工業株式会社 脚式移動ロボットの制御システム
US9849926B2 (en) * 2014-07-23 2017-12-26 Boston Dynamics, Inc. Predictively adjustable hydraulic pressure rails
NL2013355B1 (en) 2014-08-22 2016-09-23 Handicare Stairlifts B V Method and system for designing a stair lift rail assembly.
US9387896B1 (en) 2014-08-25 2016-07-12 Google Inc. Slip avoidance
US10081098B1 (en) * 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9895804B1 (en) * 2014-08-26 2018-02-20 Boston Dynamics, Inc. Failure mode
GB2529847B (en) 2014-09-03 2018-12-19 Dyson Technology Ltd A mobile Robot with Independently Adjustable Light Sources
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
US9446518B1 (en) 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9704043B2 (en) 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information
US9538702B2 (en) 2014-12-22 2017-01-10 Irobot Corporation Robotic mowing of separated lawn areas
US9499218B1 (en) 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
US9630319B2 (en) 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
US9594377B1 (en) 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US9561592B1 (en) * 2015-05-15 2017-02-07 Google Inc. Ground plane compensation for legged robots
US9586316B1 (en) * 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
DE102016221270B4 (de) * 2015-11-30 2019-03-21 Ford Global Technologies, Llc Mobile Transportvorrichtung, Fahrzeug und Verfahren zum Bewegen einer mobilen Transportvorrichtung
US9868210B1 (en) * 2015-12-30 2018-01-16 Google Inc. Methods and systems for planning a body position of a robotic device
US9925667B1 (en) * 2016-01-25 2018-03-27 Boston Dynamics, Inc. Continuous slip recovery
US10105845B1 (en) * 2016-02-05 2018-10-23 Boston Dynamics, Inc. Modular robot system
US10179619B1 (en) * 2016-03-30 2019-01-15 Schaft Inc. Robotic foot sensor
US10414318B2 (en) * 2016-04-28 2019-09-17 Rakkatec Oy Arrangement for optimizing load position in relation to transportation vehicle
US10059392B1 (en) * 2016-06-27 2018-08-28 Boston Dynamics, Inc. Control of robotic devices with non-constant body pitch
CN106547206B (zh) 2016-06-29 2019-08-06 中南大学 一种基于脚力估计算法的多足机器人动态稳定性定量判定方法
US9989970B1 (en) 2016-08-03 2018-06-05 X Development Llc Systems and methods for robots having an adjustable multi-wheel
US20180035606A1 (en) 2016-08-05 2018-02-08 Romello Burdoucci Smart Interactive and Autonomous Robotic Property Maintenance Apparatus, System, and Method
WO2018035320A1 (en) 2016-08-18 2018-02-22 The Trustees Of The University Of Pennsylvania Systems and methods for controlling robotic behaviors
US11709489B2 (en) 2017-03-02 2023-07-25 RobArt GmbH Method for controlling an autonomous, mobile robot
CN109215044B (zh) 2017-06-30 2020-12-15 京东方科技集团股份有限公司 图像处理方法和系统、存储介质和移动系统
CN107943021B (zh) 2017-10-19 2021-03-30 布法罗机器人科技(成都)有限公司 一种自适应上下楼梯控制系统和方法
DE102017127180A1 (de) 2017-11-17 2019-05-23 RobArt GmbH Bodenbearbeitung mittels eines autonomen mobilen Roboters
US11049236B2 (en) 2017-11-17 2021-06-29 Kodak Alaris Inc. Automated in-line object inspection
US20190325763A1 (en) 2018-04-22 2019-10-24 Intel Corporation Real and virtual collision-free movement of autonomous vehicles in mixed-reality environments
CN109202901A (zh) 2018-08-29 2019-01-15 厦门理工学院 一种双足机器人爬楼梯步态规划方法、装置及机器人
US11287826B2 (en) 2018-10-12 2022-03-29 Boston Dynamics, Inc. Terrain aware step planning system
US11548151B2 (en) * 2019-04-12 2023-01-10 Boston Dynamics, Inc. Robotically negotiating stairs
US11599128B2 (en) 2020-04-22 2023-03-07 Boston Dynamics, Inc. Perception and fitting for a stair tracker
US11416003B2 (en) * 2019-08-06 2022-08-16 Boston Dynamics, Inc. Constrained mobility mapping
CN114401887A (zh) * 2019-08-06 2022-04-26 波士顿动力公司 脚步接触检测
US11268816B2 (en) * 2019-08-06 2022-03-08 Boston Dynamics, Inc. Intermediate waypoint generator
US11447195B2 (en) * 2019-08-06 2022-09-20 Boston Dynamics, Inc. Leg swing trajectories
US11465281B2 (en) * 2019-10-14 2022-10-11 Boston Dynamics, Inc. Dynamic planning controller
US20210323618A1 (en) 2020-04-20 2021-10-21 Boston Dynamics, Inc. Identifying Stairs from Footfalls
US20210331754A1 (en) * 2020-04-22 2021-10-28 Boston Dynamics, Inc. Stair Tracking for Modeled and Perceived Terrain
US20220390952A1 (en) * 2021-06-04 2022-12-08 Boston Dynamics, Inc. Detecting negative obstacles
US20220388170A1 (en) * 2021-06-04 2022-12-08 Boston Dynamics, Inc. Alternate Route Finding for Waypoint-based Navigation Maps

Also Published As

Publication number Publication date
US11660752B2 (en) 2023-05-30
EP3953779A1 (en) 2022-02-16
US20230008677A1 (en) 2023-01-12
US20210331317A1 (en) 2021-10-28
CN113661462A (zh) 2021-11-16
JP2022528032A (ja) 2022-06-08
US11123869B2 (en) 2021-09-21
US11548151B2 (en) 2023-01-10
US20200324412A1 (en) 2020-10-15
US20210138650A1 (en) 2021-05-13
JP7351920B2 (ja) 2023-09-27
WO2020209888A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
KR20210152055A (ko) 로봇으로 계단들을 오르내리기
JP7219812B2 (ja) 地形を意識したステッププランニングシステム
US11416003B2 (en) Constrained mobility mapping
US20210331754A1 (en) Stair Tracking for Modeled and Perceived Terrain
US11073842B1 (en) Perception and fitting for a stair tracker
US20210323618A1 (en) Identifying Stairs from Footfalls
JP7381709B2 (ja) 足跡接触検出
JP7322276B2 (ja) 脚の揺動軌道
Barasuol et al. Reactive trotting with foot placement corrections through visual pattern classification
US20240174310A1 (en) Stair Tracking for Modeled and Perceived Terrain
US20230415343A1 (en) Automatically trasitioning a robot to an operational mode optimized for particular terrain
CN114237212A (zh) 足式机器人移动方法、装置、存储介质及电子设备
CN117270551A (zh) 基于局部环境感知的四足机器人自主攀爬楼梯方法及系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal