KR20210066791A - 로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법 - Google Patents

로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법 Download PDF

Info

Publication number
KR20210066791A
KR20210066791A KR1020217004518A KR20217004518A KR20210066791A KR 20210066791 A KR20210066791 A KR 20210066791A KR 1020217004518 A KR1020217004518 A KR 1020217004518A KR 20217004518 A KR20217004518 A KR 20217004518A KR 20210066791 A KR20210066791 A KR 20210066791A
Authority
KR
South Korea
Prior art keywords
path
robot
computer readable
processor
route
Prior art date
Application number
KR1020217004518A
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 KR20210066791A publication Critical patent/KR20210066791A/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
    • B62D15/00Steering not otherwise provided for
    • B62D15/02Steering position indicators ; Steering position determination; Steering aids
    • B62D15/027Parking aids, e.g. instruction means
    • B62D15/0285Parking performed automatically
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3415Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3461Preferred or disfavoured areas, e.g. dangerous zones, toll or emission zones, intersections, manoeuvre types, segments such as motorways, toll roads, ferries
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2201/00Application
    • G05D2201/02Control of position of land vehicles
    • G05D2201/0203Cleaning or polishing vehicle

Abstract

본 발명의 로봇 경로 계획을 최적화하기 위한 시스템 및 방법은, 급회전, 좁은 통로 및/또는 좁은 통로로의 급회전의 자율 내비게이션과 관련하여 개시되어 있다. 상기 중 임의의 것을 포함하는 경로를 내비게이팅하는 로봇은 이들 조종을 실행할 때에 환경 장애물과 충돌할 위험이 있다. 따라서, 로봇 경로 계획을 개선하기 위한 시스템 및 방법이 당업계 내에서 필요하여, 여기에 개시된다.

Description

