KR101063302B1 - 무인차량의 자율주행 제어 장치 및 방법 - Google Patents

무인차량의 자율주행 제어 장치 및 방법 Download PDF

Info

Publication number
KR101063302B1
KR101063302B1 KR1020100097060A KR20100097060A KR101063302B1 KR 101063302 B1 KR101063302 B1 KR 101063302B1 KR 1020100097060 A KR1020100097060 A KR 1020100097060A KR 20100097060 A KR20100097060 A KR 20100097060A KR 101063302 B1 KR101063302 B1 KR 101063302B1
Authority
KR
South Korea
Prior art keywords
path
route
grid
target point
straight line
Prior art date
Application number
KR1020100097060A
Other languages
English (en)
Inventor
이영일
이호주
주상현
박용운
고정호
윤승재
Original Assignee
국방과학연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국방과학연구소 filed Critical 국방과학연구소
Priority to KR1020100097060A priority Critical patent/KR101063302B1/ko
Application granted granted Critical
Publication of KR101063302B1 publication Critical patent/KR101063302B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units, or advanced driver assistance systems for ensuring comfort, stability and safety or drive control systems for propelling or retarding the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • 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

Abstract

본 발명은 무인차량의 자율주행 제어 장치 및 방법에 관한 것으로서, 본 발명에 따르면 경로점 지향적이면서 비용을 최소화하는 효율적인 지역경로 산출이 가능하고, 무인차량의 운동성을 고려하여 보다 추종성이 향상된 지역경로를 생성할 수 있다.

Description

