KR102507804B1 - 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 - Google Patents
자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 Download PDFInfo
- Publication number
- KR102507804B1 KR102507804B1 KR1020200182744A KR20200182744A KR102507804B1 KR 102507804 B1 KR102507804 B1 KR 102507804B1 KR 1020200182744 A KR1020200182744 A KR 1020200182744A KR 20200182744 A KR20200182744 A KR 20200182744A KR 102507804 B1 KR102507804 B1 KR 102507804B1
- Authority
- KR
- South Korea
- Prior art keywords
- point
- driving route
- polynomial function
- driving
- autonomous vehicle
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000004590 computer program Methods 0.000 title claims abstract description 18
- 230000006870 function Effects 0.000 claims description 175
- 230000008859 change Effects 0.000 claims description 30
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60K—ARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
- B60K35/00—Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60K—ARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
- B60K35/00—Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
- B60K35/10—Input arrangements, i.e. from user to vehicle, associated with vehicle functions or specially adapted therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60K—ARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
- B60K35/00—Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
- B60K35/20—Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor
- B60K35/21—Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor using visual output, e.g. blinking lights or matrix displays
- B60K35/22—Display screens
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Purposes 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
- B60W30/10—Path keeping
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Purposes 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
- B60W30/18—Propelling the vehicle
- B60W30/18009—Propelling the vehicle related to particular drive situations
- B60W30/18163—Lane change; Overtaking manoeuvres
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Estimation 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/02—Estimation 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
- B60W40/06—Road conditions
- B60W40/072—Curvature of the road
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/08—Interaction between the driver and the control system
- B60W50/14—Means for informing the driver, warning the driver or prompting a driver intervention
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0013—Planning or execution of driving tasks specially adapted for occupant comfort
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D15/00—Steering not otherwise provided for
- B62D15/02—Steering position indicators ; Steering position determination; Steering aids
- B62D15/025—Active steering aids, e.g. helping the driver by actively influencing the steering system after environment evaluation
- B62D15/0255—Automatic changing of lane, e.g. for passing another vehicle
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/08—Interaction between the driver and the control system
- B60W50/14—Means for informing the driver, warning the driver or prompting a driver intervention
- B60W2050/146—Display means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W2540/00—Input parameters relating to occupants
- B60W2540/18—Steering angle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W2552/00—Input parameters relating to infrastructure
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/404—Characteristics
- B60W2554/4041—Position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W2556/00—Input parameters relating to data
- B60W2556/45—External transmission of data to or from the vehicle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W2720/00—Output or target parameters relating to overall vehicle dynamics
- B60W2720/24—Direction of travel
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2300/00—Purposes or special features of road vehicle drive control systems
- B60Y2300/10—Path keeping
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2300/00—Purposes or special features of road vehicle drive control systems
- B60Y2300/18—Propelling the vehicle
- B60Y2300/18008—Propelling the vehicle related to particular drive situations
- B60Y2300/18166—Overtaking, changing lanes
Landscapes
- Engineering & Computer Science (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Combustion & Propulsion (AREA)
- Chemical & Material Sciences (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Navigation (AREA)
- Traffic Control Systems (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
Abstract
자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램이 제공된다. 본 발명의 다양한 실시예에 따른 자율주행 차량의 주행 경로 생성 방법은 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 시작 지점 및 종료 지점에 대한 정보를 얻는 단계, 상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계 및 상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며, 상기 생성된 주행 경로는, 상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것일 수 있다.
Description
본 발명의 다양한 실시예는 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램에 관한 것이다.
차량을 운전하는 사용자들의 편의를 위하여, 각종 센서와 전자 장치 등(예: 차량 운전자 보조 시스템(ADAS: Advanced Driver Assistance System)이 구비되고 있는 추세이며, 특히, 차량의 자율 주행 시스템(Autonomous driving System)에 대한 기술 개발이 활발하게 이루어지고 있다.
여기서, 자율 주행 시스템이란 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 차량을 말한다.
종래의 자율 주행 시스템에서 자율주행 차량이 시작 지점에서 종료 지점까지 주행하고자 하는 경우, 지도 데이터에 기반하여 시작 지점부터 종료 까지의 주행 경로를 생성하고, 생성된 주행 경로에 따라 자율주행 차량이 주행하도록 제어하였다.
그러나 종래의 자율 주행 시스템에서 생성되는 주행 경로는 시작 지점과 종료 지점을 단순히 연결하여 주행 경로를 생성하기 때문에, 해당 주행 경로에 따라 주행되는 자율주행 차량의 역학적 특성을 고려하지 못하여, 자율주행 차량이 무리하게 방향을 전환하도록 하게 되거나, 승차감이 좋지 않도록 주행하게 된다는 문제가 있다.
본 발명이 해결하고자 하는 과제는 시작 지점과 종료 지점 사이에 하나 이상의 중간 지점을 설정하고, 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 주행 경로를 생성하되, 해당 주행 경로를 주행하는 자율주행 차량의 진행 각도와 조향 각도(차량의 스티어링 휠 각도)를 고려하여 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결함으로써, 자율주행 차량이 주행 경로를 따라 부드럽고 이질감 없이 주행할 수 있도록 하는 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램에 관한 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 자율주행 차량의 주행 경로 생성 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 시작 지점 및 종료 지점에 대한 정보를 얻는 단계, 상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계 및 상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며, 상기 생성된 주행 경로는, 상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것일 수 있다.
다양한 실시예에서, 상기 설정된 중간 지점은 제1 중간 지점 및 제2 중간 지점을 포함하며, 상기 주행 경로를 생성하는 단계는, 상기 시작 지점과 상기 제1 중간 지점을 연결하는 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계, 상기 제1 중간 지점과 상기 제2 중간 지점을 연결하는 제2 단위 주행 경로에 대응되는 제2 다항식 함수를 추정하는 단계, 상기 제2 중간 지점과 상기 종료 지점을 연결하는 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계, 상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점에 대한 정보와 상기 곡률에 대한 하나 이상의 연속성 조건을 이용하여 상기 추정된 제1 다항식 함수, 상기 추정된 제2 다항식 함수 및 상기 추정된 제3 다항식 함수를 확정하는 단계 및 상기 확정된 제1 다항식 함수, 상기 확정된 제2 다항식 함수 및 상기 확정된 제3 다항식 함수를 연결하여 상기 자율주행 차량에 대한 최종 주행 경로를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계는, 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)을 설정하는 단계 및 상기 시작 지점과 상기 제1 중간 지점을 연결하는 상기 제1 다항식 함수를 추정하되, 상기 추정된 제1 다항식 함수의 차수는 상기 설정된 경계 조건의 수에 기초하여 결정되는 것인, 단계를 포함할 수 있다.
다양한 실시예에서, 상기 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계는, 상기 시작 지점과 상기 제1 중간 지점을 연결하는 상기 제1 다항식 함수를 추정하는 단계, 상기 추정된 제1 다항식 함수의 차수에 기초하여 설정할 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)의 종류 및 개수를 결정하는 단계 및 상기 결정된 상기 경계 조건의 종류 및 개수에 기초하여 상기 경계 조건을 설정하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 제2 단위 주행 경로에 대응되는 제2 다항식 함수를 추정하는 단계는, 상기 자율주행 차량의 주행 경로에 대한 평활도(Smoothness)를 입력받는 단계, 상기 입력된 주행 경로에 대한 평활도에 기초하여, 상기 곡률에 대한 하나 이상의 연속성 조건을 설정하는 단계 및 상기 제1 중간 지점과 상기 제2 중간 지점을 연결하는 상기 제2 다항식 함수를 추정하되, 상기 추정된 제2 다항식 함수의 차수는 상기 설정된 곡률에 대한 하나 이상의 연속성 조건에 기초하여 결정되는 것인, 단계를 포함할 수 있다.
다양한 실시예에서, 상기 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계는, 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)을 설정하는 단계 및 상기 제2 중간 지점과 상기 종료 지점을 연결하는 상기 제3 다항식 함수를 추정하되, 상기 추정된 제3 다항식 함수의 차수는 상기 설정된 경계 조건의 수에 기초하여 결정되는 것인, 단계를 포함할 수 있다.
다양한 실시예에서, 상기 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계는, 상기 제2 중간 지점과 상기 종료 지점을 연결하는 상기 제3 다항식 함수를 추정하는 단계, 상기 추정된 제3 다항식 함수의 차수에 기초하여 설정할 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)의 종류 및 개수를 결정하는 단계 및 상기 결정된 상기 경계 조건의 종류 및 개수에 기초하여 상기 경계 조건을 설정하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 주행 경로를 생성하는 단계는, 상기 곡률에 대한 하나 이상의 연속성 조건이 상기 곡률의 2차 도함수가 연속인 것일 경우, 상기 생성된 주행 경로에 관한 다항식 함수의 차수를 4으로 결정하는 단계를 포함할 수 있다.
다양한 실시예에서, 제1 주행 경로에 따라 주행 중인 상기 자율주행 차량에 대하여 주행 경로 변경이 요구되는 경우, 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치와 상기 종료 지점 사이의 하나 이상의 중간 지점을 재설정하는 단계, 상기 제1 주행 경로에 대한 다항식 함수로부터 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치에 관한 데이터를 추출하는 단계 및 상기 추출된 데이터와 상기 재설정된 하나 이상의 중간 지점의 위치 좌표를 이용하여 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치, 상기 재설정된 하나 이상의 중간 지점 및 상기 종료 지점을 연결하는 제2 주행 경로를 생성하는 단계를 더 포함할 수 있다.
다양한 실시예에서, 상기 생성된 주행 경로에 따라 주행 중인 상기 자율주행 차량에 대하여, 상기 생성된 주행 경로 상에 이벤트가 발생됨에 따라 상기 이벤트에 대한 회피 경로 생성이 요구되는 경우, 상기 생성된 주행 경로 상에 위치하는 회피 경로의 시작 지점과 상기 회피 경로의 종료 지점 사이의 하나 이상의 중간 지점을 재설정하는 단계, 상기 생성된 주행 경로에 대한 다항식 함수로부터 상기 회피 경로의 시작 지점 및 상기 회피 경로의 종료 지점에 관한 데이터를 추출하는 단계 및 상기 추출된 데이터와 상기 재설정된 하나 이상의 중간 지점의 위치 좌표를 이용하여 상기 회피 경로의 시작 지점, 상기 재설정된 하나 이상의 중간 지점 및 상기 회피 경로의 종료 지점을 연결하는 회피 경로를 생성하는 단계를 더 포함할 수 있다.
다양한 실시예에서, 소정의 지역에 대한 지도 데이터를 출력하는 사용자 인터페이스(User Interface, UI)를 제공하는 단계를 더 포함하며, 상기 시작 지점 및 종료 지점에 대한 정보를 얻는 단계는, 상기 사용자 인터페이스를 통해 상기 시작 지점 및 상기 종료 지점에 대한 2차원 위치 좌표와 상기 시작 지점 및 상기 종료 지점에서 상기 자율주행 차량의 진행 각도를 입력받는 단계를 포함하고, 상기 중간 지점을 설정하는 단계는, 상기 사용자 인터페이스를 통해, 상기 시작 지점과 상기 종료 지점 사이에 위치하는 하나 이상의 중간 지점에 대한 2차원 위치 좌표를 입력받는 단계를 포함하며, 상기 주행 경로를 생성하는 단계는, 상기 사용자 인터페이스를 통해 입력된 상기 시작 지점, 상기 하나 이상의 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 사용자 인터페이스를 통해 신규 중간 지점이 추가적으로 입력되는 경우, 생기 주행 경로가 상기 신규 중간 지점을 경유하도록 자동적으로 상기 생성된 주행 경로를 갱신하는 단계 및 상기 생성된 주행 경로를 상기 사용자 인터페이스를 통해 출력되는 지도 데이터 상에 표시하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 시작 지점 및 상기 종료 지점을 포함하는 소정의 지역에 대한 지도 데이터를 얻는 단계를 더 포함하며, 상기 중간 지점을 설정하는 단계는, 상기 소정의 지역에 대한 지도 데이터를 분석하여 상기 시작 지점과 상기 종료 지점을 연결하는 도로의 차선을 인식하는 단계 및 상기 도로의 차선을 인식한 결과에 기초하여 상기 시작 지점과 상기 종료 지점 사이의 하나 이상의 중간 지점을 선택하는 단계를 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 장치는, 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 시작 지점 및 종료 지점에 대한 정보를 얻는 인스트럭션(instruction), 상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 인스트럭션 및 상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 생성된 주행 경로는, 상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것인, 인스트럭션을 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터프로그램은, 컴퓨팅 장치와 결합되어, 시작 지점 및 종료 지점에 대한 정보를 얻는 단계, 상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계 및 상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 생성된 주행 경로는, 상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것인, 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 다양한 실시예에 따르면, 시작 지점과 종료 지점 사이에 하나 이상의 중간 지점을 설정하고, 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 주행 경로를 생성하되, 해당 주행 경로를 주행하는 자율주행 차량의 진행 각도와 조향 각도(차량의 스티어링 휠 각도)를 고려하여 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결함으로써, 자율주행 차량이 주행 경로를 따라 부드럽고 이질감 없이 주행할 수 있도록 한다는 이점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 자율주행 차량의 주행 경로 생성 시스템을 도시한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 방법의 순서도이다.
도 4는 다양한 실시예에서, 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법의 순서도이다.
도 5는 다양한 실시예에 적용 가능한 시작 지점 및 종료 지점의 유형별 경계 조건의 개수 및 종류와 이에 따른 다항식 함수의 차수를 나타낸 표이다.
도 6은 다양한 실시예에서, 파라미터 산출을 위하여 다항식 함수가 만족해야 할 조건의 리스트이다.
도 7은 다양한 실시예에서, 자율주행 차량의 주행 경로를 변경하는 과정을 도시한 도면이다.
도 8은 다양한 실시예에서, 자율주행 차량이 주행 경로 상에 발생된 이벤트를 회피하는 과정을 도시한 도면이다.
도 9 내지 11은 다양한 실시예에서, 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 주행 경로가 지도 데이터 상에 표시된 형태를 도시한 도면이다.
도 12 내지 16은 종래의 주행 경로 생성 방법에 따라 생성된 주행 경로와 본 발명의 다양한 실시예에 따른 자율주행 차량의 주행 경로 생성 방법에 따라 생성된 주행 경로를 비교한 그래프이다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 방법의 순서도이다.
도 4는 다양한 실시예에서, 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법의 순서도이다.
도 5는 다양한 실시예에 적용 가능한 시작 지점 및 종료 지점의 유형별 경계 조건의 개수 및 종류와 이에 따른 다항식 함수의 차수를 나타낸 표이다.
도 6은 다양한 실시예에서, 파라미터 산출을 위하여 다항식 함수가 만족해야 할 조건의 리스트이다.
도 7은 다양한 실시예에서, 자율주행 차량의 주행 경로를 변경하는 과정을 도시한 도면이다.
도 8은 다양한 실시예에서, 자율주행 차량이 주행 경로 상에 발생된 이벤트를 회피하는 과정을 도시한 도면이다.
도 9 내지 11은 다양한 실시예에서, 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 주행 경로가 지도 데이터 상에 표시된 형태를 도시한 도면이다.
도 12 내지 16은 종래의 주행 경로 생성 방법에 따라 생성된 주행 경로와 본 발명의 다양한 실시예에 따른 자율주행 차량의 주행 경로 생성 방법에 따라 생성된 주행 경로를 비교한 그래프이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
도 1은 본 발명의 일 실시예에 따른 자율주행 차량의 주행 경로 생성 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 자율주행 차량의 주행 경로 생성 시스템은 주행 경로 생성 장치(100), 사용자 단말(200) 및 외부 서버(300)를 포함할 수 있다.
여기서, 도 1에 도시된 자율주행 차량의 주행 경로 생성 시스템은 일 실시예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있다.
일 실시예에서, 주행 경로 생성 장치(100)는 자율주행 차량(10)의 주행 제어를 위한 주행 경로를 생성할 수 있다. 예를 들어, 주행 경로 생성 장치(100)는 네트워크(400)를 통해 사용자 단말(200)과 연결될 수 있으며, 사용자 단말(200)로부터 입력된 시작 지점과 종료 지점을 연결하는 주행 경로를 생성하고, 생성된 주행 경로를 제공할 수 있다.
다양한 실시예에서, 주행 경로 생성 장치(100)는 자율주행 차량(10)의 주행 경로를 생성 및 제공하기 위한 애플리케이션을 제공할 수 있고, 제공된 애플리케이션이 실행됨에 따라 주행 경로를 생성하기 위한 사용자 인터페이스(User Interface)를 제공할 수 있고, UI를 통해 주행 경로를 생성하거나 생성된 주행 경로가 표시된 지도 데이터(예: 도 9 내지 11)를 제공할 수 있다.
다양한 실시예에서, 주행 경로 생성 장치(100)는 자율주행 차량(10)의 동작을 제어하는 제어 모듈(미도시) 또는 제어 시스템과 연결될 수 있으며, 제어 모듈 또는 제어 시스템이 자율주행 차량(10)을 기 설정된 주행 경로에 따라 주행하도록 제어하고자 하는 경우, 시작 지점과 종료 지점을 연결하는 주행 경로를 생성하여 제어 모듈 또는 제어 시스템으로 제공할 수 있다.
여기서, 자율주행 차량(10)의 동작을 제어하는 제어 모듈(미도시) 또는 제어 시스템은 주행 경로 생성 장치(100)의 외부에 별도로 구비되는 것으로 설명하고 있으나, 이는 하나의 예시일 뿐 이에 한정되지 않고, 주행 경로 생성 장치(100)가 자율주행 차량(10)의 동작을 제어하는 제어 시스템이며, 주행 경로를 생성하는 동작은 자율주행 차량을 기 설정된 주행 경로에 따라 주행하도록 제어하기 위한 기능 중 일부일 수 있다.
일 실시예에서, 사용자 단말(200)은 네트워크(400)를 통해 주행 경로 생성 장치(100)와 연결될 수 있으며, 주행 경로 생성을 위한 시작 지점에 대한 정보 및 종료 지점에 대한 정보와 시작 지점과 종료 지점 사이의 중간 지점에 대한 정보를 주행 경로 생성 장치(100)로 제공할 수 있고, 이에 대한 응답으로 시작 지점, 중간 지점 및 종료 지점을 연결하는 주행 경로를 제공받을 수 있다.
다양한 실시예에서, 사용자 단말(200)은 자신이 선호하는 주행 경로에 대한 평활도(Smoothness) 즉, 주행 경로의 부드러움 수준(완만함)을 입력할 수 있고, 이에 따라 부드러움 수준이 반영된 주행 경로를 제공받을 수 있다.
다양한 실시예에서, 사용자 단말(200)은 애플리케이션 구동이 가능한 운영체제를 포함하며, 적어도 일부분에 디스플레이를 포함하는 스마트폰 및 차량의 인포테인먼트 시스템을 포함할 수 있으며, 주행 경로 생성 장치(100)가 제공하는 애플리케이션을 다운로드, 설치 및 실행함에 따라 주행 경로를 생성 및 제공받는 UI를 출력할 수 있다.
일 실시예에서, 외부 서버(300)는 네트워크(400)를 통해 주행 경로 생성 장치(100)와 연결될 수 있으며, 주행 경로 생성 장치(100)가 자율주행 차량의 주행 경로 생성 방법을 제공하기 위해 필요한 각종 데이터, 정보 및 소프트웨어(예: 지도 데이터, 주행 경로 생성 알고리즘 등)를 저장 및 관리할 수 있다.
또한, 외부 서버(300)는 주행 경로 생성 장치(100)가 자율주행 차량의 주행 경로 생성 방법을 제공함에 따라 생성되는 각종 데이터 및 정보(예: 주행 경로 데이터, 이미지 분석 결과 데이터 등)를 제공받아 저장할 수 있다. 예를 들어, 외부 서버(300)는 주행 경로 생성 장치(100) 외부에 별도로 구비되는 저장 서버일 수 있으나, 이에 한정되지 않는다. 이하, 도 2를 참조하여, 주행 경로 생성 장치(100)의 하드웨어 구성에 대해 설명하도록 한다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 장치의 하드웨어 구성도이다.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 주행 경로 생성 장치(100)(이하, “컴퓨팅 장치(100)”는 하나 이상의 프로세서(110), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램(151)을 로드(Load)하는 메모리(120), 버스(130), 통신 인터페이스(140) 및 컴퓨터 프로그램(151)을 저장하는 스토리지(150)를 포함할 수 있다. 여기서, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다.
또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있으며, 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
다양한 실시예에서, 프로세서(110)는 프로세서(110) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(110)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(120)는 본 발명의 다양한 실시예에 따른 방법/동작을 실행하기 위하여 스토리지(150)로부터 컴퓨터 프로그램(151)을 로드할 수 있다. 메모리(120)에 컴퓨터 프로그램(151)이 로드되면, 프로세서(110)는 컴퓨터 프로그램(151)을 구성하는 하나 이상의 인스트럭션들을 실행함으로써 상기 방법/동작을 수행할 수 있다. 메모리(120)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(130)는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(130)는 주소 버스(address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(140)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(140)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(140)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 몇몇 실시예에서, 통신 인터페이스(140)는 생략될 수도 있다.
스토리지(150)는 컴퓨터 프로그램(151)을 비 임시적으로 저장할 수 있다. 컴퓨팅 장치(100)를 통해 자율주행 차량의 주행 경로 생성 프로세스를 수행하는 경우, 스토리지(150)는 자율주행 차량의 주행 경로 생성 프로세스를 제공하기 위하여 필요한 각종 정보를 저장할 수 있다.
스토리지(150)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(151)은 메모리(120)에 로드될 때 프로세서(110)로 하여금 본 발명의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(110)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 다양한 실시예에 따른 상기 방법/동작을 수행할 수 있다.
일 실시예에서, 컴퓨터 프로그램(151)은 시작 지점 및 종료 지점에 대한 정보를 얻는 단계, 시작 지점과 종료 지점 사이의 중간 지점을 설정하는 단계 및 시작 지점, 설정된 중간 지점 및 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하는 자율주행 차량의 주행 경로 생성 방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 이하 도 3 내지 11을 참조하며, 컴퓨팅 장치(100)에 의해 수행되는 자율주행 차량의 주행 경로 생성 방법에 대해 설명하도록 한다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 차량의 주행 경로 생성 방법의 순서도이다.
여기서, 도 3에 도시된 자율주행 차량의 주행 경로 생성 방법은 컴퓨팅 장치(100)에 의해 수행되는 것으로 설명하고 있으나, 이에 한정되지 않고, 컴퓨팅 장치(100)에서 수행하거나, 사용자 단말(200) 또는 자율주행 차량(10)의 제어 시스템이 컴퓨팅 장치(100)로부터 자율주행 차량의 주행 경로 생성 방법을 수행하는 소프트웨어를 제공받아 사용자 단말(200) 또는 자율주행 차량(10)의 제어 시스템이 자체적으로 자율주행 차량의 주행 경로 생성 방법을 수행할 수 있다.
도 3을 참조하면, S110 단계에서, 컴퓨팅 장치(100)는 주행 경로 생성을 위한 시작 지점과 종료 지점에 대한 정보를 얻을 수 있다.
여기서, 자율주행 차량(10)의 주행 경로는 자율주행 차량(10)의 주행 거리에 기반한 다항식 함수로 표현될 수 있다.
여기서, 자율주행 차량(10)의 주행 경로로 표현되는 다항식 함수는 자율주행 차량(10)의 진행 각도(θTheta)에 대한 함수 즉, 자율주행 차량(10)의 위치에 따라 그 위치에서의 진행 각도(예: 동, 서, 남 및 북과 같이 자율주행 차량(10)의 전면(heading) 방향)를 나타내는 함수일 수 있다. 예를 들어, 진행 각도에 대한 함수는 차량의 주행 거리에 따른 진행 각도를 나타내는, 즉 차량의 주행 거리를 변수로 하는 다항식으로 표현될 수 있으나, 이에 제한되는 것은 아니다.
다양한 실시예에서, 컴퓨팅 장치(100)에 의해 생성되는 다항식 함수(주행 경로)는 곡률에 대한 연속성 조건을 만족할 수 있다. 상기와 같이 컴퓨팅 장치(100)가 생성하는 주행 경로가 자율주행 차량(10)의 진행 각도를 가리키는 바, 주행 경로를 1차 미분한 곡률(κKappa)은 자율주행 차량(10)의 스티어링 휠의 움직임 즉, 조향 각도를 의미할 수 있다. 따라서, 주행 경로를 나타내는 다항식 함수의 1차 도함수가 연속이 아닌 것 즉, 곡률이 연속이 아닌 것(미분이 불가능하다는 것)은 자율주행 차량(10)의 스티어링 휠의 각도를 짧은 시간 내에 불가능할 정도로, 혹은 중간 변화과정 없이 크게 변화시킨다는 것을 의미한다.
이에 따라, 컴퓨팅 장치(100)에 의해 생성되는 주행 경로는 이러한 사항들을 반영하여 주행 경로를 나타내는 다항식 함수를 생성하되, 모든 구간에서 연속인(미분 가능한) 다항식 함수를 생성함으로써, 자율주행 차량(10)의 스티어링 휠 움직임이 급변하지 않도록 하는 주행 경로를 생성할 수 있다.
여기서, 시작 지점에 대한 정보는 시작 지점의 위치 좌표(예: (X, Y) 형태의 2차원 좌표 값) 및 시작 지점에서 자율주행 차량(10)의 진행 각도를 포함할 수 있다. 그러나, 이에 한정되지 않고, 시작 지점에 대한 정보는 시작 지점을 포함하는 주행 경로 다항식 함수 곡률에 대한 하나 이상의 연속성 조건을 더 포함할 수 있다.
또한, 여기서 종료 지점에 대한 정보는 종료 지점의 위치 좌표(예: (X, Y) 형태의 2차원 좌표 값) 및 종료 지점에서 자율주행 차량(10)의 진행 각도를 포함할 수 있다. 그러나, 이에 한정되지 않고, 종료 지점에 대한 정보는, 시작 지점과 마찬가지로 종료 지점을 포함하는 주행 경로 다항식 함수 곡률에 대한 하나 이상의 연속성 조건을 더 포함할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 시작 지점에 대한 정보와 종료 지점에 대한 정보에 포함되는 곡률에 대한 하나 이상의 연속성 조건과 주행 경로를 나타내는 다항식 함수가 만족해야 하는 곡률에 대한 연속성 조건을 서로 상이하게 설정할 수 있다.
상기에 기재한 바와 같이, 주행 경로의 다항식 함수에서 곡률(1차 도함수)은 자율주행 차량(10)의 스티어링 휠의 방향 혹은 각도를 나타내는 것이기 때문에, 스티어링 휠의 각도가 현실적으로 불가능할 정도로 크게 변경되는 것을 방지하기 위하여, 주행 경로의 다항식 함수에서 곡률에 대한 소정의 연속성 조건을 만족하도록 하여야 한다. 개시된 실시 예에서, 이러한 연속성 조건을 만족하도록 하는 주행 경로를 생성하는 방법을 개시한다.
한편, 주행 경로를 나타내는 다항식 함수에서 연속되는(미분 가능한) 도함수의 차수가 증가될 때마다, 주행 경로를 나타내는 다항식 함수는 더 부드러운 곡선 즉, 평활도가 높은 곡선을 가지기 때문에, 부드러운 곡선 형태의 주행 경로를 얻기 위해서는 다항식 함수에 대하여 미분 가능한 횟수를 증가시킬 필요가 있다. 예를 들어, 스티어링 휠을 회전시킬 때 처음부터 끝까지 등속으로 회전시킬 수도 있으나, 조금 더 현실적으로는 회전속도가 0에서 시작하여 점차 증가하는 것이 자연스러우며, 더 나아가 회전을 멈출 때에도 회전속도가 점차 감소하여 0이 되는 것이 자연스러울 것이다. 이와 같이, 차량의 진행 각도와, 진행 각도를 미분한 곡률이 고차 함수로 표현될수록, 더 부드럽고 자연스러운 움직임을 갖는다고 볼 수 있다.
따라서, 시작 지점과 종료 지점에서의 곡률에 대한 하나 이상의 연속성 조건은 단순히 스티어링 휠의 각도가 급변하는 것을 방지하기 위한 조건을 뿐만 아니라, 시작 지점과 종료 지점을 포함하는 구간의 주행 경로를 얼마나 부드러운 곡선으로 가져갈 것인가를 설정하기 위한 조건이다. 즉, 컴퓨팅 장치(100)는 주행 경로 전체에 대한 연속성 조건과 별도로 사용자로부터 주행 경로의 시작 지점 부근의 주행 경로의 평활도에 대한 연속성 조건을 입력받을 수 있다. 그러나, 이에 한정되지 않는다.
다양한 실시예에서, 컴퓨팅 장치(100)는 시작 지점 및 종료 지점에 대한 정보로써, 시작 지점 및 종료 지점에 대한 경계 조건(Boundary condition)(예: 5)을 입력받을 수 있다. 이때, 경계 조건의 종류와 개수에 따라 시작 지점 및 종료 지점을 포함하는 다항식 함수의 차수가 결정될 수 있으나, 이에 한정되지 않고, 역으로 시작 지점 및 종료 지점을 포함하는 다항식의 차수가 먼저 결정되고, 이에 따라 경계 조건의 종류와 개수가 결정될 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 지도 데이터를 수집하고, 수집한 지도 데이터를 출력하는 UI를 사용자 단말(200)로 제공할 수 있으며, 사용자 단말(200)의 디스플레이를 통해 출력되는 UI를 통해, 시작 지점 및 종료 지점을 가리키는 하나 이상의 사용자 입력(예: 지도 데이터 상의 시작 지점과 종료 지점을 선택하는 사용자 입력 또는 검색바를 통해 시작 지점과 종료 지점에 대한 검색어 입력 등)을 얻음으로써 시작 지점과 종료 지점을 선택할 수 있고, 지도 데이터로부터 선택된 시작 지점과 종료 지점에 대한 정보를 수집할 수 있다. 그러나, 이에 한정되지 않는다.
S120 단계에서, 컴퓨팅 장치(100)는 시작 지점과 종료 지점 사이의 하나 이상의 중간 지점을 설정할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 시작 지점과 종료 지점을 포함하는 소정의 지역에 대한 지도 데이터를 수집하고, 수집한 지도 데이터를 출력하는 UI를 사용자 단말(200)로 제공할 수 있으며, 사용자 단말(200)의 디스플레이 상에 출력된 지도 데이터 상에서 중간 지점을 가리키는 하나 이상의 사용자 입력을 얻음으로써 하나 이상의 중간 지점을 선택할 수 있고, 지도 데이터로부터 선택된 하나 이상의 중간 지점에 대한 정보를 수집할 수 있다.
여기서, 하나 이상의 중간 지점에 대한 정보는 하나 이상의 중간 지점 각각의 위치 좌표(예: (X, Y) 형태의 2차원 좌표 값)를 포함할 수 있으나, 이에 한정되지 않고, 다른 범용적인 정보를 포함할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 시작 지점과 종료 지점을 포함하는 소정의 지역에 대한 지도 데이터에 대한 이미지 분석을 수행하여, 시작 지점과 종료 지점 사이의 하나 이상의 중간 지점을 설정할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 이미지 분석 모델(예: CNN모델, RNN 모델 또는 CNN과 RNN을 결합한 모델)을 이용하여 소정의 지역에 대한 지도 데이터를 이미지 분석하여, 시작 지점과 종료 지점을 연결하는 도로의 차선을 인식하고, 도로의 차선을 인식한 결과에 기초하여 시작 지점과 종료 지점 사이의 하나 이상의 중간 지점을 선택할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 도로의 차선을 인식한 결과를 통해, 차로의 개수, 차로의 폭, 도로의 형태 등과 같은 도로에 대한 속성 정보를 획득할 수 있고, 이에 따라 시작 지점과 종료 지점 사이의 하나 이상의 중간 지점(예: 커브 구간 등)을 설정할 수 있다. 그러나, 이에 한정되지 않는다.
다양한 실시예에서, 컴퓨팅 장치(100)는 주행 경로를 생성하고자 하는 사용자로부터 주행 경로에 대한 평활도를 입력받을 수 있고, 입력받은 주행 경로의 평활도에 기초하여 하나 이상의 중간 지점을 선택할 수 있다.
여기서, 주행 경로에 대한 평활도는 주행 경로를 나타내는 다항식 함수의 곡선이 얼마나 매끄럽고 부드러운 형태를 가지는지를 나타내는 척도이다. 상기와 같이 다항식 함수의 곡선은 다항식 함수의 미분 가능한 횟수가 증가함에 따라 더욱 완만하고 매끄러운 곡선을 가지기 때문에, 이를 고려하여, 컴퓨팅 장치(100)는 생성하고자 하는 다항식 함수의 미분 가능 횟수(예: 곡률에 대한 연속성 조건) 형태로 주행 경로에 대한 평활도를 입력받을 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 주행 경로를 생성하고자 하는 사용자로부터 주행 경로에 대한 평활도를 입력받되, 사용자로부터 설정된 하나 이상의 중간 지점을 연결하는 주행 경로의 다항식 함수가 사용자로부터 입력된 주행 경로에 대한 평활도를 만족하지 못하는 경우, 사용자로부터 설정된 하나 이상의 중간 지점을 연결하는 주행 경로의 다항식 함수가 사용자로부터 입력된 주행 경로에 대한 평활도를 만족할 수 있도록 사용자로부터 설정된 하나 이상이 중간 지점의 위치를 조정할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 주행 경로를 생성하고자 하는 사용자로부터 주행 경로에 대한 평활도를 입력받되, 사용자로부터 설정된 하나 이상의 중간 지점을 연결하는 주행 경로의 다항식 함수가 사용자로부터 입력된 주행 경로에 대한 평활도를 만족하지 못하는 경우, 사용자로부터 입력된 주행 경로에 대한 평활도를 만족할 수 있도록 하는 하나 이상의 중간 지점을 추가로 선택할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 사용자로부터 시작 지점과 종료 지점 사이의 제1 중간 지점 및 제2 중간 지점을 선택하였으나, 제1 중간 지점과 제2 중간 지점을 연결하는 다항식 함수가 사용자로부터 입력된 평활도(예: 3차 도함수가 연속)를 만족하지 못하는 경우, 3차 도함수가 연속인 것을 만족하도록 제1 중간 지점과 제2 중간 지점 사이에 새로운 중간 지점인 제3 중간 지점을 선택할 수 있다. 그러나, 이에 한정되지 않는다.
이때, 컴퓨팅 장치(100)는 주행 경로에 대한 평활도를 만족시키기 위하여 중간 지점을 추가로 설정해야 하는 경우, 초기에 1개의 중간 지점만을 추가하여 주행 경로에 대한 평활도를 만족하는 주행 경로를 산출할 수 있는지 여부를 판단하고, 1개의 중간 지점을 추가함에 따라 주행 경로에 대한 평활도를 만족하지 못할 경우, 그 개수를 1개씩 증가시킬 수 있다. 이를 통해, 한 번에 많은 중간 지점을 추가함으로써, 데이터 처리량이 많아져 주행 경로를 생성하는데 오랜 시간이 소요되는 것을 방지할 수 있다.
S130 단계에서, 컴퓨팅 장치(100)는 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 주행 경로를 생성할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 시작 지점과 하나 이상의 중간 지점을 연결하는 곡선, 하나 이상의 중간 지점을 연결하는 곡선(예: 하나 이상의 중간 지점이 둘 이상일 경우 두개의 중간 지점 사이를 연결하는 곡선) 및 하나 이상의 중간 지점과 종료 지점을 연결하는 곡선을 각각 생성하고, 생성된 복수의 곡선을 연결함으로써, 곡선의 집합 형태의 주행 경로를 생성할 수 있다.
이때, 컴퓨팅 장치(100)는 S120 단계를 거쳐 설정된 중간 지점의 수에 따라 주행 경로에 포함될 복수의 곡선의 개수를 결정할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 설정된 중간 지점의 수가 2개인 경우, 시작 지점과 제1 중간 지점을 연결하는 제1 곡선, 제1 중간 지점과 제2 중간 지점을 연결하는 제2 곡선 및 제2 중간 지점과 종료 지점을 연결하는 제3 곡선 즉 3개의 곡선(N+1개, 여기서 N은 중간 지점의 개수)을 생성할 수 있다. 이하, 도 4를 참조하여 설명하도록 한다.
도 4는 다양한 실시예에서, 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법의 순서도이다.
먼저, 도 4에 도시된 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법을 수행하기에 앞서, 컴퓨팅 장치(100)는 시작 지점과 종료 지점 사이에 설정된 중간 지점의 개수에 따라 생성해야 할 단위 주행 경로의 개수를 설정할 수 있다.
여기서, 도 4를 통해 설명되는 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법은 하나 이상의 중간 지점이 2개(예: 제1 중간 지점과 제2 중간 지점)인 것을 기준으로 하나, 이는 본 발명의 기술적 특징을 보다 쉽게 설명하기 위한 하나의 예시일 뿐, 이에 한정되지 않는다.
또한, 여기서, 도 4에 도시된 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법은 컴퓨팅 장치(100)에 의해 수행되는 것으로 설명하고 있으나, 이에 한정되지 않고, 컴퓨팅 장치(100)에서 수행하거나, 사용자 단말(200) 또는 자율주행 차량(10)의 제어 시스템이 컴퓨팅 장치(100)로부터 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법을 수행하는 소프트웨어를 제공받아 사용자 단말(200) 또는 자율주행 차량(10)의 제어 시스템이 자체적으로 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법을 수행할 수 있다.
또한, 여기서 도 4에 도시된 복수의 단위 주행 경로를 연결하여 최종 주행 경로를 생성하는 방법은 일련의 동작이 순차적으로 수행되는 것으로 도시되어 있으나, 이에 한정되지 않고, 도 4에 도시된 각각의 동작의 순서가 변경되어 수행되거나 도 4에 도시된 각각의 동작이 동시에 수행될 수 있다.
도 4를 참조하면, S210 단계에서, 컴퓨팅 장치(100)는 시작 지점과 제1 중간 지점을 연결하는 제1 단위 주행 경로에 대한 제1 다항식 함수를 추정할 수 있다.
먼저, 컴퓨팅 장치(100)는 시작 지점 및 종료 지점에 대한 경계 조건을 설정할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 UI를 통해 사용자로부터 시작 지점 및 종료 지점에 대한 데이터(예: 시작 지점 및 종료 지점의 위치, 자율주행 차량(10)의 진행 각도, 다항식 함수의 n차 미분값 등)를 입력받을 수 있고, 입력된 데이터를 시작 지점과 종료 지점에 대한 경계 조건으로 설정할 수 있다.
이후, 컴퓨팅 장치(100)는 시작 지점과 제1 중간 지점을 연결하는 제1 다항식 함수를 추정할 수 있다. 이때, 추정된 제1 다항식 함수의 차수는 사용자로부터 입력되어 설정된 경계 조건의 수에 따라 결정될 수 있다. 예를 들어, 도 5에 도시된 표를 참조하면, 컴퓨팅 장치(100)는 사용자로부터 시작 지점의 위치 X좌표(xi), Y좌표(yi), 진행 각도(θi) 및 3차 미분값(κi'')(κi''=0)과, 종료 지점의 위치 X좌표(xf), Y좌표(yf), 진행 각도(θf) 및 3차 미분값(κf'')(κf''=0) 데이터를 입력받아 총 6개의 경계 조건을 설정할 경우, 제1 다항식 함수의 차수를 4차 다항식 함수로 결정할 수 있다.
도 5를 참조하면, 자유단(free end) 및 고정단(fixed end) 개념이 개시되어 있다. 일 실시 예에서, 자유단은 특별한 사전 정보 없이 차량의 위치와 방향에 대한 정보만을 가지고 주행 경로를 생성하는 경우를 의미할 수 있으며, 시점과 종점에서 차량의 위치와 방향, 그리고 곡률의 이차 미분값을 0으로 설정하여 4개의 경계조건을 가지고 경로를 생성할 수 있다.
일 실시 예에서, 고정단은 기 생성된 경로가 있는 경우, 해당 경로를 주행하던 중에 경로를 변경하거나, 특정 경로를 주행하다가 기 설정된 다른 경로에 합류하는 경우, 경로가 변경되는 지점과, 경로에 합류하는 지점을 시점이나 종점으로 할 경우에 설정될 수 있다. 시점이나 종점이 기 설정된 경로에 위치하는 경우, 해당 경로가 곡률의 이차미분가지 연속인 경로라면 해당 경로의 함수로부터 차량의 위치와 각도뿐 아니라, 곡률, 곡률의 일차미분, 곡률의 이차미분까지 획득할 수 있다. 이에 따라 6개의 경계조건을 획득할 수 있는데, 이 경우 해당 지점은 고정단이 된다. 고정단을 활용하는 실시 예에 대해서는 도 7 및 도 8을 참조하여 후술한다.
또한, 컴퓨팅 장치(100)는 사용자로부터 시작 지점의 위치 X좌표(xi), Y좌표(yi), 진행 각도(θi), 1차 미분값(κi), 2차 미분값(κi') 및 3차 미분값(κi'')과, 종료 지점의 위치 X좌표(xf), Y좌표(yf), 진행 각도(θf), 1차 미분값(κf), 2차 미분값(κf') 및 3차 미분값(κf'') 데이터를 입력받아 총 12개의 경계 조건을 설정할 경우, 제1 다항식 함수의 차수를 8차 다항식 함수로 결정할 수 있다. 그러나, 이에 한정되지 않는다.
예를 들어, 상기한 총 12개의 경계 조건이 기 설정되고, 시점과 종점 사이에 중간 지점이 없는 주행경로의 곡선을 생성한다고 가정한다. 이 때, 주행경로는 주행거리 s에 따른 차량의 진행 각도 θ로 표현될 수 있다. 즉, 아래와 같은 수학식이 생성될 수 있다.
θ(s) = As8 + Bs7 + Cs6 + Ds5 + Es4 + Fs3 + Gs2 + Hs + I
여기에서, 상기의 12개의 경계 조건(xi , yi , θi , κi , κi' , κi'' , xf , yf , θf , κf , κf' , κf'')을 이용하여, 위 9개의 변수와 sf를 특정할 수 있는 연립방정식을 얻을 수 있다. 즉, θi , κi , κi' , κi'' 는 각각 θi), θ'(si), θ''(si), θ'''(si) 에 대응하고, θf , κf , κf' , κf'' 는 각각 θf), θ'(sf), θ''(sf), θ'''(sf) 에 대응한다. 여기서 si는 주행경로 시점에서의 주행거리값으로, 실시 예에 따라 0일 수 있다. 또한 여기서 sf는 주행경로 종점에서의 주행거리값이다.
이와 같이, 컴퓨팅 장치(100)는 기 설정된 경계조건의 수에 따라 특정할 수 있는 다항식의 차수를 결정할 수 있으며, 또한 상황에 따라 필요한 다항식의 차수를 결정하고, 이를 특정하기 위하여 필요한 경계조건을 자동으로 설정하거나, 사용자로부터의 입력을 요청할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 경계조건이 4개가 필요한 경우 곡률의 이차미분값을 0으로 설정하고, 5개가 필요한 경우 곡률의 일차미분값을 추가로 0으로 설정하며, 6개가 필요한 경우 곡률 값을 추가로 0으로 설정할 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, 시점과 종점에 각각 4개의 경계조건이 설정되고, 2개의 중간 지점을 갖는 경로를 생성할 수 있다. 이 경우, 기 선택된 평활도 등급이 C4라고 가정할 경우 시점과 제1 중간지점을 연결하는 곡선, 제1 중간지점과 제2 중간지점을 연결하는 곡선, 제2 중간지점과 종점을 연결하는 곡선은 모두 4차 다항식 함수로 설정될 수 있다.
즉, 3개의 곡선은 아래와 같은 다항식 함수로 설정될 수 있다.
θ1(s) = As4 + Bs3 + Cs2 + Ds +E
θ2(s) = Fs4 + Gs3 + Hs2 + Is + J
θ3(s) = Ks4 + Ls3 + Ms2 + Ns + O
상기한 다항식에서, s는 주행경로를 의미할 수 있다. 각 곡선(즉, 다항식)에서 주행경로의 길이는 각각 0부터 시작할 수도 있고, 전체 주행경로의 시점이 si, 종점이 sf, 제1 중간지점이 s1, 제2 중간지점이 s2로 설정될 수도 있다.
이 경우, 상기한 다항식은 아래와 같이 표현될 수 있다.
θ1(s) = A(s-si)4 + B(s-si)3 + C(s-si)2 + D(s-si) + E
θ2(s) = F(s-s1)4 + G(s-s1)3 + H(s-s1)2 + I(s-s1) + J
θ3(s) = K(s-s2)4 + L(s-s2)3 + M(s-s2)2 + N(s-s2) + O
상기한 3개의 곡선에 대하여, 도 6에 표시된 경계조건을 만족하도록 3개의 곡선의 시작지점, 종료지점의 값과 곡률에 대한 연속성 조건(예: 3개의 다항식 각각의 3차 도함수가 각각의 곡선이 만나는 지점(예: 제1 중간지점과 제2 중간지점)에서 연속인 점(θ1 '''(s1)= θ2 '''(s1), θ2 '''(s2)= θ3 '''(s2)))을 이용하면, 총 12개의 변수와 s1, s2 및 sf를 특정할 수 있는 연립방정식을 얻을 수 있다.
여기에서 x좌표와 y좌표 값은 각각 cosθ와 sinθ를 주행거리에 따라 적분한 값에 기준 오프셋(예: 각 곡선의 시작지점에서의, x, y 좌표 값)을 더하여 획득할 수 있다.
이를 통해, 컴퓨팅 장치(100)는 주행경로상의 각각의 곡선에 대하여 평활도를 유지하고, 서로 인접한 곡선들 사이에서 곡률의 연속성 조건을 만족하는 주행경로를 생성할 수 있다.
S220 단계에서, 컴퓨팅 장치(100)는 제1 중간 지점과 제2 중간 지점을 연결하는 제2 단위 주행 경로에 대응하는 제2 다항식 함수를 추정할 수 있다.
먼저, 컴퓨팅 장치(100)는 자율주행 차량의 주행 경로에 대한 평활도를 입력받고, 입력된 주행 경로에 대한 평활도에 기초하여, 제1 중간 지점과 제2 중간 지점을 연결하는 다항식 함수의 곡률에 대한 하나 이상의 연속성 조건을 설정할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 사용자로부터 기 설정된 주행 경로에 대한 평활도 등급(예: C0, C1, C2, C3 및 C4) 중 어느 하나의 등급을 선택받을 수 있고, 선택된 평활도 등급에 대응되는 곡률에 대한 하나 이상의 연속성 조건을 설정할 수 있다. 만약, 사용자로부터 선택된 평활도 등급이 C0인 경우 컴퓨팅 장치(100)는 제2 다항식 함수가 끊어지지 않고 이어지는 것으로 연속성 조건을 설정할 수 있고, C1인 경우 제2 다항식 함수가 연속인 것으로 설정할 수 있다. 또한, 사용자로부터 선택된 평활도 등급이 C2인 경우 제2 다항식 함수의 1차 도함수(곡률 함수)가 연속인 것으로 설정할 수 있고, C3인 경우 제2 다항식 함수의 2차 도함수(곡률의 1차 도함수)가 연속인 것으로 설정할 수 있으며, C4인 경우 제2 다항식 함수의 3차 도함수(곡률의 2차 도함수)가 연속인 것으로 설정할 수 있다. 그러나, 이는 하나의 예시일 뿐, 이에 한정되지 않는다.
다양한 실시예에서, 컴퓨팅 장치(100)는 중간 지점이 3개 이상으로 설정되어, 중간 지점들 간의 둘 이상의 곡선을 생성할 경우(예: 제1 중간 지점, 제2 중간 지점 및 제3 중간 지점이 설정되어, 제1 중간 지점 및 제2 중간 지점을 연결하는 곡선과 제2 중간 지점 및 제3 중간 지점을 연결하는 곡선을 생성해야 할 경우), 각각의 곡선에 대한 평활도를 개별적으로 설정받을 수 있다. 이를 통해, 중간 지점들 간의 곡선에 대해서 서로 상이한 평활도를 가지도록 설정할 수 있다.
이후, 컴퓨팅 장치(100)는 제1 중간 지점과 상기 제2 중간 지점을 연결하는 제2 다항식 함수를 추정할 수 있다. 이때, 추정된 제2 다항식 함수의 차수는 설정된 곡률에 대한 하나 이상의 연속성 조건에 기초하여 결정될 수 있다. 예를 들어, 사용자로부터 선택된 평활도 등급이 C4인 것에 따라 곡률에 대한 연속성 조건이 제2 다항식 함수의 3차 도함수(곡률의 2차 도함수)가 연속인 것으로 설정된 경우, 추정된 제2 다항식 함수의 차수를 4차 다항식 함수로 결정할 수 있다. 그러나, 이에 한정되지 않고, 사용자로부터 주행 경로의 평활도에 대한 별도의 입력을 얻지 못하는 경우, 제2 다항식 함수의 차수를 S210 단계에서 생성한 제1 다항식 함수의 차수와 동일하게 설정하거나, 사전에 설정된 차수(예: 4차)로 설정할 수 있다.
S230 단계에서, 컴퓨팅 장치(100)는 제2 중간 지점과 종료 지점을 연결하는 제3 단위 주행 경로에 대응하는 제3 다항식 함수를 추정할 수 있다.
먼저, 컴퓨팅 장치(100)는 제2 중간 지점과 종료 지점을 연결하는 제3 다항식 함수를 추정할 수 있다. 이때, 추정된 다항식 함수의 차수는 S210 단계에서 설정된 경계 조건의 수에 기초하여 결정될 수 있다. 여기서, 경계 조건의 수에 기초하여 제3 다항식 함수의 차수를 결정하는 방법은 S210 단계에서 수행된 제1 다항식 함수의 차수를 결정하는 방법과 동일한 형태로 구현될 수 있다.
즉, S210 단계에서 시작 지점과 제1 중간 지점을 연결하는 제1 다항식의 차수가 경계 조건의 수에 기초하여 결정된 것인 바, 컴퓨팅 장치(100)는 제2 중간 지점과 종료 지점을 연결하는 제3 다항식 함수의 차수를 결정하는 동작을 별도로 수행하지 않고, S210 단계에서 결정된 제1 다항식 함수의 차수와 동일하게 제3 다항식 함수의 차수를 결정할 수 있다.
또한, 컴퓨팅 장치(100)는 제3 다항식 함수를 생성함에 있어서, 제1 다항식 함수를 생성하는 방법과 동일하게 차수가 사전에 결정된 제3 다항식 함수를 추정하고, 추정된 제3 다항식 함수의 차수에 따라 경계 조건으로 입력받을 데이터의 종류 및 개수를 결정할 수 있으며, 결정된 종류 및 개수에 따라 사용자로부터 데이터를 입력받을 수 있다. 그러나, 이에 한정되지 않는다.
S240 단계에서, 컴퓨팅 장치(100)는 S210 단계에서 추정된 제1 다항식 함수, S220 단계에서 추정된 제2 다항식 함수 및 S230 단계에서 추정된 제3 다항식 함수를 확정할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 시작 지점과 종료 지점의 위치 좌표, 시작 지점과 종료 지점에서 자율주행 차량(10)의 진행 각도, 설정된 경계 조건, 제1 중간 지점의 위치 좌표와 제1 다항식 함수와 제2 다항식 함수가 연결되는 지점(제1 중간 지점)에서의 연속성 조건 및 제2 다항식 함수와 제3 다항식 함수가 연결되는 지점(제2 중간 지점)에서의 연속성 조건을 이용하여 추정된 제1 다항식 함수, 제2 다항식 함수 및 제3 다항식 함수의 파라미터를 산출하고, 산출된 파라미터를 이용하여 추정된 제1 다항식 함수, 제2 다항식 함수 및 제3 다항식 함수를 확정할 수 있다.
S250 단계에서, 컴퓨팅 장치(100)는 제1 단위 주행 경로에 대응하는 제1 다항식 함수, 제2 단위 주행 경로에 대응하는 제2 다항식 함수 및 제3 단위 주행 경로에 대응하는 제3 다항식 함수를 연결하여 자율주행 차량(10)에 대한 최종 주행 경로를 생성할 수 있다. 이때, 최종 주행 경로는 제1 중간 지점과 제2 중간 지점에서 곡률에 대한 하나 이상의 연속성 조건을 만족하도록 제1 다항식 함수, 제2 다항식 함수 및 제3 다항식 함수를 연결할 수 있다.
즉, 3개의 다항식 함수가 연결됨에 따라 다항식 함수 각각이 연결되는 지점인 제1 중간 지점과 제2 중간 지점에서 곡률에 대한 연속성 조건을 만족하지 못하는 경우, 제1 중간 지점과 제2 중간 지점에서 자율주행 차량(10)의 스티어링 휠이 급격하게 변화될 수 있기 때문에, 제1 중간 지점과 제2 중간 지점에서 곡률에 대한 연속성 조건을 만족하도록 연결함으로써, 이러한 문제를 방지할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 상기의 최종 주행 경로 생성 동작(S210 단계 내지 S240 단계)를 통해 자율주행 차량(10)에 대해 최종 주행 경로가 생성되는 경우, UI(사용자 단말(200)에 출력되는 UI)를 통해 최종 주행 경로를 표시할 수 있다.
전술한 자율주행 차량의 주행 경로 생성 방법은 도면에 도시된 순서도를 참조하여 설명하였다. 간단한 설명을 위해 자율주행 차량의 주행 경로 생성 방법은 일련의 블록들로 도시하여 설명하였으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 본 명세서에 도시되고 시술된 것과 상이한 순서로 수행되거나 또는 동시에 수행될 수 있다. 또한, 본 명세서 및 도면에 기재되지 않은 새로운 블록이 추가되거나, 일부 블록이 삭제 또는 변경된 상태로 수행될 수 있다. 이하, 도 7 내지 8을 참조하여, 상기의 방법에 따라 생성된 주행 경로를 주행 중인 자율주행 차량(10)에 대하여, 주행 경로를 변경하는 방법에 대해 설명하도록 한다.
도 7은 다양한 실시예에서, 자율주행 차량의 주행 경로를 변경하는 과정을 도시한 도면이다.
도 7을 참조하면, 컴퓨팅 장치(100)는 상기의 방법(S110 단계 내지 S130 단계 또는 S210 단계 내지 S240 단계)에 따라 생성된 제1 주행 경로에 따라 주행 중인 자율주행 차량(10)에 대하여 주행 경로의 변경이 요구되는 경우, 주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)와 종료 지점 사이의 하나 이상의 중간 지점(31, 32, 33)을 재설정할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 제1 주행 경로 상에 교통 정체가 발생하거나, 이벤트(예: 사고, 공사, 장애물 등) 발생함에 따라 주행 경로를 변경하고자 할 경우 또는 목적지(종료 지점)이 변경되어 주행 경로를 변경하고자 하는 경우, 주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)와 종료 지점 사이의 하나 이상의 중간 지점(31, 32, 33)을 재설정할 수 있다. 여기서, 종료 지점은 이벤트 발생에 따라 주행 경로 변경이 요구된 경우 사전에 설정된 종료 지점을 의미하며, 목적지가 변경됨에 따라 주행 경로 변경이 요구된 경우 변경된 목적지를 의미할 수 있다. 예를 들어, 변경되는 경로의 시점과 종점은 모두 기존의 경로 상에 위치할 수도 있고, 시점이나 종점이 기존의 경로 상에 위치하지 않을 수도 있다. 예를 들어, 기존 경로에서 이탈할 때 목적지가 상이할 경우 종점은 기존 경로 상에 위치하지 않을 것이고, 또한 기존 경로에서 이탈할 때 기존 경로로 돌아올 종점이 미리 설정되지 않는 경우, 우선 기존 경로상에 위치하지 않는 종점에 기반하여 경로를 생성하고, 이후 기존 경로상으로 돌아올 종점이 결정되는 경우 기존 경로상에 위치하지 않는 시점과, 기존 경로상에 존재하는 종점을 갖는 주행경로를 생성할 수도 있다. 이에 따라, 시점과 종점이 모두 고정단인 경로나, 시점과 종점 중 하나만이 고정단인 경로가 생성될 수 있다. 시점과 종점의 자유단 및 고정단 여부에 따른 주행경로상 곡선들의 차수를 설정하는 방법의 예시는 도 5에 도시되어 있다.
이때, 컴퓨팅 장치(100)는 교통 정체, 주행 경로 상의 이벤트(예: 사고, 공사, 장애물 등) 발생에 따라 주행 경로를 변경하고자 하는 경우, 교통 정체나 주행 경로 상에 발생된 이벤트를 회피할 수 있도록 하는 하나 이상의 중간 지점(31, 32, 33)을 재설정 할 수 있다. 여기서, 하나 이상의 중간 지점(31, 32, 33)은 주행 경로를 생성함에 있어서 사용자로부터 입력된 주행 경로의 평활도에 기초하여 이벤트를 회피할 수 있도록 하는 중간 지점을 선택할 수 있다. 다만, 사용자로부터 입력된 주행 경로에 대한 평활도와 이벤트를 회피하는 것 모두를 만족하는 중간 지점을 선택할 수 없는 경우, 이벤트를 회피하는 것을 우선적으로 고려하여 중간 지점을 선택할 수 있다.
이후, 컴퓨팅 장치(100)는 제1 주행 경로에 대한 다항식 함수로부터 주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)에 관한 데이터를 추출할 수 있다.
주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)는 사전에 생성된 제1 주행 경로 상에 위치하는 지점이기 때문에, 사전에 생성된 제1 주행 경로에 대응되는 다항식 함수에 주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)를 입력하면 사용자로부터 해당 위치에 대한 정보를 직접 입력받지 않더라도 쉽게 주행 경로 변경(기존에 생성된 제1 주행 경로를 이탈하는 주행 경로)이 요구된 시점에서의 자율주행 차량의 위치(21)에 대한 데이터(예: 위치 좌표, 진행 각도, 곡률에 대한 연속성 정보 등)를 얻을 수 있다.
이러한 기술적 특징은, 시작 지점, 중간 지점 및 종료 지점을 연결하는 주행 경로가 특정 조건을 만족하지 못하여 중간 지점을 새롭게 추가하는 경우에도 적용될 수 있다. 예를 들어, 시작 지점, 하나의 중간 지점 및 종료 지점을 연결하는 주행 경로가 사용자로부터 설정된 주행 경로의 평활도를 만족하지 못하거나, 도로의 형태 혹은 장애물의 위치 등에 따라 특정 조건을 만족하지 못하여 한 번에 3개의 중간 지점을 새롭게 설정하여 주행 경로를 산출할 경우(즉, 총 4개의 중간 지점이 설정된 경우), 총 5개의 곡선에 대한 다항식 함수를 생성하는 연산을 수행해야 하기 때문에, 처리해야할 데이터량이 많아져 경우에 따라 주행 경로를 생성하는데 오랜 시간이 소요될 수도 있다.
한편, 시작 지점, 하나의 중간 지점 및 종료 지점을 연결하는 주행 경로가 사용자로부터 설정된 주행 경로의 평활도를 만족하지 못함에 따라 먼저 하나의 중간 지점만을 추가하여 주행 경로를 산출할 경우, 3개의 곡선에 대한 다항식 함수만을 연산해야 하기 때문에, 비교적 시간이 적게 소요되며, 하나의 중간 지점을 추가하는 것 만으로 사용자로부터 설정된 주행 경로의 평활도를 만족하지 못하여 또 다시 새로운 중간 지점을 추가할 경우, 이전에 생성된 주행 경로에 대한 다항식을 이용하여 보다 쉽게 데이터 값을 추출할 수 있기 때문에 추가적으로 더 추가된 중간 지점을 포함하는 주행 경로를 새롭게 생성하는 것은 그리 오랜 시간이 걸리지 않아 보다 빠른 주행 경로 생성이 가능하다는 이점이 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 제1 주행 경로에 대한 다항식 함수가 4차 다항식 함수일 경우, 4차 다항식 함수에 주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)를 입력함으로써, 6개의 데이터 값(주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21)의 X좌표, Y좌표, 진행 각도, 곡률, 곡률의 1차 미분값 및 곡률의 2차 미분값과 종료 지점의 위치 X좌표, Y좌표, 진행 각도, 곡률, 곡률의 1차 미분값 및 곡률의 2차 미분값)을 얻을 수 있다.
이후, 컴퓨팅 장치(100)는 제1 주행 경로에 대한 다항식 함수로부터 추출된 데이터와 재설정된 하나 이상의 중간 지점(31, 32, 33)의 위치 좌표를 이용하여 주행 경로 변경이 요구된 시점에서의 자율주행 차량의 위치(21), 재설정된 하나 이상의 중간 지점(31, 32, 33) 및 종료 지점을 연결하는 제2 주행 경로(30)를 생성할 수 있다. 여기서, 자율주행 차량의 위치(21), 재설정된 하나 이상의 중간 지점(31, 32, 33) 및 종료 지점 각각을 연결하는 복수의 곡선(다항식 함수)을 산출하고, 산출된 다항식 함수를 연결하여 최종 제2 주행 경로(30)를 생성하는 구성은 상기의 방법(S110 단계 내지 S130 단계 또는 S210 단계 내지 S240 단계)과 동일한 형태로 구현될 수 있다.
도 8은 다양한 실시예에서, 자율주행 차량이 주행 경로 상에 발생된 이벤트를 회피하는 과정을 도시한 도면이다.
도 8을 참조하면, 컴퓨팅 장치(100)는 상기의 방법(S110 단계 내지 S130 단계 또는 S210 단계 내지 S240 단계)에 따라 생성된 주행 경로에 따라 주행 중인 자율주행 차량(10)에 대하여 회피 경로(40)(기존 주행 경로에서 이탈 후 다시 기존 주행 경로로 복귀하는 경로)의 변경이 요구되는 경우, 생성된 주행 경로 상에 위치하는 회피 경로의 시작 지점(21)과 회피 경로의 종료 지점(22) 사이의 하나 이상의 중간 지점(41, 42)을 재설정할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 기 생성된 주행 경로 상의 이벤트(예: 사고, 공사, 장애물 등) 발생하고, 이벤트를 회피하기 위하여 경로를 변경하기 불가능한 것으로 판단되는 경우, 경로를 잠시 이탈한 후 다시 복귀하는 회피 경로(40)를 생성하기 위하여 생성된 주행 경로 상에 위치하는 회피 경로의 시작 지점(21)과 회피 경로의 종료 지점(22) 사이의 하나 이상의 중간 지점(41, 42)을 재설정할 수 있다.
이때, 컴퓨팅 장치(100)는 도 8에 도시된 바와 같이 교통 정체나 주행 경로 상에 발생된 이벤트를 회피할 수 있도록 하는 하나 이상의 중간 지점(41, 42)를 재설정 할 수 있다. 여기서, 하나 이상의 중간 지점(41, 42)은 주행 경로를 생성함에 있어서 사용자로부터 입력된 주행 경로의 평활도에 기초하여 이벤트를 회피할 수 있도록 하는 중간 지점을 선택할 수 있다. 다만, 사용자로부터 입력된 주행 경로에 대한 평활도와 이벤트를 회피하는 것 모두를 만족하는 중간 지점을 선택할 수 없는 경우, 이벤트를 회피하는 것을 우선적으로 고려하여 중간 지점을 선택할 수 있다.
이후, 컴퓨팅 장치(100)는 기 생성된 주행 경로에 대한 다항식 함수로부터 회피 경로의 시작 지점(21)과 회피 경로의 종료 지점(22)에 관한 데이터를 추출할 수 있다. 여기서, 도 7을 통해 설명한 바와 마찬가지로, 회피 경로의 시작 지점(21)과 회피 경로의 종료 지점(22)은 기 생성된 주행 경로 상에 위치하는 지점이기 때문에, 기 생성된 주행 경로에 대응하는 다항식 함수에 회피 경로의 시작 지점(21)과 회피 경로의 종료 지점(22)의 위치를 입력하면 사용자로부터 해당 위치에 대한 정보를 직접 입력받거나, 별도로 설정하지 않더라도 회피 경로의 시작 지점(21)과 회피 경로의 종료 지점(22)에 관한 데이터를 추출할 수 있다.
이후, 컴퓨팅 장치(100)는 추출된 데이터와 재설정된 하나 이상의 중간 지점(41, 42)의 위치 좌표를 이용하여 회피 경로의 시작 지점(21), 재설정된 하나 이상의 중간 지점(41, 42) 및 회피 경로의 종료 지점(22)을 연결하는 회피 경로(40)를 생성할 수 있다. 여기서, 회피 경로의 시작 지점(21), 재설정된 하나 이상의 중간 지점(41, 42) 및 회피 경로의 종료 지점(22)을 연결하는 복수의 곡선(다항식 함수)을 산출하고, 산출된 다항식 함수를 연결하여 최종 회피 경로(40)를 생성하는 구성은 상기의 방법(S110 단계 내지 S130 단계 또는 S210 단계 내지 S240 단계)과 동일한 형태로 구현될 수 있다. 그러나, 이에 한정되지 않는다. 이하, 도 9 내지 11을 참조하여, 지도 데이터를 이용하여 시작 지점, 중간 지점 및 종료 지점을 선택받고, 이에 따라 주행 경로를 생성하여 지도 데이터 상에 표시하는 구성에 대해 설명하도록 한다.
도 9 내지 11은 다양한 실시예에서, 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 주행 경로가 지도 데이터 상에 표시된 형태를 도시한 도면이다.
도 9 내지 11을 참조하면, 컴퓨팅 장치(100)는 소정의 지역에 대한 지도 데이터를 수집하고, 수집한 지도 데이터를 출력하는 UI를 사용자 단말(200)로 제공할 수 있다.
또한, 컴퓨팅 장치(100)는 사용자 단말(200)의 UI를 통해 시작 지점(21), 하나 이상의 중간 지점(22) 및 종료 지점(23)을 가리키는 하나 이상의 사용자 입력(예: 지도 데이터 상의 시작 지점(21), 하나 이상의 중간 지점(22) 및 종료 지점(23)을 선택)을 얻을 수 있고, 사용자 입력에 대응되는 시작 지점(21), 하나 이상의 중간 지점(22) 및 종료 지점(23)을 연결하는 최종 주행 경로를 생성(예: S210 단계 내지 S240 단계)할 수 있다. 이후, 컴퓨팅 장치(100)는 생성된 최종 주행 경로를 UI를 통해 출력되는 지도 데이터 상에 표시할 수 있다.
여기서, 컴퓨팅 장치(100)는 사용자로부터 설정된 주행 경로의 평활도에 기초하여, 사용자로부터 설정된 하나 이상의 중간 지점의 위치를 조정하거나 사용자로부터 설정된 하나 이상의 중간 지점 외에 추가적으로 중간 지점을 설정하여 지도 데이터 상에 표시할 수 있다. 이때, 컴퓨팅 장치(100)는 위치가 조정된 중간 지점과 추가적으로 설정된 중간 지점을 사용자로부터 설정된 중간 지점과 다른 형태(예: 다른 색상이나 다른 도형)로 표시할 수 있다.
이때, 컴퓨팅 장치(100)는 최초에 사용자로부터 시작 지점(21)과 종료 지점(23)을 입력받는 경우, 시작 지점(21)과 종료 지점(22)을 연결하는 최종 주행 경로를 생성하여 지도 데이터 상에 표시할 수 있다.
이후, 컴퓨팅 장치(100)는 추가적으로 중간 지점이 입력될 때마다 최종 주행 경로를 재생성하고 재생성된 최종 주행 경로를 지도 데이터 상에 출력함으로써, 지도 데이터 상에 표시되는 최종 주행 경로를 갱신할 수 있다.
즉, 컴퓨팅 장치(100)는 사용자가 UI를 통해 특정 포인트를 선택하는 동작을 수행함에 따라 이를 실시간으로 반영하여 최종 주행 경로를 생성하고, 이를 사용자에게 제공함으로써, 사용자는 간단한 동작만으로 쉽게 자율주행 차량(10)에 대한 경로를 얻을 수 있고, 자신이 선택하는 포인트의 위치에 따라 주행 경로가 어떻게 결정되는지 직관적으로 확인할 수 있다는 이점이 있다.
도 12 내지 16은 종래의 주행 경로 생성 방법에 따라 생성된 주행 경로와 본 발명의 다양한 실시예에 따른 자율주행 차량의 주행 경로 생성 방법에 따라 생성된 주행 경로를 비교한 그래프이다.
먼저, 도 12 및 13에 도시된 그래프를 참조하면, (0,0)에 위치하며, 자율주행 차량(10)의 진행 각도가 0도이고, 곡률(진행 각도의 미분 값)이 0으로 정의된 시작 지점과 (100,100)에 위치하며, 진행 각도가 0도이고, 곡률이 0으로 정의된 종료 지점 그리고 시작 지점과 종료 지점 사이에 3개의 중간 지점이 설정되어 총 5개의 곡선을 생성함에 있어서, 빨간색 그래프는 종래의 방식(예: 두 점을 잇는 3차원 곡선 방정식을 생성하는 CPCP(Cubic Polynomial Curvature Path) 방식)으로 생성된 곡선(Baseline)이고, 파란색 그래프는 본 발명의 다양한 실시예에 따라 생성된 곡선(Proposed)이다.
종래의 방식에서, 3개의 중간 지점에서는 분명한(explicit) 진행 각도(theta), 진행 각도의 미분(곡률(kappa))값을 설정해주기 어렵기 때문에, 상호 이웃하는 중간 지점들 간의 보간법(interpolation)을 통해 진행 각도와 진행 각도의 미분값을 추정한다.
즉, 진행 각도와 미분값을 정확하게 설정하기 어렵고 추정된 값을 사용해야 하기 때문에, 이를 CPCP곡선을 연결하는 제약(hard constraint)으로 적용하여 곡선의 다항식 함수를 추정할 경우, 도 12 및 13과 같이 전체 곡선에서 진행 각도와 곡률의 변화가 불안정하게 만들어지며, 그에 따라, 자율주행 차량(10)의 경로 궤적 또한 깨끗한 S자 커브를 만들지 못한다는 단점이 있다.
반면, 본 발명의 다양한 실시예에 따라 생성된 곡선의 경우, 진행 각도와 곡률의 변화가 최대한 부드럽게 되도록 최적화하여 곡선의 다항식 함수를 구함으로써, 계산된 궤적 경로가 깨끗한 S를 가질 뿐 아니라, 진행 각도와 곡률의 불필요한 변화도 최소화할 수 있고, 원하는 지점을 지날 수 있는 경로를 생성할 수 있다.
또한, 도 14에 도시된 그래프를 참조하면, 커브가 많은 곡선 형태의 주행 경로를 생성할 경우에도, 종래의 방식 대비 자율주행 차량(10)의 스티어링 휠의 움직임(곡률의 변화)이 급격하지 않은 경로를 생성할 수 있다는 것을 알 수 있다.
뿐만 아니라, 도 15 및 16에 도시된 그래프를 참조하면, 자율주행 차량(10)이 기 설정된 주행 경로에서 다른 주행 경로로 변경되는 상황(예: 도 7에 도시된 바와 같이 여러 개의 차선을 변경해야 하는 상황)이나, 회피 경로를 생성해야되는 상황(예: 도 8에 도시된 바와 같이 이벤트 발생 등 돌발 상황 발생으로 기 설정된 주행 경로에서 벗어났다가 다시 복귀해야 하는 상황)에서도, 종래의 방식 대비 스티어링 휠의 움직임(곡률의 변화)이 급격하지 않은 경로를 생성할 수 있다는 것을 알 수 있다.
즉, 본 발명의 다양한 실시예에 따른 자율주행 차량의 주행 경로 생성 방법은 단순히 점과 점을 연결하여 주행 경로를 생성하는 종래의 방식과 달리, 점과 점을 연결하면서도, 자율주행 차량(10)의 진행 각도와, 자율주행 차량(10)의 스티어링 휠의 각도와 같은 자율주행 차량(10)의 역학적인 특성을 만족하도록 하는 주행 경로를 생성함으로써, 생성된 주행 경로를 따라 자율주행 차량(10)이 주행할 때, 스티어링 휠의 움직임이 부드럽고 이질감이 없도록 하는 주행 경로 생성할 수 있다는 이점이 있다.
상기와 같이 자율주행 차량의 주행 경로를 생성하는 방법을 설명하였으며, 개시된 실시 예에 따라 생성된 주행 경로를 통해 자율주행 차량의 주행을 제어하는 방법 또한 본 발명의 범위에 속하는 것은 자명하다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
본 과제는 중소벤처기업부 창업사업화 지원사업의 지원을 받아 수행하였음.
[B0080910000627, 제주 관광객 대상 자율주행 차량 이동 서비스]
본 과제는 중소벤처기업부 창업사업화 지원사업의 지원을 받아 수행하였음.
[B0080910000627, 제주 관광객 대상 자율주행 차량 이동 서비스]
100 : 자율주행 차량의 주행 경로 생성 장치(컴퓨팅 장치)
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크
Claims (14)
- 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계; 및
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며,
상기 생성된 주행 경로는,
상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것이며,
상기 설정된 중간 지점은 제1 중간 지점 및 제2 중간 지점을 포함하고,
상기 주행 경로를 생성하는 단계는,
상기 시작 지점과 상기 제1 중간 지점을 연결하는 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계;
상기 제1 중간 지점과 상기 제2 중간 지점을 연결하는 제2 단위 주행 경로에 대응되는 제2 다항식 함수를 추정하는 단계;
상기 제2 중간 지점과 상기 종료 지점을 연결하는 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계;
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점에 대한 정보와 상기 곡률에 대한 하나 이상의 연속성 조건을 이용하여 상기 추정된 제1 다항식 함수, 상기 추정된 제2 다항식 함수 및 상기 추정된 제3 다항식 함수를 확정하는 단계; 및
상기 확정된 제1 다항식 함수, 상기 확정된 제2 다항식 함수 및 상기 확정된 제3 다항식 함수를 연결하여 상기 자율주행 차량에 대한 최종 주행 경로를 생성하는 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 삭제
- 제1항에 있어서,
상기 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계는,
상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)을 설정하는 단계; 및
상기 시작 지점과 상기 제1 중간 지점을 연결하는 상기 제1 다항식 함수를 추정하되, 상기 추정된 제1 다항식 함수의 차수는 상기 설정된 경계 조건의 수에 기초하여 결정되는 것인, 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 제1항에 있어서,
상기 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계는,
상기 시작 지점과 상기 제1 중간 지점을 연결하는 상기 제1 다항식 함수를 추정하는 단계;
상기 추정된 제1 다항식 함수의 차수에 기초하여 설정할 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)의 종류 및 개수를 결정하는 단계; 및
상기 결정된 상기 경계 조건의 종류 및 개수에 기초하여 상기 경계 조건을 설정하는 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 제1항에 있어서,
상기 제2 단위 주행 경로에 대응되는 제2 다항식 함수를 추정하는 단계는,
상기 자율주행 차량의 주행 경로에 대한 평활도(Smoothness)를 입력받는 단계;
상기 입력된 주행 경로에 대한 평활도에 기초하여, 상기 곡률에 대한 하나 이상의 연속성 조건을 설정하는 단계; 및
상기 제1 중간 지점과 상기 제2 중간 지점을 연결하는 상기 제2 다항식 함수를 추정하되, 상기 추정된 제2 다항식 함수의 차수는 상기 설정된 곡률에 대한 하나 이상의 연속성 조건에 기초하여 결정되는 것인, 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 제1항에 있어서,
상기 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계는,
상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)을 설정하는 단계; 및
상기 제2 중간 지점과 상기 종료 지점을 연결하는 상기 제3 다항식 함수를 추정하되, 상기 추정된 제3 다항식 함수의 차수는 상기 설정된 경계 조건의 수에 기초하여 결정되는 것인, 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 제1항에 있어서,
상기 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계는,
상기 제2 중간 지점과 상기 종료 지점을 연결하는 상기 제3 다항식 함수를 추정하는 단계;
상기 추정된 제3 다항식 함수의 차수에 기초하여 설정할 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)의 종류 및 개수를 결정하는 단계; 및
상기 결정된 상기 경계 조건의 종류 및 개수에 기초하여 상기 경계 조건을 설정하는 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계; 및
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며,
상기 생성된 주행 경로는,
상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것이며,
상기 주행 경로를 생성하는 단계는,
상기 곡률에 대한 하나 이상의 연속성 조건이 상기 곡률의 2차 도함수가 연속인 것일 경우, 상기 생성된 주행 경로에 관한 다항식 함수의 차수를 4으로 결정하는 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계; 및
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며,
상기 생성된 주행 경로는,
상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것이며,
제1 주행 경로에 따라 주행 중인 상기 자율주행 차량에 대하여 주행 경로 변경이 요구되는 경우, 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치와 상기 종료 지점 사이의 하나 이상의 중간 지점을 재설정하는 단계;
상기 제1 주행 경로에 대한 다항식 함수로부터 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치에 관한 데이터를 추출하는 단계; 및
상기 추출된 데이터와 상기 재설정된 하나 이상의 중간 지점의 위치 좌표를 이용하여 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치, 상기 재설정된 하나 이상의 중간 지점 및 상기 종료 지점을 연결하는 제2 주행 경로를 생성하는 단계를 더 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계; 및
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며,
상기 생성된 주행 경로는,
상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것이며,
상기 생성된 주행 경로에 따라 주행 중인 상기 자율주행 차량에 대하여, 상기 생성된 주행 경로 상에 이벤트가 발생됨에 따라 상기 이벤트에 대한 회피 경로 생성이 요구되는 경우, 상기 생성된 주행 경로 상에 위치하는 회피 경로의 시작 지점과 상기 회피 경로의 종료 지점 사이의 하나 이상의 중간 지점을 재설정하는 단계;
상기 생성된 주행 경로에 대한 다항식 함수로부터 상기 회피 경로의 시작 지점 및 상기 회피 경로의 종료 지점에 관한 데이터를 추출하는 단계; 및
상기 추출된 데이터와 상기 재설정된 하나 이상의 중간 지점의 위치 좌표를 이용하여 상기 회피 경로의 시작 지점, 상기 재설정된 하나 이상의 중간 지점 및 상기 회피 경로의 종료 지점을 연결하는 회피 경로를 생성하는 단계를 더 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계;
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계; 및
소정의 지역에 대한 지도 데이터를 출력하는 사용자 인터페이스(User Interface, UI)를 제공하는 단계를 더 포함하며,
상기 생성된 주행 경로는,
상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것이고,
상기 시작 지점 및 종료 지점에 대한 정보를 얻는 단계는,
상기 사용자 인터페이스를 통해 상기 시작 지점 및 상기 종료 지점에 대한 2차원 위치 좌표와 상기 시작 지점 및 상기 종료 지점에서 상기 자율주행 차량의 진행 각도를 입력받는 단계를 포함하고,
상기 중간 지점을 설정하는 단계는,
상기 사용자 인터페이스를 통해, 상기 시작 지점과 상기 종료 지점 사이에 위치하는 하나 이상의 중간 지점에 대한 2차원 위치 좌표를 입력받는 단계를 포함하며,
상기 주행 경로를 생성하는 단계는,
상기 사용자 인터페이스를 통해 입력된 상기 시작 지점, 상기 하나 이상의 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 사용자 인터페이스를 통해 신규 중간 지점이 추가적으로 입력되는 경우, 생기 주행 경로가 상기 신규 중간 지점을 경유하도록 자동적으로 상기 생성된 주행 경로를 갱신하는 단계; 및
상기 생성된 주행 경로를 상기 사용자 인터페이스를 통해 출력되는 지도 데이터 상에 표시하는 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계;
상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계; 및
상기 시작 지점 및 상기 종료 지점을 포함하는 소정의 지역에 대한 지도 데이터를 얻는 단계를 더 포함하며,
상기 생성된 주행 경로는,
상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것이고,
상기 중간 지점을 설정하는 단계는,
상기 소정의 지역에 대한 지도 데이터를 분석하여 상기 시작 지점과 상기 종료 지점을 연결하는 도로의 차선을 인식하는 단계; 및
상기 도로의 차선을 인식한 결과에 기초하여 상기 시작 지점과 상기 종료 지점 사이의 하나 이상의 중간 지점을 선택하는 단계를 포함하는,
자율주행 차량의 주행 경로 생성 방법. - 프로세서;
네트워크 인터페이스;
메모리; 및
상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
상기 프로세서는,
상기 컴퓨터 프로그램에 포함된 하나 이상의 인스트럭션을 실행함으로써, 제1항, 제8항, 제9항, 제10항, 제11항 또는 제12항의 방법을 수행하는,
자율주행 차량의 주행 경로 생성 장치. - 컴퓨팅 장치와 결합되어,
제1항, 제8항, 제9항, 제10항, 제11항 또는 제12항의 방법을 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장된,
컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터프로그램.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200182744A KR102507804B1 (ko) | 2020-12-24 | 2020-12-24 | 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 |
EP21210139.8A EP4019899B1 (en) | 2020-12-24 | 2021-11-24 | Method and apparatus for creating driving route of autonomous vehicle and computer program therefor |
US17/534,811 US11780467B2 (en) | 2020-12-24 | 2021-11-24 | Method and apparatus for creating driving route of autonomous vehicle and computer program therefor |
CN202111412373.6A CN114670865A (zh) | 2020-12-24 | 2021-11-25 | 自动驾驶车辆的行驶路径生成方法、装置及计算机程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200182744A KR102507804B1 (ko) | 2020-12-24 | 2020-12-24 | 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220092660A KR20220092660A (ko) | 2022-07-04 |
KR102507804B1 true KR102507804B1 (ko) | 2023-03-09 |
Family
ID=78789680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200182744A KR102507804B1 (ko) | 2020-12-24 | 2020-12-24 | 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11780467B2 (ko) |
EP (1) | EP4019899B1 (ko) |
KR (1) | KR102507804B1 (ko) |
CN (1) | CN114670865A (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102642266B1 (ko) * | 2022-07-26 | 2024-02-29 | (주)텔레컨스 | 자율이동체의 정보 공유 방법 및 그 서버 |
CN115476855A (zh) * | 2022-09-27 | 2022-12-16 | 上汽通用五菱汽车股份有限公司 | 一种汽车智能行驶方法、装置、设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120283911A1 (en) * | 2011-05-05 | 2012-11-08 | GM Global Technology Operations LLC | System and method for adjusting smoothness for lane centering steering control |
JP2013513149A (ja) | 2009-12-04 | 2013-04-18 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | 車道のカーブ区間のカット軌跡を求める方法および制御装置 |
KR101704634B1 (ko) * | 2015-12-14 | 2017-02-08 | 현대오트론 주식회사 | 자율 주행 차량의 주행경로 생성 장치 및 그 방법과, 자율 주행 차량의 주행 제어 방법 |
US20170186322A1 (en) | 2015-12-18 | 2017-06-29 | GM Global Technology Operations LLC | Method to determine an evasion trajectory for a vehicle |
KR102099152B1 (ko) * | 2018-01-26 | 2020-07-06 | 바이두 유에스에이 엘엘씨 | 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10663966B2 (en) * | 2017-03-29 | 2020-05-26 | Mitsubishi Electric Research Laboratories, Inc. | Vehicle motion control system and method |
US10823575B2 (en) * | 2018-06-27 | 2020-11-03 | Baidu Usa Llc | Reference line smoothing method using piecewise spiral curves with weighted geometry costs |
US11199847B2 (en) * | 2018-09-26 | 2021-12-14 | Baidu Usa Llc | Curvature corrected path sampling system for autonomous driving vehicles |
WO2020139377A1 (en) * | 2018-12-28 | 2020-07-02 | Didi Research America, Llc | Interface for improved high definition map generation |
IT201900004795A1 (it) * | 2019-03-29 | 2020-09-29 | Fiat Ricerche | Regolazione automatica della velocita' di un autoveicolo sulla base del comportamento di guida del conducente |
US11493921B2 (en) * | 2019-09-05 | 2022-11-08 | Baidu Usa Llc | Dynamic parameter architecture for QP smoother |
WO2021120200A1 (en) * | 2019-12-20 | 2021-06-24 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Spline curve and spiral curve based reference line smoothing method |
US20230159025A1 (en) * | 2021-11-19 | 2023-05-25 | Qualcomm Incorporated | Managing Vehicle Behavior Based On Predicted Behavior Of Other Vehicles |
-
2020
- 2020-12-24 KR KR1020200182744A patent/KR102507804B1/ko active IP Right Grant
-
2021
- 2021-11-24 EP EP21210139.8A patent/EP4019899B1/en active Active
- 2021-11-24 US US17/534,811 patent/US11780467B2/en active Active
- 2021-11-25 CN CN202111412373.6A patent/CN114670865A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013513149A (ja) | 2009-12-04 | 2013-04-18 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | 車道のカーブ区間のカット軌跡を求める方法および制御装置 |
US20120283911A1 (en) * | 2011-05-05 | 2012-11-08 | GM Global Technology Operations LLC | System and method for adjusting smoothness for lane centering steering control |
KR101704634B1 (ko) * | 2015-12-14 | 2017-02-08 | 현대오트론 주식회사 | 자율 주행 차량의 주행경로 생성 장치 및 그 방법과, 자율 주행 차량의 주행 제어 방법 |
US20170186322A1 (en) | 2015-12-18 | 2017-06-29 | GM Global Technology Operations LLC | Method to determine an evasion trajectory for a vehicle |
KR102099152B1 (ko) * | 2018-01-26 | 2020-07-06 | 바이두 유에스에이 엘엘씨 | 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘 |
Also Published As
Publication number | Publication date |
---|---|
KR20220092660A (ko) | 2022-07-04 |
CN114670865A (zh) | 2022-06-28 |
EP4019899B1 (en) | 2023-11-01 |
US20220204037A1 (en) | 2022-06-30 |
US11780467B2 (en) | 2023-10-10 |
EP4019899A1 (en) | 2022-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102099152B1 (ko) | 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘 | |
KR102211299B1 (ko) | 곡선 투영을 가속화하기 위한 시스템 및 방법 | |
US10816990B2 (en) | Non-blocking boundary for autonomous vehicle planning | |
US10579062B2 (en) | Scalable smooth reference path generator for autonomous driving vehicles | |
CN109521761B (zh) | 用于自动驾驶车辆的基于约束平滑样条的速度优化方法、介质及系统 | |
US10459441B2 (en) | Method and system for operating autonomous driving vehicles based on motion plans | |
US10429849B2 (en) | Non-linear reference line optimization method using piecewise quintic polynomial spiral paths for operating autonomous driving vehicles | |
US10591926B2 (en) | Smooth road reference for autonomous driving vehicles based on 2D constrained smoothing spline | |
US10571921B2 (en) | Path optimization based on constrained smoothing spline for autonomous driving vehicles | |
US10823575B2 (en) | Reference line smoothing method using piecewise spiral curves with weighted geometry costs | |
KR102096726B1 (ko) | 자율 주행 차량의 운행을 위한 제어 오류 보정 계획 방법 | |
EP3436781B1 (en) | Road geometry matching with componentized junction models | |
US10816985B2 (en) | Method on moving obstacle representation for trajectory planning | |
KR102507804B1 (ko) | 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 | |
US11327498B2 (en) | Polynomial-fit based reference line smoothing method for high speed planning of autonomous driving vehicles | |
US10732632B2 (en) | Method for generating a reference line by stitching multiple reference lines together using multiple threads | |
JP7109822B2 (ja) | 自律走行車両のためのロードネットワークデータ生成方法、装置およびコンピュータプログラム | |
US20210188308A1 (en) | A qp spline path and spiral path based reference line smoothing method for autonomous driving | |
JP6892516B2 (ja) | 列挙に基づく自動運転車両の3ポイントターン計画 | |
WO2022001708A1 (zh) | 车辆控制方法、装置、车辆及存储介质 | |
US11400955B2 (en) | Multi-point enforced based stitch method to connect two smoothed reference lines | |
KR102317430B1 (ko) | 자율주행 차량의 주행 계획을 위한 로드 네트워크 맵 생성방법, 서버 및 컴퓨터프로그램 | |
KR102671815B1 (ko) | 자율주행을 위한 객체 인지 방법, 장치 및 컴퓨터프로그램 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |