KR20210108479A - 경로 계획을 위한 시스템 및 방법 - Google Patents

경로 계획을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210108479A
KR20210108479A KR1020217024785A KR20217024785A KR20210108479A KR 20210108479 A KR20210108479 A KR 20210108479A KR 1020217024785 A KR1020217024785 A KR 1020217024785A KR 20217024785 A KR20217024785 A KR 20217024785A KR 20210108479 A KR20210108479 A KR 20210108479A
Authority
KR
South Korea
Prior art keywords
node
map
target
nodes
vehicles
Prior art date
Application number
KR1020217024785A
Other languages
English (en)
Other versions
KR102643759B1 (ko
Inventor
위안창 위안
웨이 루
이동 진
준 인
팡보 무
Original Assignee
저지앙 화레이 테크놀로지 컴퍼니., 리미티드.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 저지앙 화레이 테크놀로지 컴퍼니., 리미티드. filed Critical 저지앙 화레이 테크놀로지 컴퍼니., 리미티드.
Publication of KR20210108479A publication Critical patent/KR20210108479A/ko
Application granted granted Critical
Publication of KR102643759B1 publication Critical patent/KR102643759B1/ko

Links

Images

Classifications

    • 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
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3885Transmission of map data to client devices; Reception of map data by client devices
    • G01C21/3889Transmission of selected map data, e.g. depending on route
    • 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/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
    • 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
    • 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/3492Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
    • 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/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/3614Destination input or retrieval through interaction with a road map, e.g. selecting a POI icon on a road map
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3874Structures specially adapted for data searching and retrieval
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/30Transportation; Communications
    • G06Q50/40
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096805Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route
    • G08G1/096811Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route where the route is computed offboard
    • G08G1/096816Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route where the route is computed offboard where the complete route is transmitted to the vehicle at once
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096833Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route
    • G08G1/09685Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route where the complete route is computed only once and not updated
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096855Systems involving transmission of navigation instructions to the vehicle where the output is provided in a suitable form to the driver
    • G08G1/096866Systems involving transmission of navigation instructions to the vehicle where the output is provided in a suitable form to the driver where the complete route is shown to the driver
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096877Systems involving transmission of navigation instructions to the vehicle where the input to the navigation device is provided by a suitable I/O arrangement
    • G08G1/096883Systems involving transmission of navigation instructions to the vehicle where the input to the navigation device is provided by a suitable I/O arrangement where input information is obtained using a mobile device, e.g. a mobile phone, a PDA

Abstract

본 개시는 경로 계획을 위한 방법을 제공할 수 있다. 방법은 타겟 차량의 출발 위치 및 목적지를 획득하는 단계를 포함할 수 있다. 방법은 또한 출발 위치 및 목적지를 포함하는 타겟 지역의 맵를 획득하는 단계를 포함할 수 있다. 맵은 복수의 노드들 각각의 노드 정보를 포함할 수 있다. 또한, 방법은 타겟 지역에서 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하는 단계를 포함할 수 있다. 방법은 출발 위치, 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 맵에 적어도 부분적으로 기초하여 타겟 차량의 타겟 경로를 결정하는 단계를 포함할 수 있다.

Description

경로 계획을 위한 시스템 및 방법
관련 출원의 상호 참조
본 출원은, 그 전체 내용이 여기에서 참조로서 통합되는, 2019년 1월 14일에 출원된, 중국 특허 출원 번호 201910032301.5호의 우선권을 주장한다.
본 개시는 일반적으로 경로 계획(route planning)에 관한 것으로, 특히 맵(예를 들어, 토폴로지 맵)에 기초한 경로 계획을 위한 시스템 및 방법에 관한 것이다.
자동화 기술과 컴퓨터 기술의 발달로 운송 차량(예를 들어, 자동으로 안내되는 차량(automated guided vehicles))의 경로 계획 탐색이 오늘날 빠르게 발전하고 있다. 일반적으로, 차량의 경우, 경로 계획 시스템은 복수의 노드들 및 그 노드 정보(예를 들어, 노드의 통행 가능성(passability))를 포함할 수 있는 맵(예를 들어, 토폴로지 맵, 그리드 맵)에 기초하여 출발 위치에서 목적지까지의 경로를 결정할 수 있다. 그러나, 일부 경우들에서, 다른 차량들의 움직임 정보가 노드들의 노드 정보(예를 들어, 통행 가능성)에 영향을 미칠 수 있으며, 따라서 이는 경로 계획의 정확성 및 효율성에 영향을 미칠 수 있다.
따라서, 움직임 정보를 고려한 정확하고 효율적인 경로 계획을 위한 시스템들 및 방법들을 제공하는 것이 바람직하다.
본 발명의 제1 양상에서, 토폴로지 맵에 기초하여 자동 안내 차량(AGV: Automatic Guided Vehicle)에 대한 경로 계획을 위한 방법이 제공될 수 있다. 방법은 스케줄링 시스템에 대응하는 토폴로지 맵을 획득하는 단계; 상기 토폴로지 맵을 전처리하여 상기 스케줄링 시스템에서 복수의 AGV들과 연관된 움직임 상태 정보 및 상기 토폴로지 맵에서 상기 복수의 AGV들에 의해 점유되는 복수의 노드들에 기초하여 상기 토폴로지 맵의 노드 정보를 수정함으로써 수정된 토폴로지 맵을 획득하는 단계; 상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하는 단계; 상기 수정된 토폴로지 맵의 노드 정보에 기초하여, 상기 출발 노드와 상기 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들을 결정하는 단계; 및 상기 복수의 총 비용들에 기초하여 상기 현재 AGV에 대한 경로 계획을 수행하는 단계를 포함한다.
본 발명의 제2 양상에서, 토폴로지 맵에 기초하여 자동 안내 차량(AGV)에 대한 경로 계획을 위한 디바이스가 제공될 수 있다. 상기 디바이스는 적어도 하나의 프로세서 및 프로그램 코드들을 저장하는 적어도 하나의 저장소를 포함할 수 있다. 상기 프로그램 코드들이 적어도 하나의 프로세서에 의해 실행될 때, 상기 프로그램 코드들은 적어도 하나의 프로세서에 방법을 수행하도록 지시할 수 있다. 방법은 스케줄링 시스템에 대응하는 토폴로지 맵을 획득하는 단계; 상기 토폴로지 맵을 전처리하여 상기 스케줄링 시스템에서 복수의 AGV들과 연관된 움직임 상태 정보 및 상기 토폴로지 맵에서 상기 복수의 AGV들에 의해 점유되는 복수의 노드들에 기초하여 상기 토폴로지 맵의 노드 정보를 수정함으로써 수정된 토폴로지 맵을 획득하는 단계; 상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하는 단계; 상기 수정된 토폴로지 맵의 노드 정보에 기초하여, 상기 출발 노드와 상기 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들을 결정하는 단계; 및 상기 복수의 총 비용들에 기초하여 상기 현재 AGV에 대한 경로 계획을 수행하는 단계를 포함한다.
본 개시의 제3 양상에서, 컴퓨터 판독 가능 저장한 매체가 제공될 수 있다. 상기 컴퓨터 판독 가능한 저장 매체는 적어도 하나의 프로세서에 의해 실행될 때, 방법이 수행될 수 있는 컴퓨터 프로그램들을 포함할 수 있다. 방법은 스케줄링 시스템에 대응하는 토폴로지 맵을 획득하는 단계; 상기 토폴로지 맵을 전처리하여 상기 스케줄링 시스템에서 복수의 AGV들과 연관된 움직임 상태 정보 및 상기 토폴로지 맵에서 상기 복수의 AGV들에 의해 점유되는 복수의 노드들에 기초하여 상기 토폴로지 맵의 노드 정보를 수정함으로써 수정된 토폴로지 맵을 획득하는 단계; 상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하는 단계; 상기 수정된 토폴로지 맵의 노드 정보에 기초하여, 상기 출발 노드와 상기 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들을 결정하는 단계; 및 상기 복수의 총 비용들에 기초하여 상기 현재 AGV에 대한 경로 계획을 수행하는 단계를 포함한다.
본 개시의 제4 양상에서, 경로 계획을 위한 시스템이 제공될 수 있다. 상기 경로 계획을 위한 시스템은 명령들의 세트를 포함하는 적어도 하나의 저장 디바이스 및 상기 적어도 하나의 저장 디바이스와 통신하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 명령들의 세트를 실행할 때, 상기 적어도 하나의 프로세서는 시스템으로 하여금: 타겟 차량의 출발 위치 및 목적지를 획득하고; 상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하고 - 상기 맵은 복수의 노드들 각각의 노드 정보를 포함함 -; 상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하고; 상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하게 하도록 구성될 수 있다.
본 개시의 제5 양상에서, 방법이 제공될 수 있다. 상기 방법은 적어도 하나의 프로세서, 적어도 하나의 저장 매체, 및 네트워크에 연결된 통신 플랫폼을 포함하는 컴퓨팅 디바이스에서 구현될 수 있다. 상기 방법은 타겟 차량의 출발 위치 및 목적지를 획득하는 단계; 상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하는 단계로서, 상기 맵은 복수의 노드들 각각의 노드 정보를 포함하는, 타겟 지역의 맵을 획득하는 단계; 상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하는 단계; 및 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계는 단계를 포함할 수 있다.
본 개시의 제6 양상에서, 경로 계획을 위한 시스템이 제공될 수 있다. 상기 시스템은 타겟 차량의 출발 위치 및 목적지를 획득하도록 구성된 위치 획득 모듈; 상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵를 획득하도록 구성된 맵 획득 모듈로서, 상기 맵은 복수의 노드들 각각의 노드 정보를 포함하는, 상기 맵 획득 모듈; 상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하도록 구성된 움직임 상태 획득 모듈; 및 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하도록 구성된 경로 결정 모듈을 포함할 수 있다.
본 개시의 제7 양상에서, 비 일시적 컴퓨터 판독 가능한 매체가 제공될 수 있다. 상기 비 일시적 컴퓨터 판독 가능한 매체는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서에 방법을 수행하도록 지시할 수 있는 실행 가능한 명령들을 포함할 수 있다. 상기 방법은 타겟 차량의 출발 위치 및 목적지를 획득하는 단계; 상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하는 단계로서, 상기 맵은 복수의 노드들 각각의 노드 정보를 포함하는, 타겟 지역의 맵을 획득하는 단계; 상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하는 단계; 및 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계는 단계를 포함할 수 있다.
부가적인 특징들이 이어지는 설명에서 부분적으로 제시될 것이며, 부분적으로 다음의 및 수반된 도면들의 검사 시 이 기술분야의 숙련자들에게 명백할 것이거나 또는 예들의 생성 또는 동작에 의해 학습될 수 있다. 본 개시의 특징들은 이하에서 논의되는 상세한 예들에 제시된 방법들, 수단들 및 조합들의 다양한 양상들의 실시 또는 사용에 의해 실현되고 달성될 수 있다.
본 개시는 전형적인 실시예들에 대하여 추가로 설명된다. 이들 전형적인 실시예들은 도면들을 참조하여 상세하게 설명된다. 도면들은 축척으로 되지 않았다. 이들 실시예들은 비-제한적인 도식적인 실시예들이며, 여기에서 유사한 참조 숫자들은 도면들의 여러 부분들 전체에 걸쳐 유사한 구조들을 나타낸다:
도 1은 본 개시의 몇몇 실시예들에 따른 전형적인 경로 계획 시스템을 도시하는 개략도이다.
도 2는 본 개시의 일부 실시예들에 따른 전형적인 컴퓨팅 디바이스의 전형적인 하드웨어 및/또는 소프트웨어 구성요소들을 도시하는 개략도이다.
도 3은 본 개시의 일부 실시예들에 따른 전형적인 모바일 디바이스의 전형적인 하드웨어 및/또는 소프트웨어 구성요소들을 도시하는 개략도이다.
도 4는 본 개시의 일부 실시예들에 따른 토폴로지 맵에 기초하는 자동 안내 차량(AGV)에 대한 경로 계획을 위한 전형적인 프로세스를 도시하는 흐름도이다.
도 5는 본 개시의 일부 실시예들에 따른 AGV에 대한 경로 계획을 위한 전형적인 프로세스를 도시하는 흐름도이다.
도 6은 본 개시의 몇몇 실시예들에 따른 전형적인 프로세싱 디바이스를 도시하는 블록도이다;
도 7은 본 개시의 일부 실시예들에 따른 타겟 차량의 타겟 경로를 결정하기 위한 전형적인 프로세스를 도시하는 흐름도이다.
도 8은 본 개시의 일부 실시예들에 따른 타겟 차량의 타겟 경로를 결정하기 위한 전형적인 프로세스를 도시하는 흐름도이다.
도 9는 본 개시의 일부 실시예들에 따른 태스크(task)를 할당하기 위한 전형적인 프로세스를 도시하는 흐름도이다.
도 10은 본 개시의 일부 실시예들에 따른 노드의 전형적인 노드 정보를 도시하는 개략도이다.
도 11은 본 개시의 일부 실시예들에 따른 정지된 차량과 연관된 전형적인 노드들 및 이동하는 정지된 차량과 연관된 전형적인 노드들을 도시하는 개략도이다.
다음의 상세한 설명에서, 다수의 특정 세부사항들이 관련된 개시의 철저한 이해를 제공하기 위해 예들로서 제시된다. 그러나, 본 개시는 이러한 세부사항들 없이 실시될 수 있다는 것이 이 기술분야의 숙련자들에게 명백해야 한다. 다른 인스턴스들에서, 잘 알려진 방법들, 절차들, 시스템들, 구성요소들, 및/또는 회로가, 본 개시의 양상들을 불필요하게 모호하게 하는 것을 피하기 위해, 세부사항 없이, 비교적 고-레벨로 설명되었다. 개시된 실시예들에 대한 다양한 수정들이 이 기술분야의 숙련자들에게 쉽게 명백할 것이며, 여기에서 정의된 일반적인 원리들은 본 개시의 사상 및 범위로부터 벗어나지 않고 다른 실시예들 및 애플리케이션들에 적용될 수 있다. 따라서, 본 개시는 도시된 실시예들에 제한되지 않으며, 청구항들과 일치하는 가장 넓은 범위를 부여받는다.
여기에서 사용된 용어는 단지 특정한 예시적인 실시예들을 설명할 목적을 위한 것이며 제한적이도록 의도되지 않는다. 여기에서 사용된 바와 같이, 단수형 형태들("a", "an", 및 "the")은, 문맥이 달리 명확하게 표시하지 않는다면, 또한 복수형 형태들을 포함하도록 의도될 수 있다. 용어들("포함하다", 및/또는 "포함하는", "포함시키다", 및/또는 "포함시키는")은, 본 명세서에서 사용될 때, 서술된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 구성요소들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 구성요소들, 및/또는 그것의 그룹들의 존재 도는 부가를 배제하지 않는다는 것이 또한 이해될 것이다.
여기에서 사용된 용어들("시스템", "유닛", "모듈", 및/또는 "블록")은 오름차순으로 상이한 레벨들의 상이한 구성요소들, 요소들, 부분들, 섹션들 또는 어셈블리들을 구별하기 위한 하나의 방법이라는 것이 이해될 것이다. 그러나, 용어들은 그것들이 동일한 목적을 달성한다면 또 다른 표현으로 대체될 수 있다.
본 개시에 설명된 모듈들(또는, 유닛들, 블록들, 유닛들)은 소프트웨어 및/또는 하드웨어 모듈들로서 구현될 수 있으며, 임의의 유형의 비 일시적 컴퓨터 판독 가능한 매체 또는 또 다른 저장 디바이스들에 저장될 수 있다. 몇몇 실시예들에서, 소프트웨어 모듈은 컴파일링되고 실행 가능한 프로그램으로 링크될 수 있다. 소프트웨어 모듈들은 다른 모듈들 또는 자체로로부터 호출 가능할 수 있으며, 및/또는 검출된 이벤트들 또는 인터럽트들에 응답하여 호출될 수 있다는 것이 이해될 것이다. 컴퓨팅 디바이스들 상에서의 실행을 위해 구성된 소프트웨어 모듈들은 컴팩트 디스크, 디지털 비디오 디스크, 플래시 드라이브, 자기 디스크, 또는 임의의 다른 유형의 매체와 같은, 컴퓨터-판독 가능한 매체상에서, 또는 디지털 다운로드로서(및 실행 이전에 설치, 압축 해제, 또는 복호화를 요구하는 압축된 또는 설치 가능한 포맷으로 원래 저장될 수 있는) 제공될 수 있다. 이러한 소프트웨어 코드는 컴퓨팅 디바이스에 의한 실행을 위해, 실행한 컴퓨팅 디바이스의 메모리 디바이스에, 부분적으로 또는 완전히 저장될 수 있다. 소프트웨어 명령들은, EPROM과 같은, 펌웨어에 포함될 수 있다. 하드웨어 모듈들(예를 들어, 회로들)은 게이트들 및 플립-플롭들과 같은, 연결된 또는 결합된 로직 유닛들에 포함될 수 있으며, 및/또는 프로그램 가능한 게이트 어레이들 또는 프로세서들과 같은, 프로그램 가능한 유닛들에 포함될 수 있다는 것이 또한 이해될 것이다. 여기에 설명된 모듈들 또는 컴퓨팅 디바이스 기능은 바람직하게는 하드웨어 모듈들로 구현되지만, 소프트웨어 모듈들이 될 수도 있다. 일반적으로, 여기에 설명된 모들들은 다른 모듈들과 결합되거나 또는 그들의 물리적 구성이나 스토리지에도 불구하고 유닛들로 분할될 수 있는 논리 모듈들로 지칭된다.
유닛, 엔진, 모듈, 또는 블록이 또 다른 유닛, 엔진, 모듈, 또는 블록 "상에", "~에 연결되어", 또는 "~에 결합되어" 있는 것으로 나타내어질 때, 그것은 다른 유닛, 엔진, 모듈, 또는 블록 상에 바로 있고, 연결되거나 또는 결합될 수 있거나, 또는 문맥이 달리 명확하게 표시하지 않는다면, 매개 유닛, 엔진, 모듈, 또는 블록이 존재할 수 있다. 여기에서 사용된 바와 같이, 용어("및/또는")는 연관된 나열된 아이템들 중 하나 이상의 임의의 및 모든 조합들을 포함한다.
본 개시의 이들 및 다른 특징들, 및 특성들, 뿐만 아니라 구조의 관련 요소들 및 부품들의 조합의 동작 및 기능들의 방법들 및 제조의 경제학들은, 모두가, 본 개시의 부분을 형성하는, 첨부된 도면들을 참조하여 다음의 설명의 고려 시 보다 명백해질 것이다. 그러나, 도면들은 단지 예시 및 설명의 목적을 위한 것이며, 본 개시의 범위를 제한하도록 의도되지 않는다는 것이 명확하게 이해될 것이다.
본 개시에서 사용된 흐름도들은 본 개시의 일부 실시예들에 따라 시스템들이 구현되는 동작들을 예시한다. 흐름도들의 동작들이 순서대로 구현되지 않을 수 있음을 분명히 이해해야 한다. 반대로, 동작들은 역순으로 또는 동시에 구현될 수도 있다. 또한, 하나 이상의 다른 동작들이 흐름도들에 추가될 수도 있다. 하나 이상의 동작들이 흐름도들에서 제거될 수도 있다.
본 개시의 일 양상은 맵(예를 들어, 토폴로지 맵)에 기초한 경로 계획을 위한 시스템들 및 방법들에 관한 것이다. 맵은 복수의 노드들 및 그에 대한 노드 정보, 예를 들어, 노드의 위치, 노드의 바코드, 노드의 좌표, 노드의 통행 가능성, 노드의 턴 능력(turn capability), 인접 노드들의 개수, 인접 노드들에 대한 노드의 연결성 등을 포함할 수 있다. 시스템들은 타겟 차량의 출발 위치 및 목적지를 결정할 수 있다. 시스템들은 또한 타겟 차량이 위치한 타겟 지역에 위치한 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득할 수 있다. 시스템들은 하나 이상의 차량들과 연관된 움직임 상태 정보에 기초하여 복수의 노드들 중 적어도 하나의 각각의 노드 정보의 적어도 일부를 수정함으로써 타겟 맵을 생성할 수 있다. 그런 다음 시스템들은 타겟 맵, 출발 위치, 및 목적지에 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다. 타겟 경로를 결정할 때, 시스템들은 출발 위치에 대응하는 출발 노드와 목적지에 대응하는 목적지 노드 사이에서 복수의 타겟 노드들과 연관된 복수의 비용들(costs)을 결정할 수 있다.
본 개시의 시스템들 및 방법들에 따르면, 다른 차량들과 연관된 움직임 상태 정보가 고려될 수 있어, 타겟 차량이 타겟 경로를 따라 이동할 때 다른 차량들과 충돌하지 않도록 할 수 있다. 또한, 타겟 경로를 결정할 때, 노드의 비용은 노드의 가중치 값, 노드의 부모 노드 비용, 부모 노드로부터 상기 노드까지의 거리 비용, 부모 노드로부터 상기 노드로의 턴 비용(turn cost) 등과 같은 다양한 파라미터들과 연관될 수 있으며, 이는 타겟 경로의 정확성과 합리성을 향상시킬 수 있다.
도 1은 본 개시의 몇몇 실시예들에 따른 전형적인 경로 계획 시스템을 도시하는 개략도이다. 일부 실시예들에서, 경로 계획 시스템(또는 "스케줄링 시스템"이라고도 함)(100)은 서버(110), 네트워크(120), 하나 이상의 차량들(130), 하나 이상의 단말 디바이스들(140), 및 저장 디바이스(150)를 포함할 수 있다. 일부 실시예들에서, 경로 계획 시스템(100)은 다양한 시나리오들, 예를 들어, AGV(Automated Guided Vehicle) 기반의 화물 운송, 미리 결정된 지역(예를 들어, 공원)의 관광, 자동 음식 배달 등에 적용될 수 있다.
서버(110)는 단일 서버 또는 서버 그룹일 수 있다. 서버 그룹은 중앙 집중화되거나 분산될 수 있다(예를 들어, 서버(110)는 분산 시스템일 수 있음). 일부 실시예들에서, 서버(110)는 로컬 또는 원격일 수 있다. 예를 들어, 서버(110)는 네트워크(120)를 통해 차량(들)(130), 단말 디바이스(들)(140) 및/또는 저장 디바이스(150)에 저장된 정보 및/또는 데이터에 액세스할 수 있다. 다른 예로서, 서버(110)는 차량(들)(130), 단말 디바이스(들)(140) 및/또는 저장 디바이스(150)에 직접 연결되어 저장된 정보 및/또는 데이터에 액세스할 수 있다. 일부 실시예들에서, 서버(110)는 클라우드 플랫폼 또는 온보드 컴퓨터 상에서 구현될 수 있다. 단지 예로서, 클라우드 플랫폼은 사설 클라우드, 공공 클라우드, 하이브리드 클라우드, 커뮤니티 클라우드, 분산형 클라우드, 클라우드-간, 다중-클라우드 등, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 서버(110)는 본 개시의 도 2에 예시된 하나 이상의 구성요소들을 포함하는 컴퓨팅 디바이스(200) 상에서 구현될 수 있다.
일부 실시예들에서, 서버(110)는 프로세싱 디바이스(112)를 포함할 수 있다. 프로세싱 디바이스(112)는 본 개시에서 설명된 하나 이상의 기능들을 수행하기 위해 경로 계획 및/또는 태스크 할당과 연관된 정보 및/또는 데이터를 처리할 수 있다. 예를 들어, 프로세싱 디바이스(112)는 타겟 지역에서 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득할 수 있다. 프로세싱 디바이스(112)는 또한 타겟 차량의 출발 위치, 타겟 차량의 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 타겟 지역의 맵에 적어도 부분적으로 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 하나 이상의 프로세싱 엔진들(예를 들어, 단일 코어 프로세싱 엔진(들) 또는 다중 코어 프로세서(들))을 포함할 수 있다. 단지 예로서, 프로세싱 디바이스(112)는 중앙 처리 장치(CPU), 주문형 집적 회로(ASIC), 주문형 명령 세트 프로세서(ASIP), 그래픽 프로세싱 유닛(GPU), 물리 프로세싱 유닛(PPU), 디지털 신호 프로세서(DSP), 필드-프로그램 가능 게이트 어레이(FPGA: Field-Programmable Gate Array), 프로그램 가능 로직 디바이스(PLD: Programmable Logic Device), 컨트롤러, 마이크로 컨트롤러 유닛, 감소된 명령 세트 컴퓨터(RISC: Reduced Instruction-Set Computer) , 마이크로프로세서 등, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 서버(110)는 경로 계획 시스템(100)의 하나 이상의 구성요소들(예를 들어, 차량(들)(130), 단말 디바이스(들)(140), 저장 디바이스(150))과 통신하기 위해 네트워크(120)에 연결될 수 있다. 일부 실시예들에서, 서버(110)는 경로 계획 시스템(100)의 하나 이상의 구성요소들(예를 들어, 차량(들)(130), 단말 디바이스(들)(140), 저장 디바이스(150))에 직접 연결되거나 또는 이들과 통신할 수 있다.
네트워크(120)는 정보 및/또는 데이터의 교환을 용이하게 할 수 있다. 일부 실시예들에서, 경로 계획 시스템(100)의 하나 이상의 구성요소들(예를 들어, 서버(110), 차량(들)(130), 단말 디바이스(들)(140), 저장 디바이스(150))은 네트워크(120)를 통해 경로 계획 시스템(100)의 다른 구성요소(들)에 정보 및/또는 데이터를 전송할 수 있다. 예를 들어, 서버(110)는 네트워크(120)를 통해 저장 디바이스(150)로부터 타겟 지역의 맵를 획득할 수 있다. 일부 실시예들에서, 네트워크(120)는 임의의 유형의 유선 또는 무선 네트워크, 또는 이들의 조합일 수 있다. 단지 예로서, 네트워크(120)는 케이블 네트워크, 와이어라인 네트워크, 광섬유 네트워크, 전기통신 네트워크, 인트라넷, 인터넷, 근거리 네트워크(LAN: Local Area Network), 광역 네트워크(WAN: Wide Area Network), 무선 근거리 네트워크(WLAN: Wireless Local Area Network), 대도시 영역 네트워크(MAN: Metropolitan Area Network), 광역 네트워크(WAN), 공중 전화 스위칭 네트워크(PSTN: Public Telephone Switched Network), 블루투스 네트워크, 지그비(ZigBee) 네트워크, 근거리장 통신(NFC: Near Field Communication) 네트워크 등, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 네트워크(120)는 하나 이상의 네트워크 액세스 포인트들을 포함할 수 있다. 예를 들어, 네트워크(120)는 유선 또는 무선 네트워크 액세스 포인트들(예를 들어, 포인트 120-1, 포인트 120-2)을 포함할 수 있으며, 이를 통해 경로 계획 시스템(100)의 하나 이상의 구성요소들이 네트워크(120)에 연결되어 데이터 및/또는 정보를 교환할 수 있다.
차량(들)(130)은 복수의 차량들(130-1, 130-2, …, 130-n)을 포함할 수 있다. 차량(들)(130)은 자동 안내 차량(AGV), 택시, 자가용, 히치(hitch), 버스, 기차, 초고속 열차, 고속 철도, 지하철, 선박, 항공기, 우주선, 열기구, 무인 차량(예를 들어, 무인 비행기, 무인 자동차) 등, 또는 이들의 임의의 조합을 포함할 수 있다. 차량(들)(130)은 네트워크(120)를 통해 서버(110), 단말 디바이스(들)(140) 및/또는 저장 디바이스(150)와 통신할 수 있다. 일부 실시예들에서, 차량(들)(130)은 서버(110)에 의해 할당된 태스크(예를 들어, 상품 배송)를 수신하고, 서버(110)에 의해 결정된 경로를 따라 태스크를 수행할 수 있다. 일부 실시예들에서, 차량(들)(130)은 네트워크(120)를 통해 차량(들)(130)의 움직임 상태 정보를 서버(110)로 전송할 수 있고, 서버(110)는 차량(들)의 경로를 결정할 때 움직임 상태 정보를 처리할 수 있다.
단말 디바이스(140)는 네트워크(120)를 통해 서버(110), 차량(들)(130), 및/또는 저장 디바이스(150)로부터 정보 및/또는 데이터를 수신하도록 구성될 수 있다. 예를 들어, 단말 디바이스(140)는 네트워크(120)를 통해 태스크를 수행하려 하거나 수행하고 있는 서버(110) 및/또는 차량으로부터 태스크(예를 들어, 상품 배송)와 연관된 정보(예를 들어, 경로, 출발 위치, 목적지)를 수신할 수 있다. 일부 실시예들에서, 단말 디바이스(140)는 사용자 인터페이스를 제공할 수 있으며, 이를 통해 사용자는 경로 계획 시스템(100)에 대한 정보 및/또는 입력 데이터 및/또는 명령들을 볼 수 있다. 예를 들어, 사용자는 사용자 인터페이스를 통해 태스크와 연관된 정보(예를 들어, 경로, 출발 위치, 목적지)를 볼 수 있다. 다른 예로서, 단말 디바이스(140)는 사용자 인터페이스를 통해 명령을 입력하고 네트워크(120)를 통해 차량(들)(130) 및/또는 서버(110)로 명령을 전송할 수 있다. 명령은 태스크를 실행하기 위한 명령, 태스크 실행을 중지하기 위한 명령, 태스크와 연관된 파라미터를 설정하거나 수정하기 위한 명령, 차량(들)(130) 중 하나를 충전하기 위한 명령, 차량(들)(130) 중 하나를 유지하기 위한 명령, 차량(들)(130) 중 하나에 태스크를 할당하기 위한 명령 등을 포함할 수 있다.
일부 실시예들에서, 단말 디바이스(들)(140)는 모바일 디바이스(140-1), 태블릿 컴퓨터(140-2), 랩톱 컴퓨터(140-3), 차량(130)에 내장된 디바이스(140-4), 웨어러블 디바이스(140-5) 등, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 모바일 디바이스(140-1)는 스마트 홈 디바이스, 웨어러블 디바이스, 스마트 모바일 디바이스, 가상 현실 디바이스, 증강 현실 디바이스 등, 또는 이들의 임의의 조합을 포함할 수 있다. 스마트 홈 디바이스는 스마트 조명 디바이스, 지능형 전기 장치의 제어 디바이스, 스마트 모니터링 디바이스, 스마트 텔레비전, 스마트 비디오 카메라, 인터폰 등, 또는 이들의 임의의 조합을 포함할 수 있다. 웨어러블 디바이스는 스마트 팔찌, 스마트 풋기어(smart footgear), 스마트 글래스, 스마트 헬멧, 스마트 워치, 스마트 의류, 스마트 백팩, 스마트 액세서리 등, 또는 이들의 임의의 조합을 포함할 수 있다. 스마트 모바일 디바이스는 스마트폰, PDA(Personal Digital Assistant), 게임 디바이스, 내비게이션 디바이스, POS(Point of Sale) 디바이스 등, 또는 이들의 임의의 조합을 포함할 수 있다. 가상 현실 디바이스 및/또는 증강 현실 디바이스는 가상 현실 헬멧, 가상 현실 유리, 가상 현실 패치, 증강 현실 헬멧, 증강 현실 유리, 증강 현실 패치 등, 또는 이들의 임의의 조합을 포함할 수 있다. 예를 들어, 가상 현실 디바이스 및/또는 증강 현실 디바이스는 GoogleTM Glass, Oculus Rift, HoloLens, Gear VR 등을 포함할 수 있다. 일부 실시예들에서, 내장된 디바이스(140-4)는 온보드 컴퓨터, 온보드 텔레비전 등을 포함할 수 있다.
일부 실시예들에서, 단말 디바이스(140)는 텍스트, 이미지, 오디오, 비디오, 그래프, 애니메이션 등, 또는 이들의 임의의 조합과 같이 사람이 판독할 수 있는 형태로 정보를 표시할 수 있는 디스플레이를 포함할 수 있다. 단말 디바이스(140)의 디스플레이는 CRT(Cathode Ray Tube) 디스플레이, LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, PDP(Plasma Display Panel), 3차원(3D) 디스플레이를 등, 또는 이들의 조합을 포함할 수 있다. 일부 실시예들에서, 단말 디바이스(140)는 네트워크(120)를 통해 경로 계획 시스템(100)의 하나 이상의 구성요소들(예를 들어, 서버(110), 차량(들)(130), 저장 디바이스(150))에 연결될 수 있다. 일부 실시예들에서, 서버(110)는 단말 디바이스(들)(140)에 통합될 수 있다.
저장 디바이스(150)는 데이터 및/또는 명령들을 저장할 수 있다. 일부 실시예들에서, 저장 디바이스(150)는 서버(110), 차량(들)(130), 단말 디바이스(들)(140), 외부 저장 디바이스 등으로부터 획득된 데이터를 저장할 수 있다. 예를 들어, 저장 디바이스(150)는 타겟 지역의 맵를 저장할 수 있다. 다른 예로서, 저장 디바이스(150)는 타겟 차량의 타겟 경로를 저장할 수 있다. 일부 실시예들에서, 저장 디바이스(150)는 서버(110)가 본 개시에서 설명된 전형적인 방법들을 수행하기 위해 실행하거나 또는 사용할 수 있는 데이터 및/또는 명령들을 저장할 수 있다. 예를 들어, 저장 디바이스(150)는 경로 계획 시스템(100)이 타겟 지역에서 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하기 위해 실행하거나 사용할 수 있는 명령들을 저장할 수 있다. 다른 예로서, 저장 디바이스(150)는 경로 계획 시스템(100)이 타겟 차량의 출발 위치, 타겟 차량의 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 맵에 적어도 부분적으로 기초하여 타겟 차량의 타겟 경로를 결정하기 위해 실행하거나 사용할 수 있는 명령들을 저장할 수 있다.
일부 실시예들에서, 저장 디바이스(150)는 대용량 저장소, 착탈 가능한 저장소, 휘발성 판독-및-기록 메모리, 판독-전용 메모리(ROM) 등, 또는 이들의 임의의 조합을 포함할 수 있다. 전형적인 대용량 저장소는 자기 디스크, 광학 디스크, 고체-상태 드라이브 등을 포함할 수 있다. 전형적인 착탈 가능한 저장소는 플래시 드라이브, 플로피 디스크, 광학 디스크, 메모리 카드, 집 디스크, 자기 테이프 등을 포함할 수 있다. 전형적인 휘발성 판독-및-기록 메모리는 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 전형적인 RAM은 동적 RAM(DRAM), 이중 데이터 레이트 동기식 동적 RAM(DDR SDRAM), 정적 RAM(SRAM), 사이리스터 RAM(T-RAM), 및 제로-커패시터 RAM(Z-RAM) 등을 포함할 수 있다. 전형적인 ROM은 마스크 ROM(MROM), 프로그램 가능한 ROM(PROM), 삭제 가능한 프로그램 가능 ROM(EPROM), 전기적으로 삭제 가능한 프로그램 가능 ROM(EEPROM), 컴팩트 디스크 ROM(CD-ROM), 및 디지털 다목적 디스크 ROM 등을 포함할 수 있다. 일부 실시예들에서, 저장 디바이스(150)는 클라우드 플랫폼 상에서 구현될 수 있다. 단지 예로서, 클라우드 플랫폼은 사설 클라우드, 공공 클라우드, 하이브리드 클라우드, 커뮤니티 클라우드, 분산형 클라우드, 클라우드-간, 다중-클라우드 등, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 저장 디바이스(150)는 경로 계획 시스템(100)의 하나 이상의 구성요소들(예를 들어, 서버(110), 차량(들)(130), 단말 디바이스(들)(140))과 통신하기 위해 네트워크(120)에 연결될 수 있다. 경로 계획 시스템(100)의 하나 이상의 구성요소들은 네트워크(120)를 통해 저장 디바이스(150)에 저장된 데이터 또는 명령들에 액세스할 수 있다. 일부 실시예들에서, 저장 디바이스(150)는 경로 계획 시스템(100)의 하나 이상의 구성요소들(서버(110), 차량(들)(130), 단말 디바이스(들)(140))에 직접 연결되거나 통신할 수 있다. 일부 실시예들에서, 저장 디바이스(150)는 서버(110)의 일부일 수 있다. 예를 들어, 저장 디바이스(150)는 서버(110)에 통합될 수 있다.
경로 계획 시스템(100)은 단지 예시의 목적으로 제공되고, 본 개시의 범위를 제한하도록 의도되지 않음에 유의해야 한다. 당 기술분야에서의 통상의 기술자들의 경우, 다수의 변형들 및 수정들이 본 개시의 교시들 하에서 이루어질 수 있다. 그러나, 이들 변형들 및 수정들은 본 개시의 범위로부터 벗어나지 않는다.
도 2는 본 개시의 일부 실시예들에 따른 전형적인 컴퓨팅 디바이스의 전형적인 하드웨어 및/또는 소프트웨어 구성요소들을 도시하는 개략도이다. 일부 실시예들에서, 서버(110)는 컴퓨팅 디바이스(200) 상에서 구현될 수 있다. 예를 들어, 프로세싱 디바이스(112)는 컴퓨팅 디바이스(200) 상에서 구현될 수 있고 본 개시에 개시된 프로세싱 디바이스(112)의 기능들을 수행하도록 구성될 수 있다.
컴퓨팅 디바이스(200)는 여기에 설명된 경로 계획 시스템(100)의 임의의 구성요소들을 구현하는 데 사용될 수 있다. 예를 들어, 프로세싱 디바이스(112)는 하드웨어, 소프트웨어 프로그램, 펌웨어, 또는 이들의 조합을 통해 컴퓨팅 디바이스(200) 상에서 구현될 수 있다. 편의를 위해 단지 하나의 이러한 컴퓨터가 도시되어 있지만, 여기에 설명된 경로 계획 및/또는 스케줄링과 연관된 컴퓨터 기능들은 프로세싱 부하를 분산하기 위해 다수의 유사한 플랫폼들 상에서 분산 방식으로 구현될 수 있다.
예를 들어, 컴퓨팅 디바이스(200)는 데이터 통신을 용이하게 하기 위해 그에 연결된 네트워크에 연결되고 네트워크로부터 연결된 COM 포트들(250)을 포함할 수 있다. 컴퓨팅 디바이스(200)는 또한 프로그램 명령들을 실행하기 위한 하나 이상의 프로세서들(예를 들어, 논리 회로들) 형태로 프로세서(예를 들어, 프로세서(220))를 포함할 수 있다. 예를 들어, 프로세서(220)는 내부에 인터페이스 회로들 및 프로세싱 회로들을 포함할 수 있다. 인터페이스 회로들은 버스(210)로부터 전자 신호들을 수신하도록 구성될 수 있으며, 여기서 전자 신호들은 프로세싱 회로들이 처리하도록 구조화된 데이터 및/또는 명령들을 인코딩한다. 프로세싱 회로들은 논리 계산을 수행한 다음 결론, 결과, 및/또는 전자 신호들로 인코딩된 명령을 결정할 수 있다. 그런 다음 인터페이스 회로들은 버스(210)를 통해 프로세싱 회로로부터 전자 신호들을 보낼 수 있다.
컴퓨팅 디바이스(200)는 또한, 컴퓨팅 디바이스(200)에 의해 처리 및/또는 전송될 다양한 데이터 파일들(예를 들어, 프로그램 명령들)을 저장하도록 구성된 하나 이상의 저장소들을 포함할 수 있다. 일부 실시예들에서, 하나 이상의 저장소들은 고속 랜덤 액세스 메모리(도시되지 않음), 비휘발성 메모리(예를 들어, 자기 저장 디바이스, 플래시 메모리, 또는 다른 비휘발성 고체 상태 메모리)(도시되지 않음), 디스크(270), 판독 전용 메모리(ROM)(230), 또는 랜덤 액세스 메모리(RAM)(240) 등, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 하나 이상의 저장소들은 프로세서(220)에 대응하는 원격 저장소를 더 포함할 수 있다. 원격 저장소는 네트워크(120)를 통해 컴퓨팅 디바이스(200)에 연결될 수 있다. 컴퓨팅 디바이스(200)는 또한 프로세서(220)에 의해 실행될 하나 이상의 저장소들(예를 들어, ROM(230), RAM(240), 및/또는 다른 유형의 비 일시적 저장 매체)에 저장된 프로그램 명령들을 포함할 수 있다. 본 개시의 방법들 및/또는 프로세스들은 프로그램 명령들로 구현될 수 있다. 컴퓨팅 디바이스(200)는 또한 컴퓨팅 디바이스(200)와 다른 구성요소들 사이의 입력/출력을 지원하는 I/O 구성요소(260)를 포함할 수 있다. 컴퓨팅 디바이스(200)는 또한 네트워크 통신을 통해 프로그래밍 및 데이터를 수신할 수 있다.
단지 설명을 위해, 도 2에는 하나의 프로세서만이 도시되어 있다. 다중 프로세서들(220)이 또한 구현되며; 따라서, 본 개시에서 설명된 바와 같이 하나의 프로세서(220)에 의해 수행되는 동작들 및/또는 방법 단계들은 또한 다중 프로세서들에 의해 공동으로 또는 별개로 수행될 수 있다. 예를 들어, 본 개시에서 컴퓨팅 디바이스(200)의 프로세서(220)가 동작 A 및 동작 B 양쪽 모두를 실행한다면, 동작 A 및 동작 B는 또한 컴퓨팅 디바이스(200)에서 두 개의 상이한 프로세서들(220)에 의해 공동으로 또는 별개로 수행될 수 있다는 것이 이해되어야 한다(예를 들어, 제 1 프로세서는 동작 A를 실행하고 제 2 프로세서는 동작 B를 실행하거나, 또는 제 1 및 제 2 프로세서들이 동작들 A 및 B를 공동으로 실행한다).
상기 설명은 단지 예시의 목적들을 위해 제공되며, 본 개시의 범위를 제한하도록 의도되지 않는다는 것이 주의되어야 한다. 이 기술분야에서의 통상의 기술자들에 대해, 다수의 변형들 및 수정들이 본 개시의 교시들 하에서 이루어질 수 있다. 그러나, 이들 변형들 및 수정들은 본 개시의 범위로부터 벗어나지 않는다.
도 3은 본 개시의 일부 실시예들에 따른 전형적인 모바일 디바이스의 전형적인 하드웨어 및/또는 소프트웨어 구성요소들을 도시하는 개략도이다. 일부 실시예들에서, 서버(110)(예를 들어, 프로세싱 디바이스(112)) 또는 단말 디바이스(들)(140))는 모바일 디바이스(300) 상에서 구현될 수 있다.
도 3에 예시된 바와 같이, 모바일 디바이스(300)는 통신 플랫폼(310), 디스플레이(320), 그래픽스 프로세싱 유닛(GPU)(330), 중앙 처리 유닛(CPU)(340), I/O(350), 메모리(360), 모바일 운영 시스템(OS)(370), 및 저장소(390)를 포함할 수 있다. 일부 실시예들에서, 이에 제한되지 않지만 시스템 버스 또는 컨트롤러(도시되지 않음)를 포함한, 임의의 다른 적절한 구성요소들이 또한 모바일 디바이스(300) 내에 있을 수 있다.
일부 실시예들에서, 모바일 운영 시스템(370)(예를 들어, iOS™, 안드로이드™, Windows Phone™ 등) 및 하나 이상의 애플리케이션들(380)은 CPU(340)에 의해 실행되도록 저장소(390)로부터 메모리(360)로 로딩될 수 있다. 애플리케이션들(380)은 경로 계획 시스템(100)으로부터 행동 인식 또는 다른 정보에 관한 정보를 수신하고 렌더링하기 위한 브라우저 또는 임의의 다른 적절한 모바일 앱들을 포함할 수 있다. 정보 스트림과의 사용자 상호 작용들은 I/O(350)를 통해 달성되며 네트워크(120)를 통해 프로세싱 디바이스(112) 및/또는 경로 계획 시스템(100)의 다른 구성요소들에 제공될 수 있다.
도 4는 본 개시의 일부 실시예들에 따른 토폴로지 맵에 기초하는 자동 안내 차량(AGV)에 대한 경로 계획을 위한 전형적인 프로세스를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(400)는 저장 ROM(230) 또는 RAM(240)에 저장된 명령들의 세트(예를 들어, 애플리케이션)로서 구현될 수 있다. 도 6의 프로세서(220) 및/또는 모듈들은 명령들의 세트를 실행할 수 있고, 명령들을 실행할 때 프로세서(220) 및/또는 모듈들은 프로세스(400)를 수행하도록 구성될 수 있다. 이하에서 제공되는 예시된 프로세스의 동작들은 예시적인 것으로 의도된 것이다. 몇몇 실시예들에서, 프로세스(400)는 설명되지 않은 하나 이상의 부가적인 동작들을 갖고, 및/또는 논의된 동작들 중 하나 이상 없이 성취될 수 있다. 부가적으로, 도 4에 예시되고 이하에서 설명되는 바와 같이 프로세스의 동작들의 순서는 제한적이도록 의도되지 않는다.
401에서, 스케줄링 시스템(예를 들어, 경로 계획 시스템(100))에 대응하는 토폴로지 맵이 획득될 수 있다. 토폴로지 맵은 프로세싱 디바이스(112)(예를 들어, 도 6에 도시된 위치 획득 모듈(610) 또는 맵 획득 모듈(620))에 의해 획득될 수 있다. 본 명세서에서 토폴로지 맵은 환경(예를 들어, 실내 환경)이 복수의 노드들 및 복수의 노드들 간의 연결 관계들로 표현될 수 있는 맵일 수 있다. 일부 실시예들에서, 토폴로지 맵은 복수의 노드들 각각의 위치 및 그에 대한 노드 정보를 포함할 수 있다.
402에서, 토폴로지 맵은 전처리될 수 있고, 수정된 토폴로지 맵이 스케줄링 시스템에서 복수의 AGV들과 연관된 움직임 상태 정보 및 토폴로지 맵에서 복수의 AGV들에 의해 점유되는 복수의 노드들에 기초하여 토폴로지 맵의 노드 정보를 수정함으로써 획득될 수 있다. 복수의 AGV들과 연관된 움직임 상태 정보는 프로세싱 디바이스(112)(예를 들어, 도 6에 도시된 움직임 상태 획득 모듈(630))에 의해 획득될 수 있고, 토폴로지 맵은 프로세싱 디바이스(112)(예를 들어, 도 6에 도시된 경로 결정 모듈(640))에 의해 전처리될 수 있다.
403에서, 수정된 토폴로지 맵에서 현재 AGV의 출발 노드 및 목적지 노드가 결정될 수 있다. 출발 노드와 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들(또한 간결함을 위해 "비용"이라 지칭함)은 수정된 토폴로지 맵의 노드 정보에 기초하여 결정될 수 있다. 복수의 총 비용들에 기초하여 현재 AGV에 대한 경로 계획이 수행될 수 있다. 동작(403)은 프로세싱 디바이스(112)(예를 들어, 도 6에 도시된 경로 결정 모듈(640))에 의해 수행될 수 있다.
일부 실시예들에서, 토폴로지 맵은 스케줄링 시스템에 저장된 글로벌 환경 토폴로지 맵 또는 로컬 환경 토폴로지 맵을 포함할 수 있다. 예를 들어, 글로벌 환경 토폴로지 맵은 전체 실내 환경이 반영될 수 있는 맵으로서, 전체 실내 환경을 나타내는 노드 정보를 포함할 수 있는 맵일 수 있으며; 로컬 환경 토폴로지 맵은 출발 노드에서 목적지 노드까지의 특정 지역을 포함하는 맵일 수 있다. 일부 실시예들에서, 토폴로지 맵은 또한 토폴로지 맵들을 저장하는 다른 저장 디바이스로부터 스케줄링 시스템에 의해 획득될 수 있다.
일부 실시예들에서, 토폴로지 맵에서 복수의 노드들 각각에 대해, 노드의 위치는 일련 번호 또는 바코드(예를 들어, 1차원 바코드, 2차원 바코드(예를 들어, 퀵 응답(QR) 코드)에 의해 나타낼 수 있다. 노드의 노드 정보는 노드의 가중치 값, 노드의 통행 가능성(예를 들어, 차량이 노드를 통과할 수 있는지 여부), 노드의 턴 능력(예를 들어, 차량이 노드에서 회전시킬 수 있는지 여부), 인접 노드들의 개수(예를 들어, 4, 8), 인접 노드들에 대한 노드의 연결성 등, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 노드의 가중치 값이 높을수록 노드의 총 비용이 더 커질 수 있고, 따라서 차량이 노드를 우회할 확률이 더 높을 수 있다.
일부 실시예들에서, 스케줄링 시스템은 복수의 AGV들에 의해 점유되는 초기 노드들(예를 들어, 출발 노드들)의 위치들 및 복수의 AGV들에 의해 실행되는 태스크들의 목적지 노드들의 위치들을 획득할 수 있다. 스케줄링 시스템은 또한 복수의 AGV들과 연관된 움직임 상태 정보를 획득할 수 있다. 일부 실시예들에서, 복수의 AGV들은 하나 이상의 정지된 AGV들 및 하나 이상의 이동하는 AGV들을 포함할 수 있다. 따라서, 출발 노드로부터 다른 AGV들을 우회하는 목적지 노드까지의 최단 경로가 수정된 토폴로지 맵에 기초하여 현재 AGV에 대해 계획될 수 있다.
일부 실시예들에서, 스케줄링 시스템은 또한 복수의 AGV들의 상태들을 획득할 수 있다. 특정 AGV의 경우, 상태는 유휴 상태(또한 "스케줄 가능 상태"라고 지칭됨) 및 비 유휴 상태(또한 "스케줄 가능하지 않은 상태"라고 지칭됨)를 포함할 수 있다. 유휴 상태는 특정 AGV에 의해 실행될(또는 실행 중인) 태스크가 없음을 지칭할 수 있으며; 비 유휴 상태는 특정 AGV에 의해 실행될(또는 실행 중인) 태스크가 있음을 지칭할 수 있다. 추가적으로 또는 대안적으로, 비 유휴 상태는 또한 특정 AGV가 충전 상태(in charge), 관리 유지 상태(in maintenance) 등에 있을 수 있음을 지칭할 수 있다. 일부 실시예들에서, 복수의 AGV들의 상태들에 따라, 태스크가 유휴 상태에 있는 AGV에 할당될 수 있다. 본 명세서에서 사용되는 바와 같이, 태스크는 지정된 AGV에 대응하는 지정된 태스크 및 지정되지 않은 AGV(예를 들어, 유휴 상태의 임의의 AGV)에 대응하는 지정되지 않은 태스크를 포함할 수 있다.
상이한 태스크들에 대응하는 상이한 AGV들에 따라, 다음 두 가지 상황들에서 태스크가 AGV에 할당될 수 있다.
상황 1: 지정된 태스크에 대응하는 지정된 AGV가 수정된 토폴로지 맵에서 유휴 상태인 경우 지정된 태스크는 지정된 AGV에 할당될 수 있다; 지정된 AGV가 비 유휴 상태인 경우 지정된 태스크는 AGV가 유휴 상태가 된 후 지정된 AGV에 할당될 수 있다.
상황 2: 각각의 미지정된 태스크 각각에 대해, 미지정된 태스크의 목적지 노드에 가장 가까운 유휴 상태의 미지정된 AGV가 수정된 토폴로지 맵에서 결정될 수 있으며, 미지정된 태스크가 미지정된 AGV에 할당될 수 있다.
일부 실시예들에서, (수정된) 토폴로지 맵은 또한 (수정된) 토폴로지 맵의 노드 정보의 변경들에 기초하여 업데이트될 수 있다. 일부 실시예들에서, 노드 정보의 일부가 업데이트될 수 있다. 추가적으로 또는 대안적으로, 모든 노드 정보가 업데이트될 수 있다. 예를 들어, 노드의 가중치 값, 노드의 통행 가능성, 및/또는 노드의 턴 능력이 업데이트될 수 있다. (수정된) 토폴로지 맵을 업데이트하는 방식은 사용자에 의해 정의될 수 있다. 예를 들어, (수정된) 토폴로지 맵은 일정 시간 간격(예를 들어, 1분당, 2분당, 5분당, 월간, 2개월당)으로 업데이트될 수 있다.
일부 실시예들에서, 토폴로지 맵의 전처리는 제1 전처리 및 제2 전처리를 포함할 수 있다. 일부 실시예들에서, 토폴로지 맵은 제1 전처리 또는 제2 전처리를 별도로 수행함으로써 전처리될 수 있다. 일부 실시예들에서, 토폴로지 맵은 제1 전처리 및 제2 전처리를 일괄적으로 수행함으로써 전처리될 수 있다. 예시의 목적으로, 토폴로지 맵이 제1 전처리를 먼저 수행한 후 제2 전처리를 수행함으로써 전처리되는 상황이 예로서 설명된다.
제1 전처리는 하나 이상의 정지된 AGV들에 대응하는 노드 정보, 예를 들어 노드의 가중치 값, 노드의 통행 가능성, 노드의 턴 능력 등을 수정함으로써 토폴로지 맵 상에서 수행될 수 있다. 또한, 제1 경로 계획이 제1 수정된 토폴로지 맵에 기초하여 현재 AGV에 대해 수행될 수 있다. 제1 경로 계획의 제1 경로가 하나 이상의 이동하는 AGV들에 대응하는 하나 이상의 경로들의 적어도 일부와 적어도 부분적으로 중첩되는 것으로 검출되는 경우, 현재 AGV가 하나 이상의 이동하는 AGV들 중 적어도 하나와 충돌하는 것으로 결정될 수 있다. 그런 다음, 토폴로지 맵에 대해 2차 전처리가 수행될 수 있다. 또한, 현재 AGV가 위치한 노드를 제2 출발 노드로 한 제2 수정된 토폴로지 맵에 기초하여 제2 경로 계획이 현재 AGV에 대해 수행될 수 있다.
일부 실시예들에서, 스케줄링 시스템은 (수정된) 토폴로지 맵의 노드들에 기초하여 현재 AGV의 출발 노드를 결정할 수 있다. 현재 AGV가 노드 상에 위치하지 않는 경우, 현재 AGV에 가장 가까운 노드가 경로 계획을 위한 현재 AGV의 출발 노드로서 지정될 수 있다. 가장 가까운 노드가 다른 AGV들에 의해 점유된 경우, 현재 AGV에 대해 다음으로 가장 가까운 노드가 경로 계획을 위한 출발 노드로서 선택될 수 있다.
일부 실시예들에서, 수정된 토폴로지 맵의 복수의 노드들의 노드 정보(예를 들어, 노드의 가중치 값, 노드의 통행 가능성, 노드의 턴 능력, 인접 노드들의 개수, 인접 노드들에 대한 노드의 연결성)가 결정될 수 있다. 또한, 수정된 토폴로지 맵에서 현재 AGV가 이동할 수 있는 복수의 노드들이 노드 정보에 기초하여 결정될 수 있고, 복수의 노드들과 연관된 복수의 총 비용들이 결정될 수 있다. 그 다음, 복수의 총 비용들에 기초하여 현재 AGV에 대한 경로 계획이 수행될 수 있다.
일부 실시예들에서, 출발 노드와 목적지 노드 사이의 노드와 연관된 총 비용을 결정하기 위한 프로세스는 복수의 사이클들을 포함하는 반복 프로세스일 수 있다. 각각의 사이클마다, 업데이트된 현재 노드가 결정될 수 있고, 업데이트된 현재 노드의 적어도 하나의 다음 노드가 결정될 수 있다. 적어도 하나의 다음 노드 중 하나(예를 들어, 최소 총 비용을 갖는 다음 노드)는 적어도 하나의 다음 노드와 연관된 적어도 하나의 총 비용에 기초하여 다음 업데이트된 현재 노드로서 결정될 수 있다.
본 개시의 실시예들에 따르면, 스케줄링 시스템에 의해 획득되는 토폴로지 맵은 실제 상황들에서 토폴로지 맵의 노드 정보의 변화를 반영할 수 있는 업데이트된 토폴로지 맵이다. 또한, 토폴로지 맵 상의 전처리는 계획된 경로의 노드들이 도달 가능하고 계획된 경로가 실제 상황들과 일치하는 것을 보장할 수 있다. 토폴로지 맵에서 수행된 제1 전처리는 제1 경로 계획의 제1 경로를 따라 이동하는 현재 AGV가 다른 정지된 AGV들을 피할 수 있도록 보장할 수 있으며; 토폴로지 맵에서 수행된 제2 전처리는 제2 계획의 제2 경로를 따라 이동하는 현재 AGV가 하나 이상의 이동하는 AGV들을 피할 수 있도록 보장할 수 있다. 따라서, 본 개시의 실시예들에 따르면, 현재 AGV가 다른 AGV들과 충돌할 수 있는 상황을 회피될 수 있다.
일부 실시예들에서, 토폴로지 맵에 대한 전처리는 제1 전처리 및/또는 제2 전처리를 포함할 수 있다.
토폴로지 맵에서 수행되는 제1 전처리에 따르면, 토폴로지 맵에서 현재 AGV와는 다른 하나 이상의 정지된 AGV들 각각에 대해, 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보가 수정될 수 있다. 또한, 수정된 노드 정보에 기초하여 제1 수정된 토폴로지 맵이 생성될 수 있다.
토폴로지 맵에서 수행되는 제2 전처리에 따르면, 토폴로지 맵에서 현재 AGV와는 다른 하나 이상의 정지된 AGV들 각각에 대해, 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보가 수정될 수 있으며; 토폴로지 맵에서 하나 이상의 이동하는 AGV들 각각에 대해, 이동하는 AGV가 통과하지 않은 계획된 경로의 하나 이상의 노드들의 노드 정보가 수정될 수 있다. 또한, 수정된 노드 정보에 기초하여 제2 수정된 토폴로지 맵이 생성될 수 있다.
일부 실시예들에서, 토폴로지 맵에서 현재 AGV와는 다른 하나 이상의 정지된 AGV들 각각에 대해, 정지된 AGV를 중심으로 하는 미리 설정된 지역 내의 하나 이상의 노드들은 지정된 크기만큼 정지된 AGV를 확장함으로써 결정된 지역 내의 노드들을 포함할 수 있다. 지정된 크기는 경로 계획 시스템(100)의 디폴트 설정일 수 있거나 또는 상이한 상황들에 따라 조정될 수 있다. 예를 들어, 지정된 크기는 정지된 AGV의 크기 및/또는 토폴로지 맵에서 인접하는 노드들 사이의 거리에 기초하여 결정될 수 있다.
일부 실시예들에서, 제1 전처리 및 제2 전처리는 별도로 수행될 수 있다.
예를 들어, 제1 전처리는 하나 이상의 정지된 AGV들에 대응하는 노드 정보를 수정함으로써 토폴로지 맵에서 수행될 수 있다. 따라서, 현재 AGV에 대한 계획된 경로(예를 들어, 제1 경로)에 따른 노드들은 제1 수정된 토폴로지 맵의 노드들의 노드 정보에 기초하여 결정될 수 있다.
다른 예로서, 제2 전처리는 하나 이상의 정지된 AGV들에 대응하는 노드 정보 및 하나 이상의 이동하는 AGV들에 대응하는 노드 정보를 수정함으로써 토폴로지 맵에서 수행될 수 있다. 따라서, 현재 AGV에 대한 계획된 경로(예를 들어, 제2 경로)에 따른 노드들은 제2 수정된 토폴로지 맵의 노드들의 노드 정보에 기초하여 결정될 수 있다.
일부 실시예들에서, 제1 전처리 및 제2 전처리는 일괄적으로 수행될 수 있다.
첫 번째로, 제1 수정된 토폴로지 맵은 토폴로지 맵에 대한 제1 전처리를 수행함으로써 획득될 수 있다.
두 번째로, 제1 경로 계획이 제1 수정된 토폴로지 맵에 기초하여 현재 AGV에 대해 수행될 수 있다. 현재 AGV가 제1 경로 계획의 제1 경로를 따라 이동하는 경우 하나 이상의 이동하는 AGV들 중 적어도 하나와 충돌하는 것으로 검출되면, 제1 경로 계획이 실패한 것으로 결정될 수 있다. 그런 다음, 토폴로지 맵에 대해 2차 전처리가 수행될 수 있다.
일부 실시예들에서, 수정된 토폴로지 맵에서 현재 AGV의 출발 노드 및 목적지 노드가 결정될 수 있다. 수정된 토폴로지 맵의 노드 정보에 따라, 출발 노드와 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들이 결정될 수 있다. 또한, 복수의 총 비용들에 기초하여 현재 AGV에 대한 경로 계획이 수행될 수 있다.
구체적으로, 현재 AGV의 제1 출발 노드와 제1 목적지 노드는 제1 수정된 토폴로지 맵에서 결정될 수 있다. 제1 출발 노드와 제1 목적지 노드 사이의 복수의 노드들과 연관된 복수의 제1 총 비용들은 제1 수정된 토폴로지 맵의 노드 정보에 기초하여 결정될 수 있다. 복수의 제1 총 비용들에 기초하여 현재 AGV에 대한 제1 경로 계획이 수행될 수 있다.
일부 실시예들에서, 제1 출발 노드는 제1 수정된 토폴로지 맵에서 현재 AGV의 출발 위치(예를 들어, 현재 AGV의 위치)에 가장 가까운 제1 이용 가능한 노드일 수 있다. 제1 목적지 노드는 제1 수정된 토폴로지 맵에서 현재 AGV의 목적지에 가장 가까운 제1 이용 가능한 노드일 수 있다. 본 명세서에서, 이용 가능한 노드는 다른 AGV들에 의해 점유되지 않는 노드로서 장벽이 아닌 노드를 지칭한다.
현재 AGV가 제1 경로 계획의 제1 경로를 따라 이동하는 경우 현재 AGV가 하나 이상의 이동하는 AGV들 중 적어도 하나와 충돌하는 것으로 검출하는 데 응답하여, 제2 수정된 토폴로지 맵에서 현재 AGV의 제2 출발 노드 및 제2 목적지 노드가 결정될 수 있다. 제2 출발 노드와 제2 목적지 노드 사이의 복수의 노드들과 연관된 복수의 제2 총 비용들은 또한 제2 수정된 토폴로지 맵의 노드 정보에 기초하여 결정될 수 있다. 또한, 복수의 제2 총 비용들에 기초하여 현재 AGV에 대한 제2 경로 계획이 수행될 수 있다.
일부 실시예들에서, 제2 출발 노드는 제2 수정된 토폴로지 맵에서 현재 AGV의 출발 위치(예를 들어, 현재 AGV의 위치)에 가장 가까운 제2 이용 가능한 노드일 수 있다. 제2 목적지 노드는 제2 수정된 토폴로지 맵에서 현재 AGV의 목적지에 가장 가까운 제2 이용 가능한 노드일 수 있다. 일부 실시예들에서, 제2 출발 노드는 제1 출발 노드와 동일하거나 상이할 수 있고; 유사하게, 제2 목적지 노드는 제1 목적지 노드와 동일하거나 상이할 수 있다. 예를 들어, 제1 이용 가능한 노드가 제2 수정된 토폴로지 맵에서 장벽이 아니거나 다른 AGV들에 의해 점유되지 않은 경우, 제2 출발 노드는 제1 출발 노드와 동일할 수 있다.
일부 실시예들에서, 해당 노드에 대응하는 총 비용은 출발 노드로부터 해당 노드까지의 제1 비용 및 해당 노드로부터 목적지 노드까지의 제2 비용을 포함할 수 있다.
일부 실시예들에서, 토폴로지 맵에서 현재 AGV와는 다른 하나 이상의 정지된 AGV들 각각에 대해, 정지된 AGV를 중심으로 하는 미리 설정된 지역 내의 하나 이상의 노드들의 노드 정보는 하나 이상의 노드들의 하나 이상의 가중치 값들을 하나 이상의 높은 가중치 값들(예를 들어, 미리 설정된 임계값보다 큰 가중치 값들)로 수정하고 하나 이상의 노드들을 턴을 할 수 없는 노드들로 설정함으로써 수정될 수 있다. 특정 노드를 예로 들어, 높은 가중치 값은 AGV가 특정 노드를 우회할 수 있음을 나타낼 수 있다.
일부 실시예들에서, 토폴로지 맵에서 현재 AGV와는 다른 정지된 AGV들 각각에 대해, 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보는 하나 이상의 노드들을 통과할 수 없는 노드들로 설정하고 하나 이상의 노드들을 하나 이상의 장벽들로 지정함으로써 수정될 수 있다. 토폴로지 맵에서 하나 이상의 이동하는 AGV들 각각에 대해, 이동하는 AGV가 통과하지 않은 계획된 경로의 하나 이상의 노드들의 노드 정보는 하나 이상의 노드들의 하나 이상의 가중치 값들을 하나 이상의 높은 가중치 값들(예를 들어, 미리 설정된 임계값보다 큰 가중치 값들)을 설정함으로써 수정될 수 있다.
일부 실시예들에서, 수정된 토폴로지 맵에서 현재 AGV의 출발 노드 및 목적지 노드가 결정된 후, 수정된 토폴로지 맵의 노드 정보에 기초하여 출발 노드 또는 목적지 노드가 장벽인 것으로 결정되면, 경로 계획이 실패했다고 결정될 수 있다. 일부 실시예들에서, 출발 노드가 장벽인 것으로 결정되면, 현재 AGV에 대해 다음으로 가장 가까운 노드(해당 노드는 장벽이 아니며 다른 AGV들에 의해 점유되지 않은 것으로 가정)가 새로운 출발 노드로 지정될 수 있으며, 새로운 경로 계획이 현재 AGV에 대해 수행될 수 있다.
일부 실시예들에서, 출발 노드는 경로의 제1 현재 노드로 지정될 수 있다. 각각의 사이클마다, 업데이트된 현재 노드가 결정되고 업데이트된 현재 노드가 목적지 노드가 아닌 경우, 업데이트된 현재 노드의 다음 노드가 결정될 수 있다. 구체적으로, 해당 경로의 노드들 이외의 하나 이상의 노드들과 연관된 하나 이상의 총 비용들이 결정될 수 있으며, 최소 총 비용을 갖는 노드가 경로 상의 노드로서 및 업데이트된 현재 노드의 다음 노드로 결정될 수 있다. 또한, 다음 노드는 다음 사이클에서 업데이트된 현재 노드로 결정될 수 있다.
일부 실시예들에서, 해당 노드에 대응하는 총 비용은 해당 노드("다음 노드"로 간주될 수 있음)의 부모 노드("현재 노드"로 간주될 수 있음)로부터 해당 노드까지의 경로 비용, 예를 들어, 부모 노드로부터 해당 노드까지의 비용, 부모 노드로부터 해당 노드로의 턴 비용, 해당 노드의 가중치 값 등, 또는 이들의 임의의 조합을 반영하는 복수의 파라미터들을 포함할 수 있다. 전형적인 파라미터들이 예시의 목적으로 제공되며 실제 요구에 따라 다른 파라미터들도 또한 사용될 수 있다는 점에 유의해야 한다. 예를 들어, 상기 파라미터들은 또한 가격 정보(예를 들어, 톨게이트, 연료 소비), 도로 정보(예를 들어, 도로 유형, 도로 폭, 신호등, 교통 통제, 도로 혼잡, 속도 제한) 등, 또는 이들의 임의의 조합에 관한 파라미터들을 포함할 수 있다.
일부 실시예들에서, 해당 노드에 대응하는 총 비용은 현재 노드로부터 해당 노드까지의 비용 및/또는 해당 노드로부터 목적지 노드까지의 비용에 기초하여 결정될 수 있다.
예를 들어, 해당 노드에 대응하는 총 비용은 아래의 수식 (1)에 따라 결정될 수 있다:
Figure pct00001
(1)
여기서
Figure pct00002
은 해당 노드의 일련 번호를 나타내고,
Figure pct00003
은 해당 노드에 대응하는 총 비용을 나타내고,
Figure pct00004
은 현재 노드로부터 해당 노드까지의 비용을 나타내고,
Figure pct00005
은 해당 노드로부터 목적지 노드까지의 비용을 나타낸다.
일부 실시예들에서, 해당 노드로부터 목적지 노드까지의 비용은 아래의 수식 (2)에 따른 맨해튼 거리(Manhattan distance)를 사용하여 결정될 수 있다:
Figure pct00006
(2)
여기서
Figure pct00007
Figure pct00008
는 목적지 노드의 X 좌표 및 Y 좌표를 각각 나타내고,
Figure pct00009
Figure pct00010
은 해당 노드의 X 좌표 및 Y 좌표를 각각 나타낸다.
일부 실시예들에서, 현재 노드로부터 해당 노드까지의 비용은 현재 노드에 대응하는 총 비용, 해당 노드의 가중치 값, 현재 노드로부터 해당 노드까지의 거리에 기초하여 결정된 거리 비용, 및/또는 현재 노드로부터 해당 노드로의 턴 비용에 기초하여 결정될 수 있다.
예를 들어, 현재 노드로부터 해당 노드까지의 비용은 아래의 수식 (3)에 따라 결정될 수 있다:
Figure pct00011
(3)
여기서
Figure pct00012
은 해당 노드의 가중치 값을 나타내고,
Figure pct00013
는 현재 노드에 대응하는 총 비용을 나타내고,
Figure pct00014
은 현재 노드로부터 해당 노드까지의 거리에 따라 결정된 거리 비용을 나타내고,
Figure pct00015
은 현재 노드로부터 해당 노드로의 턴 비용을 나타낸다.
일부 실시예들에서, 현재 노드로부터 해당 노드까지의 거리 비용은 아래의 수식 (4)에 따라 결정될 수 있다:
Figure pct00016
(4)
여기서
Figure pct00017
Figure pct00018
는 현재 노드의 X 좌표 및 Y 좌표를 각각 나타내고,
Figure pct00019
Figure pct00020
은 해당 노드의 X 좌표 및 Y 좌표를 각각 나타낸다.
일부 실시예들에서, 해당 노드의 현재 노드로부터의 턴 비용은 아래의 수식 (5)에 따라 결정될 수 있다:
Figure pct00021
(5)
여기서
Figure pct00022
는 현재 노드의 타겟 각도(target angle)를 나타내고,
Figure pct00023
은 해당 노드의 타겟 각도를 나타내고,
Figure pct00024
는 턴 비용의 가중 인자를 나타낸다.
일부 실시예들에서, 최소 비용을 갖는 노드는 이진 힙 구조(binary heap structure)에 기초하여 결정될 수 있다.
일부 실시예들에서, 수정된 토폴로지 맵에서 현재 AGV의 출발 노드가 결정될 수 있다. 구체적으로, 현재 AGV에 가장 가까운 노드가 결정될 수 있다. 해당 노드는 현재 AGV와는 다른 AGV들에 의해 해당 노드가 점유되지 않을 때 출발 노드로 지정될 수 있다.
일부 실시예들에서, 토폴로지 맵의 노드 정보는 노드의 가중치 값, 노드의 통행 가능성(예를 들어, 차량이 노드를 통과할 수 있는지 여부), 노드의 턴 능력(예를 들어, 차량이 노드에서 회전시킬 수 있는지 여부), 인접 노드들의 개수(예를 들어, 4, 8), 인접 노드들에 대한 노드의 연결성 등, 또는 이들의 임의의 조합을 포함할 수 있다.
도 5는 본 개시의 일부 실시예들에 따른 AGV에 대한 경로 계획을 위한 전형적인 프로세스를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(500)는 저장 ROM(230) 또는 RAM(240)에 저장된 명령들의 세트(예를 들어, 애플리케이션)로서 구현될 수 있다. 도 6의 프로세서(220) 및/또는 모듈들은 명령들의 세트를 실행할 수 있고, 명령들을 실행할 때 프로세서(220) 및/또는 모듈들은 프로세스(500)를 수행하도록 구성될 수 있다. 이하에서 제공되는 예시된 프로세스의 동작들은 예시적이도록 의도된다. 몇몇 실시예들에서, 프로세스(500)는 설명되지 않은 하나 이상의 부가적인 동작들을 갖고, 및/또는 논의된 동작들 중 하나 이상 없이 성취될 수 있다. 부가적으로, 도 5에 예시되고 이하에서 설명되는 바와 같이 프로세스의 동작들의 순서는 제한적이도록 의도되지 않는다.
501에서, 토폴로지 맵이 스케줄링 시스템으로부터 획득될 수 있다. 동작 501은 동작 401과 유사할 수 있으며, 여기서는 상세한 설명을 생략한다.
502에서, 토폴로지 맵이 전처리되고, 수정된 토폴로지 맵이 복수의 AGV들에 의해 점유된 노드들의 일련 번호들, 복수의 AGV들의 움직임 상태 정보, 및 토폴로지 맵의 노드들의 노드 정보(예를 들어, 턴 능력)에 기초하여 획득될 수 있다. 동작 502은 동작 501과 유사할 수 있으며, 여기서는 상세한 설명을 생략한다.
503에서, 스케줄링 시스템에서 현재 AGV의 출발 노드 및 목적지 노드는 현재 AGV에 의해 점유된 노드의 일련 번호 및 현재 AGV에 할당된 태스크의 목적지에 기초하여 (수정된) 토폴로지 맵에서 결정될 수 있다.
504에서, 출발 노드 또는 목적지 노드가 장벽인지 여부가 결정될 수 있다. 출발 노드 또는 목적지 노드가 장벽이라는 결정에 응답하여, 프로세스(500)는 동작(505)으로 진행할 수 있다. 출발 노드 및 목적지 노드가 장벽이 아니라는 결정에 응답하여, 프로세스(500)는 동작(506)으로 진행할 수 있다.
505에서, 경로 계획이 실패했다고 결정될 수 있다.
506에서, 개방 세트
Figure pct00025
가 결정될 수 있고 (수정된) 토폴로지 맵에서 경로 계획을 위해 검색될 노드들을 저장하는 데 사용될 수 있으며; 폐쇄 세트
Figure pct00026
가 경로 계획을 위해 이미 검색된 노드들을 저장하기 위해 결정되고 사용될 수 있다.
507에서, 출발 노드는 현재 노드로 지정될 수 있고, 현재 노드에 대응하는 총 비용이 결정될 수 있고, 출발 노드가 개방 세트에 포함될 수 있다.
508에서, 이진 힙 구조가 결정될 수 있고, 최소 총 비용을 갖는 노드가 이진 힙 구조에 기초하여 개방 세트 내의 노드들 중에서 결정될 수 있고, 해당 노드는 개방 세트에서 삭제되고 폐쇄 세트에 추가될 수 있다.
509에서, 최소 총 비용을 갖는 노드가 목적지 노드인지 여부가 결정될 수 있다. 최소 총 비용을 갖는 노드가 목적지 노드라는 결정에 응답하여, 프로세스(500)는 동작(510)으로 진행할 수 있다. 최소 총 비용을 갖는 노드가 목적지 노드가 아니라는 결정에 응답하여, 프로세스(500)는 동작(511)으로 진행할 수 있다.
510에서, 경로 계획이 성공한 것으로 결정될 수 있다. 목적지 노드의 이전 노드들은 이전 노드가 출발 노드로 될 때까지 결정될 수 있다.
511에서, 현재 노드의 다음 노드가 결정될 수 있고, 다음 노드의 총 비용이 결정될 수 있고, 다음 노드가 개방 세트에 포함될 수 있다. 그 다음, 프로세스는 동작 508로 진행할 수 있다.
현재 노드의 다음 노드는 (수정된) 토폴로지 맵에서 노드들의 노드 정보(예를 들어, 통행 가능성)에 기초하여 현재 노드의 네 방향들(예를 들어, 위쪽 방향, 아래쪽 방향, 왼쪽 방향, 오른쪽 방향)에서 인접 노드들에 연관된 총 비용들을 결정함으로써 결정될 수 있다.
도 6은 본 개시의 몇몇 실시예들에 따른 전형적인 프로세싱 디바이스를 도시하는 블록도이다; 프로세싱 디바이스(112)는 위치 획득 모듈(610), 맵 획득 모듈(620), 움직임 상태 획득 모듈(630), 및 경로 결정 모듈(640)을 포함할 수 있다.
위치 획득 모듈(610)은 타겟 차량(예를 들어, 차량(130))의 출발 위치 및 목적지를 획득하도록 구성될 수 있다. 일부 실시예들에서, 출발 위치 및/또는 목적지는 타겟 차량에 할당된 태스크과 연관될 수 있다. 일부 실시예들에서, 출발 위치는 타겟 차량의 현재 위치일 수 있고, 목적지는 대상(object)이 위치하는 위치일 수 있다. 일부 실시예들에서, 출발 위치는 대상이 위치하는 위치일 수 있고, 목적지는 대상의 배송 위치일 수 있다. 일부 실시예들에서, 출발 위치는 타겟 차량의 현재 위치일 수 있고, 목적지는 대상의 배송 위치일 수 있다.
맵 획득 모듈(620)은 출발 위치 및 목적지를 포함하는 타겟 지역의 맵를 획득하도록 구성될 수 있다. 일부 실시예들에서, 맵은 토폴로지 맵, 그리드 맵, 기하학적 맵, 포인트 클라우드 맵 등을 포함할 수 있다. 일부 실시예들에서, 맵은 복수의 노드들 및 맵에 있는 복수의 노드들 각각의 노드 정보(통행 가능성)를 포함할 수 있다. 일부 실시예들에서, 맵 획득 모듈(620)은 경로 계획 시스템(100)의 저장 디바이스(예를 들어, 저장 디바이스(150)), 외부 디바이스 등으로부터 맵를 획득할 수 있다. 일부 실시예들에서, 맵 획득 모듈(620)은 타겟 지역에 대응하는 예비 맵(타겟 지역보다 큰 지역에 대응할 수 있음)의 일부를 추출함으로써 맵를 획득할 수 있다. 추가적으로 또는 대안적으로, 맵 획득 모듈(620)은 전체 예비 맵를 획득할 수 있다.
움직임 상태 획득 모듈(630)은 타겟 지역에서 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하도록 구성될 수 있다. 일부 실시예들에서, 하나 이상의 차량들 각각과 연관된 움직임 상태는 정지된 상태 및 이동하는 상태를 포함할 수 있다. 일부 실시예들에서, 움직임 상태 획득 모듈(630)은 하나 이상의 차량들의 위치 정보에 기초하여 움직임 상태 정보를 획득할 수 있다. 특정 차량을 예로 들면, 특정 차량의 위치가 일정 기간의 시간(예를 들어, 5초, 20초, 30초, 1분, 2분, 5분) 내에서 동일하게 유지되는 경우, 움직임 상태 획득 모듈(630)은 특정 차량이 정지된 상태에 있는 것으로 결정할 수 있으며; 반면에, 특정 차량의 위치가 시간에 따라 변하는 경우, 움직임 상태 획득 모듈(630)은 특정 차량이 이동하는 상태에 있다고 결정할 수 있다. 일부 실시예들에서, 하나 이상의 차량들은 네트워크(120)를 통해 움직임 상태 정보를 움직임 상태 획득 모듈(630)로 전송할 수 있다.
경로 결정 모듈(640)은 출발 위치, 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 맵에 적어도 부분적으로 기초하여 타겟 차량의 타겟 경로를 결정하도록 구성될 수 있다. 일부 실시예들에서, 경로 결정 모듈(640)은 경로 계획 알고리즘을 사용하여 타겟 경로를 결정할 수 있다. 경로 계획 알고리즘은 A-star 알고리즘, 수정된 A-star 알고리즘, Dijkstra 알고리즘, Floyd-Warshall 알고리즘, Bellman-Ford 알고리즘, RRT(Rapid-Exploring Random Tree) 알고리즘 등, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 복수의 노드 중 적어도 하나에 대해, 경로 결정 모듈(640)은 하나 이상의 차량들과 연관된 움직임 상태 정보에 기초하여 복수의 노드들 중 적어도 하나의 각각의 노드 정보의 적어도 일부를 수정함으로써 타겟 노드 정보를 결정할 수 있다. 그 다음, 경로 결정 모듈(640)은 맵 및 복수의 노드들 중 적어도 하나의 타겟 노드 정보에 기초하여 타겟 맵을 생성할 수 있다. 또한, 경로 결정 모듈(640)은 타겟 맵, 출발 위치, 및 목적지에 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다.
일부 실시예들에서, 경로 결정 모듈(640)은 타겟 맵에서의 출발 위치에 기초하여 복수의 노드들로부터 출발 노드를 결정할 수 있고 타겟 맵에서의 목적지에 기초하여 복수의 노드들로부터 목적지 노드를 결정할 수 있다. 본 명세서에서 사용되는 바와 같이, 출발 노드는 출발 위치(예를 들어, 타겟 차량의 위치)에 가장 가까운 이용 가능한 노드(예를 들어, 타겟 차량과는 다른 하나 이상의 차량들에 의해 점유되지 않고 장벽이 아닌 노드)일 수 있으며, 목적지 노드는 목적지에 가장 가까운 이용 가능한 노드일 수 있다. 또한, 경로 결정 모듈(640)은 출발 노드와 목적지 노드 사이의 복수의 타겟 노드들과 연관된 복수의 비용들에 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다. 본 명세서에 사용된 바와 같이, 노드의 비용은 경로가 노드를 포함하는 경우 출발 노드로부터 목적지 노드까지의 경로의 비용을 나타낼 수 있다.
프로세싱 디바이스(112)의 모듈들은 유선 연결 또는 무선 연결을 통해 서로 연결되거나 통신될 수 있다. 유선 연결은 금속 케이블, 광 케이블, 하이브리드 케이블 등, 또는 이들의 임의의 조합을 포함할 수 있다. 무선 연결은 근거리 네트워크(LAN), 광역 네트워크(WAN), 블루투스, 지그비, 근거리장 통신(NFC) 등, 또는 이들의 임의의 조합을 포함할 수 있다. 둘 이상의 모듈들은 단일 모듈로 결합될 수 있고, 상기 모듈들 중 어느 것도 둘 이상의 유닛들로 분할될 수 있다. 예를 들어, 위치 획득 모듈(610) 및 맵 획득 모듈(620)은 단일 모듈로 결합될 수 있으며, 이는 타겟 차량의 출발 위치와 목적지, 그리고 출발 위치와 목적지를 포함하는 타겟 지역의 맵를 모두 획득할 수 있다. 다른 예로서, 프로세싱 디바이스(112)는 태스크(예를 들어, 상품 배송)를 타겟 차량에 을 할당할 수 있는 태스크 할당 모듈(도시되지 않음)을 포함할 수 있다. 추가의 예로서, 프로세싱 디바이스(112)는 전술한 모듈들에 의해 생성된 데이터를 저장하는 데 사용될 수 있는 저장 모듈(도시되지 않음)을 포함할 수 있다.
도 7은 본 개시의 일부 실시예들에 따른 타겟 차량의 타겟 경로를 결정하기 위한 전형적인 프로세스를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(700)는 저장 ROM(230) 또는 RAM(240)에 저장된 명령들의 세트(예를 들어, 애플리케이션)로서 구현될 수 있다. 도 6의 프로세서(220) 및/또는 모듈들은 명령들의 세트를 실행할 수 있고, 명령들을 실행할 때 프로세서(220) 및/또는 모듈들은 프로세스(700)를 수행하도록 구성될 수 있다. 이하에서 제공되는 예시된 프로세스의 동작들은 예시적이도록 의도된다. 일부 실시예들에서, 프로세스(700)는 설명되지 않은 하나 이상의 부가적인 동작들로, 및/또는 여기서 논의된 동작들 중 하나 이상 없이 달성될 수 있다. 부가적으로, 도 7에 예시되고 이하에서 설명되는 바와 같이 프로세스의 동작들의 순서는 제한적이도록 의도되지 않는다.
710에서, 프로세싱 디바이스(112)(예를 들어, 위치 획득 모듈(610))(예를 들어, 프로세서(220)의 인터페이스 회로들 또는 프로세싱 회로들)는 타겟 차량(예를 들어, 차량(130))의 출발 위치 및 목적지를 획득할 수 있다.
일부 실시예들에서, 출발 위치 및/또는 목적지는 프로세싱 디바이스(112)에 의해 타겟 차량에 할당된 태스크, 예를 들어 대상(예를 들어, 상품, 음식, 승객)을 배송 위치로 배송하기 위한 태스크와 연관될 수 있다. 일부 실시예들에서, 출발 위치는 타겟 차량의 현재 위치일 수 있고, 목적지는 대상이 위치하는 위치일 수 있다. 일부 실시예들에서, 출발 위치는 대상이 위치하는 위치일 수 있고, 목적지는 대상의 배송 위치일 수 있다. 일부 실시예들에서, 출발 위치는 타겟 차량의 현재 위치일 수 있고, 목적지는 대상의 배송 위치일 수 있다. 태스크들을 할당하는 것과 관련한 더 많은 설명은 본 개시의 다른 곳에서 찾을 수 있다(예를 들어, 도 9 및 그에 대한 설명).
720에서, 프로세싱 디바이스(112)(예를 들어, 맵 획득 모듈(620))(예를 들어, 프로세서(220)의 인터페이스 회로들 또는 프로세싱 회로들)는 출발 위치 및 목적지를 포함하는 타겟 지역의 맵을 획득할 수 있다. 일부 실시예들에서, 타겟 지역은 복수의 환경 대상들(environmental objects), 예를 들어, 상품, 도로, 나무, 차량, 건물, 강, 보행자 등, 또는 이들의 임의의 조합을 포함할 수 있다. 따라서, 맵은 타겟 지역의 환경 대상들을 나타내는 맵 데이터를 포함할 수 있다.
일부 실시예들에서, 맵 데이터는 복수의 환경 대상들의 위치 정보, 복수의 환경 대상들의 의미론적 정보 등, 또는 이들의 임의의 조합을 포함할 수 있다. 환경 대상의 전형적인 위치 정보는 위도 정보, 경도 정보, 높이 정보(또는 고도 정보) 등을 포함할 수 있다. 환경 대상의 전형적인 의미론적 정보는 환경 대상의 일련 번호, 환경 대상의 이름, 환경 대상의 유형(예를 들어, 도로의 유형(예를 들어, 고속도로)), 환경 대상의 속성 정보(예를 들어, 도로의 제한 속도, "일방 통행" 여부, 터닝 제한) 등, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 맵은 토폴로지 맵, 그리드 맵, 기하학적 맵, 포인트 클라우드 맵 등을 포함할 수 있다. 일부 실시예들에서, 맵은 복수의 노드들을 포함할 수 있으며, 이들 각각은 특정 포인트(예를 들어, 모퉁이, 게이트웨이, 교차로, 정류장) 또는 타겟 영역의 특정 유닛(예를 들어, 원, 직사각형, 삼각형)을 나타낼 수 있다.
일부 실시예들에서, 맵 데이터는 또한 맵에 있는 복수의 노드들 각각의 노드 정보를 포함할 수 있다. 예를 들어, 노드의 노드 정보는 해당 노드의 일련 번호, 해당 노드의 바코드(예를 들어, 1차원 바코드, 2차원 바코드(예를 들어, QR(Quick Response) 코드), 해당 노드의 위치(위도, 경도, 높이(또는 고도)로 표현될 수 있음), 해당 노드의 좌표, 해당 노드의 가중치 값, 해당 노드의 통행 가능성(예를 들어, 차량이 해당 노드를 통행하도록 허용되는지 여부), 해당 노드의 턴 능력(예를 들어, 차량이 해당 노드에서 회전하도록 허용되는지 여부), 인접 노드들의 개수(예를 들어, 4, 8), 인접 노드들에 대한 노드의 연결성 등, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 노드의 일련 번호 또는 바코드는 고유할 수 있고, 노드의 위치를 나타내기 위해 사용될 수 있다. 일부 실시예들에서, 노드의 가중치 값이 높을수록 노드의 총 비용이 더 커질 수 있고, 따라서 차량이 노드를 우회할 확률이 더 높을 수 있다.
일부 실시예들에서, 노드 정보는 경로 계획 시스템(100)의 디폴트 설정일 수 있거나 상이한 상황들에 따라 조정가능할 수 있다. 예를 들어, 복수의 노드들 전체 또는 일부에 대해, 가중치 값이 디폴트 값(예를 들어, 0)으로 설정될 수 있고, 노드의 통행 가능성이 차량들이 통과하는 것을 허용하도록 설정될 수 있으며, 노드의 턴 능력이 차량들이 노드에서 회전하는 것을 허용하도록 설정될 수 있다. 다른 예로서, 복수의 노드들 중 적어도 일부에 대해, 노드 정보는 환경 조건들, 예를 들어 통행 가능성 제한(예를 들어, 도로 통제, 일방 통행 제한), 턴 제한 등과 관련될 수 있다. 노드 정보에 관한 더 많은 설명들은 본 개시의 다른 곳에서 찾을 수 있다(예를 들어, 도 10 및 그에 대한 설명).
일부 실시예들에서, 프로세싱 디바이스(112)는 경로 계획 시스템(100)의 저장 디바이스(예를 들어, 저장 디바이스(150)), 외부 디바이스 등으로부터 맵를 획득할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 타겟 지역에 대응하는 예비 맵(타겟 지역보다 큰 지역에 대응할 수 있음)의 일부를 추출함으로써 맵를 획득할 수 있다. 추가적으로 또는 대안적으로, 프로세싱 디바이스(112)는 전체 예비 맵를 획득할 수 있다.
730에서, 프로세싱 디바이스(112)(예를 들어, 움직임 상태 모듈(630))(예를 들어, 프로세서(220)의 인터페이스 회로들 또는 프로세싱 회로들)은 타겟 지역에서 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득할 수 있다.
일부 실시예들에서, 하나 이상의 차량들 각각과 연관된 움직임 상태는 정지된 상태 및 이동하는 상태를 포함할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 하나 이상의 차량들의 위치 정보에 기초하여 움직임 상태 정보를 획득할 수 있다. 특정 차량을 예로 들면, 특정 차량의 위치가 일정 기간의 시간(예를 들어, 5초, 20초, 30초, 1분, 2분, 5분) 내에서 동일하게 유지되는 경우, 프로세싱 디바이스(112)는 특정 차량이 정지된 상태에 있는 것으로 결정할 수 있으며; 반면에, 특정 차량의 위치가 시간에 따라 변하는 경우, 프로세싱 디바이스(112)는 특정 차량이 이동하는 상태에 있다고 결정할 수 있다. 일부 실시예들에서, 하나 이상의 차량들은 네트워크(120)를 통해 움직임 상태 정보를 프로세싱 디바이스(112)로 전송할 수 있다.
740에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로)는 출발 위치, 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 맵에 적어도 부분적으로 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다.
일부 실시예들에서, 프로세싱 디바이스(112)는 경로 계획 알고리즘을 사용하여 타겟 경로를 결정할 수 있다. 경로 계획 알고리즘은 A-star 알고리즘, 수정된 A-star 알고리즘, Dijkstra 알고리즘, Floyd-Warshall 알고리즘, Bellman-Ford 알고리즘, RRT(Rapid-Exploring Random Tree) 알고리즘 등, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 복수의 노드 중 적어도 하나에 대해, 프로세싱 디바이스(112)는 하나 이상의 차량들과 연관된 움직임 상태 정보에 기초하여 복수의 노드들 중 적어도 하나의 각각의 노드 정보의 적어도 일부를 수정함으로써 타겟 노드 정보를 결정할 수 있다. 노드 정보를 수정하는 것과 관련한 더 많은 설명들은 본 개시의 다른 곳에서 찾을 수 있다(예를 들어, 도 8 및 그에 대한 설명). 그 다음, 프로세싱 디바이스(112)는 맵 및 복수의 노드들 중 적어도 하나의 타겟 노드 정보에 기초하여 타겟 맵을 생성할 수 있다. 또한, 프로세싱 디바이스(112)는 타겟 맵, 출발 위치, 및 목적지에 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다.
일부 실시예들에서, 프로세싱 디바이스(112)는 타겟 맵에서의 출발 위치에 기초하여 복수의 노드들로부터 출발 노드를 결정할 수 있고 타겟 맵에서의 목적지에 기초하여 복수의 노드들로부터 목적지 노드를 결정할 수 있다. 본 명세서에서 사용되는 바와 같이, 출발 노드는 출발 위치(예를 들어, 타겟 차량의 위치)에 가장 가까운 이용 가능한 노드(예를 들어, 타겟 차량과는 다른 하나 이상의 차량들에 의해 점유되지 않고 장벽이 아닌 노드)일 수 있으며, 목적지 노드는 목적지에 가장 가까운 이용 가능한 노드일 수 있다. 또한, 프로세싱 디바이스(112)는 출발 노드와 목적지 노드 사이의 복수의 타겟 노드들과 연관된 복수의 비용들에 기초하여 타겟 차량의 타겟 경로를 결정할 수 있다. 본 명세서에 사용된 바와 같이, 노드의 비용은 경로가 노드를 포함하는 경우 출발 노드로부터 목적지 노드까지의 경로의 비용을 나타낼 수 있다.
단지 예로서, 도 4와 관련하여 설명된 바와 같이, 프로세싱 디바이스(112)는 제1 세트(예를 들어, 개방 세트) 및 제2 세트(예를 들어, 폐쇄 세트)를 결정할 수 있고, 제1 세트 및 제2 세트에 기초하여 순환하는 프로세스를 수행할 수 있다. 초기화 상태에서, 제1 세트는 출발 노드만을 포함하고, 제2 세트는 비어있는 세트이다. 제1 사이클에서, 프로세싱 디바이스(112)는 출발 노드를 제2 세트로 이동시키고 출발 노드의 적어도 하나의 관련 노드를 제1 세트에 추가할 수 있다. 본 명세서에서 사용되는 바와 같이, 특정 노드에 대해, 관련 노드는 특정 노드로부터 도달 가능한(예를 들어, 통과가능, 턴 가능) 인접 노드를 지칭할 수 있다. 예를 들어, 도 10에 도시된 바와 같이, 노드 1의 경우, 적어도 하나의 관련 노드는 노드 2, 노드 3, 노드 4, 및 노드 5를 포함한다. 또한, 프로세싱 디바이스(112)는 적어도 하나의 관련 노드의 적어도 하나의 비용을 결정하고 최소 비용을 갖는 관련 노드를 제2 세트로 이동시킬 수 있다. 그 다음, 프로세싱 디바이스(112)는 최소 비용을 갖는 관련 노드가 목적지 노드인지 여부를 결정할 수 있다. 관련 노드가 목적지 노드라는 결정에 응답하여, 프로세싱 디바이스(112)는 관련 노드의 부모 노드(제1 사이클의 출발 노드임)를 결정할 수 있고, 출발 노드에 도달할 때까지 부모 노드의 부모 노드를 순차적으로 결정할 수 있다. 또한, 프로세싱 디바이스(112)는 출발 노드로부터 중간 노드들(즉, 다수의 사이클들에서 최소 비용을 갖는 관련 노드들)을 포함하여 목적지까지의 경로를 타겟 경로로 결정할 수 있다. 관련 노드가 목적지 노드가 아니라는 결정에 응답하여, 프로세싱 디바이스(112)는 관련 노드를 현재 노드로 지정하고 다음 사이클을 실행할 수 있다.
i번째 사이클에서, 이전 사이클에서 결정된 최소 비용을 갖는 관련 노드(i번째 "현재 노드"로도 간주될 수 있음)에 대해, 프로세싱 디바이스(112)는 현재 노드의 적어도 하나의 관련 노드를 결정하고 적어도 하나의 관련 노드를 제1 세트에 추가할 수 있다. 그 다음, 프로세싱 디바이스(112)는 적어도 하나의 관련 노드의 적어도 하나의 비용을 결정할 수 있다. 또한, 적어도 하나의 관련 노드 각각에 대해, 프로세싱 디바이스(112)는 관련 노드가 이미 제1 세트에 있는지 여부를 결정할 수 있다. 관련 노드가 이미 제1 세트에 있다는 결정에 응답하여, 프로세싱 디바이스(112)는 현재 사이클에서 결정된 관련 노드의 비용(또한 "현재 비용"이라고도 함)이 이전 사이클에서 결정된 관련 노드의 비용(또한 "이전 비용"이라고도 함)보다 작은지 여부를 결정할 수 있다. 관련 노드의 현재 비용이 관련 노드의 이전 비용보다 작다는 결정에 응답하여, 프로세싱 디바이스(112)는 관련 노드의 비용을 업데이트하고 관련 노드의 부모 노드(이전 사이클에서 이전의 현재 노드일 수 있음)를 현재 노드로 업데이트할 수 있다. 관련 노드의 현재 비용이 관련 노드의 이전 비용보다 크거나 같다는 결정에 응답하여, 프로세싱 디바이스(112)는 추가 처리를 위해 관련 노드의 부모 노드 및 비용을 유지할 수 있다. 관련 노드가 제1 세트 내에 없다는 결정에 응답하여, 프로세싱 디바이스(112)는 관련 노드의 부모 노드를 현재 노드로 결정할 수 있다. 또한, 프로세싱 디바이스(112)는 최소 비용을 갖는 관련 노드를 결정하고 최소 비용을 갖는 관련 노드가 목적지 노드인지 여부를 결정할 수 있다. 상기와 유사하게, 관련 노드가 목적지 노드라는 결정에 응답하여, 프로세싱 디바이스(112)는 관련 노드의 부모 노드를 결정할 수 있고, 출발 노드에 도달할 때까지 부모 노드의 부모 노드를 순차적으로 결정할 수 있다. 또한, 프로세싱 디바이스(112)는 출발 노드로부터 중간 노드들(즉, 다수의 사이클들에서 최소 비용을 갖는 관련 노드들)을 포함하여 목적지까지의 경로를 타겟 경로로 결정할 수 있다. 관련 노드가 목적지 노드가 아니라는 결정에 응답하여, 프로세싱 디바이스(112)는 관련 노드를 다음의 현재 노드로 지정할 수 있고, 업데이트된 관련 노드가 목적지 노드가 될 때까지 다음 사이클을 실행할 수 있다.
일부 실시예들에서, 프로세싱 디바이스(112)는 노드의 비용을 결정하는 데 있어 출발 노드로부터 해당 노드까지의 제1 비용 및 해당 노드로부터 목적지 노드까지의 제2 비용에 기초하여 해당 노드의 비용을 결정할 수 있다. 예를 들어, 프로세싱 디바이스(112)는 아래의 수식 (6)에 따라 노드의 비용을 결정할 수 있다:
Figure pct00027
(6)
여기서
Figure pct00028
은 해당 노드의 일련 번호를 나타내고,
Figure pct00029
은 해당 노드의 비용를 나타내고,
Figure pct00030
은 출발 노드로부터 해당 노드까지의 제1 비용을 나타내고,
Figure pct00031
은 해당 노드로부터 목적지 노드까지의 제2 비용을 나타낸다.
일부 실시예들에서, 프로세싱 디바이스(112)는 아래의 수식 (7)에 따라 제1 비용을 결정할 수 있다:
Figure pct00032
(7)
여기서
Figure pct00033
은 노드의 가중치 값을 나타내고,
Figure pct00034
는 해당 노드의 부모 노드의 비용을 나타내고,
Figure pct00035
은 해당 노드의 부모 노드로부터 해당 노드까지의 비용을 나타내고,
Figure pct00036
은 해당 노드의 부모 노드로부터 해당 노드로의 턴 비용을 나타낸다.
일부 실시예들에서, 프로세싱 디바이스(112)는 아래의 수식 (8)에 따라 해당 노드의 부모 노드로부터 해당 노드까지의 비용을 결정할 수 있다:
Figure pct00037
(8)
여기서
Figure pct00038
Figure pct00039
는 해당 노드의 부모 노드의 X 좌표 및 Y 좌표를 각각 나타내고,
Figure pct00040
Figure pct00041
은 해당 노드의 X 좌표 및 Y 좌표를 각각 나타낸다.
일부 실시예들에서, 프로세싱 디바이스(112)는 아래의 수식 (9)에 따라 해당 노드의 부모 노드로부터 해당 노드로의 턴 비용을 결정할 수 있다:
Figure pct00042
(9)
여기서
Figure pct00043
는 해당 노드의 부모 노드의 타겟 각도를 나타내고,
Figure pct00044
은 해당 노드의 타겟 각도를 나타내고,
Figure pct00045
는 턴 비용의 가중 인자를 나타낸다.
일부 실시예들에서, 프로세싱 디바이스(112)는 아래의 수식 (10)에 따라 해당 노드로부터 목적지 노드까지의 제2 비용을 결정할 수 있다:
Figure pct00046
(10)
여기서
Figure pct00047
Figure pct00048
는 목적지 노드의 X 좌표 및 Y 좌표를 각각 나타낸다. 해당 노드로부터 목적지 노드까지의 제2 비용은 맨해튼 거리에 기초하여 결정될 수 있음을 알 수 있다. 맨해튼 거리는 설명의 목적으로 제공되었으며, 제2 비용은 또한 다른 거리들, 예를 들어, 유클리드 거리 들에 기초하여 결정될 수 있다.
상기 설명은 단지 예시의 목적들을 위해 제공되며, 본 개시의 범위를 제한하도록 의도되지 않는다는 것이 주의되어야 한다. 당 기술분야에서의 통상의 기술자들의 경우, 다수의 변형들 및 수정들이 본 개시의 교시들 하에서 이루어질 수 있다. 그러나, 이들 변화들 및 수정들은 본 개시의 범위로부터 벗어나지 않는다. 예를 들어, 프로세싱 디바이스(112)는 동작 710 이전에 동작 720을 수행할 수 있거나, 동작 710 및 동작 720을 동시에 수행할 수 있다. 다른 예로서, 프로세싱 디바이스(112)는 미리 결정된 시간 간격(예를 들어, 1분, 2분, 5분)에 따라 새로 획득된 움직임 상태 정보에 기초하여 타겟 노드 정보를 자동으로 업데이트할 수 있거나, 또는 타겟 노드 정보를 업데이트하기 위한 요청을 수신할 때 타겟 노드 정보를 업데이트할 수 있다.
도 8은 본 개시의 일부 실시예들에 따른 타겟 차량의 타겟 경로를 결정하기 위한 전형적인 프로세스를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(800)는 저장 ROM(230) 또는 RAM(240)에 저장된 명령들의 세트(예를 들어, 애플리케이션)로서 구현될 수 있다. 도 6의 프로세서(220) 및/또는 모듈들은 명령들의 세트를 실행할 수 있고, 명령들을 실행할 때 프로세서(220) 및/또는 모듈들은 프로세스(800)를 수행하도록 구성될 수 있다. 이하에서 제공되는 예시된 프로세스의 동작들은 예시적이도록 의도된다. 일부 실시예들에서, 프로세스(800)는 설명되지 않은 하나 이상의 부가적인 동작들로, 및/또는 여기서 논의된 동작들 중 하나 이상 없이 달성될 수 있다. 부가적으로, 도 8에 예시되고 이하에서 설명되는 바와 같이 프로세스의 동작들의 순서는 제한적이도록 의도되지 않는다.
801에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 움직임 상태 정보에 기초하여 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별할 수 있다. 동작 730과 관련하여 설명된 바와 같이, 하나 이상의 차량들 각각과 연관된 움직임 상태는 정지된 상태 및 이동하는 상태를 포함할 수 있다. 따라서, 하나 이상의 정지된 차량들은 정지된 상태에 있는 차량(들)이다.
802에서, 하나 이상의 정지된 차량들 각각에 대해, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역(예를 들어, 정지된 차량을 중심으로 하는 지역)을 결정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 정지된 차량에 의해 점유된 지역을 미리 설정된 지역으로 지정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 정지된 차량에 의해 점유된 지역을 확장(예를 들어, 비례적으로 확장)함으로써 미리 설정된 지역을 결정할 수 있다. 일부 실시예들에서, 미리 설정된 지역의 크기 및/또는 모양은 경로 계획 시스템(100)의 디폴트 설정일 수 있거나 또는 다른 상황들에 따라 조정 가능할 수 있다. 예를 들어, 정지된 차량의 크기가 클수록 사전 설정된 영역이 더 커질 수 있다. 다른 예로서, 맵에서 두 개의 인접한 노드들 사이의 거리가 짧을수록 사전 설정된 영역은 더 커질 수 있다. 또 다른 예로서, 사전 설정된 지역의 모양은 원형, 직사각형, 삼각형, 또는 임의의 규칙적 또는 불규칙적 모양을 포함할 수 있다.
803에서, 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 노드의 노드 정보를 수정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 미리 결정된 임계값보다 큰 가중치 값을 노드에 할당할 수 있다. 일부 실시예들에서, 노드의 가중치 값이 높을수록 노드의 총 비용이 더 커질 수 있고, 따라서 차량이 노드를 우회할 확률이 더 높을 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 또한 노드를 턴(turn)이 불가능한 노드로 지정할 수 있다(즉, 차량이 해당 노드에서 좌회전 또는 우회전하는 것이 허용되지 않음).
804에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 맵 및 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 후보 맵을 결정할 수 있다. 예를 들어, 프로세싱 디바이스(112)는 수정된 노드 정보로서 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 노드 정보를 업데이트함으로써 후보 맵을 생성할 수 있다.
805에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 후보 맵, 출발 위치, 및 목적지에 기초하여 타겟 차량의 후보 경로를 결정할 수 있다. 동작 740과 관련하여 설명된 바와 같이, 프로세싱 디바이스(112)는 후보 맵의 출발 위치에 기초하여 복수의 노드들로부터 후보 출발 노드를 결정할 수 있고, 후보 맵의 목적지에 기초하여 복수의 노드들로부터 후보 목적지 노드를 결정할 수 있고, 후보 출발 노드 및 후보 목적지 노드에 기초하여 후보 경로를 결정할 수 있다.
일부 실시예들에서, 프로세싱 디바이스(112)는 출발 위치에 가장 가까운 노드 또는 목적지에 가장 가까운 노드가 장벽인지 또는 타겟 차량과는 다른 차량들에 의해 점유되고 있는지 여부를 결정할 수 있다. 출발 위치에 가장 가까운 노드와 목적지에 가장 가까운 노드가 모두 장벽이 아니며 다른 차량들에 의해 점유되지 않는다는 결정에 응답하여, 프로세싱 디바이스(112)는 출발 위치에 가장 가까운 노드 및 목적지에 가장 가까운 노드를 후보 출발 노드 및 후보 목적지 노드로 각각 지정할 수 있다. 출발 위치에 가장 가까운 노드가 장벽이거나 타겟 차량과는 다른 차량에 의해 점유되고 있다는 결정에 응답하여, 프로세싱 디바이스(112)는 출발 위치에 대해 다음으로 가장 가까운 노드를 결정할 수 있고, 이용 가능한 노드가 식별될 때까지 다음으로 가장 가까운 노드가 장벽이거나 타겟 차량과는 다른 차량에 의해 점유되지는 여부를 결정할 수 있으며, 또는 프로세싱 디바이스(112)는 가장 가까운 노드가 해제될 때까지 대기할 수 있다. 목적지에 가장 가까운 노드가 장벽이거나 타겟 차량과는 다른 차량에 의해 점유되고 있다는 결정에 응답하여, 프로세싱 디바이스(112)는 경로 계획이 실패했다고 결정할 수 있거나, 또는 프로세싱 디바이스(112)는 가장 가까운 노드가 해제될 때까지 대기할 수 있다. 추가적으로 또는 대안적으로, 프로세싱 디바이스(112)는 목적지로부터 미리 결정된 거리(예를 들어, 20m, 50m, 70m, 100m) 내의 이용 가능한 노드를 후보 목적지 노드로 결정할 수 있다.
일부 실시예들에서, 동작 740과 관련하여 설명된 바와 같이, 프로세싱 디바이스(112)는 후보 출발 노드와 후보 목적지 노드 사이의 복수의 타겟 노드들과 연관된 복수의 비용들에 기초하여 후보 경로를 결정할 수 있다.
806에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩하는지 여부를 결정할 수 있다. 본 명세서에 사용된 바와 같이, 적어도 하나의 미리 결정된 경로는 하나 이상의 차량들 중 적어도 하나의 이동하는 차량에 대응할 수 있다.
후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 일부와 중첩되지 않는다는 결정에 응답하여, 807에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 후보 경로를 타겟 차량의 타겟 경로로 지정할 수 있다.
후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩된다는 결정에 응답하여, 808에서, 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 노드의 노드 정보를 추가로 수정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 노드를 장벽으로 지정할 수 있다.
809에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 움직임 상태 정보에 기초하여 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별할 수 있다. 하나 이상의 이동하는 차량들은 이동하는 상태에 있는 차량(들)이다.
810에서, 하나 이상의 이동하는 차량들 각각에 대해, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정할 수 있다. 예를 들어, 프로세싱 디바이스(112)는 이동하는 차량이 통과하지 않은 미리 결정된 경로의 일부 상의 모든 노드들을 결정할 수 있다. 다른 예로서, 프로세싱 디바이스(112)는 이동하는 차량이 통과하지 않은 미리 결정된 경로의 일부 상의 노드들 중 일부(예를 들어, 상위 N)를 결정할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 이동하는 차량들 각각에 대해, 프로세싱 디바이스(112)는 이동하는 차량과 연관된 사전 설정된 지역(예를 들어, 이동하는 차량을 중심으로 하는 지역으로서, 정지된 차량과 연관된 사전 설정된 지역을 결정하기 위한 방식과 유사한 방식으로 결정될 수 있음)을 결정할 수 있으며, 사전 설정된 지역 내에서 하나 이상의 노드들을 결정할 수 있다.
811에서, 이동하는 차량과 연관된 하나 이상의 노드들 각각에 대해, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 노드의 노드 정보를 수정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 미리 결정된 임계값(상기 설명된 정지된 차량과 연관된 가중치 값에 대응하는 미리 결정된 임계값과 상이하거나 동일할 수 있음)보다 큰 가중치 값을 노드에 할당할 수 있다.
812에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 맵, 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 제2 후보 맵을 결정할 수 있다. 예를 들어, 프로세싱 디바이스(112)는 수정된 노드 정보로서 하나 이상의 정지된 차량들 및 하나 이상의 이동하는 차량들의 각각과 연관된 하나 이상의 노드들의 노드 정보를 업데이트함으로써 제2 후보 맵을 생성할 수 있다.
813에서, 프로세싱 디바이스(112)(예를 들어, 경로 결정 모듈(640))(예를 들어, 프로세서(220)의 프로세싱 회로들)는 제2 후보 맵, 출발 위치, 및 목적지에 기초하여 타겟 차량의 제2 후보 경로를 결정할 수 있다. 동작 740 및 동작 805와 관련하여 설명된 바와 같이, 프로세싱 디바이스(112)는 제2 후보 맵의 출발 위치에 기초하여 복수의 노드들로부터 제2 후보 출발 노드를 결정할 수 있고, 제2 후보 맵의 목적지에 기초하여 복수의 노드들로부터 제2 후보 목적지 노드를 결정할 수 있고, 제2 후보 출발 노드 및 제2 후보 목적지 노드에 기초하여 제2 후보 경로를 결정할 수 있다. 일부 실시예들에서, 제2 후보 출발 노드는 상기한 후보 출발 노드와 동일하거나 상이할 수 있고; 유사하게, 제2 후보 목적지 노드는 상기한 후보 목적지 노드와 동일하거나 상이할 수 있다. 예를 들어, 후보 출발 노드가 제2 후보 맵에서 장벽이 아니거나 다른 차량들에 의해 점유되고 있지 않은 경우, 제2 후보 출발 노드는 후보 출발 노드와 동일할 수 있다.
일부 실시예들에서, 프로세싱 디바이스(112)는 제2 후보 경로를 타겟 경로로 직접 지정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스(112)는 또한 제2 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩되는지 여부를 결정할 수 있다. 제2 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 일부와 중첩되지 않는다는 결정에 응답하여, 프로세싱 디바이스(112)는 제2 후보 경로를 타겟 경로로 지정할 수 있다. 제2 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩된다는 결정에 응답하여, 프로세싱 디바이스(112)는 또한 제2 후보 맵에서 노드 정보의 적어도 일부를 수정함으로써 제2 후보 맵을 업데이트할 수 있으며, 또한 업데이트된 맵에 기초하여 경로 계획을 수행할 수 있다.
상기 설명은 단지 예시의 목적들을 위해 제공되며, 본 개시의 범위를 제한하도록 의도되지 않는다는 것이 주의되어야 한다. 당 기술분야에서의 통상의 기술자들의 경우, 다수의 변형들 및 수정들이 본 개시의 교시들 하에서 이루어질 수 있다. 그러나, 이들 변화들 및 수정들은 본 개시의 범위로부터 벗어나지 않는다. 예를 들어, 동작들 801-807은 생략될 수 있고, 프로세싱 디바이스(112)는 하나 이상의 정지된 차량들과 연관된 노드(들)의 노드 정보 및 하나 이상의 이동하는 차량들과 연관된 노드(들)의 노드 정보를 수정함으로써 제2 후보 맵("타겟 맵"으로 간주될 수 있음)을 직접 생성할 수 있으고, 제2 후보 맵에 기초하여 타겟 경로를 결정할 수 있다.
도 9는 본 개시의 일부 실시예들에 따른 태스크를 할당하기 위한 전형적인 프로세스를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(900)는 저장 ROM(230) 또는 RAM(240)에 저장된 명령들의 세트(예를 들어, 애플리케이션)로서 구현될 수 있다. 도 6의 프로세서(220) 및/또는 모듈들은 명령들의 세트를 실행할 수 있고, 명령들을 실행할 때 프로세서(220) 및/또는 모듈들은 프로세스(900)를 수행하도록 구성될 수 있다. 이하에서 제공되는 예시된 프로세스의 동작들은 예시적이도록 의도된다. 일부 실시예들에서, 프로세스(900)는 설명되지 않은 하나 이상의 부가적인 동작들로, 및/또는 여기서 논의된 동작들 중 하나 이상 없이 달성될 수 있다. 부가적으로, 도 9에 예시되고 이하에서 설명되는 바와 같이 프로세스의 동작들의 순서는 제한적이도록 의도되지 않는다.
910에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 인터페이스 회로들 또는 프로세싱 회로들)는 태스크를 획득할 수 있다. 일부 실시예들에서, 태스크는 대상(예를 들어, 상품, 음식, 승객)을 배송 위치로 배송하기 위한 태스크일 수 있다.
920에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 프로세싱 회로들)는 태스크이 지정된 태스크인지 여부를 결정할 수 있다.
태스크가 지정되지 않은 태스크라는 결정에 응답하여, 930에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 프로세싱 회로들)는 해당 태스크를 위한 스케줄 가능한 차량(즉, 해당 차량에 의해 실행되거나 실행 중인 태스크가 없음)을 선택할 수 있다. 예를 들어, 프로세싱 디바이스(112)는 배송 위치에 가장 가까운 스케쥴 가능한 차량을 선택할 수 있다.
940에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 프로세싱 회로들)는 스케줄 가능한 차량에 태스크를 할당할 수 있다.
태스크가 지정된 태스크라는 결정에 응답하여, 950에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 프로세싱 회로들)는 지정된 태스크에 대응하는 지정된 차량이 스케줄 가능한지 여부를 결정할 수 있다.
지정된 태스크에 대응하는 지정된 차량이 스케줄 가능하다는 결정에 응답하여, 960에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 프로세싱 회로들)는 지정된 태스크를 대응하는 지정된 차량에 할당할 수 있다.
지정된 태스크에 대응하는 지정된 차량이 스케줄 가능하지 않은 상태에 있다는 결정에 응답하여, 970에서, 프로세싱 디바이스(112)(예를 들어, 태스크 할당 모듈)(예를 들어, 프로세서(220)의 프로세싱 회로들)는 해당 차량이 스케줄 가능하게 될 때까지 지정된 태스크를 대응하는 지정된 차량에 할당한다.
일부 실시예들에서, 지정된 태스크를 대응하는 지정된 차량에 할당하기 전에, 프로세싱 디바이스(112)는 지정된 차량에 의해 보고된 위치가 정확한지 여부를 결정할 수 있다. 대응하는 지정된 차량에 의해 보고된 위치가 정확하다는 결정에 응답하여, 프로세싱 디바이스(112)는 지정된 태스크를 대응하는 지정된 차량에 할당할 수 있다. 대응하는 지정된 차량에 의해 보고된 위치가 부정확하다는 결정에 응답하여, 프로세싱 디바이스(112)는 태스크 할당이 실패했다고 결정할 수 있다. 추가적으로 또는 대안적으로, 프로세싱 디바이스(112)는 포지셔닝 디바이스를 사용하여 지정된 차량의 정확한 위치를 획득하고 지정된 태스크를 지정된 차량에 할당할 수 있다.
상기 설명은 단지 예시의 목적들을 위해 제공되며, 본 개시의 범위를 제한하도록 의도되지 않는다는 것이 주의되어야 한다. 당 기술분야에서의 통상의 기술자들의 경우, 다수의 변형들 및 수정들이 본 개시의 교시들 하에서 이루어질 수 있다. 그러나, 이들 변화들 및 수정들은 본 개시의 범위로부터 벗어나지 않는다.
도 10은 본 개시의 일부 실시예들에 따른 노드의 전형적인 노드 정보를 도시하는 개략도이다. 도 10에 도시된 바와 같이, 노드 1을 예로 들면, 노드 1은 노드 4에서 노드 2로의 방향, 노드 2에서 노드 5로의 방향, 노드 5에서 노드 3으로의 방향, 및 노드 3에서 노드 5로의 방향을 따라 통과할 수 있다. 또한 노드 1의 인접 노드에는 노드 2, 노드 3, 노드 4, 및 노드 5가 포함됨을 알 수 있다. 직선 화살표들로 표시된 것처럼, 노드 1은 4개의 인접한 노드와 상호 연결되고, 즉, 4개의 인접한 노드들은 노드 1로부터 도달 가능하다. 또한 ,노드 1은 또한 원형 화살표로 표시된 것처럼 회전할 수 있다.
도 11은 본 개시의 일부 실시예들에 따른 정지된 차량과 연관된 전형적인 노드들 및 이동하는 정지된 차량과 연관된 전형적인 노드들을 도시하는 개략도이다.
도 11에 도시된 바와 같이, 지역(1110)은 출발 위치 및 목적지를 포함하는 타겟 지역을 지칭하고, 1120은 타겟 지역에서 정지된 차량(차량 B로 표시)을 나타내고, 1140은 타겟 지역에서 이동하는 차량(차량 C로 표시)을 지칭한다. 도 8과 관련하여 설명된 바와 같이, 정지된 차량(1120)에 대해, 프로세싱 디바이스(112)는 정지된 차량(1120)을 중심으로 하는 사전 설정된 지역(1130)을 결정할 수 있다. 미리 설정된 지역(1130)은 노드 14, 노드 15, 및 노드 16을 포함함을 알 수 있다. 또한, 3개의 노드들 각각에 대해, 프로세싱 디바이스(112)는 본 개시의 다른 곳에서 설명된 바와 같이 노드의 노드 정보를 수정할 수 있다. 이동하는 차량(1140)의 경우, 프로세싱 디바이스(112)는 미리 결정된 미래 기간에 통과될 이동하는 차량에 대응하는 미리 결정된 경로(화살표로 표시됨)의 일부를 획득할 수 있다. 미리 결정된 경로의 일부가 점선 박스에서 노드 12, 노드 18, 노드 24, 및 노드 30을 포함함을 알 수 있다. 또한, 4개의 노드들 각각에 대해, 프로세싱 디바이스(112)는 본 개시의 다른 곳에서 설명된 바와 같이 노드의 노드 정보를 수정할 수 있다.
일부 실시예들에서, 본 개시는 또한 컴퓨터 프로그램을 저장하는 저장 매체를 제공할 수 있다. 프로세서에 의해 실행될 때, 컴퓨터 프로그램은 본 개시의 다른 곳에서 설명된 프로세스(예를 들어, 프로세스 400, 프로세스 500, 프로세스 700, 프로세스 800, 프로세스 900)를 수행하도록 프로세서에 지시할 수 있다.
일부 실시예들에서, 본 개시는 또한 프로세서 및 저장소를 포함하는 전자 디바이스를 제공할 수 있으며, 상기 저장소는 컴퓨터 프로그램을 저장한다. 프로세서에 의해 실행될 때, 컴퓨터 프로그램은 본 개시의 다른 곳에서 설명된 프로세스(예를 들어, 프로세스 400, 프로세스 500, 프로세스 700, 프로세스 800, 프로세스 900)를 수행하도록 프로세서에 지시할 수 있다.
기본 개념들을 그에 따라 설명하였지만, 이러한 상세한 개시를 판독한 후, 앞서 말한 상세한 개시는 단지 예로서 제공되도록 의도되며 제한적이지 않다는 것이 이 기술분야의 숙련자들에게 꽤 명백할 수 있다. 여기에서 명확하게 서술되지 않을지라도, 다양한 변화들, 개선들, 및 수정들이 발생할 수 있으며 이 기술분야의 숙련자들에게 의도된다. 이들 변경들, 개선들, 및 수정들은 본 개시에 의해 제안되도록 의도되며, 본 개시의 전형적인 실시예들의 사상 및 범위 내에 있다.
게다가, 특정한 용어는 본 개시의 실시예들을 설명하기 위해 사용되었다. 예를 들어, 용어들("일 실시 예", "실시 예", 및/또는 "몇몇 실시 예들")은 실시예와 관련되어 설명된 특정한 특징, 구조 또는 특성이 본 개시의 적어도 하나의 실시예 내에 있다는 것을 의미한다. 그러므로, 본 명세서의 다양한 부분들에서 "실시예" 또는 "일 실시예" 또는 "대안적인 실시예"에 대한 두 개 이상의 참조들은 반드시 모두가 동일한 실예에를 참조하는 것은 아니라는 것이 강조되고 이해되어야 한다. 더욱이, 특정한 특징들, 구조들 또는 특성들은 본 개시의 하나 이상의 실시예들에서 적절하게 조합될 수 있다.
뿐만 아니라, 본 개시의 양상들은 임의의 새롭고 유용한 프로세스, 가계, 제조, 또는 물질의 구성, 또는 그것의 임의의 새롭고 유용한 개선을 포함한 다수의 특허 가능한 클래스들 또는 문맥 중 임의의 것에서 예시되고 설명될 수 있다는 것이 이 기술분야의 숙련자에 의해 이해될 것이다. 따라서, 본 개시의 양상들은 전적으로 하드웨어, 전적으로 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함한) 또는 모두 일반적으로 여기에서 "유닛", "모듈", 또는 "시스템"으로서 불리울 수 있는 소프트웨어 및 하드웨어 구현을 조합하여 구현될 수 있다. 더욱이, 본 개시의 양상들은 그것 상에 컴퓨터 판독 가능한 프로그램 코드를 구체화한 하나 이상의 컴퓨터 판독 가능한 미디어에 구체화된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
컴퓨터 판독 가능한 신호 매체는 그 안에, 예를 들어, 기저대역에 또는 캐리어 파의 일부로서 구체화된 컴퓨터 판독 가능한 프로그램 코드를 갖고 전파된 데이터 신호를 포함할 수 있다. 이러한 전파된 신호는 전자기, 광학 등, 또는 그것의 임의의 적절한 조합을 포함한, 다양한 형태들 중 임의의 것을 취할 수 있다. 컴퓨터 판독 가능한 신호 매체는 컴퓨터 판독 가능한 저장 매체가 아니며 지시 실행 시스템, 장치, 또는 디바이스에 의해 또는 그것과 관련되어 사용을 위한 프로그램을 전달하고, 전파하거나, 또는 수송할 수 있는 임의의 컴퓨터 판독 가능한 매체일 수 있다. 컴퓨터 판독 가능한 신호 매체상에 구체화된 프로그램 코드는 무선, 와이어라인, 광섬유 케이블, RF 등, 또는 앞서 말한 것의 임의의 적절한 조합을 포함하여, 임의의 적절한 매체를 사용하여 송신될 수 있다.
본 개시의 양상들을 위한 동작들을 실행하기 위한 컴퓨터 프로그램 코드는 Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python 등과 같은 객체 지향 프로그래밍 언어, "C" 프로그래밍 언어, 비주얼 베이직, 포트란 2003, Perl, COBOL 2002, PHP, ABAP와 같은 기존의 절차형 프로그래밍 언어들, Phythod, Ruby 및 Groovy와 같은 동적 프로그래밍 언어들, 또는 다른 프로그래밍 언어들을 포함하여, 하나 이상의 프로그래밍 언어들의 임의의 조합으로 기록될 수 있다. 프로그램 코드는 전적으로 사용자 컴퓨터상에서, 부분적으로 사용자 컴퓨터상에서, 독립형 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 및 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터 또는 서버상에서 실행할 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)를 포함하여, 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 또는 연결은 외부 컴퓨터에 대해(예를 들어, 인터넷 서비스 제공자를 사용하여 인터넷을 통해) 또는 클라우드 컴퓨팅 환경에서 이루어지거나 또는 서비스로서 소프트웨어(SaaS)와 같은 서비스로서 제공될 수 있다.
더욱이, 프로세싱 요소들 또는 시퀀스들의 나열된 순서, 또는 숫자들, 글자들, 또는 다른 지정들의 사용은, 그러므로 청구항들에서 특정될 수 있는 경우를 제외하고 청구된 프로세스들 및 방법들을 임의의 순서에 제한하도록 의도되지 않는다. 상기 개시는 다양한 예들을 통해 현재 본 개시의 다양한 유용한 실시예들인 것으로 고려되는 것을 논의하지만, 이러한 세부사항은 단지 그 목적을 위한 것이고 첨부된 청구항들은 개시된 실시예들에 제한되지 않으며, 그와는 대조적으로 개시된 실시예들의 사상 및 범위 내에 있는 수정들 및 동등한 배열들을 커버하도록 의도된다는 것이 이해될 것이다. 예를 들어, 상기 설명된 다양한 구성요소들의 구현은 하드웨어 디바이스에서 구체화될 수 있지만, 그것은 또한 소프트웨어 전용 솔루션, 예컨대, 기존의 서버 또는 이동 디바이스 상에서의 설치로서 구현될 수 있다.
유사하게, 본 개시의 실시예들의 앞서 말한 설명에서, 다양한 특징들은 때때로 다양한 실시예들 중 하나 이상의 이해를 도울 때 본 개시를 간소화하기 위한 목적으로 단일 실시예, 도면, 또는 그것의 설명에서 함께 그룹핑된다는 것이 이해되어야 한다. 본 개시의 이러한 방법은, 그러나, 청구된 주제가 각각의 청구항에서 명확하게 나열된 것보다 많은 특징들을 요구한다는 의도를 반영한 것으로 해석되지 않을 것이다. 오히려, 청구된 청구 대상은 앞서 개시된 단일 실시예의 모든 특징들보다 적게 될 수 있다.

Claims (48)

  1. 토폴로지 맵에 기초한 자동 안내 차량(AGV: Automatic Guided Vehicle)에 대한 경로 계획(route planning)을 위한 방법에 있어서:
    스케줄링 시스템에 대응하는 토폴로지 맵을 획득하는 단계;
    상기 토폴로지 맵을 전처리하여 상기 스케줄링 시스템에서 복수의 AGV들과 연관된 움직임 상태 정보 및 상기 토폴로지 맵에서 상기 복수의 AGV들에 의해 점유되는 복수의 노드들에 기초하여 상기 토폴로지 맵의 노드 정보를 수정함으로써 수정된 토폴로지 맵을 획득하는 단계;
    상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하는 단계;
    상기 수정된 토폴로지 맵의 노드 정보에 기초하여, 상기 출발 노드와 상기 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들을 결정하는 단계; 및
    상기 복수의 총 비용들에 기초하여 상기 현재 AGV에 대한 경로 계획을 수행하는 단계를 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  2. 제1항에 있어서, 상기 움직임 상태 정보는 이동하는 상태 및 정지된 상태를 포함하고, 상기 토폴로지 맵을 전처리하는 것은:
    상기 토폴로지 맵에서 제1 전처리를 수행하는 단계로서:
    상기 토폴로지 맵에서 현재 AGV와는 다른 정지된 AGV들 각각에 대해, 상기 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보가 수정하는 것; 및
    제1 수정된 토폴로지 맵을 생성하는 것에 의해, 상기 제1 전처리를 수행하는 단계; 및/또는
    상기 토폴로지 맵에서 제2 전처리를 수행하는 단계로서:
    상기 토폴로지 맵에서 현재 AGV와는 다른 정지된 AGV들 각각에 대해, 상기 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보를 수정하는 것;
    상기 토폴로지 맵에서 이동하는 AGV들 각각에 대해, 상기 이동하는 AGV가 통과하지 않은 계획된 경로의 하나 이상의 노드들의 노드 정보를 수정하는 것; 및
    제2 수정된 토폴로지 맵을 생성하는 것에 의해, 상기 제2 전처리를 수행하는 단계를 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  3. 제2항에 있어서, 상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하는 단계, 상기 수정된 토폴로지 맵의 노드 정보에 기초하여 상기 출발 노드와 상기 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들을 결정하는 단계, 및 상기 복수의 총 비용들에 기초하여 상기 현재 AGV에 대한 경로 계획을 수행하는 단계는:
    상기 제1 수정된 토폴로지 맵에서 현재 AGV의 제1 출발 노드와 제1 목적지 노드를 결정하는 단계;
    상기 제1 수정된 토폴로지 맵의 노드 정보에 기초하여 상기 제1 출발 노드와 상기 제1 목적지 노드 사이의 복수의 제1 노드들과 연관된 복수의 제1 총 비용들을 결정하는 단계;
    상기 복수의 제1 총 비용들에 기초하여 상기 현재 AGV에 대한 제1 경로 계획을 수행하는 단계;
    현재 AGV가 상기 제1 경로 계획의 제1 경로를 따라 이동하는 경우 상기 현재 AGV가 하나 이상의 이동하는 AGV들 중 적어도 하나와 충돌하는 것으로 검출하는 데 응답하여, 제2 수정된 토폴로지 맵에서 상기 현재 AGV의 제2 출발 노드 및 제2 목적지 노드를 결정하는 단계;
    상기 제2 수정된 토폴로지 맵의 노드 정보에 기초하여 상기 제2 출발 노드와 상기 제2 목적지 노드 사이의 복수의 제2 노드들과 연관된 복수의 제2 총 비용들을 결정하는 단계; 및
    상기 복수의 제2 총 비용들에 기초하여 상기 현재 AGV에 대한 제2 경로 계획을 수행하는 단계를 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  4. 제2항에 있어서, 상기 토폴로지 맵에서 상기 현재 AGV와는 다른 정지된 AGV들 각각에 대해, 상기 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보를 수정하는 것은;
    상기 토폴로지 맵에서 상기 현재 AGV와는 다른 정지된 AGV들 각각에 대해,
    상기 정지된 AGV를 중심으로 하는 미리 설정된 지역 내의 하나 이상의 노드들의 하나 이상의 가중치 값들을 하나 이상의 높은 가중치 값들로 수정하는 단계로서, 상기 하나 이상의 높은 가중치 값들 각각은 미리 설정된 임계값보다 큰, 상기 수정 단계, 및
    상기 하나 이상의 노드들을 턴(turn)을 할 수 없는 노드들로 설정하는 단계를 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  5. 제2항에 있어서,
    상기 토폴로지 맵에서 상기 현재 AGV와는 다른 정지된 AGV들 각각에 대해, 상기 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들의 노드 정보를 수정하는 것; 및
    상기 토폴로지 맵에서 이동하는 AGV들 각각에 대해, 상기 이동하는 AGV가 통과하지 않은 계획된 경로의 하나 이상의 노드들의 노드 정보를 수정하는 것은:
    상기 토폴로지 맵에서 상기 현재 AGV와는 다른 정지된 AGV들 각각에 대해,
    상기 정지된 AGV를 중심으로 하는 사전 설정된 지역 내의 하나 이상의 노드들을 통과할 수 없는 노드들로 설정하는 단계, 및
    상기 하나 이상의 노드들을 하나 이상의 장벽들로 지정하는 단계; 및
    상기 토폴로지 맵에서 상기 현재 AGV와는 다른 이동하는 AGV들 각각에 대해, 상기 이동하는 AGV가 통과하지 않은 계획된 경로의 하나 이상의 노드들의 하나 이상의 가중치 값들을 하나 이상의 높은 가중치 값들로 설정하는 단계로서, 상기 하나 이상의 높은 가중치 값들 각각은 미리 설정된 임계값보다 큰, 상기 설정 단계를 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  6. 제1항에 있어서, 상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하는 단계 후에, 상기 방법은:
    상기 출발 노드 또는 상기 목적지 노드가 상기 수정된 토폴로지 맵의 노드 정보에 기초하여 장벽(barrier)인 것으로 결정되는 경우 경로 계획의 실패를 결정하는 단계를 더 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  7. 제1항에 있어서, 상기 수정된 토폴로지 맵의 노드 정보에 기초하여 상기 출발 노드와 상기 목적지 노드 사이의 복수의 노드들과 연관된 복수의 총 비용들을 결정하는 단계, 및 상기 복수의 총 비용들에 기초하여 상기 현재 AGV에 대한 경로 계획을 수행하는 단계는:
    상기 출발 노드를 경로의 제1 현재 노드로 지정하는 단계;
    각각의 사이클마다, 업데이트된 현재 노드를 결정하고 상기 업데이트된 현재 노드가 목적지 노드가 아닌 것으로 결정할 경우:
    상기 경로의 노드들과는 다른 하나 이상의 노드들에 대응하는 하나 이상의 총 비용들을 결정하는 것;
    최소 총 비용을 갖는 노드를 상기 경로 상의 노드로 그리고 상기 업데이트된 현재 노드의 다음 노드로 결정하는 것; 및
    상기 다음 노드를 다음 사이클에서 업데이트된 현재 노드로 결정하는 것에 의해, 상기 업데이트된 현재 노드의 다음 노드를 결정하는 단계를 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  8. 제7항에 있어서, 상기 경로의 노드들과는 다른 하나 이상의 노드들에 대응하는 하나 이상의 총 비용들을 결정하는 것은:
    상기 하나 이상의 노드들 각각에 대해, 상기 현재 노드로부터 해당 노드까지의 비용 및 해당 노드로부터 목적지 노드까지의 비용의 합을 결정함으로써 해당 노드에 대응하는 총 비용을 결정하는 것을 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  9. 제8항에 있어서, 상기 현재 노드로부터 해당 노드까지의 비용은 상기 현재 노드에 대응하는 총 비용, 해당 노드의 가중치 값, 상기 현재 노드로부터 해당 노드까지의 거리에 기초하여 결정된 거리 비용, 및 상기 현재 노드로부터 해당 노드로의 턴 비용에 기초하여 결정되는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  10. 제7항에 있어서, 상기 최소 총 비용을 갖는 노드를 결정하는 것은:
    이진 힙 구조(binary heap structure)에 기초하여 최소 총 비용을 갖는 노드를 결정하는 것을 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  11. 제1항에 있어서, 상기 수정된 토폴로지 맵에서 현재 AGV의 출발 노드와 목적지 노드를 결정하기 전에, 상기 방법은 또한:
    상기 스케줄링 시스템에 의해 할당된 태스크(task)를 획득하는 단계로서, 상기 태스크는 지정된 태스크 및 지정되지 않은 태스크를 포함하는, 상기 할당된 태스크를 획득하는 단계를 포함하고;
    상기 수정된 토폴로지 맵에 기초하여 상기 현재 AGV의 목적지 노드를 결정하는 것은:
    상기 현재 AGV의 지정된 태스크 및 지정되지 않은 태스크에 기초하여 상기 목적지 노드를 결정하는 것을 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  12. 제1항에 있어서, 상기 수정된 토폴로지 맵에 기초하여 상기 현재 AGV의 출발 노드를 결정하는 것은:
    상기 현재 AGV에 가장 가까운 노드를 결정하는 것; 및
    상기 현재 AGV와는 다른 AGV들에 의해 점유되지 않을 때 상기 노드를 상기 출발 노드로 지정하는 것을 포함하는, 토폴로지 맵에 기초한 자동 안내 차량에 대한 경로 계획 방법.
  13. 토폴로지 맵에 기초한 자동 안내 차량(AGV)에 대한 경로 계획을 위한 디바이스에 있어서:
    적어도 하나의 프로세서; 및
    프로그램 코드들을 포함하는 적어도 하나의 저장소를 포함하며,
    상기 프로그램 코드들이 적어도 하나의 프로세서에 의해 실행될 때 상기 프로그램 코드들은 제1항 내지 제12항 중 어느 한 항의 방법을 실행하도록 상기 적어도 하나의 프로세서에 지시하는, 디바이스.
  14. 컴퓨터 프로그램들을 포함하는 컴퓨터 판독 가능한 저장 매체로서, 상기 컴퓨터 프로그램들은 제1항 내지 제12항 중 어느 한 항의 방법이 실행되도록 하는, 컴퓨터 판독 가능한 저장 매체.
  15. 경로 계획을 위한 시스템으로서:
    명령들의 세트를 포함하는 적어도 하나의 저장 디바이스; 및
    상기 적어도 하나의 저장 디바이스와 통신하는 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는 상기 명령들의 세트를 실행할 때, 상기 시스템으로 하여금:
    타겟 차량의 출발 위치 및 목적지를 획득하고;
    상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하고 - 상기 맵은 복수의 노드들 각각의 노드 정보를 포함함 -;
    상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하고;
    상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하게 하도록 구성되는, 경로 계획을 위한 시스템.
  16. 제15항에 있어서, 상기 복수의 노드들 각각의 노드 정보는 상기 노드의 위치, 상기 노드의 바코드, 상기 노드의 좌표, 상기 노드의 통행 가능성, 상기 노드의 턴 능력(turn capability), 인접 노드들의 개수, 또는 상기 노드의 상기 인접 노드들에 대한 연결성 중 적어도 하나를 포함하는, 경로 계획을 위한 시스템.
  17. 제15항 또는 제16항에 있어서, 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 적어도 하나의 프로세서는 상기 시스템으로 하여금:
    상기 복수의 노드들 중 적어도 하나에 대해, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보에 기초하여, 상기 복수의 노드들 중 적어도 하나의 각각의 노드 정보의 적어도 일부를 수정함으로써 타겟 노드 정보를 결정하고;
    상기 맵 및 상기 복수의 노드들 중 적어도 하나의 타겟 노드 정보에 기초하여 타겟 맵을 생성하고;
    상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하게 하도록 구성되는, 경로 계획을 위한 시스템.
  18. 제17항에 있어서, 상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 적어도 하나의 프로세서는 또한 상기 시스템으로 하여금:
    상기 타겟 맵에서의 출발 위치에 기초하여 상기 복수의 노드들로부터 출발 노드를 결정하고;
    상기 타겟 맵에서의 목적지에 기초하여 상기 복수의 노드들로부터 목적지 노드를 결정하고;
    상기 출발 노드와 상기 목적지 노드 사이의 복수의 타겟 노드들과 연관된 복수의 비용들에 기초하여 상기 타겟 차량의 타겟 경로를 결정하게 하도록 구성되고, 상기 노드의 비용은 상기 출발 노드로부터 상기 노드까지의 제1 비용 및 상기 노드로부터 상기 목적지 노드까지의 제2 비용에 기초하여 결정되는, 경로 계획을 위한 시스템.
  19. 제18항에 있어서, 상기 출발 노드로부터 상기 노드까지의 제1 비용은 상기 노드의 가중치 값, 상기 노드의 부모 노드의 비용, 상기 노드의 부모 노드로부터 상기 노드까지의 비용, 및 상기 타겟 맵에서 상기 노드의 부모 노드로부터 상기 노드로의 턴 비용(turn cost)에 기초하여 결정되는, 경로 계획을 위한 시스템.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서, 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 적어도 하나의 프로세서는 상기 시스템으로 하여금:
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별하고;
    상기 하나 이상의 정지된 차량들 각각에 대해, 상기 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역을 결정하고;
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하고;
    상기 맵 및 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 후보 맵을 결정하고;
    상기 후보 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 후보 경로를 결정하게 하도록 구성되는, 경로 계획을 위한 시스템.
  21. 제20항에 있어서, 상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하기 위해 상기 적어도 하나의 프로세서는:
    미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당하고;
    상기 노드를 턴을 할 수 없는 노드로 지정하도록 지시되는, 경로 계획을 위한 시스템.
  22. 제20항 또는 제21항에 있어서, 상기 적어도 하나의 프로세서는 또한 상기 시스템으로 하여금:
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩하는지 여부를 결정하고 - 상기 적어도 하나의 미리 결정된 경로는 상기 하나 이상의 차량들 중 적어도 하나의 이동하는 차량에 대응함 -;
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로와 중첩되지 않는다는 결정에 응답하여, 상기 후보 경로를 상기 타겟 차량의 타겟 경로로 지정하게 하도록 구성되는, 경로 계획을 위한 시스템.
  23. 제22항에 있어서, 상기 적어도 하나의 프로세서는 또한 상기 시스템으로 하여금:
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩된다는 결정에 응답하여, 상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해 상기 노드의 노드 정보를 수정하고;
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별하고;
    상기 하나 이상의 이동하는 차량들 각각에 대해, 상기 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정하고;
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하고;
    상기 맵, 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 상기 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 제2 후보 맵을 결정하고;
    상기 제2 후보 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 제2 후보 경로를 결정하게 하도록 구성되는, 경로 계획을 위한 시스템.
  24. 제 23 항에 있어서,
    상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하기 위해 상기 적어도 하나의 프로세서는 상기 시스템으로 하여금:
    상기 노드를 장벽으로 지정하게 하도록 구성되고;
    상기 이동하는 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하기 위해 상기 적어도 하나의 프로세서는 상기 시스템으로 하여금:
    미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당하게 하도록 구성되는, 경로 계획을 위한 시스템.
  25. 제15항 내지 제24항 중 어느 한 항에 있어서, 상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 적어도 하나의 프로세서는 또한 상기 시스템으로 하여금:
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별하고;
    상기 하나 이상의 정지된 차량들 각각에 대해, 상기 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역을 결정하고;
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드를 장벽으로 지정함으로써 상기 노드의 노드 정보를 수정하고;
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별하고;
    상기 하나 이상의 이동하는 차량들 각각에 대해, 상기 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정하고;
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당함으로써 상기 노드의 노드 정보를 수정하고;
    상기 맵, 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 상기 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 타겟 맵을 결정하고;
    상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하게 하도록 구성되는, 경로 계획을 위한 시스템.
  26. 적어도 하나의 프로세서, 적어도 하나의 저장 매체, 및 네트워크에 연결된 통신 플랫폼을 포함하는 컴퓨팅 디바이스에서 구현되는 방법으로서:
    타겟 차량의 출발 위치 및 목적지를 획득하는 단계;
    상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하는 단계로서, 상기 맵은 복수의 노드들 각각의 노드 정보를 포함하는, 상기 타겟 지역의 맵을 획득하는 단계;
    상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하는 단계; 및
    상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  27. 제26항에 있어서, 상기 복수의 노드들 각각의 노드 정보는 상기 노드의 위치, 상기 노드의 바코드, 상기 노드의 좌표, 상기 노드의 통행 가능성, 상기 노드의 턴 능력, 인접 노드들의 개수, 또는 상기 노드의 상기 인접 노드들에 대한 연결성 중 적어도 하나를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  28. 제26항 또는 제27항에 있어서, 상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계는:
    상기 복수의 노드들 중 적어도 하나에 대해, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보에 기초하여 상기 복수의 노드들 중 적어도 하나의 각각의 노드 정보의 적어도 일부를 수정함으로써 타겟 노드 정보를 결정하는 단계;
    상기 맵 및 상기 복수의 노드들 중 적어도 하나의 타겟 노드 정보에 기초하여 타겟 맵을 생성하는 단계; 및
    상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  29. 제28항에 있어서, 상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계는:
    상기 타겟 맵에서의 출발 위치에 기초하여 상기 복수의 노드들로부터 출발 노드를 결정하는 단계;
    상기 타겟 맵에서의 목적지에 기초하여 상기 복수의 노드들로부터 목적지 노드를 결정하는 단계; 및
    상기 출발 노드와 상기 목적지 노드 사이의 복수의 타겟 노드들과 연관된 복수의 비용들에 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계로서, 상기 노드의 비용은 상기 출발 노드로부터 상기 노드까지의 제1 비용 및 상기 노드로부터 상기 목적지 노드까지의 제2 비용에 기초하여 결정되는, 타겟 차량의 타겟 경로를 결정하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  30. 제29항에 있어서, 상기 출발 노드로부터 상기 노드까지의 제1 비용은 상기 노드의 가중치 값, 상기 노드의 부모 노드의 비용, 상기 노드의 부모 노드로부터 상기 노드까지의 비용, 상기 타겟 맵에서 상기 노드의 부모 노드로부터 상기 노드로의 턴 비용에 기초하여 결정되는, 컴퓨팅 디바이스에서 구현되는 방법.
  31. 제26항 내지 제30항 중 어느 한 항에 있어서, 상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계는:
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별하는 단계;
    상기 하나 이상의 정지된 차량들 각각에 대해, 상기 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역을 결정하는 단계;
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하는 단계;
    상기 맵 및 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 후보 맵을 결정하는 단계; 및
    상기 후보 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 후보 경로를 결정하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  32. 제31항에 있어서, 상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하는 단계는:
    미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당하는 단계; 및
    상기 노드를 턴을 할 수 없는 노드로 지정하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  33. 제31항 또는 제32항에 있어서,
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩하는지 여부를 결정하는 단계로서, 상기 적어도 하나의 미리 결정된 경로는 상기 하나 이상의 차량들 중 적어도 하나의 이동하는 차량에 대응하는, 상기 중첩하는지 여부를 결정하는 단계; 및
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로와 중첩되지 않는다는 결정에 응답하여, 상기 후보 경로를 상기 타겟 차량의 타겟 경로로 지정하는 단계를 더 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  34. 제33항에 있어서,
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩된다는 결정에 응답하여, 상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해 상기 노드의 노드 정보를 수정하는 단계;
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별하는 단계;
    상기 하나 이상의 이동하는 차량들 각각에 대해, 상기 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정하는 단계;
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하는 단계;
    상기 맵, 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 상기 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 제2 후보 맵을 결정하는 단계; 및
    상기 제2 후보 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 제2 후보 경로를 결정하는 단계를 더 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  35. 제 34 항에 있어서,
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하는 단계는:
    상기 노드를 장벽으로 지정하는 단계를 포함하고,
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하는 단계는:
    미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  36. 제26항 내지 제35항 중 어느 한 항에 있어서, 상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계는:
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별하는 단계;
    상기 하나 이상의 정지된 차량들 각각에 대해, 상기 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역을 결정하는 단계;
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드를 장벽으로 지정함으로써 상기 노드의 노드 정보를 수정하는 단계;
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별하는 단계;
    상기 하나 이상의 이동하는 차량들 각각에 대해, 상기 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정하는 단계;
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당함으로써 상기 노드의 노드 정보를 수정하는 단계; 상기 맵, 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 상기 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 상기 타겟 맵을 결정하는 단계; 및
    상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계를 포함하는, 컴퓨팅 디바이스에서 구현되는 방법.
  37. 경로 계획을 위한 시스템으로서:
    타겟 차량의 출발 위치 및 목적지를 획득하도록 구성된 위치 획득 모듈;
    상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하도록 구성된 맵 획득 모듈로서, 상기 맵은 복수의 노드들 각각의 노드 정보를 포함하는, 상기 맵 획득 모듈;
    상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하도록 구성된 움직임 상태 획득 모듈; 및
    상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하도록 구성된 경로 결정 모듈을 포함하는, 경로 계획을 위한 시스템.
  38. 제37항에 있어서, 상기 복수의 노드들 각각의 노드 정보는 상기 노드의 위치, 상기 노드의 바코드, 상기 노드의 좌표, 상기 노드의 통행 가능성, 상기 노드의 턴 능력, 인접 노드들의 개수, 또는 상기 노드의 상기 인접 노드들에 대한 연결성 중 적어도 하나를 포함하는, 경로 계획을 위한 시스템.
  39. 제37항 또는 제38항에 있어서, 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 경로 결정 모듈은 또한:
    상기 복수의 노드들 중 적어도 하나에 대해, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보에 기초하여 상기 복수의 노드들 중 적어도 하나의 각각의 노드 정보의 적어도 일부를 수정함으로써 타겟 노드 정보를 결정하고;
    상기 맵 및 상기 복수의 노드들 중 적어도 하나의 타겟 노드 정보에 기초하여 타겟 맵을 생성하고;
    상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하도록 구성되는, 경로 계획을 위한 시스템.
  40. 제39항에 있어서, 상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 경로 결정 모듈은 또한:
    상기 타겟 맵에서의 출발 위치에 기초하여 상기 복수의 노드들로부터 출발 노드를 결정하고;
    상기 타겟 맵에서의 목적지에 기초하여 상기 복수의 노드들로부터 목적지 노드를 결정하고;
    상기 출발 노드와 상기 목적지 노드 사이의 복수의 타겟 노드들과 연관된 복수의 비용들에 기초하여 상기 타겟 차량의 타겟 경로를 결정하도록 - 상기 노드의 비용은 상기 출발 노드로부터 상기 노드까지의 제1 비용 및 상기 노드로부터 상기 목적지 노드까지의 제2 비용에 기초하여 결정됨 -, 구성되는, 경로 계획을 위한 시스템.
  41. 제40항에 있어서, 상기 출발 노드로부터 상기 노드까지의 제1 비용은 상기 노드의 가중치 값, 상기 노드의 부모 노드의 비용, 상기 노드의 부모 노드로부터 상기 노드까지의 비용, 상기 타겟 맵에서 상기 노드의 부모 노드로부터 상기 노드로의 턴 비용에 기초하여 결정되는, 경로 계획을 위한 시스템.
  42. 제37항 내지 제41항 중 어느 한 항에 있어서, 상기 출발 위치, 상기 목적지, 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 경로 결정 모듈은 또한:
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별하고;
    상기 하나 이상의 정지된 차량들 각각에 대해, 상기 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역을 결정하고;
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하고;
    상기 맵 및 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 후보 맵을 결정하고;
    상기 후보 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 후보 경로를 결정하도록 구성되는, 경로 계획을 위한 시스템.
  43. 제42항에 있어서, 상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하기 위해 상기 경로 결정 모듈은 또한:
    미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당하고;
    상기 노드를 턴을 할 수 없는 노드로 지정하도록 구성되는, 경로 계획을 위한 시스템.
  44. 제42항 또는 제43항에 있어서, 상기 경로 결정 모듈은 또한:
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩하는지 여부를 결정하고 - 상기 적어도 하나의 미리 결정된 경로는 상기 하나 이상의 차량들 중 적어도 하나의 이동하는 차량에 대응함 -;
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로와 중첩되지 않는다는 결정에 응답하여, 상기 후보 경로를 상기 타겟 차량의 타겟 경로로 지정하도록 구성되는, 경로 계획을 위한 시스템.
  45. 제44항에 있어서, 상기 경로 결정 모듈은 또한:
    상기 후보 경로가 통과되지 않은 적어도 하나의 미리 결정된 경로의 적어도 일부와 적어도 부분적으로 중첩된다는 결정에 응답하여, 상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해 상기 노드의 노드 정보를 수정하고;
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별하고;
    상기 하나 이상의 이동하는 차량들 각각에 대해, 상기 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정하고;
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하고;
    상기 맵, 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 상기 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 제2 후보 맵을 결정하고;
    상기 제2 후보 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 제2 후보 경로를 결정하도록 구성되는, 경로 계획을 위한 시스템.
  46. 제45항에 있어서,
    상기 정지된 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하기 위해 상기 경로 결정 모듈은 또한:
    상기 노드를 장벽으로 지정하도록 구성되고;
    상기 이동하는 차량과 연관된 하나 이상의 노드들 각각에 대해, 상기 노드의 노드 정보를 수정하기 위해 상기 적어도 하나의 프로세서는 상기 시스템으로 하여금:
    미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당하게 하도록 구성되는, 경로 계획을 위한 시스템.
  47. 제37항 내지 제46항 중 어느 한 항에 있어서, 상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하기 위해, 상기 경로 결정 모듈은 또한:
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 정지된 차량들을 식별하고;
    상기 하나 이상의 정지된 차량들 각각에 대해, 상기 정지된 차량과 연관된 하나 이상의 노드들을 포함하는 미리 설정된 지역을 결정하고;
    상기 정지된 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 상기 노드를 장벽으로 지정함으로써 상기 노드의 노드 정보를 수정하고;
    상기 움직임 상태 정보에 기초하여 상기 하나 이상의 차량들로부터 하나 이상의 이동하는 차량들을 식별하고;
    상기 하나 이상의 이동하는 차량들 각각에 대해, 상기 이동하는 차량에 대응하는 미리 결정된 경로와 연관된 하나 이상의 노드들을 결정하고;
    상기 이동하는 차량과 연관된 상기 하나 이상의 노드들 각각에 대해, 미리 결정된 임계값보다 큰 가중치 값을 상기 노드에 할당함으로써 상기 노드의 노드 정보를 수정하고; 상기 맵, 상기 하나 이상의 정지된 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보, 및 상기 하나 이상의 이동하는 차량들 각각과 연관된 하나 이상의 노드들의 수정된 노드 정보에 기초하여 타겟 맵을 결정하고;
    상기 타겟 맵, 상기 출발 위치, 및 상기 목적지에 기초하여 상기 타겟 차량의 타겟 경로를 결정하도록 구성되는, 경로 계획을 위한 시스템.
  48. 실행 가능한 명령들을 포함하는 비 일시적 컴퓨터 판독 가능한 매체로서, 상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서에 방법을 수행하도록 지시하며, 상기 방법은:
    타겟 차량의 출발 위치 및 목적지를 획득하는 단계;
    상기 출발 위치 및 상기 목적지를 포함하는 타겟 지역의 맵을 획득하는 단계로서, 상기 맵은 복수의 노드들 각각의 노드 정보를 포함하는, 상기 타겟 지역의 맵을 획득하는 단계;
    상기 타겟 지역에서 상기 타겟 차량과는 다른 하나 이상의 차량들과 연관된 움직임 상태 정보를 획득하는 단계; 및
    상기 출발 위치, 상기 목적지, 상기 하나 이상의 차량들과 연관된 움직임 상태 정보, 및 상기 맵에 적어도 부분적으로 기초하여 상기 타겟 차량의 타겟 경로를 결정하는 단계를 포함하는, 비 일시적 컴퓨터 판독 가능한 매체.