무인차량의 자율주행 제어 장치 및 방법{Control Apparatus and Method for Autonomous Navigation of Unmanned Ground Vehicle}
본 발명은 무인차량의 자율주행 제어 장치 및 방법에 관한 것으로서, 더욱 상세하게는 경로점 지향적이면서 비용을 최소화하는 효율적인 지역경로 산출이 가능하고, 무인차량의 운동성을 고려하여 보다 추종성이 향상된 지역경로를 생성하여 주행할 수 있도록 하는 무인차량의 자율주행 제어 장치 및 방법에 관한 것이다.
근래에 들어서 3D 산업현장, 화성탐사와 같은 우주 개척사업 그리고 감시 및 정찰의 군사 분야처럼 인간의 접근과 개입이 어렵거나 불가능한 거친 외부환경에서 운용되는 무인차량에 대한 필요성이 증가하고 있다.
무인차량이 다양한 환경에서 주어진 임무를 완수하기 위해서는 여러 분야의 기술들을 필요로 하지만 가장 근본적인 기술은 안전하고 빠른 최적의 경로를 통해 주어진 임무지역까지 자율적으로 주행해 가는 자율주행(Autonomous Navigation) 기술이다.
무인차량의 자율주행 기술은 무인차량에 장착된 센서의 탐지영역을 기준으로 전역경로계획(Global Path-Planning, GPP)과 지역경로계획(Local Path-Planning, LPP)과 같이 계층적으로 구성된다.
전역경로계획은 숙고적인 계층으로 미리 제공된 DEM(Digital Elevation Map)/DSM(Digital Surface Map) 및 FDB(Feature Data Base)를 기반으로 산이나 호수와 같은 대규모의 지형적 특성 그리고 임무위험도를 고려하여 주어진 목표점까지의 합리적인 경로설정을 오프라인상에서 수행한다.
지역경로계획은 보다 반응적인 계층으로 다양한 센서를 통해 가장 최근에 획득한 대략 수십 미터 이내의 월드모델링 데이터로부터 지형 경사도 및 거칠기와 같은 지형정보와 다양한 장애물 정보를 추출하고, 이를 활용하여 전역경로계획에서 생성한 다음 경유점까지의 이동경로를 안전성(safety)과 안정성(stability) 관점에서 실시간으로 설정한다.
이러한 지역경로계획과 관련된 기존의 대표적인 방법으로는 Wall Following기법, VFF(Virtual Force Field/VFH(Vector Field Histogram)기법 그리고 휴리스틱 탐색기법이 있다.
그런데, Wall Following 및 VFF/VFH 기법은 특정한 조건에 놓이면 지역경로계획에 실패하게 되는 지역 최소점(Local Minima) 문제가 발생한다는 단점이 있다.
또한, 트리 탐색기법을 활용하는 휴리스틱 탐색기법은 이러한 문제점에 강인성을 보이나 과도한 CPU 타임과 메모리를 요구한다는 문제점이 있어 실시간성을 요구하지 않는 GPP에 주로 활용되어 왔다. 하지만, 근래에 들어 컴퓨터 H/W의 급속한 발전에 힘입어 지형감지용 센서의 탐지영역을 구성하는 수십 미터의 격자지도에서는 지역경로계획의 실시간성을 확보하게 되었다.
한편, 가장 널리 알려진 휴리스틱 탐색기법 중 하나인 A* 알고리즘을 활용하여 무인차량에서 실제 활용 가능한 지역경로계획 기법을 구현하기 위해서는 경로점 지향적인 목표점의 선정과 그 목표점까지의 효율적인 경로 생성, 그리고, 격자지도 기반으로 계획된 경로를 무인차량의 운동성을 고려한 경로로 재생성하는 문제 등을 고려하여야 한다.
따라서, 위와 같은 문제점을 해결하고 경로점 지향적이면서 비용을 최소화하는 효율적인 지역경로 산출이 가능하고, 무인차량의 운동성을 고려하여 보다 추종성이 향상된 지역경로를 생성하여 주행할 수 있는 무인차량의 자율주행성능을 향상시키는 제어 장치의 필요성이 대두되고 있다.
본 발명은 경로점 지향적이면서 비용을 최소화하는 효율적인 지역경로 산출이 가능하고, 무인차량의 운동성을 고려하여 보다 추종성이 향상된 지역경로를 생성하여 주행하도록 하는 무인차량의 자율주행 제어 장치 및 방법을 제공하기 위한 것이다.
본 발명에 의한 무인차량의 자율주행 제어 장치는 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 센서부; 상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 장애물격자지도를 생성하는 장애물격자지도 생성부; 상기 장애물격자지도상에 전역경로계획에서 산출한 경로점이 존재하지 않더라도, 무인차량이 위치한 현재의 격자와 상기 경로점과의 헤딩각 차이를 산출한 후 상기 계산된 헤딩각 차이를 활용하여 상기 장애물격자지도상의 특정격자를 지역경로계획의 목표점으로 선정하는 지역경로 목표점 선정부와 A* 알고리즘(Astar Algorithm)을 이용하여 무인차량의 현재 위치에서 상기 목표점까지의 지역경로를 산출하는 최소경비 지역경로 산출부를 구비하는 지역경로계획 수립부; 및 상기 무인차량이 상기 산출된 지역경로를 따라 주행하도록 제어하는 주행 제어부;를 포함하고, 상기 지역경로계획 수립부는 상기 지역경로 상에서 신(新)목표점(단, 최초 신목표점은 상기 목표점 또는 상기 무인차량의 현재 위치)부터 상기 최초 신목표점의 반대단 격자까지의 각 격자를 상기 신목표점에 연결하여 형성된 직선 중 장애물과 접촉하지 않는 가장 긴 직선을 형성하는 직선 형성 격자가 상기 반대단 격자가 될 때까지 상기 직선 형성 격자를 상기 신목표점으로 재설정하고, 상기 신목표점들을 순차적으로 연결하는 직선으로 상기 지역경로를 대체하는 경로 최적화부를 포함할 수 있다.
이때, 상기 경로 최적화부는 상기 반대단 격자부터 순차적으로 상기 신목표점과 연결되는 직선을 형성할 수 있다. 여기서, 상기 경로 최적화부는 장애물과 접촉하지 않는 직선을 형성하는 비접촉 격자가 최초로 추출되면 상기 최초 추출된 비접촉 격자를 상기 직선 형성 격자로 설정할 수 있다.
또한, 상기 지역경로계획 수립부는 상기 신목표점들을 기준으로 4개의 제어점을 추출한 후 Bezier Spline 알고리즘을 적용하여 상기 대체된 지역경로를 곡선화하는 경로 곡선화부를 더 포함할 수 있다. 여기서, 상기 경로 곡선화부는 상기 Bezier Spline 알고리즘에 입력되는 4개의 제어점 중 2개를 바로 이전에 적용된 상기 Bezier Spline 알고리즘에 의해 곡선화된 좌표에서 추출하고, 나머지 2개는 상기 신목표점들을 연결하는 직선 경로의 좌표에서 추출할 수 있다. 또한, 상기 경로 곡선화부는 상기 Bezier Spline 알고리즘을 상기 무인차량의 현재 위치부터 순차적으로 적용하고, 상기 Bezier Spline 알고리즘을 최초 적용할 때 상기 현재 위치와 상기 현재 위치의 좌표에서 y축으로 +1만큼 이동한 좌표를 상기 곡선화된 좌표에서 추출되는 2개의 제어점으로 추출할 수 있다.
한편, 본 발명에 의한 무인차량의 자율주행 제어 방법은 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 단계; 상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 장애물격자지도를 생성하는 장애물격자지도 생성단계; 상기 장애물격자지도를 근거로 출발 경로점에서 다음 경로점으로의 최적 주행을 위한 지역경로를 산출하는 지역경로계획 수립단계; 및 상기 산출된 지역경로를 주행하도록 제어하는 주행 제어단계;를 포함하고, 상기 지역경로계획 수립단계는, 상기 장애물격자지도상에 전역경로계획에서 산출한 경로점이 존재하지 않더라도, 무인차량이 위치한 현재의 격자와 상기 경로점과의 헤딩각 차이를 산출한 후 상기 계산된 헤딩각 차이를 활용하여 상기 장애물격자지도상의 특정격자를 지역경로계획의 목표점으로 선정하는 지역경로 목표점 선정 단계; A* 알고리즘(Astar Algorithm)을 이용하여 무인차량의 현재 위치에서 상기 목표점까지의 지역경로를 산출하는 최소경비 지역경로 산출 단계; 상기 지역경로 상에서 신(新)목표점(단, 최초 신목표점은 상기 목표점 또는 상기 무인차량의 현재 위치)부터 상기 최초 신목표점의 반대단 격자까지의 각 격자를 상기 신목표점에 연결하여 형성된 직선 중 장애물과 접촉하지 않는 가장 긴 직선을 형성하는 직선 형성 격자가 상기 반대단 격자가 될 때까지 상기 직선 형성 격자를 상기 신목표점으로 재설정하고, 상기 신목표점들을 순차적으로 연결하는 직선으로 상기 지역경로를 대체하는 단계;를 포함할 수 있다.
이때, 상기 지역경로를 대체하는 단계는 상기 반대단 격자부터 순차적으로 상기 신목표점과 연결되는 직선을 형성할 수 있다. 여기서, 상기 지역경로를 대체하는 단계는 장애물과 접촉하지 않는 직선을 형성하는 비접촉 격자가 최초로 추출되면 상기 최초 추출된 비접촉 격자를 상기 직선 형성 격자로 설정할 수 있다.
또한, 상기 지역경로를 대체하는 단계 이후에, 상기 신목표점들을 기준으로 4개의 제어점을 추출한 후 Bezier Spline 알고리즘을 적용하여 상기 대체된 지역경로를 곡선화하는 단계를 더 포함할 수 있다.
한편, 본 발명의 무인차량의 자율주행 제어 방법은 컴퓨터로 읽을 수 있는 기록 매체에 프로그램으로서 기록될 수 있다.
본 발명에 따르면 무인차량의 운행에 있어서, 경로점 지향적이면서 비용을 최소화하는 효율적인 지역경로 산출이 가능하고, 무인차량의 운동성을 고려하여 보다 추종성이 향상된 지역경로를 생성하여 주행할 수 있는 효과가 있다.
도 1은 본 발명과 관련된 무인차량의 사시도.
도 2는 본 발명의 무인차량의 자율주행 제어 장치를 나타낸 블럭도.
도 3과 도 4는 본 발명에 의한 무인차량의 지역경로계획에서 최소경비 지역경로를 산출하는 과정 중 특정 격자가 FailedGoal이 되는 예를 도시한 격자지도.
도 5와 도6은 본 발명에 의한 무인차량의 지역경로계획에서 최소경비 지역경로를 산출하는 과정 중 특정 격자가 목표점(Goal)으로 선정되는 예를 도시한 격자지도.
도7과 도8은 본 발명에 의한 무인차량의 지역경로계획에서 최소경비 지역경로를 산출하는 과정 중 페널티를 부여하는 경우와 부여하지 않는 경우를 각각 도시한 격자지도.
도 9는 본 발명에 의한 무인차량의 지역경로계획 중 경로 최적화부에서 경로 최적화를 수행한 결과를 도시한 격자지도.
도 10은 본 발명에 의한 무인차량의 지역경로계획 중 경로 곡선화부에서 경로를 곡선화한 결과를 도시한 격자지도.
도 11은 본 발명에 따른 무인차량의 자율주행 제어 방법을 나타낸 흐름도.
이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명하기로 한다. 그러나, 본 발명은 여기서 설명되어지는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시 예들은 개시된 내용이 철저하고 완전해질 수 있도록, 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 명세서 전체에 걸쳐서 동일한 참조번호들은 동일한 구성요소들을 나타낸다.
도 1은 본 발명과 관련된 무인차량의 사시도이고, 도 2는 본 발명의 무인차량의 자율주행 제어 장치를 나타낸 블럭도이다.
도 1과 2를 참조하면, 본 발명의 일 실시예에 따른 무인차량은 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 센서부(140)와, 상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 격자지도를 생성하는 격자지도 생성부(230)와, 상기 격자지도를 근거로 출발 경로점에서 다음 경로점으로의 최적 주행을 위한 경로계획을 수립하는 지역경로계획 수립부(240) 및 상기 수립된 경로계획에 따라 경로를 주행하도록 제어하는 주행 제어부(300)를 포함하여 이루어질 수 있다.
상기 무인차량(100)은 크게 본체(110), 지형감지 센서부(140), 주행 판단부(200), 및 주행 제어부(300)를 포함하여 이루어질 수 있다. 상기 본체(110)는 무인차량(100)이 지면을 이동할 수 있도록 복수의 바퀴(111)들을 구비하며, 무인차량(100)이 야지 및 험지에서 주행할 수 있도록 본체(110)에 회전 가능하게 연결된 암에 연결될 수 있다. 그리고, 본체(110)에는 무인차량(100)의 무선통신을 위한 무선통신모듈 등이 전자부품의 형태로 내장될 수 있다.
상기 주행 판단부(200)는 미리 입력된 지도와 지형특성, 임무 위험도를 고려하여 주어진 목표점까지 도달하기 위해 거쳐갈 경로점을 생성하는 전역경로계획 수립부(210)와, 지형과 임무 수행 환경의 변화에 따라 상기 생성된 경로점을 수정하여 재생성하는 전역경로계획 보정부(220) 및 상기 전역경로계획 수립부(210)에서 생성된 경로점 중에서 임의의 출발 경로점에서 다음 경로점으로의 최적 주행을 위한 경로계획을 수립하는 지역경로계획 수립부(240)를 포함하여 이루어질 수 있다.
상기 전역경로계획 수립부(210)는 미리 제공된 DEM(Digital Elevation Map)/DSM(Digital Surface Map) 및 FDB(Feature Data Base)를 기반으로 산이나 호수와 같은 대규모의 지형적 특성 그리고 임무위험도를 고려하여 주어진 목표점까지 도달하기 위한 경로점을 생성할 수 있다.
그리고, 상기 전역경로계획 보정부(220)는 위와 같이 생성된 경로점을 상황에 따라 보다 합리적인 경로생성을 위해 수정하여 재생성할 수 있다.
상기 지형감지 센서부(140)는 무인차량 전방의 지형 정보와 장애물 정보에 관한 데이터를 수집하는데, 상기 주행 판단부(200)에 포함된 격자지도 생성부(230)는 상기 수집된 데이터를 이용하여 무인차량(100)이 주행 가능한 지형인지 여부를 판단하여 격자지도를 생성한다.
상기 지형감지 센서부(140)를 구체적으로 살펴보면, 제1 스캐너(141)는 본체 전방의 일정 거리까지 스캐닝하여 제1정보를 생성하는데, 본체(110)의 전방을 향하여 레이저 빔을 조사하여 대상 물체로부터 반사된 레이저를 수광하는 2D 레이저 스캐너의 형태로 구현될 수 있다. 이러한 경우, 제1정보는 레이저빔이 도달하는 대상까지의 거리 정보의 형태를 갖는다.
또한, 쌍안영상 감지센서(142)는 본체(110)의 전방 영상을 촬영하여 제2정보를 생성하기 위한 것이다. 쌍안영상 감지센서(142)는 복수의 CCD(Charge Coupled-Device) 카메라들이 하나의 마운트에 고정된 형태를 갖는 스테레오 카메라(142a, 142b)로 이루어질 수 있다.
이때, 제2정보는 동일 촬영 대상에 대하여 스테레오 카메라(142a, 142b)가 각각 촬영한 한 쌍의 영상 정보일 수 있으며, 상기 영상 정보는 스테레오 매칭을 통해 촬영대상의 위치 정보를 추정하는데 사용된다.
상기 지형감지 센서부(140)(구체적으로 쌍안영상 감지센서)는 획득된 좌, 우 영상들의 변이를 추정하고 삼각법을 통해서 본체(110)와 대상 물체와의 거리 및 지형정보의 3차원 거리 데이터를 측정할 수 있다.
이러한 3차원 거리데이터를 지면 기준으로 투영하게 되면 지형의 고도값을 추출할 수 있으며, 이러한 고도값을 이용하여 작성된 고도맵은 제1스캐너(141)의 2차원 데이터(제1정보)와 융합되어 전방의 3차원 공간 모델링에 사용될 수 있다.
그리고, 본체(110)의 일면에는 제1스캐너(141)의 스캐닝 거리보다 원거리까지 스캐닝하여 제3정보를 생성하는 제2스캐너(143)가 추가적으로 배치될 수 있다. 제2스캐너(143)는 360도 회전 가능하도록 본체(110)의 상면에 돌출되게 설치될 수 있으며, 제2스캐너(143)로서 2D 레이저 스캐너보다 먼 거리에 있는 대상물의 거리 정보(제3정보)를 획득할 수 있는 FMCW(Frequency Modulated Continuous Wave) 레이더 또는 3D 레이저 스캐너가 사용될 수 있다.
이와 같이 무인차량(100)에 장착된 쌍안영상 감지센서(142) 및 레이저 스캐너(141, 143)를 포함하는 지형감지 센서부(140)로부터 입력받은 특정 크기의 지형에 대한 고도값을 활용하여 장애물 격자지도를 생성한 후 이를 기반으로 전역경로계획 상의 경로점 지향적이면서 장애물을 회피하는 지역경로계획을 수행할 수 있다.
상기 주행 제어부(300)는 지역경로계획에서 생성된 경로를 추종하도록 무인차량(100)의 속도와 조향각 등을 제어한다.
한편, 상기 지역경로계획 수립부(240)는 가장 최근에 획득한 대략 수십 미터 이내의 월드모델링 데이터로부터 지형 경사도 및 거칠기와 같은 지형정보와 다양한 장애물 정보를 추출하고, 이를 활용하여 전역경로계획 수립부(210)에서 생성한 다음 경로점까지의 이동경로를 실시간으로 설정한다.
지역경로계획 수립부(240)에서 사용되는 알고리즘에 대한 정확하고 일관성 있는 설명을 위해 알고리즘 기술에 사용되는 표기법을 먼저 정의할 필요가 있는데 표기법의 정의는 표1에 표시되어 있다. 알고리즘 기술에 사용되는 장애물 격자지도는 로컬 좌표계(지역좌표계)를 기준으로 한다.
Notation Definition
G(x, y)  Binary Map의 (x, y)에 놓인 격자
(x0, y0)  BM(Binary Map)에서 무인차량의 현재 위치로 G(0, 0)
(xGPP, yGPP)  BM에서 GPP 경로점의 위치
ΔBM  BM에서 무인차량 진행방향의 거리(길이)
ΔG  BM의 한 격자 크기
CPx, CPy  GPP 경로점 지향적인 BM상의 격자 위치
F(n)  A* 알고리즘의 평가함수로 F(n)=g(n)+h(n)
wfactor  Penalty Weighting Factor
wnum  Penalty를 적용 할 양쪽 격자의 개수 차이
Pnum  생성된 Path(경로)를 구성하는 포인트(격자)의 개수
Pi(x, y)  Path(경로)를 구성하는 i번째 포인트 G(x, y)
P‘i(x, y)  현재까지 smoothing된 path를 구성하는 포인트들 중 i번째 포인트 G(x, y)
xPS, yPS  PS(x, y)의 x, y 좌표값
xPE, yPE  PE(x, y)의 x, y 좌표값
Binary Map은 장애물격자지도를 의미하며, g(n)은 무인차량의 현재위치에서 특정 격자 n까지의 이동경비, h(n)은 격자 n에서 목표점까지의 예상 이동경비를 의미한다.
상기 지역경로계획 수립부(240)는 상기 격자지도상에서 다음 경로점을 지향하는 특정격자를 목표점으로 선정하고, 상기 목표점으로 주행하는 비용이 최소로 되는 지역경로를 계획하는 최소경비 지역경로 산출부(242)를 포함하여 이루어질 수 있다.
도 3과 도 4는 본 발명에 의한 무인차량의 지역경로계획에서 최소경비 지역경로를 산출하는 과정 중 특정 격자가 FailedGoal이 되는 예를 도시한 격자지도이고, 도 5와 도6은 본 발명에 의한 무인차량의 지역경로계획에서 최소경비 지역경로를 산출하는 과정 중 특정 격자가 목표점(Goal)으로 선정되는 예를 도시한 격자지도이며, 도7과 도8은 본 발명에 의한 무인차량의 지역경로계획에서 최소경비 지역경로를 산출하는 과정 중 페널티를 부여하는 경우와 부여하지 않는 경우를 각각 도시한 격자지도이다.
도 3 내지 도 8을 참조하면, 먼저 최소경비 지역경로 산출부(242)에서 사용되는 알고리즘은 아래의 의사코드(Pseudo-Code)에 보이듯 전역경로계획 수립부(210)에서 생성된 경로점을 지향하는 장애물 격자지도상의 특정격자인 Goal을 선정하는 함수와 이동거리 경비관점의 최소경로를 산출하는 함수로 구성된다.
HeadingAngle (G(x 0 , y 0 ), G( x GPP , y GPP ))
01.  return tan-1(xGPP / yGPP);
FindGoalPosition()
02.  IF(HGPP < -90) set G(-ΔBM, 0) to Goal;
03.  ELSE IF(HGPP > 90) set G(ΔBM, 0) to Goal;
04.  ELSE IF(HGPP >= -45 AND HGPP <= 45)
05.       CPx = round(tan(HGPP) * ΔBM);
06.       set G(CPx, ΔBM) to Goal;
07.  ELSE IF((HGPP >= -90 AND HGPP < -45) OR (HGPP > 45 AND HGPP <= 90))
08.       CPy = round(ΔBM / tan(HGPP));
09.       set G(ΔBM, CPy) to Goal;
PenaltyWeighting()
10.  WHILE each G(x, y) in opposite side of pre_heading on the basis of FailedGoal
11.       F(n) = F(n) + (wfactor * wnum);
ComputeShortestPath()
12.  HGPP = HeadingAngle(G(x0, y0), G(xGPP, yGPP));
13.  FindGoalPosition();
14.  AstarAlgorithm(G(x0, y0), Goal);
15.  IF fail to compute shortest path
16.       PenaltyWeighting();
17.       find G(x, y) having smallest F(n) from CLOSED in edges of BinaryMap;
18.       set G(x, y) to Goal;
19.       AstarAlgorithm(G(x0, y0), Goal);
여기서, HGPP는 무인차량의 정면방향과 LPP(Local Path Planning, 지역경로계획)의 현재 목표점 간의 각도이며, ΔBM은 Binary Map, 즉 장애물격자지도에서 무인차량 진행방향의 거리로 도 3 내지 도 10에서 무인차량이 위치하는 G(0,0)의 정면 끝까지의 거리(길이)를 나타낸다. round는 반올림을 의미한다.
전역경로계획에서 사용하는 격자지도는 통상적으로 50∼200m정도의 크기로 구성되기 때문에 전역경로계획 수립부(210)에서 생성한 경로점도 동일한 간격을 가지게 된다. 이러한 이유로 대략 50m이내의 크기로 생성되는 지역경로계획의 장애물 격자지도상에 항상 전역경로계획 수립부(210)에서 생성된 경로점이 위치하지 못하게 되며, 이는 목표점(Goal)을 반드시 필요로 하는 A* 알고리즘을 실행시킬 수 없는 문제를 발생시킨다.
따라서 A* 알고리즘 기반의 지역경로계획 수립을 위해서는 전역경로계획 수립부(210)에서 생성된 경로점을 지향하는 장애물 격자지도상의 목표점(Goal)을 반드시 선정할 필요가 있다. 또한, 지역경로계획의 경로산출 최적성은 바로 이 목표점(Goal) 선정 능력에 상당부분 의존성이 있는데 도3과 도 4에 그 이유가 잘 보이고 있다.
도 3의 경우 장애물 격자지도밖에 존재하는 전역경로계획 수립부(210)에서 생성된 경로점인 G(xGPP, yGPP)에 지향적인 G(x, y)는 검은색으로 표시된 격자이지만, 해당격자에 장애물이 존재하므로 목표점(Goal)이 될 수가 없다.
따라서 그림에 표시된 ①번 또는 ②번 격자가 목표점(Goal)이 될 수 있는 후보격자인데, 제안한 알고리즘에서는 G(x0, y0)가 존재하는 면을 제외한 장애물 격자지도의 세 변을 구성하는 모든 격자의 F(n)값을 조사하여 최소값을 가지는 G(x, y)를 목표점(Goal)으로 선정하게 되어 ①번 격자가 목표점(Goal)이 된다.
이렇게 A* 알고리즘의 F(n) 함수를 이용하는 이유는 목표점(Goal) 선정에 실패한 검은색 격자(FailedGoal)와의 최소거리를 기준으로 목표점(Goal)을 선정할 경우 ②번 격자가 목표점(Goal)으로 선정되는데 이는 장애물을 우회하는 높은 이동경비를 가지는 경로생성을 유발하여 지역경로계획의 최적성이 감소되기 때문이다.
또한, 도 4의 경우 G(xGPP, yGPP)에 지향적인 검은색 격자 G(x, y)는 도달할 수 없는 격자로 역시 FailedGoal이 된다. 제안된 알고리즘에 의해 세 변을 구성하는 모든 격자들 중 A* 알고리즘의 CLOSED에 포함되는 격자들의 F(n)값을 조사하여 최소값을 가지는 격자를 Goal로 선정한다. CLOSED를 활용하는 이유는 도달할 수 없는 지역인 'Section B'에 포함되는 격자가 목표점(Goal)으로 선정되는 것을 막기 위함이다.
지역경로계획의 최적성에 영향을 미치는 목표점(Goal) 선정의 중요성에 대한 또 다른 예를 도 3에서 확인할 수 있다. 이전의 계산시간에서 ②번 격자처럼 오른쪽 편에 존재하는 목표점(Goal)을 기준으로 지역경로계획을 수행하였다고 가정한 후, 도 3에서 지역경로계획을 수행하면 알고리즘에 의해 ①번 격자를 목표점(Goal)으로 선정하게 되어 무인차량이 지그재그형태로 주행하는 문제가 발생하게 된다.
이러한 문제를 해결하기 위해 함수 PenaltyWeighting()에서는 세 변을 구성하는 모든 격자들 중 FailedGoal을 기준으로 이전 진행방향의 반대편 격자들에 페널티를 부여한다. 알고리즘 11번 라인의 wnum값을 '3'으로 설정하면 도 3에서 ①번이 아닌 ②번 격자를 목표점(Goal)으로 선정하여 지역경로계획을 수행할 수 있게 된다.
한편 도 5를 보면 전역경로계획 수립부(210)에서 생성한 경로점을 지향하는 회색의 격자에 장애물이 존재하여 해당 격자는 FailedGoal이 되며, 제안한 알고리즘에 의해 이를 대신할 수 있는 후보격자는 ①번 격자 및 ②번 격자로 축약된다.
도5, 도 6 도 7 도 8
격자① 격자② 격자① 격자② 격자① 격자②
F(n) 26.1 25.1 25.7 26.3 25.7 26.3
g(n) 17.1 17.1 17.7 16.3 17.7 16.3
h(n) 9.0 8.0 8.0 10.0 8.0 10.0
penalty
적용
- - - - 28.5 26.3
표 2에서 두 후보격자의 평가함수값 F(n)을 비교해보면 ②번 격자가 '25.1'로 더욱 적어 해당격자로 이동함에 있어 보다 최소경비가 소모됨을 의미하므로 해당 격자가 새로운 Goal로 선정되어 지역경로계획을 수행한다.
또한, 도 6을 보면, 전역경로계획 수립부(210)에서 생성한 경로점을 지향하는 회색의 격자에 장애물이 존재하지는 않지만 도달 불가능한 격자이므로 FailedGoal이 되며, 제안한 알고리즘에 의해 세 변을 구성하는 모든 격자들 중 CLOSED에 포함되는 격자들의 F(n)값을 조사하여 최소값을 가지는 격자를 새로운 Goal로 선정하여 지역경로계획을 수행함을 확인할 수 있다.
전역경로계획 수립부(210)에서 생성한 경로점을 지향하는 목표점(Goal) 선정에 있어 함수 PenaltyWeighting()의 역할이 도 7과 도 8에서 검증된다. (n-1)th 계산시간에 도 5처럼 FailedGoal을 기준으로 오른쪽 편에 존재하는 Goal에 대해 LPP를 수행하였다고 가정한 후, (n)th 계산시간에 도 7과 도 8의 장애물 격자지도에서 함수 PenaltyWeighting() 없이 Goal을 선정한다면 표 2의 F(n)값 비교에 의해 도 7처럼 더욱 작은 값을 가지는 ①번 격자를 Goal로 선정하게 되어 무인차량이 지그재그형태로 주행하는 문제가 발생하게 된다.
반면, 함수 PenaltyWeighting()을 적용하게 되면 FailedGoal을 기준으로 왼쪽에 존재하는 후보격자 ①번의 F(n)값이 페널티로 인해 '28.5'로 상승하여 도 8처럼 ②번 격자가 Goal로 선정되어 이러한 문제가 해결됨을 확인할 수 있다.
도 9는 본 발명에 의한 무인차량의 지역경로계획 중 경로 최적화부에서 경로 최적화를 수행한 결과를 도시한 격자지도이다.
도 9를 참조하면, 상기 지역경로계획 수립부(240)는 상기 계획된 지역경로를 구성하는 포인트들의 집합에서 각각의 포인트에 대해 다른 포인트들과의 사이에서 생성 가능한 모든 경우의 직선을 추출한 후, 장애물과 접촉하지 않으면서 길이가 가장 긴 직선을 경로로 선정하는 경로 최적화부(244)를 더 포함하여 이루어질 수 있다.
상기 최소경비 지역경로 산출부(242)에서 A* 알고리즘을 이용하여 지역경로계획을 수행하는 최소경비 지역경로 산출 알고리즘은 격자지도를 활용한다는 특수성으로 인해 무인차량이 선택할 수 있는 조향 값이 45도 단위로 한정될 수밖에 없는 문제점을 지닌다.
이러한 이유로 주어진 목표점(Goal)까지 생성된 지역경로는 실질적인 최단거리의 경로가 되지 못하며, 또한 잦은 조향으로 인해 추종성의 저하를 초래하게 된다.
상기 경로 최적화부(244)에서 수행하는 알고리즘은 이러한 문제를 해결하기 위한 것으로, 계획된 지역경로를 구성하는 포인트들의 집합에서 각각의 포인트 Pi(x, y)에 대해 다른 포인트들과 생성 가능한 모든 경우의 직선을 추출한 후 장애물과 접촉하지 않으면서 길이가 가장 긴 직선을 선정하여 두 포인트 사이의 경로를 격자단위를 무시한 직선화를 통해 경로 최적화를 수행한다. 아래는 해당 알고리즘의 의사코드이다.
BlockingCheck ( P S (x,y), P E (x,y))
 01.  slope = (yPE - yPS) / (xPE - xPS);
 02.  FOR(i = xPS to xPE)
 03.       y_lower = round(yPS + (i - xPS - 0.5)*slope);
 04.       y_upper = round(yPS + (i - xPS + 0.5)*slope);
 05.       IF(i == xPS) y_lower = yPS;
 06.       IF(i == xPE) y_upper = yPE;
 07.       FOR(j = y_lower to y_upper)
 08.            IF(G(i, j) == obstacle)
 09.                 return BLOCKED; break;
 10.  return NOT_BLOCKED;
 
PathOptimization ()
11.  FOR(i = 0 to i < Pnum)
12.       FOR(j = Pnum to j > i)
13.            IF BlockingCheck(Pi(x,y), Pj(x,y)) == NOT_BLOCKED
14.                 remove points between Pi and Pj;
15.            i = j; break;
여기서, Ps(x,y)는 신목표점의 좌표이고, PE(x,y)는 신목표점부터 무인차량의 현재 위치까지의 지역경로 상의 각 격자의 좌표로 이때의 격자는 앞에서의 알고리즘에 따르면 무인 차량의 현재 위치부터 순차적으로 선택된다.
도 9에서 경로 최적화 알고리즘의 수행 결과를 확인할 수 있는데, G(x0, y0)와 Goal 사이의 가는 직선(녹색 실선)은 최소경비 지역경로 산출 알고리즘인 A*로 생성된 최초의 경로이며 굵은 점선은 경로 최적화 알고리즘을 적용하여 최적화시킨 지역경로를 의미한다.
조향에 대한 경비를 포함시키지 않고 한 격자를 수평/수직방향으로 이동하는데 소비되는 경비를 '1' eu(energy unit)라고 정의하면 A* 알고리즘에 의해 생성된 최초의 경로는 '18.6' eu가 소비되는 반면, 해당 알고리즘을 적용하여 최적화 시킨 경로는 '17.6' eu가 소비되어 이동거리 경비 관점에서 보다 최적화되었음을 확인할 수 있다.
정리하면, 본 발명은 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 센서부, 상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 장애물격자지도를 생성하는 장애물격자지도 생성부, 상기 장애물격자지도상에 전역경로계획에서 산출한 경로점이 존재하지 않더라도, 무인차량이 위치한 현재의 격자와 상기 경로점과의 헤딩각 차이를 산출한 후 상기 계산된 헤딩각 차이를 활용하여 상기 장애물격자지도상의 특정격자를 지역경로계획의 목표점으로 선정하는 지역경로 목표점 선정부와 A* 알고리즘(Astar Algorithm)을 이용하여 무인차량의 현재 위치에서 상기 목표점까지의 지역경로를 산출하는 최소경비 지역경로 산출부를 구비하는 지역경로계획 수립부 및 상기 무인차량이 상기 산출된 지역경로를 따라 주행하도록 제어하는 주행 제어부를 포함하고 있으며, 이때 상기 지역경로계획 수립부는 상기 지역경로 상에서 신(新)목표점(단, 최초 신목표점은 상기 목표점 또는 상기 무인차량의 현재 위치)부터 상기 최초 신목표점의 반대단 격자까지의 각 격자를 상기 신목표점에 연결하여 형성된 직선 중 장애물과 접촉하지 않는 가장 긴 직선을 형성하는 직선 형성 격자가 상기 반대단 격자가 될 때까지 상기 직선 형성 격자를 상기 신목표점으로 재설정하고, 상기 신목표점들을 순차적으로 연결하는 직선으로 상기 지역경로를 대체하는 경로 최적화부를 포함할 수 있다. 상기 반대단 격자는 최초 신목표점이 무인차량의 현재 위치일 경우 목표점이 되고, 최초 신목표점이 목표점인 경우 무인차량의 현재 위치가 된다.
A* 알고리즘에 따르면 각 격자의 중앙 포인트를 가로지르는 지역경로가 형성되는데, 이로 인하여 지그재그 현상이 발생하고 최단 거리를 우회하는 지역경로(도 9의 녹색 실선)가 산출된다. 이러한 지역경로를 최적화하기 위해 경로 최적화부가 이용된다.
신목표점은 도 9에서 Goal과 G(x0, y0)를 포함하는 파란점으로 항상 해당 격자의 중앙 좌표이다. 최초의 신목표점이 Goal, 즉 목표점일 때 Goal을 기준으로 하는 직선 형성 격자는 도 9에서 위로부터 2번째 파란점이 포함된 격자이다. 이때의 직선 형성 격자를 신목표점으로 재설정한 후 재설정된 신목표점을 기준으로 하여 다시 직선 형성 격자를 추출한다. 이렇게 추출된 직선 형성 격자가 위로부터 3번째 파란점이 포함된 격자이다. 다시 3번째 파란점을 신목표점으로 설정하여 직선 형성 격자를 추출하면 현재 위치 G(x0, y0)가 직선 형성 격자가 되므로 G(x0, y0)를 신목표점으로 재설정한 후 직선 형성 격자의 추출을 종료한다. 이후, 추출 종료시까지 설정되었던 신목표점들을 순차적으로 직선으로 연결하면 도 9의 붉은 점선과 같은 직선 경로가 형성되는데, 이때의 직선 경로로 기존의 지역 경로를 대체한다. 참고로 신목표점은 Goal과 무인차량의 현재 위치를 포함하여 적어도 2개는 존재한다. 주행 제어부는 대체된 직선 경로를 따라 무인차량이 주행하도록 제어한다.
최초의 신목표점이 G(x0, y0), 즉 무인차량의 현재 위치일 때 G(x0, y0)를 기준으로 하는 직선 형성 격자는 도 9에서 아래로부터 2번째 파란점이 포함된 격자이다. 이때의 직선 형성 격자를 신목표점으로 재설정한 후 재설정된 신목표점을 기준으로 하여 다시 직선 형성 격자를 추출하면 아래로부터 3번째 파란점의 격자가 추출된다. 다시 3번째 파란점을 신목표점으로 설정하여 직선 형성 격자를 추출하면 목표점 Goal이 직선 형성 격자가 되므로 Goal을 신목표점으로 재설정한 후 직선 형성 격자의 추출을 종료한다. 이후의 과정에 앞에서 설명된 바와 동일하다. 최초 신목표점이 목표점인지 무인차량의 현재 위치인지에 따라 신목표점의 위치가 다소 변경될 수 있으나 그 효과는 유사하다. 즉, A* 알고리즘에 의해 산출된 지역경로에 비하여 주행에 적합한 최적화된 경로를 제공할 수 있다.
한편, 직선 형성 격자는 다양한 방식으로 추출될 수 있다. 예를 들어 신목표점(최초 신목표점이 무인차량의 현재 위치인 경우)부터 목표점까지의 지역경로 상의 각 격자와 상기 신목표점을 연결하는 모든 직선을 추출한 후 각 직선의 길이를 비교하여 가장 긴 길이의 직선을 형성하는 격자를 직선 형성 격자로 추출할 수 있다. 다만, 이와 같이 할 경우 많은 수의 격자에 대해 직선을 형성하고 각 직선의 길이를 저장할 필요가 있으므로 많은 연산이 필요하고 또한 길이값 저장을 위한 메모리가 필요하다.
다른 방안으로 경로 최적화부는 상기 반대단 격자부터 순차적으로 상기 신목표점과 연결되는 직선을 형성할 수 있다. 이와 같이 하면 장애물과 접촉하지 않는 직선을 형성하는 비접촉 격자가 최초로 추출되면 상기 최초 추출된 비접촉 격자를 상기 직선 형성 격자로 추출할 수 있게 된다. 즉, 가장 길이가 긴 직선을 형성하는 격자부터 순차적으로 비접촉 격자를 만족하는지 파악/추출하면 가장 길이가 길어야 한다는 조건을 자연스럽게 만족할 수 있다. 이때 가장 길이가 긴 직선을 형성하는 격자는 항상 최초 신목표점의 반대단 격자이다. 앞에서의 PathOptimization() 알고리즘은 이와 같은 방안에 따라 직선 형성 격자를 추출하여 신목표점으로 재설정하는 알고리즘의 한 예로서, 최초 신목표점을 무인 차량의 현재 위치로 한 경우를 나타내고 있다.
도 10은 본 발명에 의한 무인차량의 지역경로계획 중 경로 곡선화부에서 경로를 곡선화한 결과를 도시한 격자지도이다.
도 10을 참조하면, 상기 지역경로계획 수립부(240)는 상기 지역경로를 구성하는 직선들 중 무인차량의 조향이 요구되는 부분을 완만한 곡선으로 구성하는 경로 곡선화부(246)를 더 포함하여 이루어질 수 있다. 경로 곡선화부는 신목표점들을 기준으로 4개의 제어점을 추출한 후 Bezier Spline 알고리즘을 적용하여 상기 대체된 지역경로를 곡선화한다.
경로 최적화부(244)에서 경로 최적화 알고리즘을 통해 지역경로를 최적화하여도 장애물의 배치에 따라서는 최대 90도의 조향이 요구되는 경로의 포인트가 존재할 수 있다. 다시 말해 최적화된 경로를 무인차량의 운동성을 고려한 추종 가능한 형태의 경로로 재생성하는 알고리즘이 요구된다는 의미이다.
따라서, 상기 경로 곡선화부(246)는 Bezier Spline 알고리즘을 활용하는데 이는 3차 Spline 알고리즘 중 가장 보편적이고 곡선 제어가 용이한 알고리즘으로, 네 개의 제어점을 사용하여 첫 번째 포인트에서 네 번째 포인트를 잇는 곡선을 산출한다.
경로 최적화부(244)에서 직선화된 경로를 구성하는 모든 포인트 Pi(x, y)들, 즉 신목표점들은 무인차량의 조향이 요구되는 EDGE가 되는데 이는 Bezier Spline 알고리즘을 적용하는 기준점이 된다.
EDGE를 기준으로 현재까지 곡선화된(smoothing) 경로에서 마지막 두 포인트를 추출하고 세분화(Segmentation)시킨 최적화 경로(경로 최적화부에서 추출된 직선 경로)에서 다음 두 포인트를 추출하여 Spline 알고리즘에 입력한 후 첫번째 포인트와 네번째 포인트를 반드시 지나는(두번째 포인트와 세번째 포인트는 최대한 근접하면 됨) 추종성이 확보된 경로를 재생성한다. 즉, 경로 곡선화부는 Bezier Spline 알고리즘에 입력되는 4개의 제어점 중 2개를 바로 이전에 적용된 상기 Bezier Spline 알고리즘에 의해 곡선화된 좌표에서 추출하고, 나머지 2개는 상기 신목표점들을 연결하는 직선 경로의 좌표에서 추출한다. 다만 이와 같은 경우 최초의 알고리즘 적용시 앞에서 곡선화된 좌표가 없는 상태이므로 알고리즘을 구동시킬 수 없다. 따라서, 경로 곡선화부는 Bezier Spline 알고리즘을 상기 무인차량의 현재 위치부터 순차적으로 적용하고, 상기 Bezier Spline 알고리즘을 최초 적용할 때 상기 현재 위치와 상기 현재 위치의 좌표에서 y축으로 +1만큼 이동한 좌표를 상기 곡선화된 좌표에서 추출되는 2개의 제어점으로 추출할 수 있다. 무인차량의 현재 위치부터 주행이 시작되므로 현재 위치를 하나의 제어점(첫번째 제어점)으로 하고, 현재의 주행방향에 해당하는 정면 방향, 즉 장애물격자지도에서 G(x0, yi) 방향으로의 이동이 용이하므로 G(x0, y1) (아래의 의사코드에서는 G(0,1)로 표시)를 또 하나의 제어점(두번째 제어점)으로 한다. y축으로 +1만 한 이유는 무인차량의 진행목표가 전방이 아닌 경우를 대비하기 위함으로 y축으로의 값이 커지게 되면 왼쪽이나 오른쪽에 치우쳐진 신목표점을 경유하기 어렵기 때문이다. 참고로, 제어점으로 추출되는 각 포인트는 한 격자 크기(ΔG) 범위 내에서 추출될 수 있다.
아래는 해당 알고리즘의 의사코드이다.
Initialize ()
 01.  Spline(P0(x, y), G(0, 1), P2(x, y), P3(x, y));
 02.  tag P3(x, y) with EDGE;
Spline ( P 0 , P 1 , P 2 , P 3 );
 03.  Snum = sqrt((xP3 - xP0)2 + (yP3 - yP0)2) / Ssize;
 04.  FOR(n = 0 to Snum)
 05.       xSPLINE = xP0*(1 - n)3 + 3*xP1*n(1 - n)2 + 3*xP2*n2*(1 - n) + xP3*n3;
 06.       ySPLINE = yP0*(1 - n)3 + 3*yP1*n(1 - n)2 + 3*yP2*n2*(1 - n) + yP3*n3;
 07.       DrawPoint(xSPLINE, ySPLINE);
PathSmoothing ()
 08.  tag all points ∈ optimized path with EDGE;
 09.  segment the optimized path into ΔG;
 10.  Initialize();
 11.  FOR(n = 3 to Pnum)
 12.       IF Pn(x, y) == EDGE
 13.            Spline(P'n -2(x, y), P'n -1(x, y), Pn +1(x, y), Pn +2(x, y));
 14.            n = n + 2;
도 10에서는 경로 곡선화 알고리즘의 수행 결과를 확인할 수 있는데 점선의 원으로 표시된 부분은 무인차량의 조향이 요구되는 EDGE로서 이는 경로 재생성을 위한 Bezier Spline 알고리즘을 적용하는 기준점이 된다.
도 10의 굵은 실선은 경로 곡선화를 통해 재생성된 지역경로로, 차량의 주행특성을 고려하지 않은 격자기반의 조향으로 구성된 최초의 경로에서 차량의 운동성이 고려된 추종 가능한 경로로 변경되었음을 확인할 수 있다.
도 11은 본 발명에 따른 무인차량의 자율주행 제어 방법을 나타낸 흐름도이다.
도 11에 도시된 무인차량의 자율주행 제어 방법은 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 단계(S 510), 상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 장애물격자지도를 생성하는 장애물격자지도 생성단계(S 520), 상기 장애물격자지도를 근거로 출발 경로점에서 다음 경로점으로의 최적 주행을 위한 지역경로를 산출하는 지역경로계획 수립단계(S 530) 및 상기 산출된 지역경로를 주행하도록 제어하는 주행 제어단계(S 540)를 포함하고 있다.
이때, 지역경로계획 수립단계(S 530)는, 상기 장애물격자지도상에 전역경로계획에서 산출한 경로점이 존재하지 않더라도, 무인차량이 위치한 현재의 격자와 상기 경로점과의 헤딩각 차이를 산출한 후 상기 계산된 헤딩각 차이를 활용하여 상기 장애물격자지도상의 특정격자를 지역경로계획의 목표점으로 선정하는 지역경로 목표점 선정 단계, A* 알고리즘(Astar Algorithm)을 이용하여 무인차량의 현재 위치에서 상기 목표점까지의 지역경로를 산출하는 최소경비 지역경로 산출 단계, 상기 지역경로 상에서 신(新)목표점(단, 최초 신목표점은 상기 목표점 또는 상기 무인차량의 현재 위치)부터 상기 최초 신목표점의 반대단 격자까지의 각 격자를 상기 신목표점에 연결하여 형성된 직선 중 장애물과 접촉하지 않는 가장 긴 직선을 형성하는 직선 형성 격자가 상기 반대단 격자가 될 때까지 상기 직선 형성 격자를 상기 신목표점으로 재설정하고, 상기 신목표점들을 순차적으로 연결하는 직선으로 상기 지역경로를 대체하는 단계를 포함할 수 있다. 지역경로를 대체하는 단계는 지역경로계획 수립부에 구비된 경로 최적화부에 의해 수행될 수 있다.
이때, 상기 지역경로를 대체하는 단계는 상기 반대단 격자부터 순차적으로 상기 신목표점과 연결되는 직선을 형성할 수 있다. 여기서, 상기 지역경로를 대체하는 단계는 장애물과 접촉하지 않는 직선을 형성하는 비접촉 격자가 최초로 추출되면 상기 최초 추출된 비접촉 격자를 상기 직선 형성 격자로 설정할 수 있다.
또한, 상기 지역경로를 대체하는 단계 이후에, 상기 신목표점들을 기준으로 4개의 제어점을 추출한 후 Bezier Spline 알고리즘을 적용하여 상기 대체된 지역경로를 곡선화하는 단계를 더 포함할 수 있다. 곡선화 단계는 경로 곡선화부에 의해 수행될 수 있다.
한편, 이상에서 설명된 무인차량의 자율주행 제어 방법은 컴퓨터로 읽을 수 있는 기록 매체에 프로그램으로서 기록될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 당업자는 이하에서 서술하는 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경 실시할 수 있을 것이다. 그러므로 변형된 실시가 기본적으로 본 발명의 특허청구범위의 구성요소를 포함한다면 모두 본 발명의 기술적 범주에 포함된다고 보아야 한다.
무인차량에 적용할 수 있다.
특히, 장애물이 존재하는 지형을 운행할 필요가 있는 무인차량에 적용하는 것이 유리하다.
100...무인차량 110...본체
140...지형감지 센서부 200...주행 판단부
210...전역경로계획 수립부 220...전역경로계획 보정부
230...격자지도 생성부 240...지역경로계획 수립부
300...주행 제어부

Claims (11)

  1. 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 센서부;
    상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 장애물격자지도를 생성하는 장애물격자지도 생성부;
    상기 장애물격자지도상에 전역경로계획에서 산출한 경로점이 존재하지 않더라도, 무인차량이 위치한 현재의 격자와 상기 경로점과의 헤딩각 차이를 산출한 후 상기 계산된 헤딩각 차이를 활용하여 상기 장애물격자지도상의 특정격자를 지역경로계획의 목표점으로 선정하는 지역경로 목표점 선정부와 A* 알고리즘(Astar Algorithm)을 이용하여 무인차량의 현재 위치에서 상기 목표점까지의 지역경로를 산출하는 최소경비 지역경로 산출부를 구비하는 지역경로계획 수립부; 및
    상기 무인차량이 상기 산출된 지역경로를 따라 주행하도록 제어하는 주행 제어부;를 포함하고,
    상기 지역경로계획 수립부는 상기 지역경로 상에서 신(新)목표점(단, 최초 신목표점은 상기 목표점 또는 상기 무인차량의 현재 위치)부터 상기 최초 신목표점의 반대단 격자까지의 각 격자를 상기 신목표점에 연결하여 형성된 직선 중 장애물과 접촉하지 않는 가장 긴 직선을 형성하는 직선 형성 격자가 상기 반대단 격자가 될 때까지 상기 직선 형성 격자를 상기 신목표점으로 재설정하고, 상기 신목표점들을 순차적으로 연결하는 직선으로 상기 지역경로를 대체하는 경로 최적화부를 포함하는 것을 특징으로 하는 무인차량의 자율주행 제어 장치.
  2. 제 1 항에 있어서,
    상기 경로 최적화부는 상기 반대단 격자부터 순차적으로 상기 신목표점과 연결되는 직선을 형성하는 것을 특징으로 하는 무인차량의 자율주행 제어 장치.
  3. 제 2 항에 있어서,
    상기 경로 최적화부는 장애물과 접촉하지 않는 직선을 형성하는 비접촉 격자가 최초로 추출되면 상기 최초 추출된 비접촉 격자를 상기 직선 형성 격자로 설정하는 것을 특징으로 하는 무인차량의 자율주행 제어 장치.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 지역경로계획 수립부는 상기 신목표점들을 기준으로 4개의 제어점을 추출한 후 Bezier Spline 알고리즘을 적용하여 상기 대체된 지역경로를 곡선화하는 경로 곡선화부를 더 포함하는 것을 특징으로 하는 무인차량의 자율주행 제어 장치.
  5. 제 4 항에 있어서,
    상기 경로 곡선화부는 상기 Bezier Spline 알고리즘에 입력되는 4개의 제어점 중 2개를 바로 이전에 적용된 상기 Bezier Spline 알고리즘에 의해 곡선화된 좌표에서 추출하고, 나머지 2개는 상기 신목표점들을 연결하는 직선 경로의 좌표에서 추출하는 것을 특징으로 하는 무인차량의 자율주행 제어 장치.
  6. 제 5 항에 있어서,
    상기 경로 곡선화부는 상기 Bezier Spline 알고리즘을 상기 무인차량의 현재 위치부터 순차적으로 적용하고,
    상기 Bezier Spline 알고리즘을 최초 적용할 때 상기 현재 위치와 상기 현재 위치의 좌표에서 y축으로 +1만큼 이동한 좌표를 상기 곡선화된 좌표에서 추출되는 2개의 제어점으로 추출하는 것을 특징으로 하는 무인차량의 자율주행 제어 장치.
  7. 지형 정보와 장애물 정보에 관한 데이터를 수집하는 지형감지 단계;
    상기 수집된 데이터를 활용하여 주행 가능 여부가 판단된 장애물격자지도를 생성하는 장애물격자지도 생성단계;
    상기 장애물격자지도를 근거로 출발 경로점에서 다음 경로점으로의 최적 주행을 위한 지역경로를 산출하는 지역경로계획 수립단계; 및
    상기 산출된 지역경로를 주행하도록 제어하는 주행 제어단계;를 포함하고,
    상기 지역경로계획 수립단계는,
    상기 장애물격자지도상에 전역경로계획에서 산출한 경로점이 존재하지 않더라도, 무인차량이 위치한 현재의 격자와 상기 경로점과의 헤딩각 차이를 산출한 후 상기 계산된 헤딩각 차이를 활용하여 상기 장애물격자지도상의 특정격자를 지역경로계획의 목표점으로 선정하는 지역경로 목표점 선정 단계;
    A* 알고리즘(Astar Algorithm)을 이용하여 무인차량의 현재 위치에서 상기 목표점까지의 지역경로를 산출하는 최소경비 지역경로 산출 단계;
    상기 지역경로 상에서 신(新)목표점(단, 최초 신목표점은 상기 목표점 또는 상기 무인차량의 현재 위치)부터 상기 최초 신목표점의 반대단 격자까지의 각 격자를 상기 신목표점에 연결하여 형성된 직선 중 장애물과 접촉하지 않는 가장 긴 직선을 형성하는 직선 형성 격자가 상기 반대단 격자가 될 때까지 상기 직선 형성 격자를 상기 신목표점으로 재설정하고, 상기 신목표점들을 순차적으로 연결하는 직선으로 상기 지역경로를 대체하는 단계;를 포함하는 것을 특징으로 하는 무인차량의 자율주행 제어 방법.
  8. 제 7 항에 있어서,
    상기 지역경로를 대체하는 단계는 상기 반대단 격자부터 순차적으로 상기 신목표점과 연결되는 직선을 형성하는 것을 특징으로 하는 무인차량의 자율주행 제어 방법.
  9. 제 8 항에 있어서,
    상기 지역경로를 대체하는 단계는 장애물과 접촉하지 않는 직선을 형성하는 비접촉 격자가 최초로 추출되면 상기 최초 추출된 비접촉 격자를 상기 직선 형성 격자로 설정하는 것을 특징으로 하는 무인차량의 자율주행 제어 방법.
  10. 제 7 항에 있어서,
    상기 지역경로를 대체하는 단계 이후에,
    상기 신목표점들을 기준으로 4개의 제어점을 추출한 후 Bezier Spline 알고리즘을 적용하여 상기 대체된 지역경로를 곡선화하는 단계를 더 포함하는 것을 특징으로 하는 무인차량의 자율주행 제어 방법.
  11. 제 7 항 내지 제 10 항 중 어느 한 항의 방법을 프로그램으로 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020100097060A 2010-10-05 2010-10-05 무인차량의 자율주행 제어 장치 및 방법 KR101063302B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100097060A KR101063302B1 (ko) 2010-10-05 2010-10-05 무인차량의 자율주행 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100097060A KR101063302B1 (ko) 2010-10-05 2010-10-05 무인차량의 자율주행 제어 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101063302B1 true KR101063302B1 (ko) 2011-09-07

Family

ID=44957096

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100097060A KR101063302B1 (ko) 2010-10-05 2010-10-05 무인차량의 자율주행 제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101063302B1 (ko)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101393974B1 (ko) * 2012-10-09 2014-05-12 현대자동차주식회사 능동추종차량
KR101413475B1 (ko) * 2013-02-20 2014-07-01 국방과학연구소 다중로봇 협력주행을 위한 정보공유기반의 경로계획 방법
US8812186B2 (en) 2012-12-27 2014-08-19 Hyundai Motor Company Driving mode changing method and apparatus of autonomous navigation vehicle
KR101458502B1 (ko) * 2013-03-27 2014-11-07 국방과학연구소 무인자율차량을 위한 주행경로 생성장치 및 이의 제어방법
KR101488943B1 (ko) 2013-06-04 2015-02-06 (주)엔스퀘어 무인반송차량 내부제어시스템의 구조화 장치
KR101529026B1 (ko) * 2013-11-13 2015-06-15 국방과학연구소 가중치 기반의 임무지향 전역경로 생성 방법
KR101556171B1 (ko) * 2014-07-22 2015-09-30 연세대학교 산학협력단 조향 제어 방법 및 그 장치
WO2017018850A1 (ko) * 2015-07-30 2017-02-02 삼성전자 주식회사 자율 주행 차량 및 자율 주행 차량 제어 방법
CN107146408A (zh) * 2017-05-29 2017-09-08 胡笳 一种基于车联网的道路环保驾驶系统的控制方法
KR20180063069A (ko) * 2015-09-30 2018-06-11 소니 주식회사 운전 제어 장치 및 운전 제어 방법, 그리고 프로그램
US10223916B2 (en) 2015-07-17 2019-03-05 Korea University Research And Business Foundation Automated guided vehicle system based on autonomous mobile technique and a method for controlling the same
KR20190095883A (ko) * 2018-01-26 2019-08-16 바이두 유에스에이 엘엘씨 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘
US10782701B2 (en) 2015-07-30 2020-09-22 Samsung Electronics Co., Ltd. Autonomous vehicle and method of controlling the same
US10802492B2 (en) 2018-04-05 2020-10-13 Ford Global Technologies, Llc Vehicle path identification
CN111880550A (zh) * 2020-09-17 2020-11-03 广东铁甲软件系统有限公司 一种agv小车的平滑路径规划方法
CN111912422A (zh) * 2020-07-20 2020-11-10 济南浪潮高新科技投资发展有限公司 一种固定轨迹自动驾驶机器人路径规划方法
CN111998864A (zh) * 2020-08-11 2020-11-27 东风柳州汽车有限公司 无人车局部路径规划方法、装置、设备及存储介质
CN112269965A (zh) * 2020-08-10 2021-01-26 中国北方车辆研究所 一种非完整约束条件下的连续曲率路径优化方法
CN112601869A (zh) * 2020-04-10 2021-04-02 百度时代网络技术(北京)有限公司 基于路径规划的二次规划的靠边停车方法
CN112783144A (zh) * 2019-10-22 2021-05-11 舜宇光学(浙江)研究院有限公司 路径生成方法和路径规划方法及其系统和设备
KR20210061268A (ko) * 2019-11-19 2021-05-27 치루 유니버시티 오브 테크놀로지 진행 방향 제약이 있는 추종 로봇 경로 계획 방법 및 시스템
CN114184198A (zh) * 2020-09-14 2022-03-15 广州汽车集团股份有限公司 一种实时路径生成方法、装置及汽车
CN114995391A (zh) * 2022-05-10 2022-09-02 安徽工程大学 一种改进a*算法的4阶b样条曲线路径规划方法
CN117685994A (zh) * 2024-02-04 2024-03-12 北京航空航天大学 一种空地协同的无人车路径规划方法

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101393974B1 (ko) * 2012-10-09 2014-05-12 현대자동차주식회사 능동추종차량
US8812186B2 (en) 2012-12-27 2014-08-19 Hyundai Motor Company Driving mode changing method and apparatus of autonomous navigation vehicle
KR101413475B1 (ko) * 2013-02-20 2014-07-01 국방과학연구소 다중로봇 협력주행을 위한 정보공유기반의 경로계획 방법
KR101458502B1 (ko) * 2013-03-27 2014-11-07 국방과학연구소 무인자율차량을 위한 주행경로 생성장치 및 이의 제어방법
KR101488943B1 (ko) 2013-06-04 2015-02-06 (주)엔스퀘어 무인반송차량 내부제어시스템의 구조화 장치
KR101529026B1 (ko) * 2013-11-13 2015-06-15 국방과학연구소 가중치 기반의 임무지향 전역경로 생성 방법
KR101556171B1 (ko) * 2014-07-22 2015-09-30 연세대학교 산학협력단 조향 제어 방법 및 그 장치
US10223916B2 (en) 2015-07-17 2019-03-05 Korea University Research And Business Foundation Automated guided vehicle system based on autonomous mobile technique and a method for controlling the same
WO2017018850A1 (ko) * 2015-07-30 2017-02-02 삼성전자 주식회사 자율 주행 차량 및 자율 주행 차량 제어 방법
US10782701B2 (en) 2015-07-30 2020-09-22 Samsung Electronics Co., Ltd. Autonomous vehicle and method of controlling the same
KR20180063069A (ko) * 2015-09-30 2018-06-11 소니 주식회사 운전 제어 장치 및 운전 제어 방법, 그리고 프로그램
US11835954B2 (en) 2015-09-30 2023-12-05 Sony Group Corporation Driving control apparatus, driving control method, and program
KR102498091B1 (ko) * 2015-09-30 2023-02-09 소니그룹주식회사 운전 제어 장치 및 운전 제어 방법, 그리고 프로그램
CN107146408B (zh) * 2017-05-29 2018-05-04 胡笳 一种基于车联网的道路环保驾驶系统的控制方法
CN107146408A (zh) * 2017-05-29 2017-09-08 胡笳 一种基于车联网的道路环保驾驶系统的控制方法
KR20190095883A (ko) * 2018-01-26 2019-08-16 바이두 유에스에이 엘엘씨 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘
KR102099152B1 (ko) 2018-01-26 2020-07-06 바이두 유에스에이 엘엘씨 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘
US10802492B2 (en) 2018-04-05 2020-10-13 Ford Global Technologies, Llc Vehicle path identification
CN112783144B (zh) * 2019-10-22 2023-09-29 舜宇光学(浙江)研究院有限公司 路径生成方法和路径规划方法及其系统和设备
CN112783144A (zh) * 2019-10-22 2021-05-11 舜宇光学(浙江)研究院有限公司 路径生成方法和路径规划方法及其系统和设备
KR20210061268A (ko) * 2019-11-19 2021-05-27 치루 유니버시티 오브 테크놀로지 진행 방향 제약이 있는 추종 로봇 경로 계획 방법 및 시스템
KR102357397B1 (ko) 2019-11-19 2022-02-07 치루 유니버시티 오브 테크놀로지 진행 방향 제약이 있는 추종 로봇 경로 계획 방법 및 시스템
CN112601869B (zh) * 2020-04-10 2022-10-28 百度时代网络技术(北京)有限公司 操作自主驾驶车辆的方法、机器可读介质及数据处理系统
WO2021203426A1 (en) * 2020-04-10 2021-10-14 Baidu.Com Times Technology (Beijing) Co., Ltd. Pull over method based on quadratic programming for path planning
CN112601869A (zh) * 2020-04-10 2021-04-02 百度时代网络技术(北京)有限公司 基于路径规划的二次规划的靠边停车方法
CN111912422B (zh) * 2020-07-20 2023-11-07 山东浪潮科学研究院有限公司 一种固定轨迹自动驾驶机器人路径规划方法
CN111912422A (zh) * 2020-07-20 2020-11-10 济南浪潮高新科技投资发展有限公司 一种固定轨迹自动驾驶机器人路径规划方法
CN112269965A (zh) * 2020-08-10 2021-01-26 中国北方车辆研究所 一种非完整约束条件下的连续曲率路径优化方法
CN112269965B (zh) * 2020-08-10 2024-04-05 中国北方车辆研究所 一种非完整约束条件下的连续曲率路径优化方法
CN111998864A (zh) * 2020-08-11 2020-11-27 东风柳州汽车有限公司 无人车局部路径规划方法、装置、设备及存储介质
CN111998864B (zh) * 2020-08-11 2023-11-07 东风柳州汽车有限公司 无人车局部路径规划方法、装置、设备及存储介质
CN114184198A (zh) * 2020-09-14 2022-03-15 广州汽车集团股份有限公司 一种实时路径生成方法、装置及汽车
CN114184198B (zh) * 2020-09-14 2024-03-01 广州汽车集团股份有限公司 一种实时路径生成方法、装置及汽车
CN111880550B (zh) * 2020-09-17 2023-10-10 广东铁甲软件系统有限公司 一种agv小车的平滑路径规划方法
CN111880550A (zh) * 2020-09-17 2020-11-03 广东铁甲软件系统有限公司 一种agv小车的平滑路径规划方法
CN114995391A (zh) * 2022-05-10 2022-09-02 安徽工程大学 一种改进a*算法的4阶b样条曲线路径规划方法
CN114995391B (zh) * 2022-05-10 2024-04-09 安徽工程大学 一种改进a*算法的4阶b样条曲线路径规划方法
CN117685994A (zh) * 2024-02-04 2024-03-12 北京航空航天大学 一种空地协同的无人车路径规划方法

Similar Documents

Publication Publication Date Title
KR101063302B1 (ko) 무인차량의 자율주행 제어 장치 및 방법
KR102221695B1 (ko) 자율주행을 위한 고정밀 지도의 업데이트 장치 및 방법
KR101096592B1 (ko) 장애물격자지도를 활용하는 무인차량의 자율주행성능 향상 장치 및 방법
Bernini et al. Real-time obstacle detection using stereo vision for autonomous ground vehicles: A survey
CN106599108A (zh) 一种三维环境中多模态环境地图构建方法
Lategahn et al. Visual SLAM for autonomous ground vehicles
CN106548486B (zh) 一种基于稀疏视觉特征地图的无人车位置跟踪方法
US10386840B2 (en) Cruise control system and method
CN107179082B (zh) 基于拓扑地图和度量地图融合的自主探索方法和导航方法
KR101409323B1 (ko) 무인자율차량 및 이의 동적환경 주행경로생성방법
KR20190095622A (ko) 회피경로 생성방법 및 그를 위한 장치
CN113252027B (zh) 井下无人驾驶车辆局部路径规划方法、装置、设备及存储介质
CN110361013A (zh) 一种用于车辆模型的路径规划系统及方法
Jaspers et al. Multi-modal local terrain maps from vision and lidar
EP3931657B1 (en) System and method for surface feature detection and traversal
Chen et al. An enhanced dynamic Delaunay triangulation-based path planning algorithm for autonomous mobile robot navigation
WO2022205618A1 (zh) 定位方法、行驶控制方法、装置、计算机设备及存储介质
CN108445882A (zh) 具有跟踪功能的自动导引车
Yabuuchi et al. Visual localization for autonomous driving using pre-built point cloud maps
Zhao et al. Semantic probabilistic traversable map generation for robot path planning
Huber et al. Real-time photo-realistic visualization of 3D environments for enhanced tele-operation of vehicles
CN116048120B (zh) 一种未知动态环境下小型四旋翼无人机自主导航系统及方法
Vatavu et al. Modeling and tracking of dynamic obstacles for logistic plants using omnidirectional stereo vision
Muffert et al. Stix-fusion: A probabilistic stixel integration technique
Ahmadi et al. HDPV-SLAM: Hybrid depth-augmented panoramic visual SLAM for mobile mapping system with tilted LiDAR and panoramic visual camera

Legal Events

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

Payment date: 20140901

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150901

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170904

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180904

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190903

Year of fee payment: 9