로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법
본 출원은 2018년 7월 16일자에 출원된 미국 가특허 출원 일련번호 62/698,438의 이익을 주장하며, 그 전체 내용은 여기에 참조로서 포함된다.
저작권
본 특허 문서의 개시내용의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권 소유자는 누구라도 본 특허 문서 또는 특허 개시내용을 특허 및 상표청의 파일 또는 기록에 나타낸 바와 같이 팩스 복제하는 것에 대해서는 이의를 제기하지 않지만, 그 이외에는 무엇이든지 간에 모든 저작권 권리를 보유한다.
본 출원은 일반적으로 로봇 공학에 관한 것이며, 보다 구체적으로는 로봇식 장치의 타이트 턴 및/또는 좁은 통로를 위한 경로 계획을 최적화하하는 시스템 및 방법에 관한 것이다.
현재, 일부 로봇은 오퍼레이터가 로봇에 교육하거나 미리 프로그래밍한 경로 또는 오퍼레이터가 제공한 맵으로부터 학습된 경로를 자율 내비게이팅할 수 있다. 오퍼레이터가 로봇에 교육하거나 미리 프로그래밍할 때에, 이들 경로는 회전 반경, 바퀴의 현재 상태, 센서 데이터, 및/또는 특정 위치에서 실행하는 작업과 같이 로봇이 자율적으로 작동하는 동안에 고려할 수 있는 일부 파라미터를 고려하지 않을 수 있다. 일부 경우에 있어서, 경로는 경로 근처에 있는 물체를 위치화하지 않고 로봇에 제공될 수 있으며, 상기 경로와 실질적으로 가까운 경로를 내비게이팅하는 동안에 물체가 향후에라도 감지되면 경로는 잠재적으로 최적화를 요구할 수 있다. 일부 경우에 있어서, 로봇은 수동으로 이동하여 경로를 학습할 수 있으며, 일부 동작은, 예를 들면 안전상으로 인해 자율 작동 중에 반복되지 않을 수 있다. 이들 최적화되지 않은 경로는 로봇이 학습한 경로가 로봇에 최적화되지 않았기 때문에 로봇이 경로를 이동하는 동안에 정지하거나 물체와 충돌하게 할 수 있다.
로봇 바닥 클리너는 좁은 코너와 좁은 통로를 포함하여 오퍼레이터가 학습시킨 최적화되지 않은 경로를 로봇이 내비게이팅하기 어렵게 할 수 있는 복잡한 경로를 내비게이팅하는 로봇의 일례이다. 로봇의 물리적 치수와 특성은 주변 물체와의 충돌없이 코너와 좁은 통로 주위를 내비게이팅하는 능력을 저해할 수 있다. 따라서, 이동 경로 동안에 로봇이 마주치는 좁은 코너 및 좁은 통로 주위로 로봇을 내비게이팅시키기 위한 개선된 시스템 및 방법이 당업계에 필요하다.
상술한 요구는 특히 로봇식 장치의 타이트 턴을 위한 로봇 경로 계획 방법을 최적화하는 시스템 및 방법을 제공하는 본 개시에 의해 충족된다. 당업자는 본 명세서에서 사용되는 바와 같이, 로봇이라는 용어가 일반적으로 경로를 이동하거나, 작업을 실행하거나, 그렇지 않으면 컴퓨터 판독가능한 명령을 실행하거나 처리할 때에 자율적으로 이동하는 자율 차량 또는 물체를 지칭할 수 있음을 이해할 것이다. 일부 예시적 실시형태에 따라, 로봇은 좁은 코너 및 공간을 포함하는 오퍼레이터에 의해 학습된 경로를 내비게이팅하는 바닥 클리너를 포함할 수 있다.
본원에 설명된 예시적 구현예는 혁신적인 특징을 가지며, 그 특징 중 단일의 특징은 그들의 바람직한 속성을 위해 필수불가결하거나 단독으로 역할을 하는 것은 아니다. 특허청구의 범위를 제한하지 않고, 유리한 특징 중 일부가 이하에 요약될 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따라, 로봇식 경로 계획을 최적화하기 위한 변경 방법이 개시된다. 비제한적인 예시적 실시형태에 있어서, 이 방법은, 알려진 물체의 위치 및 로봇과 같은 자율 차량이 취하는 경로를 포함하는 환경의 맵을 생성 및/또는 수신하는 단계; 로봇이 경로를 내비게이팅할 때에 로봇의 복수의 가능한 향후 상태 및 위치를 시각화하는 단계; 및 충돌을 피하기 위해, 경로 이동 전에 경로의 일부 구간을 최적화하는 단계를 포함한다. 당업자는 로봇식 장치가 향후 시점에서의 그 위치 및/또는 장소를 예측할 수 있도록, 향후의 상태가 로봇식 장치의 향후의 상태 또는 위치에 대응할 수 있다는 것을 이해할 것이다.
적어도 하나의 비제한적인 예시적 실시형태에 따라, 상기 방법은 가상 로봇을 이용하여 로봇의 향후 동작 및 상태가 충돌을 유발할 수 있는지의 여부를 결정하고, 충돌 지점을 계산하고, 또한 좁은 코너 주위에서 좁은 통로로의 로봇의 안전한 내비게이션을 가능하게 하도록 경로의 구간을 탄력 밴딩하는 단계를 더 포함한다. 다른 비제한적인 예시적 실시형태에 따라, 로봇은 또한, 최적화 후의 변화를 처리하기 위해 경로를 따라 이동, 제거, 변경 및/또는 추가될 수 있는 경로를 따라 상태 지점을 고려할 수 있다. 달리 말하면, 로봇은 로봇의 향후 위치 또는 로봇이 이동하는 향후의 위치를 대신하는 가상 로봇을 부분적으로 활용하는 단계, 경로를 따라 충돌 지점을 계산하는 단계, 또한 로봇이 이용한 경로 구간을 탄력 밴딩하는 단계에 의해 충돌을 회피한다.
적어도 하나의 비제한적인 예시적 실시형태에 따라, 로봇은 자율 작동으로 내비게이션 가능하도록 추가의 최적화 작업이 요구될 수 있는 경로(즉, 향후 시점에서)의 좁은 공간 또는 구간을 메모리에 저장하는 동안에 오퍼레이터를 따라 경로를 학습할 수 있다. 다른 비제한적인 예시적 실시형태에 따라, 로봇은 오퍼레이터로부터 학습하면서 경로에 대한 최적화를 행할 수 있다. 다른 비제한적인 예시적 실시형태에 따라, 로봇은 유선 또는 무선 연결을 통해 오퍼레이터에 의해 컴퓨터 판독가능한 맵 및 경로를 제공받을 수 있으며, 로봇은 경로에 대한 추가의 최적화를 요구할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따라, 로봇은 환경 장벽과의 충돌에 대해 가능한 향후 경로를 테스트하기 위해 복수의 가상 로봇을 사용할 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 가상 로봇은 로봇이 좌, 우 또는 전방 이동하는 경우에 충돌을 예측할 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 따라, 가상 로봇은 로봇이 충돌하거나 정지할 수 있는 시기 및/또는 위치를 로봇에 표시하여 최적화된 경로를 찾는데 사용될 수 있다. 로봇이 향후에 취할 수 있는 경로 또는 경로의 최적화를 행함으로써, 로봇은 이동 경로를 따라 마주하게 될 수 있는 좁은 코너 또는 좁은 통로를 잠재적으로 피할 수 있으며, 이러한 로봇은 경로를 따라 충돌 지점을 계산하는 가상 로봇, 및 로봇이 이동하는 경로의 탄력 밴딩 구간을 이용함으로써 달성될 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 가상 로봇은 최적화시의 오차 한계를 허용하기 위해, 그것이 대신하는 로봇보다 클 수 있다. 비제한적인 예시적 예시로서, 로봇은 일반적으로 사용자 인터페이스, 유선 또는 무선 통신을 통해 오퍼레이터가 지정한, 더 큰 오차 한계를 요구하는 것으로 알려진 특정 물체 주변의 경로를 결정하는, 자신보다 더 큰 가상 로봇의 풋프린트를 활용할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 로봇은 로봇이 더 넓은 턴을 할 수 있도록 코너 주변의 경로의 길이를 증가시킴으로써 경로를 변경하거나 최적화하고, 이에 따라 회전을 완료한 후에 로봇이 특정 방향을 유지하도록 함으로써 충돌 또는 정지의 위험을 감소시킬 수 있다. 또 다른 비제한적인 예시적 실시형태에 따르면, 좁은 통로로의 좁은 코너를 내비게이팅하는 로봇의 경우에 있어서, 로봇이 회전을 완료할 때에, 단순히 통로를 통해 전방으로 이동하여 통로 근처에서 로봇을 회전시키는 것과 관련된 충돌을 피하도록 정렬되는 것이 바람직할 수 있다. 비제한적인 예시적 실시형태에 의해, 매장의 통로를 클리닝하는 로봇 바닥 클리너는 하나의 통로로부터 다른 통로로 내비게이팅할 필요할 수 있으며, 상기 로봇은 통로들 사이에서 좁은 통로로의 타이트 턴을 내비게이팅할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 로봇의 경로를 변경하거나 최적화하는 방법이 개시된다. 상기 방법은 비일시적 메모리로부터 명령을 실행하는 로봇의 하나 이상의 프로세서에 의해 실행될 수 있다. 상기 방법은, 로봇식 시스템이 제 1 경로를 이동하기 전에 제 2 경로의 구간을 변경하거나 최적화하는 것에 기초하여 제 1 경로를 결정하는 단계로서, 상기 변경 또는 최적화는 제 2 경로의 조종을 실행하는 동안에 적어도 물체와의 충돌을 피하는 것에 기초하여 이루어지고, 상기 제 1 경로는 제 2 경로의 변경되거나 최적화된 구간에 대응하는 적어도 하나의 가능한 경로로부터 결정되는 단계를 포함한다. 상기 방법은, 제 1 경로를 결정하기 위해 적어도 하나의 가능한 경로를 테스트하도록 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩하는 단계로서, 상기 적어도 하나의 가상 로봇 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇식 시스템의 향후 위치를 나타내는 풋프린트를 포함하는 단계를 더 포함한다. 상기 적어도 하나의 가능한 경로를 테스트하는 단계는 적어도 하나의 가능한 경로를 따라 충돌 지점을 결정하는 단계로서, 상기 적어도 하나의 충돌 지점은 적어도 하나의 가상 로봇의 풋프린트가 컴퓨터 판독가능한 맵 상에 물체와 적어도 부분적으로 교차하거나 겹치는 지점을 결정하는 단계를 포함한다. 상기 방법은, 적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하는 단계로서, 상기 위험도가 높을수록 물체에 더 가깝게 조종하는 로봇식 시스템에 대응되고, 상기 위험도가 낮을수록 물체로부터 멀리 떨어져 조종하는 로봇식 시스템에 대응되는 단계를 더 포함할 수 있다. 일부 예에 있어서, 상기 적어도 하나의 가능한 경로는 제 2 경로의 구간을 탄력 밴딩하는 단계로서, 상기 탄력 밴딩은 탄력 밴딩된 제 2 경로가 장애물 주위의 더 넓은 턴을 포함하도록 장애물로부터 멀리 떨어져 제 2 경로를 확장하는 것을 포함하는 단계를 더 포함한다. 일부 예에 있어서, 제 2 경로의 변경되거나 최적화된 구간의 네비게이션은 로봇 시스템이 좁은 통로에 진입하기 전에 전방 방향을 향하도록 구성된다. 상기 방법은, 제 1 경로에 대한 제 2 경로의 구간에 관한 최적화를 처리하기 위해 제 2 경로를 따라 적어도 하나의 상태 지점을 수정하는 단계로서, 상기 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 하나 이상의 상태 파라미터를 수정하는 것을 포함하는 단계를 더 포함할 수 있다.
하나 이상의 비제한적인 예시적 실시형태에 따르면, 로봇의 경로를 따라 좁은 통로를 감지하는 방법이 개시된다. 상기 방법은, 로봇의 풋프린트를 제 1 측면 및 제 2 측면에서 연장하는 단계로서, 상기 제 1 및 제 2 측면은 로봇의 전방 방향에 수직이고, 로봇의 반대 측면에 있는 단계; 경로를 내비게이팅하고, 컴퓨터 판독가능한 맵 상에 물체가 확장된 풋프린트와 겹치는 위치를 결정하는 단계; 및 로봇 시스템의 제 1 측면과 제 2 측면 양쪽에서 적어도 한 쌍의 물체가 감지되는 위치에서 좁은 통로를 결정하는 단계를 포함한다. 상기 방법은, 컴퓨터 판독가능한 맵 상의 경로를 따라 하나 이상의 가상 로봇을 투영함으로써 로봇식 시스템을 대신하여 확장된 풋프린트를 포함하는 하나 이상의 가상 로봇을 사용하는 것을 더 포함할 수 있다.
하나 이상의 비제한적인 예시적 실시형태에 따르면, 로봇의 경로를 따라 좁은 통로를 감지하는 방법이 개시된다. 상기 방법은, 하나 이상의 센서 또는 컴퓨터 판독가능한 맵을 사용하여, 경로로부터 미리 결정된 거리 임계값 미만의 거리에 있는 경로의 대향하는 측면 상의 2개의 물체를 실시간으로 지속적으로 감지하는 단계로서, 상기 거리 임계값은 로봇의 크기와 비례하는 단계를 포함한다.
하나 이상의 비제한적인 예시적 실시형태에 따르면, 로봇의 경로를 따라 타이트 턴을 감지하는 방법이 개시된다. 상기 방법은, 로봇이 회전을 실행할 때에 로봇의 속도 벡터를 실시간으로 연속해서 결정하는 단계, 경로를 따라 미리 결정된 거리에 대한 속도 벡터의 각도 변화율을 실시간으로 연속해서 측정하는 단계, 및 임계값 변화율을 실시간으로 연속해서 비교하는 단계를 포함할 수 있다. 임계값을 초과하는 변화율은 최적화가 필요한 경로의 하나 이상의 부분에 대응한다.
본 개시내용의 이들 및 다른 목적, 특징 및 특성 뿐만 아니라, 관련된 요소의 작동 방법 및 기능은 첨부 도면을 참조하여 이하의 설명 및 첨부된 청구범위를 고려할 때 보다 명백해질 것이며, 그 첨부 도면 모두는 본 명세서의 일부를 형성하며, 유사한 참조 번호는 여러 도면에서 대응하는 부분을 가리킨다. 그러나, 도면은 예시 및 설명의 목적만을 위한 것이고, 본 개시내용의 제한의 규정으로서 의도되지 않는다는 것이 명백히 이해되어야 한다. 본 명세서 및 청구범위에서 사용되는 바와 같이, "a", "an" 및 "the"와 같은 단수 형태는 문맥상 명확하게 다르게 지시하지 않는 한 복수 대상을 포함한다.
본 개시된 양태는 개시된 양태를 제한하지 않고 예시하기 위해 제공된 첨부 된 도면과 함께 이후에 설명될 것이며, 유사한 명칭은 유사한 요소를 나타낸다.
도 1은 예시적 실시형태에 따른 좁은 통로로의 좁은 코너 주위의 경로를 최적화하는 로봇의 방법의 프로세스 흐름도이다.
도 2는 본 개시의 일부 구현예에 따른 로봇의 기능 블록도이다.
도 3은 본 개시의 일부 구현예에 따른 특수 컨트롤러의 기능 블록도이다.
도 4는 예시적 실시형태에 따른 로봇을 둘러싸는 복수의 위험 구역의 상면도이다.
도 5는 예시적 실시형태에 따른 좁은 공간 및 회전을 포함하는 환경을 통한 로봇의 최적화되지 않은 경로 및 최적화된 경로를 나타내는 상면도이다.
도 6은 예시적 실시형태에 따른 좁은 통로로의 타이트 턴을 포함하는 경로를 최적화하기 위해 가상 로봇을 이용하는 로봇의 상면도이다.
도 7은 로봇의 제 1 경로를 메모리로부터 최적화된 제 2 경로로 변경하는 예시적 데이터 표이다.
도 8a∼c는 예시적 실시형태에 따른 로봇의 제 1 경로를 최적화된 제 2 경로로 변경하는 상면도이다.
도 9a∼b는 예시적 실시형태에 따른 로봇의 양쪽의 측면에서 확장된 풋프린트를 이용하여 로봇의 양쪽의 측면에서 경로를 따라 가능한 충돌 지점을 맵핑하는 로봇의 상면도이다.
도 9c는 예시적 실시형태에 따른 경로를 따라 좁은 통로를 결정하는, 도 9a∼9b에 도시된 바와 같이 확장된 풋프린트를 갖는 모든 가능한 충돌 지점을 포함하는 환경 맵의 상면도이다.
도 9d는 예시적 실시형태에 따라 로봇의 경로를 따른 위치 및 대응하는 물체 감지 판독값을 포함하는 데이터 표이다.
도 10은 하나의 예시적 실시형태에 따라, 경로를 내비게이팅하고, 좁은 통로를 감지하여, 이에 따라 경로에 대한 최적화를 요구하는 로봇의 상면도이다.
도 11은 예시적 실시형태에 따라, 컨트롤러 또는 프로세서가 타이트 턴을 포함하는 경로를 최적화하기 위한 다양한 상태를 나타내는 상태도이다.
도 12는 예시적 실시형태에 따라, 좁은 주차 공간에서 자율 차량을 주차하는데 사용하기 위한 본 개시의 시스템 및 방법의 구현예이다.
도 13은 예시적 실시형태에 따라, 컨트롤러 또는 프로세서가 경로를 최적화하는 방법을 예시하는 프로세스 흐름도이다.
도 14는 예시적 실시형태에 따라, 경로의 네비게이션 동안에 컨트롤러 또는 프로세서가 경로를 최적화하는 방법을 도시하기 위한 프로세스 흐름도이다.
본원에 개시되는 모든 도면은 브레인 코포레이션(Brain Corporation)의 2019년 발효 저작권(ⓒ Copyright 2019)이다. 모든 권리를 보유한다.
본원에 개시된 신규한 시스템, 장치 및 방법의 다양한 양태는 첨부 도면을 참조하여 이하에서 보다 완전하게 설명된다. 그러나, 본 개시는 다수의 상이한 형태로 구현될 수 있고, 본 개시 전반에 걸쳐 제시되는 임의의 특정 구조 또는 기능으로 제한되는 것으로 해석되지 않아야 한다. 오히려, 이러한 양태는 본 개시가 철저하고 완전해질 수 있도록 제공되며, 본 개시의 범위를 당업자에게 충분히 전달할 것이다. 본 명세서의 교시에 기초하여, 당업자는 본 개시의 범위가, 독립적으로 구현되든지 또는 본 개시의 임의의 다른 양태와 조합되든지, 본 명세서에 개시된 신규한 시스템, 장치 및 방법의 임의의 양태를 포함하도록 의도된다는 것을 이해할 것이다. 예를 들면, 본원에서 명시되는 임의의 수의 양태를 이용하여, 장치가 구현될 수 있거나 또는 방법이 실시될 수 있다. 또한, 본 개시의 범위는 본원에서 명시되는 개시의 다양한 양태에 추가하여 또는 그 이외에 다른 구조, 기능성, 또는 구조와 기능성을 사용하여 실시되는 장치 또는 방법을 포함하도록 의도된다. 본원에서 개시되는 임의의 양태는 청구항의 하나 이상의 구성요소에 의해 구현될 수 있다는 것이 이해되어야 한다.
특정 양태가 본원에서 설명되지만, 이들 양태의 다수의 변형 및 변경은 본 본 개시의 범위 내에 포함된다. 바람직한 양태의 일부 이점 및 장점이 언급되지만, 본 개시의 범위는 특정 이점, 용도 및/또는 목적으로 제한되도록 의도되지 않는다. 상세한 설명 및 도면은 본 개시를 제한하기보다는 단지 예시하는 것일 뿐이며, 본 개시의 범위는 첨부된 청구범위 및 그 등가물에 의해 규정된다.
본 개시는 로봇식 경로 계획을 최적화하는 개선된 방법을 제공한다. 본 개시의 일부 실시형태는 로봇에 관한 것이다. 본 명세서에서 사용된 바와 같이, 로봇은 복잡한 일련의 동작을 자율적으로 실행하도록 구성된 기계 및/또는 가상 엔티티를 포함할 수 있다. 일부 경우에 있어서, 로봇은 컴퓨터 프로그램, 특수 알고리즘, 및/또는 전자 회로에 의해 안내 및/또는 지시되는 기계일 수 있다. 일부 경우에 있어서, 로봇은 로봇이 하나의 위치로부터 다른 위치로 이동할 수 있는 내비게이션용으로 구성된 전자 기계 컴포넌트를 포함할 수 있다. 이러한 로봇에는 자율 및/또는 반자율 자동차, 바닥 클리너, 로버, 드론, 비행기, 보트, 카트, 트램, 휠체어, 산업 장비, 스토킹 머신, 모바일 플랫폼, 개인 운송 장치(예를 들면, 호버 보드, SEGWAYS® 등), 스토킹 머신, 트레일러 이동기, 차량 등이 포함될 수 있다. 로봇은 품목, 사람, 동물, 카고, 화물, 물체, 수하물, 및/또는 하나의 위치로부터 다른 위치로 소망하는 모든 것을 운반하기 위한 자율 및/또는 반자율 머신을 더 포함할 수 있다. 일부 경우에 있어서, 클리닝에 사용되는 이러한 로봇은 로봇이 자율적으로 및/또는 반자율적으로 내비게이션 및/또는 이동할 수 있는 모바일 시스템이기 때문에 로봇식 모바일 플랫폼을 포함할 수 있다.
본 발명의 시스템 및 방법의 다양한 실시형태에 대한 상세한 설명이 이하에 제공된다. 본 명세서에서 논의된 많은 예가 로봇식 바닥 클리너를 지칭할 수 있지만, 본 명세서에 포함된 설명된 시스템 및 방법은 임의의 종류의 로봇에 적용 가능하다는 것이 이해될 것이다. 본 개시의 내용을 고려해 볼 때, 본 명세서에 설명된 기술에 대한 무수한 다른 예시적 실시형태 또는 사용이 당업자에 의해 용이하게 구상될 수 있다.
유리하게는, 본 개시의 시스템 및 방법은 적어도, (i) 로봇이 적어도 하나의 경로를 따라 미리 그 코스를 계획할 수 있게 하고, (ii) 로봇이 경로를 이동하기 전에 학습된 경로를 추가로 최적화할 수 있게 하고, (iii) 로봇이 적어도 하나의 경로를 내비게이팅하면서 충돌 및 정지할 가능성을 감소시키고, 또한 (iv) 적어도 하나의 경로를 최적화하기 위한 시스템 및 방법을 제공하여 자율적으로 작동하는 로봇의 효율성을 개선한다.
본 명세서에 사용된 바와 같이, 장애물은 로봇을 둘러싼 환경에 있어서의 임의의 물체 또는 장벽을 포함하지만 이에 제한되지 않는 것을 포함할 수 있으며, 여기서 로봇은 장애물을 내비게이팅하여 충돌을 피할 수 있다.
본 명세서에서 사용되는 바와 같이, 가상 로봇은 향후 위치에서 로봇의 임의의 투영, 맵핑 및/또는 중첩을 포함하지만 이에 제한되지 않고, 로봇이 라우팅된 경로를 따라 이동하는 바와 같이 향후 시점에서의 로봇의 위치에 대응하는 향후 위치를 포함할 수 있다. 적어도 하나의 비제한적인 실시형태에 따르면, 가상 로봇은 특수 처리 장치에 의해 메모리에 저장된 풋프린트 인덱스를 더 포함할 수 있으며, 상기 풋프린트 인덱스는 향후 위치에서의 로봇의 파라미터(예를 들면, 크기, 형상 등)를 포함한다. 다른 비제한적인 예시적 실시형태에 따르면, 풋프린트 인덱스는 오차 한계를 처리하기 위해 다른 파라미터를 포함할 수 있다.
본 명세서에서 사용된 바와 같이, 타이트 턴은 미리 계획된 경로 또는 새로운 경로를 따른 임의의 회전을 포함하지만 이에 제한되지는 않으며, 로봇은 크기, 형상, 회전 반경 및/또는 로봇의 다른 물리적 특성을 포함하지만 이에 제한되지 않는 로봇의 물리적 특성으로 인해 회전을 내비게이팅할 때에 장애물과의 충돌을 경험한다. 적어도 하나의 예시적 실시형태에 따르면, 로봇은 가상 로봇을 이용하여 경로를 따른 충돌 지점의 감지, 및/또는 설정된 임계값(예를 들면, 1m 이내에서 60°를 포함하지만 이에 제한되지 않음)을 초과하는 회전에 의해 어느 구간이 타이트 턴 및/또는 좁은 통로를 포함하는지를 결정할 수 있다.
본 명세서에서 사용되는 바와 같이, 경로를 최적화하는 로봇은 로봇이 이동 경로를 따라 정지 및/또는 충돌하는 위험을 최소화하면서 최적화된 경로를 자율적으로 횡단할 수 있도록 경로를 따라 구간의 일부 또는 전부를 변경하는 로봇을 포함할 수 있지만, 이에 제한되지 않는다. 추가적으로, 최적화된 경로는 로봇이 복수의 가능한 경로에서 이동할 수 있는 가장 효율적인 경로이다.
본 명세서에서 사용되는 바와 같이, 경로의 일부 또는 구간은 임의의 길이의 경로를 포함할 수 있다. 예를 들면, 경로의 구간은 경로의 1, 2, 3 등의 미터 섹션을 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 상태 지점은 로봇의 경로를 따른 위치 및 상기 위치에서의 로봇에 대한 대응 상태(예를 들면, 위치, 배향, 속도, 액추에이터 코맨드 등)를 포함할 수 있다. 예시적 실시형태에 따르면, 경로를 따라 설정된 위치 또는 미리 결정된 위치에 복수의 소망의 포인트 또는 소정의 포인트가 있을 수 있다.
본 명세서에 사용되는 바와 같이, 경로 또는 경로의 구간을 탄력 밴딩하는 방법은 로봇이 물체와의 충돌 또는 접촉을 피하기 위해 로봇을 회전시킬 때에, 로봇과 물체 사이의 거리를 증가시키기 위해 좁은 코너 또는 물체 주위에 더 넓은 턴 반경을 포함하도록 경로 또는 경로의 구간을 신장 및/또는 연장하는 것을 포함할 수 있다. 또한, 경로 또는 경로의 구간을 탄력 밴딩하는 것은 좁은 통로로의 탄력 밴딩된 경로 또는 경로 구간을 내비게이팅할 때에 로봇이 실질적으로 전방 배향으로 자신을 배향하도록 구성할 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 로봇은, 로봇이 경로를 따라 하나 이상의 물체 주위에서 내비게이팅하는 동안에 유지되는 하나 이상의 물체와 로봇 사이의 최소 거리를 결정함으로써 하나 이상의 물체 주위에서 경로의 구간을 탄력 밴딩할 수 있다.
본원에서 사용되는 바와 같이, 컴퓨터 및/또는 컴퓨팅 디바이스는, 데스크톱, 랩톱 또는 다른 방식의 개인용 컴퓨터("PC") 및 미니컴퓨터, 메인프레임 컴퓨터, 워크스테이션, 서버, 개인용 디지털 보조장치("PDA"), 핸드헬드 컴퓨터, 내장형 컴퓨터, 프로그래머블 로직 디바이스, 개인 통신기, 태블릿 컴퓨터, 모바일 디바이스, 휴대형 내비게이션 보조 장치, J2ME 장비 디바이스, 셀룰러 폰, 스마트 폰, 개인 통합 통신 또는 엔터테인먼트 디바이스, 및/또는 명령의 세트를 실행하고 인입 데이터 신호를 프로세싱할 수 있는 임의의 다른 디바이스를 포함할 수 있지만, 이에 제한되지 않는다.
본원에서 사용되는 바와 같이, 컴퓨터 프로그램 및/또는 소프트웨어는, 임의의 시퀀스, 또는 기능을 실행하는 인간 또는 머신 인식 가능 단계를 포함할 수 있지만, 이에 제한되지 않는다. 이러한 컴퓨터 프로그램 및/또는 소프트웨어는, 예를 들면 C/C++, C#, Fortran, COBOL, MATLABTM, PASCAL, GO, RUST, SCALA, Python, 어셈블리 언어, 마크업 언어(예를 들면, HTML, SGML, XML, VoXML) 등을 포함하는 임의의 프로그래밍 언어 또는 환경 뿐만 아니라, 물체-배향 환경, 예를 들면 공통 물체 요구 매개자 구조("CORBA"), JAVA™(J2ME, 자바 빈스 등을 포함함), 바이너리 런타임 환경(예를 들면, "BREW") 등으로 렌더링될 수 있다.
본원에서 사용되는 바와 같이, 연결, 링크, 및/또는 무선 링크는 엔티티 사이의 정보 교환을 가능하게 하는, 임의의 2개 이상의 엔티티(물리적 엔티티이든지 또는 논리적/가상 엔티티이든지 무관) 사이의 인과관계를 포함할 수 있지만, 이에 제한되지 않는다.
제 1 비제한적인 예시적 실시형태에 따르면, 적어도 하나의 센서, 적어도 하나의 내비게이션 시스템 또는 글로벌 포지셔닝 시스템, 적어도 하나의 액추에이터, 적어도 하나의 통신 시스템, 맵 평가 유닛, 적어도 하나의 프로세서, 적어도 하나의 비일시적 컴퓨터 판독가능한 저장 장치, 및/또는 경로를 자율적으로 내비게이팅하기 위해 일부, 전무 또는 전부를 사용할 수 있는 전원 공급 유닛을 포함하거나 이와 결합될 수 있는 로봇식 시스템이 개시된다.
제 2 비제한적인 예시적 실시형태에 따르면, 로봇 경로 계획을 최적화하는 방법이 개시된다. 이러한 실시형태에 따르면, 로봇에는 로봇이 따를 수 있는 알려진 장애물의 위치 및 경로를 포함하여 유선 또는 무선 통신을 통해 컴퓨터 판독가능한 환경 맵이 제공된다. 또 다른 비제한적인 예시적 실시형태에 따르면, 로봇은 오퍼레이터를 따라 경로를 학습하고, 자신의 환경을 맵핑할 수 있다. 이들 경로는 완전히 자율적으로 작동하는 로봇에 의해 내비게이션될 수 없고, 및/또는 일부 또는 모든 경로에 대한 최적화를 생성하기 위해 비일시적인 컴퓨터 판독가능한 저장 장치로부터 명령을 실행하는 특수한 프로세서가 요구되어, 최적의 경로가 아닐 수 있다.
적어도 하나의 비제한적인 실시형태에 따르면, 오퍼레이터에 의해 로봇에게 교시되거나, 유선 또는 무선 통신을 통해 로봇에 통신된 경로는 로봇이 완전히 자율적으로 작동하는 동안에 로봇에 의해 내비게이션되지 않을 수 있다. 예시적 예에 의해, 학습된 경로는 좁은 코너, 좁은 통로, 및/또는 다른 장애물을 포함할 수 있으며, 상기 경로를 통해 로봇은 오퍼레이터를 따라 내비게이팅할 수 있지만, 완전히 자율적으로 내비게이팅할 수 없다. 또 다른 비제한적인 예시적 실시형태에 따르면, 최적화된 경로는 로봇에게 직접 교시될 수 있으며, 상기 로봇은 경로가 최적화되었는지 확인하기 위해 본 발명의 시스템 및 방법을 사용할 수 있다. 당업자는 로봇이 로봇에 포함된 특수 프로세서에 의해 실행되는 로봇의 메모리에 저장된 특수 코드를 통해 로봇을 프로그래밍하는 오퍼레이터에 대응하는 소망의 동작을 교시한다는 것을 이해할 것이다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 최적화된 경로는 경시에 따른 환경의 변화(예를 들면, 추가 장애물, 알려진 장애물의 재배치 등)를 처리하기 위해 이후에 다시 최적화될 수 있다.
또 다른 비제한적인 예시적 실시형태에 따르면, 비일시적인 컴퓨터 판독가능한 저장 장치가 개시된다. 비일시적 컴퓨터 판독가능한 저장 장치에는 복수의 명령이 저장되어 있으며, 상기 명령은 로봇을 작동시키고 그 경로를 최적화하기 위해 특수 프로세싱 장치에 의해 실행 가능하다.
다른 비제한적인 실시형태에 따르면, 비일시적인 컴퓨터 판독가능한 저장 장치는 특수 프로세싱 장치에 의해 실행될 때에, 로봇이 향후의 경로를 테스트하기 위해 복수의 가상 로봇을 생성하게 하는 명령을 포함할 수 있다. 이들 가상 로봇은 로봇의 향후 위치에 대한 풋프린트 인덱스를 생성하며, 이는 특수한 프로세서에 의해 메모리에 저장된다. 다른 비제한적인 실시형태에 따르면, 메모리에 저장된 풋프린트 인덱스는 환경에 대한 컴퓨터 판독가능한 맵 상의 가상 로봇의 좌표 위치, 이들이 차지하는 공간, 및/또는 임의의 상태(예를 들면, 위치, 회전, 현재 동작)를 포함할 수 있다. 풋프린트 인덱스는 어레이, 매트릭스, 및 당업자에게 용이하게 명백한 것으로 간주되는 임의의 다른 데이터 구조와 같은 복수의 데이터 구조를 사용하여 메모리에 추가로 저장될 수 있다.
다른 비제한적인 실시형태에 따르면, 비일시적 컴퓨터 판독가능한 저장 장치는 특수 처리 장치에 의해 실행될 때에 가상 로봇에 의해 생성된 풋프린트 인덱스를 메모리에 저장된 컴퓨터 판독가능한 맵 상에 적용하여 알려진 장애물의 위치 및/또는 환경에 대한 향후의 충돌을 예측하는 명령을 포함할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 비일시적 컴퓨터 판독가능한 저장 장치는 특수 처리 장치에 의해 실행될 때에 프로세서가 로봇 및 가상 로봇의 위치와 관련된 위험 분석을 행하고, 상기 위험을 완화하기 위한 가능한 경로를 결정하고, 또한 상기 위험 분석에 적어도 부분적으로 기초하여 로봇이 따르는 최적의 경로를 선택하게 하는 명령을 포함할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 특수 프로세서는 로봇이 좁은 통로로의 좁은 코너를 내비게이팅할 수 있도록 경로의 구간을 탄력 밴딩하는 방법을 이용할 수 있다. 경로 또는 경로의 구간이 탄력 밴딩되는 정도는 적어도 부분적으로 로봇의 물리적 특성(예를 들면, 로봇의 크기, 형상, 및/또는 회전 반경) 및 환경(예를 들면, 추가 장애물, 장애물의 크기, 장애물의 형상 등)의 파라미터에 기인할 수 있다. 추가적으로, 적어도 하나의 예시적 실시형태에 따르면, 경로 또는 경로의 구간이 탄력 밴딩되는 정도는, 또한 적어도 부분적으로는, 물체로부터 소정 거리에서 로봇을 조종하는 것과 관련된 위험을 최소화하는데 기인할 수 있다. 좁은 코너 주위에서 더 넓은 턴을 행하는 것은 로봇이 충돌을 피하고, 회전이 완료된 후에는 좁은 통로로 내비게이팅할 수 있게 한다.
또 다른 비제한적인 실시형태에 따르면, 비일시적 컴퓨터 판독가능한 저장 장치는 특수 처리 장치에 의해 실행될 때에 경로에 대한 변경을 처리하기 위해 경로를 따라 하나 또는 다수의 상태 지점의 위치를 조정하여, 로봇이 경로의 최적화 전후에 동일한 위치에서 특수 상태로 존재하게 하는 명령을 포함할 수 있다. 비제한적인 예시적 예에 의해, 로봇은 최적화가 이루어진 후의 더 길거나 더 짧은 경로를 설명하기 위해 상태 지점에 도달했을 때에 변경(예를 들면, 메모리의 바이트 시프팅, 메모리의 제로 패딩, 다른 상태 지점의 추가/제거, 상태 지점에 도달하는 시간 변경, 상태 지점 이전의 변경 거리 등)될 수 있다. 다른 비제한적인 예시적 실시형태에 따르면, 상태 지점에 대응하는 상태 및 위치는 경로 최적화 전후에 동일한 위치에서 유지될 수 있다. 마찬가지로, 또 다른 비제한적인 예시적 실시형태에 따르면, 상태 지점 및 대응하는 상태는 경로의 최적화를 설명하기 위해 추가, 제거 및/또는 변경될 수 있다.
또 다른 예로서, 본 개시의 시스템 및 방법은 환경에 대한 수정이 비교적 적거나 전혀없는 로봇 공학의 이용을 허용할 수 있다. 로봇과 관련된 특정의 현대적인 해결방법은 사용자가 로봇이 내비게이팅할 수 있도록 레일, 비콘, 마커, 라인 및/또는 큐를 설치하는 것이 요구될 수 있다. 일부 경우에 있어서, 이러한 설치는 시간, 비용 및/또는 미적 관점에서 비용이 들 수 있다. 이러한 설치는 유지하기 위해 자원이 필요하고 비용이 들 수 있다. 또한, 상기 설치는 로봇식 해결방법에 있어서의 고장 요인을 발생시켜 설치 중 하나 이상의 양태가 의도된 바와 같이 작동하지 않는 경우에는 해결방법의 적어도 일부가 실패할 가능성이 있을 수 있다. 유리하게는, 본 개시의 시스템 및 방법은 로봇공학이 일부 경우에 상대적으로 적은 설치에 의존하게 할 수 있다. 그러나, 일부 예에 있어서, 효율성 및 작업 흐름을 향상시키기 위해 본 개시의 양태에 따라 환경에 대한 변경이 이루어질 수 있다.
도 1은 좁은 통로로로의 적어도 하나의 타이트 턴을 포함하는 경로를 감지 또는 결정하고, 그 경로를 최적화하는 로봇(202)의 예시적 방법(100)의 프로세스 흐름도이다. 당업자는 타이트 턴이, 로봇(202)이 경로 내의 물체와 충돌하거나 물체에 너무 가깝게 내비게이팅하는 일 없이(예를 들면, 도 4에 도시된 영역(402)에 따라) 자율적으로 이루어질 수 없는 회전에 대응할 수 있다는 것을 이해할 것이다. 블록(102)은 로봇(202)의 현재 경로가 이하에 논의된 바와 같이 도 6, 8a∼b, 9a∼d, 및 10과 관련하여 추가로 도시된 방법을 이용하여 급회전 및/또는 좁은 통로를 포함하는지를 결정하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 도시한다. 간단히 말하면, 임계값을 초과하는 경로 부분의 각도 변화율에 기초하여 경로의 일부에서 타이트 턴이 감지될 수 있다. 좁은 통로는 기하학적으로(예를 들면, 이하의 도 10에 도시된 바와 같이 컴퓨터 판독가능한 맵 상의 측정값 및 거리 임계값에 기초하여) 및/또는 로봇(202)의 확장된 풋프린트를 이용하여(예를 들면, 도 9a∼c에 도시된 바와 같음) 결정될 수 있다.
블록(104)은 로봇(202)을 현재 위치로부터 경로를 따라 향후 또는 추가 위치로 내비게이팅하도록 적어도 하나의 가능한 경로 최적화를 결정하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 예시하고, 여기서 상기 최적화되는 경로는 블록(102)에서 감지된 하나 이상의 타이트 턴 및/또는 좁은 통로를 포함한다. 경로를 따른 로봇(202)의 향후 위치는 경로 내비게이션 동안에 향후 시점에서의 로봇(202)의 위치에 대응한다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 타이트 턴 및/또는 좁은 통로 근처에서 가능한 복수의 경로 최적화를 결정하기 위해 컴퓨터 판독가능한 명령을 실행한다. 급회전 및/또는 좁은 통로 근처에서 결정된 복수의 최적화는, 예를 들면 로봇(202)이 이후에 경로를 내비게이팅할 때에 충돌이 발생하지 않도록 하기 위해 도 6에 도시된 바와 같이 가상 로봇(606)에 의해 더 넓은 턴이 취해지도록 원래의 경로의 구간을 탄력 밴딩하는 것을 포함할 수 있다. 다시, 당업자는 로봇(202)이 소망의 경로를 따라 이동할 때에, 향후 시점에서 가상 로봇이 로봇(202)의 위치에 대응하고, 경로를 따라 로봇(102)의 앞에서 판독가능한 맵 상에 가상 로봇을 투영하는 컨트롤러(118)에 의해 가상 로봇이 생성된다는 것을 인식할 것이다.
블록(106)은 블록(104)에서 발견된 적어도 하나의 가능한 경로 최적화를 테스트하기 위해 적어도 하나의 가상 로봇(606)을 생성하도록, 이후의 도 2에 도시된 메모리(224)에 저장된 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 도시한다. 이들 가상 로봇(606), 컨트롤러(222) 또는 프로세서(308)를 이용하여, 컴퓨터 판독가능한 맵 상의 환경의 물체/경계(610)와 가상 로봇 풋프린트의 교차점에 의해, 도 6에 추가로 도시된 바와 같이, 가능한 충돌 지점(608)을 계산하기 위해 컴퓨터 판독가능한 명령을 실행한다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 추가의 작동 유닛(204)을 이용하여 가상 로봇(606)의 풋프린트 인덱스를 환경의 컴퓨터 판독가능한 맵에 적용하기 위해 컴퓨터 판독가능한 명령을 실행하고, 또한 메모리(224)에 풋프린트 인덱스를 저장하고, 로봇(202)이 경로를 따라 이동하는 환경에 대응하는 환경인 향후의 충돌에 대해 복수의 경로를 테스트하기 위해 컴퓨터 판독가능한 명령을 추가로 실행한다.
블록(108)은 블록(106)에서 테스트된 적어도 하나의 가능한 경로 최적화 중 하나 이상이 최적화 임계값을 충족하는지를 결정하는, 이하의 도 2에 도시된 메모리(224)에 저장된 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 도시한다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 최적화 임계값은 허용 가능한 충돌 지점(608)의 최대수(예를 들면, 제로 충돌 지점), 위험도 파라미터(이하에 도 4에서 추가로 설명됨), 및/또는 최적화된 구간의 추가 경로 길이와 관련된 파라미터를 포함하지만, 이에 제한되지 않는 파라미터를 포함할 수 있다. 예시적 비제한적 실시형태에 의해, 예시적 최적화 임계값은 제로 충돌 지점(608), 중간 위험 허용오차, 및 최적화가 이루어진 것을 처리하기 위해(예를 들면, 2미터, 센티미터, 인치 이하 등이 경로 전체에 추가될 수 있음) 원래의 경로가 얼마나 길어질 수 있는지에 대한 한계값을 포함할 수 있다. 최적화 임계값은 사용자 인터페이스 유닛(212)을 통해 사용자에 의해 설정될 수 있고, 및/또한 이하의 도 2에 도시된 통신 유닛(216)을 이용하여 유선 또는 무선 통신에 의해 통신될 수 있다. 블록(108)에 도시된 바와 같이, 가능한 경로 최적화 중 하나 이상이 최적화 임계값을 충족하지 않는 경우, 컨트롤러(222) 또는 프로세서(308)는 블록(104)으로 돌아가 또 다른 적어도 하나의 가능한 경로 최적화를 결정하기 위해 컴퓨터 판독가능한 명령을 실행한다. 그러나, 최적화 임계값이 블록(106)에서 테스트된 가능한 경로 최적화 중 하나 이상에 의해 충족되는 경우, 컨트롤러(222) 또는 프로세서(308)는 도 1에 도시된 바와 같이 블록(110)으로 나아가기 위해 컴퓨터 판독가능한 명령을 실행한다. 최적화 임계값을 충족하지 않는 가능한인 경로 최적화는 컨트롤러(222) 또는 프로세서(308)에 의해 무시될 수 있는 것이 이해된다.
블록(110)은 블록(104)에서 결정되고, 블록(106)에서 테스트되고, 블록(108)의 최적화 임계값을 충족하는 원래의 경로에 대한 하나 이상의 가능한 최적화의 최적 또는 최상의 최적화를 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 도시한다. 최적 또는 최상의 최적화는, 예를 들면 최저 위험도, 추가된 최소 추가 경로 길이, 및/또는 당업자에 의해 인식되는 다른 파라미터를 포함하는 경로의 최적화를 포함할 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 원래(602)에 대한 최상의 경로 최적화의 적용은 도 7 및 8a∼c에 추가로 도시된 메모리(224)에 저장된 경로를 따라 상태 지점과 연관된 좌표를 수정함으로써 행해질 수 있다.
블록(112)은 이하의 도 2에 도시된 액추에이터 유닛(208)을 활성화하여 최적화된 구간 또는 그 일부를 포함하는 최적화된 경로를 따라 로봇(202)을 이동하여, 로봇(202)이 가까운 물체와 충돌하지 않고 타이트 턴 및/또는 좁은 통로를 통과할 수 있도록 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 도시하며, 상기 최적화된 경로는 최적화로 인해 원래의 경로와 적어도 부분적으로 다르다.
도 2는 본 개시의 일부 원리에 따른 로봇(202)의 기능 블록도이다. 도 2에 도시된 바와 같이, 로봇(202)은 컨트롤러(222), 메모리(224), 사용자 인터페이스 유닛(212), 맵핑 및 위치화 유닛(226), 센서 유닛(214), 액추에이터 유닛(208), 및 통신 유닛(216) 뿐만 아니라 다른 구성요소 및 하위 구성요소(예를 들면, 이들 중 일부는 도시되지 않을 수 있음)를 포함할 수 있다. 특정 구현예는 도 2에 도시되어 있지만, 본 개시의 내용을 고려하면 당업자에게 용이하게 명백한 바와 같이 특정 실시형태에서 아키텍처가 변경될 수 있다는 것이 이해된다. 본 명세서에서 사용되는 바와 같이, 로봇(202)은 본 개시에 설명된 임의의 로봇의 적어도 일부를 대신할 수 있다.
컨트롤러(222)는 로봇(202)에 의해 행해지는 다양한 동작을 제어할 수 있다. 컨트롤러(222)는 하나 이상의 프로세서(예를 들면, 마이크로프로세서) 및 다른 주변 장치를 포함할 수 있다. 본원에서 사용되는 바와 같이, 프로세서, 마이크로프로세서 및/또는 디지털 프로세서는, 제한없이 디지털 신호 프로세서("DSP"), 축소 명령 세트 컴퓨터("RISC"), 범용("CISC") 프로세서, 마이크로프로세서, 게이트 어레이(예를 들면, 필드 프로그래머블 게이트 어레이("FPGA")), 프로그래머블 로직 디바이스("PLD"), 재구성 가능 컴퓨터 패브릭("RCF"), 어레이 프로세서, 보안 마이크로프로세서, 특수 프로세서(예를 들면, 뉴로모픽 프로세서), 및 주문형 집적 회로("ASIC") 등과 같은 임의의 유형의 디지털 프로세싱 디바이스를 포함할 수 있다. 이러한 디지털 프로세서는 단일 유니터리 집적 회로 다이 상에 포함될 수 있거나, 또는 다수의 컴포넌트에 걸쳐 분포될 수 있다.
컨트롤러(222)는 메모리(224)에 동작 가능하게 및/또는 통신 가능하게 결합될 수 있다. 메모리(224)는, 제한없이 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 비휘발성 랜덤 액세스 메모리("NVRAM"), 프로그래머블 판독 전용 메모리("PROM"), 전기적 소거 가능 프로그래머블 판독 전용 메모리("EEPROM"), 동적 랜덤 액세스 메모리("DRAM"), 모바일 DRAM, 동기식 DRAM("SDRAM"), 더블 데이터 레이트 SDRAM("DDR/2 SDRAM"), 확장 데이터 출력("EDO") RAM, 고속 페이지 모드("FPM") RAM, 감소된 레이턴시 DRAM("RLDRAM"), 정적 RAM("SRAM"), 플래시 메모리(예를 들면, NAND/NOR), 멤리스터 메모리, 의사정적 RAM("PSRAM") 등을 포함하는, 디지털 데이터를 저장하도록 구성된 임의의 유형의 집적 회로 또는 다른 저장 디바이스를 포함할 수 있다. 메모리(224)는 명령 및 데이터를 컨트롤러(222)에 제공할 수 있다. 예를 들면, 메모리(224)는 복수의 명령이 저장된 비일시적 컴퓨터-판독가능 저장 장치 및/또는 매체일 수 있으며, 상기 명령은 로봇(202)을 동작시키도록 프로세싱 장치(예를 들면, 컨트롤러(222))에 의해 실행 가능하다. 일부 경우에 있어서, 명령은, 프로세싱 장치에 의해 실행될 때에, 프로세싱 장치가 본 개시에서 설명되는 다양한 방법, 특징, 및/또는 기능성을 행하게 하도록 구성될 수 있다. 따라서, 컨트롤러(222)는 메모리(224) 내에 저장된 프로그램 명령에 기초하여 논리 및/또는 산술 연산을 행할 수 있다. 일부 경우에 있어서, 메모리(224)의 명령 및/또는 데이터는, 일부는 로봇(202) 내에 로컬로 위치되고 일부는 로봇(202)으로부터 원격에 위치되는(예를 들면, 클라우드, 서버, 네트워크 등) 하드웨어의 조합에 저장될 수 있다.
프로세서가 로봇(402)의 외부에 있을 수 있고, 통신 유닛(414)을 이용하여 로봇(402)의 컨트롤러(422)에 통신 가능하게 결합될 수 있다는 것은 당업자에게 명백할 것이며, 상기 외부 프로세서는 로봇(402)으로부터 데이터를 수신하여 데이터를 처리하고, 컴퓨터 판독가능한 명령을 컨트롤러(422)로 다시 전송하도록 구성될 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 있어서, 프로세서는 원격 서버(도시되지 않음)에 있을 수 있다.
적어도 하나의 예시적 실시형태에 따르면, 센서 유닛(214)은 로봇(202) 내부 및/또는 주변의 특성을 감지할 수 있는 시스템 및/또는 방법을 포함할 수 있다. 센서 유닛(214)은 복수 및/또는 센서의 조합을 포함할 수 있다. 센서 유닛(214)은 로봇(202)의 내부 또는 외부에 있는 센서, 및/또는 부분적으로 내부 및/또는 부분적으로 외부인 구성요소를 포함할 수 있다. 일부 경우에 있어서, 센서 유닛(214)은 소나, 광 감지 및 거리측정("LIDAR") 센서, 레이더, 레이저, 카메라(비디오 카메라(예를 들면, 적색-청색-녹색("RBG") 카메라, 적외선 카메라, 3차원("3D") 카메라, 열화상 카메라 등)를 포함함), 비행시간("TOF") 카메라, 구조화된 라이트 카메라, 안테나, 동작 감지기, 마이크, 및/또는 당업계에 공지된 다른 임의의 센서와 같은 하나 이상의 외부 수용 센서를 포함할 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 센서 유닛(214)은 미가공 측정치(예를 들면, 전류, 전압, 저항, 게이트 로직 등) 및/또는 변환된 측정치(예를 들면, 거리, 각도, 장애물 감지 지점 등)을 수집할 수 있다. 일부 경우에 있어서, 측정치가 집계 및/또는 요약될 수 있다. 센서 유닛(214)은 측정치에 적어도 부분적으로 기초하여 데이터를 생성할 수 있다. 이러한 데이터는 행렬, 어레이, 큐, 리스트, 어레이, 스택, 백 등과 같은 데이터 구조로 저장될 수 있다. 적어도 하나의 예시적 실시형태에 있어서, 상기 센서 데이터의 데이터 구조는 이미지라고 부를 수 있다.
적어도 하나의 예시적 실시형태에 따르면, 센서 유닛(214)은 로봇(202)의 내부 특징을 측정할 수 있는 센서를 포함할 수 있다. 예를 들면, 센서 유닛(214)은 로봇(202)의 온도, 전력 레벨, 상태 및/또는 임의의 특성을 측정할 수 있다. 일부 경우에 있어서, 센서 유닛(214)은 로봇(202)의 오도메트리(odometry)를 결정하도록 구성될 수 있다. 예를 들면, 센서 유닛(214)에는 가속도계, 관성 측정 유닛("IMU"), 내비게이션거리계, 자이로스코프, 속도계, 카메라(예를 들면, 시각적 오도메트리(visual odometry)를 사용함), 시계/타이머 등과 같은 센서를 포함할 수 있는 고유 수용성 센서가 포함될 수 있다. 오도메트리는 로봇(202)의 자율 내비게이션 및/또는 자율 동작을 용이하게 할 수 있다. 이 오도메트리에는 초기 위치에 대한 로봇(202)의 자세(예를 들면, 위치는 로봇의 위치, 변위 및/또는 배향을 포함할 수 있고, 경우에 따라서는 본원에 사용된 용어인 "자세"로 치환할 수 있음)가 포함될 수 있다. 이러한 데이터는 행렬, 어레이, 큐, 리스트, 어레이, 스택, 백 등과 같은 데이터 구조로 저장될 수 있다. 적어도 하나의 예시적 실시형태에 있어서, 상기 센서 데이터의 데이터 구조는 이미지라고 부를 수 있다.
맵핑 및 위치화 유닛(226)은 센서 유닛(214)으로부터 센서 데이터를 수신하여 로봇(202)을 지도 내에 위치시킬 수 있다. 적어도 하나의 예시적 실시형태에 있어서, 맵핑 및 위치화 유닛(226)은 로봇(202)이 맵의 좌표에 자신을 위치시킬 수 있게 하고, 및/또는 소정 위치(예를 들면, 초기화 위치, 종료 위치, 비컨, 기준 위치 등)에 대해 자신을 위치시킬 수 있게 하는 위치화 시스템 및 방법을 포함할 수 있다. 맵핑 및 위치화 유닛(226)은 또한 그래프 및/또는 맵을 생성하는 등의 것에 의해 로봇(202)에 의해서 취해진 측정치를 처리할 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 맵핑 및 위치화 유닛(226)은 개별 유닛이 아니라 센서 유닛(214) 및/또는 컨트롤러(222)의 일부일 수 있다.
적어도 하나의 예시적 실시형태에 있어서, 로봇(202)은 학습 프로세스를 통해 경로를 맵핑하고 학습할 수 있다. 예를 들면, 오퍼레이터는 환경의 경로를 따라 로봇(202)을 구동함으로써 로봇(202)이 환경에서 어디로 이동해야 하는지를 교시할 수 있다. 센서 유닛(214)으로부터의 센서 데이터의 조합을 통해, 로봇(202)은 환경에서의 로봇(202)의 상대 자세 및 아이템의 자세를 결정할 수 있다. 이러한 방식으로, 로봇(202)은 환경 내 위치 및 이동한 위치를 결정할 수 있다. 로봇(202)은 이후에 어디로 이동했는지를 기억하고 실질적으로 유사한 방식으로 이동할 수 있다(그러나, 후속한 이동에서 특정 장애물은 피할 수 있음). 로봇은 이러한 경험을, 예를 들면 네트워크(302)를 통해 서로 공유할 수 있다.
적어도 하나의 예시적 실시형태에 있어서, 사용자 인터페이스 유닛(212)은 사용자가 로봇(202)과 상호 작용할 수 있도록 구성될 수 있다. 예를 들면, 사용자 인터페이스 유닛(212)은 터치 패널, 버튼, 키패드/키보드, 포트(예를 들면, 범용 직렬 버스("USB"), 디지털 비주얼 인터페이스("DVI"), 디스플레이 포트, E-Sata, Firewire, PS/2, 시리얼, VGA, SCSI, 오디오포트, 고화질 멀티미디어 인터페이스("HDMI"), 개인용 컴퓨터 메모리 카드 국제 협회("PCMCIA") 포트, 메모리 카드 포트(예를 들면, 보안 디지털("SD") 및 miniSD), 및/또는 컴퓨터 판독가능한 매체용 포트), 마우스, 롤러볼, 콘솔, 바이브레이터, 오디오 변환기, 및/또는 사용자가 데이터 및/또는 코맨드를 입력 및/또는 수신할 수 있도록 한 것으로서 무선 연결 또는 유선 연결이든 상관없는 임의의 인터페이스를 포함할 수 있다. 사용자는 음성 코맨드 또는 제스쳐를 통해 상호 작용할 수 있다. 사용자 인터페이스 유닛(218)에는, 예를 들면 제한없이 액정 디스플레이("LCD"), 발광 다이오드("LED") 디스플레이, LED LCD 디스플레이, 인-플레인 스위칭("IPS") 디스플레이, 음극선관, 플라즈마 디스플레이, 고화질("HD") 패널, 4K 디스플레이, 망막 디스플레이, 유기 LED 디스플레이, 터치스크린, 표면, 캔버스, 및/또는 임의의 디스플레이, 텔레비전, 모니터, 패널, 및/또는 당업계에 공지된 시각적 표현을 위한 장치 등과 같은, 디스플레이가 포함될 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 사용자 인터페이스 유닛(212)은 로봇(202)의 본체에 위치될 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 사용자 인터페이스 유닛(212)은 로봇(202)의 본체로부터 멀리 떨어져 위치될 수 있지만, 로봇(202)에(예를 들면, 송신기, 수신기, 및/또는 송수신기를 포함한 통신 유닛을 통해) 직접적으로 또는 간접적으로(예를 들면, 네트워크, 서버, 및/또는 클라우드를 통해) 통신 가능하게 결합될 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 사용자 인터페이스 유닛은, 예를 들면 탑승자 또는 로봇 주변 사람들에게 정보를 제공하기 위해, 로봇에 근접하게 위치된 표면(예를 들면, 바닥) 상에 하나 이상의 이미지를 투영하는 것을 포함할 수 있다. 상기 정보는 전방, 좌, 우, 후방, 경사, 및/또는 임의의 다른 방향으로 이동한다는 표시와 같이 로봇의 향후의 이동 방향일 수 있다. 일부 경우에 있어서, 이러한 정보는 화살표, 색상, 기호 등을 이용할 수 있다.
예시로서, 로봇(202)은 프로젝터, 조명, 및/또는 다른 투영 시스템을 가질 수 있다. 로봇(202)은 사람들에게 움직임의 방향 및/또는 다음 행동을 알리기 위해 바닥에 이미지를 투영할 수 있다. 예를 들면, 로봇(202)은 경로의 이미지를 바닥에 투영하여 사람들이 어디로 이동할 것인지 알게 할 수 있다. 바닥에 투영된 다른 이미지는 로봇(202)이 정지할 계획인 곳, 이동을 시작할 계획인 시기, 이동하는 곳, 및/또는 로봇식 의자 주변의 사람들이 보다 편안하고 안전하게 느끼도록 하는 유용한 정보를 나타낼 수 있다. 이러한 투영은 "로봇식 장치의 안전한 내비게이팅을 위한 장치 및 방법"이라는 발명의 명칭의 미국 특허 공개 제2016/0375592호이면서, 현재는 미국 특허 제9,840,003호인 실질적으로 유사한 시스템 및 방법을 이용할 수 있으며, 그 전체내용이 본원에 참조로 원용된다.
적어도 하나의 예시적 실시형태에 따르면, 통신 유닛(216)에는 하나 이상의 수신기, 송신기, 및/또는 송수신기가 포함될 수 있다. 통신 유닛(216)은, 예를 들면 블루투스(BLUETOOTH®), 지그비(ZIGBEE®), 와이파이(Wi-Fi), 유도 무선 데이터 전송, 무선 주파수, 무선 전송, 무선 주파수 식별("RFID"), 근거리 통신("NFC"), 적외선, 네트워크 인터페이스, 3G(3GPP/3GPP2)와 같은 셀룰러 기술, 고속 다운링크 패킷 액세스("HSDPA"), 고속 업링크 패킷 액세스("HSUPA"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA")(예를 들면, IS-95A, 광대역 코드 분할 다중 접속("WCDMA") 등), 주파수 호핑 확산 스펙트럼("FHSS"), 직접 시퀀스 확산 스펙트럼("DSSS"), 글로벌 이동 통신 시스템("GSM"), 개인 영역 네트워크("PAN")(예를 들면, PAN/802.15), 마이크로웨이브 액세스를 위한 전세계 상호 운용성("WiMAX"), 802.20, 롱텀 에볼루션("LTE")(예를 들면, LTE/LTE-A), 시분할 LTE("TD-LTE"), 글로벌 이동 통신 시스템("GSM"), 협대역/주파수 분할 다중 액세스("FDMA"), 직교 주파수 분할 다중화("OFDM"), 아날로그 셀룰러, 셀룰러 디지털 패킷 데이터("CDPD"), 위성 시스템, 밀리미터파 또는 마이크로웨이브 시스템, 음향, 적외선(예를 들면, 적외선 데이터 통신("IrDA")), 및/또는 임의의 다른 형태의 무선 데이터 전송과 같은, 전송 프로토콜을 송신/수신하도록 구성될 수 있다.
본원에 사용된 바와 같이, 네트워크 인터페이스는, 제한없이 파이어와이어(FireWire)(예를 들면, FW400, FW800, FWS800T, FWS1600, FWS3200 등), 범용 직렬 버스("USB")(예를 들면, USB 1.X, USB 2.0, USB 3.0, USB 타입-C 등), 이더넷(예를 들면, 10/100, 10/100/1000(기가바이트 이더넷), 10-Gig-E 등), 케이블 기초 멀티미디어 연합("MoCA") 기술, Coaxsys(예를 들면, TVNET™), 무선 주파수 튜너(예를 들면, 인밴드 또는 00B, 케이블 모뎀 등), Wi-Fi(802.11), WiMAX(예를 들면, WiMAX(802.16)), PAN(예를 들면, PAN/802.15), 셀룰러(예를 들면, 3G, LTE/LTE-A/TD-LTE/TD-LTE, GSM 등), IrDA 제품군 등의 것을 포함하는, 컴포넌트, 네트워크, 또는 프로세스와의 임의의 신호, 데이터, 또는 소프트웨어 인터페이스를 포함할 수 있다. 본원에 사용되는 바와 같이, Wi-Fi는 IEEE 표준 802.11, IEEE 표준 802.11의 변형, IEEE 표준 802.11과 관련된 표준(예를 들면, 802.11 a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay), 및/또는 기타 무선 표준 중 하나 이상을 포함할 수 있다.
또한, 통신 유닛(216)은 신호선 및 접지를 갖는 임의의 케이블과 같은 유선 접속을 통해서 전송 프로토콜을 이용하여 신호를 송신/수신하도록 구성될수 있다. 예를 들면, 이러한 케이블에는 이더넷 케이블, 동축 케이블, 범용 직렬 버스("USB"), 파이어와이어(FireWire), 및/또는 당업계에 공지된 임의의 접속 수단이 포함될 수 있다. 이러한 프로토콜은 통신 유닛(216)에 의해 사용되어서 컴퓨터, 스마트폰, 태블릿, 데이터 갈무리 시스템, 이동 통신 네트워크, 클라우드, 서버 등과 같은 외부 시스템과 통신할 수 있게 한다. 통신 유닛(216)은 숫자, 문자, 영숫자 문자, 및/또는 기호를 포함하는 신호를 송신 및 수신하도록 구성될 수 있다. 일부 경우에 있어서, 신호는 128 비트 또는 256 비트 키 및/또는 고급 암호화 표준("AES"), RSA, 데이터 암호화 표준("DES"), 트리플 DES 등과 같은 표준을 준수하는 다른 암호화 알고리즘과 같은, 알고리즘을 사용하여 암호화될 수 있다. 통신 유닛(216)은 상태, 코맨드, 및 다른 데이터/정보를 송신 및 수신하도록 구성될 수 있다. 예를 들면, 통신 유닛(216)은 사용자가 로봇(202)을 제어할 수 있게 하기 위해 사용자 오퍼레이터와 통신할 수 있다. 통신 유닛(216)은 로봇(202)이 데이터, 상태, 코맨드, 및 다른 통신 정보를 서버에 송신할 수 있게 하기 위하여, 서버/네트워크(예를 들면, 네트워크)와 통신할 수 있다. 또한, 상기 서버는 로봇(202)을 원격으로 모니터링 및/또는 제어하는데 사용될 수 있는 컴퓨터(들) 및/또는 장치(들)에 통신 가능하게 결합될 수도 있다. 또한, 통신 유닛(216)은 로봇(202)을 위해 서버로부터 업데이트(예를 들면, 펌웨어 또는 데이터 업데이트), 데이터, 상태, 코맨드 및 다른 통신 정보를 수신할 수 있다.
액추에이터 유닛(208)은 일부 경우에 작업을 행하기 위해 작동에 사용되는 임의의 시스템을 포함할 수 있다. 예를 들면, 액추에이터 유닛(208)은 피동 자석 시스템, 모터/엔진(예를 들면, 전기 모터, 연소 엔진, 증기엔진, 및/또는 당업계에 공지된 임의의 유형의 모터/엔진), 솔레노이드/래칫 시스템, 압전 시스템(예를 들면, 인치웜 모터), 자기변형 요소, 제스처, 및/또는 당업계에 공지된 임의의 액추에이터를 포함할 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 액추에이터 유닛(208)은 전동화 추진과 같은 로봇(202)의 이동을 허용하는 시스템을 포함할 수 있다. 예를 들면, 전동 추진은 로봇(202)을 전방 또는 후방으로 이동시킬 수 있고, 및/또는 로봇(202)을 회전시키는데 적어도 부분적으로 사용될 수 있다(예를 들면, 좌측, 우측, 및/또는 임의의 다른 방향). 예로서, 액추에이터 유닛(208)은 로봇(202)이 이동하는지 또는 정지되는지를 제어할 수 있고, 및/또는 로봇(202)이 하나의 위치에서 또 다른 위치로 이동할 수 있게 한다.
또한, 도 2를 참조하면, 맵핑 및 위치화 유닛(226)은 하나 이상의 센서 유닛(214)으로부터의 데이터에 기초하여 로봇(202)을 둘러싸는 환경의 컴퓨터 판독가능한 맵을 저장, 조작, 및/또는 계산할 수 있다. 예를 들면, 맵핑 및 위치화 유닛(226)은 LiDAR 센서로부터 LiDAR 데이터를 수신할 수 있으며, LiDAR 데이터는 로봇(202)과 주변 물체 사이의 거리 측정을 포함하고, 컴퓨터 판독가능한 맵 상의 LiDAR 데이터에서 감지된 물체를 맵핑한다. 컴퓨터 판독가능한 맵은 물체, 피처, 로봇(202), 및/또는 다른 국부적인 물체 또는 사물의 위치를 포함하는 로봇(202)을 둘러싸는 환경의 재현을 포함할 수 있다. 맵핑 및 위치화 유닛(226)은 하나 이상의 센서 유닛(214)(예를 들면, 자이로스코프, 가속도계 및 다른 IMU)으로부터의 측정에 기초하여 환경 내에서 및/또는 컴퓨터 판독가능한 맵 상에 로봇(202)을 위치시키도록 추가로 구성될 수 있다.
맵 평가 유닛(228)은 정확도 및/또는 비용 및 위험 평가를 위해 컴퓨터 판독가능한 맵을 평가하도록 구성될 수 있으며, 도 2에 더 설명되어 있다. 지도 평가 유닛(228)은 그 중에서도, 로봇(202)의 내비게이션 가능한 경로의 양측에서 임계 거리 내에 있는 2개의 물체에 기초하여, 컴퓨터 판독가능한 맵 상의 2개의 물체 사이의 가능한인 좁은 통로를 평가할 수 있다. 맵 평가 유닛(228)은 컴퓨터 판독가능한 맵에 기초하여 로봇(202)의 가능한 경로를 평가하여, 가능한인 경로가 내비게이팅할 수 없는 부분, 좁은 코너, 좁은 통로, 및/또는 로봇(202)이 내비게이팅하는 동안 고려해야 하는 다른 위험요소를 포함하는지의 여부를 결정할 수 있다. 지도 평가 유닛(228)은 환경에 대한 컴퓨터 판독가능한 맵이 센서 유닛(214)에 의한 측정에 기초하여 환경을 정확하게 나타내는지를 결정하도록 구성될 수 있다. 즉, 맵 평가 유닛(228)은 로봇(202)이 작동할 때에 센서 유닛(214)으로부터 획득된 측정에 기초하여 정확도를 향상시키기 위해 기존의 컴퓨터 판독가능한 맵을 조작할 수 있다.
도 2와 관련하여 설명된 하나 이상의 유닛(메모리(224), 컨트롤러(222), 센서 유닛(214), 사용자 인터페이스 유닛(212), 액추에이터 유닛(208), 통신 유닛(216), 맵핑 및 위치화 유닛(226), 및/또는 다른 유닛을 포함함)은, 예를 들면 통합된 시스템으로 로봇(202)에 통합될 수 있다. 그러나, 일부 예시적 실시형태에 따르면, 이들 유닛 중 하나 이상은 부착 가능한 모듈의 일부일 수 있다. 이 모듈은 기존 장치에 부착하여 로봇처럼 작동하도록 자동화될 수 있다. 따라서, 로봇 (202)과 관련하여 본 개시에서 설명된 특징은 기존 장치에 부착될 수 있고, 및/또는 통합 시스템에서 로봇(202)에 통합될 수 있는 모듈에서 인스턴스화될 수 있다. 또한, 일부 경우에 있어서, 당업자는 본 개시에서 설명된 특징의 적어도 일부가 또한 클라우드, 네트워크, 및/또는 서버와 같이, 원격으로 실행될 수 있다는 것을 본 개시의 내용으로부터 이해할 것이다.
본원에 사용되는 바와 같이, 로봇(202)의 기능은 메모리(224)로부터 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222)에 의해 제어되며, 컨트롤러(222) 및 메모리(224)는 통신 가능하게 결합되고, 로봇(202)의 내부 또는 외부에(예를 들면, 원격 서버에)에 존재할 수 있다는 것이 당업자에 의해 이해될 것이다. 즉, 메모리(224)에 대한 읽기 또는 쓰기를 요구하는 기능을 행하는 컨트롤러는 메모리(224)로부터 명령을 실행하는 컨트롤러를 포함한다.
이어서, 도 3을 참조하면, 도 2에 도시된 시스템에서 사용되는 특수 컨트롤러(222)의 아키텍처는 예시적 실시형태에 따라 도시된다. 도 3에 나타낸 바와 같이, 특수 컨트롤러(222)는 데이터 버스(306), 수신기(302), 송신기(312), 적어도 하나의 프로세서(308) 및 메모리(310)를 포함한다. 수신기(302), 프로세서(308) 및 송신기(312)는 모두 데이터 버스(306)를 통해 서로 통신한다. 프로세서(308)는 특수 알고리즘을 실행하도록 구성된 특수 프로세서이다. 프로세서(308)는 프로세서 (308)가 특수 알고리즘을 실행하기 위해 컴퓨터 코드 또는 명령을 저장하는 메모리(310)에 액세스하도록 구성된다. 도 3에 도시된 바와 같이, 메모리(310)는 도 2에 이전에 도시된 메모리(224)의 특징의 일부, 전무, 상이하거나 또는 모든 특징을 포함할 수 있다. 프로세서(308)에 의해 실행되는 알고리즘은 이하에 더욱 상세하게 설명된다. 도 3에 도시된 바와 같은 수신기(302)는 입력 신호(304)를 수신하도록 구성된다. 입력 신호(304)는 도 2에 도시된 복수의 작동 유닛(204)으로부터의 신호를 포함할 수 있으며, 이는 센서 유닛(114)으로부터의 센서 데이터, 사용자 입력, 모터 피드백, 외부 통신 신호(예를 들면, 원격 서버로부터의 신호), 및/또는 특수 컨트롤러(222)에 의한 추가 처리가 필요한 작동 유닛(204)으로부터의 임의의 다른 신호를 포함하지만, 이에 제한되지 않는다. 수신기(302)는 이들 수신 신호를 데이터 버스(306)를 통해 프로세서(308)에 통신한다. 당업자가 이해할 수 있는 바와 같이, 데이터 버스(306)는 특수 컨트롤러(222)에서 상이한 구성요소들 사이의 통신 수단-수신기, 프로세서 및 송신기-이다. 프로세서(308)는 메모리(310)로부터 특수 컴퓨터 판독가능한 명령에 액세스함으로써 후술되는 바와 같이 알고리즘을 실행한다. 이들 신호의 수신, 프로세싱 및 송신에서 특수 알고리즘을 실행하는 프로세서(308)에 관한 추가의 상세한 설명은 도 2와 관련하여 위에 설명되어 있다. 메모리(310)는 컴퓨터 코드 또는 명령을 저장하기 위한 저장 매체이다. 저장 매체는, 그 중에서도 광학 메모리(예를 들면, CD, DVD, HD-DVD, Blu-Ray Disc 등), 반도체 메모리(예를 들면, RAM, EPROM, EEPROM 등), 및/또는 자기 메모리(예를 들면, 하드 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, MRAM 등)를 포함할 수 있다. 저장 매체는 휘발성, 비휘발성, 동적, 정적, 읽기/쓰기, 읽기 전용, 랜덤 액세스, 순차 액세스, 위치 주소 지정 가능, 파일 주소 지정 가능, 및/또는 콘텐츠 주소 지정 가능 장치를 포함할 수 있다. 프로세서(308)는 도시된 바와 같이 데이터 버스(306)를 통해 송신기(312)에 출력 신호를 통신할 수 있다. 송신기(312)는 신호 출력(314)에 의해 도시된 복수의 작동 유닛(204)에 출력 신호를 추가로 통신하도록 구성될 수 있다.
당업자는 도 3에 도시된 아키텍처가 원격 위치로부터 로봇식 장치의 제어를 실행하도록 구성된 외부 서버 아키텍처를 도시할 수 있다. 즉, 서버는 적어도 하나의 데이터 버스, 수신기, 송신기, 프로세서, 및 특수 컴퓨터 판독가능한 명령을 저장하는 메모리를 더 포함할 수 있다.
이어서, 도 4에 대해 설명할 것이다. 도 4는 본 개시의 일부 구현예에 따른 비제한적인 예시적 예시에서 로봇(202) 주변의 다양한 위험 구역의 특징을 나타내는 상면도이다. 도시된 바와 같이, 로봇(202)과 관련된 형상은 둥근 직사각형 형상에 가깝다. 다른 형상이 당업자에 의해 고려될 수 있다. 형상은 관련된 길이, 폭, 높이 등을 갖는다. 일부 경우에 있어서, 그려진 형상은 로봇(202)의 풋프린트에 근접할 수 있지만, 로봇(202)의 실제 크기 및/또는 형상과 정확하게 정렬되지 않을 수 있다. 로봇(202)은 로봇 모바일 플랫폼의 경우에서와 같이, 표시기(404)에 의해 표시된 움직임 또는 이동의 방향을 가질 수 있다. 예를 들면, 표시기(404)는 로봇 (202)이 전진, 후진 및/또는 좌회전 또는 우회전과 같은 복수의 방향으로 이동할 수 있다는 것을 나타낼 수 있다. 또한, 전방, 후방, 좌, 우, 상, 하, 행, 피치, 요, 및/ 또는 상술한 것들의 임의의 조합과 같은 로봇의 임의의 운동 방향이 고려된다.
영역(402A)은 로봇(202)의 중요한 위험 구역을 나타낼 수 있다. 예를 들면, 영역(402A)은 그 구역에 존재하는 모든 것(예를 들면, 사람, 어린이, 물품, 및/또는 기타 사물)이 로봇(202)과 물리적으로 접촉할 수 있는 구역일 수 있다. 도시된 바와 같이, 영역(402A)은 표시기(404)에 의해 표시된 바와 같은 이동 방향과 연관될 수 있다. 일부 경우에 있어서, 로봇(202)이 실질적으로 이동 방향을 향해 이동하기 때문에, 접촉 구역의 사물이 로봇(202)에 부딪힐 수 있으며, 이에 따라 로봇(202)의 움직임(예를 들면, 로봇(202)이 움직이지 않고, 사물이 로봇(202)에 부딪히는 상황과 연관된 것임)으로 인한 충격의 힘 및/또는 손상을 증가시킬 수 있다. 따라서, 영역(402A)은 대부분 로봇(202)의 풋프린트 내에 포함된다.
마찬가지로, 영역(402B)은 로봇(202)의 고위험 구역을 나타낼 수 있다. 어떤 물체가 고위험 구역에 있는 경우, 로봇(202)은 그 물체가 로봇(202)과 충돌할 가능성이 있는 영역(402A)에 있기 전에 조종하기 위한 충분한 시간을 갖지 않을 수 있다.
영역(402C)은 중간 위험 구역 및/또는 경고 구역을 나타낼 수 있다. 어떤 물체가 영역(402C)에 있는 경우, 로봇(202)은 영역(402C)에 있는 사물과 충돌하지 않고 제한된 조종성을 가질 수 있다. 따라서, 로봇(202)은 정지 또는 감속과 같은 위험을 해결하기 위해 특정 거동을 취할 수 있다.
각각의 영역이 다른 위험과 연관될 수 있는 다른 영역이 고려된다. 예를 들면, 임의의 수의 영역(402A-402N)이 존재할 수 있으며, 여기서 N은 얼마나 많은 위험 영역이 평가되는지에 기초하여 임의의 미리 결정된 양의 정수/문자이다. 예를 들면, 다른 영역은 저위험 구역, 무위험 구역, 후방 위험 구역, 측면 위험 구역, 손상 구역, 밀폐 공간 구역, 정지 구역, 접촉 구역, 및/또는 특정 레벨 및/또는 위험 유형과 관련된 임의의 구역과 관련이 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 영역(402A-402N)은 로봇(202)의 움직임에 기초하여 동적으로 형상을 변경할 수 있다. 예를 들면, 로봇(202)이 좌회전을 실행하면, 영역(402A-402N)은 로봇(202)의 왼쪽에서 감소되고, 로봇(202)의 오른쪽에서 증가될 수 있으며, 그 반대의 경우도 마찬가지이다. 또 다른 예로서, 영역(402A-402N)은 로봇(202)이 정지되어 있을 때에 로봇(202)을 둘러쌀 수 있고, 로봇(202)이 이동할 때에 움직임 표시기(404)의 방향에 따라 도시된 영역으로 변경될 수 있다.
로봇(202)이 경로에 대한 최적화를 생생하는 적어도 하나의 예시적 실시형태에 따르면, 로봇(202)은 각각의 가능한 최적화와 연관된 위험도를 고려하고, 경로에 대한 최상의 가능한 최적화를 결정할 때에 위험도를 최소화하려고 시도할 수 있다. 다른 예시적 실시형태에 따르면, 로봇(202)의 예시적 조종과 관련된 위험의 정도는 위험 구역(402A-402N)이 환경 내의 물체/장애물과 중첩되는 것에 의해 측정 될 수 있으며, 중첩은 환경의 컴퓨터 판독가능한 맵 상에 결정된다. 다른 예시적 실시형태에 따르면, 이들 위험 구역(402A-402N)은 로봇(202)이 조종을 행하지 않고 로봇(202)의 예시적 조종과 관련된 위험도를 결정할 수 있도록 가상 로봇(도 6에 추가로 도시됨)에 적용될 수 있다. 비제한적인 예시적 예로서, 도 6의 물체(610)는 제 1 조종에 걸쳐 임계 위험 구역(402A) 내에 있고, 물체(610)는 제 2 조종에 걸쳐 고위험 구역(402B) 내에 있으며, 컨트롤러(222)는 제 2 조종을 실행할 수 있다.
도 5는 적어도 하나의 비제한적인 예시적 예시에 따라 복수의 장애물(502), 로봇(202)에 의해 이동되는 원래의 경로(504), 및 로봇(202)에 의해 조종되는 최적화 경로(506)를 포함하는 예시적 환경(500)의 상면도이며, 점선으로 나타낸 최적화 경로(506)는 원래의 경로(504)와 상이하며, 원래의 경로(504)의 수정된 부분을 포함한다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 원래의 경로(504)는 로봇(202)에 교시되거나 프로그래밍될 수 있으며, 로봇(202)은 반자율으로 작동하고, 오퍼레이터를 따라 원래의 경로(504)를 학습할 수 있다. 다른 비제한적인 예시적 실시형태에 따르면, 원래의 경로(504)는 사용자 또는 네트워크(미도시)에 의한 유선 또는 무선 통신을 통해 로봇에 제공될 수 있다. 원래의 경로(504)는 도 5에 도시된 좁은 통로(508)로의 타이트 턴을 포함하기 때문에 로봇(202)이 완전히 자율적인 동안에는 내비게이팅(안전하게)할 수 없을 수 있다. 예를 들면, 로봇(202)은 사용자에 의해 수동으로 구동됨으로써 경로를 교시받을 수 있으며, 사용자는 좁은 통로로의 타이트 턴을 따라 사용자가 로봇(202)을 구동할 때에 로봇(202)의 자율 작동과 관련된 안전 한계(예를 들면, 물체로부터 미리 결정된 최소 거리)를 고려하지 않을 수 있다. 결과적으로, 원래의 경로(504)에 대한 최적화 경로(506)가 작성될 것이 요구된다. 도 5에 도시된 바와 같이, 경로 최적화(506)는 로봇(202)이 장애물(502)에 부딪히거나 회전하지 않고 타이트 턴 후 좁은 통로(508)에 진입할 수 있도록 로봇(202)에 대한 더 넓은 턴 반경을 포함하기 위해 원래의 경로(504)의 탄력 밴딩된 구간을 포함할 수 있다.
또 다른 비제한적인 예시적 실시형태에 따르면, 최적화(506)는 물체 또는 장벽(502)이 이동되는 변화하는 환경(500)의 경우에 충돌을 피하기 위해 로봇이 취해야 하는 경로를 변경할 필요가 있을 수 있다. 추가적으로, 최적화(506)는 로봇(202) 주위의 환경(500)의 추가의 변화를 처리하기 위해 변경될 수 있다.
도 5에 도시된 바와 같이, 로봇(202)의 원래 경로(504)는 복수의 상태 지점(510)을 포함한다. 상태 지점(510)은 로봇(202)이 경로(504)를 실행할 때의 로봇(202)의 상태 파라미터의 개별 샘플(예를 들면, 경로를 따라 매 1, 2, 3등의 초마다 또는 1, 2, 3등의 미터마다 취함)을 포함할 수 있다. 예를 들면, 상태 지점(510A, 510B, 및 510C)가 도시되어 있지만, 명확성을 위해 생략된 경로(504)를 따라 복수의 추가 상태 지점(510)이 존재할 수 있다. 본 명세서에서 사용된 바와 같이, 상태 파라미터는 제한없이, 로봇(202)이 로봇(202)의 위치 및 배향, 로봇(202)의 속도, 로봇(202)의 위치, 대응하는 상태 지점(즉, 액추에이터 코맨드)의 위치에서 행하기 위한 특수 작업, 및/또는 상태 지점(510)에서 실행되는 임의의 컴퓨터 판독가능한 명령을 포함하는 경로(504)를 내비게이팅할 때에 로봇(202)의 상태를 설명하는 로봇(202)의 파라미터를 포함할 수 있다. 환언하면, 경로(504)를 따르는 다수의 상태 지점(510)은 로봇(202)이 경로(504)를 실행할 때의 로봇(202)의 포즈 그래프를 포함할 수 있으며, 각각의 개별 상태 지점(510)은 각각의 위치에서 로봇(202)의 이전에 언급된 임의의 상태 파라미터(예를 들면, 속도)를 포함하는 포즈를 포함할 수 있다. 경로(504)의 실행 또는 내비게이션은 시퀀스 상태 지점(510)의 상태 파라미터에 따라 상태 파라미터(예를 들면, 속도, 배향, 구성 등)를 구성하는 로봇(202)을 포함할 수 있다. 경로(504)를 포함하는 일련의 상태 지점(510)(즉, 포즈 그래프)는, 예를 들면 오퍼레이터가 경로(504)를 통해 로봇(202)을 수동으로 내비게이팅으로써 학습될 수 있으며, 상기 상태 지점(510)의 시퀀스는 배열, 행렬 또는 다른 데이터 구조로서 메모리에 저장될 수 있다.
컨트롤러(222) 또는 프로세서(308)는 최적화 경로(506)를 처리하기 위해 원래의 경로(504)를 따라 일부 상태 지점(510)을 변경하도록 컴퓨터 판독가능한 명령을 실행한다. 원래의 경로(504)에 대한 이들 변경(즉, 시간 또는 거리에서)은 특정 상태 지점(510)에 도달할 때, 상태 지점(510)의 상태 파라미터(예를 들면, 상태 지점(510)에서의 로봇(202)의 위치, 배향, 속도 등)를 포함할 수 있지만, 이에 제한되지는 않으며, 상태 지점(510)은 메모리(224)(예를 들면, 메모리 주소)에 저장되고, 및/또는 최적화된 경로(506)를 따라 일부 상태 지점(510)을 추가 또는 제거한다. 원래의 경로(504)를 따르는 상태 지점(510)에 대한 이들 변경은 상태 지점이 없거나 최적화되는 원래의 경로(504)의 구간에 의해 영향을 받지 않는 경우(즉, 실질적으로 가깝지 않은 경우)에 최적화(예를 들면, 최적화 경로(506))가 이루어지기 전과 후에 대응하는 상태 지점에서 로봇(202)이 동일한 상태에 있도록 보장한다. 또 다른 방식으로 말하면, 각각의 상태 지점은 로봇 또는 자율 장치의 상태 파라미터(예를 들면, 속도 및 배향)를 포함한다.
비제한적인 예시적 예로서, 상태 지점(510)은 메모리(224)에 어레이로서 저장될 수 있으며, 상태 지점(510A)는 어레이로부터 제거되고, 상태 지점(510C)은 최적화(506)가 이루어진 후에는 어레이에 추가될 수 있다. 추가적으로, 상태 지점(510B)는 환경(500) 내의 동일한 상태 및 위치를 포함할 수 있지만, 경로 최적화(506)로 인해 추가되거나 제거된 상태 지점을 설명하기 위해 어레이 내에서 이동될 수 있다. 또 다른 비제한적인 예시적 예에 있어서, 선택 또는 일부 상태 지점(510A 및 510C)의, 로봇(202)의 속도 및 배향과 같은 상태 파라미터는, 로봇(202)이 최적화(506)를 이용하여 경로(504)를 실행하고, 상태 지점(510B)와 같은 다른 상태 파라미터의 상태 파라미터를 변경하지 않도록 변경될 수 있으며, 그 결과 특정 상태 지점만 선택적으로 최적화한다.
도 6은 비제한적인 예시적 실시형태에 따라, 알려진 또는 미리 결정된 경로(602)를 따라 좁은 통로(614)로 내비게이팅하는 로봇(202)의 상면도이다. 컨트롤러(222) 및/또는 프로세서(308)는 컴퓨터 판독가능한 명령을 실행하여 가상 로봇(606A, 606B) 및 복수의 다른 가상 로봇(도시되지 않음)을 더 포함하는 복수의 가상 로봇(606)을 생성한다. 이들 가상 로봇(606A, 606B)은 컴퓨터 판독가능한 명령을 실행함으로써, 컨트롤러(222) 또는 프로세서(308)에 의해 사용될 수 있는 풋프린트 인덱스를 생성하여, 가상 로봇(606A, 606B)의 풋프린트 인덱스가 컴퓨터 판독가능한 맵 상에 각각의 물체(610)와 중첩하는 지점을 포함하는 충돌 지점(608)을 계산함으로써 향후의 충돌을 감지할 수 있다. 가상 로봇(606)은 물리적 엔티티가 아니라 로봇(202)의 환경에 대한 컴퓨터 판독가능한 맵 상의 로봇(202)의 투영이라는 것이 이해된다.
컨트롤러(222) 또는 프로세서(308)는 컴퓨터 판독가능한 명령을 실행하여 이하에서 도 9a∼c 및 도 10에 예시된 방법을 이용하여 2개의 물체(610) 사이의 좁은 통로(614)로 내비게이팅하는 경로(602)를 결정할 수 있다. 따라서, 컨트롤러(222) 또는 프로세서(308)는 각각의 장벽(610)에 대하여 충돌 지점(608)의 알려진 경로(602)에 대한 복수의 가능한 최적화를 테스트하기 위해 경로(602)(즉, 미리 계획된 또는 원래의 경로)를 따라 내비게이팅하는 로봇(202)에 앞서 복수의 가상 로봇(606)을 생성하도록 컴퓨터 판독가능한 명령을 실행하며, 복수의 가능한 최적화 중 하나는 최적화된 경로(604)로서 도시된다. 최적화된 경로(604)는 최적화된 경로(604)를 따라 가상 로봇(606B)을 투영하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해 테스트될 수 있다. 예를 들면, 가상 로봇(606)은 경로(602)의 일부(616)에 대한 각각의 가능한 최적화(100)를 테스트할 수 있다. 컨트롤러(222) 또는 프로세서(308)는 컴퓨터 판독가능한 명령을 실행하여, 각각의 장벽 또는 장애물(610)과의 충돌 지점(608)의 제거, 최적화 경로(604)에 의해 추가된 추가 길이, 로봇(202)이 회전을 실행할 때의 로봇(202)과 물체(610) 사이의 거리, 최적화된 경로(604)와 연관된 위험도(즉, 도 4에 도시된 영역(402)에 따른 물체(610)에 대한 근접성), 작동 유닛(204)으로부터의 데이터, 다른 인근 물체, 및/또는 로봇(402)의 물리적 특성(예를 들면, 폭, 길이, 형상, 회전 반경 등)을 포함하는 복수의 파라미터에 기초하여 경로(604)를 최적화하는 것을 포함하는 구간(616)에 대한 최적화를 결정한다.
도시된 바와 같이, 가상 로봇(606A)은 경로(602)의 원래의 일부(616)를 테스트(즉, 이를 따라 투영됨)하고, 좁은 통로(614)(즉, 2개의 물체(610) 사이의 공간)로 좌회전을 실행하는 동안에 충돌 지점(608)을 감지할 수 있으며, 이에 따라 로봇(202)이 일부(616)과의 경로(602)를 실행하면 충돌이 발생할 수 있음을 컨트롤러(222) 또는 프로세서(308)에 지시한다. 가상 로봇(606B)은 경로(602)의 일부(616)에 대한 최적화 경로(604)를 테스트할 수 있으며, 최적화 경로(604)는 가상 로봇(606B)을 이용하여 테스트된 바와 같이 충돌 지점(608)을 포함하지 않는다. 또한, 복수의 추가 가상 로봇(606)은 명확성을 위해 생략된 일부(616)에 대한 유사한 최적화를 테스트할 수 있으며, 여기서 가상 로봇(606B)에 의해 테스트된 최적화 경로(604)가 상술한 파라미터에 기초하여 경로(602)의 일부(616)에 대한 최상의 최적화인 것이 결정될 수 있다.
적어도 하나의 예시적 실시형태에 따르면, 로봇(202)은, 환경(600)에 대해 컴퓨터 판독가능한 맵 상에 가상 로봇(606)을 적용하기 위해 컴퓨터 판독가능한 명령을 실행하고, 최적화를 찾기 위해 가능한 경로를 추가로 평가(604)하도록 맵핑 및 위치화 유닛(226) 및 맵 평가 유닛(228)을 이용하는 컨트롤러(222) 또는 프로세서(308)에 의해, 사전에(예를 들면, 로봇(202)이 먼 위치에 있는 경우에) 또는 물체(610) 근처로 이동하기 전에 최적화 경로(604)를 계산할 수 있다. 즉, 컨트롤러(222) 또는 프로세서(308)는 로봇(202)이 본질적으로 그 동작을 실행하기 전에, 향후 시점에서 자신의 동작 및 위치를 예측할 수 있도록 컴퓨터 판독가능한 명령을 실행한다.
또한, 도 6을 참조하면, 하나 또는 복수의 충돌 지점(608)이 알려진 경로(602)의 구간(616)을 따라 감지될 수 있으며, 이는 컨트롤러(222) 또는 프로세서(308)가 메모리(224)에 저장된 컴퓨터 판독가능한 명령을 실행하여, 원래 경로(602)의 일부 또는 구간인 구간(616)에 대한 최상 또는 최적의 최적화 경로(604)를 찾게 한다. 최상 또는 최적의 최적화 경로(604)는 최적화 경로(604)를 테스트하기 위해 가상 로봇(606)을 적용하는 컨트롤러(222) 또는 프로세서(308)에 의해 발견될 수 있다. 대안적으로, 하나 이상의 비제한적인 예시적 실시형태에 있어서, 충돌 지점(608)은 가상 로봇(606A) 내비게이션 일부(616)를 이용하는 테스트 동안에는 존재하지 않을 수 있으며, 이에 의해 로봇(202)은 최적화 경로(604)를 필요로 하지 않고, 일부(616)를 포함하는 원래 경로(602)를 내비게이팅할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 충돌 지점(608)은 컴퓨터 판독가능한 맵 상의 물체(610)와 중첩하는, 임계 위험 영역(402A) 또는 다른 위험 영역(402)을 도시할 수 있으며, 상기 컴퓨터 판독가능한 맵 상의 물체(610)와 위험 영역(402A)의 중첩은 허용 불가능(예를 들면, 안전상의 이유로)할 수 있으며, 이에 따라 경로(602)의 일부(616)에 대한 최적화(604)를 결정할 필요가 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 충돌 지점(608)의 감지는, 컨트롤러(222) 또는 프로세서(308)가 컴퓨터 판독가능한 명령을 실행시켜 로봇(202)을 멈추게 하거나 완전히 정지시키고, 특수 알고리즘을 실행시켜 본 개시에서 전술한 방법 및 가상 로봇(606)을 이용하여 최적화 경로(604)를 발견하게 할 수 있다. 위에서 언급한 바와 같이, 이들 가상 로봇은 로봇(202)이 경로(602)에 언더테이킹하거나 경로(604)를 최적화하기 전에 형성하는 향후 또는 이후 시점에서의 로봇(202)의 컴퓨터 판독가능한 맵 상의 투영이다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 센서 유닛(214)은 경로(602)의 양측 상의 미리 결정된 임계 거리 내에서 경로(602) 근처의 물체(610)를 감지하기 위해 이용될 수 있다. 물체(602)가 경로(602) 근처에 있는 것을 감지하면, 임계 거리 내에서, 컨트롤러(222) 또는 프로세서(308)는 경로(604)의 구간 (616)에 대한 최상의 최적화에 대응하는 최적화 경로(604)를 결정하고 내비게이팅하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 일부 예에 있어서, 로봇(102)은 물체(610) 근처를 내비게이팅할 때에, 임계 거리 내에서 경로(604) 근처에 있는 물체(610)를 감지할 수 있으며, 여기서 로봇(202)은 경로(602)의 일부(616)에 적용되는 최적화(604)를 결정하기 위해 경로(602)를 따라 역추적하고, 이어서 충돌을 피하기 위해 최적화 경로(604)를 실행할 수 있다.
예시된 바와 같이, 컨트롤러(222) 또는 프로세서(308)는 경로(602)의 구간(616)을 탄력 밴딩함으로써 최적화 경로(604)를 적용하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있으며, 여기서 구간(616)을 탄력 밴딩하는 것은 도 8a∼c에 추가로 도시된 바와 같이, 턴어라운드 물체(610)를 내비게이팅할 때에 로봇(202)의 물체(610)로부터의 거리를 증가시키는 것을 포함한다. 환언하면, 구간(616)을 탄력 밴딩하는 것은 로봇(202)이 좁은 통로(614)로 내비게이팅하기 위해 더 넓은 턴 반경을 포함하도록 물체(610)로부터 멀리 떨어져 구간(616)을 연장시키하거나 확장하는 것과 유사하고, 이에 따라 좁은 통로(614)에 진입하거나 접근할 때에 로봇(202)의 충돌 위험이 감소되고, 및/또는 배향이 변경되어 각각의 장벽(610)과의 충돌 지점(608)이 제거되어 위험이 최소화된다. 예를 들면, 최적화된 경로(604)의 내비게이션 동안에 로봇(202)의 위치 및 배향을 나타내는 가상 로봇(606B)은 가상 로봇(606B)이 좁은 통로(614)에 진입하기 전 또는 진입 동시에 실질적으로 전방 방향을 향한다.
다른 비제한적인 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 메모리(224)로부터 알려진 경로(602)를 따라 상태 지점(612)의 위치를 저장/호출하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 알려진 경로(602)는 복수의 상태 지점(612)(예를 들면, 도시된 바와 같이 612A, 612B, 612C 및 612D)을 포함할 수 있으며, 여기서 알려진 경로(602)를 따르는 그들의 위치는 메모리(224)에 저장된다. 이어서, 컨트롤러(222) 또는 프로세서(308)는 알려진 경로(602)의 구간(616)에 대한 최적화 경로(604)를 처리하기 위해 복수의 상태 지점(612)에 대응하는 메모리(224)에 저장된 데이터에 대한 변경이 이루어지도록 컴퓨터 판독가능한 명령을 실행할 수 있다.
도 6에 도시된 바와 같이, 최적화 경로(604)는 경로(602)를 따라 선택된 수 개의 상태 지점, 보다 구체적으로 경로(602)의 일부(616)를 따르는 상태 지점의 조작을 포함한다. 이하, 도 8b는 어느 상태 지점(612)이 조작되도록 선택되었는지, 및 그것의 조작 방법을 더 상세하게 설명한다. 비제한적인 예로서, 경로(602)의 최적화 경로(604)는 상태 지점(612B 및 612D) 근처에서 행해지는데, 이는 이들 상태 지점이 그 중에서도(도시되지 않음) 경로(602)의 일부(616)를 따라 놓이거나 실질적으로 가깝기 때문이며(예를 들면, 상태 지점 내에서), 여기서 일부(616)는 로봇(202)에 의해 내비게이션되는 경우에 충돌 지점(608)을 발생시키도록 결정될 수 있다. 반면에, 상태 지점(612A)은 최적화 경로(604) 근처에 있지 않기 때문에 도 6에 도시된 바와 같이 변경되지 않는다. 환언하면, 비제한적인 예시적 실시형태에 의해, 상태 지점(612A)은 최적화 경로(604)로 변경되는 경로(602)의 구간(616) 상에 또는 그 근처에 위치하지 않는다. 달리 말하면, 일부 상태 지점은 최적화될 수 있지만 다른 상태 지점은 변경되지 않을 수 있다.
최적화 경로(604)가 존재하지 않으면, 컨트롤러(222) 또는 프로세서(308)는, 이전에 도 5에 예시된 것들과 실질적으로 유사한 방법을 이용하여 메모리(224)에 저장된 상태 지점(612A)에 대응하는 데이터를 일부 변경하거나 또는 전혀 변경하지 않음으로써, 경로(602)의 일부(616)에 최적화 경로(604)를 적용하기 전후에 상태 지점(612A)에서의 로봇(202)의 상태 파라미터가 유지되도록 컴퓨터 판독가능한 명령을 실행시킬 수 있다. 달리 말하면, 최적화 경로(604)가 적용된 후에 상태 지점(612A)의 위치가 변경되지 않기 때문에, 상태 지점(612A)에 대응하는 상태 파라미터는 업데이트되거나 변경되거나 또는 수정되지 않는다. 경로(602)를 더 따라가 상태 지점(612D)으로 이어지는 상태 지점의 일부(예를 들면, 1, 2, 3 등) 상태 파라미터는, 로봇(202)이 경로(602)의 원래 일부(616) 대신 좁은 통로(614)로의 최적화 경로(604)를 내비게이팅할 때에 로봇(202)의 배향 및/또는 속도의 변화를 설명하기 위해 조작될 수 있다는 것이 이해된다.
마찬가지로, 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는, 최적화 경로(604)를 설명하기 위해 로봇(202)의 알려진 경로(602)를 따라 상태 지점(612B)을 제거하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있으며, 상기 상태 지점(612B)은 알려진 경로(602)의 구간(616) 상에 위치하고, 여기서 구간(616)은 가상 로봇(606A)을 이용한 가능한 충돌의 감지로 인해 최적화(604)로 변경된다. 배리어(610)와의 충돌 지점(608)을 피하기 위해 알려진 경로 구간(616)을 최적화할 때, 원래 경로(602)를 따르는 상태 지점(612B)은 상태 지점(612C)에 대응하는 새로운 위치에 할당될 수 있다. 컨트롤러(222) 또는 프로세서(308)는, 상태 지점(612B)의 위치 및 상태에 대응하는 메모리(224)에 저장된 데이터를 업데이트하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 추가적으로, 상태 지점(612C)은 최적화 경로(604)를 사용하여 알려진 경로(602)를 따라 상태 지점(612)의 세트에 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해 메모리(224)에 추가될 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 상태 지점(612D)은 최적화 경로(604) 및 알려진 경로(602) 양쪽에 위치될 수 있으며, 상기 상태 지점(612D)의 위치는 최적화 경로(604)가 경로(602)의 일부(616)에 적용된 후에 변경되지 않은 채로 남을 수 있다. 그러나, 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 최적화 경로(604)를 설명하기 위해 메모리(224) 내의 상태 지점(612D)에 대응하는 상태 파라미터(예를 들면, 로봇(202)의 배향 및 속도)를 수정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 이러한 상태 파라미터는 경로를 따라 실제 위치로 이동하는 로봇(202)에 앞서 또는 이전에 수정될 수 있다.
도 6에 제시된 상태 지점(612)의 존재는 예시적이고 비제한적인 것으로 의도된다. 일부 실시형태에 있어서, 로봇(202)은 상태 지점(612)을 포함하지 않는 다른 현대적인 모션 계획 방법을 사용하여 경로(예를 들면, 602)를 실행할 수 있다. 예를 들면, 로봇(202)은 경로(602)를 따라 내비게이션을 실행하기 위해 미리 계산된 모션 프리미티브 및/또는 비용 평가를 이용할 수 있다. 이들 실시형태에 있어서, 예를 들면 비용은 경로(602)의 일부(616)를 탄력 밴딩(즉, 물체(610)로부터 멀리 떨어져 연장됨)함으로써 좁은 통로(614)로의 유사한 최적화 경로(604)를 따르도록 로봇(202)을 구성하기 위해 조작될 수 있다. 즉, 상태 지점(612)은 경로(602) 및 그 파라미터를 계획하고 조작하는 하나의 방법을 예시하며, 여기서 물체 주변 및/또는 좁은 통로로의 경로를 탄력 밴딩하기 위한 본 개시의 시스템 및 방법은 당업자에 의해 인식되는 바와 같이 임의의 모션 계획 방법에 적용될 수 있다.
일부 예시적 실시형태에 따르면, 최적화 경로(604)가 적용되기 전 및/또는 후에 경로(602)를 따라 일부, 전무, 모두, 또는 추가의 상태 지점이 존재할 수 있다. 추가적으로, 상태 지점(612A∼D)이 도 6에 도시된 바와 같이 알려진 경로(602)를 따라 나타나는 순서는 제한하기 위해 의도된 것은 아니다. 위에서 논의된 바와 같은 이들 상태 지점은 로봇(202)에 의해 이동된 원래 경로를 따른 지점이고, 결과적으로 원래 경로의 구간을 최적화할 때에 로봇(202)에 대한 가이드포스트 또는 기준점으로서 작용된다. 이들 상태 지점(612)은 도 7에 도시된 바와 같이, 메모리에서 상태 지점(612)과 연관된 상태 파라미터를 조작함으로써 로봇(202)에 의해 이동된 원래 경로(602)의 구간을 최적화할 때에 로봇(202)을 보조한다.
적어도 하나의 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 최적화 경로(604)를 결정할 때에 특수 위험 분석 알고리즘을 추가로 이용하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 이 특수 위험 분석 알고리즘은, 로봇(202)과 주변 물체 사이의 충분한 거리를 확보함으로써, 도 4에 도시된 바와 같이, 경로를 내비게이팅하는 것과 관련된 위험을 최소화하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함할 수 있다. 적어도 하나의 비제한적인 예시적 실시형태에 따르면, 최적화 경로(604)는 테스트된 복수의 가능한 최적화 중에서, 임계 위험 구역(402A), 고위험 구역(402B), 또는 컴퓨터 판독가능한 맵 상에 물체(610)가 있는 다른 위험 구역(402) 사이의 최소 중첩에 대응하는 미리 결정된 가장 낮은 위험도를 갖는 최적화를 포함할 수 있다. 달리 말하면, 컨트롤러(222) 또는 프로세서(308)는 로봇(202)이 착수할 수 있는 복수의 최적화 경로를 식별하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 그러나, 장벽과의 충돌이 발생할 위험이 가장 적은 최적의 또는 가장 이상적인 경로를 선택할 수 있으며, 상기 위험은 물체(610)로부터 로봇(202)의 거리에 비례한다.
추가적으로, 최적화 경로(604)를 알려진 경로(602)의 구간(616)에 적용한 후, 컨트롤러(222) 또는 프로세서(308)는 최적화 경로(604)가 발견되면 로봇(202)을 내비게이팅하도록, 도 2에 도시된 바와 같이 복수의 작동 유닛(204)을 이용하여 컴퓨터 판독가능한 명령을 실행할 수 있다.
유리하게는, 발견된 최적화 경로(604)는 로봇(202)이, 좁은 통로(614)에 진입하기 전에 로봇(202)을 실질적으로 전방 방향으로 배향시킴으로써 충돌없이 좁은 통로(614)로 내비게이팅하게 할 수 있으며, 이는 환경 장벽(610)과의 충돌 위험을 최소화할 수 있다. 좁은 통로(614)에 진입하기 전에 로봇(202)을 전방으로 배향시키는 것은 길이보다 작은 폭을 포함하는 로봇(202)에 유리하지만, 물체(610)와의 충돌을 피하기 위해 더 넓은 턴(예를 들면, 경로의 탄력 밴딩)을 실행하는 것이 임의의 크기 또는 형상의 임의의 로봇(202)에 적용될 수 있다. 추가적으로, 위험 분석 동작은 컨트롤러(222)가 추가 파라미터를 이용하여 최상의 최적화를 결정하게 할 수 있으며, 이는 복수의 가능한 최적화로부터 최상의 최적화를 결정하는데 유용할 수 있다.
이어서, 도 7에 대해 설명할 것이다. 도 7은 임의의 또는 미리 결정된 거리(예를 들면, 0.1, 1, 2, 3 등. 미터, 인치, 센티미터 등) 및 로봇(202)이 각 경로 위치에 위치될 수 있는 위치 좌표에서의 경로를 따른 한 세트의 증분 위치를 포함하는 메모리(224)에 저장된 데이터의 예시적 실시형태이다. 마찬가지로, 경로를 따른 위치는 일부 실시형태에 있어서 상태 지점에 대응할 수 있다. 도 7에 도시된 바와 같이, 경로를 따른 각 위치(예를 들면, 1, 2...N)에 대해 대응하는 좌표 세트(X1, Y1...XN, YN)를 포함한다. 원래 경로의 구간 또는 전체 경로에 대한 최적화를 행할 때에, 컨트롤러(222) 또는 프로세서(308)는 이들 좌표를 업데이트하여 "새로운 경로"라고 표시된 다른 열 세트에 그것들을 저장하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 즉, 메모리에 데이터를 저장하기 위한 표 형식은 특수 알고리즘의 실행을 통해 자체적으로 업데이트되고 원래 경로의 좌표를 새로운 경로의 좌표와 연관시켜 후속 실행시에 위치(1)가 원래 경로(X1, Y1) 및 새 경로(X1+ΔX1, Y1+ΔY1)와 관련될 수 있다.
적어도 하나의 비제한적인 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 경로를 최적화하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있지만, 경로를 따른 위치에 대응하는 로봇(202)의 경로를 따라 위치 좌표를 델타(Δ)로 표시된 바와 같이 변경할 수 있다. 이들 위치 변화는 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해 계산될 수 있다. 또 다른 비제한적인 예시적 실시형태에 따르면, 경로 로봇(202)이 취할 수 있는 위치를 최적화하기 위해 전무, 하나, 또는 복수의 위치가 변경되고, 제거되고, 및/또는 추가될 수 있다. 또 다른 비제한적인 예시적 실시형태에 따르면, 도 7에 도시된 데이터 유형(예를 들면, X 및 Y 위치 좌표)은 도 7에 도시된 유형으로부터, 로봇(202)의 경로를 따른 위치를 나타내는 동일하거나 유사하거나 상이한 데이터 유형을 포함할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 위치(1)는 로봇(202)의 초기 위치가 아닐 수 있다. 마찬가지로, 도 7에 도시된 경로를 따른 위치는 경로 상의 임의의 특정 위치를 나타내지 않으며, 임의의 또는 미리 결정된, 일정하거나 그렇지 않으면 간격이 있게 분리된 경로를 따른 순차적인 위치를 도시한다. 또 다른 비제한적인 예시적 실시형태에 따르면, 경로를 따른 위치는, 상태 지점(612)의 위치 개소 및 상태 파라미터가 최적화 경로(604)를 설명하기 위해 조정될 수 있는 경로를 따라, 도 6에 위에서 도시된 바와 같이, 상태 지점(612)의 세트에 대응할 수 있다. 또한, 경로를 따른 위치가 복수의 상태 지점에 대응하는 또 다른 비제한적인 예시적 실시형태에 따르면, 경로 또는 노정을 따르는 각각의 위치에 대응하는 상태 파라미터(예를 들면, 위치, 배향, 속도 등)가 조정되어 원래 경로에 대한 최적화를 설명하기 위해 메모리(224)에 저장될 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 델타에 의해 예시된 위치 좌표에 있어서의 변화는 복수의 위치에 걸쳐 변하거나 일정하게 유지될 수 있고, 0보다 크거나, 작거나, 또는 동등할 수 있다. 또 다른 예시적 실시형태에 따르면, 위치 좌표에 있어서의 변화는 크기, 형상, 속도, 회전 반경, 및/또는 로봇(202)의 임의의 다른 물리적 파라미터를 포함하지만 이에 제한되지 않는 로봇(202)의 복수의 파라미터에 기초할 수 있다.
이어서, 도 8a에 대해서 설명한다. 도 8a는 예시적 실시형태에 따라, 2개의 물체(802) 사이의 좁은 통로(804)로의 타이트 턴을 감지하고, 물체(808)와의 충돌을 피하기 위해 경로 또는 그 일부를 탄력 밴딩하는 것을 이용하는 로봇(202)의 상면도이다. 경로는 복수의 상태 지점(806)을 포함할 수 있으며, 각각의 상태 지점(806)은 각각의 공간 위치에서, 적어도 로봇(202)의 속도 및 배향을 포함하는 상태 파라미터를 따르기 위한 로봇(202)의 상태 파라미터 및 공간 위치(예를 들면, 컴퓨터 판독가능한 맵 상의)를 포함하고, 액추에이터 코맨드 및/또는 각각의 상태 지점(806)에서 실행하기 위한 컴퓨터 판독가능한 명령을 더 포함할 수 있다. 순차 상태 지점의 순차 상태 파라미터와 자신을 정렬하는 로봇(202)은 경로를 내비게이션(예를 들면, 상태 지점(806)에 의해 형성된 포즈 그래프를 따라가면서)하도록 로봇(202)을 구성할 수 있다.
경로가 충돌없이 내비게이팅할 수 있는지를 감지하기 위해, 컨트롤러(222) 또는 프로세서(308)는 경로를 따라 자신을 앞서 복수의 가상 로봇(606)을 투영하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있으며, 여기서 각각의 가상 로봇(606)은 경로의 각각의 상태 지점(806)에 투영된다. 가상 로봇(606)의 투영시, 경로가 수백개 이상의 상태 지점을 포함할 수 있기 때문에 명확성을 위해 많은 부분이 생략되며, 하나 이상의 충돌 지점(608)이 감지될 수 있다. 충돌 지점(608)은 컴퓨터 판독가능한 맵 상의 가상 로봇(606) 풋프린트와 물체(802) 사이의 중첩 영역을 포함할 수 있거나, 물체(802)와 중첩하는 도 4에 도시된 하나 이상의 위험 구역(예를 들면, 402A)을 포함할 수 있다. 따라서, 다음에 도 8b에 대해 도시된 바와 같이 로봇(202)과 물체(802)의 충돌을 피하기 위해 경로에 대한 최적화가 필요하다.
도 8b는 예시적 실시형태에 따라, 도 8a에서 이전에 예시된 로봇(202)에 의해 내비게이팅되는 경로의 상태 지점(806)을 도시한다. 추가 상태 지점(806A∼H)이 상기 도 8a에 도시된 실시형태로부터 도시되었지만, 경로는 더 많거나 더 적은 상태 지점(806)을 포함할 수 있다는 것이 이해된다. 각각의 상태 지점(806)은 상태 파라미터를 포함할 수 있고, 상태 파라미터는 적어도 각각의 상태 지점(806)에서 로봇(202)에 대한 벡터(808)(실선으로 도시됨)에 의해 도시된 속도를 포함할 수 있다. 속도 벡터(808)는 로봇(202)이 경로를 내비게이팅하게 하기 위해 각각의 상태 지점(806)과 연관된 위치에서 로봇(202)의 속도 및 배향을 표시한다.
컨트롤러(222) 또는 프로세서(308)는 미리 결정된 거리에 걸쳐 임계값을 초과하는 벡터(808)의 변화율에 기초하여 경로를 따른 타이트 턴을 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 변화율은 각도 변화율을 포함한다. 예를 들면, 속도 벡터(808)가 미리 결정된 거리(예를 들면, N 상태 지점 내, N은 임의의 정수) 내에서 상방을 가리키는 것(즉, 상태 지점(806E)에서와 같음)으로부터 측방을 가리키는 것(즉, 상태 지점(806H)에서와 같음)으로 변경되면, 회전이 좁은 것으로 간주될 수 있다. 타이트 턴은 로봇(202)이 물체(802)와의 충돌을 피하고, 원활하게 내비게이팅하기 위해 타이트 턴을 포함하는 경로의 구간을 탄력 밴딩할 것을 요구할 수 있다. 컨트롤러(222) 또는 프로세서(308)는 컴퓨터 판독가능한 맵 상에 임계 거리 미만인 물체(802) 사이의 각각의 상태 지점(806)에 대한 물체(802)의 근접성에 기초하여 좁은 통로(804)를 결정하기 위해 컴퓨터 판독가능한 명령을 추가로 실행할 수 있다. 임계 거리는 로봇(202)의 폭에 로봇(202)과 물체(802) 사이의 소망의 간격(예를 들면, 로봇(202)의 안전한 작동을 보장하기 위해 로봇(202)의 양측에서의 5인치의 간격)에 대응하는 미리 결정된 값을 더한 값과 동일할 수 있다.
경로를 탄력 밴딩하기 위해, 일부 상태 지점(806D∼G)은 충돌(608)을 야기하고, 및/또는 가상 로봇(606)을 각각의 상태 지점(806D∼G)에 투영하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의한 타이트 턴을 포함하도록 결정될 수 있다. 이들 상태 지점(806D∼G)은 십자 표시로 표시된다. 탄력 밴딩 벡터(810)(점선 화살표)는 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해, 각각의 상태 지점(806D∼G)(및 806D∼G 사이의 상태 지점은 도시되지 않음)에 대해 결정될 수 있고, 여기서 탄력 밴딩 벡터(810)는 속도 벡터(808)에 실질적으로 직교하고, 및/또는 가장 가까운 물체(802)로부터 멀리 떨어져 연장된다. 탄력 밴딩 벡터(810)는 경로의 탄력 밴딩 동안에 각각의 상태 지점(806)의 위치 변화를 도시한다. 탄력 밴딩 벡터(810)의 크기는 각각의 상태 지점(806)이 주변 물체(802)에 근접하는 것에 비례할 수 있으며, 여기서 상태 지점(806E∼F)은 물체(802)에 실질적으로 더 가깝기 때문에 큰 탄력 밴딩 벡터(810)를 포함할 수 있다. 상태 지점(806D)은 상태 지점(806D)이 물체(802)로부터 멀기 때문에 더 작은 탄력 밴딩 벡터(810)를 포함할 수 있다. 상태 지점(806G)은 양쪽의 물체(802)에 대한 근접성으로 인해 작은 탄력 밴딩 벡터(810)를 포함할 수 있다(즉, 상태 지점(806G)에 대한 가능한 최적화가 제한됨). 다르게 말하면, 경로를 따른 각 상태 각각의 상태 지점은 크기의 차이가 물체(802)로부터의 각각의 상태 지점의 위치에 따라 달라지기 때문에 상이한 크기를 가진 탄력 밴딩 벡터를 가질 수 있다.
탄력 밴딩 벡터(810)의 크기(즉, 길이)는 경로에 최소량의 추가 길이를 추가하면서 물체(802)로부터 멀어지는 경로의 확장을 행하는 방식으로 계산된다는 것이 이해된다. 탄력 밴딩 벡터(810)의 크기는 n번째의 상태 지점(806)에 대해 도 7에 도시된 표의 경로를 따른 위치의 위치(x, y)에 추가된 ΔXn 및/또는 ΔYn값의 크기로 나타낼 수 있다.
새로운 상태 지점(812D∼G)(회색으로 도시됨)은 상태 지점(806D∼G)을 대체하거나 변경하여 경로가 물체(802)로부터 멀리 떨어져 확장되도록 구성하고, 2개의 물체(802) 사이의 좁은 통로(804)로의 더 넓은 턴(즉, 탄력 밴딩)을 포함할 수 있다. 새로운 상태 지점(812)은 각각의 상태 지점(806)의 탄력 밴딩 벡터(810)의 단부에 위치한다. 또한, 최적화된 상태 지점(806D∼G) 근처의 상태 지점(806B∼C)에 대한 추가 최적화는, 로봇(202)이 물체(802) 주위에서 좁은 통로(804)로의 순조로운 움직임을 실행하도록 탄력 밴딩 벡터(810)를 사용하여 행해질 수 있다. 예를 들면, 상태 지점(806C)과 후속의 최적화된 상태 지점(812D) 사이의 속도 벡터(808)의 각도 변화율은 임계값을 초과할 수 있으며, 이에 따라 최적화된 상태 지점(812C)에 의해 도시된 바와 같이 상태 지점(806C)의 일부 확장이 필요하다. 즉, 당업자에 의해 이해되는 바와 같이, 물체(802)로부터 충분히 멀리 떨어져 있는 일부 상태 지점(예를 들면, 806B∼C)에 대한 최적화(즉, 변경)는 충돌을 피하기 위해 최적화를 필요로 하는 다른 주변/인접 상태 지점(예를 들면, 806D∼G)을 최적화한 결과이며, 상태 지점(806B∼C)에 대한 최적화는 로봇(202)의 순조로운 움직임을 행할 수 있다. 로봇(202)의 순조로운 움직임은 로봇(202) 근처의 인간에게는 바람직할 수 있으며, 순조로운 움직임이 근처 인간에게 예측 가능하고 심미적으로 즐겁게 하기 때문이다. 즉, 특정 상태 지점의 최적화는 다른 상태 지점의 최적화에 영향을 미치거나 고려될 수 있다. 위에서 언급한 바와 같이, 상태 지점(806B∼C)의 최적화는 인접 또는 동시 상태 지점(806D∼G)의 최적화에 결과적으로 영향을 미칠 수 있다.
최적화된 상태 지점(812B∼G)에 대한 속도 벡터(808)는 로봇(202)이 수정된 경로를 따라 각각의 상태 지점(812B∼G)에 걸쳐 내비게이팅하도록, 예를 들면 포즈 그래프를 사용하여 결정될 수 있다. 새롭게 결정된 상태 지점(812B∼G)을 내비게이션함으로써 로봇(202)은 도 5에 도시된 최적화(506) 및 상기 도 6에 도시된 최적화(604)와 실질적으로 유사한 경로를 따를 수 있다는 것이 이해된다.
각각의 상태 지점(806B∼G)에 대한 복수의 가능한 최적화 상태 지점(812B∼G)이 결정되고 테스트될 수 있으며, 여기서 최상(즉, 최적)의 경로에 대응하는 최적화된 상태 지점(812B∼G)만이 도시된다는 것이 이해된다. 예를 들면, 컨트롤러(222) 또는 프로세서(308)는 각각의 상태 지점(806)에 대해 N개의 가능한 탄력 밴딩 벡터(810)를 테스트하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있으며, N은 임의의 정수이고, 여기서 최적화된 상태 지점(812)의 탄력 밴딩 벡터(810)는 경로에 대한 최상의 최적화에 대응하는 상태 지점(806)에 대한 N개의 가능한 최적화 중 선택된 하나를 포함할 수 있다. 테스트된 N개의 가능한인 탄력 밴딩 벡터(810) 각각은 각각의 상태 지점(806)로부터 멀리 떨어진 상이한 크기 및/또는 상이한 방향을 포함할 수 있다. 최적화는 추가된 추가 경로 길이, 물체(802)까지의 거리(예를 들면, 상기 도 4에 도시된 영역(402)에 따름), 및/또는 최적화의 내비게이션 동안에 로봇(202)의 각도 변화율을 기초로 하지만, 이에 제한되지 않는다.
마지막으로, 도 8c는 예시적 실시형태에 따라, 도 8b에 도시된 경로에 대한 최적화를 테스트하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해 컴퓨터 판독가능한 맵 상에 적용된 복수의 가상 로봇(606)을 도시한다. 가상 로봇(606)은 로봇(202)이 최적화된 경로를 실행할 때의 로봇(202)의 경로(814)를 예시할 수 있으며, 최적화된 경로는 상기 도 8a∼b에 예시된 방법을 사용하여 결정된 하나 이상의 최적화된 상태 지점(812)(회색으로 도시됨)을 포함한다. 경로(814)는 좁은 통로(804)로의 더 넓은 턴을 포함한다. 복수의 추가 상태 지점(806, 812)이 경로(814)를 따라 존재할 수 있으며, 명확성(즉, 로봇(202)에 의해 내비게이팅되는 경로(814)는 예시된 것보다 실질적으로 더 순조로움)을 위해 수 개의 개별 샘플만 도시되어 있다는 것이 이해된다. 가상 로봇(606-F)은 좁은 통로(804)에 진입하기 전에 실질적으로 전방을 향하여 로봇(202)이 배향되고, 이에 따라 최적화된 경로(814)를 실행할 때에 충돌 가능성을 더욱 감소시킨다는 것이 추가로 이해된다.
유리하게는, 속도 벡터(808)의 각도 변화율에 기초하여 타이트 턴을 결정하는 것을 이용하면 로봇(202)이 가능한인 위험한 조종(예를 들면, 좁은 통로로의 타이트 턴)을 예측할 수 있을뿐만 아니라 로봇(202)이 경로를 내비게이팅하기 전에 경로의 최적화된 부분을 순조롭게 할 수 있다. 더 순조로운 경로는 타이트 턴을 갖는 경로보다 로봇(202)의 내비게이션을 관찰하는 인간에게 보다 바람직하고 보다 예측 가능하게 나타날 수 있다. 또한, 탄력 밴딩 벡터(810) 및 최적화된 상태 지점(812)에 의해 도시된 바와 같이, 물체(802)로부터 멀리 떨어진 상태 지점(806)을 탄력 밴딩하는 것은 로봇(202)이 물체(802) 주위에서 더 넓은 턴을 실행함으로써 충돌없이 좁은 통로로 내비게이팅할 수 있게 할 수 있다. 추가적으로, 경로에 대한 최적화(즉, 상태 지점(806B∼G)에 대한 수정)는 로봇(202)이 물체(802) 사이의 좁은 통로에 진입하기 전에 전방 방향으로 자신을 배향시킬 수 있게 할 수 있으며, 이에 따라 길이보다 작은 폭을 포함하는 로봇(202)이 물체(802)와 충돌할 가능성을 더욱 감소시킨다.
이어서, 도 9a∼c에 대해서 상세하게 설명한다. 도 9a∼c는 예시적 실시형태에 따라, 로봇(202)이 경로(902)를 내비게이팅할 때에 예상 충돌 지점(906A∼B)을 감지하기 위해 로봇(202)의 풋프린트 폭을 확장함으로써 경로(902)를 따라 좁은 통로를 감지하는 방법의 상면도이다. 충돌 지점(906A∼B)은 확장된 풋프린트(904)가 장애물과 중첩하는 위치를 포함한다.
도 9a는 로봇(202)의 도시된 바와 같은 "A 측면" 또는 좌측면에서의 충돌 지점(906A)의 존재 및 위치를 감지하기 위해 "측면 A" 상의 확장된 풋프린트(904A)를 이용하여 내비게이션 경로(902)를 내비게이팅하는 로봇(202)의 상면도의 예시적 도시 실시형태를 도시한다. 도 9a∼c와 관련하여 본원에서 사용되는 바와 같이, 충돌 지점(906A 및 906B)은 상기 도 6에 도시된 바와 같이 가상 로봇(606) 및 물체(610)와의 충돌 지점(608)과 마찬가지로, 로봇(202)의 확장된 풋프린트(904) 및 근접한 물체와의 충돌을 표시한다. 다르게 말하면, 충돌 지점(606 및 906)은 컴퓨터 판독가능한 맵 상의 물체와 각각의 가상 로봇(606) 또는 로봇(202)의 가상 확장 풋프린트(904) 사이의 중첩을 나타낸다. 5개의 충돌 지점(906A)이 도 4에 도시되지만; 당업자는 경로(902)를 따라 복수의 충돌 지점(906A)이 존재할 수 있다는 것을 이해할 것이다. 도 9A에 도시된 바와 같이, 컨트롤러(222) 또는 프로세서(308)는, 컨트롤러(222) 또는 프로세서(308)가 다양한 센서 유닛(214)으로부터의 입력을 수신하고, 환경의 컴퓨터 판독가능한 맵 상의 메모리(224)에 위치를 저장하기 위해 컴퓨터 판독가능한 명령을 실행하도록 함으로써 경로(902)를 따라 내비게이팅하도록, 메모리(224)에 충돌 지점(906A)의 위치를 저장하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 충돌 지점(906A)은 로봇(202)의 확장된 풋프린트(904A) 및 주변 장애물과의 충돌을 나타낼 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 충돌 지점(906)은 로봇(202)으로부터 임계 거리 내에 있는 센서 유닛(214)을 사용하여 물체를 감지하는 것을 기초로 하여 결정될 수 있다. 확장된 풋프린트(904)가 로봇(202)으로부터 확장하는 거리에 대응하는 임계 거리는 상기 도 4에 도시된 하나 이상의 위험 영역(402) 내의 물체를 감지하는 것과 유사하다. 즉, 확장된 풋프린트의 사용은 예시적 것으로 의도되며, 제한적이지 않다.
마찬가지로, 도 9b는 로봇(202)의 도시된 바와 같은 "측면 B" 또는 우측면에 확장된 풋프린트(902B)를 갖는 경로(902)를 내비게이팅하는 로봇(202)의 상면도의 예시적 도시 실시형태를 도시한다. "측면 B"는 "측면 A"와 반대이며, 여기서 로봇(202)의 "측면 B" 상의 충돌 지점(906B)의 존재 및 위치는 경로(902)를 따라 감지된다. 4개의 충돌 지점(906B)이 도 9b에 도시되어 있지만; 당업자는 경로(902)를 따라 추가의 또는 더 적은 충돌 지점(906B)이 존재할 수 있음을 이해할 것이다. 도 9b에 도시된 바와 같이, 컨트롤러(222) 또는 프로세서(308)는 컴퓨터 판독가능한 명령을 실행하여 측면 B에서 발견된 감지된 충돌 지점(906B)을 환경의 컴퓨터 판독가능한 맵 상의 메모리(224)에 저장할 수 있다. 일부 예시적 실시형태에 따르면, 풋프린트는 로봇(202)의 A 및 B 양쪽에서 동시에 연장될 수 있고, 충돌 지점(906A 및 906B)은 로봇(202)이 경로(902)를 내비게이팅할 때에 동시에 양쪽에서 감지될 수 있다. 적어도 하나의 예시적 실시형태에 따르면, 컨트롤러(222)는 주변 환경의 컴퓨터 판독가능한 맵 상의 메모리(224)에 동시에, 각각 "측면 A" 및 "측면 B" 양쪽의 충돌 지점(906A 및 906B)의 위치를 저장할 수 있다.
도 9c는 이전에 도 9a 및 9b에 대해 도시된 바와 같이 로봇(202)이 확장된 풋프린트로 경로(902)를 내비게이팅할 때에 발견되는 경로(902)를 따라 모든 충돌 지점(906A 및 906B)의 위치를 호출하는 컴퓨터 판독가능한 맵의 상면도의 예시적 도시 실시형태를 도시한다. 충돌 지점(906A 및 906B)은 단일 충돌 지점(908) 또는 한 쌍의 충돌 지점(910)으로 분류될 수 있으며, 여기서 단일 충돌 지점(908)은 각각의 측면 A 또는 B의 로봇(202) 근처의 장애물 또는 물체를 나타내고, 한 쌍의 충돌 지점(910)은 측면 A 또는 B 양쪽의 장애물 또는 물체를 나타낼 수 있다. 한 쌍의 충돌 지점(910)이 있는 경로(902)를 따르는 위치는 좁은 통로를 통과하는 경로(902)를 따르는 위치에 대응될 수 있다. 경로(902)를 따르는 일부 위치에서, 단일 충돌 지점(906A 또는 906B)은 로봇(202)의 단일의 각각의 측면 A 또는 B에 있는 물체에 대응하여 감지될 수 있다. 경로(902)를 따라 일부 위치에서, 충돌 지점(906A 및 906B)의 쌍(910)이 로봇(202)의 양측면 A 및 B에서 감지될 수 있다. 충돌 지점(906A 및 906B)의 쌍(910)이 감지되는 경로(902)를 따르는 위치는 좁은 통로 내에 있는 위치에 대응할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 2개의 충돌 지점에 대해 충돌 지점(906A 및 906B)의 쌍(910)을 나타내기 위해, 이들은 동일한 단면 평면 (912) 내에 위치될 필요가 있을 수 있다. 단면 평면(912)은 도시된 바와 같이 경로(902)에 직각으로 배향될 수 있거나, 경로(902)에 대해 임의의 각도를 따라 배향될 수 있다. 추가적으로, 충돌 지점(906A 및 906B)의 쌍(910)은 단면 평면(908) 내에 놓이도록 로봇(202)의 각각의 "측면 A" 및 "측면 B" 양쪽에 충돌 지점(906A 및 906B) 모두를 포함하도록 요구될 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 로봇(202)은 도 9a∼c 에 도시된 바와 같이 로봇(202)을 대체하는 가상 로봇을 사용할 수 있다. 가상 로봇은 도 9a∼c에서 언급한 것과 실질적으로 유사한 방법을 사용하여 좁은 통로를 결정하는, 양측면 A 및 B에서 확장된 확장 가상 풋프린트를 포함한다. 동일한 예시적 실시형태에 따르면, 로봇(202)은 확장된 가상 로봇 풋프린트를 환경의 컴퓨터 판독가능한 맵에 적용할 수 있으며, 이는 로봇(202)이 좁은 통로로부터 멀리 떨어진 위치에 있는 동안 경로를 따라 좁은 통로를 식별하게 할 수 있다.
유리하게는, 도 9a∼c에 도시된 시스템 및 방법은 로봇(202)이 자율적으로 (예를 들면, 사용자가 로봇에게 좁은 통로가 있는 곳을 알리지 않고) 경로를 따라 좁은 통로를 결정하게 할 수 있다. 좁은 통로를 자율적으로 또는 트레이닝 동안에 결정하는 로봇은 로봇을 조작하는 사용자의 운영 비용을 감소시킬 수 있다.
도 9d는 임의의 또는 미리 결정된 거리(예를 들면, 0.1, 1, 2, 3 등, 미터, 인치, 센티미터 등)에서 경로를 따른 증분 위치 세트, 경로를 따라 대응하는 위치에서 "측면 A" 또는 "측면 B"의 확장된 풋프린트에 의해 감지되거나 감지되지 않는 물체를 나타내는 이진값, 및 "측면 A" 또는 "측면 B"의 물체 감지를 기초로 하는 결정 컬럼을 포함하는 메모리(224)에 저장된 데이터의 예시적 실시형태이다. 도 9d에 도시된 바와 같이, 컨트롤러(222) 또는 프로세서(308)는 도 9a∼b에 도시된 바와 같이, 확장된 풋프린트를 사용하여 경로를 내비게이팅할 때마다 로봇(202)의 "측면 A" 또는 "측면 B"에 존재하는 물체를 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 예를 들면, 도시된 바와 같은 위치(1)에서 "측면 A" 상의 물체의 감지시, 컨트롤러(222) 또는 프로세서(308)는 이진값을 1로 설정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있으며, 여기서 1의 값은 양의 물체 감지 판독값에 대응한다. "측면 A" 및 "측면 B" 상의 물체 감지에 대응하는 이진값을 결정할 때에, 컨트롤러(222) 또는 프로세서(308)는 이진값을 기초로 하여 좁은 통로 또는 물체를 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다.
도 9d에 도시된 예시적 데이터 표는 경로를 따라 좁은 통로 및/또는 물체를 결정하기 위해 "측면 A" 및 "측면 B"의 물체 감지 이진값과 비교되는 결정 컬럼을 더 포함한다. 도 9d에 도시된 예시적 실시형태에 따르면, 컨트롤러(222) 또는 프로세서(308)는 "측면 A" 및 "측면 B" 양쪽에 대한 물체 감지값이 1인(즉, 논리 및 연산) 위치를 기초로 하여 경로를 따라 하나 이상의 위치에 존재하는 좁은 통로를 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 추가적으로, 컨트롤러(222) 또는 프로세서(308)는 물체가 위치하는 측면에 대응하는 1인 하나의 값을 기초로 하여 "측면 A" 또는 "측면 B" 양쪽에 존재하는 물체를 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 도시된 바와 같이, "측면 A" 및 "측면 B" 양쪽이 0의 물체 감지값을 갖는 경로를 따른 위치에서, 컨트롤러(222) 또는 프로세서(308)는 물체나 좁은 통로가 그 위치에서 감지되지 않는 값에 대응하는 0값으로서, 결정값을 메모리(224)에 저장하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다.
다른 비제한적인 예시적 실시형태에 따르면, 좁은 통로는 "측면 A" 및 "측면 B" 양쪽에 대해 1의 물체 감지값을 갖는 경로를 따라 복수의 후속 위치를 기초로 하여 결정될 수 있다. 예를 들면, 표 9d의 위치(3)에서의 로봇의 컨트롤러는 위치(3)가 위치(4)에 도달할 때까지 좁은 통로 내에 있는 위치(3)을 결정할 수 없고, 여기서 "측면 A" 및 "측면 B" 모두에 대해 1의 물체 감지값을 갖는 후속 위치를 감지할 때에, 컨트롤러는 위치(3 및 4)가 좁은 통로 내에 있는 것으로 결정할 수 있다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 표 9d는 동일하거나 상이한 데이터 유형을 포함하는 더 많거나 더 적은 컬럼을 포함할 수 있다. 예를 들면, 컨트롤러는 "측면 A"에 대한 하나와 "측면 B"에 대한 다른 하나의 두 배열에서 경로를 내비게이팅할 때에 물체 감지 판독값을 저장할 수 있고, 여기서 상기 도시된 바와 실질적으로 유사한 방법을 이용하여 어레이를 비교하면 컨트롤러가 경로를 따라 좁은 통로를 결정할 수 있다. 즉, 메모리에 데이터를 저장하기 위한 표 형식은 특수 알고리즘의 실행을 통해 자체적으로 업데이트되는 자기 참조표일 수 있으며, 여기서 N의 값은 임의의 양의 정수일 수 있다.
도 10은 비제한적인 예시적 실시형태에 따라, 좁은 통로를 감지하기 위한 또 다른 방법을 도시한다. 도시된 환경의 컴퓨터 판독가능한 맵은 로봇(202)에 제공될 수 있고, 및/또는 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해 경로(1002)를 따라 앞선 내비게이션 동안(예를 들면, 경로(1002)의 트레이닝 동안) 생성될 수 있다. 컴퓨터 판독가능한 맵은 그 위에 국지화된 물체(1004)뿐만 아니라 경로(1002)에 대한 경로 데이터(예를 들면, 상태 지점)를 적어도 포함할 수 있다. 두 물체(1004) 사이의 좁은 통로는 두 물체(1004)가 임계 거리 내에서 경로(1002)의 양 대향측에 존재하는 것에 기초하여 결정될 수 있다. 임계 거리는 로봇(202)의 폭에 비례한다. 임계 거리는 경로(1002)를 따라(즉, 방향(1006)을 따라) 이동 방향에 수직으로 측정된다. 2개의 물체(1004)가 경로(1002)를 따라 임의의 지점에서 경로(1002)의 양측면의 임계 거리 내에서 컴퓨터 판독가능한 맵 상에 감지되면, 2개의 각각의 물체(1004) 사이에 좁은 통로가 결정될 수 있다. 따라서, 컨트롤러(222) 또는 프로세서(308)는 본 개시의 시스템 및 방법에 따라 경로(1002)에 대한 최적화(1008)를 행하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다(즉, 최적화(1008)는 경로(1002)의 일부를 탄력 밴딩하는 것을 포함함).
도시된 바와 같이, 물체(1004)가 경로(1002)로부터 멀어지는 임계 거리 미만인 것이 감지되면, 최적화된 부분(1008)이 위에서 논의된 방법을 이용하여 결정되고, 경로(1002)의 일부를 대체한다. 최적화(1008)는 물체(1004) 주위에 더 큰 회전 반경을 포함하도록 경로(1002)의 2개의 타이트 턴을 구성한다. 예를 들면, 탄력 밴딩 벡터(810)는 2개의 타이트 턴을 따라 각 상태 지점에 대해 결정될 수 있고, 도 8b에 도시된 바와 같이 최적화(1008)를 계산한다. 상술한 바와 같이, 더 큰 회전 반경은 로봇(202)이 경로(1002)의 최적화된 구간(1008)을 실행할 때에 로봇(202)과 물체(1004) 사이의 충돌 가능성을 감소시킨다.
적어도 하나의 비제한적인 예시적 실시형태에 따르면, 로봇(202)은 하나 이상의 센서 유닛(214)을 이용하여 2개의 물체(1004)가 경로(1002)의 대향측에서 임계 거리 내에 있음을 감지할 수 있다. 이 감지시, 컨트롤러(222) 또는 프로세서(308)는 컴퓨터 판독가능한 맵(예를 들면, 도 9d에 도시된 바와 같이)에 좁은 통로를 맵핑하고, 경로(1002)에 대한 최적화(1008)를 행하고, 또한 경로(1002)의 최적화된 부분(1008)을 따라 로봇(202)을 내비게이팅시키기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 그러나, 이 실시형태는 좁은 통로를 감지하기 위해 로봇(202)이 물체(1004) 근처에서 내비게이팅하도록 요구할 수 있으며, 이는 로봇(202)이 경로(1002)를 따라 역추적하고, 물체(1004)와의 충돌을 피하기 위해 경로(1002)의 최적화된 부분(1008)을 내비게이팅하는 것을 추가로 요구할 수 있다. 한편으로는, 이 실시형태는, 가상 로봇 및/또는 풋프린트의 가상 확장을 이용하여 위의 도면에 도시된 방법과 달리, 좁은 통로를 감지하는 계산의 복잡성을 감소시켜, 로봇(202)이 작동하는 동안에 좁은 통로가 실시간으로 감지될 수 있게 한다.
도 11은 예시적 실시형태에 따라, 하나 이상의 구간 또는 경로의 일부를 최적화하는 동안에 컨트롤러(222) 또는 프로세서(308)의 3개의 상태를 도시하는 상태도이다. 대기 상태(1102)로 시작하여, 대기 상태(1102)는 최적화가 경로에 대해 행해지지 않을 때에 컨트롤러(222) 또는 프로세서(308)의 임의의 상태를 포함할 수 있다. 예를 들면, 컨트롤러(222) 또는 프로세서(308)는 타이트 턴으로부터 멀리 떨어진 경로를 내비게이팅하는 동안, 로봇(202)의 유휴 시간 동안에, 또는 로봇(202)이 로봇(202)의 임의의 다른 기능을 행할 때에 대기 상태(1102)에 있을 수 있다. 또 다른 예로서, 컨트롤러(222) 또는 프로세서(308)가 타이트 턴 및/또는 좁은 통로에 대한 경로를 체크할 때에 컨트롤러(222) 또는 프로세서(308)는 대기 상태(1102)에 있을 수 있다.
컨디션(1104)은 경로를 따라 타이트 턴을 감지하는 것을 포함한다. 일부 실시형태에 있어서, 컨디션(1104)은 좁은 통로로의 임의의 회전의 감지를 포함할 수 있다. 컨트롤러(222) 또는 프로세서(308)는, 예를 들면 임계값을 초과하는 회전의 실행 동안에 로봇(202)의 각도 변화율에 기초하여 타이트 턴을 감지하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 타이트 턴은 경로 내비게이션 전 또는 경로 내비게이션 동안에 결정될 수 있다. 따라서, 컨트롤러(222) 또는 프로세서(308)는 타이트 턴 상태(1106)로 이동할 수 있다. 타이트 턴 상태(1106)에 있는 동안, 컨트롤러(222) 또는 프로세서(308)는 도 5, 6, 10 및 12에 도시된 바와 같이, 일부를 탄력 밴딩함으로써 감지된 타이트 턴을 포함하는 경로의 일부를 최적화하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 환언하면, 컨트롤러(222) 또는 프로세서(308)는 상기 도 1의 방법(100) 또는 그 일부를 행하여 감지된 타이트 턴을 포함하는 경로의 일부를 최적화하기 위해 컴퓨터 판독가능한 명령을 실행한다. 경로의 일부가 최적화될 때에(즉, 탄력 밴딩됨), 컨디션(1108)은 최적화의 완료에 대응하여 적용될 수 있으며, 여기서 컨트롤러(222) 또는 프로세서(308)는 대기 상태(1102)로 복귀할 수 있다. 일부 예에 있어서, 어떤 최적화도 결정되지 않을 수 있으며(예를 들면, 물체는 가능한인 최적화를 차단할 수 있음), 여기서 컨디션(1110)은 컨트롤러(222) 또는 프로세서(308)가 후술하는 정지/보조 상태(1114)로 이동하도록 구성할 수 있다.
대기 상태(1102)에 있는 동안, 로봇(202)은 경로를 내비게이팅하거나 로봇(202)의 임의의 다른 기능을 행할 수 있다. 컨트롤러(222) 또는 프로세서(308)는 내비게이팅 동안에, 로봇(202)이 정지해 있는지(예를 들면, 내비게이션 가능한 경로가 결정될 수 없음) 또는 그렇지 않으면 인간 오퍼레이터의 도움이 필요한지를 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 따라서, 컨트롤러(222) 또는 프로세서(308)는 정지/보조 상태(1114)로 이동할 수 있다. 정지/보조 상태(1114)에 있는 동안, 로봇(202)은 유휴 상태(즉, 정지)될 수 있고, 오퍼레이터의 지원을 대기할 수 있다. 조건(1116)은, 예를 들면 인간 오퍼레이터의 지원을 대기하는 컨트롤러(222) 또는 프로세서(308)에 대응한다. 지원을 받으면, 컨트롤러(222) 또는 프로세서(308)가 대기 상태(1102)로 복귀하도록 조건(1118)이 적용되고, 여기서 조건(1118)은 로봇(202)이 정지하지 않는 것, 및/또는 로봇(202)에 지원이 제공되는 것(예를 들면, 오퍼레이터가 로봇(202)을 수동으로 이동시키거나 로봇(202)의 경로를 차단하는 물체를 이동하는 것)에 대응한다.
당업자에 의해 이해되는 바와 같이, 도시된 3개의 상태(1102, 1106 및 1114)는 경로에 대한 최적화를 행하는데 필요한 컨트롤러(222) 또는 프로세서(308)의 상태에 대응하고, 여기서 컨트롤러(222) 또는 프로세서(308)는 로봇(202)의 동작을 실행하기 위해 복수의 추가 상태(예를 들면, 로봇(202)의 전원 공급 동안의 초기화 상태, 클리닝 로봇(202)의 클리닝 상태 등)) 중 어느 하나에 있을 수 있는 것으로 이해된다.
도 12는 예시적 실시형태에 따라 주차장(1200)의 주차 공간(1202)에서, 자율 내비게이션 자동차를 포함하는 로봇(202)을 주차하는데 사용하기 위한 본 개시의 시스템 및 방법의 예시적 비제한적 구현예를 도시한다. 로봇(202)은 물체(1212)를 위치시키고, 상기 도 2에 도시된 하나 이상의 작동 유닛(204)을 사용하여 주차장(1200)의 컴퓨터 판독가능한 맵 상에 맵핑할 수 있다. 컴퓨터 판독가능한 맵을 이용하여, 로봇(202)의 컨트롤러(222) 또는 프로세서(308)는 이용 가능한 주차 공간(1202)으로의 최단 경로를 포함하는 제 1 경로(1204)를 결정하기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 그러나, 제 1 경로(1204)는 좁은 통로로의 타이트 턴을 포함할 수 있다. 좁은 통로로의 타이트 턴은 상기 도 6∼8a에 도시된 바와 같이, 근처의 물체(1212)와 충돌을 일으킬 수 있거나, 또는 로봇(202)을 정지하게 하여 로봇(202)이 제 1 경로(1204)의 적어도 일부 또는 구간을 최적화하도록 요구할 수 있다. 도 11에 도시된 바와 같이, 컨트롤러(222) 또는 프로세서(308)는 경로(1204)에 대한 최적화(1210)를 결정하기 위해 타이트 턴 상태(1106)로 이동할 수 있다.
경로(1204)는 복수의 상태 지점(1206)을 포함할 수 있으며, 각각의 상태 지점(1206)은 그와 연관된 상태 파라미터(예를 들면, 속도, 배향 등)를 포함할 수 있다. 로봇(202)은 이전에 언급된 바와 같이 순차적 상태 지점(1206)의 상태 파라미터와 일치하도록 상태 파라미터를 구성함으로써 제 1 경로(1204)를 따라 네비게이팅할 수 있다. 일부 상태 지점(1206)은 좁은 통로로의 타이트 턴을 따라 로봇(202)을 내비게이팅시키는 것을 방지하기 위해 최적화를 필요로 할 수 있다. 따라서, 백색으로 도시된 상태 지점(1206)은 위에서 도시된 본 개시의 시스템 및 방법을 이용하여, 회색으로 도시된 상태 지점(1208)으로 최적화되거나 그렇지 않으면 변경된다. 최적화로 인해 추가된 추가 길이로 인해, 일부 추가 상태 지점(1208)이 최적화된 구간(1210)에 추가된다는 것이 이해된다. 즉, 경로(1204)는 로봇(202)이 주차 공간(1202)에 진입하기 전에 전방 방향으로 자신을 배향시키고, 근처의 물체(1212)로부터 더 멀리 떨어져 내비게이팅하도록, 주차 공간(1202)으로의 더 넓은 턴 반경을 포함하도록 탄력 밴딩된다. 최적화된 구간(1210)은 인간이, 주차장(1200)을 직선으로(예를 들면, 차선 내에서) 운전하고, 이용 가능한 주차 공간(1202)을 찾고, 또한 그들의 현재 경로(예를 들면, 1204)를 변경하여 좁은 주차 공간(1202)으로의 더 넓은 턴(예를 들면, 1210)을 포함하여 근처의 주차된 차량(1212)과 충돌하는 것을 방지하게 하는 것과 유사하거나 비슷할 수 있다. 로봇(202)은 최적화된 구간(1210)이 부분적으로 다른 차선으로의 차량의 내비게이션을 포함하기 때문에, 최적화된 구간(1210)을 내비게이팅하기 전에 센서 유닛(214)을 이용하여 반대 차선 및/또는 반대 방향으로 이동하는 차량이 없음을 추가로 확인할 수 있다.
상기 도면에 도시된 시스템 및 방법은 궤적 또는 경로를 따라 로봇(202)을 내비게이팅하기 위해 복수의 상태 지점을 이용하지만, 궤적을 따라 로봇(202)의 움직임을 실행하기 위한 다른 현대적인 방법이 제한없이 고려된다. 예를 들면, 로봇(202)은 비용 맵을 이용하여 경로를 계획할 수 있으며, 여기서 로봇(202)은 제한없이, 물체를 피하고(예를 들면, 위험 영역(402)과 컴퓨터 판독가능한 맵 상의 물체 사이의 중첩 방지), 순조롭게 내비게이팅하고(즉, 타이트 턴 방지), 또한 최단 경로를 내비게이팅하는 동작에 대응하는 최저 비용의 동작을 실행할 것이다. 비용 맵은 공간의 함수에 따른 비용 함수를 포함할 수 있으며, 여기서 물체를 포함하는 공간 영역은 물체가 없는 영역과 비교해서 로봇(202)의 내비게이팅시에 높은 관련 비용이 들 수 있다. 또 다른 예로서, 로봇(202)은 로봇(202)이 경로에 따라 실행하기 위한 사전 계산된 이동을 포함하는 사전 계산된 동작 프리미티브를 이용할 수 있다. 경로를 따라 로봇(202)의 제어를 실행하기 위한 복수의 다른 현대적인 방법이 고려된다. 타이트 턴 및/또는 좁은 통로를 감지할 때에 더 넓은 턴 반경을 포함하도록 경로의 일부 또는 구간을 탄력 밴딩하기 위한 더 광범위한 시스템 및 방법은 당업자에 의해 이해되는 바와 같이 제한없이 로봇(202)의 동작을 실행하는 임의의 방법에 적용될 수 있으며, 여기서 상태 지점의 사용은 예시적 것으로 의도된다. 예를 들면, 비용 맵의 비용 함수는 로봇(202)이(예를 들면, 비용을 조정함으로써) 급격한 코너 주위 및/또는 좁은 통로로의 넓은 턴을 실행하도록 장려할 수 있다.
도 13은 예시적 실시형태에 따라, 탄력 밴딩을 이용하여 경로의 일부를 최적화하기 위해 로봇(202)의 컨트롤러(222) 또는 프로세서(308)에 대한 방법(1300)을 도시하는 프로세스 흐름도이다.
블록(1302)은 경로를 따라 타이트 턴을 결정하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함하고, 상기 타이트 턴은 적어도 하나의 물체 근처에서 이루어진다. 타이트 턴은 임계값을 초과하는 경로를 따른 거리에 대한 경로의 각도 변화율을 감지함으로써 감지될 수 있다. 컴퓨터 판독가능한 맵 상에 경로를 따라(예를 들면, 도 8a에 도시된 상태 지점에서) 가상 로봇을 투영함으로써 대안적으로 또는 추가적으로 타이트 턴이 감지될 수 있고, 여기서 타이트 턴은 회전의 시뮬레이션된 내비게이션 동안에 컴퓨터 판독가능한 맵 상의 물체와 겹치는 하나 이상의 가상 로봇의 풋프린트에 대응할 수 있다. 가상 로봇은 컴퓨터 판독가능한 맵 상에의 로봇(202)의 투영을 포함하고, 가상 로봇의 투영은 컴퓨터 판독가능한 맵 상의 경로를 따라 로봇(202)의 내비게이션을 시뮬레이션하는 것과 유사하다는 것이 이해된다.
블록(1304)은 타이트 턴을 포함하는 경로의 일부를 탄력 밴딩하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함한다. 탄력 밴딩은 적어도 하나의 물체 주위에 더 넓은 턴 반경을 포함하도록 경로의 일부를 확장, 신장, 또는 그렇지 않으면 조작하는 것을 포함한다. 경로의 탄력 밴딩의 예시적 실시형태는 도 5의 최적화 경로(504), 도 6의 최적화 경로(604), 도 8b에 도시된 바와 같은 조작 상태 지점(806), 도 10의 경로(1002)에 대한 최적화(1008), 및 도 12의 경로(1210)에 대하여 위에 도시되어 있다. 타이트 턴 근처의 경로의 다른 부분은 타이트 턴을 포함하는 부분에 대한 변경을 처리하기 위해 조작, 변경 또는 그렇지 않으면 최적화(예를 들면, 경로의 연속성을 유지하고, 이어서 최적화된 경로를 따라 로봇(202)의 순조로운 이동을 보장하기 위함)될 수 있다.
타이트 턴을 포함하는 경로의 탄력 밴딩 부분을 결정하는 단계는 경로의 복수의 가능한 탄력 밴딩 부분(즉, 경로의 일부에 대한 가능한 최적화)을 테스트하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 더 포함할 수 있으며, 여기서 상기 타이트 턴을 포함하는 경로의 일부에 적용되는 결정된 탄력 밴딩 부분은 복수의 가능한 탄력 밴딩 부분의 최상의 최적화를 포함한다는 것이 이해된다. 최상의 최적화는 탄력 밴딩 부분에 의해 추가된 거리, 근처의 물체까지의 거리(예를 들면, 상기 도 4의 영역(402)에 따름), 탄력 밴딩 부분을 따르는 각도 변화율 등을 포함하지만 이에 제한되지 않는 파라미터에 기초한 것이다.
블록(1306)은 상기 도 2에 도시된 적어도 하나의 액추에이터 유닛(208), 및/또는 추가적인 작동 유닛(204)(예를 들면, 내비게이션 유닛(206))을 활성화하여, 최적화 부분을 포함하는 경로를 따라 로봇(202)을 내비게이팅하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함한다. 방법(1300)은 로봇(202)이 경로를 내비게이팅하기 전에 경로를 따라 물체 근처의 모든 타이트 턴을 최적화하기 위해(즉, 탄력 밴딩함) 반복될 수 있다는 것이 이해된다.
도 14는 예시적 실시형태에 따라, 타이트 턴 및/또는 좁은 통로로 인한 물체와의 충돌을 피하기 위한 로봇(202)의 컨트롤러(222) 또는 프로세서(308)의 방법(1400)을 도시하는 프로세스 흐름도이다. 상기 방법(1400)은 경로를 따라 로봇(202)의 내비게이션 동안에 행해질 수 있으며, 상기 경로는 경로의 내비게이팅 이전에 어떠한 최적화도 포함하지 않는다.
블록(1402)은 경로를 내비게이팅하는 로봇(202)을 포함한다. 경로는 미리 결정된 경로, 학습된 경로, 로봇(202)에 의해 실시간으로 계산된 경로, 또는 임의의 다른 경로일 수 있다. 경로를 따른 내비게이팅은 로봇(202)을 경로를 따라 이동시키기 위해 적어도 하나의 작동 유닛(204)(예를 들면, 액추에이터 유닛(208))을 활성화하도록 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)에 의해 실행된다.
블록(1404)은 경로를 따라 로봇의 앞에 물체 근처의 타이트 턴이 존재하는지를 결정하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함한다. 물체는 컴퓨터 판독가능한 맵 상에 국지화된다. 일부 예에 있어서, 좁은 통로를 포함하는 다수의 물체가 급격한 회전 근처에 위치될 수 있다. 상기 도 6 및 8a에 도시된 바와 같이, 물체 근처에서의 급격한 회전은 충돌을 발생시킬 수 있다. 임계값을 초과하는 설정된 거리에 걸친 경로(예를 들면, 도 8b에 도시된 경로와 연관된 속도 벡터(808))의 각도 변화율에 기초하여 급격한 회전이 결정될 수 있다. 급격한 회전은 로봇(202)이 급격한 회전을 네비게이팅하기 전에 컨트롤러(222) 또는 프로세서(308)에 의해 감지될 수 있다. 비제한적인 예시적 예로서, 컨트롤러(222)는 급격한 회전을 위해 각각 0.5미터 간격으로 분리된 로봇(202)의 앞에서 20개의 상태 지점을 평가할 수 있으며, 이에 따라 로봇(202)이 정지하고, 경로의 일부의 급격한 회전에 대한 최적화 및 필요에 따라 정지를 결정하기 위한 충분한 시간을 제공할 수 있다. 물체는 급격한 회전을 포함하는 경로의 일부로부터 임계 거리 내에 있을 수 있으며, 임계 거리는 적어도 로봇(202)의 폭 및 로봇(202)의 회전 반경에 비례한다.
컨트롤러(222) 또는 프로세서(308)가 경로를 따라 물체 근처에서 로봇(202) 앞에서 급격한 회전이 감지되는 것으로 결정하면, 컨트롤러(222) 또는 프로세서(308)는 블록(1406)으로 이동할 수 있다.
컨트롤러(222) 또는 프로세서(308)가 경로를 따라 로봇(202) 앞에 급격한 회전이 없는 것으로 결정하면, 컨트롤러(222) 또는 프로세서(308)는 블록(1402)으로 돌아가서 경로를 따라 로봇(202)을 계속 내비게이팅할 수 있다.
블록(1406)은 로봇(202)을 정지시키고, 급격한 회전을 포함하는 경로의 일부에 대한 최적화를 계산하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함한다. 일부 실시형태에 있어서, 컨트롤러(222) 또는 프로세서(308)는 로봇(202)의 정지가 필요하지 않도록, 충분히 신속하게 최적화를 계산하기 위한 컴퓨팅 능력을 포함할 수 있다. 일부 실시형태에 있어서, 컨트롤러(222) 또는 프로세서는 로봇(202)의 속도를 감소시키기 위해 컴퓨터 판독가능한 명령을 실행할 수 있다. 그러나, 로봇(202)의 정지는, 예를 들면 안전상의 조치로서 또한 구현될 수 있다. 컨트롤러(222) 또는 프로세서(308)는 급격한 회전을 포함하는 경로의 일부에 대한 최적화를 결정하기 위해 상기 각각의 도 1 및 13에 설명된 방법(100 및/또는 1300)을 실행할 수 있다.
블록(1408)은 블록(1406)에서 결정된 경로에 대한 최적화를 급격한 회전을 포함하는 경로의 일부에 적용하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함한다. 급격한 회전을 포함하는 경로의 일부를 탄력 밴딩하는 것에 대응하는 최적화로서, 여기서 탄력 밴딩은 도 8b에 대해 위에서 도시된 바와 같이 급격한 회전 부분 근처의 경로의 일부를 추가로 변경할 수 있다.
블록(1410)은 최적화된 부분을 포함하는 경로를 따라 로봇(202)을 내비게이팅하기 위해 컴퓨터 판독가능한 명령을 실행하는 컨트롤러(222) 또는 프로세서(308)를 포함한다. 컨트롤러(222) 또는 프로세서(308)는 최적화된 부분을 지나 내비게이팅하면 블록(1402)으로 되돌아갈 수 있다.
본 개시는, 컴퓨터 판독가능한 명령이 저장된 비일시적 메모리, 및 로봇 시스템이 제 1 경로를 이동하기 전에 미리 결정된 제 2 경로를 최적화하는 것에 기초하여 제 1 경로를 결정하는, 컴퓨터 판독가능한 명령을 실행하도록 구성된 적어도 하나의 프로세서서를 포함하는 로봇 시스템으로서, 상기 최적화는 서로 독립적인 복수의 특징에 기초하고, 상기 제 1 경로는 제 2 경로를 최적화하기 위해 적어도 하나의 가능한 경로로부터 결정되는, 로봇 시스템을 도시한다. 상기 적어도 하나의 프로세서는 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩해서 적어도 하나의 가능한 경로를 테스트하여 제 1 경로를 결정하기 위해 추가로 구성될 수 있으며, 여기서 상기 적어도 하나의 가상 로봇 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇 시스템의 향후 위치를 나타내는 풋프린트를 포함한다. 적어도 하나의 가능한 경로를 테스트하는 것은 적어도 하나의 가능한 경로를 따라 충돌 지점을 결정하는 것을 포함할 수 있으며, 여기서 적어도 하나의 가상 로봇의 풋프린트가 컴퓨터 판독가능한 맵 상에 환경 장애물과 교차하는 충돌 지점이 결정된다. 적어도 하나의 프로세서는 적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하도록 추가로 구성될 수 있으며, 여기서 위험도가 높을수록 환경 장애물에 더 가까이 조종하는 로봇 시스템에 대응하며 그 반대의 경우도 마찬가지이고, 상기 적어도 하나의 가능한 경로는 제 2 경로를 탄력 밴딩하는 단계를 더 포함하고, 탄력 밴딩은 상기 탄력 밴딩된 제 2 경로가 장애물 주위의 더 넓은 턴을 포함하도록 장애물 주위로 제 2 경로를 확장하는 것을 포함한다. 적어도 하나의 프로세서는 제 2 경로를 포함하는 메모리에 저장된 데이터를 변경함으로써 제 1 경로를 적용하도록 추가로 구성될 수 있다. 적어도 하나의 프로세서는 제 1 경로에 의해 이루어진 최적화를 처리하기 위해 제 2 경로를 따라 적어도 하나의 상태 지점을 수정하도록 추가로 구성될 수 있으며, 상기 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 상태를 수정하는 것을 포함한다.
본 개시는 비일시적 컴퓨터 판독가능한 저장 매체에 저장된 복수의 명령에 대해 추가적으로 설명하며, 상기 명령은 특수 프로세서에 의해 실행될 때에 상기 특수 프로세서가, 로봇 시스템이 제 1 경로를 이동하기 전에 미리 결정된 제 2 경로를 최적화하는 것에 기초하여 제 1 경로를 결정하게 하고, 상기 최적화는 서로 독립적인 복수의 특징에 기초하고, 상기 제 1 경로는 제 2 경로를 최적화하기 위해 적어도 하나의 가능한 경로로부터 결정하게 한다. 상기 명령은 추가로, 특수 프로세서가 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩해서 적어도 하나의 가능한 경로를 테스트하여 1 경로를 결정하게 할 수 있고, 상기 적어도 하나의 가상 로봇 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇 시스템의 향후 위치를 나타내는 풋프린트를 포함한다. 적어도 하나의 가능한 경로를 테스트하는 단계는 적어도 하나의 가능한 경로를 따라 충돌 지점을 결정하는 단계를 포함할 수 있으며, 여기서 적어도 하나의 가상 로봇의 풋프린트가 컴퓨터 판독가능한 맵 상에 환경 장애물과 교차하는 충돌 지점이 결정된다. 명령은 추가로, 특수 프로세서가 적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하게 할 수 있으며, 여기서 위험도가 높을수록 환경 장애물에 더 가까이 조종하는 로봇 시스템에 대응하며 그 반대도 마찬가지이다. 적어도 하나의 가능한 경로는 제 2 경로를 탄력 밴딩하는 것을 추가로 포함할 수 있으며, 여기서 탄력 밴딩은 상기 탄력 밴딩된 제 2 경로가 장애물 주위의 더 넓은 턴을 포함하도록 장애물 주위로 제 2 경로를 확장하는 것을 포함한다. 명령은 추가로, 특수 프로세서가 제 2 경로를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체에 저장된 데이터를 변경함으로써 제 1 경로를 적용하게 할 수 있다. 명령은 추가로, 특수 프로세서가 제 2 경로를 따라 적어도 하나의 상태 지점을 수정하여 제 1 경로에 의해 이루어진 최적화를 처리하게 할 수 있으며, 상기 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 상태를 수정하는 것을 포함한다.
본 개시는 로봇 시스템이 제 1 경로를 이동하기 전에 미리 결정된 제 2 경로를 최적화하는 것에 기초하여 제 1 경로를 결정하는 단계를 포함하는 로봇 시스템에 대한 경로 계획 방법을 최적화하는 방법을 추가로 나타내고, 상기 최적화는 서로 독립적인 복수의 특징에 기초하고, 상기 제 1 경로는 제 2 경로를 최적화하기 위해 적어도 하나의 가능한 경로로부터 결정된다. 상기 방법은 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩해서 적어도 하나의 가능한 경로를 테스트하여 제 1 경로를 결정하는 단계를 더 포함할 수 있으며, 상기 적어도 하나의 가상 로봇 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇 시스템의 향후 위치를 나타내는 풋프린트를 포함한다. 상기 방법은 적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하는 단계를 더 포함할 수 있으며, 여기서 위험도가 높을수록 환경 장애물에 더 가까이 조종하는 로봇 시스템에 대응하며 그 반대도 마찬가지이다. 적어도 하나의 가능한 경로는 제 2 경로를 탄력 밴딩하는 단계를 더 포함할 수 있으며, 여기서 탄력 밴딩은 상기 탄력 밴딩된 제 2 경로가 장애물 주위의 더 넓은 턴을 포함하도록 장애물 주위로 제 2 경로를 확장하는 것을 포함한다. 상기 방법은 제 1 경로에 의해 이루어진 최적화를 설명하기 위해 제 2 경로를 따라 적어도 하나의 상태 지점을 수정하는 단계를 더 포함할 수 있으며, 여기서 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 상태를 수정하는 것을 포함한다.
본 개시는 좁은 통로를 결정할 수 있는 로봇식 시스템을 추가로 나타내고, 상기 로봇 시스템은, 컴퓨터 판독가능한 명령이 저장된 비일시적 메모리, 및 상기 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 명령은 상기 프로세서가, 제 1 측면 및 제 1 측면 상에서 로봇식 시스템의 풋프린트를 확장하고, 상기 제 1 측면 및 제 2 측면은 로봇의 전방 방향에 수직이고; 경로를 네비게이팅하고 확장된 풋프린트 내에서 감지된 환경 장애물의 위치를 결정하고; 또한 로봇식 시스템의 전방 방향에 수직인 단면을 따라 로봇식 시스템의 제 1 및 제 2 측면 양쪽에서 적어도 한 쌍의 장애물이 감지되는 좁은 통로를 결정하게 한다. 상기 프로세서는 로봇식 시스템을 대신하여 확장된 풋프린트를 가진 가상 로봇을 사용하여 경로를 내비게이팅하고, 장애물을 감지하여 경로를 따라 좁은 통로를 결정하도록 추가로 구성될 수 있다.
마지막으로, 본 개시는 비일시적 컴퓨터 판독가능한 저장 매체에 저장된 명령을 실행하는 적어도 하나의 프로세서를 사용하여, 로봇 시스템이 로봇 시스템의 풋프린트를 제 1 측면 및 제 2 측면 상에 확장하는 단계로서, 상기 제 1 및 제 2 측면은 로봇의 전방 방향에 수직인 단계; 상기 경로를 내비게이팅하고, 상기 확장된 풋프린트 내에서 감지된 환경 장애물의 위치를 결정하는 단계; 및 상기 로봇식 시스템의 전방 방향에 수직인 단면 평면을 따라 로봇식 시스템의 제 1 및 제 2 측면 양쪽에서 적어도 한 쌍의 장애물이 감지되는 좁은 통로를 결정하는 단계에 의해, 경로를 따라 좁은 통로를 결정하는 방법을 추가로 예시한다. 이 방법은 로봇식 시스템을 대신하여 확장된 풋프린트를 가진 가상 로봇을 이용하여 경로를 내비게이팅하고, 장애물을 감지하여 경로를 따라 좁은 통로를 결정하는 단계를 더 포함할 수 있다.
본 개시는, 로봇식 시스템의 환경과 관련된 정보를 전송하도록 구성된 적어도 하나의 센서; 내부에 저장된 복수의 명령을 포함하는 비일시적 컴퓨터 판독가능한 메모리; 및 적어도 하나의 장애물의 위치 및 내비게이팅할 경로를 포함하는 환경의 맵을 수신하는 단계로서, 상기 경로는 복수의 경로 구간을 포함하는 단계, 복수의 경로 구간 중, 타이트 턴, 좁은 통로 또는 좁은 통로로의 타이트 턴을 포함하는 경로 구간을 결정하는 단계로서, 여기서 적어도 하나의 가능한 충돌 지점이 결정되는 단계를 위해 컴퓨터 판독가능한 명령을 실행하도록 구성된 하나 이상의 프로세서를 포함하는 로봇 시스템을 나타낸다. 또한, 상기 적어도 하나의 프로세서는, 경로 구간에 대한 적어도 하나의 가능한 최적화를 결정하고; 가능한 충돌 지점에 대해 적어도 하나의 최적화를 테스트하기 위해 적어도 하나의 가상 로봇을 생성하고; 적어도 하나의 가능한 최적화 중에서 발견된 최적화를 결정하고, 여기서 발견된 최적화는 최적화 임계값을 충족하거나 초과하고; 경로를 포함하는 메모리에 저장된 데이터를 변경함으로써 발견된 최적화를 경로에 적용하고; 적어도 하나의 액추에이터를 활성화함으로써 최적화된 경로를 내비게이팅하며, 상기 적어도 하나의 액추에이터는 로봇식 시스템을 이동하기 위해 구성되도록, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성된다.
적어도 하나의 프로세서는 경로의 구간의 적어도 하나의 가능한 최적화를 테스트하기 위해 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩하도록 추가로 구성될 수 있으며, 상기 가상 로봇 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇식 장치의 향후 가능한 위치를 나타내는 풋프린트를 포함하고, 상기 적어도 하나의 가능한 최적화를 테스트하는 단계는 적어도 하나의 가능한 최적화를 따라 충돌 지점을 결정하는 것을 포함하고, 여기서, 적어도 하나의 가상 로봇의 풋프린트가 컴퓨터 판독가능한 맵 상의 환경 장애물과 교차하는 충돌 지점이 결정된다. 적어도 하나의 프로세서는 적어도 하나의 가능한 최적화 각각과 연관된 위험도를 결정하도록 추가로 구성될 수 있고, 여기서 위험도가 높을수록 환경 장애물에 더 가깝게 조종하는 로봇식 장치에 대응하고 그 반대의 경우도 마찬가지이다. 적어도 하나의 최적화는 경로의 구간을 탄력 밴딩하는 단계를 더 포함할 수 있으며, 탄력 밴딩은 상기 탄력 밴딩된 구간이 장애물 주위의 더 넓은 턴을 포함하도록 장애물 주변의 구간을 확장하는 것을 포함한다. 적어도 하나의 특수 프로세서는 높은 수준의 위험 조종을 포함하는 복수의 경로 구간 중 하나의 경로 구간을 결정하도록 추가로 구성될 수 있고, 여기서 위험도를 최소화하기 위해 경로 구간에 대해 최적화가 이루어진다. 적어도 하나의 프로세서는 경로를 따라 적어도 하나의 상태 지점을 수정하여 경로에 대해 이루어진 최적화를 처리하기 위해 추가로 구성될 수 있고, 여기서 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 상태를 수정하는 것을 포함한다.
본 개시는 비일시적 컴퓨터 판독가능한 저장 매체에 저장된 복수의 명령을 추가로 설명하며, 상기 명령은 하나 이상의 프로세서에 의해 실행될 때에, 상기 하나 이상의 프로세서가, 적어도 하나의 장애물의 위치 및 내비게이팅할 경로를 포함하는 환경의 맵을 수신하고, 상기 경로는 복수의 경로 구간을 포함하고; 복수의 경로 구간 중, 타이트 턴, 좁은 통로 또는 좁은 통로로의 타이트 턴을 포함하는 하나의 경로 구간을 결정하고, 여기서 적어도 하나의 충돌 지점이 결정되고; 적어도 하나의 충돌 지점을 피하기 위해 경로 구간에 대한 적어도 하나의 가능한 최적화를 결정하고; 적어도 하나의 가능한 최적화 중 발견된 최적화를 결정하고, 여기서 발견된 최적화는 최적화 임계값을 충족하고; 또한, 경로를 포함하여 비일시적 컴퓨터 판독가능한 저장 매체에 저장된 데이터를 변경함으로써 발견된 최적화를 경로 구간에 적용하게 한다. 비일시적 컴퓨터 판독가능한 저장 매체는 회전 임계값이 충족되거나 초과되는 것에 기초하여 경로를 따라 타이트 턴을 결정하기 위한 명령을 더 포함할 수 있으며, 상기 임계값은 설정된 거리 내에서 허용 가능한 회전도를 포함한다.
비일시적 컴퓨터 판독가능한 저장 매체는, 컴퓨터 판독가능한 맵 상의 풋프린트와 환경 장애물의 교차점에 기초하여 경로 구간에 대한 적어도 하나의 가능한 최적화를 따라 충돌 지점을 결정하도록 적어도 하나의 가상 로봇 풋프린트를 이용하기 위한 명령을 더 포함할 수 있다. 비일시적 컴퓨터 판독가능한 저장 매체는, 위험도를 최소화하고 충돌 지점을 제거함과 동시에, 최적화 길이를 최소화하는 것에 기초하여 적어도 하나의 가능한 최적화의 최상의 최적화를 결정하기 위한 명령을 더 포함할 수 있다. 경로에 적용된 최적화는 경로 데이터를 수정함으로써 행해질 수 있으며, 상기 경로 데이터는 경로를 따른 거리에 대응하는 컴퓨터 판독가능한 맵 상의 위치 좌표를 포함한다.
본 발명은 비일시적 컴퓨터 판독가능한 저장 매체에서 명령을 실행하는 적어도 하나의 프로세서를 이용하여, 로봇식 장치의 풋프린트를 제 1 측면 상에 연장하고, 상기 측면은 로봇의 전방 방향에 수직이고; 경로를 내비게이팅하고 환경 장애물의 위치를 결정하고; 상기 제 1 측면과 반대쪽의 제 2 측면에 대해 상기를 반복하고; 또한 상기 로봇식 장치의 전방 방향에 수직인 단면을 따라 로봇식 장치의 양측면에서 적어도 한 쌍의 장애물이 감지되는 좁은 통로를 결정함으로써, 상기 로봇식 장치가 경로를 따라 좁은 통로를 감지하는 방법을 더 제공할 수 있다. 상기 방법은 경로를 따라 좁은 통로를 결정하기 위해 경로를 내비게이팅하고 장애물을 감지하도록 로봇식 장치를 대신하여 확장된 풋프린트를 가진 가상 로봇을 사용하는 단계를 더 포함할 수 있다.
본 발명은 로봇식 장치의 경로 계획 방법을 최적화하기 위한 방법을 더 제공 할 수 있으며, 상기 방법은 경로의 구간을 결정하는 단계로서, 상기 경로는 복수의 구간을 포함하고, 상기 구간은 타이트 턴, 좁은 통로, 또는 좁은 통로로의 타이트 턴을 포함하는 단계; 상기 경로 구간에 대한 적어도 하나의 가능한 최적화를 결정하는 단계; 적어도 하나의 가능한 최적화가 최적화 임계값을 충족하는지를 결정하기 위해 적어도 하나의 가상 로봇을 이용하여 적어도 하나의 가능한 최적화를 테스트하는 단계; 및 적어도 하나의 가능한 최적화의 발견된 최적화를 경로 구간에 적용하는 단계로서, 상기 발견된 최적화는 최적화 임계값을 충족시키는 단계를 포함한다. 상기 방법은 설정된 임계값이 충족되거나 초과되는 것에 기초하여 경로의 구간을 따른 타이트 턴을 식별하는 단계를 더 포함할 수 있으며, 상기 임계값은 설정된 거리 내에서의 최대 회전도를 포함한다. 상기 방법은 컴퓨터 판독가능한 맵 상의 풋프린트와 환경 장애물의 교차점에 기초하여 적어도 하나의 가능한 최적화의 위험도 및 충돌 지점을 결정하기 위해 사용되는, 적어도 하나의 가상 로봇 풋프린트를 생성하는 단계를 더 포함할 수 있다. 상기 방법은 적어도 하나의 가능한 최적화의 발견된 최적화가 미리 정해진 최적화 임계값을 충족하는 발견된 최적화에 기초하는 것으로 결정하는 단계를 더 포함할 수 있다. 상기 방법은 경로 데이터를 수정함으로써 발견된 최적화를 경로에 적용하는 단계를 더 포함할 수 있으며, 상기 경로 데이터는 경로를 따른 거리에 대응하는 컴퓨터 판독가능한 맵 상의 위치 좌표를 포함한다.
본 개시의 특정 양태가 방법의 단계의 특정 시퀀스에 관하여 설명되지만, 이들 설명은 본 개시의 더 광범위한 방법들의 예시일뿐이고, 특정 애플리케이션에 의해 요구되는 대로 수정될 수 있다는 것이 인식될 것이다. 특정 단계는 특정 상황 하에서 불필요하게 또는 선택적으로 렌더링될 수 있다. 부가적으로, 특정 단계 또는 기능성이 개시된 구현예에 부가될 수 있거나, 또는 2개 이상의 단계의 수행 순서가 치환될 수 있다. 이러한 모든 변형은 본원에서 개시되고 청구되는 본 개시 내에 포함되는 것으로 간주된다.
위의 상세한 설명이 다양한 구현예에 적용된 본 개시의 신규한 특징을 나타내고, 설명하고, 지적하였지만, 예시된 장치 또는 프로세스의 형태 및 세부사항의 다양한 생략, 치환 및 변경이 본 개시로부터 벗어나지 않으면서 당업자에 의해 이루어질 수 있다는 것이 이해될 것이다. 전술된 설명은 본 개시를 실시하기 위해 현재 고려되는 최상의 모드이다. 이러한 설명은 결코 제한하는 것으로 의도되는 것이 아니라, 본 개시의 일반적인 원리를 예시하는 것으로 간주되어야 한다. 본 개시의 범위는 청구범위를 참조하여 결정되어야 한다.
본 개시가 도면 및 전술된 설명에서 상세히 예시 및 설명되었지만, 그러한 예시 및 설명은 예시 또는 예시적 것으로 고려되어야 하며 제한적인 것이 아니다. 본 개시는 개시된 실시형태로 제한되지 않는다. 개시된 실시형태에 대한 변형은, 청구된 개시를 실시할 때, 도면, 본 개시, 및 첨부된 청구범위의 연구로부터, 당업자에 의해 이해 및 실행될 수 있다.
본 개시의 특정 특징 또는 양태를 설명할 때의 특정 용어의 사용은, 그 용어와 관련된 본 개시의 특징 또는 양태의 임의의 특정 특성을 포함하도록 제한되게 하기 위해 그 용어가 본원에서 재정의되고 있다고 암시하는 것으로 받아들여져서는 안된다는 것을 주지해야 한다. 본 명세서에서 사용되는 용어 및 어구와 이들의 변형은, 특히 첨부된 청구범위에 있어서는, 명시적으로 달리 언급되지 않는 한, 제한과 반대로 개방형으로서 해석되어야 한다. 전술된 바의 예로서, "구비하는"이라는 용어는 "제한없이 구비하는", "구비하지만 이에 제한되지 않는" 등을 의미하는 것으로 해석되어야 하고; 본원에서 사용되는 바와 같은 "포함하는"이라는 용어는 "구비하는", "함유하는", 또는 "특징으로 하는"과 동의어이고, 포괄적이거나 또는 개방형이고, 부가적인 기재되지 않은 구성요소 또는 방법 단계를 배제하지 않고; "갖는"이라는 용어는 "적어도 갖는"으로 해석되어야 하고; "그와 같은"이라는 용어는 "제한없이 그와 같은"으로 해석되어야 하고; "구비한다"라는 용어는 "구비하지만 이에 제한되지 않음"으로 해석되어야 하고; "예"라는 용어는 논의 중인 아이템의 예시적 인스턴스를 제공하기 위해 사용되고, 그 아이템의 철저한 또는 제한적인 리스트가 아니고, "예이지만 제한되지 않음"으로 해석되어야 하고; 형용사, 예를 들면 "알려진", "일반적인", "표준", 및 유사한 의미의 용어는 설명되는 아이템을 주어진 시간 기간으로, 또는 주어진 시간으로부터 이용 가능한 아이템으로 제한하는 것으로 해석되는 것이 아니라, 대신, 현재 또는 향후의 임의의 시간에 이용 가능할 수 있거나 알려질 수 있는 알려진, 일반적인, 또는 표준 기술을 포함하는 것으로 해석되어야 하고; 그리고 "바람직하게", "바람직한", "원하는", 또는 "원함직한"과 같은 용어 및 유사한 의미의 단어들의 사용은 특정 특징이 본 개시의 구조 또는 기능에 결정적이거나, 필수적이거나, 또는 심지어 중요하다는 것을 암시하는 것이 아니고, 대신, 특정 실시형태에서 이용될 수 있거나 이용되지 않을 수 있는 대안적인 또는 부가적인 특징을 단지 강조하도록 의도된 것으로 이해되어야 한다. 마찬가지로, 접속사 "및"으로 연결된 항목 그룹은 대응 항목 각각이 그룹 내에 존재하는 것으로 해석되어서는 안되며, 달리 명시적으로 언급되지 않는 한, "및/또는"으로 해석되어야 한다. 마찬가지로, 접속사 "또는"으로 연결된 항목 그룹은 그 그룹 간에 상호 배타성을 요구하는 것으로 해석되는 것이 아니라, 달리 명시적으로 언급되지 않는 한, "및/또는"으로 해석되어야 한다. "약" 또는 "대략"이라는 용어 등은 동의어이며, 용어에 의해 수정된 값이 그와 연관된 이해 범위를 갖는 것을 나타내기 위해 사용되며, 여기서, 범위는 ±20%, ±15%, ±10%, ±5% 또는 ±1%일 수 있다. "실질적으로"라는 용어는 결과(예를 들면, 측정값)가 목표값에 근접한 것을 나타내기 위해 사용되고, 여기서, 근접은, 예를 들면, 결과가 값의 80% 내, 값의 90% 내, 값의 95% 내 또는 값의 99% 내에 있는 것을 의미할 수 있다. 또한, 본원에서 사용되는 바와 같이, "규정된" 또는 "결정된"은 "미리 규정된" 또는 "미리 결정된" 및/또는 다른 방식으로 결정된 값, 조건, 임계값, 측정값 등을 포함할 수 있다.