KR1020217024785A 2019-01-14 2020-01-08 경로 계획을 위한 시스템 및 방법 KR102643759B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910032301.5 2019-01-14
CN201910032301.5A CN109724612B (zh) 2019-01-14 2019-01-14 一种基于拓扑地图的agv路径规划方法及设备
PCT/CN2020/070820 WO2020147621A1 (en) 2019-01-14 2020-01-08 Systems and methods for route planning

Publications (2)

Publication Number Publication Date
KR20210108479A true KR20210108479A (ko) 2021-09-02
KR102643759B1 KR102643759B1 (ko) 2024-03-07

Family

ID=66298338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024785A KR102643759B1 (ko) 2019-01-14 2020-01-08 경로 계획을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US20210341309A1 (ko)
EP (1) EP3894790A4 (ko)
JP (1) JP7350075B2 (ko)
KR (1) KR102643759B1 (ko)
CN (1) CN109724612B (ko)
WO (1) WO2020147621A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109724612B (zh) * 2019-01-14 2021-06-15 浙江华睿科技有限公司 一种基于拓扑地图的agv路径规划方法及设备
CN110275525A (zh) * 2019-05-16 2019-09-24 智久(厦门)机器人科技有限公司上海分公司 一种机器人交通管制系统与方法、路径规划系统与方法
CN110455305A (zh) * 2019-08-20 2019-11-15 云南梦工厂机器人有限公司 具有自主路径规划功能的agv小车控制方法
CN112683287A (zh) * 2019-10-18 2021-04-20 上海商汤临港智能科技有限公司 路径生成方法及装置、电子设备和存储介质
CN110954123B (zh) * 2019-12-10 2021-05-04 电子科技大学 一种基于阿克曼约束的路径规划方法
CN112985429B (zh) * 2019-12-13 2023-07-25 杭州海康机器人股份有限公司 拓扑地图的处理方法、装置及设备
CN111158370B (zh) * 2019-12-30 2023-06-30 华东交通大学 一种自动导引车agv部署方法、系统及自动导引车agv
CN111240322B (zh) * 2020-01-09 2020-12-29 珠海市一微半导体有限公司 机器人移动限制框的工作起点确定方法及运动控制方法
CN111338343B (zh) * 2020-02-27 2023-08-29 歌尔股份有限公司 自动引导车调度方法、装置、电子设备及存储介质
CN111405515B (zh) * 2020-03-25 2022-04-19 广西八联通信工程有限公司 一种基于5g通信的物联网
CN111367295A (zh) * 2020-03-26 2020-07-03 华南理工大学 一种智能轮椅床的导航与避障系统及方法
CN111582579A (zh) * 2020-05-08 2020-08-25 中航华东光电(上海)有限公司 一种基于拓扑地图的预测性多agv任务分配方法
CN111750862A (zh) * 2020-06-11 2020-10-09 深圳优地科技有限公司 基于多区域的机器人路径规划方法、机器人及终端设备
CN111814605B (zh) * 2020-06-23 2024-01-19 浙江华睿科技股份有限公司 基于拓扑地图的主干道识别方法、识别装置及存储装置
CN111679677B (zh) * 2020-06-24 2023-10-03 浙江华睿科技股份有限公司 Agv的位姿调整方法、装置、存储介质、电子装置
CN111780762B (zh) * 2020-06-30 2022-04-22 杭州海康机器人技术有限公司 巡检路径生成方法、装置和存储介质
CN112015174B (zh) * 2020-07-10 2022-06-28 歌尔股份有限公司 一种多agv运动规划方法、装置和系统
CN111854773A (zh) * 2020-07-24 2020-10-30 上海振华重工(集团)股份有限公司 逻辑地图布置方法、装置、电子设备及存储介质
US20220163969A1 (en) * 2020-11-20 2022-05-26 Rapyuta Robotics Co., Ltd. Systems and methods for optimizing route plans in an operating environment
CN112918487B (zh) * 2021-02-24 2022-04-12 京东鲲鹏(江苏)科技有限公司 无人车起步方法、装置、电子设备和计算机可读介质
CN113298294B (zh) * 2021-04-30 2022-04-08 成都飞机工业(集团)有限责任公司 一种基于智能生产线的物流路径规划方法
CN113253687B (zh) * 2021-06-10 2021-10-15 浙江华睿科技股份有限公司 基于弧线连通性优化调度的方法及装置、电子设备
US20230063370A1 (en) * 2021-08-30 2023-03-02 Rapyuta Robotics Co., Ltd. Multi-robot route planning
CN114383615A (zh) * 2021-12-02 2022-04-22 广东嘉腾机器人自动化有限公司 Agv系统的路径规划方法、系统、设备及介质
CN114323028B (zh) * 2022-03-16 2022-06-07 中南大学 自适应地图的路径规划方法、系统、设备及介质
CN116205474B (zh) * 2023-05-06 2023-07-18 深圳市森歌数据技术有限公司 停车场的agv任务分配方法、装置、电子设备及存储介质
CN116700298B (zh) * 2023-08-08 2023-11-21 浙江菜鸟供应链管理有限公司 路径规划方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016170580A (ja) * 2015-03-12 2016-09-23 株式会社シンテックホズミ 搬送車システム
JP2017122670A (ja) * 2016-01-08 2017-07-13 株式会社Subaru 経路探索装置、経路探索方法及び経路探索プログラム
US9953523B2 (en) * 2016-04-22 2018-04-24 Here Global B.V. Node-centric navigation optimization

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0785205B2 (ja) * 1985-08-30 1995-09-13 テキサス インスツルメンツインコ−ポレイテツド モ−タで操向を制御される多重ホイ−ル車両用のフエイルセ−フ制動装置
EP0618523B1 (en) * 1993-04-02 1998-12-09 Shinko Electric Co. Ltd. Transport management control apparatus and method for unmanned vehicle system
JP2005274339A (ja) * 2004-03-24 2005-10-06 Denso Corp 経路案内システム、経路案内装置、及び障害物案内装置
US20080114542A1 (en) * 2004-05-07 2008-05-15 Ippei Nambata Route Searching Device, Route Searching Method, and Route Searching Processing Program
JP2006047266A (ja) * 2004-06-29 2006-02-16 Denso Corp 車両用ナビゲーション装置
JP4349996B2 (ja) * 2004-08-06 2009-10-21 株式会社奥村組 携帯用気密性能測定装置
JP4482421B2 (ja) * 2004-10-25 2010-06-16 株式会社ケンウッド 案内経路探索装置および案内経路探索方法
WO2016031011A1 (ja) * 2014-08-28 2016-03-03 日産自動車株式会社 走行制御装置および走行制御方法
DE102016009255B4 (de) * 2016-07-29 2023-01-26 Kuka Roboter Gmbh Koordinierung von Pfaden mehrerer beweglicher Maschinen
CN106251016B (zh) * 2016-08-01 2019-05-07 江苏海事职业技术学院 一种基于动态时间窗的泊车系统路径规划方法
US10054447B2 (en) * 2016-08-17 2018-08-21 Sharp Laboratories Of America, Inc. Lazier graph-based path planning for autonomous navigation
CN106556406B (zh) * 2016-11-14 2020-02-14 北京特种机械研究所 多agv调度方法
WO2018180175A1 (ja) * 2017-03-27 2018-10-04 日本電産株式会社 移動体、信号処理装置およびコンピュータプログラム
CN106931975B (zh) * 2017-04-14 2019-10-22 北京航空航天大学 一种基于语义地图的移动机器人多策略路径规划方法
CN107167154B (zh) * 2017-04-21 2020-04-24 东南大学 一种基于时间代价函数的时间窗路径规划冲突解决方法
JP6760501B2 (ja) * 2017-06-30 2020-09-23 日本電気株式会社 領域評価システム、方法およびプログラム
CN107179773B (zh) * 2017-07-25 2018-07-31 哈尔滨工大特种机器人有限公司 一种agv的避让调度控制方法及系统
CN107727099A (zh) * 2017-09-29 2018-02-23 山东大学 一种工厂内物料运输多agv调度及路径规划方法
US20190120640A1 (en) * 2017-10-19 2019-04-25 rideOS Autonomous vehicle routing
CN108170146B (zh) * 2017-12-31 2021-07-30 芜湖哈特机器人产业技术研究院有限公司 一种基于已知环境的路径规划方法
CN108287545B (zh) * 2018-01-19 2021-08-06 广东美的智能机器人有限公司 多移动机器人的冲突管理方法及系统
CN108762268B (zh) * 2018-05-29 2022-08-05 上海澳悦智能科技有限公司 多agv无碰撞路径规划算法
CN109032135A (zh) * 2018-07-17 2018-12-18 河南森源电气股份有限公司 一种自动引导车的调度方法及系统
CN108919300B (zh) * 2018-07-17 2022-07-08 重庆大学 一种面向仓库通道场景的混合地图创建方法
CN109131318B (zh) * 2018-10-19 2020-03-27 清华大学 一种基于拓扑地图的自主泊车路径协调方法
CN109724612B (zh) * 2019-01-14 2021-06-15 浙江华睿科技有限公司 一种基于拓扑地图的agv路径规划方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016170580A (ja) * 2015-03-12 2016-09-23 株式会社シンテックホズミ 搬送車システム
JP2017122670A (ja) * 2016-01-08 2017-07-13 株式会社Subaru 経路探索装置、経路探索方法及び経路探索プログラム
US9953523B2 (en) * 2016-04-22 2018-04-24 Here Global B.V. Node-centric navigation optimization

