KR20220092660A - 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 - Google Patents

자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 Download PDF

Info

Publication number
KR20220092660A
KR20220092660A KR1020200182744A KR20200182744A KR20220092660A KR 20220092660 A KR20220092660 A KR 20220092660A KR 1020200182744 A KR1020200182744 A KR 1020200182744A KR 20200182744 A KR20200182744 A KR 20200182744A KR 20220092660 A KR20220092660 A KR 20220092660A
Authority
KR
South Korea
Prior art keywords
point
polynomial function
driving
route
generating
Prior art date
Application number
KR1020200182744A
Other languages
English (en)
Other versions
KR102507804B1 (ko
Inventor
김지웅
조힘찬
박중희
윤호
정하욱
Original Assignee
주식회사 라이드플럭스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 라이드플럭스 filed Critical 주식회사 라이드플럭스
Priority to KR1020200182744A priority Critical patent/KR102507804B1/ko
Priority to EP21210139.8A priority patent/EP4019899B1/en
Priority to US17/534,811 priority patent/US11780467B2/en
Priority to CN202111412373.6A priority patent/CN114670865A/zh
Publication of KR20220092660A publication Critical patent/KR20220092660A/ko
Application granted granted Critical
Publication of KR102507804B1 publication Critical patent/KR102507804B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • 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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • 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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0015Planning or execution of driving tasks specially adapted for safety
    • 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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT 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/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT 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/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • B60K35/10Input arrangements, i.e. from user to vehicle, associated with vehicle functions or specially adapted therefor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT 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/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • B60K35/20Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor
    • B60K35/21Output 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/22Display screens
    • 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
    • B60W30/10Path keeping
    • 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
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18163Lane change; Overtaking manoeuvres
    • 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
    • B60W40/06Road conditions
    • B60W40/072Curvature of the road
    • 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
    • B60W50/00Details 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/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • 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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0013Planning or execution of driving tasks specially adapted for occupant comfort
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D15/00Steering not otherwise provided for
    • B62D15/02Steering position indicators ; Steering position determination; Steering aids
    • B62D15/025Active steering aids, e.g. helping the driver by actively influencing the steering system after environment evaluation
    • B62D15/0255Automatic changing of lane, e.g. for passing another vehicle
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • 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
    • B60W50/00Details 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/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • 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
    • B60W50/00Details 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/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • B60W2050/146Display means
    • 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
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/18Steering angle
    • 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
    • B60W2552/00Input parameters relating to infrastructure
    • 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4041Position
    • 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
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from 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
    • B60W2720/00Output or target parameters relating to overall vehicle dynamics
    • B60W2720/24Direction of travel
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/10Path keeping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/18Propelling the vehicle
    • B60Y2300/18008Propelling the vehicle related to particular drive situations
    • B60Y2300/18166Overtaking, 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)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (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

자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램{METHOD, APPARATUS AND COMPUTER PROGRAM FOR GENERATING DRIVING ROUTE OF AUTONOMOUS VEHICLE}
본 발명의 다양한 실시예는 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램에 관한 것이다.
차량을 운전하는 사용자들의 편의를 위하여, 각종 센서와 전자 장치 등(예: 차량 운전자 보조 시스템(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은 종래의 주행 경로 생성 방법에 따라 생성된 주행 경로와 본 발명의 다양한 실시예에 따른 자율주행 차량의 주행 경로 생성 방법에 따라 생성된 주행 경로를 비교한 그래프이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(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)이 주행할 때, 스티어링 휠의 움직임이 부드럽고 이질감이 없도록 하는 주행 경로 생성할 수 있다는 이점이 있다.
상기와 같이 자율주행 차량의 주행 경로를 생성하는 방법을 설명하였으며, 개시된 실시 예에 따라 생성된 주행 경로를 통해 자율주행 차량의 주행을 제어하는 방법 또한 본 발명의 범위에 속하는 것은 자명하다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 자율주행 차량의 주행 경로 생성 장치(컴퓨팅 장치)
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크

Claims (14)

  1. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
    상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계; 및
    상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하는 단계를 포함하며,
    상기 생성된 주행 경로는,
    상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것인,
    자율주행 차량의 주행 경로 생성 방법.
  2. 제1항에 있어서,
    상기 설정된 중간 지점은 제1 중간 지점 및 제2 중간 지점을 포함하며,
    상기 주행 경로를 생성하는 단계는,
    상기 시작 지점과 상기 제1 중간 지점을 연결하는 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계;
    상기 제1 중간 지점과 상기 제2 중간 지점을 연결하는 제2 단위 주행 경로에 대응되는 제2 다항식 함수를 추정하는 단계;
    상기 제2 중간 지점과 상기 종료 지점을 연결하는 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계;
    상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점에 대한 정보와 상기 곡률에 대한 하나 이상의 연속성 조건을 이용하여 상기 추정된 제1 다항식 함수, 상기 추정된 제2 다항식 함수 및 상기 추정된 제3 다항식 함수를 확정하는 단계; 및
    상기 확정된 제1 다항식 함수, 상기 확정된 제2 다항식 함수 및 상기 확정된 제3 다항식 함수를 연결하여 상기 자율주행 차량에 대한 최종 주행 경로를 생성하는 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  3. 제2항에 있어서,
    상기 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계는,
    상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)을 설정하는 단계; 및
    상기 시작 지점과 상기 제1 중간 지점을 연결하는 상기 제1 다항식 함수를 추정하되, 상기 추정된 제1 다항식 함수의 차수는 상기 설정된 경계 조건의 수에 기초하여 결정되는 것인, 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  4. 제2항에 있어서,
    상기 제1 단위 주행 경로에 대응되는 제1 다항식 함수를 추정하는 단계는,
    상기 시작 지점과 상기 제1 중간 지점을 연결하는 상기 제1 다항식 함수를 추정하는 단계;
    상기 추정된 제1 다항식 함수의 차수에 기초하여 설정할 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)의 종류 및 개수를 결정하는 단계; 및
    상기 결정된 상기 경계 조건의 종류 및 개수에 기초하여 상기 경계 조건을 설정하는 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  5. 제2항에 있어서,
    상기 제2 단위 주행 경로에 대응되는 제2 다항식 함수를 추정하는 단계는,
    상기 자율주행 차량의 주행 경로에 대한 평활도(Smoothness)를 입력받는 단계;
    상기 입력된 주행 경로에 대한 평활도에 기초하여, 상기 곡률에 대한 하나 이상의 연속성 조건을 설정하는 단계; 및
    상기 제1 중간 지점과 상기 제2 중간 지점을 연결하는 상기 제2 다항식 함수를 추정하되, 상기 추정된 제2 다항식 함수의 차수는 상기 설정된 곡률에 대한 하나 이상의 연속성 조건에 기초하여 결정되는 것인, 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  6. 제2항에 있어서,
    상기 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계는,
    상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)을 설정하는 단계; 및
    상기 제2 중간 지점과 상기 종료 지점을 연결하는 상기 제3 다항식 함수를 추정하되, 상기 추정된 제3 다항식 함수의 차수는 상기 설정된 경계 조건의 수에 기초하여 결정되는 것인, 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  7. 제2항에 있어서,
    상기 제3 단위 주행 경로에 대응되는 제3 다항식 함수를 추정하는 단계는,
    상기 제2 중간 지점과 상기 종료 지점을 연결하는 상기 제3 다항식 함수를 추정하는 단계;
    상기 추정된 제3 다항식 함수의 차수에 기초하여 설정할 상기 시작 지점 및 상기 종료 지점에 대한 경계 조건(Boundary condition)의 종류 및 개수를 결정하는 단계; 및
    상기 결정된 상기 경계 조건의 종류 및 개수에 기초하여 상기 경계 조건을 설정하는 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  8. 제1항에 있어서,
    상기 주행 경로를 생성하는 단계는,
    상기 곡률에 대한 하나 이상의 연속성 조건이 상기 곡률의 2차 도함수가 연속인 것일 경우, 상기 생성된 주행 경로에 관한 다항식 함수의 차수를 4으로 결정하는 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  9. 제1항에 있어서,
    제1 주행 경로에 따라 주행 중인 상기 자율주행 차량에 대하여 주행 경로 변경이 요구되는 경우, 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치와 상기 종료 지점 사이의 하나 이상의 중간 지점을 재설정하는 단계;
    상기 제1 주행 경로에 대한 다항식 함수로부터 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치에 관한 데이터를 추출하는 단계; 및
    상기 추출된 데이터와 상기 재설정된 하나 이상의 중간 지점의 위치 좌표를 이용하여 상기 주행 경로 변경이 요구된 시점에서의 상기 자율주행 차량의 위치, 상기 재설정된 하나 이상의 중간 지점 및 상기 종료 지점을 연결하는 제2 주행 경로를 생성하는 단계를 더 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  10. 제1항에 있어서,
    상기 생성된 주행 경로에 따라 주행 중인 상기 자율주행 차량에 대하여, 상기 생성된 주행 경로 상에 이벤트가 발생됨에 따라 상기 이벤트에 대한 회피 경로 생성이 요구되는 경우, 상기 생성된 주행 경로 상에 위치하는 회피 경로의 시작 지점과 상기 회피 경로의 종료 지점 사이의 하나 이상의 중간 지점을 재설정하는 단계;
    상기 생성된 주행 경로에 대한 다항식 함수로부터 상기 회피 경로의 시작 지점 및 상기 회피 경로의 종료 지점에 관한 데이터를 추출하는 단계; 및
    상기 추출된 데이터와 상기 재설정된 하나 이상의 중간 지점의 위치 좌표를 이용하여 상기 회피 경로의 시작 지점, 상기 재설정된 하나 이상의 중간 지점 및 상기 회피 경로의 종료 지점을 연결하는 회피 경로를 생성하는 단계를 더 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  11. 제1항에 있어서,
    소정의 지역에 대한 지도 데이터를 출력하는 사용자 인터페이스(User Interface, UI)를 제공하는 단계를 더 포함하며,
    상기 시작 지점 및 종료 지점에 대한 정보를 얻는 단계는,
    상기 사용자 인터페이스를 통해 상기 시작 지점 및 상기 종료 지점에 대한 2차원 위치 좌표와 상기 시작 지점 및 상기 종료 지점에서 상기 자율주행 차량의 진행 각도를 입력받는 단계를 포함하고,
    상기 중간 지점을 설정하는 단계는,
    상기 사용자 인터페이스를 통해, 상기 시작 지점과 상기 종료 지점 사이에 위치하는 하나 이상의 중간 지점에 대한 2차원 위치 좌표를 입력받는 단계를 포함하며,
    상기 주행 경로를 생성하는 단계는,
    상기 사용자 인터페이스를 통해 입력된 상기 시작 지점, 상기 하나 이상의 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 사용자 인터페이스를 통해 신규 중간 지점이 추가적으로 입력되는 경우, 생기 주행 경로가 상기 신규 중간 지점을 경유하도록 자동적으로 상기 생성된 주행 경로를 갱신하는 단계; 및
    상기 생성된 주행 경로를 상기 사용자 인터페이스를 통해 출력되는 지도 데이터 상에 표시하는 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  12. 제1항에 있어서,
    상기 시작 지점 및 상기 종료 지점을 포함하는 소정의 지역에 대한 지도 데이터를 얻는 단계를 더 포함하며,
    상기 중간 지점을 설정하는 단계는,
    상기 소정의 지역에 대한 지도 데이터를 분석하여 상기 시작 지점과 상기 종료 지점을 연결하는 도로의 차선을 인식하는 단계; 및
    상기 도로의 차선을 인식한 결과에 기초하여 상기 시작 지점과 상기 종료 지점 사이의 하나 이상의 중간 지점을 선택하는 단계를 포함하는,
    자율주행 차량의 주행 경로 생성 방법.
  13. 프로세서;
    네트워크 인터페이스;
    메모리; 및
    상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨터 프로그램은,
    시작 지점 및 종료 지점에 대한 정보를 얻는 인스트럭션(instruction);
    상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 인스트럭션; 및
    상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 생성된 주행 경로는, 상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것인, 인스트럭션을 포함하는,
    자율주행 차량의 주행 경로 생성 장치.
  14. 컴퓨팅 장치와 결합되어,
    시작 지점 및 종료 지점에 대한 정보를 얻는 단계;
    상기 시작 지점과 상기 종료 지점 사이의 중간 지점을 설정하는 단계; 및
    상기 시작 지점, 상기 설정된 중간 지점 및 상기 종료 지점을 연결하는 주행 경로를 생성하되, 상기 생성된 주행 경로는, 상기 시작 지점과 상기 설정된 중간 지점을 연결하는 곡선, 상기 설정된 중간 지점과 상기 종료 지점을 연결하는 곡선의 집합이며, 자율주행 차량의 진행 각도에 대한 다항식 함수로 표현되고, 곡률에 대한 하나 이상의 연속성 조건을 만족하는 것인, 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장된,
    컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터프로그램.