Claims (20)

  1. 컴퓨터 판독가능한 명령이 저장된 메모리; 및
    로봇식 시스템이 제 1 경로를 이동하기 전에 제 2 경로의 구간을 변경하는 것에 기초하여 제 1 경로를 결정하는, 컴퓨터 판독가능한 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하는 로봇식 시스템으로서:
    상기 구간의 변경은 제 2 경로의 조종을 실행하는 동안에 적어도 물체와의 충돌을 피하는 것에 기초하고,
    상기 제 1 경로는 제 2 경로의 변경된 구간에 대응하는 적어도 하나의 가능한 경로로부터 결정되는, 로봇식 시스템.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는, 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩해서 적어도 하나의 가능한 경로를 테스트하여 제 1 경로를 결정하는, 컴퓨터 판독가능한 명령을 실행하도록 구성되고,
    상기 적어도 하나의 가상 로봇의 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇식 시스템의 향후 위치를 나타내는 풋프린트를 포함하는, 시스템.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 가능한 경로를 테스트하는 단계는 적어도 하나의 가능한 경로를 따라 충돌 지점을 결정하는 것을 포함하고,
    각각의 충돌 지점은 컴퓨터 판독가능한 맵 상에 물체와 적어도 부분적으로 교차하거나 중첩하는 적어도 하나의 가상 로봇의 각각의 풋프린트에 기초하여 결정되는, 시스템.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 프로세서는, 적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되고,
    상기 위험도가 높을수록 물체에 더 가깝게 조종하는 로봇식 시스템에 대응하고, 위험도가 낮을수록 물체로부터 더 멀리 떨어져 조종하는 로봇식 시스템에 대응하는, 시스템.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 가능한 경로는 제 2 경로의 구간을 탄력 밴딩하는 단계를 더 포함하고,
    상기 탄력 밴딩은 탄력 밴딩된 제 2 경로가 물체 주위의 더 넓은 턴을 포함하도록 물체로부터 멀리 떨어져 제 2 경로를 확장하는 것을 포함하는, 시스템.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 프로세서는, 로봇식 시스템이 좁은 통로에 진입하기 전에 전방 방향을 향하도록 구성함으로써 제 2 경로의 변경된 구간을 내비게이팅하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되는, 시스템.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는, 제 2 경로를 따라 적어도 하나의 상태 지점을 수정하여 제 2 경로의 구간에서 이루어진 변경을 처리하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되고,
    상기 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 하나 이상의 상태 파라미터를 수정하는 것을 포함하는, 시스템.
  8. 구현되는 복수의 명령을 포함하는 비일시적 컴퓨터 판독가능한 저장 매체로서:
    하나 이상의 프로세서에 의해 실행될 때에, 하나 이상의 프로세서가, 로봇식 시스템이 제 1 경로를 이동하기 전에 제 2 경로의 구간을 변경하는 것에 기초하여 제 1 경로를 결정하도록 구성되고,
    상기 구간의 변경은 제 2 경로의 조종을 실행하는 동안에 적어도 물체와의 충돌을 피하는 것에 기초하고,
    상기 제 1 경로는 제 2 경로의 변경된 구간에 대응하는 적어도 하나의 가능한 경로로부터 결정되는, 비일시적 컴퓨터 판독가능한 저장 매체.
  9. 제 8 항에 있어서,
    상기 하나 이상의 프로세서는, 컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩해서 적어도 하나의 가능한 경로를 테스트하여 제 1 경로를 결정하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되고,
    상기 적어도 하나의 가상 로봇 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇식 시스템의 향후 위치를 나타내는 풋프린트를 포함하는, 비일시적 컴퓨터 판독가능한 저장 매체.
  10. 제 9 항에 있어서,
    상기 적어도 하나의 가능한 경로를 테스트하는 단계는 적어도 하나의 가능한 경로를 따라 충돌 지점을 결정하는 것을 포함하고,
    각각의 충돌 지점은 컴퓨터 판독가능한 맵 상에 물체와 적어도 부분적으로 교차하거나 중첩하는 적어도 하나의 가상 로봇의 각각의 풋프린트에 기초하여 결정되는, 비일시적 컴퓨터 판독가능한 저장 매체.
  11. 제 9 항에 있어서,
    상기 하나 이상의 프로세서는, 적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되고,
    상기 위험도가 높을수록 물체에 더 가깝게 조종하는 로봇식 시스템에 대응하고, 위험도가 낮을수록 물체로부터 멀리 떨어져 조종하는 로봇식 시스템에 대응하는, 비일시적 컴퓨터 판독가능한 저장 매체.
  12. 제 8 항에 있어서,
    상기 적어도 하나의 가능한 경로는 제 2 경로의 구간을 탄력 밴딩하는 단계를 더 포함하고,
    상기 탄력 밴딩은 탄력 배딩된 제 2 경로가 물체 주위의 더 넓은 턴을 포함하도록 장애물로부터 멀리 떨어져 제 2 경로를 확장하는 것을 포함하는, 비일시적 컴퓨터 판독가능한 저장 매체.
  13. 제 12 항에 있어서,
    상기 하나 이상의 프로세서는, 로봇식 시스템이 좁은 통로에 진입하기 전에 전방 방향을 향하도록 구성함으로써 제 2 경로의 변경된 구간을 내비게이팅하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되는, 비일시적 컴퓨터 판독가능한 저장 매체.
  14. 제 8 항에 있어서,
    상기 하나 이상의 프로세서는, 제 2 경로를 따라 적어도 하나의 상태 지점을 수정하여 제 1 경로에 대한 제 2 경로의 구간에서 이루어진 변경을 처리하는, 컴퓨터 판독가능한 명령을 실행하도록 추가로 구성되고,
    상기 수정은 적어도 하나의 상태 지점을 추가, 제거 및 재배치하고, 적어도 하나의 상태 지점에 대응하는 하나 이상의 상태 파라미터를 수정하는 것을 포함하는, 비일시적 컴퓨터 판독가능한 저장 매체.
  15. 로봇식 시스템이 제 1 경로를 이동하기 전에 제 2 경로의 구간을 변경하는 것에 기초하여 제 1 경로를 결정하는 단계를 더 포함하고,
    상기 구간의 변경은 제 2 경로의 조종을 실행하는 동안에 적어도 물체와의 충돌을 피하는 것에 기초하여 이루어지고,
    상기 제 1 경로는 제 2 경로의 변경된 구간에 대응하는 적어도 하나의 가능한 경로로부터 결정되는, 로봇식 시스템의 경로 계획 방법.
  16. 제 15 항에 있어서,
    컴퓨터 판독가능한 맵 상에 적어도 하나의 가상 로봇의 풋프린트를 중첩해서 적어도 하나의 가능한 경로를 테스트하여 제 1 경로를 결정하는 단계를 더 포함하고,
    상기 적어도 하나의 가상 로봇의 풋프린트는 컴퓨터 판독가능한 맵 상에 로봇식 시스템의 향후 위치를 나타내는 풋프린트를 포함하는, 방법.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 가능한 경로를 테스트하는 단계는 적어도 하나의 가능한 경로를 따라 충돌 지점을 결정하는 것을 포함하고,
    각각의 충돌 지점은 컴퓨터 판독가능한 맵 상에 물체와 적어도 부분적으로 교차하거나 중첩하는 적어도 하나의 가상 로봇의 각각의 풋프린트에 기초하여 결정되는, 방법.
  18. 제 16 항에 있어서,
    적어도 하나의 가능한 경로의 각각과 연관된 위험도를 결정하는 단계를 더 포함하고,
    상기 위험도가 높을수록 물체에 더 가깝게 조종하는 로봇식 시스템에 대응하고, 위험도가 낮을수록 물체로부터 멀리 떨어져 조종하는 로봇식 시스템에 대응하는, 방법.
  19. 제 15 항에 있어서,
    적어도 하나의 가능한 경로는 제 2 경로의 구간을 탄력 밴딩하는 단계를 더 포함하고,
    상기 탄력 밴딩은 탄력 밴딩된 제 2 경로가 물체 주위의 더 넓은 턴을 포함하도록 장애물로부터 멀리 떨어져 제 2 경로를 확장하는 것을 포함하는, 방법.
  20. 제 19 항에 있어서,
    상기 로봇식 시스템이 좁은 통로에 진입하기 전에 전방 방향을 향하도록 구성함으로써 제 2 경로의 변경된 구간을 내비게이팅하는 단계를 더 포함하는, 방법.