Also Published As

Publication number Publication date
CN109724612A (zh) 2019-05-07
CN109724612B (zh) 2021-06-15
JP7350075B2 (ja) 2023-09-25
EP3894790A1 (en) 2021-10-20
US20210341309A1 (en) 2021-11-04
WO2020147621A1 (en) 2020-07-23
KR102643759B1 (ko) 2024-03-07
JP2022518699A (ja) 2022-03-16
EP3894790A4 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
KR102643759B1 (ko) 경로 계획을 위한 시스템 및 방법
US20210176593A1 (en) Systems and methods for performing location-based actions
CN108225358B (zh) 交通工具导航
US20210140774A1 (en) Systems and methods for recommending pick-up locations
JP6503474B2 (ja) 移動デバイスの経路を求めるシステム及び方法
WO2018227387A1 (en) Methods and systems for route planning
JP6774153B2 (ja) 不正検査を行うシステムおよび方法
WO2019015661A1 (en) SYSTEMS AND METHODS FOR ALLOCATING SERVICE REQUESTS
US20200141741A1 (en) Systems and methods for determining recommended information of a service request
CN110998239B (zh) 用于确定地图中的新路径的系统和方法
WO2019232734A1 (en) Systems and methods for path determination
US11290547B2 (en) Systems and methods for determining an optimal transportation service type in an online to offline service
WO2020107569A1 (en) Systems and methods for determining traffic information of a region
CN110689719B (zh) 用于识别封闭路段的系统和方法
US20220155082A1 (en) Route comparison for vehicle routing
CN113448340B (zh) 一种无人机的路径规划方法、装置、无人机及存储介质
CN112346480A (zh) 一种室内无人机及其控制方法、计算机可读存储介质
CN112105956A (zh) 用于自动驾驶的系统和方法
WO2019062930A1 (en) SYSTEMS AND METHODS FOR DISPLAYING AND LOADING STATIONS
CN111954875A (zh) 用于显示兴趣点的系统和方法
CN110832811B (zh) 用于发送空间数据的系统和方法
CN115826571A (zh) 路径规划方法、装置、飞行器及存储介质
CN111148024A (zh) 信息推送方法、装置、电子设备及计算机存储介质

Legal Events

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