KR102020163B1 - 자율 주행 차량의 조향률의 동적 조정 - Google Patents

자율 주행 차량의 조향률의 동적 조정 Download PDF

Info

Publication number
KR102020163B1
KR102020163B1 KR1020187009730A KR20187009730A KR102020163B1 KR 102020163 B1 KR102020163 B1 KR 102020163B1 KR 1020187009730 A KR1020187009730 A KR 1020187009730A KR 20187009730 A KR20187009730 A KR 20187009730A KR 102020163 B1 KR102020163 B1 KR 102020163B1
Authority
KR
South Korea
Prior art keywords
steering
cost
steering ratio
candidate
individual
Prior art date
Application number
KR1020187009730A
Other languages
English (en)
Other versions
KR20180074676A (ko
Inventor
판 주
치 콩
광 양
징가오 왕
Original Assignee
바이두 유에스에이 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이두 유에스에이 엘엘씨 filed Critical 바이두 유에스에이 엘엘씨
Publication of KR20180074676A publication Critical patent/KR20180074676A/ko
Application granted granted Critical
Publication of KR102020163B1 publication Critical patent/KR102020163B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • 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/0005Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with arrangements to save energy
    • 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/14Adaptive cruise control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D6/00Arrangements for automatically controlling steering depending on driving conditions sensed and responded to, e.g. control circuits
    • 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/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • 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
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0005Processor details or data handling, e.g. memory registers or chip 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
    • B60W2520/00Input parameters relating to overall vehicle dynamics
    • B60W2520/10Longitudinal speed
    • 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/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • B60W30/09Taking automatic action to avoid collision, e.g. braking and steering

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Automation & Control Theory (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Combustion & Propulsion (AREA)
  • Chemical & Material Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (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)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Traffic Control Systems (AREA)

Abstract

일 실시예에서. 자율 주행 차량을 동작시키는 조향 제어 명령에 대해 다수의 조향률 후보가 결정된다. 조향률 후보 각각에 대해, 복수의 비용 카테고리 중 하나에 대응하는 복수의 비용 함수를 적용함으로써 조향률 후보에 대한 다수의 개별 비용이 계산된다. 조향률 후보에 대한 총 비용은 비용 함수에 의해 생성된 개별 비용에 기초하여 결정된다. 최저 총 비용을 갖는 조향률 후보 중 하나가 목표 조향률로서 선택된다. 선택된 조향률 후보에 기초하여 조향 제어 명령이 생성되어 자율 주행 차량의 스티어링 휠을 제어한다.

Description

자율 주행 차량의 조향률의 동적 조정
본 발명의 실시예들은 일반적으로 자율 주행 차량을 운행하는 것에 관한 것이다. 특히, 본 발명의 실시예들은 자율 주행 차량의 조향률을 동적으로 조정하는 것에 관한 것이다.
자율 주행 모드에서(예를 들어, 운전자 없이) 운행하는 차량은 탑승자, 특히 운전자의 운전 관련 일부 책무를 덜어줄 수 있다. 자율 주행 모드에서 동작할 때, 차량은 온보드 센서를 사용하여 다양한 위치들로 내비게이트할 수 있고, 그 결과 최소한의 인간과의 상호 작용으로 또는 일부의 경우 승객 없이 차량이 이동하는 것이 허용된다.
모션(motion) 계획 및 제어는 자율 주행에 있어서 중요한 동작들이다. 그러나 기존의 모션 계획 동작들은 주어진 경로를 완료하는 어려움을, 다양한 유형의 차량에 대한 기능의 차이를 고려하지 않고, 주로 경로의 곡률(curvature)과 속력으로부터 추정한다. 동일한 모션 계획 및 제어가 모든 유형의 차량에 적용되는데, 이는 일부 상황에서는 정확하고 부드럽지 않을 수 있다.
또한, 조향 제어는 자율 주행의 중요한 단계이다. 조향 제어 정밀도를 요구할 때, 일반적으로 높은 조향률(조향 이동 속력이라고도 지칭됨)이 요구된다. 그러나, 높은 조향률은 운행 중 오버슛(overshoot)뿐만 아니라 차량 조향 시스템과 승객 모두에게 위험할 수 있다.
일부 실시예에 따르면, 조향률 판정 시스템 또는 예측 모델은 해당 시점에서 계획된 바와 같이 차량 제어 정보에 기초하여 조향률을 결정 또는 제안하도록 제공된다.
조향 속력 결정 시스템 또는 예측 모델은 다양한 운전 조건 하에서 구동되는 다양한 차량으로부터 캡쳐된 주행 통계의 큰 세트에 기초하여 생성될 수 있으며, 이는 머신 러닝 시스템을 사용하여 훈련될 수 있다. 차량 제어 정보는 현재 목표 조향 위치, 현재 조향 위치, 이전 목표 조향 위치, 이전 조향 위치, 및/또는 해당 시점에서의 현재 차량 속력을 포함할 수 있다. 차량 제어 정보는 차량이 움직이는 동안 실시간으로 차량의 다양한 센서에 의해 부가적으로 캡쳐 될 수 있다. 시스템 또는 예측 모델의 출력은 권장 조향률(목표 조향률이라고도 함)을 나타내며, 이는 후속 명령 사이클 또는 사이클에 대한 조향 제어 명령을 생성하는 데 이용될 수 있다. 조향률은, 예를 들어, 초당 각도의 형식으로 표현된, 차량의 스티어링 휠의 선회 속력을 말한다.
일 실시예에서, 조향률 후보 세트가 결정되는데, 이는 특정 자율 주행 차량 또는 특정 유형의 자율 주행 차량에 대한 가능 조향률을 나타낸다. 조향률 후보 세트는 미리 결정될 수 있고 차량마다 다를 수 있다. 조향률 후보들 각각에 대해, 하나 이상의 비용 함수를 사용하여 조향률 후보에 대한 하나 이상의 개별 비용이 계산된다. 각 비용 함수는, 하나 이상의 후속 명령 사이클에 대한 목표 조향률을 결정할 때 고려해야 할 비용 카테고리 중 하나에 해당한다. 총 비용은, 각 조향률 후보에 대한 개별 비용을 기초하여 계산된다. 모든 조향률 후보의 총 비용이 모두 결정된 후에, 가장 낮은 총 비용을 갖는 조향률 후보 중 하나가 후속 명령 사이클 또는 사이클에 대한 목표 조향률로서 선택된다.
본 발명의 실시예들은 아래의 도면들에서 비제한적이며 예시적으로 도시되며, 유사한 참조 번호는 유사한 요소를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 네트워크 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 자율 주행 차량의 일례를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 자율 주행 차량과 함께 사용되는 인지 및 계획 시스템의 일례를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 제어 모듈을 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따라 조향률을 결정하는 프로세스를 나타내는 데이터 구조이다.
도 6은 본 발명의 일 실시예에 따라 자율 주행 차량을 동작시키기 위한 조향률을 결정하는 프로세스를 나타내는 흐름도이다.
도 7은 본 발명의 다른 실시예에 따라 자율 주행 차량을 동작시키기 위한 조향률을 결정하는 프로세스를 나타내는 흐름도이다.
도 8은 일 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
본 발명의 다양한 실시예들 및 양상들은 이하 세부 설명을 참조하여 설명되며, 첨부 도면들은 다양한 실시예들을 나타낸다. 아래의 설명 및 도면은 본 발명을 예시적으로 보여주며, 본 발명을 제한하는 것으로 해석되어서는 안 된다. 본 발명의 다양한 실시예들에 대한 완전한 이해를 제공하기 위해 다수의 구체적인 세부 사항들이 설명된다. 그러나, 어떤 경우에는, 본 발명의 실시예들에 대한 간결한 설명을 제공하기 위해 잘 알려진 또는 종래의 세부 사항은 설명되지 않는다.
명세서에서의 "일 실시예" 또는 "실시예"는, 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있다는 것을 의미한다. 명세서의 다양한 곳에서 기재된 "일 실시예에서"라는 문구는 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
일부 실시예에 따르면, 조향률 판정 시스템 또는 예측 모델은 해당 시점에서 계획된 바와 같이 차량 제어 정보에 기초하여 조향률을 결정 또는 제안하도록 제공된다. 조향 속력 결정 시스템 또는 예측 모델은 다양한 운전 조건 하에서 구동되는 다양한 차량으로부터 캡쳐된 주행 통계의 큰 세트에 기초하여 생성될 수 있으며, 이는 머신 러닝 시스템을 사용하여 훈련될 수 있다. 차량 제어 정보는 현재 목표 조향 위치, 현재 조향 위치, 이전 목표 조향 위치, 이전 조향 위치, 및/또는 해당 시점에서의 현재 차량 속력을 포함할 수 있다. 차량 제어 정보는 차량이 움직이는 동안 실시간으로 차량의 다양한 센서에 의해 부가적으로 캡쳐 될 수 있다. 시스템 또는 예측 모델의 출력은 권장 조향률(목표 조향률이라고도 함)을 나타내며, 이는 후속 명령 사이클 또는 사이클에 대한 조향 제어 명령을 생성하는 데 이용될 수 있다. 조향률은, 예를 들어, 초당 각도의 형식으로 표현된, 차량의 스티어링 휠의 선회 속력을 말한다.
일 실시예에서, 조향률 후보 세트가 결정되는데, 이는 특정 자율 주행 차량 또는 특정 유형의 자율 주행 차량에 대한 가능 조향률을 나타낸다. 조향률 후보 세트는 미리 결정될 수 있고 차량마다 다를 수 있다. 조향률 후보들 각각에 대해, 하나 이상의 비용 함수를 사용하여 조향률 후보에 대한 하나 이상의 개별 비용이 계산된다. 각 비용 함수는, 하나 이상의 후속 명령 사이클에 대한 목표 조향률을 결정할 때 고려해야 할 비용 카테고리 중 하나에 해당한다. 총 비용은, 각 조향률 후보에 대한 개별 비용을 기초하여 계산된다. 모든 조향률 후보의 총 비용이 모두 결정된 후에, 가장 낮은 총 비용을 갖는 조향률 후보 중 하나가 후속 명령 사이클 또는 사이클에 대한 목표 조향률로서 선택된다.
도 1은 본 발명의 일 실시예에 따른 자율 주행 차량 네트워크 구성을 나타내는 블록도이다. 도 1을 참조하면, 네트워크 구성(100)은, 네트워크(102) 상에서 하나 이상의 서버(103-104)와 통신 가능하게 결합될 수 있는 자율 주행 차량(101)을 포함한다. 하나의 자율 주행 차량이 도시되어 있지만, 다수의 자율 주행 차량이 서로 결합될 수 있고/있거나 네트워크(102)를 통해 서버들(103-104)에 결합될 수 있다. 네트워크(102)는 근거리 네트워크(LAN), 인터넷과 같은 광역 네트워크(WAN), 셀룰러 네트워크, 위성 네트워크 또는 이들의 조합과 같은 유선 또는 무선의 임의의 유형의 네트워크일 수 있다. 서버(들)(103-104)는 웹 또는 클라우드 서버, 애플리케이션 서버, 백엔드 서버 또는 이들의 조합과 같은 임의의 종류의 서버 또는 서버 클러스터일 수 있다. 서버(103-104)는 데이터 분석 서버, 콘텐츠 서버, 교통 정보 서버, 지도 및 관심 지점(MPOI: map and point of interest) 서버 또는 위치 서버 등일 수 있다.
자율 주행 차량은 차량이 운전자로부터의 입력이 거의 또는 전혀 없이 주변 환경을 내비게이트하는 자율 주행 모드로 구성될 수 있는 차량을 지칭한다. 이러한 자율 주행 차량은 차량이 운행되는 환경에 관한 정보를 검출하도록 구성된 하나 이상의 센서를 갖는 센서 시스템을 포함할 수 있다. 차량 및 관련 제어기(들)는 검출된 정보를 이용하여 주변 환경 사이로 내비게이트한다. 자율 주행 차량(101)은 수동 모드, 완전 자율 주행 모드 또는 부분 자율 주행 모드로 운행될 수 있다.
일 실시예에서, 자율 주행 차량(101)은 인지 및 계획 시스템(110), 차량 제어 시스템(111), 무선 통신 시스템(112), 사용자 인터페이스 시스템(113), 인포테인먼트 시스템(114) 및 센서 시스템(115)을 포함하지만, 이에 한정되지 않는다. 자율 주행 차량(101)은, 예를 들어, 가속 신호 또는 명령, 감속 신호 또는 명령, 조향 신호 또는 명령, 제동 신호 또는 명령 등과 같은 다양한 통신 신호 및/또는 명령을 사용하여, 차량 제어 시스템(111) 및/또는 인지 및 계획 시스템(110)에 의해 제어될 수 있는, 엔진, 차륜(wheel), 스티어링 휠, 변속기 등과 같은, 일반 차량에 포함되는 특정 공통 구성 요소를 더 포함할 수 있다.
구성요소(110-115)는 인터커넥트(interconnect), 버스, 네트워크 또는 이들의 조합을 통해 서로 통신 가능하게 결합될 수 있다. 예를 들어, 구성요소(110-115)는, 제어기 영역 네트워크(CAN) 버스를 통해 서로 통신 가능하게 결합될 수 있다. CAN 버스는, 호스트 컴퓨터가 없는 어플리케이션들에서 마이크로 컨트롤러들과 장치들이 서로 통신할 수 있도록 설계된 차량 버스 표준이다. 그것은 메시지 기반 프로토콜로서, 원래는 자동차 내의 멀티플렉스(multiplex) 전기 배선을 위해 설계되었지만, 다른 많은 상황에서도 사용된다.
이제 도 2를 참조하면, 일 실시예에서, 센서 시스템(115)은, 하나 이상의 카메라(211), GPS(global positioning system) 유닛(212), 관성 측정 유닛(IMU)(213), 레이더 유닛(214) 및 광 검출 및 측정(LIDAR) 유닛(215)을 포함하지만, 이에 한정되지 않는다. GPS 유닛(212)은 자율 주행 차량의 위치에 관한 정보를 제공하도록 동작 가능한 송수신기(트랜시버)를 포함할 수 있다. IMU 유닛(213)은, 관성 가속도에 기초하여 자율 주행 차량의 위치 및 방향(orientation) 변화를 감지할 수 있다. 레이더 유닛(214)은, 무선 신호를 활용하여 자율 주행 차량의 로컬 환경 내의 물체들을 감지하는 시스템을 나타낼 수 있다. 일부 실시예들에서, 물체를 감지하는 것 외에, 레이더 유닛(214)은 물체의 속력 및/또는 진로(heading)를 추가로 감지할 수 있다. LIDAR 유닛(215)은, 레이저를 사용하여 자율 주행 차량이 위치한 환경 내의 물체들을 감지할 수 있다. LIDAR 유닛(215)은, 여러 시스템 구성 요소들 중에서, 하나 이상의 레이저 소스, 레이저 스캐너 및 하나 이상의 검출기를 포함할 수 있다. 카메라(211)는 자율 주행 차량을 둘러싸는 환경의 이미지를 캡쳐하기 위한 하나 이상의 장치를 포함할 수 있다. 카메라(211)는 정지 화상 카메라 및/또는 비디오 카메라일 수 있다. 카메라는, 예를 들어, 카메라를 회전 및/또는 틸팅 플랫폼에 장착함으로써, 기계적으로 이동 가능할 수 있다.
센서 시스템(115)은, 소나(sonar) 센서, 적외선 센서, 스티어링(조향) 센서, 스로틀 센서, 제동 센서 및 오디오 센서(예를 들어, 마이크로폰)와 같은 다른 센서들을 더 포함할 수 있다. 오디오 센서는 자율 주행 차량을 둘러싸는 환경에서 소리(sound)를 캡쳐하도록 구성될 수 있다. 스티어링 센서는, 스티어링 휠, 차량의 차륜 또는 이들의 조합의 스티어링 각도를 감지하도록 구성될 수 있다. 스로틀 센서 및 제동 센서는, 차량의 스로틀 위치 및 제동 위치를 각각 감지한다. 일부 상황에서는, 스로틀 센서와 제동 센서가 통합 스로틀/제동 센서로 통합될 수 있다.
일 실시예에서, 차량 제어 시스템(111)은, 스티어링 유닛(201), 스로틀 유닛(202)(가속 유닛으로도 지칭됨) 및 제동 유닛(203)을 포함하지만, 이에 한정되지 않는다. 스티어링 유닛(201)은, 차량의 방향 또는 진로(또는 진행 방향)을 조정하기 위한 것이다. 스로틀 유닛(202)은 모터 또는 엔진의 속력을 제어하여 차량의 속력 및 가속도를 차례로 제어하기 위한 것이다. 제동 유닛(203)은 차량의 차륜 또는 타이어를 감속시키도록 마찰을 제공함으로써 차량을 감속시키기 위한 것이다. 도 2에 도시된 구성 요소들은, 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다.
도 1을 다시 참조하면, 무선 통신 시스템(112)은, 자율 주행 차량(101)과, 장치들, 센서들, 다른 차량들 등과 같은 외부 시스템들 간의 통신을 가능하게 한다. 예를 들어, 무선 통신 시스템(112)은, 하나 이상의 장치들과 직접 또는 네트워크(102) 상의 서버들(103-104)과 같은 통신 네트워크를 통해 무선 통신할 수 있다. 무선 통신 시스템(112)은, 임의의 셀룰러 통신 네트워크 또는 무선 근거리 네트워크(WLAN)를 사용할 수 있으며, 예를 들어, 다른 구성 요소 또는 시스템과 통신하기 위해 WiFi를 사용할 수 있다. 무선 통신 시스템(112)은, 예를 들어, 적외선 링크, 블루투스 등을 사용하여, 장치(예를 들어, 승객의 모바일 장치, 디스플레이 장치, 차량(101) 내의 스피커)와 직접 통신할 수 있다. 사용자 인터페이스 시스템(113)은, 예를 들어, 키보드, 터치 스크린 디스플레이 장치, 마이크로폰 및 스피커 등을 포함하는 차량(101) 내에 구현되는 주변 장치들의 일부일 수 있다.
자율 주행 차량(101)의 일부 또는 모든 기능은, 특히 자율 주행 모드에서 운행될 때, 인지 및 계획 시스템(110)에 의해 제어되거나 관리될 수 있다. 인지 및 계획 시스템(110)은, 센서 시스템(115), 제어 시스템(111), 무선 통신 시스템(112) 및/또는 사용자 인터페이스 시스템(113)으로부터 정보를 수신하고, 수신된 정보를 처리하고, 출발점에서 목적지점까지의 루트(route) 또는 경로를 계획한 다음, 계획 및 제어 정보에 기초하여 차량(101)을 주행하기 위해, 필요한 하드웨어(예를 들어, 프로세서(들), 메모리, 저장 장치) 및 소프트웨어(예를 들어, 운영 체계, 계획 및 라우팅(routing) 프로그램)을 포함한다. 대안적으로, 인지 및 계획 시스템(110)은 차량 제어 시스템(111)과 통합될 수 있다.
예를 들어, 승객인 사용자는, 예를 들어, 사용자 인터페이스를 통해 여행의 출발 위치 및 목적지를 지정할 수 있다. 인지 및 계획 시스템(110)은 여행 관련 데이터를 획득한다. 예를 들어, 인지 및 계획 시스템(110)은 서버들(103-104)의 일부일 수 있는 MPOI 서버로부터 위치 및 루트 정보를 획득할 수 있다. 위치 서버는 위치 서비스를 제공하고, MPOI 서버는 지도 서비스와 특정 위치들의 POI들을 제공한다. 대안적으로, 이러한 위치 및 MPOI 정보는 인지 및 계획 시스템(110)의 영구 저장 장치에 국부적으로 캐시될 수 있다.
자율 주행 차량(101)이 루트를 따라 이동하는 동안, 인지 및 계획 시스템(110)은 교통 정보 시스템 또는 서버(TIS)로부터 실시간 교통 정보도 획득할 수 있다. 서버(103-104)는 제3자 엔티티에 의해 운영될 수 있다. 대안적으로, 서버들(103-104)의 기능들은 인지 및 계획 시스템(110)과 통합될 수 있다. 인지 및 계획 시스템(110)은, 실시간 교통 정보, MPOI 정보 및 위치 정보뿐만 아니라 센서 시스템(115)에 의해 검출 또는 감지된 실시간 로컬 환경 데이터(예를 들어, 장애물, 물체, 주변 차량)에 기초하여, 예를 들어, 제어 시스템(111)을 통해, 최적의 루트를 계획하고, 지정된 목적지에 안전하고 효율적으로 도착하기 위해 계획된 루트에 따라 차량(101)을 주행할 수 있다.
서버(103)는 다양한 클라이언트에 대해 데이터 분석 서비스를 수행하기 위한 데이터 분석 시스템일 수 있다. 일 실시예에서, 데이터 분석 시스템(103)은 데이터 수집기(121) 및 머신 러닝 엔진(122)을 포함한다. 데이터 수집기(121)는 자율 주행 차량 또는 인간 운전자에 의해 운행되는 일반 차량을 포함하는 다양한 차량으로부터 주행 통계(123)를 수집한다. 주행 통계(123)는 상이한 시점에서, 발행된 주행 명령(예를 들어, 스로틀, 제동, 스티어링 명령) 및 차량의 센서에 의해 캡쳐된 차량의 응답(예를 들어, 속력, 가속, 감속, 방향)을 나타내는 정보를 포함한다. 주행 통계(123)는, 상이한 시점에서의 주행 환경, 예를 들어, 루트(출발 및 목적지 위치 포함), MPOI, 도로 상태, 날씨 상태 등을 설명하는 정보를 더 포함할 수 있다.
주행 통계(123)에 기초하여, 머신 러닝 엔진(122)은 다양한 목적을 위해 알고리즘 또는 예측 모델(124)의 세트를 수행하거나 훈련시킨다. 일 실시예에서, 머신 러닝 엔진(122)은 목표로 하는 특정 조향률에 대한 비용을 결정 또는 예측하기 위해 하나 이상의 비용 함수 또는 비용 예측 모델(124)의 세트를 생성한다. 비용 함수(124)는, 하나 이상의 비용 카테고리의 하나 이상의 개별 비용을 계산하기 위한 하나 이상의 개별 비용 함수를 포함할 수 있다. 비용 함수(124)는 특정 조향률을 목표로 하는 개별 비용을 계산하도록 설계된다. 일 실시예에서, 비용 함수(124)는 목표 조향 위치 및 현재 조향 위치에 기초하여 제1 비용을 결정하기 위한 제1 비용 함수를 포함한다. 비용 함수(124)는 이전 명령 사이클에서의 과거 목표 조향 위치 및 과거 조향 위치에 기초하여 제2 비용을 결정하기 위한 제2 비용 함수를 더 포함할 수 있다. 비용 함수(124)는 현재 차량 속력에 기초하여 제3 비용을 결정하기 위한 제3 비용 함수를 더 포함할 수 있다. 비용 함수(124)는 목표 조향률에 기초하여 제4 비용을 결정하기 위한 제4 비용 함수를 더 포함할 수 있다.
일 실시예에서, 비용 함수(124)는 다양한 차량으로부터 수집된 주행 통계(123)에 기초하여 머신 러닝 엔진(122)에 의해 결정되고 생성될 수 있다. 머신 러닝 엔진(122)은, 자율 주행의 주행 통계를 조사하고, 이를 동일하거나 유사한 주행 상황 하에서 인간 운전자에 의해 주행된 차량의 주행 통계와 비교한다. 자율 주행과 인간 주행 사이의 차이는, 예컨대, 인간 운전자와 동일하거나 유사한 결과를 얻기 위해 조향 속력인, 주행 파라미터 에 대한 비용을 결정할 수 있다. 일 실시예에서, 자율 주행과 인간 주행 사이의 차이가 작으면, 비용은 더 낮을 수도 있고 그 반대일 수도 있다. 일단 비용 함수(124)가 생성되면, 차량의 선회가 보다 편안하고 원활해질 수 있도록, 자율 주행 차량에 업로드 되어 실시간으로 계획된 대로 조향률을 동적으로 조정하는 데 사용할 수 있다.
도 3은 본 발명의 일 실시예에 따른 자율 주행 차량과 함께 사용되는 인지 및 계획 시스템의 일례를 나타내는 블록도이다. 시스템(300)은, 도 1의 자율 주행 차량(101)의 일부로서 구현될 수 있으며, 인지 및 계획 시스템(110), 제어 시스템(111) 및 센서 시스템(115)을 포함하지만, 이에 한정되지 않는다. 도 3을 참조하면, 인지 및 계획 시스템(110)은 로컬라이제이션(localization) 모듈(301), 인지 모듈(302), 결정 모듈(303), 계획 모듈(304) 및 제어 모듈(305)을 포함하지만, 이에 제한되지 않는다.
모듈들(301-307)의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 이들 모듈은 영구 저장 장치(352)에 설치되고, 메모리(351)에 로드되며, 하나 이상의 프로세서(미도시)에 의해 실행될 수 있다. 이들 모듈 중 일부 또는 전부는, 도 2의 차량 제어 시스템(111)의 일부 또는 모든 모듈들과 통신 가능하게 결합되거나 통합될 수 있다. 모듈들(301-307) 중 일부는 통합 모듈로서 함께 통합될 수 있다.
로컬라이제이션 모듈(301)(맵 및 루트 모듈이라고도 함)은 사용자의 여행 또는 루트와 관련된 임의의 데이터를 관리한다. 사용자는, 예를 들어, 사용자 인터페이스를 통해 로그인하고 여행의 출발 위치 및 목적지를 지정할 수 있다. 로컬라이제이션 모듈(301)은, 지도 및 루트 정보(311)와 같은 자율 주행 차량(300)의 다른 구성 요소와 통신하여 여행 관련 데이터를 획득한다. 예를 들어, 로컬라이제이션 모듈(301)은 위치 서버, 및 지도 및 POI(MPOI) 서버로부터 위치 및 루트 정보를 획득할 수 있다. 위치 서버는 위치 서비스를 제공하고, MPOI 서버는 지도 서비스와 특정 위치들의 POI들을 제공하며, 이는 지도 및 루트 정보(311)의 일부로서 캐시될 수 있다. 자율 주행 차량(300)이 루트를 따라 이동하는 동안, 로컬라이제이션(localization) 모듈(301)은 교통 정보 시스템 또는 서버로부터 실시간 교통 정보도 획득할 수 있다.
센서 시스템(115)에 의해 제공되는 센서 데이터 및 로컬라이제이션 모듈(301)에 의해 획득되는 로컬라이제이션 정보에 기초하여, 인지 모듈(302)에 의해 주변 환경의 인지(perception)가 결정된다. 인지 정보는 일반 운전자가 그가 주행하는 차량 주위를 어떻게 인지하는지를 나타낼 수 있다. 인지는 차로 구성(예를 들어, 직선 또는 곡선 차선), 신호등 신호, 다른 차량의 상대적 위치, 보행자, 건물, 횡단 보도 또는 기타 교통 관련 표지판(예를 들어, 정지 표지판, 양보 표지판) 등을, 예를 들어, 물체의 형태로 포함할 수 있다.
인지 모듈(302)은, 자율 주행 차량의 환경에서 물체 및/또는 특징을 식별하기 위해, 하나 이상의 카메라에 의해 캡쳐된 이미지를 처리 및 분석하는 컴퓨터 비전 시스템 또는 컴퓨터 비전 시스템의 기능을 포함할 수 있다. 물체는 교통 신호, 도로 경계, 다른 차량, 보행자 및/또는 장애물 등을 포함할 수 있다. 컴퓨터 비전 시스템은 물체 인식 알고리즘, 비디오 추적 및 다른 컴퓨터 비전 기술을 사용할 수 있다. 일부 실시예에서, 컴퓨터 비전 시스템은, 환경을 매핑하고, 물체를 추적하고, 물체의 속력 추정 등을 할 수 있다. 인지 모듈(302)은 레이더 및/또는 LIDAR와 같은 다른 센서에 의해 제공되는 다른 센서 데이터에 기초하여 물체를 검출할 수도 있다.
각각의 물체에 대해, 결정 모듈(303)은 물체를 어떻게 다룰지에 대한 결정을 한다. 예를 들어, 특정 물체(예를 들어, 교차 루트에 있는 다른 차량)뿐만 아니라 물체를 기술하는 메타 데이터(예를 들어, 속력, 방향, 선회 각도)에 대해서, 결정 모듈(303)은 물체를 어떤 식으로 대면할지를 결정한다(예를 들어, 추월, 양보, 정지, 통과). 결정 모듈(303)은, 영구 저장 장치(352)에 저장될 수 있는, 주행 규칙 또는 교통 규칙(312)과 같은 규칙 세트에 따라 이러한 결정을 할 수 있다.
인지된 물체들 각각에 대한 결정에 기초하여, 계획 모듈(304)은 자율 주행 차량에 대한 경로 또는 루트뿐만 아니라 주행 파라미터(예를 들어, 거리, 속력 및/또는 선회 각도)를 계획한다. 즉, 주어진 물체에 대해, 결정 모듈(303)은 물체에 대한 처리를 결정하고, 계획 모듈(304)은 그것을 어떻게 수행할지를 결정한다. 예를 들어, 주어진 물체에 대해, 결정 모듈(303)은 물체를 지나가는 것으로 결정할 수 있는 반면, 계획 모듈(304)은 물체의 좌측 또는 우측으로 지나갈지를 결정할 수 있다. 계획 및 제어 데이터는 계획 모듈(304)에 의해 생성되고, 차량(300)이 후속 이동 사이클(예를 들어, 후속 루트/경로 세그먼트)에서 어떻게 움직일 것인지를 기술하는 정보를 포함한다. 예를 들어, 계획 및 제어 데이터는, 차량(300)이 시속 30 마일(mph)의 속력으로 10m 이동한 다음 25 mph의 속력으로 우측 차로로 변경하도록 지시할 수 있다.
계획 및 제어 데이터에 기초하여, 제어 모듈(305)은 계획 및 제어 데이터에 의해 정의된 루트 또는 경로에 따라, 차량 제어 시스템(111)에 적절한 명령 또는 신호를 전송함으로써 자율 주행 차량을 제어 및 주행한다. 계획 및 제어 데이터에는, 경로 또는 루트 상의 시간에 따른 상이한 시점에서 적절한 차량 설정 또는 주행 파라미터(예를 들어, 스로틀, 제동 및 선회 명령)를 사용하여 루트 또는 경로의 제1 지점에서 제2 지점까지 차량을 주행할 수 있는 충분한 정보가 포함되어 있다.
결정 모듈(303) 및 계획 모듈(304)은 통합 모듈로서 통합될 수 있다. 결정 모듈(303)/계획 모듈(304)은, 자율 주행 차량에 대한 주행 경로를 결정하기 위한 내비게이션 시스템 또는 내비게이션 시스템의 기능들을 포함할 수 있다. 예를 들어, 네비게이션 시스템은, 일련의 속력 및 진행 방향(directional heading)을 결정하여, 인지된 장애물을 실질적으로 피하는 경로를 따라 자율 주행 차량의 이동을 수행하면서, 궁극적인 목적지에 이르는 도로 기반 경로를 따라 자율 주행 차량을 일반적으로 전진시킬 수 있다. 목적지는, 사용자 인터페이스 시스템(113)을 통한 사용자 입력에 따라 설정될 수 있다. 내비게이션 시스템은, 자율 주행 차량이 운행되는 동안 주행 경로를 동적으로 업데이트할 수 있다. 네비게이션 시스템은, 자율 주행 차량을 위한 주행 경로를 결정하기 위해 GPS 시스템 및 하나 이상의 지도로부터의 데이터를 통합할 수 있다.
결정 모듈(303)/계획 모듈(304)은, 자율 주행 차량의 환경에서의 잠재적 장애물을 식별, 평가 및 회피하거나 협상하기 위한 충돌 회피 시스템 또는 충돌 회피 시스템의 기능을 더 포함할 수 있다. 예를 들어, 충돌 회피 시스템은, 급회피 조작, 선회 조작, 제동 조작 등을 수행하기 위해, 제어 시스템(111)의 하나 이상의 서브 시스템을 조작하여 자율 주행 차량의 네비게이션의 변화를 수행할 수 있다. 충돌 회피 시스템은, 주변의 교통 패턴, 도로 조건 등에 기초하여, 실현 가능한 장애물 회피 조작을 자동으로 결정할 수 있다. 충돌 회피 시스템은, 자율 주행 차량이 급회피하여 진입할 인접 영역에서, 차량, 건축 장애물 등을 다른 센서 시스템이 검출할 때, 급회피 조작이 수행되지 않도록 구성될 수 있다. 충돌 회피 시스템이, 사용 가능하면서 자율 운행 차량의 탑승자의 안전을 극대화하는 조작을 자동적으로 선택할 수 있다. 충돌 회피 시스템은, 자율 운행 차량의 승객실에서 최소량의 가속을 일으킬 것으로 예상되는 회피 조작을 선택할 수 있다.
일 실시예에 따르면, 제어 모듈(305)은 차량의 핸들을 제어하기 위한 조향 제어 모듈(306)을 포함한다. 계획 모듈(304)에 의해 계획될 수 있는 차량의 방향을 변경하기 위한 요청에 응답하여, 조향 제어 모듈(306)은 잠재적인 목표 조향률로서 하나 이상의 조향률 후보의 세트를 결정한다. 조향률 후보들은 차량 또는 차량의 유형에 대해 미리 결정될 수 있고 영구 저장 장치(352)에 저장될 수 있다. 조향률 후보 각각에 대해, 조향 제어 모듈(306)은 하나 이상의 비용 함수(124)를 사용하여 잠재적인 목표 조향률로서 조향률 후보에 기초한 조향 제어 명령을 발행하는 비용을 결정한다. 그 후, 조향 제어 모듈(306)은 총 비용이 가장 작은 조향률 후보들 중 하나를 후속 명령 사이클에 대한 목표 조향률로서 선택한다.
조향률 후보와 관련된 비용은 차량이 상황에 따라 계획대로 선회할 수 있는 난이도를 나타낸다. 높은 비용은, 해당 조향 후보에 기초하여 선회 목표를 달성하기 위해 차량이 더 높은 난이도를 가질 수 있음을 나타낸다. 대안적으로, 비용은 상황에 따른 해당 조향률 후보에 따라 차량이 선회할 때 승객이 갖는 안락한 정도를 나타낸다. 낮은 비용은, 해당 조향률 후보에 따라 차량이 선회할 때 승객이 더 편하게 느낄 수 있음을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 제어 모듈을 나타내는 블록도이다. 도 4를 참조하면, 제어 모듈(305)은 조향 제어 모듈(306), 현재 위치 기반 비용 모듈(401), 과거 위치 기반 비용 모듈(402), 차량 속력 기반 비용 모듈(403) 및 목표 속력 기반 비용 모듈(404)을 포함한다. 비용 모듈(401-404) 각각은 현재 위치 기반 비용 함수(411), 과거 위치 기반 비용 함수(412), 차량 속력 기반 비용 함수(413) 및 목표 속력 기반 비용 함수(414)와 같은 비용 함수들 중 대응하는 한가지를 사용하여 특정 비용 카테고리에 기초한 개별 비용을 계산한다. 비용 함수(411-414)는 도 1의 머신 러닝 엔진(122)과 같은 머신 러닝 엔진에 의한 이전 주행 통계에 기초하여 생성될 수 있다. 4가지의 다른 비용 카테고리를 나타내는 4가지 비용 함수만 존재하지만, 더 많거나 적은 비용 함수도 활용할 수 있다.
일 실시예에서, 조향률을 결정하기 위한 요구에 응답하여, 하나 이상의 조향률 후보의 세트가 결정되거나 선택된다. 조향률 후보 각각에 대해, 조향 제어 모듈 (306)은 하나 이상의 비용 함수(411-414)를 사용하여 그들의 각각의 비용 카테고리에 대한 하나 이상의 개별 비용을 계산하기 위해 하나 이상의 비용 모듈(401-404)을 호출한다. 그 다음, 조향률에 대한 총 비용은 비용 함수(411-414)의 적어도 일부를 사용하는 비용 모듈(401-404)에 의해 생성된 개별 비용에 기초하여 계산된다. 최저 총 비용을 갖는 조향률 후보 중 하나가 후속 명령 사이클에 대한 목표 조향률로서 선택된다.
일 실시예에서, 현재 위치 기반 비용 함수(411)는 잠재적인 목표 조향률을 나타내는 해당 조향률 후보를 고려하여 현재 조향 위치 및 목표 조향 위치에 기초한 비용을 계산하는 데 사용된다. 일 실시예에서, 비용 함수(411)는 해당 목표 조향률을 고려하여 현재 조향 위치와 목표 조향 위치 사이의 차이에 기초하여 비용을 계산하는 데 사용된다. 일 실시예에서, 목표 조향률이 현재 조향 위치와 목표 조향 위치 사이의 차이보다 크거나 같으면, 비용은 0으로 할당된다. 다른 방식으로, 목표 조향률이 현재 조향 위치와 목표 조향 위치 사이의 차이보다 작은 경우, 다음과 같이, 비용에는, 현재 조향 위치와 목표 조향 위치 사이의 차에서 목표 조향률(예를 들어, 해당 조향률 후보)을 뺀 값이 할당된다.
비용 = 차이(목표 위치, 현재 위치) - 목표 조향률
이제 도 5를 참조하면, 조향률 후보(501)의 세트에 대한 상이한 비용 함수를 사용하여 계산된 비용을 나타내는 데이터 구조가 도시되어 있으며, 비용(502)은 조향률 후보(501)에 대해 계산된다. 이 예에서, 현재의 명령 사이클에서의 현재의 조향 위치와 목표 조향 위치 사이의 차이가 300이라고 가정한다. 따라서, 전술한 바와 같이, 현재 위치 기반 비용 함수(411)에 기초하여, 잠재 목표 조향률로서 100의 조향률 후보에 대해, 300의 차이가 100의 잠재 목표 조향률보다 크기 때문에, 비용은 200이다(즉, 300의 차이에서 목표 조향률 100을 뺀다). 유사하게, 200의 조향률 후보에 대한 비용은, 300, 400, 및 500의 후보에 대한 비용과 300의 차이보다 크거나 같기 때문에 100일 것이다.
일 실시예에 따르면, 과거 위치 기반 비용 함수(412)는, 이전 명령 사이클에서 이전 목표 조향 위치 및 이전 조향 위치, 즉 이전 명령 사이클의 목표 조향 위치와 "현재" 조향 위치 사이의 차이에 기초하여 비용을 계산하는 것이다. 일 실시예에서, 이전 명령 사이클은 현재 명령 사이클 직전의 마지막 명령 사이클을 지칭한다. 추가 실시예에서, 비용은 현재 조향률 후보와 최대 조향률 후보 사이의 관계에 기초하여 계산된다. 일 실시예에서, 주어진 조향률 후보에 대하여, 과거 위치 기반 비용(503)은 다음과 같이 계산된다.
비용 = 차이*(최대 후보-현재 후보)/최대 후보
여기서 차이는 이전 명령 사이클에서의 목표 조향 위치와 "현재" 조향 위치 사이의 차이를 지칭한다. "현재" 후보는 비용이 계산되는 후보를 지칭한다.
도 5를 참조하면, 이 예에서, 과거 조향 목표 위치와 과거 조향 위치 사이의 차이가 100이라고 가정한다. 조향률 100의 경우, 비용은 100*(500-100)/500=80이며, 이 예에서 최대 조향률 후보는 500이다. 200, 300, 400 및 500의 나머지 후보에 대한 비용은 상술한 알고리즘을 사용하여 60, 40, 20 및 0으로 계산될 수도 있다.
일 실시예에 따르면, 차량 속력 기반 비용(504)은 현재 조향률 후보를 고려한 현재 차량 속력에 기초하여 계산된다. 특정 실시예에서, 비용은 다음과 같이 계산될 수 있다.
비용=현재 차량 속력*현재 조향률 후보/100
도 5를 다시 참조하면, 현재 차량 속력은 시속 30마일(mph)로 가정된다. 따라서 100가지의 후보에 대한 비용은 30*100/100=30이 된다. 유사하게, 200, 300, 400 및 500의 후보에 대한 비용은 각각 60, 90, 120 및 150이다.
일 실시예에 따르면, 목표 속력 기반 비용(505)은 선형 비용 함수를 사용하여 계산될 수 있다. 비용이 목표 조향률 또는 조향 속력에 비례한다는 것의 근거는, 조향률이 높을수록 비용이 높아지는 것이다. 간단히 설명하면, 일 실시예에서, 주어진 조향률 후보에 대한 비용은, 도 5에 도시된 바와 같이, 목표 속력에 기초한 비용(505)은 조향률 후보 그 자체와 동일하다.
모든 개별 비용(502-505)이 조향률 후보(501) 각각에 대해 계산된 후에, 조향률 후보(501) 각각에 대한 총 비용(506)이, 예를 들어, 개별 비용(502-505)을 합산함으로써 계산된다. 다음으로, 총 비용이 가장 낮은 (이 예에서는 100의 후보) 조향률 후보(501) 중 하나가 조향 제어용 후속 명령 사이클에 대한 목표 조향률로서 선택된다.
도 6은 본 발명의 일 실시예에 따라 자율 주행 차량을 동작시키기 위한 조향률을 결정하는 프로세스를 나타내는 흐름도이다. 프로세스(600)은 소프트웨어, 하드웨어, 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(600)는 제어 모듈(305)에 의해 수행될 수 있다. 도 6을 참조하면, 동작(601)에서, 프로세싱 로직은 ADV의 조향 제어를 위한 조향률 후보들의 수를 결정한다. 각각의 조향률 후보에 대해, 동작(602)에서, 프로세싱 로직은 하나 이상의 비용 함수를 적용하여 ADV를 동작하는 조향률 후보의 영향을 나타내는 하나 이상의 개별 비용을 계산한다. 각 비용 함수는 비용 카테고리 중 하나에 해당한다. 동작(603)에서, 총 비용은 각 조향률 후보에 대한 개별 비용에 기초하여 결정된다. 동작(604)에서, 전체 비용이 가장 낮은 조향률 후보 중 하나가 ADV의 조향 제어용 후속 명령 사이클에 대한 목표 조향률로서 선택된다. 동작(605)에서, 조향 제어 명령은 목표 조향률에 기초하여 생성되어 ADV의 스티어링 휠을 제어한다.
도 7은 본 발명의 다른 실시예에 따라 자율 주행 차량을 동작시키기 위한 조향률을 결정하는 프로세스를 나타내는 흐름도이다. 프로세스(700)는 소프트웨어, 하드웨어, 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(700)는 도 6의 동작(602-603)의 일부로서 제어 모듈(305)에 의해 수행될 수 있다. 도 7을 참조하면, 동작(701)에서, 프로세싱 로직은, 제1 비용 함수를 사용하여 (현재 명령 사이클의) 목표 조향 위치 및 현재 조향 위치에 기초하여 제1 비용을 계산한다. 목표 조향 위치와 현재 조향 위치 간의 차이가 목표 조향 속력(예를 들어, 해당 현재 조향률 후보)보다 작은 경우, 제1 비용은 0이다. 그렇지 않은 경우, 제1 비용은 목표 및 현재 조향 위치 간의 차이에서 목표 조향률을 뺀 것과 동일하다. 동작(702)에서, 프로세싱 로직은 제2 비용 함수를 사용하여 이전의 목표 조향 위치 및 이전 명령 사이클의 과거 조향 위치에 기초하여 제2 비용을 계산한다. 동작(703)에서, 프로세싱 로직은 제3 비용 함수를 사용하여 ADV의 현재 차량 속력에 기초하여 제3 비용을 계산한다. 동작(704)에서, 프로세싱 로직은 제4 비용 함수를 사용하여 목표 조향률(예컨대, 해당 조향률 후보)에 기초하여 제4 비용을 계산한다. 단계(705)에서, 총 비용은 제1 비용, 제2 비용, 제3 비용 및 제4 비용에 기초하여 계산된다.
상술되고 도시된 구성 요소의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 이러한 구성 요소는 영구 기억 장치에 설치되고 저장되는 소프트웨어로서 구현될 수 있고, 이는 본 출원 전반에 걸쳐 기술된 프로세스 또는 동작들을 실행하기 위해 프로세서(미도시)에 의해 메모리에 로딩되고 실행될 수 있다. 대안적으로, 이러한 구성 요소는, 집적 회로(예를 들어, 주문형 집적 회로 또는 ASIC), 디지털 신호 처리기(DSP) 또는 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA)와 같은 전용 하드웨어에 프로그램되거나 내장된 실행 가능 코드로서 구현될 수 있으며, 이는 애플리케이션으로부터 대응하는 드라이버 및/또는 운영 체제를 통해 액세스될 수 있다. 또한, 이러한 구성요소는, 하나 이상의 특정 명령을 통해 소프트웨어 구성요소에 의해 액세스 가능한 명령어 세트의 일부로서, 프로세서 또는 프로세서 코어 내에 특정 하드웨어 로직으로서 구현될 수 있다.
도 8은 본 발명의 일 실시예와 함께 사용될 수 있는 데이터 처리 시스템의 일례를 나타내는 블록도이다. 예를 들어, 시스템(1500)은 예컨대 도 1의 데이터 처리 시스템(110) 또는 서버들(103, 104) 중 임의의 것과 같은, 상술한 프로세스들 또는 방법들 중 임의의 것을 수행하는 상술한 데이터 처리 시스템들 중 임의의 것을 나타낼 수 있다. 시스템(1500)은 다수의 상이한 구성 요소들을 포함할 수 있다. 이들 구성 요소는, 집적 회로(IC), 그 부분, 개별 전자 장치 또는 컴퓨터 시스템의 마더 보드 또는 애드-인 카드와 같은 회로 보드에 적용되는 다른 모듈로서 구현 될 수 있거나, 컴퓨터 시스템의 샤시 내에 다른 방법으로 통합되는 구성 요소들로써 구현될 수 있다.
또한, 시스템(1500)은 컴퓨터 시스템의 많은 구성 요소들의 상위 레벨 뷰를 도시하기 위한 것이다. 그러나, 추가의 구성 요소가 특정 구현 예에 존재할 수 있고, 또한, 도시된 구성 요소의 상이한 배열이 다른 구현 예에서 나타날 수 있음을 이해해야 한다. 시스템(1500)은 데스크탑, 랩탑, 태블릿, 서버, 이동 전화, 미디어 플레이어, PDA(personal digital assistant), 스마트 워치, 개인용 통신기, 게임 장치, 네트워크 라우터 또는 허브, 무선 액세스 포인트(AP) 또는 중계기(repeater), 셋톱 박스 또는 이들의 조합일 수 있다. 또한, 단지 하나의 기계 또는 시스템이 도시되어 있지만, "기계" 또는 "시스템"이라는 용어는, 본 출원에서 기술하는 방법들의 하나 이상을 실행하기 위해, 개별적으로 또는 공동으로 명령어들의 세트(또는 다수의 세트)를 수행하는 임의의 기계 또는 시스템의 집합을 포함하도록 취급될 것이다.
일 실시예에서, 시스템(1500)은 버스 또는 인터커넥트(1510)를 통해 프로세서(1501), 메모리(1503) 및 디바이스들(1505-1508)을 포함한다. 프로세서(1501)는, 내부에 단일 프로세서 코어 또는 다중 프로세서 코어를 포함하는, 단일 프로세서 또는 다중 프로세서를 나타낼 수 있다. 프로세서(1501)는, 마이크로 프로세서, 중앙 처리 장치(CPU) 등과 같은 하나 이상의 범용 프로세서를 나타낼 수 있다. 구체적으로, 프로세서(1501)는 CISC(COMPLEX INSTRUCTION SET COMPUTING) 마이크로프로세서, RISC(REDUCED INSTRUCTION SET COMPUTING) 마이크로프로세서, VLIW(VERY LONG INSTRUCTION WORD) 마이크로프로세서, 또는 다른 명령어 세트를 구현하는 프로세서, 또는 명령어 세트의 조합을 구현하는 프로세서들일 수 있다. 프로세서(1501)는 주문형 집적 회로(ASIC), 셀룰러 또는 베이스 밴드 프로세서, 필드 프로그래머블 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서, 그래픽 프로세서, 통신 프로세서, 암호화 프로세서, 코-프로세서, 임베디드 프로세서, 또는 명령어를 처리할 수 있는 임의의 다른 유형의 로직 등과 같은 하나 이상의 특수 목적 프로세서일 수도 있다.
프로세서(1501)는, 초 저전압 프로세서와 같은 저전력 멀티 코어 프로세서 소켓일 수 있고, 시스템의 다양한 구성요소와의 통신을 위한 메인 프로세싱 유닛 및 중앙 허브로서 동작할 수 있다. 이러한 프로세서는 시스템 온 칩(SoC)으로서 구현될 수 있다. 프로세서(1501)는, 본 명세서에서 논의된 동작들 및 단계들을 수행하기 위한 명령어들을 실행하도록 구성된다. 시스템(1500)은, 디스플레이 제어기, 그래픽 프로세서 및/또는 디스플레이 장치를 포함할 수 있는, 선택적인 그래픽 서브 시스템(1504)과 통신하는 그래픽 인터페이스를 더 포함할 수 있다.
프로세서(1501)는, 일 실시예에서 주어진 양의 시스템 메모리를 제공하기 위한 다수의 메모리 장치를 통해 구현될 수 있는, 메모리(1503)와 통신할 수 있다. 메모리(1503)는, 랜덤 액세스 메모리(RAM), 다이나믹 RAM(DRAM), 동기식 DRAM(SDRAM), 스태틱 RAM(SRAM)와 같은 하나 이상의 휘발성 저장(또는 메모리) 장치 또는 다른 유형의 저장 장치를 포함할 수 있다. 메모리(1503)는, 프로세서(1501) 또는 임의의 다른 장치에 의해 실행되는 명령어들의 시퀀스를 포함하는 정보를 저장할 수 있다. 예를 들어, 다양한 운영 체제, 장치 드라이버, 펌웨어(예를 들어, 입출력 기본 시스템 또는 BIOS), 및/또는 애플리케이션의 실행 가능 코드 및/또는 데이터는 메모리(1503)에 로드되고 프로세서(1501)에 의해 실행될 수 있다. 운영 체제는, 예를 들어, 로봇 운영 체제(ROS), 마이크로소프트® 사의 윈도우즈® 운영 체제, 애플의 맥 OS®/iOS®, 구글®의 안드로이드®, LINUX, UNIX, 또는 다른 실시간 또는 임베디드 운영 체제와 같은 임의의 유형의 운영 체제일 수 있다.
시스템(1500)은, 네트워크 인터페이스 장치(들)(1505), 선택적인 입력 장치(들)(1506) 및 다른 선택적인 I/O 장치(들)(1507)를 포함하는 장치들(1505-1508)과 같은 I/O 장치들을 더 포함할 수 있다. 네트워크 인터페이스 디바이스(1505)는 무선 트랜시버 및/또는 네트워크 인터페이스 카드(NIC)를 포함할 수 있다. 무선 트랜시버는, WiFi 트랜시버, 적외선 트랜시버, 블루투스 트랜시버, WiMax 트랜시버, 무선 셀룰러 전화 트랜시버, 위성 트랜시버(예를 들어, GPS(Global Positioning System) 송수신기) 또는 다른 무선 주파수(RF) 트랜시버일 수 있으며, 또는 이들의 조합일 수 있다. NIC는 이더넷 카드(Ethernet card)일 수 있다.
입력 장치(들)(1506)는, 마우스, 터치 패드, (디스플레이 장치(1504)와 통합될 수 있는) 터치 감지 스크린, 스타일러스와 같은 포인터 장치 및/또는 키보드(예를 들어, 물리적 키보드 또는 터치 감지 스크린의 일부로 표시되는 가상 키보드)를 포함할 수 있다. 예를 들어, 입력 장치(1506)는, 터치 스크린에 결합되는 터치 스크린 제어기를 포함할 수 있다. 터치 스크린 및 터치 스크린 제어기는, 예컨대 다수의 터치 감도 기술 중 임의의 것을 사용하여 접촉(CONTACT) 및 이동(MOVE) 또는 중지(BREAK)를 검출할 수 있다. 터치 감도 기술은 예를 들어, 용량성, 저항성, 적외선 및 표면 탄성파 기술뿐만 아니라, 터치 스크린과의 하나 이상의 접촉점을 결정하기 위한 그 외의 근접 센서 어레이 또는 다른 요소를 포함하며, 이에 제한되지 않는다.
I/O 장치들(1507)은 오디오 장치를 포함할 수 있다. 오디오 장치는 음성 인식, 음성 복제, 디지털 녹음 및/또는 전화 기능과 같은 음성 동작 기능을 가능하게 하기 위해 스피커 및/또는 마이크를 포함할 수 있다. 다른 I/O 장치들(1507)은, USB(universal serial bus) 포트(들), 병렬 포트(들), 직렬 포트(들), 프린터, 네트워크 인터페이스, 버스 브리지(예를 들어, PCI-PCI 브리지), 센서(들)(예를 들어, 가속도계, 자이로스코프, 자력계, 광 센서, 나침반, 근접 센서 등과 같은 모션 센서) 또는 이들의 조합을 포함할 수 있다. 장치들(1507)은 이미징 프로세싱 서브 시스템(예를 들어, 카메라)를 더 포함할 수 있다. 이미징 프로세싱 서브 시스템은, 사진 및 비디오 클립 녹화와 같은 카메라 기능들을 가능하게 하는데 이용되는, CCD(CHARGE COUPLED DEVICE) 또는 CMOS(COMPLEMENTARY METAL-OXIDE SEMICONDUCTOR) 광학 센서와 같은 광학 센서를 포함할 수 있다. 특정 센서들은, 센서 허브(미도시)를 통해 인터커넥트(1510)에 연결될 수 있고, 키보드 또는 열 센서와 같은 다른 장치는 시스템(1500)의 구체적인 구성 또는 설계에 따라 내장형 제어기(미도시)에 의해 제어될 수 있다.
데이터, 애플리케이션, 하나 이상의 운영 체제 등과 같은 정보의 영구 저장을 제공하기 위해, 대용량 저장 장치(미도시)가 또한 프로세서(1501)에 연결될 수 있다. 다양한 실시예에서, 시스템 응답성을 향상하고 더 얇고 가벼운 시스템 설계를 가능하게 하기 위해, 이 대용량 저장 장치는 SSD(solid state device)를 통해 구현될 수 있다. 그러나, 다른 실시예들에서, 대용량 저장 장치는, 시스템 활동의 재가동 시에 빠른 파워 업이 일어나도록, 파워 다운 이벤트들 동안 컨텍스트 상태(context state) 및 다른 그러한 정보의 비 휘발성 저장을 가능하게 하기 위해 SSD 캐시로서 작용하는, 더 적은 양의 SSD 스토리지와 함께 하드 디스크 드라이브(HDD)를 사용하여 주로 구현될 수 있다. 또한, 플래시 장치는, 예를 들어, 직렬 주변 장치 인터페이스(SPI)를 통해 프로세서(1501)에 결합될 수 있다. 이 플래시 장치는, 시스템의 다른 펌웨어뿐만 아니라 BIOS를 포함하는, 시스템 소프트웨어의 비휘발성 저장 공간을 제공할 수 있다.
저장 장치(1508)는, 본 명세서에 기술된 방법들 또는 기능들의 하나 이상을 내장하는 하나 이상의 명령어 세트 또는 소프트웨어(예를 들어, 모듈, 유닛 및/또는 로직(1528)이 저장되는 컴퓨터 액세스 가능 저장 매체(1509)(기계 판독 가능 저장 매체 또는 컴퓨터 판독 가능 매체로도 알려짐)을 포함할 수 있다. 프로세싱 모듈/유닛/로직(1528)은, 예를 들어, 제어 모듈(305)과 같은, 전술한 컴포넌트들 중 임의의 것을 나타낼 수 있다. 처리 모듈/유닛/로직(1528)은 또한 머신 액세스 가능 저장 매체를 또한 구성하는, 데이터 처리 시스템(1500), 메모리(1503) 및 프로세서(1501)에 의한 실행 중에 메모리(1503) 및/또는 프로세서(1501) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 프로세싱 모듈/유닛/로직(1528)은 네트워크 인터페이스 장치(1505)를 통해 네트워크를 통해 더 송신되거나 수신될 수 있다.
또한, 컴퓨터 판독 가능 저장 매체(1509)는 전술한 일부 소프트웨어 기능을 지속적으로 저장하는데 사용될 수 있다. 컴퓨터 판독 가능 저장 매체(1509)는 예시적인 실시예에서 단일 매체로 도시되지만, "컴퓨터 판독 가능 저장 매체"라는 용어는 하나 이상의 명령어 세트들을 저장하는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중식 또는 분산형 데이터베이스 및/또는 연관된 캐시들 및 서버들)를 포함하도록 취급되어야 한다. "컴퓨터 판독 가능 저장 매체"라는 용어는, 또한 기계에 의한 실행을 위한 명령어 세트를 저장 또는 인코딩할 수 있고, 본 발명의 방법론들 중 하나 이상을 기계가 수행하게 하는 임의의 매체를 포함하도록 취급될 것이다. 따라서, "컴퓨터 판독 가능 저장 매체"라는 용어는, 솔리드 스테이트 메모리, 광학 및 자기 매체, 또는 임의의 다른 비 일시적 기계 판독 가능 매체를 포함하도록 취급될 것이지만, 이에 한정되는 것은 아니다.
프로세싱 모듈/유닛/로직(1528), 본 명세서에서 설명된 구성 요소들 및 다른 특징들은, 개별 하드웨어 구성 요소들로서 구현되거나, ASIC, FPGA, DSP 또는 유사한 장치와 같은 하드웨어 구성 요소들의 기능성에 통합될 수 있다. 또한, 처리 모듈/유닛/로직(1528)은 하드웨어 장치 내의 펌웨어 또는 기능 회로로 구현될 수 있다. 또한, 처리 모듈/유닛/로직(1528)은 임의의 조합 하드웨어 장치 및 소프트웨어 구성 요소로 구현될 수 있다.
시스템(1500)은, 데이터 처리 시스템의 다양한 구성 요소로 도시되어 있지만, 구성 요소를 상호 접속시키는 임의의 특정 아키텍처나 방식을 나타내 위한 것이 아니다. 이러한 세부 사항들은 본 발명의 실시예들과 관련되지 않는다. 네트워크 컴퓨터들, 핸드 헬드 컴퓨터들, 이동 전화들, 서버들 및/또는 더 적은 구성 요소 또는 더 많은 구성 요소를 갖는 다른 데이터 처리 시스템들 또한 본 발명의 실시예들과 함께 사용될 수 있다.
전술한 상세 설명의 일부는, 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 알고리즘 및 기호 표현의 방식으로 제시되었다. 이러한 알고리즘 설명 및 표현은, 데이터 처리 기술 분야의 당업자가 자신의 연구 내용을 다른 당업자에게 가장 효과적으로 전달하는데 사용되는 방법이다. 알고리즘은 본 명세서에서 그리고 일반적으로, 원하는 결과를 이끌어내는 일관된 동작 순서(self-consistent sequence)로 인식된다. 이 동작들은 물리량의 물리적인 조작을 요구하는 것들이다.
그러나 이러한 모든 용어 및 그와 유사한 용어들은 적절한 물리량과 관련되어야 하며 이러한 수량에 적용되는 편리한 레이블일 뿐이다. 상기 논의로부터 명백한 바와 같이, 특별히 달리 언급되지 않는 한, 명세서 전반에 걸쳐, 이하의 특허청구범위에서 제시된 것과 같은 용어들을 활용한 논의들은, 컴퓨터 시스템의 레지스터 및 메모리 내의 물리(전자)량으로 표현되는 데이터를, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 그러한 정보 저장소, 전송 또는 디스플레이 장치 내에 물리량으로 유사하게 표현되는 다른 데이터로 조작하고 변형시키는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 프로세스를 지칭한다.
본 발명의 실시예는 또한 본 명세서의 동작을 수행하기 위한 장치에 관한 것이다. 이러한 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체에 저장된다. 기계 판독 가능 매체는, 기계(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독 가능(예를 들어, 컴퓨터 판독 가능) 매체는 기계(예를 들어, 컴퓨터) 판독 가능 저장 매체(예를 들어, 읽기 전용 메모리(ROM)), 랜덤 액세스 메모리(RAM), 자기 디스 저장 매체, 광학 저장 매체, 플래시 메모리 장치)를 포함한다.
상기 도면들에 도시된 프로세스들 또는 방법들은, 하드웨어(예를 들어, 회로, 전용 로직 등), 소프트웨어(예를 들어, 비일시적인 컴퓨터 판독 가능 매체 상에 구현되는), 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행될 수 있다. 프로세스들 또는 방법들이 몇몇 순차적인 동작들과 관련해서 상술되었지만, 기술된 동작들 중 일부는 다른 순서로 수행될 수 있다. 더욱이, 몇몇 동작들은 순차적으로보다는 병렬로 수행될 수 있다.
본 발명의 실시예는 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 본 명세서에 설명된 본 발명의 실시예들의 교시를 구현하기 위해 다양한 프로그래밍 언어가 사용될 수 있다.
전술한 명세서에서, 본 발명의 실시예는 특정 예시적 실시예를 참조하여 설명되었다. 후술할 특허청구범위에 기재된 본 발명의 보다 넓은 사상 및 영역을 벗어나지 않으면서도 다양한 변형이 가능하다는 것은 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미라기보다는 예시적인 의미로 간주되어야 한다.

Claims (24)

  1. 자율 주행 차량을 동작시키는 조향률을 결정하기 위한 컴퓨터로 구현된 방법에 있어서,
    자율 주행 차량을 동작시키는 조향 제어 명령에 대한 복수의 조향률 후보를 결정하는 단계;
    각각의 조향률 후보에 대해,
    복수의 비용 함수를 적용함으로써, 상기 조향률 후보에 대한 복수의 개별 비용을 계산하되, 여기서 각 비용 함수는 복수의 비용 카테고리 중 하나에 대응되는 단계; 및
    상기 비용 함수에 의해 생성된 상기 개별 비용에 기초하여 상기 조향률 후보에 대한 총 비용을 계산하는 단계;
    최저 총 비용을 갖는 상기 조향률 후보 중 하나를 목표 조향률로서 선택하는 단계; 및
    상기 자율 주행 차량의 스티어링 휠을 제어하도록 상기 선택된 조향률 후보에 기초하여 조향 제어 명령을 생성하는 단계를 포함하는, 컴퓨터로 구현된 방법.
  2. 제1항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 단계는,
    제1 비용 함수를 사용하여 목표 조향 위치와 상기 자율 주행 차량의 현재 조향 위치 사이의 차이에 기초하여 제1 개별 비용을 계산하는 단계를 포함하는, 컴퓨터로 구현된 방법.
  3. 제2항에 있어서,
    상기 조향률 후보가 상기 목표 조향 위치와 상기 현재 조향 위치 사이의 차이보다 작을 경우, 상기 제1 개별 비용을 상기 차이에서 상기 조향률 후보를 뺀 것으로 할당하는 단계; 및
    상기 조향률 후보가 상기 차이보다 크거나 같으면, 상기 제1 개별 비용을 0으로 할당하는 단계를 더 포함하는, 컴퓨터로 구현된 방법.
  4. 제1항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 단계는,
    제2 비용 함수를 사용하여 이전 명령 사이클에 대한 상기 자율 주행 차량의 이전 조향 위치와 이전 목표 조향 위치 사이의 차이에 기초하여 제2 개별 비용을 계산하는 단계를 포함하는, 컴퓨터로 구현된 방법.
  5. 제4항에 있어서,
    상기 제2 개별 비용은, 상기 이전 목표 조향 위치와 상기 이전 조향 위치 사이의 차이를 고려해서, 상기 조향률 후보와 최고 조향률 후보 사이의 차이에 기초하여 계산되는, 컴퓨터로 구현된 방법.
  6. 제1항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 단계는,
    제3 비용 함수를 사용하여 목표 조향률로서 상기 조향률 후보를 고려해서, 상기 자율 주행 차량의 현재 차량 속력에 기초하여 제3 개별 비용을 계산하는 단계를 포함하는, 컴퓨터로 구현된 방법.
  7. 제6항에 있어서,
    상기 제3 개별 비용은, 상기 차량 속력과 상기 조향률 후보를 상수로 나눈 값을 곱하여 계산되는, 컴퓨터로 구현된 방법.
  8. 제1항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 단계는,
    제4 비용 함수를 사용하여 목표 조향률로서 상기 조향률 후보에 기초하여 제4 개별 비용을 계산하는 단계를 포함하는, 컴퓨터로 구현된 방법.
  9. 명령어들을 저장하는 비일시적 기계 판독 가능 매체로서, 상기 명령어들은 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하게 하고, 상기 동작들은,
    자율 주행 차량을 동작시키는 조향 제어 명령에 대한 복수의 조향률 후보를 결정하는 것;
    각각의 조향률 후보에 대해,
    복수의 비용 함수를 적용함으로써, 상기 조향률 후보에 대한 복수의 개별 비용을 계산하되, 여기서 각 비용 함수는 복수의 비용 카테고리 중 하나에 대응되는 것; 및
    상기 비용 함수에 의해 생성된 상기 개별 비용에 기초하여 상기 조향률 후보에 대한 총 비용을 계산하는 것;
    최저 총 비용을 갖는 상기 조향률 후보 중 하나를 목표 조향률로서 선택하는 것; 및
    상기 자율 주행 차량의 스티어링 휠을 제어하도록 상기 선택된 조향률 후보에 기초하여 조향 제어 명령을 생성하는 것을 포함하는, 비일시적 기계 판독 가능 매체.
  10. 제9항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제1 비용 함수를 사용하여 목표 조향 위치와 상기 자율 주행 차량의 현재 조향 위치 사이의 차이에 기초하여 제1 개별 비용을 계산하는 것을 포함하는, 비일시적 기계 판독 가능 매체.
  11. 제10항에 있어서, 상기 동작들은,
    상기 조향률 후보가 상기 목표 조향 위치와 상기 현재 조향 위치 사이의차이보다 작을 경우, 상기 제1 개별 비용을 상기 차이에서 상기 조향률 후보를 뺀 것으로 할당하는 것; 및
    상기 조향률 후보가 상기 차이보다 크거나 같으면, 상기 제1 개별 비용을 0으로 할당하는 단계를 더 포함하는 것을 더 포함하는, 비일시적 기계 판독 가능 매체.
  12. 제9항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제2 비용 함수를 사용하여 이전 명령 사이클에 대한 상기 자율 주행 차량의 이전 조향 위치와 이전 목표 조향 위치 사이의 차이에 기초하여 제2 개별 비용을 계산하는 것을 포함하는, 비일시적 기계 판독 가능 매체.
  13. 제12항에 있어서,
    상기 제2 개별 비용은, 상기 이전 목표 조향 위치와 상기 이전 조향 위치 사이의 차이를 고려해서, 상기 조향률 후보와 최고 조향률 후보 사이의 차이에 기초하여 계산되는, 비일시적 기계 판독 가능 매체.
  14. 제9항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제3 비용 함수를 사용하는 목표 조향률로서 상기 조향률 후보를 고려해서, 상기 자율 주행 차량의 현재 차량 속력에 기초하여 제3 개별 비용을 계산하는 것을 포함하는, 비일시적 기계 판독 가능 매체.
  15. 제14항에 있어서,
    상기 제3 개별 비용은, 상기 차량 속력 및 상기 조향률 후보를 상수로 나눈 값을 곱하여 계산되는, 비일시적 기계 판독 가능 매체.
  16. 제9항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제4 비용 함수를 사용하여 목표 조향률로서 상기 조향률 후보에 기초하여 제4 개별 비용을 계산하는 것을 포함하는, 비일시적 기계 판독 가능 매체.
  17. 데이터 처리 시스템에 있어서,
    프로세서; 및
    상기 프로세서에 결합되어 명령어들을 저장하는 메모리를 포함하고, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하게 하며, 상기 동작들은,
    자율 주행 차량을 동작시키는 조향 제어 명령에 대한 복수의 조향률 후보를 결정하는 것;
    각각의 조향률 후보에 대해,
    복수의 비용 함수를 적용함으로써, 상기 조향률 후보에 대한 복수의 개별 비용을 계산하되, 여기서 각 비용 함수는 복수의 비용 카테고리 중 하나에 대응되는 것; 및
    상기 비용 함수에 의해 생성된 상기 개별 비용에 기초하여 상기 조향률 후보에 대한 총 비용을 계산하는 것;
    최저 총 비용을 갖는 상기 조향률 후보 중 하나를 목표 조향률로서 선택하는 것; 및
    상기 자율 주행 차량의 스티어링 휠을 제어하도록 상기 선택된 조향률 후보에 기초하여 조향 제어 명령을 생성하는 것을 포함하는, 데이터 처리 시스템.
  18. 제17항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제1 비용 함수를 사용하여 목표 조향 위치와 상기 자율 주행 차량의 현재 조향 위치 사이의 차이에 기초하여 제 1 개별 비용을 계산하는 것을 포함하는, 데이터 처리 시스템.
  19. 제18항에 있어서, 상기 동작들은,
    상기 조향률 후보가 상기 목표 조향 위치와 상기 현재 조향 위치 사이의차이보다 작을 경우, 상기 제1 개별 비용을 상기 차이에서 상기 조향률 후보를 뺀 것으로 할당하는 것; 및
    상기 조향률 후보가 상기 차이보다 크거나 같으면, 상기 제1 개별 비용을 0으로 할당하는 단계를 더 포함하는 것을 더 포함하는, 데이터 처리 시스템.
  20. 제17항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제2 비용 함수를 사용하여 이전 명령 사이클에 대한 상기 자율 주행 차량의 이전 조향 위치와 이전 목표 조향 위치 사이의 차이에 기초하여 제2 개별 비용을 계산하는 것을 포함하는, 데이터 처리 시스템.
  21. 제 20 항에 있어서,
    상기 제2 개별 비용은, 상기 이전 목표 조향 위치와 상기 이전 조향 위치 사이의 차이를 고려해서, 상기 조향률 후보와 최고 조향률 후보 사이의 차이에 기초하여 계산되는, 데이터 처리 시스템.
  22. 제17항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제3 비용 함수를 사용하는 목표 조향률로서 상기 조향률 후보를 고려해서, 상기 자율 주행 차량의 현재 차량 속력에 기초하여 제3 개별 비용을 계산하는 것을 포함하는, 데이터 처리 시스템.
  23. 제22항에 있어서,
    상기 제3 개별 비용은, 상기 차량 속력 및 상기 조향률 후보를 상수로 나눈 값을 곱하여 계산되는, 데이터 처리 시스템.
  24. 제17항에 있어서,
    상기 조향률 후보에 대한 개별 비용을 계산하는 것은,
    제4 비용 함수를 사용하여 목표 조향률로서 상기 조향률 후보에 기초하여 제4 개별 비용을 계산하는 것을 포함하는, 데이터 처리 시스템.
KR1020187009730A 2016-11-21 2017-05-24 자율 주행 차량의 조향률의 동적 조정 KR102020163B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/358,078 2016-11-21
US15/358,078 US9874871B1 (en) 2016-11-21 2016-11-21 Method to dynamically adjusting steering rates of autonomous vehicles
PCT/US2017/034152 WO2018093419A1 (en) 2016-11-21 2017-05-24 To dynamically adjusting steering rates of autonomous vehicles

Publications (2)

Publication Number Publication Date
KR20180074676A KR20180074676A (ko) 2018-07-03
KR102020163B1 true KR102020163B1 (ko) 2019-09-09

Family

ID=60956532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187009730A KR102020163B1 (ko) 2016-11-21 2017-05-24 자율 주행 차량의 조향률의 동적 조정

Country Status (6)

Country Link
US (2) US9874871B1 (ko)
EP (1) EP3347785B1 (ko)
JP (1) JP6499806B2 (ko)
KR (1) KR102020163B1 (ko)
CN (1) CN108604095B (ko)
WO (1) WO2018093419A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9874871B1 (en) * 2016-11-21 2018-01-23 Baidu Usa Llc Method to dynamically adjusting steering rates of autonomous vehicles
DE102017208762A1 (de) * 2017-05-23 2018-11-29 Bayerische Motoren Werke Aktiengesellschaft Fahrsystem zum automatisierten Fahren mit Mitteln zum Markieren von Bereichen am Lenkrad und entsprechendes Verfahren
US10438074B2 (en) * 2017-06-14 2019-10-08 Baidu Usa Llc Method and system for controlling door locks of autonomous driving vehicles based on lane information
US11548509B2 (en) 2018-04-11 2023-01-10 Hyundai Motor Company Apparatus and method for controlling lane change in vehicle
EP3552913B1 (en) 2018-04-11 2021-08-18 Hyundai Motor Company Apparatus and method for controlling to enable autonomous system in vehicle
US11077854B2 (en) 2018-04-11 2021-08-03 Hyundai Motor Company Apparatus for controlling lane change of vehicle, system having the same and method thereof
US11334067B2 (en) 2018-04-11 2022-05-17 Hyundai Motor Company Apparatus and method for providing safety strategy in vehicle
US11084491B2 (en) 2018-04-11 2021-08-10 Hyundai Motor Company Apparatus and method for providing safety strategy in vehicle
US11084490B2 (en) 2018-04-11 2021-08-10 Hyundai Motor Company Apparatus and method for controlling drive of vehicle
EP3552902A1 (en) 2018-04-11 2019-10-16 Hyundai Motor Company Apparatus and method for providing a driving path to a vehicle
US11173910B2 (en) 2018-04-11 2021-11-16 Hyundai Motor Company Lane change controller for vehicle system including the same, and method thereof
US11597403B2 (en) 2018-04-11 2023-03-07 Hyundai Motor Company Apparatus for displaying driving state of vehicle, system including the same and method thereof
EP3552901A3 (en) 2018-04-11 2020-04-29 Hyundai Motor Company Apparatus and method for providing safety strategy in vehicle
US11351989B2 (en) 2018-04-11 2022-06-07 Hyundai Motor Company Vehicle driving controller, system including the same, and method thereof
EP3569460B1 (en) 2018-04-11 2024-03-20 Hyundai Motor Company Apparatus and method for controlling driving in vehicle
US10843710B2 (en) 2018-04-11 2020-11-24 Hyundai Motor Company Apparatus and method for providing notification of control authority transition in vehicle
TWI678305B (zh) * 2018-10-19 2019-12-01 財團法人車輛研究測試中心 具決策診斷之自動駕駛方法及其裝置
US11097748B2 (en) * 2018-10-23 2021-08-24 Baidu Usa Llc Two-step reference line smoothing method to mimic human driving behaviors for autonomous driving cars
US10843728B2 (en) * 2019-01-31 2020-11-24 StradVision, Inc. Method and device for delivering steering intention of autonomous driving module or driver to steering apparatus of subject vehicle more accurately
US11731612B2 (en) * 2019-04-30 2023-08-22 Baidu Usa Llc Neural network approach for parameter learning to speed up planning for complex driving scenarios
US20210096568A1 (en) * 2019-09-30 2021-04-01 Wipro Limited System and method for dynamically adjusting a trajectory of an autonomous vehicle during real-time navigation
US11604468B2 (en) 2019-12-24 2023-03-14 Valeo Schalter Und Sensoren Gmbh Techniques for blended control for remote operations
RU2751734C2 (ru) * 2019-12-30 2021-07-16 Общество с ограниченной ответственностью "Яндекс Беспилотные Технологии" Способы и процессоры для управления рулением беспилотным автомобилем
US11479265B2 (en) * 2020-03-25 2022-10-25 Baidu Usa Llc Incremental lateral control system using feedbacks for autonomous driving vehicles

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001287662A (ja) 2000-04-07 2001-10-16 Toyota Motor Corp 車輌用自動操舵装置
US20100228427A1 (en) 2009-03-05 2010-09-09 Massachusetts Institute Of Technology Predictive semi-autonomous vehicle navigation system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1961639A1 (en) * 2007-02-22 2008-08-27 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Vehicle driving assistance
US7774121B2 (en) * 2007-07-31 2010-08-10 Gm Global Technology Operations, Inc. Curve speed control system with adaptive map preview time and driving mode selection
JP5332034B2 (ja) * 2008-09-22 2013-11-06 株式会社小松製作所 無人車両の走行経路生成方法
US8965691B1 (en) 2012-10-05 2015-02-24 Google Inc. Position and direction determination using multiple single-channel encoders
US9630631B2 (en) 2013-10-03 2017-04-25 Honda Motor Co., Ltd. System and method for dynamic in-vehicle virtual reality
JP6204865B2 (ja) * 2014-03-31 2017-09-27 日立オートモティブシステムズ株式会社 車両の運動制御システム、車両、および、プログラム
JP6022517B2 (ja) * 2014-09-12 2016-11-09 アイシン精機株式会社 車両の制御装置
US9494935B2 (en) 2014-11-13 2016-11-15 Toyota Motor Engineering & Manufacturing North America, Inc. Remote operation of autonomous vehicle in unexpected environment
JP6421935B2 (ja) * 2015-03-31 2018-11-14 パナソニックIpマネジメント株式会社 車両移動推定装置および車両移動推定方法
JP2016210243A (ja) * 2015-04-30 2016-12-15 トヨタ自動車株式会社 車両の自動運転システム
CN105185144B (zh) * 2015-10-28 2017-05-10 武汉大学 顾及道路交叉路口转向的公路大件运输线路优化方法
US9874871B1 (en) * 2016-11-21 2018-01-23 Baidu Usa Llc Method to dynamically adjusting steering rates of autonomous vehicles

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001287662A (ja) 2000-04-07 2001-10-16 Toyota Motor Corp 車輌用自動操舵装置
US20100228427A1 (en) 2009-03-05 2010-09-09 Massachusetts Institute Of Technology Predictive semi-autonomous vehicle navigation system

Also Published As

Publication number Publication date
JP6499806B2 (ja) 2019-04-10
CN108604095A (zh) 2018-09-28
JP2019501812A (ja) 2019-01-24
US10289110B2 (en) 2019-05-14
EP3347785A4 (en) 2019-05-22
CN108604095B (zh) 2022-02-01
EP3347785A1 (en) 2018-07-18
US9874871B1 (en) 2018-01-23
US20180143622A1 (en) 2018-05-24
KR20180074676A (ko) 2018-07-03
WO2018093419A1 (en) 2018-05-24
EP3347785B1 (en) 2020-04-29

Similar Documents

Publication Publication Date Title
KR102020163B1 (ko) 자율 주행 차량의 조향률의 동적 조정
KR102223270B1 (ko) 여분의 초음파 radar를 구비한 자율 주행 차량
JP7050025B2 (ja) 自動運転車両のための計画運転感知システム
US11328219B2 (en) System and method for training a machine learning model deployed on a simulation platform
KR102260486B1 (ko) 자율 주행 차량의 완전 정지를 위한 속력 제어
KR102042123B1 (ko) 자율 주행 차량을 위한 속력 제어 파라미터 추정 방법
KR102048646B1 (ko) 자율 주행 차량 이동을 시뮬레이트하기 위한 물리 모델 및 머신 러닝과 결합된 방법
KR102070530B1 (ko) 모션 계획에 기초한 자율 주행 차량의 운행 방법 및 시스템
KR101975728B1 (ko) 자율 주행 차량을 위한 사이드슬립 보상 제어 방법
KR101982456B1 (ko) 자율 주행 모드로 재진입하는 자율 주행 차량 제어를 위한 방법 및 시스템
KR102062608B1 (ko) 자율 주행 차량의 제어 피드백에 기초한 맵 업데이트 방법 및 시스템
CN108255170B (zh) 动态地调整自动驾驶车辆的速度控制率的方法
KR101975725B1 (ko) 학습 기반 모델 예측 제어를 이용한 자율 주행 차량의 노면 마찰 결정 방법 및 시스템
EP3327530B1 (en) Method for determining command delays of autonomous vehicles
US10569651B2 (en) Speed control and steering control assistant based on pitch status and roll status of autonomous driving vehicle
US10606273B2 (en) System and method for trajectory re-planning of autonomous driving vehicles
KR102398256B1 (ko) 비전 기반 인식 시스템에 의한 대립적 샘플들 검출 방법
KR20190141081A (ko) 자율 주행 차량의 v2x 통신 기반의 차량 차로 시스템
JP2018158719A (ja) 自動運転車両に用いられる制御型の計画と制御システム
WO2020132943A1 (en) A corner negotiation method for autonomous driving vehicles without map and localization

Legal Events

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