KR1020217004518A 2018-07-16 2019-07-16 로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법 KR20210066791A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862698438P 2018-07-16 2018-07-16
US62/698,438 2018-07-16
PCT/US2019/041991 WO2020018527A1 (en) 2018-07-16 2019-07-16 Systems and methods for optimizing route planning for tight turns for robotic apparatuses

Publications (1)

Publication Number Publication Date
KR20210066791A true KR20210066791A (ko) 2021-06-07

Family

ID=69164660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217004518A KR20210066791A (ko) 2018-07-16 2019-07-16 로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US20210132615A1 (ko)
EP (1) EP3823795A4 (ko)
KR (1) KR20210066791A (ko)
CN (1) CN112672856A (ko)
WO (1) WO2020018527A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
SE544208C2 (en) * 2019-08-23 2022-03-01 Scania Cv Ab Method and control arrangement for vehicle motion planning and control algorithms
US11493925B2 (en) * 2020-03-05 2022-11-08 Locus Robotics Corp. Robot obstacle collision prediction and avoidance
US11927961B2 (en) 2020-04-20 2024-03-12 Boston Dynamics, Inc. Constrained robot autonomy language
US11712802B2 (en) * 2020-04-20 2023-08-01 Boston Dynamics, Inc. Construction constrained motion primitives from robot maps
CN112650216B (zh) * 2020-12-02 2024-03-01 深圳拓邦股份有限公司 机器人转弯控制方法、装置及洗地机器人
JP7480698B2 (ja) * 2020-12-24 2024-05-10 トヨタ自動車株式会社 自律移動システム、自律移動方法及び自律移動プログラム
US20220397914A1 (en) * 2021-06-04 2022-12-15 Ubtech North America Research And Development Center Corp Fast continuous regulation of nonholonomic mobile robots
CN113386141B (zh) * 2021-07-05 2022-12-16 上海高仙自动化科技发展有限公司 机器人控制方法、装置、设备及存储介质
CN113418522B (zh) * 2021-08-25 2021-12-14 季华实验室 Agv路径规划方法、跟随方法、装置、设备及存储介质
CN113885506B (zh) * 2021-10-18 2023-07-07 武汉联影智融医疗科技有限公司 机器人避障方法、装置、电子设备及存储介质
CN114310941B (zh) * 2021-12-21 2023-10-20 长三角哈特机器人产业技术研究院 用于轮毂轮孔去毛刺加工的机器人路径生成方法
US20230249711A1 (en) * 2022-02-10 2023-08-10 Waymo Llc Methods and Systems for Automatic Problematic Maneuver Detection and Adapted Motion Planning

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3875988B2 (ja) * 2002-05-10 2007-01-31 本田技研工業株式会社 未知の障害物の中の予測不可能な目標物の実時間追跡
JP4348276B2 (ja) 2004-11-02 2009-10-21 本田技研工業株式会社 ロボット制御装置
WO2007143756A2 (en) 2006-06-09 2007-12-13 Carnegie Mellon University System and method for autonomously convoying vehicles
JP5215740B2 (ja) 2008-06-09 2013-06-19 株式会社日立製作所 移動ロボットシステム
US8126642B2 (en) * 2008-10-24 2012-02-28 Gray & Company, Inc. Control and systems for autonomously driven vehicles
US9155961B2 (en) * 2009-05-28 2015-10-13 Anki, Inc. Mobile agents for manipulating, moving, and/or reorienting components
JP5724919B2 (ja) 2012-03-22 2015-05-27 トヨタ自動車株式会社 軌道生成装置、移動体、軌道生成方法及びプログラム
EP2952301B1 (en) 2014-06-05 2019-12-25 Softbank Robotics Europe Humanoid robot with collision avoidance and trajectory recovery capabilities
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
CN105182979B (zh) * 2015-09-23 2018-02-23 上海物景智能科技有限公司 一种移动机器人障碍物检测及避让方法和系统
JP6340037B2 (ja) * 2016-06-07 2018-06-06 株式会社Subaru 車両の走行制御装置
KR102402134B1 (ko) * 2016-08-26 2022-05-30 크라운 이큅먼트 코포레이션 자재 핸들링 차량 경로 검증 및 동적 경로 수정
US10001780B2 (en) * 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
US10296012B2 (en) * 2016-12-21 2019-05-21 X Development Llc Pre-computation of kinematically feasible roadmaps
US11231714B2 (en) * 2016-12-22 2022-01-25 Macdonald, Dettwiler And Assoiciates Inc. Unobtrusive driving assistance method and system for a vehicle to avoid hazards
US10466707B2 (en) * 2017-12-22 2019-11-05 X Development Llc Planning robot stopping points to avoid collisions