KR1020200182744A 2020-12-24 2020-12-24 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램 KR102507804B1 (ko)

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 true KR20220092660A (ko) 2022-07-04
KR102507804B1 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240014975A (ko) * 2022-07-26 2024-02-02 (주)텔레컨스 자율이동체의 정보 공유 방법 및 그 서버

Citations (5)

* Cited by examiner, † Cited by third party
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP3861291B1 (en) * 2019-12-20 2023-01-25 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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 바이두 유에스에이 엘엘씨 자율 주행 차량의 경로 및 속도 최적화에 대한 폴백 메카니즘

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240014975A (ko) * 2022-07-26 2024-02-02 (주)텔레컨스 자율이동체의 정보 공유 방법 및 그 서버

Also Published As

Publication number Publication date
US11780467B2 (en) 2023-10-10
CN114670865A (zh) 2022-06-28
EP4019899B1 (en) 2023-11-01
US20220204037A1 (en) 2022-06-30
EP4019899A1 (en) 2022-06-29
KR102507804B1 (ko) 2023-03-09

Similar Documents

Publication Publication Date Title
EP3517893B1 (en) Path and speed optimization fallback mechanism for autonomous vehicles
JP6757820B2 (ja) 重み付け幾何学的コストを有する区分的螺旋曲線を使用した基準線平滑化方法
US10429849B2 (en) Non-linear reference line optimization method using piecewise quintic polynomial spiral paths for operating autonomous driving vehicles
JP3885716B2 (ja) 車両用推奨操作量生成装置
US10678248B2 (en) Fast trajectory planning via maneuver pattern selection
US11199847B2 (en) Curvature corrected path sampling system for autonomous driving vehicles
US10816985B2 (en) Method on moving obstacle representation for trajectory planning
KR102279405B1 (ko) 자율 주행 차량의 고속 계획을 위한 다항식 피팅 기반의 기준선 평활화 방법
US10732632B2 (en) Method for generating a reference line by stitching multiple reference lines together using multiple threads
KR102606629B1 (ko) 자율주행 차량을 위한 로드 네트워크 데이터 생성 방법, 장치 및 컴퓨터프로그램
KR20220092660A (ko) 자율주행 차량의 주행 경로 생성 방법, 장치 및 컴퓨터프로그램
JP7058761B2 (ja) 移動体制御装置、移動体制御学習装置、及び移動体制御方法
WO2022001708A1 (zh) 车辆控制方法、装置、车辆及存储介质
US11066069B2 (en) Extra-freedom stitch method for reference line smoothing
CN112406869B (zh) 一种车辆换道控制方法及装置
US11400955B2 (en) Multi-point enforced based stitch method to connect two smoothed reference lines
JP6599817B2 (ja) 演算装置、演算方法およびプログラム
JP6651391B2 (ja) 交差点案内システムおよび交差点案内プログラム
US20230303098A1 (en) Method, apparatus, and computer program for modeling driving route for automatic driving of vehicle
KR102364616B1 (ko) 기 설정된 영역정보를 이용한 자율 주행 차량의 제어 방법, 장치 및 컴퓨터프로그램
US10663317B2 (en) Map display system and map display program

Legal Events

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