Also Published As

Publication number Publication date
EP3823795A1 (en) 2021-05-26
WO2020018527A1 (en) 2020-01-23
EP3823795A4 (en) 2022-04-06
US20210132615A1 (en) 2021-05-06
CN112672856A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
KR20210066791A (ko) 로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법
US11701778B2 (en) Systems and methods for robotic path planning
KR102528869B1 (ko) 자율 네비게이션에서 동적 노정을 계획하기 위한 시스템 및 방법
CN109154827B (zh) 机器人车辆的定位
KR102355750B1 (ko) 경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법
JP6863991B2 (ja) 自律的な移動ロボットのための仮想的なライン追従方法及び改造方法並びに移動ロボット
US9789607B1 (en) Achieving a target gait in a legged robot based on steering commands
TW201629660A (zh) 自主輔助及導向車輛
US11951629B2 (en) Systems, apparatuses, and methods for cost evaluation and motion planning for robotic devices
Gerdes et al. Efficient autonomous navigation for planetary rovers with limited resources
JP5439552B2 (ja) ロボットシステム
Kamel et al. Developments and challenges in wheeled mobile robot control
JP2022512438A (ja) 非ホロノミックロボットシステムの改善された制御のためのシステム及び方法
Pérez-Morales et al. Multisensor-based predictive control for autonomous parking
JP2022013243A (ja) 移動体制御装置、地図生成方法、及び地図生成プログラム
Morales Multi-sensor-based control in Intelligent Parking applications
Hutsebaut-Buysse et al. Directed Real-World Learned Exploration
Bis et al. Vehicle occupancy space for unmanned ground vehicles with actuation error
Sehn Pathfinder: Local Obstacle Avoidance for Long-Term Autonomous Path Following
Moore et al. Toward a generic UGV autopilot
Yan Simulation, Control and Path Planning for Articulated Unmanned Ground Vehicles

Legal Events

Date Code Title Description
A201 Request for examination