KR20230149709A - 그리드에서의 양방향 경로 최적화 - Google Patents
그리드에서의 양방향 경로 최적화 Download PDFInfo
- Publication number
- KR20230149709A KR20230149709A KR1020220168811A KR20220168811A KR20230149709A KR 20230149709 A KR20230149709 A KR 20230149709A KR 1020220168811 A KR1020220168811 A KR 1020220168811A KR 20220168811 A KR20220168811 A KR 20220168811A KR 20230149709 A KR20230149709 A KR 20230149709A
- Authority
- KR
- South Korea
- Prior art keywords
- vehicle
- occupancy map
- path
- driving
- environment
- Prior art date
Links
- 238000005457 optimization Methods 0.000 title abstract description 12
- 230000002457 bidirectional effect Effects 0.000 title abstract description 5
- 238000000034 method Methods 0.000 claims abstract description 69
- 230000007613 environmental effect Effects 0.000 claims abstract description 15
- 238000003860 storage Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 19
- 230000001186 cumulative effect Effects 0.000 claims description 4
- 230000033001 locomotion Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims 2
- 238000004590 computer program Methods 0.000 abstract description 3
- 238000013439 planning Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 29
- 230000004807 localization Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 28
- 238000007726 management method Methods 0.000 description 24
- 230000001149 cognitive effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 230000009466 transformation Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 9
- 238000005070 sampling Methods 0.000 description 8
- 230000036961 partial effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 206010048669 Terminal state Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0013—Planning or execution of driving tasks specially adapted for occupant comfort
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/095—Predicting travel path or likelihood of collision
- B60W30/0956—Predicting travel path or likelihood of collision the prediction being responsive to traffic or environmental parameters
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/02—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/16—Anti-collision systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2552/00—Input parameters relating to infrastructure
- B60W2552/50—Barriers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/40—High definition maps
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2720/00—Output or target parameters relating to overall vehicle dynamics
- B60W2720/24—Direction of travel
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/18—Propelling the vehicle
- B60W30/18009—Propelling the vehicle related to particular drive situations
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/18—Propelling the vehicle
- B60W30/18009—Propelling the vehicle related to particular drive situations
- B60W30/18036—Reversing
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
그리드에서의 양방향 경로 최적화를 위한 방법, 시스템, 및 컴퓨터 프로그램 제품이 제공된다. 예시적인 방법은: 차량의 환경과 연관된 차량 환경 데이터를 수신하는 단계; 차량 환경 데이터를 사용하여 환경의 점유 맵을 결정하는 단계― 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―; 차량에 대한 목적지 위치까지 참조 경로를 생성하는 단계; 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 점유 맵에서 중간 위치까지의 주행 경로를 결정하는 단계― 중간 위치는 참조 경로 상의 포인트에 근접함 ―; 및 주행 경로에 적어도 부분적으로 기초하여 차량에 대한 작동 커맨드를 생성하는 단계를 포함한다.
Description
본 출원은 2022년 4월 20일에 출원한 발명의 명칭이 "BIDIRECTIONAL PATH OPTIMIZATION IN A GRID"인 미국 임시 출원 일련 번호 63/332,976에 대해 우선권을 주장하며, 이 우선권 출원의 전체 내용은 인용에 의해 본 명세서에 포함된다.
도 1은 자율 주행 시스템의 하나 이상의 컴포넌트를 포함한 차량이 구현될 수 있는 예시적인 환경이다.
도 2는 자율 주행 시스템을 포함하는 차량의 하나 이상의 시스템의 도면이다.
도 3은 도 1 및 도 2의 하나 이상의 디바이스 및/또는 하나 이상의 시스템의 컴포넌트들의 도면이다.
도 4는 자율 주행 시스템의 특정 컴포넌트들의 도면이다.
도 5a는 모델 예측 제어 시스템의 일례를 도시하는 블록도이다.
도 5b와 도 5c는 모델 예측 제어 시스템이 직면할 수 있는 예시적인 환경을 도시한 도면이다.
도 6a는 모델 예측 제어 시스템이 사용하는 예시적인 좌표계 변환을 도시한 도면이다.
도 6b는 모델 예측 제어 시스템이 사용하는 연속 미분 가능 그리드 평가치를 제공하기 위하여 기저 함수에 의해 평가되는 2차원 그리드를 도시한 도면이다.
도 6c는 모델 예측 제어 시스템이 사용하는 예시적인 점유 맵을 도시한 도면이다.
도 7a 내지 도 7c는 모델 예측 제어 시스템이 사용하는 예시적인 추가 제약 및 비용을 도시한 도면이다.
도 8은 모델 예측 제어 시스템이 사용하는 예시적인 주행 경로를 도시한 도면이다.
도 9는 모델 예측 제어 시스템을 사용하여 주행 경로를 결정하기 위하여 하나 이상의 프로세서에 의해 구현되는 루틴의 일례를 도시하는 흐름도이다.
도 2는 자율 주행 시스템을 포함하는 차량의 하나 이상의 시스템의 도면이다.
도 3은 도 1 및 도 2의 하나 이상의 디바이스 및/또는 하나 이상의 시스템의 컴포넌트들의 도면이다.
도 4는 자율 주행 시스템의 특정 컴포넌트들의 도면이다.
도 5a는 모델 예측 제어 시스템의 일례를 도시하는 블록도이다.
도 5b와 도 5c는 모델 예측 제어 시스템이 직면할 수 있는 예시적인 환경을 도시한 도면이다.
도 6a는 모델 예측 제어 시스템이 사용하는 예시적인 좌표계 변환을 도시한 도면이다.
도 6b는 모델 예측 제어 시스템이 사용하는 연속 미분 가능 그리드 평가치를 제공하기 위하여 기저 함수에 의해 평가되는 2차원 그리드를 도시한 도면이다.
도 6c는 모델 예측 제어 시스템이 사용하는 예시적인 점유 맵을 도시한 도면이다.
도 7a 내지 도 7c는 모델 예측 제어 시스템이 사용하는 예시적인 추가 제약 및 비용을 도시한 도면이다.
도 8은 모델 예측 제어 시스템이 사용하는 예시적인 주행 경로를 도시한 도면이다.
도 9는 모델 예측 제어 시스템을 사용하여 주행 경로를 결정하기 위하여 하나 이상의 프로세서에 의해 구현되는 루틴의 일례를 도시하는 흐름도이다.
이하의 설명에서는, 설명 목적으로 본 개시내용에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부 사항들이 제시된다. 그렇지만, 본 개시내용에 의해 기술되는 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있음이 명백할 것이다. 일부 경우에, 본 개시의 양태들을 불필요하게 모호하게 하는 것을 피하기 위해 잘 알려진 구조들 및 디바이스들은 블록도 형태로 예시되어 있다.
시스템들, 디바이스들, 모듈들, 명령어 블록들, 데이터 요소들 등을 나타내는 것들과 같은, 개략적인 요소들의 특정 배열들 또는 순서들이 설명의 편의를 위해 도면들에 예시되어 있다. 그렇지만, 본 기술 분야의 통상의 기술자라면 도면들에서의 개략적인 요소들의 특정 순서 또는 배열이, 그러한 것으로 명시적으로 기술되지 않는 한, 프로세스들의 특정 프로세싱 순서 또는 시퀀스, 또는 프로세스들의 분리가 필요하다는 것을 암시하는 것으로 의미되지 않음을 이해할 것이다. 게다가, 도면에 개략적인 요소를 포함시키는 것은, 그러한 것으로 명시적으로 기술되지 않는 한 일부 실시예에서, 그러한 요소가 모든 실시예들에서 필요하다는 것 또는 그러한 요소에 의해 표현되는 특징들이 다른 요소들에 포함되지 않을 수 있거나 다른 요소들과 결합되지 않을 수 있다는 것을 암시하는 것으로 의미되지 않는다.
게다가, 2 개 이상의 다른 개략적인 요소 사이의 연결, 관계 또는 연관을 예시하기 위해 실선 또는 파선 또는 화살표와 같은 연결 요소들이 도면에서 사용되는 경우에, 임의의 그러한 연결 요소들의 부재는 연결, 관계 또는 연관이 존재하지 않을 수 있음을 암시하는 것으로 의미되지 않는다. 환언하면, 요소들 사이의 일부 연결들, 관계들 또는 연관들은 본 개시를 모호하게 하지 않기 위해 도면들에 도시되어 있지 않다. 추가적으로, 예시의 용이성을 위해, 요소들 사이의 다수의 연결들, 관계들 또는 연관들을 나타내기 위해 단일의 연결 요소가 사용될 수 있다. 예를 들어, 연결 요소가 신호들, 데이터 또는 명령어들(예를 들면, "소프트웨어 명령어들")의 통신을 나타내는 경우에, 본 기술 분야의 통상의 기술자라면 그러한 요소가, 통신을 수행하는 데에 필요할 수 있는, 하나 또는 다수의 신호 경로(예를 들면, 버스)를 나타낼 수 있다는 것을 이해할 것이다.
제1, 제2, 제3 등의 용어들이 다양한 컴포넌트들을 기술하는 데 사용되지만, 이러한 요소들이 이러한 용어들에 의해 제한되어서는 안된다. 제1, 제2, 제3 등의 용어들은 하나의 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 기술된 실시예들의 범위를 벗어나지 않으면서, 제1 접촉은 제2 접촉이라고 지칭될 수 있고, 유사하게 제2 접촉은 제1 접촉이라고 지칭될 수 있다. 제1 접촉과 제2 접촉은 둘 다 접촉이지만, 동일한 접촉은 아니다.
본원에 기술된 다양한 실시예들에 대한 설명에서 사용되는 전문용어는 단지 특정한 실시예들을 기술하기 위한 목적에서 포함되며, 제한하는 것으로 의도되지 않는다. 다양한 기술된 실시예들에 대한 설명 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the")은 복수 형태들도 포함하는 것으로 의도되고, 문맥이 달리 명확히 나타내지 않는 한, "하나 이상" 또는 "적어도 하나"와 상호 교환 가능하게 사용될 수 있다. "및/또는"이라는 용어가, 본원에서 사용되는 바와 같이, 연관된 열거된 항목들 중 하나 이상의 항목의 임의의 및 모든 가능한 조합들을 지칭하고 포괄한다는 것이 또한 이해될 것이다. "포함한다(includes)", 포함하는(including), 포함한다(comprises)" 및/또는 "포함하는(comprising)"이라는 용어들이, 본 설명에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본원에서 사용되는 바와 같이, "통신" 및 "통신하다"라는 용어들은 정보(또는, 예를 들어, 데이터, 신호들, 메시지들, 명령어들, 커맨드들 등에 의해 표현되는 정보)의 수신, 접수, 송신, 전달, 제공 등 중 적어도 하나를 지칭한다. 하나의 유닛(예를 들면, 디바이스, 시스템, 디바이스 또는 시스템의 컴포넌트, 이들의 조합들 등)이 다른 유닛과 통신한다는 것은 하나의 유닛이 직접 또는 간접적으로 다른 유닛으로부터 정보를 수신하고/하거나 다른 유닛으로 정보를 전송(예를 들면, 송신)할 수 있음을 의미한다. 이것은 본질적으로 유선 및/또는 무선인 직접 또는 간접 연결을 지칭할 수 있다. 추가적으로, 송신되는 정보가 제1 유닛과 제2 유닛 사이에서 수정, 프로세싱, 중계 및/또는 라우팅될 수 있을지라도 2 개의 유닛은 서로 통신하고 있을 수 있다. 예를 들어, 제1 유닛이 정보를 수동적으로 수신하고 정보를 제2 유닛으로 능동적으로 송신하지 않을지라도 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 다른 예로서, 적어도 하나의 중간 유닛(예를 들면, 제1 유닛과 제2 유닛 사이에 위치하는 제3 유닛)이 제1 유닛으로부터 수신되는 정보를 프로세싱하고 프로세싱된 정보를 제2 유닛으로 송신하는 경우 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 일부 실시예에서, 메시지는 데이터를 포함하는 네트워크 패킷(예를 들면, 데이터 패킷 등)을 지칭할 수 있다.
본원에서 사용되는 바와 같이, "~ 경우"라는 용어는, 선택적으로, 문맥에 따라 "~할 때", 또는 "~시에" 또는 "~라고 결정하는 것에 응답하여", "~을 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 유사하게, 문구 "~라고 결정되는 경우" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는, 선택적으로, 문맥에 따라, "~라고 결정할 시에", "~라고 결정하는 것에 응답하여", "[언급된 조건 또는 이벤트]를 검출할 시에", "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 또한, 본원에서 사용되는 바와 같이, "갖는다"(has, have), "갖는(having)" 등의 용어들은 개방형(open-ended) 용어들인 것으로 의도된다. 게다가, 문구 "~에 기초하여"는, 달리 명시적으로 언급되지 않는 한, "~에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도된다.
그 예가 첨부 도면들에 예시되어 있는 실시예들에 대해 이제 상세하게 언급될 것이다. 이하의 상세한 설명에서, 다양한 기술된 실시예들에 대한 완전한 이해를 제공하기 위해 수많은 특정 세부 사항들이 기재된다. 그렇지만, 다양한 기술된 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우에, 실시예들의 양태들을 불필요하게 모호하게 하지 않기 위해 잘 알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 상세히 기술되지 않았다.
일반적 개관
일부 양태 및/또는 실시예에서, 본원에 기술하는 시스템, 방법, 및 컴퓨터 프로그램 제품은 모델 예측 제어 시스템(여기서는 "MPC 시스템"이라고 함)을 포함 및/또는 구현한다. 비제한적인 예로, MPC 시스템은 점유 맵(예컨대, 대상체의 점유 그리드 표현을 가짐)을 사용하여 주행 경로를 결정할 수 있다.
점유 그리드 표현(occupancy grid representation)은 MPC 시스템의 운전(motion) 계획 프로세스에 사용될 수 있다. 점유 그리드 표현은 환경의 공간적 제약을 표현할 경우의 유연성 및 움직이는 대상체 및/또는 확률적 측정을 포함할 가능성을 제공할 수 있다. 그러나, 운전 계획 프로세스로부터의 출력(예컨대, 주행 경로)은 보다 정확한 차량 역학 및 계획된 주행 경로의 컴포트(comfort)를 고려하여 평활화 프로세스(smoothing process)(예컨대, 지속적 최적화)가 필요할 수 있다. 또한, 이산성(discrete nature) 점유 그리드 표현으로 인해 평활화 프로세스의 최적화에는 점유 그리드 표현을 사용할 수 없기 때문에 평활화 프로세스 대 운전 계획 프로세스에 대한 환경적 표현에 불일치가 있을 수 있다. 이에, 일부 경우에, MPC 시스템은 참조 경로에 기초하여 점유 맵에서 주행 경로를 결정할 수도 있다. MPC 시스템은 예컨대 샘플링 기반의 운전 계획 프로세스에 의해 참조 경로를 결정하고 참조 경로를 점유 맵으로 변환할 수도 있다. MPC 시스템은 점유 맵에서 잠재적 경로들을 결정하고 잠재적 경로와 연관된 비용을 결정하며, 결정된 비용에 기초하여 잠재적 경로를 선택할 수 있다(예컨대, 최저 비용 경로를 선택한다). 이런 방식으로, 경로 계획 프로세스와 동일한 환경적 표현(예컨대, 점유 맵)에서 주행 경로를 결정함으로써, 안정성이 상승할 수 있고 계산량 절약을 실현할 수 있다.
자율 주행 차량의 경우, 구속된 공간에서 자율 주행 차량을 운행하는 것이 복잡한 작업일 수 있다. 예를 들어, 한가지 어려움은 자율 주행 차량이 비홀로노믹(non-holonomic)한 차량 운전 제약을 갖는다는 것일 수 있다. 일례로, 자율 주행 차량의 전륜 조향 설계는 전진 운전이 충돌 없이 모든 타겟 포지션의 도착 가능성을 허용하는 것이 불가능함을 의미할 수 있다. 이에, 일부 경우에, MPC 시스템은 참조 경로 및 종방향 변수에 기초하여 점유 맵에서 주행 경로를 결정할 수도 있다. 종방향 변수는 전방 또는 후방 주행의 변경 사이에서 조정된 변수일 수 있다. MPC 시스템은 종방향 변수를 조정함으로써 잠재적 경로를 결정하고, 이에 의해 충분한 조종성(full maneuverability)을 가능하게 하기 위하여, 전방 및 후방 주행에 따른 경로 최적화를 제공할 수 있다.
또한, 참조 경로는 자율 주행 차량의 현재 위치로부터 목적지 위로까지 연장될 수 있다. 계산 시간을 줄이기 위해(또는 계산 자원을 절약하기 위해), MPC 시스템은 MPC 호라이즌(horizon)까지의 설정된 수의 예측 단계를 사용하여 주행 경로를 결정할 수 있다. MPC 호라이즌은 참조 경로에 근접한(예컨대, 참조 경로 부근 또는 참조 경로) 점유 맵에서의 중간 위치일 수 있다. 솔브 사이클(solve cycle)의 매 반복마다, MPC 호라이즌은 (자율 주행 차량의 현재 위치의 변화를 고려하여)현재 위치로부터의 설정된 수의 예측 단계에 대한 주행 기대 거리에 대응하도록 업데이트될 수 있다. MPC 호라이즌은 후퇴 호라이즌으로 간주될 수도 있다. 또한, 솔브 사이클의 매 반복은 환경의 변화(예컨대, 움직이는 대상체, 정지 상태의 대상체가 현재 이동중, 등)에 대응하여 점유 맵을 업데이트할 수 있다. 이에, 일부 경우에, MPC 시스템은 참조 경로 및 종방향 변수에 기초하여 점유 맵에서 MPC 호라이즌(또는 중간 포인트)까지의 주행 경로를 결정할 수 있다.
본원에서 설명하는 시스템, 방법, 및 컴퓨터 프로그램 제품의 구현에 의해, 자율 주행 차량 또는 AV 시스템이 점유 맵에서 주행 경로를 결정할 수 있다. 따라서, 본 개시내용의 시스템은 일반적으로 자율 주행 차량의 경로 최적화 및 MPC 시스템 전반에 대한 개선일 수 있다.
이제 도 1을 참조하면, 자율 주행 시스템들을 포함하는 차량들은 물론 그렇지 않은 차량들이 작동되는 예시적인 환경(100)이 예시된다. 예시된 바와 같이, 환경(100)은 차량들(102a 내지 102n), 대상체들(104a 내지 104n), 루트들(106a 내지 106n), 영역(108), 차량 대 인프라스트럭처(vehicle-to-infrastructure, V2I) 디바이스(110), 네트워크(112), 원격 자율 주행 차량(AV) 시스템(114), 플릿 관리 시스템(fleet management system)(116), 및 V2I 시스템(118)을 포함한다. 차량들(102a 내지 102n), 차량 대 인프라스트럭처(V2I) 디바이스(110), 네트워크(112), 자율 주행 차량(AV) 시스템(114), 플릿 관리 시스템(116), 및 V2I 시스템(118)은 유선 연결들, 무선 연결들, 또는 유선 또는 무선 연결들의 조합을 통해 상호연결한다(예를 들면, 통신 등을 위해 연결을 확립한다). 일부 실시예에서, 대상체들(104a 내지 104n)은 유선 연결들, 무선 연결들 또는 유선 또는 무선 연결들의 조합을 통해 차량들(102a 내지 102n), 차량 대 인프라스트럭처(V2I) 디바이스(110), 네트워크(112), 자율 주행 차량(AV) 시스템(114), 플릿 관리 시스템(116), 및 V2I 시스템(118) 중 적어도 하나와 상호연결한다.
차량들(102a 내지 102n)(개별적으로 차량(102)이라고 지칭되고 집합적으로 차량들(102)이라고 지칭됨)은 상품 및/또는 사람을 운송하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 실시예에서, 차량들(102)은 네트워크(112)를 통해 V2I 디바이스(110), 원격 AV 시스템(114), 플릿 관리 시스템(116), 및/또는 V2I 시스템(118)과 통신하도록 구성된다. 일부 실시예에서, 차량들(102)은 자동차들, 버스들, 트럭들, 기차들 등을 포함한다. 일부 실시예에서, 차량들(102)은 본원에 기술된 차량들(200)(도 2 참조)과 동일하거나 유사하다. 일부 실시예에서, 일단의 차량들(200) 중의 차량(200)은 자율 주행 플릿 관리자와 연관된다. 일부 실시예에서, 차량들(102)은, 본원에 기술된 바와 같이, 각자의 루트들(106a 내지 106n)(개별적으로 루트(106)라고 지칭되고 집합적으로 루트들(106)이라고 지칭됨)을 따라 주행한다. 일부 실시예에서, 하나 이상의 차량(102)은 자율 주행 시스템(예를 들면, 자율 주행 시스템(202)과 동일하거나 유사한 자율 주행 시스템)을 포함한다.
대상체들(104a 내지 104n)(개별적으로 대상체(104)라고 지칭되고 집합적으로 대상체들(104)이라고 지칭됨)은, 예를 들어, 적어도 하나의 차량, 적어도 하나의 보행자, 적어도 하나의 자전거 승차자, 적어도 하나의 구조물(예를 들면, 건물, 표지판, 소화전(fire hydrant) 등) 등을 포함한다. 각각의 대상체(104)는 정지해 있거나(예를 들면, 일정 시간 기간 동안 고정 위치에 위치하거나) 이동하고 있다(예를 들면, 속도를 가지며 적어도 하나의 궤적과 연관되어 있다). 일부 실시예에서, 대상체들(104)은 영역(108) 내의 대응하는 위치들과 연관되어 있다.
루트들(106a 내지 106n)(개별적으로 루트(106)라고 지칭되고 집합적으로 루트들(106)이라고 지칭됨)은 각각 AV가 운행할 수 있는 상태들을 연결하는 행동들의 시퀀스(궤적이라고도 함)와 연관된다(예를 들면, 이를 규정한다). 각각의 루트(106)는 초기 상태(예를 들면, 제1 시공간적 위치, 속도 등에 대응하는 상태) 및 최종 목표 상태(예를 들면, 제1 시공간적 위치와 상이한 제2 시공간적 위치에 대응하는 상태) 또는 목표 영역(예를 들면, 허용 가능한 상태들(예를 들면, 종료 상태들(terminal states))의 부분 공간(subspace))에서 시작된다. 일부 실시예에서, 제1 상태는 개인 또는 개인들이 AV에 의해 픽업(pick-up)되어야 하는 위치를 포함하고 제2 상태 또는 영역은 AV에 의해 픽업된 개인 또는 개인들이 하차(drop-off)해야 하는 위치 또는 위치들을 포함한다. 일부 실시예에서, 루트들(106)은 복수의 허용 가능한 상태 시퀀스들(예를 들면, 복수의 시공간적 위치 시퀀스들)을 포함하며, 복수의 상태 시퀀스들은 복수의 궤적들과 연관된다(예를 들면, 이를 정의한다). 일 예에서, 루트들(106)은, 도로 교차로들에서의 회전 방향들을 지시하는 일련의 연결된 도로들과 같은, 상위 레벨 행동들 또는 부정확한 상태 위치들만을 포함한다. 추가적으로 또는 대안적으로, 루트들(106)은, 예를 들어, 특정 목표 차선들 또는 차선 영역들 내에서의 정확한 위치들 및 해당 위치들에서의 목표 속력과 같은, 보다 정확한 행동들 또는 상태들을 포함할 수 있다. 일 예에서, 루트들(106)은 중간 목표들에 도달하기 위해 제한된 룩어헤드 호라이즌(lookahead horizon)을 갖는 적어도 하나의 상위 레벨 행동 시퀀스를 따른 복수의 정확한 상태 시퀀스들을 포함하며, 여기서 제한된 호라이즌 상태 시퀀스들의 연속적인 반복들의 조합은 누적되어 복수의 궤적들에 대응하며 이 복수의 궤적들은 집합적으로 최종 목표 상태 또는 영역에서 종료하는 상위 레벨 루트를 형성한다.
영역(108)은 차량들(102)이 운행할 수 있는 물리적 영역(예를 들면, 지리적 영역)을 포함한다. 일 예에서, 영역(108)은 적어도 하나의 주(state)(예를 들면, 국가, 지방, 국가에 포함된 복수의 주들의 개개의 주 등), 주의 적어도 하나의 부분, 적어도 하나의 도시, 도시의 적어도 하나의 부분 등을 포함한다. 일부 실시예에서, 영역(108)은 간선 도로, 주간 간선 도로, 공원 도로, 도시 거리 등과 같은 적어도 하나의 명명된 주요 도로(thoroughfare)(본원에서 "도로"라고 지칭됨)를 포함한다. 추가적으로 또는 대안적으로, 일부 예들에서, 영역(108)은 진입로, 주차장의 섹션, 공터 및/또는 미개발 부지의 섹션, 비포장 경로 등과 같은 적어도 하나의 명명되지 않은 도로를 포함한다. 일부 구현예에서, 도로는 적어도 하나의 차선(예를 들면, 차량(102)에 의해 횡단될 수 있는 도로의 일 부분)을 포함한다. 일 예에서, 도로는 적어도 하나의 차선 마킹과 연관된(예를 들면, 이에 기초하여 식별되는) 적어도 하나의 차선을 포함한다.
차량 대 인프라스트럭처(V2I) 디바이스(110)(때때로 차량 대 인프라스트럭처(V2X) 디바이스라고 지칭됨)는 차량들(102) 및/또는 V2I 인프라스트럭처 시스템(118)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 실시예에서, V2I 디바이스(110)는 네트워크(112)를 통해 차량들(102), 원격 AV 시스템(114), 플릿 관리 시스템(116), 및/또는 V2I 시스템(118)과 통신하도록 구성된다. 일부 실시예에서, V2I 디바이스(110)는 RFID(radio frequency identification) 디바이스, 사이니지(signage), 카메라(예를 들면, 2차원(2D) 및/또는 3차원(3D) 카메라), 차선 마커, 가로등, 주차 미터기 등을 포함한다. 일부 실시예에서, V2I 디바이스(110)는 차량들(102)과 직접 통신하도록 구성된다. 추가적으로 또는 대안적으로, 일부 실시예에서, V2I 디바이스(110)는 V2I 시스템(118)을 통해 차량들(102), 원격 AV 시스템(114), 및/또는 플릿 관리 시스템(116)과 통신하도록 구성된다. 일부 실시예에서, V2I 디바이스(110)는 네트워크(112)를 통해 V2I 시스템(118)과 통신하도록 구성된다.
네트워크(112)는 하나 이상의 유선 및/또는 무선 네트워크를 포함한다. 일 예에서, 네트워크(112)는 셀룰러 네트워크(예를 들면, LTE(long term evolution) 네트워크, 3G(third generation) 네트워크, 4G(fourth generation) 네트워크, 5G(fifth generation) 네트워크, CDMA(code division multiple access) 네트워크 등), PLMN(public land mobile network), LAN(local area network), WAN(wide area network), MAN(metropolitan area network), 전화 네트워크(예를 들면, PSTN(public switched telephone network)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유 기반 네트워크, 클라우드 컴퓨팅 네트워크 등, 이러한 네트워크들의 일부 또는 전부의 조합 등을 포함한다.
원격 AV 시스템(114)은 네트워크(112)를 통해 차량들(102), V2I 디바이스(110), 네트워크(112), 원격 AV 시스템(114), 플릿 관리 시스템(116), 및/또는 V2I 시스템(118)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일 예에서, 원격 AV 시스템(114)은 서버, 서버들의 그룹, 및/또는 다른 유사한 디바이스들을 포함한다. 일부 실시예에서, 원격 AV 시스템(114)은 플릿 관리 시스템(116)과 동일 위치에 배치된다(co-located). 일부 실시예에서, 원격 AV 시스템(114)은 자율 주행 시스템, 자율 주행 차량 컴퓨터, 자율 주행 차량 컴퓨터에 의해 구현되는 소프트웨어 등을 포함한, 차량의 컴포넌트들의 일부 또는 전부의 설치에 관여된다. 일부 실시예에서, 원격 AV 시스템(114)은 차량의 수명 동안 그러한 컴포넌트들 및/또는 소프트웨어를 유지 관리(예를 들면, 업데이트 및/또는 교체)한다.
플릿 관리 시스템(116)은 차량들(102), V2I 디바이스(110), 원격 AV 시스템(114), 및/또는 V2I 인프라스트럭처 시스템(118)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일 예에서, 플릿 관리 시스템(116)은 서버, 서버들의 그룹, 및/또는 다른 유사한 디바이스들을 포함한다. 일부 실시예에서, 플릿 관리 시스템(116)은 라이드 셰어링(ridesharing) 회사(예를 들면, 다수의 차량들(예를 들면, 자율 주행 시스템들을 포함하는 차량들 및/또는 자율 주행 시스템들을 포함하지 않는 차량들)의 작동을 제어하는 조직 등)와 연관된다.
일부 실시예에서, V2I 시스템(118)은 네트워크(112)를 통해 차량들(102), V2I 디바이스(110), 원격 AV 시스템(114), 및/또는 플릿 관리 시스템(116)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, V2I 시스템(118)은 네트워크(112)와 상이한 연결을 통해 V2I 디바이스(110)와 통신하도록 구성된다. 일부 실시예에서, V2I 시스템(118)은 서버, 서버들의 그룹, 및/또는 다른 유사한 디바이스들을 포함한다. 일부 실시예에서, V2I 시스템(118)은 지자체 또는 사설 기관(예를 들면, V2I 디바이스(110) 등을 유지 관리하는 사설 기관)과 연관된다.
도 1에 예시된 요소들의 수 및 배열은 예로서 제공된다. 도 1에 예시된 것보다, 추가적인 요소들, 더 적은 요소들, 상이한 요소들 및/또는 상이하게 배열된 요소들이 있을 수 있다. 추가적으로 또는 대안적으로, 환경(100)의 적어도 하나의 요소는 도 1의 적어도 하나의 상이한 요소에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다. 추가적으로 또는 대안적으로, 환경(100)의 적어도 하나의 요소 세트는 환경(100)의 적어도 하나의 상이한 요소 세트에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다.
이제 도 2를 참조하면, 차량(200)은 자율 주행 시스템(202), 파워트레인 제어 시스템(204), 조향 제어 시스템(206), 및 브레이크 시스템(208)을 포함한다. 일부 실시예에서, 차량(200)은 차량(102)(도 1 참조)과 동일하거나 유사하다. 일부 실시예에서, 차량(102)은 자율 주행 능력을 가질 수 있다(예를 들면, 완전 자율 주행 차량들(예를 들면, 인간 개입에 의존하지 않는 차량들), 고도 자율 주행 차량들(예를 들면, 특정 상황들에서 인간 개입에 의존하지 않는 차량들) 등을, 제한 없이, 포함한, 차량(200)이 인간 개입 없이 부분적으로 또는 완전히 작동될 수 있게 하는 적어도 하나의 기능, 특징, 디바이스 등을 구현할 수 있다). 완전 자율 주행 차량들 및 고도 자율 주행 차량들에 대한 상세한 설명에 대해서는, 그 전체가 참고로 포함되는, SAE International's standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems를 참조할 수 있다. 일부 실시예에서, 차량(200)은 자율 주행 플릿 관리자 및/또는 라이드 셰어링 회사와 연관된다.
자율 주행 시스템(202)은 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 및 마이크로폰들(202d)과 같은 하나 이상의 디바이스를 포함하는 센서 스위트(sensor suite)를 포함한다. 일부 실시예에서, 자율 주행 시스템(202)은 보다 많거나 보다 적은 디바이스들 및/또는 상이한 디바이스들(예를 들면, 초음파 센서들, 관성 센서들, GPS 수신기들(아래에서 논의됨), 차량(200)이 주행한 거리의 표시와 연관된 데이터를 생성하는 주행 거리 측정 센서들 등)을 포함할 수 있다. 일부 실시예에서, 자율 주행 시스템(202)은 자율 주행 시스템(202)에 포함된 하나 이상의 디바이스를 사용하여 본원에서 기술되는 환경(100)과 연관된 데이터를 생성한다. 자율 주행 시스템(202)의 하나 이상의 디바이스에 의해 생성되는 데이터는 차량(200)이 위치하는 환경(예를 들면, 환경(100))을 관측하기 위해 본원에 기술된 하나 이상의 시스템에 의해 사용될 수 있다. 일부 실시예에서, 자율 주행 시스템(202)은 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f), 및 드라이브 바이 와이어(drive-by-wire, DBW) 시스템(202h)을 포함한다.
카메라들(202a)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f) 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 카메라들(202a)은 물리적 대상체들(예를 들면, 자동차들, 버스들, 연석들, 사람들 등)을 포함하는 이미지들을 캡처하기 위한 적어도 하나의 카메라(예를 들면, CCD(charge-coupled device)와 같은 광 센서를 사용하는 디지털 카메라, 열 카메라, 적외선(IR) 카메라, 이벤트 카메라 등)를 포함한다. 일부 실시예에서, 카메라(202a)는 카메라 데이터를 출력으로서 생성한다. 일부 예에서, 카메라(202a)는 이미지와 연관된 이미지 데이터를 포함하는 카메라 데이터를 생성한다. 이 예에서, 이미지 데이터는 이미지에 대응하는 적어도 하나의 파라미터(예를 들면, 노출, 밝기 등과 같은 이미지 특성들, 이미지 타임스탬프 등)를 명시할 수 있다. 그러한 예에서, 이미지는 한 형식(예를 들면, RAW, JPEG, PNG 등)으로 되어 있을 수 있다. 일부 실시예에서, 카메라(202a)는 입체시(stereopsis)(스테레오 비전(stereo vision))를 위해 이미지들을 캡처하도록 차량 상에 구성된(예를 들면, 차량 상에 위치한) 복수의 독립적인 카메라들을 포함한다. 일부 예에서, 카메라(202a)는 복수의 카메라들을 포함하고, 이 복수의 카메라들은 이미지 데이터를 생성하고 이미지 데이터를 자율 주행 차량 컴퓨터(202f) 및/또는 플릿 관리 시스템(예를 들면, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템)으로 전송한다. 그러한 예에서, 자율 주행 차량 컴퓨터(202f)는 적어도 2 개의 카메라로부터의 이미지 데이터에 기초하여 복수의 카메라들 중 적어도 2 개의 카메라의 시야 내의 하나 이상의 대상체까지의 깊이를 결정한다. 일부 실시예에서, 카메라들(202a)은 카메라들(202a)로부터 일정 거리(예를 들면, 최대 100 미터, 최대 1 킬로미터 등) 내의 대상체들의 이미지들을 캡처하도록 구성된다. 그에 따라, 카메라들(202a)은 카메라들(202a)로부터 하나 이상의 거리에 있는 대상체들을 인지하도록 최적화된 센서들 및 렌즈들과 같은 특징부들을 포함한다.
일 실시예에서, 카메라(202a)는 시각적 내비게이션 정보를 제공하는 하나 이상의 교통 신호등, 거리 표지판 및/또는 다른 물리적 대상체와 연관된 하나 이상의 이미지를 캡처하도록 구성된 적어도 하나의 카메라를 포함한다. 일부 실시예에서, 카메라(202a)는 하나 이상의 이미지와 연관된 교통 신호등 데이터(TLD 데이터)를 생성한다. 일부 예에서, 카메라(202a)는 한 형식(예를 들면, RAW, JPEG, PNG 등)을 포함하는 하나 이상의 이미지와 연관된 TLD 데이터를 생성한다. 일부 실시예에서, TLD 데이터를 생성하는 카메라(202a)는, 카메라(202a)가 가능한 한 많은 물리적 대상체들에 관한 이미지들을 생성하기 위해 넓은 시야를 갖는 하나 이상의 카메라(예를 들면, 광각 렌즈, 어안 렌즈, 대략 120도 이상의 시야각을 갖는 렌즈 등)를 포함할 수 있다는 점에서, 카메라들을 포함하는 본원에 기술된 다른 시스템들과 상이하다.
LiDAR(Laser Detection and Ranging) 센서들(202b)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f), 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. LiDAR 센서들(202b)은 광 방출기(예를 들면, 레이저 송신기)로부터 광을 송신하도록 구성된 시스템을 포함한다. LiDAR 센서들(202b)에 의해 방출되는 광은 가시 스펙트럼 밖에 있는 광(예를 들면, 적외선 광 등)을 포함한다. 일부 실시예에서, 작동 동안, LiDAR 센서들(202b)에 의해 방출되는 광은 물리적 대상체(예를 들면, 차량)와 조우하고 LiDAR 센서들(202b)로 다시 반사된다. 일부 구현예에서, LiDAR 센서들(202b)에 의해 방출되는 광은 광이 조우하는 물리적 대상체들을 투과하지 않는다. LiDAR 센서들(202b)은 광 방출기로부터 방출된 광이 물리적 대상체와 조우한 후에 그 광을 검출하는 적어도 하나의 광 검출기를 또한 포함한다. 일부 실시예에서, LiDAR 센서들(202b)과 연관된 적어도 하나의 데이터 프로세싱 시스템은 LiDAR 센서들(202b)의 시야에 포함된 대상체들을 나타내는 이미지(예를 들면, 포인트 클라우드, 결합된 포인트 클라우드(combined point cloud) 등)를 생성한다. 일부 예들에서, LiDAR 센서(202b)와 연관된 적어도 하나의 데이터 프로세싱 시스템은 물리적 대상체의 경계들, 물리적 대상체의 표면들(예를 들면, 표면들의 토폴로지) 등을 나타내는 이미지를 생성한다. 그러한 예에서, 이미지는 LiDAR 센서들(202b)의 시야 내의 물리적 대상체들의 경계들을 결정하는 데 사용된다.
레이더(radar, Radio Detection and Ranging) 센서들(202c)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f) 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 레이더 센서들(202c)은 전파들을 (펄스형으로 또는 연속적으로) 송신하도록 구성된 시스템을 포함한다. 레이더 센서들(202c)에 의해 송신되는 전파들은 미리 결정된 스펙트럼 내에 있는 전파들을 포함한다. 일부 실시예에서, 작동 동안, 레이더 센서들(202c)에 의해 송신되는 전파들은 물리적 대상체와 조우하고 레이더 센서들(202c)로 다시 반사된다. 일부 실시예에서, 레이더 센서들(202c)에 의해 전송되는 전파들이 일부 대상체들에 의해 반사되지 않는다. 일부 실시예에서, 레이더 센서들(202c)과 연관된 적어도 하나의 데이터 프로세싱 시스템은 레이더 센서들(202c)의 시야에 포함된 대상체들을 나타내는 신호들을 생성한다. 예를 들어, 레이더 센서(202c)와 연관된 적어도 하나의 데이터 프로세싱 시스템은 물리적 대상체의 경계들, 물리적 대상체의 표면들(예를 들면, 표면들의 토폴로지) 등을 나타내는 이미지를 생성한다. 일부 예들에서, 이미지는 레이더 센서들(202c)의 시야 내의 물리적 대상체들의 경계들을 결정하는 데 사용된다.
마이크로폰들(202d)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f) 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 마이크로폰들(202d)은 오디오 신호들을 캡처하고 오디오 신호들과 연관된(예를 들면, 이를 나타내는) 데이터를 생성하는 하나 이상의 마이크로폰(예를 들면, 어레이 마이크로폰, 외부 마이크로폰 등)을 포함한다. 일부 예들에서, 마이크로폰들(202d)은 트랜스듀서 디바이스들 및/또는 유사 디바이스들을 포함한다. 일부 실시예에서, 본원에 기술된 하나 이상의 시스템은 마이크로폰들(202d)에 의해 생성되는 데이터를 수신하고 데이터와 연관된 오디오 신호들에 기초하여 차량(200)을 기준으로 한 대상체의 위치(예를 들면, 거리 등)를 결정할 수 있다.
통신 디바이스(202e)는 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 자율 주행 차량 컴퓨터(202f), 안전 제어기(202g), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 예를 들어, 통신 디바이스(202e)는 도 3의 통신 인터페이스(314)와 동일하거나 유사한 디바이스를 포함할 수 있다. 일부 실시예에서, 통신 디바이스(202e)는 차량 대 차량(vehicle-to-vehicle, V2V) 통신 디바이스(예를 들면, 차량들 간의 데이터의 무선 통신을 가능하게 하는 디바이스)를 포함한다.
자율 주행 차량 컴퓨터(202f)는 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 통신 디바이스(202e), 안전 제어기(202g), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 자율 주행 차량 컴퓨터(202f)는 클라이언트 디바이스, 모바일 디바이스(예를 들면, 셀룰러 전화, 태블릿 등), 서버(예를 들면, 하나 이상의 중앙 프로세싱 유닛, 그래픽 프로세싱 유닛 등을 포함하는 컴퓨팅 디바이스) 등과 같은 디바이스를 포함한다. 일부 실시예에서, 자율 주행 차량 컴퓨터(202f)는 본원에 기술된 자율 주행 차량 컴퓨터(400)와 동일하거나 유사하다. 추가적으로 또는 대안적으로, 일부 실시예에서, 자율 주행 차량 컴퓨터(202f)는 자율 주행 차량 시스템(예를 들면, 도 1의 원격 AV 시스템(114)과 동일하거나 유사한 자율 주행 차량 시스템), 플릿 관리 시스템(예를 들면, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템), V2I 디바이스(예를 들면, 도 1의 V2I 디바이스(110)와 동일하거나 유사한 V2I 디바이스), 및/또는 V2I 시스템(예를 들면, 도 1의 V2I 시스템(118)과 동일하거나 유사한 V2I 시스템)과 통신하도록 구성된다.
안전 제어기(202g)는 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 안전 제어기(202g)는 차량(200)의 하나 이상의 디바이스(예를 들면, 파워트레인 제어 시스템(204), 조향 제어 시스템(206), 브레이크 시스템(208) 등)를 작동시키기 위한 제어 신호들을 생성 및/또는 송신하도록 구성된 하나 이상의 제어기(전기 제어기, 전기기계 제어기 등)를 포함한다. 일부 실시예에서, 안전 제어기(202g)는 자율 주행 차량 컴퓨터(202f)에 의해 생성 및/또는 송신되는 제어 신호들보다 우선하는(예를 들면, 이를 무시하는) 제어 신호들을 생성하도록 구성된다.
DBW 시스템(202h)은 통신 디바이스(202e) 및/또는 자율 주행 차량 컴퓨터(202f)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, DBW 시스템(202h)은 차량(200)의 하나 이상의 디바이스(예를 들면, 파워트레인 제어 시스템(204), 조향 제어 시스템(206), 브레이크 시스템(208) 등)를 작동시키기 위한 제어 신호들을 생성 및/또는 송신하도록 구성된 하나 이상의 제어기(예를 들면, 전기 제어기, 전기기계 제어기 등)를 포함한다. 추가적으로 또는 대안적으로, DBW 시스템(202h)의 하나 이상의 제어기는 차량(200)의 적어도 하나의 상이한 디바이스(예를 들면, 방향 지시등, 헤드라이트, 도어록, 윈도실드 와이퍼 등)를 작동시키기 위한 제어 신호들을 생성 및/또는 송신하도록 구성된다.
파워트레인 제어 시스템(204)은 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 파워트레인 제어 시스템(204)은 적어도 하나의 제어기, 액추에이터 등을 포함한다. 일부 실시예에서, 파워트레인 제어 시스템(204)은 DBW 시스템(202h)으로부터 제어 신호들을 수신하고, 파워트레인 제어 시스템(204)은 차량(200)이 전진하는 것을 시작하게 하고, 전진하는 것을 중지하게 하며, 후진하는 것을 시작하게 하고, 후진하는 것을 중지하게 하며, 한 방향으로 가속하게 하고, 한 방향으로 감속하게 하며, 좌회전을 수행하게 하고, 우회전을 수행하게 하는 등을 한다. 일 예에서, 파워트레인 제어 시스템(204)은 차량의 모터에 제공되는 에너지(예를 들면, 연료, 전기 등)가 증가하게 하거나, 동일하게 유지되게 하거나, 또는 감소하게 하여, 이에 의해 차량(200)의 적어도 하나의 바퀴가 회전하거나 회전하지 않게 한다.
조향 제어 시스템(206)은 차량(200)의 하나 이상의 바퀴를 회전시키도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 조향 제어 시스템(206)은 적어도 하나의 제어기, 액추에이터 등을 포함한다. 일부 실시예에서, 조향 제어 시스템(206)은 차량(200)이 좌측 또는 우측으로 방향 전환하게 하기 위해 차량(200)의 전면 2 개의 바퀴 및/또는 후면 2 개의 바퀴가 좌측 또는 우측으로 회전하게 한다.
브레이크 시스템(208)은 차량(200)이 속력을 감소시키게 하고/하거나 정지해 있는 채로 유지하게 하기 위해 하나 이상의 브레이크를 작동시키도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 브레이크 시스템(208)은 차량(200)의 대응하는 로터(rotor)에서 차량(200)의 하나 이상의 바퀴와 연관된 하나 이상의 캘리퍼(caliper)가 닫히게 하도록 구성되는 적어도 하나의 제어기 및/또는 액추에이터를 포함한다. 추가적으로 또는 대안적으로, 일부 예들에서, 브레이크 시스템(208)은 자동 긴급 제동(automatic emergency braking, AEB) 시스템, 회생 제동 시스템 등을 포함한다.
일부 실시예에서, 차량(200)은 차량(200)의 상태 또는 조건의 속성들을 측정 또는 추론하는 적어도 하나의 플랫폼 센서(명시적으로 예시되지 않음)를 포함한다. 일부 예들에서, 차량(200)은 GPS(global positioning system) 수신기, IMU(inertial measurement unit), 휠 속력 센서, 휠 브레이크 압력 센서, 휠 토크 센서, 엔진 토크 센서, 조향각 센서 등과 같은 플랫폼 센서들을 포함한다.
이제 도 3을 참조하면, 디바이스(300)의 개략도가 예시된다. 예시하는 바와 같이, 디바이스(300)는 프로세서(304), 메모리(306), 저장 컴포넌트(308), 입력 인터페이스(310), 출력 인터페이스(312), 통신 인터페이스(314), 및 버스(302)를 포함한다. 일부 실시예에서, 디바이스(300)는 차량(102)의 적어도 하나의 디바이스(예컨대, 차량(102)의 시스템의 적어도 하나의 디바이스), 및/또는 네트워크(112)의 하나 이상의 디바이스(예컨대, 네트워크(112)의 시스템의 하나 이상의 디바이스)에 대응한다. 일부 실시에서, 차량(102)의 하나 이상의 디바이스(예컨대, 차량(102)의 시스템의 하나 이상의 디바이스), 및/또는 네트워크(112)의 하나 이상의 디바이스(예컨대, 네트워크(112)의 시스템의 하나 이상의 디바이스)은 적어도 하나의 디바이스(300) 및/또는 디바이스(300)의 적어도 하나의 컴포넌트를 포함한다. 도 3에 도시하는 바와 같이, 디바이스(300)는 버스(302), 프로세서(304), 메모리(306), 저장 컴포넌트(308), 입력 인터페이스(310), 출력 인터페이스(312), 및 통신 인터페이스(314)를 포함한다.
버스(302)는 디바이스(300)의 컴포넌트들 간의 통신을 가능하게 하는 컴포넌트를 포함한다. 일부 경우들에서, 프로세서(304)는 적어도 하나의 기능을 수행하도록 프로그래밍될 수 있는, 프로세서(예를 들면, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 가속 프로세싱 유닛(APU) 등), 마이크로폰, 디지털 신호 프로세서(DSP), 및/또는 임의의 프로세싱 컴포넌트(예를 들면, FPGA(field-programmable gate array), ASIC(application specific integrated circuit) 등)를 포함한다. 메모리(306)는 프로세서(304)가 사용할 데이터 및/또는 명령어들을 저장한, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 및/또는 다른 유형의 동적 및/또는 정적 저장 디바이스(예를 들면, 플래시 메모리, 자기 메모리, 광학 메모리 등)를 포함한다.
저장 컴포넌트(308)는 디바이스(300)의 작동 및 사용에 관련된 데이터 및/또는 소프트웨어를 저장한다. 일부 예들에서, 저장 컴포넌트(308)는 하드 디스크(예를 들면, 자기 디스크, 광학 디스크, 광자기 디스크, 솔리드 스테이트 디스크 등), CD(compact disc), DVD(digital versatile disc), 플로피 디스크, 카트리지, 자기 테이프, CD-ROM, RAM, PROM, EPROM, FLASH-EPROM, NV-RAM 및/또는 다른 유형의 컴퓨터 판독 가능 매체를, 대응하는 드라이브와 함께, 포함한다.
입력 인터페이스(310)는 디바이스(300)가, 예컨대, 사용자 입력(예를 들면, 터치스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 마이크로폰, 카메라 등)을 통해, 정보를 수신할 수 있게 하는 컴포넌트를 포함한다. 추가적으로 또는 대안적으로, 일부 실시예에서, 입력 인터페이스(310)는 정보를 감지하는 센서(예를 들면, GPS(global positioning system) 수신기, 가속도계, 자이로스코프, 액추에이터 등)를 포함한다. 출력 인터페이스(312)는 디바이스(300)로부터의 출력 정보를 제공하는 컴포넌트(예를 들면, 디스플레이, 스피커, 하나 이상의 발광 다이오드(LED) 등)를 포함한다.
일부 실시예에서, 통신 인터페이스(314)는 디바이스(300)가 유선 연결, 무선 연결, 또는 유선 연결과 무선 연결의 조합을 통해 다른 디바이스들과 통신할 수 있게 하는 트랜시버 유사 컴포넌트(예를 들면, 트랜시버, 개별 수신기 및 송신기 등)를 포함한다. 일부 예에서, 통신 인터페이스(314)는 디바이스(300)가 다른 디바이스로부터 정보를 수신하고/하거나 다른 디바이스에 정보를 제공할 수 있게 한다. 일부 예에서, 통신 인터페이스(314)는 이더넷 인터페이스, 광학 인터페이스, 동축 인터페이스, 적외선 인터페이스, RF(radio frequency) 인터페이스, USB(universal serial bus) 인터페이스, Wi-Fi® 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함한다.
일부 실시예에서, 디바이스(300)는 본원에 기술된 하나 이상의 프로세스를 수행한다. 디바이스(300)는 프로세서(304)가, 메모리(305) 및/또는 저장 컴포넌트(308)와 같은, 컴퓨터 판독 가능 매체에 의해 저장된 소프트웨어 명령어들을 실행하는 것에 기초하여 이들 프로세스를 수행한다. 컴퓨터 판독 가능 매체(예를 들면, 비일시적 컴퓨터 판독 가능 매체)는 본원에서 비일시적 메모리 디바이스로서 정의된다. 비일시적 메모리 디바이스는 단일의 물리 저장 디바이스 내부에 위치한 메모리 공간 또는 다수의 물리 저장 디바이스들에 걸쳐 분산된 메모리 공간을 포함한다.
일부 실시예에서, 소프트웨어 명령어들은 통신 인터페이스(314)를 통해 다른 컴퓨터 판독 가능 매체로부터 또는 다른 디바이스로부터 메모리(306) 및/또는 저장 컴포넌트(308)로 판독된다. 실행될 때, 메모리(306) 및/또는 저장 컴포넌트(308)에 저장된 소프트웨어 명령어들은 프로세서(304)로 하여금 본원에 기술된 하나 이상의 프로세스를 수행하게 한다. 추가적으로 또는 대안적으로, 본원에서 기술하는 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 결합하여 고정 배선 회로부(hardwired circuitry)가 사용된다. 따라서, 본원에 기술된 실시예들은, 달리 명시적으로 언급되지 않는 한, 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
메모리(306) 및/또는 저장 컴포넌트(308)는 데이터 스토리지 또는 적어도 하나의 데이터 구조(예를 들면, 데이터베이스 등)를 포함한다. 디바이스(300)는 데이터 스토리지 또는 메모리(306) 또는 저장 컴포넌트(308) 내의 적어도 하나의 데이터 구조로부터 정보를 수신하는 것, 그에 정보를 저장하는 것, 그에게로 정보를 통신하는 것, 또는 그에 저장된 정보를 검색하는 것을 할 수 있다. 일부 예들에서, 정보는 네트워크 데이터, 입력 데이터, 출력 데이터, 또는 이들의 임의의 조합을 포함한다.
일부 실시예에서, 디바이스(300)는 메모리(306)에 그리고/또는 다른 디바이스(예를 들면, 디바이스(300)와 동일하거나 유사한 다른 디바이스)의 메모리에 저장된 소프트웨어 명령어들을 실행하도록 구성된다. 본원에서 사용되는 바와 같이, "모듈"이라는 용어는, 프로세서(304)에 의해 그리고/또는 다른 디바이스(예를 들면, 디바이스(300)와 동일하거나 유사한 다른 디바이스)의 프로세서에 의해 실행될 때, 디바이스(300)(예를 들면, 디바이스(300)의 적어도 하나의 컴포넌트)로 하여금 본원에 기술된 하나 이상의 프로세스를 수행하게 하는 메모리(306)에 그리고/또는 다른 디바이스의 메모리에 저장된 적어도 하나의 명령어를 지칭한다. 일부 실시예에서, 모듈은 소프트웨어, 펌웨어, 하드웨어 등으로 구현된다.
도 3에 예시된 컴포넌트들의 수 및 배열은 예로서 제공된다. 일부 실시예에서, 디바이스(300)는 도 3에 예시된 것보다, 추가적인 컴포넌트들, 더 적은 컴포넌트들, 상이한 컴포넌트들, 또는 상이하게 배열된 컴포넌트들을 포함할 수 있다. 추가적으로 또는 대안적으로, 디바이스(300)의 컴포넌트 세트(예를 들면, 하나 이상의 컴포넌트)는 디바이스(300)의 다른 컴포넌트 또는 다른 컴포넌트 세트에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다.
이제 도 4를 참조하면, 자율 주행 차량 컴퓨터(400)("AV 스택"이라고도 함)의 예시적인 블록도가 예시된다. 예시하는 바와 같이, 자율 주행 차량 컴퓨터(400)는 인지 시스템(402)(때때로 인지 모듈이라고 지칭됨), 계획 시스템(planning system)(404)(때때로 계획 모듈이라고 지칭됨), 로컬화 시스템(localization system)(406)(때때로 로컬화 모듈이라고 지칭됨), 제어 시스템(408)(때때로 제어 모듈이라고 지칭됨), 및 데이터베이스(410)를 포함한다. 일부 실시예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 제어 시스템(408), 및 데이터베이스(410)는 차량의 자동 운행 시스템(예컨대, 차량(200)의 자율 주행 차량 컴퓨터(202f))에 포함 및/또는 구현된다. 추가로 또는 대안으로, 일부 실시예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 제어 시스템(408), 및 데이터베이스(410)는 하나 이상의 스탠드얼론 시스템(예컨대, 자율 주행 차량 컴퓨터(400) 등과 동일하거나 유사한 하나 이상의 시스템)에 포함된다. 일부 예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 제어 시스템(408), 및 데이터베이스(410)는 본원에 기술하는 바와 같이 차량 내에 위치한 하나 이상의 스탠드얼론 시스템 및/또는 적어도 하나의 원격 시스템에 포함된다. 일부 실시예에서, 자율 주행 차량 컴퓨터(400)에 포함된 시스템의 일부 및/또는 전부는 소프트웨어(예컨대, 메모리에 저장된 소프트웨어 명령어로), 컴퓨터 하드웨어(예컨대, 마이크로프로세서, 마이크로컨트롤러, ASIC(application-specific integrated circuit), 필드 프로그래머블 게이트 어레이(FPGA) 등에 의해), 또는 컴퓨터 소프트웨어 및 컴퓨터 하드웨어의 조합으로 구현된다. 또한, 일부 실시예에서 자율 주행 차량 컴퓨터(400)는 원격 시스템(예를 들어, 원격 AV 시스템(114)과 동일하거나 유사한 자율 주행 차량 시스템, 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템(116), V2I 시스템(118)과 동일하거나 유사한 V2I 시스템 등)과 통신하도록 구성된다.
일부 실시예에서, 인지 시스템(402)은 환경내 적어도 하나의 물리적 대상체와 연관된 데이터(예를 들어, 인지 시스템(402)에 의해 적어도 하나의 물리적 대상체를 검출하기 위해 사용되는 데이터)를 수신하고 적어도 하나의 물리적 대상체를 분류한다. 일부 예에서, 인지 시스템(402)은 적어도 하나의 카메라(예를 들어, 카메라들(202a))에 의해 캡처된 이미지 데이터를 수신하고, 이미지는 적어도 하나의 카메라의 시야 내에서 하나 이상의 물리적 대상체와 연관된다(예를 들어, 하나 이상의 물리적 대상체를 표현한다). 그러한 예에서, 인지 시스템(402)은 물리적 대상체(예를 들어, 자전거, 차량, 교통 표지판, 보행자 등)의 하나 이상의 그룹화에 기초하여 적어도 하나의 물리적 대상체를 분류한다. 일부 실시예에서, 인지 시스템(402)은 인지 시스템(402)이 물리적 대상체를 분류하는 것에 기초하여 물리적 객체의 대상체의 분류와 연관된 데이터를 계획 시스템(404)에 전송한다.
일부 실시예에서, 계획 시스템(404)은 목적지와 연관된 데이터를 수신하고 차량(예를 들어, 차량(102))이 목적지를 향해 이동할 수 있는 적어도 하나의 루트(예를 들어, 경로(106))와 연관된 데이터를 생성한다. 일부 실시예에서, 계획 시스템(404)은 인지 시스템(402)으로부터 데이터(예를 들어, 전술한 물리적 대상체의 분류와 연관된 데이터)를 주기적으로 또는 연속적으로 수신하고, 계획 시스템(404)은 인지 시스템(402)에 의해 생성된 데이터에 기초하여 적어도 하나의 궤적을 업데이트하거나 적어도 하나의 상이한 궤적을 생성한다. 일부 실시예에서, 계획 시스템(404)은 로컬화 시스템(406)으로부터 차량(예컨대, 차량(102))의 업데이트된 위치와 연관된 데이터를 수신하고, 계획 시스템(404)은 로컬화 시스템(406)에 의해 생성된 데이터에 기초하여 적어도 하나의 궤적을 업데이트하거나 적어도 하나의 상이한 궤적을 생성한다.
일부 실시예에서, 로컬화 시스템(406)은 영역 내의 차량(예를 들어, 차량(102))의 위치와 연관된(예를 들어, 위치를 나타내는) 데이터를 수신한다. 일부 예에서, 로컬화 시스템(406)은 적어도 하나의 LiDAR 센서(예를 들어, LiDAR 센서(202b))에 의해 생성된 적어도 하나의 포인트 클라우드와 연관된 LiDAR 데이터를 수신한다. 특정 예에서, 로컬화 시스템(406)은 다수의 LiDAR 센서로부터 적어도 하나의 포인트 클라우드와 연관된 데이터를 수신하고 로컬화 시스템(406)은 포인트 클라우드 각각에 기초하여 결합된 포인트 클라우드를 생성한다. 이들 예에서, 로컬화 시스템(406)은 적어도 하나의 포인트 클라우드 또는 결합된 포인트 클라우드를 데이터베이스(410)에 저장된 영역의 2D(2차원) 및/또는 3D(3차원) 맵과 비교한다. 그런 다음, 로컬화 시스템(406)은 로컬화 시스템(406)이 적어도 하나의 포인트 클라우드 또는 결합된 포인트 클라우드를 맵과 비교하는 것에 기초하여 영역내 차량의 위치를 결정한다. 일부 실시예에서, 맵은 차량의 운행 이전에 생성된 영역의 결합된 포인트 클라우드를 포함한다. 일부 실시예에서, 맵은, 제한 없이, 도로 기하학적 속성들의 고정밀 맵, 도로망 연결 속성들을 기술하는 맵, 도로 물리적 속성들(예컨대, 교통 속력, 교통량, 차량 교통 차선과 자전거 타는 사람 교통 차선의 수, 차선 폭, 차선 교통 방향, 또는 차선 마커 유형 및 위치, 또는 이들의 조합)을 기술하는 맵, 및 도로 특징부, 예컨대, 횡단보도, 교통 표지판 또는 다양한 유형의 다른 주행 신호들의 공간적 위치들을 기술하는 맵을 포함한다. 일부 실시예에서, 맵은 인지 시스템에 의해 수신된 데이터에 기초하여 실시간으로 생성된다.
다른 예에서, 로컬화 시스템(406)은 GPS(global positioning system) 수신기에 의해 생성된 GNSS(Global Navigation Satellite System) 데이터를 수신한다. 일부 예에서, 로컬화 시스템(406)은 영역내 차량의 위치와 연관된 GNSS 데이터를 수신하고 로컬화 시스템(406)은 영역내 차량의 위도 및 경도를 결정한다. 이러한 예에서, 로컬화 시스템(406)은 차량의 위도 및 경도에 기초하여 영역내 차량의 위치를 결정한다. 일부 실시예에서, 로컬화 시스템(406)은 차량의 위치와 연관된 데이터를 생성한다. 일부 예에서, 로컬화 시스템(406)은 로컬화 시스템(406)이 차량의 위치를 결정하는 것에 기초하여 차량의 위치와 연관된 데이터를 생성한다. 그러한 예에서, 차량의 위치와 연관된 데이터는 차량의 위치에 대응하는 하나 이상의 의미론적 특성(semantic properties)과 연관된 데이터를 포함한다.
일부 실시예에서, 제어 시스템(408)은 계획 시스템(404)으로부터 적어도 하나의 궤적과 연관된 데이터를 수신하고 제어 시스템(408)은 차량의 작동을 제어한다. 일부 예에서, 제어 시스템(408)은 계획 시스템(404)으로부터 적어도 하나의 궤적과 연관된 데이터를 수신하고 제어 시스템(408)은 파워트레인 제어 시스템(예를 들어, DBW 시스템(202h), 파워트레인 제어 시스템(204) 등), 조향 제어 시스템(예컨대, 조향 제어 시스템(206)), 및/또는 브레이크 시스템(예컨대, 브레이크 시스템(208))이 작동하게 하기 위하여 제어 신호를 생성 및 전송함으로써 차량의 작동을 제어한다. 일 예에서, 궤적이 좌회전을 포함하는 경우, 제어 시스템(408)은 조향 제어 시스템(206)이 차량(200)의 조향각을 조정하게 하여 차량(200)이 좌회전하게 하는 제어 신호를 전송한다. 추가적으로 또는 대안적으로, 제어 시스템(408)은 차량(200)의 다른 디바이스(예를 들어, 헤드라이트, 방향 지시등, 도어록, 윈드실드 와이퍼 등)로 하여금 상태를 변경하게 하는 제어 신호를 생성 및 전송한다.
일부 실시예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델(예를 들어, 적어도 하나의 멀티레이어 퍼셉트론(MLP, multilayer perceptron), 적어도 하나의 컨볼루션 신경망(CNN, convolutional neural network), 적어도 하나의 순환 신경망(RNN, recurrent neural network), 적어도 하나의 자동인코더, 적어도 하나의 변환기 등)을 구현한다. 일부 예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델을, 단독으로 또는 전술한 시스템 중 하나 이상과의 조합으로 구현한다. 일부 예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델을, 파이프라인(예를 들어, 환경내 위치한 하나 이상의 대상체를 식별하기 위한 파이프라인 등)의 일부로서 구현한다. 본 개시내용을 흐리게 하지 않기 위해 머신 러닝 모델의 구현예의 일례는 생략된다.
데이터베이스(410)는 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406) 및/또는 제어 시스템(408)에 대해 송수신되거나 이들에 의해 업데이트되는 데이터를 저장한다. 일부 예들에서, 데이터베이스(410)는 작동에 관련된 데이터 및/또는 소프트웨어를 저장하고 하나 이상의 자율 주행 컴퓨터(400)를 사용하는 저장 컴포넌트(예를 들어, 도 3의 저장 컴포넌트(308)와 동일하거나 유사한 저장 컴포넌트)를 포함한다. 일부 실시예에서, 데이터베이스(410)는 적어도 하나의 영역의 2D 및/또는 3D 맵과 연관된 데이터를 저장한다. 일부 예에서, 데이터베이스(410)는 도시의 일부, 다수의 도시의 다수의 부분, 다수의 도시, 카운티, 주(state), 국가(State)(예를 들어, 나라)의 2D 및/또는 3D 맵과 연관된 데이터를 저장한다. 이러한 예에서, 차량(예를 들어, 차량(102) 및/또는 차량(200)과 동일하거나 유사한 차량)은 하나 이상의 주행 가능한 영역(예를 들어, 단일 차선 도로, 다중 차선 도로, 고속도로, 뒷길, 오프로드 트레일 등)를 따라 주행할 수 있고, 적어도 하나의 LiDAR 센서(예를 들어, LiDAR 센서(202b)와 동일하거나 유사한 LiDAR 센서)로 하여금 적어도 하나의 LiDAR 센서의 시야에 포함된 대상체를 나타내는 이미지와 연관된 데이터를 생성하게 할 수 있다.
일부 실시예에서, 데이터베이스(410)는 복수의 디바이스를 통해 구현될 수 있다. 일부 예에서, 데이터베이스(410)는 차량(예를 들어, 차량(102) 및/또는 차량(200)과 동일하거나 유사한 차량), 자율 주행 차량 시스템(예를 들어, 원격 AV 시스템(114)과 유사하거나 동일한 자율 주행 차량 시스템), 플릿 관리 시스템(예를 들어, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템), V2I 시스템(예를 들어, 도 1의 V2I 시스템(118)과 동일하거나 유사한 V2I 시스템) 등에 포함된다.
모델 예측 제어 시스템
도 5a는 모델 예측 제어 시스템(500)(본원에서는 "MPC 시스템(500)"이라고 함)의 일례를 도시하는 블록도이다. MPC 시스템(500)은 그리드에서 양방향 경로 최적화를 사용하여 자율 주행 차량에 대한 주행 경로를 결정할 수 있다. MPC 시스템(500)은 비구조화 영역 계획 시스템(502) 및 제어 시스템(408)을 포함할 수 있다. 비구조화 영역 계획 시스템(502)은 본원에서 설명한 계획 시스템(404)의 일부일 수도 또는 분리된 부분일 수도 있다. 비구조화 영역 계획 시스템(502)은 자율 주행 차량에 대한 주행 경로를 결정할 수 있고 제어 시스템(408)은 결정된 주행 경로에 따라 자율 주행 차량의 제어를 실행할 수 있다.
비구조화 영역 계획 시스템(502)은 인지 시스템(402) 및/또는 로컬화 시스템(406)으로부터 주기적으로 또는 계속적으로 차량 환경 데이터(504)를 수신할 수 있다. 차량 환경 데이터(504)는 인지 시스템(402)로부터의 데이터(예컨대, 전술한 물리적 대상체의 분류 및 대상체 위치와 연관된 데이터) 및/또는 로컬화 시스템(406)으로부터의 차량(예컨대, 차량(102))의 업데이트된 위치와 연관된 데이터를 포함할 수 있다.
도 5b와 도 5c를 참조하면, 도 5b와 도 5c는 MPC 시스템(500)이 조우할 수 있는 예시적인 환경(506A 및 506B)을 도시한다. 각각의 환경(506A 및 506B)에서, MPC 시스템(500)은 환경내 에고(ego)("자차량(508)")의 상태(위치, 배향, 속도, 등)를 결정할 수 있다. 예를 들면, MPC 시스템(500)은 로컬화 시스템(406)이 지시하는 바와 같이, 차량 환경 데이터(504)로부터 자차량(508)의 상태를 취득할 수 있다. MPC 시스템(500)은 다른 차량들(510)의 상태(위치, 배향, 속도, 등); 다른 대상체들(512)(사람 등과 같은 움직이는 대상체, 또는 물리적 환경과 같은 고정 대상체, 등)의 상태(위치, 배향, 속도, 등); 환경의 로컬 경계(514); 주행 방향(516); 및/또는 타겟 포지션(518)의 위치도 결정할 수 있다. MPC 시스템(500)은 차량 환경 데이터(504)로부터 또/또는 데이터베이스(410)로부터의 2D 및/또는 3D 맵에 기초하여 다른 차량들(510)의 상태, 다른 대상체(512)의 상태, 로컬 경계(514), 및/또는 주행 방향(516)을 취득할 수 있다. 예를 들어, 다른 차량들(510) 및 움직이는 다른 대상체들(512)의 상태는 인지 시스템(402)에 의해 검출, 추적, 및 보고될 수 있다. 예를 들어, 고정 대상체의 상태, 로컬 경계(514), 및/또는 주행 방향(516)은 저장되고 2D 및/또는 3D 맵으로부터 추출될 수 있다. MPC 시스템(500)은 사용자 입력(예컨대, 입력 인터페이스(310)를 통해) 또는 다른 시스템(예컨대, 통신 인터페이스(314))으로부터, 예컨대 플릿 관리 시스템(116) 또는 원격 AV 시스템(114)과 같은 사용자 디바이스 또는 원격 서비스 등으로부터, 타겟 포지션(518)의 위치를 결정할 수 있다.
환경(506A)은 차선 환경 등과 같은 구조화 환경일 수 있다. 환경(506A)은 명확하게 정의될 수 있고 조종은 결정하기가 비교적 용이할 수 있다(차선 내에서의 약간의 조정, 차선 변경, 또는 어느 한 구조화 환경으로부터 다른 것으로의 회전). 환경(506B)은 주차 환경, 공유 환경(예컨대, 보행자가 있음)과 같은 비구조화 환경(unstructured environment), 또는 무구조화 환경(non-structured environment)(예컨대, 환경(506A)과 같이, 구조화로 분류되지 않는 환경)일 수 있다. 환경(506B)의 경우, 해당 환경이 덜 정의되어 있고(예컨대, 환경을 관리하기 위한 경계, 유사 차선, 또는 규칙이 적음) (경계와 움직이는 대상체 사이, 등등에서) 자율 주행 차량이 갇힐 수 있으므로 조종이 더 어려울 수 있다. 말하자면, 환경(506B)에서, MPC 시스템(500)은 특정 도로 구조 및/또는 예측 가능한 이동 패턴을 따르기 위해 다른 에이전트를 의지하지 못할 수 있다. 이에, 환경(506B)에는 고유의 비구조성이 존재한다.
일부 경우에, MPC 시스템(500)(또는 계획 시스템(404))은 환경 조건에 기초하여 차량이 비구조화 환경에 있는지 또는 구조화 환경에 있는지 결정하는 것에 기초하여 구조화 모드 또는 비구조화 모드 사이에서 동작 모드를 전환할 수 있다. 예를 들어, MPC 시스템(500)(또는 계획 시스템(404))은 환경의 소정 특성이 소정의 환경 조건(예컨대, 차선 표시 존재, 차선 내의 자차량 위치, 및/또는 등)을 만족한다고 결정함으로써, 자차량(508)이 구조화 환경 내에 있는지를 결정할 수 있다. 그렇다면, MPC 시스템(500)은 구조화 모드에서 동작할 것을 결정할 수 있고; 그렇지 않다면, MPC 시스템(500)은 비구조화 모드에서 동작할 것을 결정할 수 있다. 구조화 모드의 동작 방법의 상세는 본원에서 설명하는 비구조화 모드의 용이한 이해를 위해 생략된다.
일부 경우에, MPC 시스템(500)(또는 계획 시스템(404))은 구조화 모드 및 비구조화 모드 둘 다로부터의 출력을 고려할 수 있다. 일부 경우에, MPC 시스템(500)은 구조화 모드가 솔루션을 찾을 수 있는지를 결정할 수 있고 그렇지 않다면 비구조화 모드에서 진행된다. 일부 경우에, MPC 시스템(500)은 (둘 다 솔루션을 결정하는 경우) 어떤 것이 더 나은 솔루션인지 평가할 수 있다. 예를 들어, 구조화 모드로부터의 결정된 주행 경로와 비구조화 모드로부터의 주행 경로가 채점될 수 있고 더 높은 점수를 갖는 주행 경로가 선택될 수 있다. 예를 들면, 일부 경우에, MPC 시스템(500)은 솔루션의 컴포트(comfort) 메트릭, 솔루션이 목적지까지 자율 주행 차량을 인도하는 속도, 장면 내의 에이전트에 대한 안전 메트릭, 및/또는 솔루션에서의 충돌의 존재와 같은 채점 규칙에 기초하여 점수를 결정할 수 있다.
도 5a를 참조하면, MPC 시스템(500)에 의해 비구조화 모드가 실행되는 경우에, 비구조화 모드에서는 MPC 시스템(500)이 비구조화 영역 계획 시스템(502)을 사용하여 주행 경로를 결정하게 할 수 있다. 비구조화 영역 계획 시스템(502)은 참조 경로 엔진(502A), 점유 맵 엔진(502B), 및 주행 경로 엔진(502C)을 포함할 수 있다. 본원에서 설명한 바와 같이, MPC 시스템(500)은 차량의 환경과 연관된 차량 환경 데이터를 수신할 수 있다.
참조 경로 엔진(502A)은 차량에 대한 목적지 위치(다르게는 "타겟 포지션(518)"이라고 함)까지의 참조 경로(704)(도 7a와 도 7b 참조)를 생성할 수 있다. 예를 들면, 참조 경로 엔진(502A)은 차량 환경 데이터에 기초하여 목적지 위치까지의 참조 경로(704)를 생성할 수 있다.
일부 경우에, 참조 경로 엔진(502A)은 지리 좌표계(604)에서 또는 점유 맵 좌표계(608)에서 참조 경로(704)를 결정할 수 있다(도 6a 참조, 후술함). 참조 경로(704)가 지리 좌표계(604)에서 결정되는 경우에, 참조 경로 엔진(502A)은 반복해서 참조 경로(704)를 계산하고 대상체와의 충돌의 발생 여부를 결정할 수 있다. 예를 들면, 참조 경로 엔진(502A)은 참조 경로(704)를 점유 맵 좌표계(608)로 변환하고 점유 맵 좌표계(608)에서 대상체와의 충돌이 발생하지 않음을 확인할 수 있다. 참조 경로(704)가 점유 맵 좌표계(608)에서 결정되는 경우에, 참조 경로 엔진(502A)은 반복해서 참조 경로(704)를 계산하고 대상체와의 충돌의 발생 여부를 결정할 수 있다. 일부 경우에, 대상체와의 충돌의 발생 여부를 결정하기 위해, 참조 경로 엔진(502A)은 자차량(508)의 풋프린트의 임의의 포인트가 점유 맵의 임의의 대상체의 위치와 겹치는지(예컨대, 임계 거리 내에 있는지)를 결정할 수 있다. 이런 식으로, 참조 경로(704)는 점유 맵에서(점유 맵 좌표계(608)에서) 표현될 수 있다.
일부 경우에, 참조 경로 엔진(502A)은 샘플링 기반 루틴에 의해 참조 경로(704)를 결정할 수 있다. 참조 경로 엔진(502A)은 참조 경로(704)를, 반복해서 결정하고, MPC 시스템(500)이 참조 경로(704)의 최신 결정에 액세스하는 경우에는, MPC 시스템(500)의 주행 경로의 결정과는 분리되게(예컨대, 비동기적으로), 결정할 수 있다. 따라서, 이런 식으로, MPC 시스템(500)은 경로 최적화(예컨대, 주행 경로를 결정) 및 경로 계획(예컨대, 참조 경로(704)를 결정)에 대해 동일한 점유 맵에 의지할 수 있다.
일부 경우에, 참조 경로 엔진(502A)은 점유 맵에 표현되는 정적 대상체를 고려해서 참조 경로(704)를 결정할 수 있다. 예를 들면, 참조 경로 엔진(502A)(또는 후술하는 점유 맵 엔진(502B))은 대상체가 정적인지(예컨대, 대상체가 임계 기간보다 더 많이 움직이지 않는지) 결정할 수 있고, 그렇다면 점유 맵에 정적 대상체를 추가할 수 있다. 이런 식으로, 경로 계획과 경로 최적화 둘 다 정적 대상체와의 충돌을 피할 수 있다. 참조 경로 엔진(502A)은 샘플링 기반의 루틴을 실행하면서, 개별 결정(예컨대, 자차량(508)이 대상체를 좌측 또는 우측으로 지나가야 하는지)을 평가함으로써 주행 경로(714)를 결정할 수 있다. 반면, 주행 경로를 결정하면서, MPC 시스템(500)은 참조 경로(704)를 중심으로 최적의 운전을 고려하여 주행 경로를 결정할 수 있다.
점유 맵 엔진(502B)은 차량 환경 데이터(504)를 사용하여 환경의 점유 맵을 결정할 수 있다. 예를 들면, 점유 맵은 환경내 적어도 하나의 장애물을 식별할 수 있다. 점유 맵은 또한 적어도 자차량(508)의 현재 상태 및 타겟 포지션(518)도 식별할 수 있다. 점유 맵은 환경내 공간적 제약(예컨대, 자차량(508), 다른 차량(510), 다른 대상체(512), 로컬 경계(514) 등)의 그리드 표현일 수 있다. 예를 들면, 점유 맵 엔진(502B)은 자차량(508)의 상태, 다른 차량(510)의 상태, 다른 대상체(512)의 상태, 환경의 로컬 경계(514), 주행 방향(516), 및/또는 타겟 포지션(518)의 위치를 반복해서 취득함으로써(본원에서는 "표현 데이터"라고도 함) 점유 맵을 결정할 수 있다. 점유 맵 엔진(502B)은 지리 좌표계(604)로부터의 표현 데이터를 점유 맵 좌표계(608)로 변환하여 점유 맵을 구축할 수 있다. 점유 맵 엔진(502B)은 점유 맵을, 반복해서 결정하고, MPC 시스템(500)이 점유 맵의 최신 결정에 액세스하는 경우에는, MPC 시스템(500)의 주행 경로의 결정과는 분리되게(예컨대, 비동기적으로), 결정할 수 있다. 점유 맵 엔진(502B)은 (예컨대, 본원에서 설명하는 바와 같이 참조 경로를 변환함으로써) 점유 맵에 참조 경로(704)를 포함할 수 있다,
주행 경로 엔진(502C)은 참조 경로(704) 및 종방향 변수에 적어도 부분적으로 기초하여 점유 맵에서 중간 위치(예컨대, 후술하는 MPC 호라이즌(716))까지의 주행 경로를 결정할 수 있다. 예를 들면, 중간 위치는 자율 주행 차량의 현재 위치에 근접한 참조 경로(704) 상의 포인트일 수 있다. 일부 경우에, 중간 위치는 현재 위치와 목적지 위치 사이에서 참조 경로(704) 상에 있을 수 있다. 일부 경우에, 중간 위치(예컨대, MPC 호라이즌(716))는 현재 위치로부터의 미리 정의된 거리에 기초할 수 있다. 주행 경로 엔진(502C)(또는 제어 시스템(408))은 주행 경로에 적어도 부분적으로 기초하여 차량에 대한 작동 커맨드(actuation command)(예컨대, 조향각 및 스로틀)을 생성할 수 있다.
종방향 변수는 연속 수들의 범위일 수 있다(예컨대, ―1부터 1까지, 양 끝값 포함). 일부 경우에, 수 문턱값(number threshold)을 충족하는 연속 수들은 제1 종방향을 나타내고 수 문턱값을 충족하지 않는 연속 수들은 제2 종방향을 나타낸다. 예를 들면, 제1 종방향은 차량의 전방일 수 있고(예컨대, 차량이 전진 이동함) 제2 종방향은 후방일 수 있다(예컨대, 차량이 반대로 이동함). 예를 들면, 수 문턱값는 종방향 변수가 제로보다 크면(또는 동일하다면) 충족될 수 있다.
일부 경우에, 점유 맵 엔진(502B)은 물리 좌표계에서 차량의 물리적 위치를 결정하고 물리 좌표계로부터의 차량의 물리적 위치를 점유 맵의 좌표계로 변환함으로써 차량의 점유 맵 위치를 결정할 수 있다. 예를 들면, 점유 맵 엔진(502B)은 차량 환경 데이터로부터 차량의 물리적 위치를 취득하고 그 물리적 위치에 좌표계 변환을 적용하여 물리 좌표계의 물리적 위치를 점유 맵의 좌표계로 변환할 수 있다. 또한, 주행 경로 엔진(502C)은, 중간 위치까지의 주행 경로를 결정하기 위하여, 차량의 점유 맵 위치를 사용하여 중간 위치까지의 주행 경로를 결정할 수 있다.
일부 경우에, 점유 맵 엔진(502B)은 물리 좌표계로부터의 참조 경로(704)를 점유 맵의 좌표계로 변환할 수 있다. 예를 들면, 점유 맵 엔진(502B)은 참조 경로(704)에 좌표계 변환을 적용하여 물리 좌표계의 참조 경로(704)를 점유 맵의 좌표계로 변환할 수 있다. 또한, 주행 경로 엔진(502C)은, 중간 위치까지의 주행 경로를 결정하기 위하여, 점유 맵의 좌표계의 참조 경로(704)를 사용하여 점유 맵에서 중간 위치까지의 주행 경로를 결정할 수 있다.
일부 경우에, 점유 맵 엔진(502B)은 물리 좌표계로부터의 참조 경로(704) 및 차량의 물리적 위치를 점유 맵의 좌표계로 변환할 수 있다. 예를 들면, 점유 맵 엔진(502B)은 참조 경로(704) 및 차량의 물리적 위치에 좌표계 변환을 적용하여 물리 좌표계의 참조 경로(704) 및 차량의 물리적 위치를 점유 맵의 좌표계로 변환할 수 있다. 또한, 주행 경로 엔진(502C)은, 중간 위치까지의 주행 경로를 결정하기 위하여, 점유 맵의 좌표계의 참조 경로(704) 및 차량의 물리적 위치를 사용하여 점유 맵에서 중간 위치까지의 주행 경로를 결정할 수 있다.
일부 경우에, 주행 경로 엔진(502C)은 점유 맵의 좌표계로부터의 주행 경로를 물리 좌표계로 변환할 수 있다. 예를 들면, 주행 경로 엔진(502C)은 주행 경로에 좌표계 변환을 적용하여 점유 맵의 좌표계의 참조 경로를 물리 좌표계로 변환할 수 있다. 이 경우에, 주행 경로 엔진(502C)은 물리 좌표계의 주행 경로를 사용하여 차량에 대한 작동 커맨드를 생성할 수 있다.
일부 경우에, 주행 경로 엔진(502C)은 점유 맵을 사용하여 적어도 하나의 미분 가능 점유 맵 평가치를 생성할 수 있다. 예를 들면, 주행 경로 엔진(502C)은 대상체(예컨대, 그리드 위치 Y에 있는 대상체 X)의 이산 그리드 점유를 대상체에 대한 미분 가능 점유 맵 평가치로 변환할 수 있다. 미분 가능 점유 맵 평가치는 대상체 표현에 있어서 비연속적 점프를 피할 수 있다. 이 경우에, 주행 경로 엔진(502C)은, 중간 위치까지의 주행 경로를 결정하기 위하여, 적어도 하나의 미분 가능 점유 맵 평가치를 사용하여 중간 위치까지의 주행 경로를 결정할 수 있다. 예를 들면, 적어도 하나의 미분 가능 점유 맵 평가치를 생성하기 위해, 주행 경로 엔진(502C)은 점유 맵에 적어도 하나의 기저 함수를 적용할 수 있다. 예를 들면, 적어도 하나의 기저 함수는 적어도 하나의 3차 B-스플라인(B-spline) 기저 함수일 수 있다. 3차 B-스플라인 지적 함수를 사용하여 적어도 하나의 미분 가능 점유 맵 평가치를 결정하는 방식의 상세는 17/535,542에서 찾아 볼 수 있고, 해당 출원의 전문은 인용에 의해 본원에 포함된다.
일부 경우에, 주행 경로 엔진(502C)은 주행 경로를 결정하기 위해, 차량의 적어도 하나의 물리적 제약 및 복수의 가변 제어 입력에 대한 변동에 적어도 부분적으로 기초하여 복수의 잠재적 경로를 결정할 수 있다. 그런 다음 주행 경로 엔진(502C)은 목적 함수의 가중 정책에 적어도 부분적으로 기초하여 복수의 잠재적 경로 각각와 연관된 비용을 결정할 수 있다. 그리고 주행 경로 엔진(502C)은 복수의 잠재적 경로 각각과 연관되는 결정된 비용에 적어도 부분적으로 기초하여 복수의 잠재적 경로 중에서 주행 경로를 선택할 수 있다.
복수의 잠재적 경로를 결정하기 위해, 주행 경로 엔진(502C)은 미리 설정된 예측 단계 수에 대한 가변 제어 입력을 조정함으로써 복수의 잠재적 경로를 생성할 수 있다. 복수의 잠재적 경로를 생성하기 위해, 주행 경로 엔진(502C)은 현재 위치부터 중간 위치까지에 대응하는 기간에 대한 복수의 가변 제어 입력 세트를 그 사이의 단계("예측 단계"라고 함) 수와 함께 생성할 수 있다. 가변 제어 입력은 조향각 및 종방향 변수에 대한 종방향을 포함할 수 있다. 일부 경우에는 제어 입력이 스로틀 양도 포함할 수 있는 것을 알아야 한다. 각각의 가변 제어 입력 세트는 차량의 적어도 하나의 물리적 제약에 따라, 단계 수의 각 단계까지 이동하기 위한 제어 입력을 순차적으로 정의할 수 있다. 예를 들면, 제1 제어 입력 세트가 현재 위치부터 중간 위치까지 제1 잠재적 경로를 정의하여 차량이 제1 정의 경로를 이동하게 되고, 제2 제어 입력 세트가 현재 위치부터 중간 위치까지 제2 잠재적 경로를 정의하여 차량이 제2 정의 경로를 이동하게 된다. 각각의 제어 입력은 각 단계에서 차량의 물리적 제약 내에 있을 수 있다. 예를 들면, (각 단계에서의)각각의 가변 제어 입력은 차량의 복수의 작동 능력 조건을 충족시킬 수 있다. 일례로 조향각 및/또는 스로틀의 소정의 변화는 (해당 단계에서) 차량에 대해 물리적으로 가능할 수도 있고 조향각 및/또는 스로틀의 다른 소정의 변화는 (해단 단계에서) 차량에 대해 물리적으로 불가능할 수도 있다. 각 제어 입력 세트 중의 각각의 제어 입력은 대응하는 단계에서 차량의 적어도 하나의 물리적 제약을 충족시킬 수 있다. 복수의 가변 제어 입력 세트 각각은 각각 제어 입력이 지시하는 단계의 위치에 따라 잠재적 경로를 정의할 수 있다.
일부 경우에, 차량의 적어도 하나의 물리적 제약은 차량의 스티어링 휠 작동의 조향각을 포함한다. 예를 들면, 스티어링 휠 작동의 조향각은 조향 각도의 설정 범위(예컨대, 현재 방향에서 +/- 45 도)로 구속될 수 있다. 일부 경우에, 차량의 적어도 하나의 물리적 제약은 주행 경로의 데카르트 솔루션 공간(cartesian solution space)을 참조 경로(704)로부터 미리 결정된 거리의 영역 내로 구속한다. 예를 들면, 데카르트 솔루션 공간은 각 단계가 데카르트 솔루션 공간 내에 위치할 수 있도록, 참조 경로(704)로부터 미리 결정된 거리의 점유 맵의 좌표계 내의 지리적 영역일 수 있다. 일부 경우에, 차량의 적어도 하나의 물리적 제약은 차량 방향을, 참조 경로(704) 상의 주어진 포인트에 대한 미리 결정된 방향의 범위 내로 구속한다. 예를 들면, 참조 경로(704) 상의 주어진 포인트에 대한 미리 결정된 방향의 범위는 참조 경로(704)에 대한 차량의 현재 위치로부터의 방향의 정의된 +/- 도일 수 있다.
일부 경우에, 복수의 잠재적 경로 각각은 복수의 단위 거리 단계(unit-distant step)를 포함할 수 있다. 단위 거리 단계 각각은 현재 위치부터 중간 위치까지의 단계 수 중 하나에 대응할 수 있다. 일부 경우에, 각각의 단위 거리 단계는 (잠재적 경로를 이동하는)현재 위치와 중간 위치 사이의 거리와 단계 수의 비율로서 정의될 수 있다.
복수의 잠재적 경로 각각과 연관된 비용을 결정하기 위해, 주행 경로 엔진(502C)은 목적 함수를 사용하여 복수의 잠재적 경로 각각에 대한 비용을 생성할 수 있다. 예를 들어, 잠재적 경로에 대한 비용은 목적 함수의 가중 정책 및 잠재적 경로에 대한 점유 맵과 제어 입력에 적어도 부분적으로 기초하여 결정될 수 있다. 가중 정책은 잠재적 경로의 특성에 대해 적어도 하나의 부분 비용(sub-cost)을 할당할 수 있다. 예를 들면, 가중 정책은 복수의 부분 비용을 할당할 수 있다. 복수의 부분 비용은 적어도 제1 부분 비용, 제2 부분 비용, 및 제3 부분 비용을 포함할 수 있다.
제1 부분 비용은 무충돌 운전 비용일 수 있다. 무충돌 운전 비용은 환경내 적어도 하나의 장애물에 대한 차량 풋프린트의 포인트 세트의 각 포인트에 대한, 모든 예측 단계들의 충돌 비용의 누적치에 기초할 수 있다. 예를 들어, 충돌 비용은, 차량 풋프린트의 포인트 세트 중의 제1 포인트가 환경내 적어도 하나의 장애물의 포지션과 겹치고 이어서 차량 풋프린트의 포인트 세트 중의 제2 포인트가 환경내 적어도 하나의 장애물의 포지션과 겹치지 않을 때에, 비례하여 높아질 수 있다. 모든 예측 단계에서의 충돌 비용의 누적은 환경과의 임의의 물리적 상호작용을 나타내기 위해 모든 예측 단계에 걸쳐 모든 포인트의 모든 충돌 비용을 합산할 수 있다. 가중 정책은 그러한 상호작용에 상대적으로 높은 가중치를 할당하여 임의의 그러한 주행 경로의 선택을 피하게 할 수 있다.
제2 부분 비용은 컴포트 비용일 수 있다. 컴포트 비용은 각 예측 단계에서, 적어도 종방향 변수의 변화율 및 조향각의 변화율에 기초할 수 있다. 예를 들면, 컴포트 비용은 종방향 변수의 변화율이나 조향각의 변화율이 증가함에 따라 비례하여 높아질 수 있다. 가중 정책은 변화율에 가중치를 할당하여 현재 위치로부터 중간 위치까지 컴포트한(예컨대, 인간적 컴포트) 주행을 보장할 수 있다.
제3 부분 비용은 추적 비용일 수 있다. 추적 비용은 각 예측 단계에서, 추적 타겟 위치에서의 참조 경로(704)의 참조 방향과의 제1 차분 및 추적 타겟 위치에서의 참조 경로(704)의 참조 위치와의 제2 차분에 기초할 수 있다. 일부 경우에, 각각의 예측 단계에서, 제1 차분은 조향 각도(해당 단계의 제어 입력이 지시함)와 참조 경로(704)가 지시하는 조향 각도 사이의 차분이다. 일부 경우에, 각각의 예측 단계에서, 제2 차분은 위치(해당 단계의 제어 입력이 지시함)와 참조 경로(704)가 지시하는 대응하는 위치 사이의 차분이다. 가중 정책은 제1 및 제2 차분에 대해 상이한 가중치를 할당하여 중간 위치로의 수렴을 택할 수 있다.
일부 경우에, 가중 정책은 상이한 비용을 택하기 위해 무충돌 운전 비용, 컴포트 비용, 및 추적 비용에 대한 복수의 가중치를 포함할 수 있다. 예를 들면, 추적 비용에 대한 복수의 가중치의 가중치 세트는 최종 예측 단계 이전의 중간 예측 단계에 대한 중간 가중치, 및 최종 예측 단계에 대한 최종 가중치를 포함할 수 있다. 중간 가중치는 실질적으로 최종 가중치보다 작을 수 있다. 예를 들면, 이것은 참조 경로(704)에서 더 먼 것보다 참조 경로(704)에 더 가깝게 끝나는 잠재적 경로를 택할 수 있다.
일부 경우에, 주행 경로 엔진(502C)은 복수의 잠재적 경로 각각에 대해, 무충돌 운전 비용, 컴포트 비용, 및 추적 비용 각각을 합산하여, 잠재적 주행 경로에 대한 총 비용을 결정할 수 있다. 이런 식으로, 복수의 잠재적 경로 각각에 대한 총 비용이 결정될 수 있고, 각각의 상대적 이점이 고려될 수 있다.
주행 이동 엔진(502C)은 최저 비용 주행 경로를 선택할 수 있다. 예를 들어, 주행 경로 엔진(502C)은 잠재적 경로의 비용을 정렬하고(예컨대, 내림차순으로) 최저 비용의 잠재적 경로를 주행 경로로서 선택함으로써 최저 비용 주행 경로를 결정할 수 있다. 일부 경우에, 주행 경로 엔진(502C)은 선택된 주행 경로가 비용 문턱값보다 더 적은 비용을 갖는지 결정할 수 있고; 그렇다면, 진행하고; 그렇지 않다면, 선택된 주행 경로가 비용 문턱값보다 더 적은 비용을 가질 때까지 주행 경로를 반복해서 재결정한다(또는 만족스런 솔루션 없이 임계 반복 카운터가 초과할 경우에는 에러를 결정하고 안전 정지 조종을 수행한다).
전술한 바와 같이, 주행 경로가 선택되면, 주행 경로 엔진(502C)(또는 제어 시스템(408))은 주행 경로에 적어도 부분적으로 기초하여 차량에 대한 작동 커맨드(예컨대, 조향 각도 및 스로틀)을 생성할 수 있다. 따라서, 개시하는 방법 및 시스템은 비용에 따른 경로 선택 및 계획 알고리즘(예컨대, 참조 경로(704)) 둘 다에 환경적 표현을 사용하는 그리드 기반의 경로 프로세스일 수 있다. 예를 들면, 경로 선택 루틴에서 점유 맵을 사용하면 MPC 시스템(500)이 정확하게 공간적 제약을 표현할 수 있어 좁은 공간 운행이 가능하게 된다. 또한, MPC 시스템(500)은 종방향 변수를 사용하여 복잡한 조종을 위한 충분한 범위의 운전을 가능하게 할 수 있다.
또한, 조종성(maneuverability)에 대한 점유 맵 기반의 공간적 제약 및 역주행(예컨대, 종방향 변수)의 조합은 자율 주행 차량을 넘어 비구조화 환경에서 수행되는 경로 최적화에 동등하게 적용될 수 있다. 따라서, 주행 경로를 결정하기 위한 비구조화 모드는 3D 드론 내비게이션, 이동 로봇 내비게이션(예컨대, 청소 로봇, 감시 로봇, 농업용 로봇), 자율 주행 보트 등에도 적용될 수 있다. 또한, 본 방법 및 시스템은 선택 프로세스에서 시간 성분을 통합함으로써 궤적 선택에 사용될 수도 있다. 또한, 점유 맵은 환경 측정의 확률적 속성과, 환경내 특정 대상체와 충돌할 위험과 연관된 비용을 포함함으로써, 확률적 속성을 포함하도록 경로 계획을 확장시킬 수 있다.
예
일부 경우에, MPC 시스템(500)은, 시불변한(예컨대, 단위 거리 단계를 사용) 양방향성(예컨대, 종방향 변수를 사용) MPC 솔버(solver)(예컨대, 주행 경로 엔진(502C)의 일부)를 사용하여 주행 경로를 결정할 수 있다. 이 경우에, MPC 시스템(500)은 조향 제어 또는 전방/후방 제어와 분리하여 스로틀(또는 속도) 제어를 결정할 수 있다. 예를 들면, 일부 MPC 솔버에서는, MPC 솔버가 궤적에 대한 솔루션(예컨대, 최적 또는 최저 비용 솔루션)을 결정하기 위해 시간에 따라 차량 상태를 전파할 수도 있다. 그러나, 이 예에서, MPC 시스템(500)은 (시간 단계 대신에) 단위 거리 단계를 사용하여 궤적 대신에 MPC 호라이즌(716)까지의 주행 경로를 결정할 수 있다. 이에, MPC 시스템(500)은 시간이 아니라 공간에서 계획할 수 있다. 특히, MPC 시스템(500)은 상등 제약 (2), 상태 제약 (3), 및 입력 제약 (4)가 충족되도록 목적 함수 (1)의 로컬 최소값인 주행 경로를 결정할 수 있다. 일반적으로, 본원에 개시하는 함수 또는 방정식은 예시적인 함수 또는 방정식이다.
수식 (1): 목적 함수
여기서 는 1 내지 상태 벡터 의 주행 경로이고 는 도 7a 내지 도 7c에 대해 후술하는 비용 과 중 최소인 주행 경로를 취득하기 위한 입력이고, 와 는 점유 맵의 대상체이다(예컨대, 차량, 보행자, 경계(예를 들면 연석), 등이다).
수식 (2): 상등 제약
수식 (3): 상태 제약
수식 (4): 입력 제약
여기서 는 (가능한 모든 상태 벡터 세트 중의) 상태 벡터이고, 는 차량의 x-맵 좌표이고, 는 차량의 y-맵 좌표이고, 는 차량의 방향이고, 는 종방향 변수이고, 는 차량의 조향 각도이고; 는 (가능한 모든 입력 벡터 세트 중의) 입력 벡터이고, 는 진행에 따른 변화율 또는 방향 변수이고, 는 진행에 따른 조향 각도의 변화율이고; 는 현재 위치와 MPC 호라이즌(716)(예컨대, 참조 경로(704)에 근접한 중간 위치) 사이에서의 미리 설정된 단위 거리 단계들 의 수이다.
예를 들면, 일부 경우에, 미리 설정된 단위 거리 단계들 의 은 변경될 수 있는 설계 파라미터일 수 있다. 더 많은 단계들이 더 많은 계산 시간을 사용하여 주행 경로를 결정할 수 있지만, MPC 호라이즌(716)은 참조 경로(704)를 더 따라갈 수 있다. 미리 설정된 단위 거리 단계들 의 수 은 고정적일 수도 가변적될 수도 있다. 단위 거리 단계 는 단계당 주행 최대 거리를 나타낼 수 있다. 이에, MPC 호라이즌(716)까지의 더 긴 거리에 더 많은 단계가 사용될 수 있다.
일부 경우에, MPC 시스템(500)의 MPC 솔버는 주행 경로를 반복해서 결정할 수 있다. 예를 들면, MPC 솔버는 현재 위치부터 MPC 호라이즌(716)까지의 주행 경로를 결정할 수 있지만, MPC 시스템(500)(또는 제어 시스템(404))은 결정된 주행 경로의 제1 부분만을 실행할 수 있다. 그러나, MPC 시스템(500)이 결정된 주행 경로의 부분 또는 전부를 실행할 수 있는 것이 이해될 것이다. 다른 솔브 사이클에서, MPC 솔버는 새로운 MPC 호라이즌에 대해 새로운 주행 경로를 결정할 수 있다. MPC 호라이즌(716)은 (솔브 사이클의 개별 반복의 과정에서) 후퇴 호라이즌이라고 칭해질 수 있다. 일부 경우에, 점유 맵은 매 솔브 사이클에(또는 새로운 데이터가 이용 가능할 때에) 업데이트될 수 있다. 이런 식으로 MPC 솔버는 새로운 측정을 고려할 수 있다.
일부 경우에, 미리 설정된 단위 거리 단계들 의 수 은 50-100 사이의 범위 내의 수일 수 있다. 일부 경우에, 솔브 사이클의 주파수는 10 Hz일 수 있다. 50-100 사이의 범위 및 10 Hz 주파수는 예시이고 제한되는 것을 의도하지 않는다.
일부 경우에, MPC 호라이즌(716)은 차량의 현재 위치(현재 단계에서)와 목적지 위치 사이에 있는 참조 경로(704) 상의 포인트를 선택함으로써 결정될 수 있다. 예를 들어, MPC 시스템(500)은 현재 위치의 임계 거리 내에 있는 참조 경로(704) 상의 위치를 선택할 수 있다. 임계 거리는 (예컨대, 미리 설정된 단위 거리 단계들 의 수 에 기초한) MPC 솔버의 유한한 호라이즌에 대응할 수 있다.
일부 경우에, 앞에서 설명한 제약의 일부 또는 전부는 매우 터무니없는 비용으로 변환될 수 있다(예컨대, 다른 비용의 10배, 100배 등). 이런 식으로, 비연속적 제약은 MPC 시스템의 MPC 솔버가 이러한 비선형적 최적화를 수치적으로 해결하게 할 수 있다.
상등 제약은 상태 도함수 (5)에 따른 진행에 대한 상태 도함수를 통해 차량 상태 업데이트 방정식을 정의할 수 있다.
수식 (5): 상태 도함수
여기서 는 차량의 길이이다. 이런 식으로, 결정 변수(예컨대, 종방향 변수 및 조향 각도 )는 후술하는 비용 및 에 따라 로컬 최소 주행 경로를 찾기 위해 변할 수 있다. 전술한 바와 같이, 종방향 변수는 연속적일 수 있다(반면 전방 또는 후방에 대해 이진(즉, 이산) 값이다).
일부 경우에, MPC 시스템(500)은 단위 거리 단계 에 대한 예측 단계당 최대 주행 거리를 파라미터화하는 진행 스케일링 값 을 사용할 수 있다. 이 경우에, 주행 거리 는 주행 거리 적분식 (6)에 따라, 예측 호라이즌에 걸쳐 진행 스케일링을 곱한 방향 변수를 적분함으로써 구해질 수 있다.
수식 (6): 주행 거리 적분
또한, 이 경우에, 진행 스케일링 변수로 스케일링된 차량 상태 업데이트 방정식 (7)에 따라, 진행 스케일링 변수는 최대 주행 거리의 파라미터화를 가능하게 할 수 있다.
수식 (7): 차량 상태 업데이트 방정식
진행 스케일링 값 이 증가함에 따라, 주행 경로의 경로 길이는 동일한 수 N의 단위 거리 단계 에 대해 증가할 수 있다. 일례로, N이 80 단계로 설정되면 계산 시간은 50 밀리초일 수 있고, 진행 스케일링 값 을 조정함으로써 MPC 시스템(500)은 더 많은 최적(예컨대, 저비용) 솔루션을 검색하기 위해 추가 잠재적 경로를 고려하는 것이 가능할 수 있다.
일부 경우에, MPC 시스템(500)은 데이터(예컨대, 차량 환경 데이터)를 취득하고 점유 맵을 업데이트할 수 있다. 이런 식으로, 및 은 새로운 정보가 환경내 변화를 나타낼 때에 업데이트될 수 있다.
도 6a를 참조하면, 도 6a는 MPC 시스템(500)이 사용하는 예시적인 좌표계 변환(602)을 도시한다. 좌표계 변환(602)은 지리 좌표계(604), 바디 좌표계(606), 및 점유 맵 좌표계(608), 및 적어도 하나의 대상체 좌표계(610)를 포함할 수 있다. 지리 좌표계(604)는 GPS 좌표계와 같이, 지리적 영역에 대한 2D 또는 3D 공간계를 정의할 수 있다. 바디 좌표계(606)는 자차량(508)에 대한 2D 또는 3D 공간계를 정의할 수 있다. 점유 맵 좌표계(608)는 로컬 지리 영역에 대한 2D 또는 3D 공간계를 정의할 수 있다. 적어도 하나의 대상체 좌표계(610)는 적어도 하나의 대상체에 대한 2D 또는 3D 공간계를 정의할 수 있다. 점유 맵의 각 대상체는 해당 대상체에 대한 2D 또는 3D 공간계를 정의하기 위해 대응하는 대상체 좌표계(610)를 가질 수 있는 것을 알아야 한다. 특히, 다른 차량(510)과 같은 대상체, 다른 대상체들(512), 로컬 경계(514), 및 참조 경로(704)는 각각 대상체 좌표계를 가질 수 있다.
좌표계 변환(602)은 어느 한 좌표계로부터 다른 좌표계로의 변환(612A-612E)도 포함할 수 있다. 예를 들면, 변환(612A-612E)은 지리 좌표계(604)에서 대상체 좌표계(610)로의 제1 변환(612A); 지리 좌표계(604)에서 점유 맵 좌표계(608)로의 제2 변환(612B); 지리 좌표계(604)에서 바디 좌표계(606)로의 제3 변환(612C); 점유 좌표계(608)에서 대상체 좌표계(610)로의 제4 변환(612D); 및 바디 좌표계(606)에서 대상체 좌표계(610)로의 제5 변환(612E)을 포함할 수 있다.
본원에서 설명한 바와 같이, MPC 시스템(500)은 점유 맵을 업데이트한 다음, 지리 좌표계(604) 내의 환경(예컨대, 다른 대상체 등), 참조 경로(704), 및 자차량(508)을 이들의 상태에서 점유 맵 좌표계(608)로 변환할 수 있다. 그런 다음 MPC 시스템(500)은 점유 맵 좌표계(608)에서 주행 경로를 결정할 수 있다. MPC 시스템(500)은 제어 시스템(404)에서 사용하기 위해 점유 맵 좌표계(608)로부터의 주행 경로를 지리 좌표계(604)로 변환할 수 있다. 이런 식으로, MPC 시스템(500)은 내부 변환 없이 주행 경로를 결정하고 그럼으로써 주행 경로 결정 동안 추가 계산을 피할 수 있다. 또한, 부동 소수점 수를 사용하여 소정 수의 변화를 보다 정확하게 추적할 수 있기 때문에, 지리 좌표계(604)에서 점유 맵 좌표계(608)로의 변환은 부동 소수점 수를 사용하여 더 높은 정확도로 이루어질 수 있다. 일례로 부동 소수점 수의 정확도는 (점유 맵 좌표계(608)의 경우)10 내지 10.5 미터의 변화와 비교할 때 (지리 좌표계(604)의 경우) 5000 내지 5000.5 미터의 변화로 더 안 좋을 수 있다. 점유 맵 좌표계(608)는 각각의 대상체가 솔브 사이클 동안 고정된 것으로 취급되기 때문에 솔브 사이클 동안 관성 프레임으로 간주될 수 있는 것을 알아야 한다.
이와 같이 점유 맵을 사용하여 주행 경로를 결정할 수 있다. 그러나, MPC 시스템(500)의 MPC 솔버가 주행 경로를 결정하기 위해 이산 그리드 표현 대신에 연속 함수를 사용할 수도 있기 때문에, MPC 시스템(500)은 대상체 표현에서 비연속적 점프를 피하기 위해 미분 가능 점유 맵 평가치를 결정할 수 있다. 예를 들어, 점유 맵에 의해 인코딩된 MPC 솔버에 대한 비용 함수를 구현하기 위해, MPC 시스템(500)은 점유 맵의 구배(연속 미분 가능 그리드 평가치라고 함)를 생성할 수 있다.
도 6b를 참조하면, 도 6b는 MPC 시스템(500)이 사용하는 연속 미분 가능 그리드 평가치(626)를 제공하기 위해 기저 함수(624)에 의해 평가되는 2차원 그리드(622)를 도시한 도면(620)이다. 2차원 그리드(622)는 연속 미분 가능 그리드 평가치(626)를 결정하기 위해 기저 함수(624)에 의해 평가될 수 있다. 예를 들어, 2차원 그리드(622)의 각 평가 포인트는 예컨대 기저 함수(624)의 유한한 지지집합(finite support)의 결과에 따라 4x4 영역으로부터 샘플링될 수 있다. 연속 미분 가능 그리드 평가치(626)는 MPC 시스템(500)의 MPC 솔버의 구배 기반 방법에 대한 해석적 편도함수를 제공할 수 있다. 본원에서 설명한 바와 같이, 기저 함수(624)는 3차 B-스플라인 기저 함수일 수 있다.
도 6c를 참조하면, 도 6c는 MPC 시스템(500)이 사용하는 예시적인 점유 맵(630)을 도시한다. 점유 맵(630)은 자차량(508), 다른 차량(510), 및 다른 대상체(512) 등을 포함할 수 있다. 점유 맵(630)은 또한 그리드 표현(632)을 포함할 수 있다. 그리드 표현(632)은 표준 및/또는 임의의 그리드 형태를 가질 수 있다. 도시하지는 않지만, 점유 맵(630)은 그리드 표현(632)에 대한 연속적으로 미분 가능한 그리드 평가치(626)를 나타내는 데이터를 포함할 수도 있다. 점유 맵이 연속 미분 가능 그리드 평가치(626)를 갖고서 생성되었기 때문에, MPC 시스템(500)은 비용 및 를 결정할 수 있다.
도 7a 내지 도 7c는 MPC 시스템(500)이 사용하는 예시적인 추가 제약 및 비용을 도시한다. 도 7a는 추가 제약을 도시한 도면(702)이고, 도 7b 및 도 7c는 및 에 의해 결정되는 소정 비용을 도시한 도면(711 및 713)이다.
일부 경우에, MPC 시스템(500)은 소정의 상태 벡터 (만)이 임의의 주어진 에 대해 허용될 수 있도록 (점유 맵의)데카르트 솔루션 공간을 더욱 구속할 수 있다. 도 7a에서, 추가 제약은 참조 경로(704)에 대한 방향 제약(706) 및/또는 경계 제약(708)을 포함할 수 있다. 본원에서 설명한 바와 같이, 참조 경로(704)는 샘플링 기반 루틴에 의해 결정될 수 있다.
방향 제약(706)은 참조 경로(704)를 대체로 따라가는 방향을 강제하기 위하여 참조 경로(704)에 대한 차량 방향을 구속한다. 예를 들어, 방향 제약(706)은 방향 이 와 같은 방향 문턱값보다 큰 상태 벡터 를 갖는 잠재적 경로를 제거할 수 있고, 여기서 는 상태 벡터 에 대한 참조 경로(704) 상의 대응하는 포인트에서의 방향 의 범위이다. 이에, 도 7a에 도시하는 바와 같이, 방향 제약(706)은 상이한 단위 거리 단계들 에 대해, 참조 경로(704) 상의 여러 위치에서 표시된다.
경계 제약(708)은 참조 경로(704)를 대체로 따라가는 주행 경로를 강제하기 위하여 참조 경로(704)에 대한 차량 위치를 구속한다. 예를 들어, 경계 제약(708)은 참조 경로(704)로부터 거리 문턱값을 초과한 위치 를 갖는 상태 벡터 를 갖는 잠재적 경로를 제거할 수 있다. 이에, 도 7a에 도시하는 바와 같이, 경계 제약(708)은 참조 경로(704)로부터 설정된 거리의 인공 경계로서 표시된다.
이런 식으로, MPC 시스템(500)은 결정된 주행 경로가 주행 경로(714)와 정확하게 동일할 것을 요구하지 않고 참조 경로(704)를 대체로 따라가는 결정된 주행 경로로 수렴될 수 있다. 이에, 참조 경로(704)는 MPC 솔버가 참조 경로(704)를 사용하지 않는 경우보다 더 빠르게 수렴할 수 있도록 MPC 시스템(500)의 MPC 솔버를 초기화할 수 있다. 예를 들면, MPC 시스템(500)은 참조 경로(704)를 사용하지 않는 경우보다 참조 경로(704)를 사용하여 더 빠르게 예컨대 10배 더 빠르게 주행 경로를 결정할 수 있다.
일부 경우에, 비용 및 은 비용 계층을 고수할 수 있다. 예를 들어, 비용 계층은 (순서대로) 무충돌 운전 목적, 컴포트 목적, 및 추적 목적일 수 있다. 특히, 스테이지 비용 은 스테이지 비용 방정식 (8)에 의해 정의될 수 있고, 종단 비용 은 종단 비용 방정식 (9)에 의해 정의될 수 있다.
수식 (8): 스테이지 비용 방정식
수식 (9): 종단 비용 방정식
여기서 및 은 도 7c와 관련하여 상세하게 설명하는 추적 목적과 연관된 비용이다. 및 은 중간 단계 및 종단 단계에서 동일한 추적 함수이다. 및 는 컴포트 목적과 연관된 비용이다. 및 는 무충돌 운전 목적과 연관된 비용이다. 및 는 적어도 도 7b와 관련하여 본원에서 설명하는 바와 같이, 중간 단계 및 종단 단계에서 동일한 충돌 비용 함수이다.
추적 목적은 추적 비용 방정식 (10)에 의해 정의될 수 있다.
수식 (10): 추적 비용 방정식
여기서 , , 및 는 상이한 단위 거리 단계들 에서의 참조 경로(704)의 타겟 위치 및 방향이다. , , , , , 및 각각은 방정식의 각 해당 성분에 대한 가중치이다. 일부 경우에, 는 보다 훨씬 작고 는 보다 훨씬 작다. 예를 들면, "훨씬 작다"란 가중치가 크기의 1/10, 크기의 1/100 등인 것을 의미할 수 있다.
도 7b를 참조하면, 도 7b는 충돌 비용 함수 가 비용을 결정하는 방식을 도시하는 도면(711)이다. 특히, 자차량(508)은 차량의 풋프린트와 연관된 복수의 포인트(710 및 712)를 가질 수 있다. 충돌 비용을 계산하기 위해, MPC 시스템(500)은 복수의 포인트(710 및 712) 중 어느 것이 점유 맵의 임의의 대상체와 겹치는지(예컨대, 대상체의 위치에 대해 임계 거리 내의 위치를 갖는지) 결정할 수 있다. 이 경우에, 포인트(712)는 대상체와 겹치지 않지만 포인트(710)와 겹친다. 예를 들면, 충돌 비용은 겹치는 포인트가 없는 경우 작을 수 있고(예컨대, 제로) 임의 개(예컨대, 하나 이상)의 포인트가 겹치면 클 수 있다(다른 비용에 비해), 이 경우에, 잠재적 경로의 충돌 비용은 모든 예측 단계에서의 모든 풋프린트 프리빙 포인트들의 누적 비용이다.
도 7c를 참조하면, 도 7c는 추적 함수 와 연관된(추적 목적과 연관된) 비용이 MPC 호라이즌(716)까지의 결정된 주행 경로(714)에 어떻게 영향을 미칠 수 있는지를 도시하는 도면(713)이다. 특히, 참조 경로(704)는 자차량(508)으로부터 연장된다. 추적 비용 방정식 (10)을 사용하여, MPC 시스템(500)의 MPC 솔버는 MPC 호라이즌(716)(즉, 중간 위치)에 더 가깝게 수렴하면서 단위 거리 단계들 의 중간 단계에서 참조 경로(704)로부터 벗어난 주행 경로(714)를 결정하였다. 이런 식으로, MPC 시스템(500)은 계속해서 참조 경로(704)를 대체로 따라가지만 예컨대 컴포트 및 원활한 운전을 위한 저비용 솔루션을 찾을 수 있는 유연성을 가질 수 있다. 예를 들면, 일부 경우에, MPC 시스템(500)은 솔브 사이클의 매 반복시 MPC 호라이즌(716)이 조정됨(예컨대 후퇴함)에 따라 MPC 호라이즌(716)을 따라갈 수 있다. 특히, 추적 비용 방정식 (10)은 중간 단계에서 유연성을 제공하기 위해(예를 들어, 이탈에 대한 비용을 감소시킴) MPC 호라이즌(716) 부근에 더 큰 가중치를 사용하면서 중간 단계에 대해 훨씬 더 작은 가중치를 사용하고, MPC 호라이즌(716) 부근에서 수렴을 제공할 수 있다(MPC 호라이즌(716) 부근에서 벗어나는 데 드는 비용을 증가시킴).
도 8은 그리드 표현(632)에서 MPC 시스템(500)이 결정하는 예시적인 주행 경로(802)를 도시한 도면(800)이다. MPC 시스템(500)은 목적지 위치(808)까지 참조 경로(704)를 사용하여, 본원에서 설명한 바와 같이, 주행 경로(802)를 결정할 수 있다. 참조 경로(704)는 추적 타겟(804) 및 샘플링 노드(806)를 포함할 수 있다. 샘플링 노드(806)는, 샘플링 기반 루틴을 실행하는 동안, 참조 경로(704)를 구축하기 위해 점유 맵에서 선택되고 개별 결정(예를 들어, 자차량(508)이 계속 전진 또는 후진해야 하는지, 대상체를 왼쪽 또는 오른쪽으로 지나가야 하는지 등)이 평가되는 포인트일 수 있다. 추적 타겟(804)은 주행 경로(714)에 대한 상이한 솔브 사이클들에 걸쳐 MPC 호라이즌(716)을 표시할 수 있다. 예를 들어, 추적 타겟(804)은 매 솔브 사이클에 참조 경로(704)를 따라 전파되는 예측 단계마다의 자율 주행 차량이 주행할 수 있는 거리에 기초하여 결정될 수 있다. 도 8에 도시하는 바와 같이, 주행 경로(802)는 대체로 참조 경로(704)를 따라가면서 참조 경로(704)로부터 벗어날 수도 있다.
MPC 시스템(500)의 MPC 솔버가 주행 경로(714)를 결정한 후, MPC 시스템(500)은 자율 주행 차량에 대한 제어 커맨드를 결정할 수 있다. 예를 들어, MPC 시스템(500)은 결정된 경로(714)에 기초하여 작동 커맨드(예를 들어, 조향 커맨드 및 스로틀 커맨드)을 결정할 수 있다. 예를 들어, 하위 레벨의 조향 제어기는 조향 기준 (11)을 사용할 수 있다.
수식 (11): 조향 기준:
여기서 는 시간에 따른 차량의 조향 각도이고, 는 시간에 따른 조향 각도의 변화율이다. 결정된 주행 경로(714)가 주어지면 시간 에서 차량 자세의 측정치를 취득하고 현재 진행 을 조회함으로써, 조향 각도 가 결정될 수 있다. 그런 다음 조향 각도 는 현재 진행 을 조향 각도 조회 방정식 (12)에 입력함으로써 결정될 수 있다.
수식 (12): 조향 각도 조회
이후, 조향 각도 의 변화율을 결정하기 위해 조향율 체인 규칙 (13)에 따라 체인 규칙을 적용할 수 있다.
수식 (13): 조향율 체인 규칙
여기서 는 예측 단계에서 결정되는 진행 에 대한 조향 각도이고 는 시간에 따른 진행의 변화율이다. 시간에 따른 진행의 변화율 은 속도 제어기로부터 취득될 수 있다(예컨대, 자율 주행 차량의 현재 속도에 대한 피드백). 또한, 속도 제어기는 결정된 주행 경로가 주어지면 속도 커맨드 또는 가속 커맨드를 결정할 수 있다.
일부 경우에, MPC 시스템(500)의 MPC 솔버가 수용 가능한 비용(예컨대, 미리 설정된 사이클 수를 초과한 경우 비용 문턱값미만)을 갖는 주행 경로를 결정할 수 없을 때, MPC 시스템(500)은 정지 경로를 결정할 수 있다. 정지 경로는 긴급 정지 조종이 있는 일정한 조향 각도일 수 있다. 이와 같이 MPC 시스템(500)은 수용 가능한 비용으로 주행 경로를 결정할 수 없는 경우, 긴급 정지 조종을 수행하여 자율 주행 차량의 안전을 유지하기로 결정한다.
모델 예측 제어 시스템의 예시적인 흐름도
도 9는 MPC 시스템(500)을 사용하여 주행 경로를 결정하기 위하여 하나 이상의 프로세서에 의해 구현되는 루틴의 일례를 도시하는 흐름도이다. 도 9에 도시하는 흐름도는 예시를 위한 용도로 제공된다. 도 9에 도시하는 루틴(900)의 단계들 중 하나 이상이 삭제될 수도 또는 단계들의 순서가 변경될 수도 있는 것이 이해될 것이다. 또한, 명확한 예를 나타내는 목적을 위해, 하나 이상의 특정 시스템 컴포넌트는 각각의 데이터 흐름 스테이지 동안 다양한 작업을 수행한다는 맥락에서 설명된다. 그러나 다른 시스템 배열 및 시스템 컴포넌트들 간의 프로세싱 단계들의 분산이 사용될 수도 있다.
블록 902에서, MPC 시스템(500)이 차량의 환경과 연관된 차량 환경 데이터를 수신할 수 있다. 예를 들면, MPC 시스템(500)은 본원에서 설명한 바와 같이, 로컬화 시스템(406)으로부터 자차량(508)의 상태를 수신, 및/또는 인지 시스템(402)으로부터 그리고/또는 데이터베이스(410)로부터의 2D 및/또는 3D 맵에 기초하여, 다른 차량(510)의 상태, 다른 대상체(512)의 상태, 로컬 경계(514), 및/또는 주행 방향(516)을 (계속적으로 또는 주기적으로) 수신할 수 있다.
블록 904에서, MPC 시스템(500)은 차량 환경 데이터를 사용하여 환경의 점유 맵을 결정할 수 있고, 점유 맵은 환경내 적어도 하나의 장애물을 식별한다. 예를 들면, MPC 시스템(500)의 점유 맵 엔진(502B)은 본원에서 설명한 바와 같이, 비동기적으로, 차량 환경 데이터를 취득하고, 데이터를 맵 좌표계로 변환하고, (미분 가능 점유 맵 평가치를 갖는) 점유 맵을 생성할 수 있다.
블록 906에서, MPC 시스템(500)은 차량에 대한 목적지 위치까지 참조 경로를 생성할 수 있다. 예를 들어, MPC 시스템(500)의 참조 경로 엔진(502A)은 본원에서 설명한 바와 같이, 샘플링 기반의 루틴을 사용하여, 비동기적으로 참조 경로를 생성할 수 있다.
블록 908에서, MPC 시스템(500)은 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 점유 맵에서 중간 위치까지의 주행 경로를 결정할 수 있고, 중간 위치는 참조 경로 상의 포인트에 근접하다. 예를 들면, MPC 시스템(500)은 본원에 설명한 바와 같이, 잠재적 경로를 생성하고, 잠재적 경로에 대한 비용을 결정하고, 주행 경로로서 최저 비용 잠재적 경로를 선택할 수 있다. 대안으로, MPC 시스템(500)은 MPC 솔버를 사용하고 수식 (1) 내지 (13)에 따라 최저 비용 주행 경로를 결정할 수 있다.
블록 910에서, MPC 시스템(500)은 주행 경로에 적어도 부분적으로 기초하여 차량에 대한 작동 커맨드를 생성할 수 있다. 예를 들면, MPC 시스템(500)은 본원에서 설명한 바와 같이, 주행 경로 상에서의 자율 주행 차량의 진행에 따라 조향 각도 및 조향 변화율을 결정할 수 있다.
전술한 설명에서, 본 개시내용의 양태 및 실시예는 구현마다 달라질 수 있는 다수의 특정 세부 사항들을 참조하여 기술되었다. 따라서, 상세한 설명 및 도면들은 제한적인 의미보다는 예시적인 의미로 간주되어야 한다. 본 발명의 범위의 유일한 독점적인 지표, 및 출원인이 본 발명의 범위이도록 의도한 것은, 본 출원에서 특정 형태로 나오는 일련의 청구항의 문언적 등가 범위이며, 그러한 청구항이 나오는 특정 형태는 임의의 후속 보정을 포함한다. 그러한 청구항들에 포함된 용어들에 대한 본원에서 명시적으로 기재된 임의의 정의들은 청구항들에서 사용되는 그러한 용어들의 의미를 결정한다. 추가적으로, 전술한 설명 및 이하의 청구항들에서 "더 포함하는"이라는 용어가 사용될 때, 이 문구에 뒤따르는 것은 추가적인 단계 또는 엔티티, 또는 이전에 언급된 단계 또는 엔티티의 서브단계/서브엔티티일 수 있다.
예
조항 1. 차량의 환경과 연관된 차량 환경 데이터를 수신하는 단계; 상기 차량 환경 데이터를 사용하여 상기 환경의 점유 맵(occupancy map)을 결정하는 단계― 상기 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―; 상기 차량에 대한 목적지 위치까지 참조 경로를 생성하는 단계; 상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하는 단계― 상기 중간 위치는 상기 참조 경로 상의 포인트에 근접함 ―; 및 상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하는 단계를 포함하는, 방법.
조항 2. 조항 1에 있어서, 물리 좌표계에서 상기 차량의 물리적 위치를 결정하는 단계; 및 상기 차량의 물리적 위치를 상기 물리 좌표계에서 상기 점유 맵의 좌표계로 변환함으로써 상기 차량의 점유 맵 위치를 결정하는 단계를 더 포함하고, 상기 중간 위치까지의 주행 경로를 결정하는 단계는, 상기 차량의 점유 맵 위치를 사용하여 상기 중간 위치까지의 주행 경로를 결정하는 단계를 더 포함하는, 방법.
조항 3. 조항 2에 있어서, 상기 물리 좌표계로부터의 상기 참조 경로를 상기 점유 맵의 좌표계로 변환하는 단계; 및 상기 점유 맵의 좌표계로부터의 상기 참조 경로를 상기 물리 좌표계로 변환하는 단계를 더 포함하고, 상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하는 단계는, 상기 점유 맵의 좌표계의 상기 참조 경로를 사용하여 상기 점유 맵에서 상기 중간 위치까지의 주행 경로를 결정하는 단계를 포함하고, 상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하는 단계는, 상기 물리 좌표계의 주행 경로를 사용하여 상기 차량에 대한 작동 커맨드를 생성하는 단계를 포함하는, 방법.
조항 4. 조항 1 내지 3 중 어느 한 항에 있어서, 상기 종방향 변수는 연속 수들의 범위를 포함하는, 방법.
조항 5. 조항 4에 있어서, 수 문턱값을 충족하는 연속 수들은 제1 종방향을 나타내고 상기 수 문턱값을 충족하지 않는 연속 수들은 제2 종방향을 나타내는, 방법.
조항 6. 조항 5에 있어서, 상기 제1 종방향은 전방이고 상기 제2 종방향은 후방인, 방법.
조항 7. 조항 1 내지 6 중 어느 한 항에 있어서, 상기 점유 맵을 사용하여 적어도 하나의 미분 가능 점유 맵 평가치를 생성하는 단계를 더 포함하고, 상기 중간 위치까지의 주행 경로를 결정하는 단계는 상기 적어도 하나의 미분 가능 점유 맵 평가치를 사용하여 상기 중간 위치까지의 주행 경로를 결정하는 단계를 포함하는, 방법.
조항 8. 조항 7에 있어서, 상기 적어도 하나의 미분 가능 점유 맵 평가치를 생성하는 단계는 상기 점유 맵에 적어도 하나의 3차 B-스플라인 기저 함수를 적용하는 단계를 포함하는, 방법.
조항 9. 조항 1 내지 8 중 어느 한 항에 있어서, 상기 주행 경로를 결정하는 단계는: 상기 차량의 적어도 하나의 물리적 제약 및 복수의 가변 제어 입력에 대한 변동에 적어도 부분적으로 기초하여 복수의 잠재적 경로를 결정하는 단계; 가중 정책에 적어도 부분적으로 기초하여 상기 복수의 잠재적 경로 각각과 연관된 비용을 결정하는 단계; 및 상기 복수의 잠재적 경로 각각과 연관되는 결정된 비용에 적어도 부분적으로 기초하여 상기 복수의 잠재적 경로 중에서 상기 주행 경로를 선택하는 단계를 포함하는, 방법.
조항 10. 조항 9에 있어서, 상기 차량의 적어도 하나의 물리적 제약은 상기 차량의 스티어링 휠의 작동 각도를 포함하는, 방법.
조항 11. 조항 9에 있어서, 상기 복수의 잠재적 경로 각각은 복수의 단위 거리 단계(unit-distant step)를 포함하고, 상기 복수의 단위 거리 단계의 각각의 단위 거리 단계는 적어도 하나의 가변 제어 입력과 연관되는, 방법.
조항 12. 조항 9에 있어서, 상기 적어도 하나의 물리적 제약은, 상기 주행 경로의 데카르트 솔루션 공간(cartesian solution space)을, 상기 참조 경로로부터 미리 결정된 거리의 영역 내로 구속하는, 방법.
조항 13. 조항 9에 있어서, 상기 적어도 하나의 물리적 제약은, 차량 방향(vehicle heading)을, 상기 참조 경로 상의 주어진 포인트에 대한 미리 결정된 방향의 범위 내로 구속하는, 방법.
조항 14. 조항 9에 있어서, 상기 가중 정책에 적어도 부분적으로 기초하여 상기 복수의 잠재적 경로 각각과 연관된 비용을 결정하는 단계는, 상기 복수의 잠재적 경로 각각에 대해, 무충돌 운전(collision-free motion) 비용, 컴포트(comfort) 비용, 및 추적 비용을 결정하는 단계를 포함하는, 방법.
조항 15. 조항 14에 있어서, 상기 무충돌 운전 비용은 상기 환경내 적어도 하나의 장애물에 대한 차량 풋프린트의 포인트 세트의 각 포인트에 대한, 모든 예측 단계에서의 충돌 비용의 누적치에 기초하는, 방법.
조항 16. 조항 14에 있어서, 상기 컴포트 비용은 각 예측 단계에서, 적어도 상기 종방향 변수의 변화율 및 조향각의 변화율에 기초하는, 방법.
조항 17. 조항 14에 있어서, 상기 추적 비용은, 각 예측 단계에서, 추적 타겟 위치에서의 상기 참조 경로의 참조 방향과의 제1 차분 및 상기 추적 타겟 위치에서의 상기 참조 경로의 참조 위치와의 제2 차분에 기초하는, 방법.
조항 18. 조항 14에 있어서, 상기 가중 정책은 상기 무충돌 운전 비용, 상기 컴포트 비용, 및 상기 추적 비용에 대한 복수의 가중치를 포함하고, 상기 추적 비용에 대한 상기 복수의 가중치의 가중치 세트는 최종 예측 단계 이전의 중간 예측 단계에 대한 중간 가중치, 및 최종 예측 단계에 대한 최종 가중치를 포함하고, 상기 중간 가중치는 상기 최종 가중치보다 실질적으로 작은, 방법.
조항 19. 시스템에 있어서, 적어도 하나의 프로세서, 및 명령어를 저장한 적어도 하나의 비일시적 저장 매체를 포함하고, 상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금: 차량의 환경과 연관된 차량 환경 데이터를 수신하고; 상기 차량 환경 데이터를 사용하여 상기 환경의 점유 맵을 결정하고― 상기 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―; 상기 차량에 대한 목적지 위치까지 참조 경로를 생성하고; 상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하고― 상기 중간 위치는 상기 참조 경로 상의 포인트에 근접함 ―; 및 상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하게 하는, 시스템.
조항 20. 명령어를 저장한 적어도 하나의 비일시적 저장 매체에 있어서, 상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금: 차량의 환경과 연관된 차량 환경 데이터를 수신하고; 상기 차량 환경 데이터를 사용하여 상기 환경의 점유 맵을 결정하고― 상기 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―; 상기 차량에 대한 목적지 위치까지 참조 경로를 생성하고; 상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하고― 상기 중간 위치는 상기 참조 경로 상의 포인트에 근접함 ―; 및 상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하게 하는, 적어도 하나의 비일시적 저장 매체.
Claims (20)
- 방법에 있어서,
차량의 환경과 연관된 차량 환경 데이터를 수신하는 단계;
상기 차량 환경 데이터를 사용하여 상기 환경의 점유 맵(occupancy map)을 결정하는 단계― 상기 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―;
상기 차량에 대한 목적지 위치까지 참조 경로를 생성하는 단계;
상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하는 단계― 상기 중간 위치는 상기 참조 경로 상의 한 포인트에 근접함 ―; 및
상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드(actuation command)를 생성하는 단계
를 포함하는, 방법. - 제1항에 있어서,
물리 좌표계에서 상기 차량의 물리적 위치를 결정하는 단계; 및
상기 차량의 물리적 위치를 상기 물리 좌표계에서 상기 점유 맵의 좌표계로 변환함으로써 상기 차량의 점유 맵 위치를 결정하는 단계를 더 포함하고,
상기 중간 위치까지의 주행 경로를 결정하는 단계는, 상기 차량의 점유 맵 위치를 사용하여 상기 중간 위치까지의 주행 경로를 결정하는 단계를 더 포함하는, 방법. - 제2항에 있어서,
상기 물리 좌표계로부터의 상기 참조 경로를 상기 점유 맵의 좌표계로 변환하는 단계; 및
상기 점유 맵의 좌표계로부터의 상기 참조 경로를 상기 물리 좌표계로 변환하는 단계를 더 포함하고,
상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하는 단계는, 상기 점유 맵의 좌표계의 상기 참조 경로를 사용하여 상기 점유 맵에서 상기 중간 위치까지의 주행 경로를 결정하는 단계를 포함하고,
상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하는 단계는, 상기 물리 좌표계의 주행 경로를 사용하여 상기 차량에 대한 작동 커맨드를 생성하는 단계를 포함하는, 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 종방향 변수는 연속 수들의 범위를 포함하는, 방법.
- 제4항에 있어서, 수 문턱값(number threshold)을 충족하는 연속 수들은 제1 종방향을 나타내고 상기 수 문턱값을 충족하지 않는 연속 수들은 제2 종방향을 나타내는, 방법.
- 제5항에 있어서, 상기 제1 종방향은 전방이고 상기 제2 종방향은 후방인, 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 점유 맵을 사용하여 적어도 하나의 미분 가능 점유 맵 평가치를 생성하는 단계를 더 포함하고,
상기 중간 위치까지의 주행 경로를 결정하는 단계는, 상기 적어도 하나의 미분 가능 점유 맵 평가치를 사용하여 상기 중간 위치까지의 주행 경로를 결정하는 단계를 포함하는, 방법. - 제7항에 있어서, 상기 적어도 하나의 미분 가능 점유 맵 평가치를 생성하는 단계는 상기 점유 맵에 적어도 하나의 3차 B-스플라인 기저 함수를 적용하는 단계를 포함하는, 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 주행 경로를 결정하는 단계는:
상기 차량의 적어도 하나의 물리적 제약 및 복수의 가변 제어 입력에 대한 변동에 적어도 부분적으로 기초하여 복수의 잠재적 경로를 결정하는 단계;
가중 정책에 적어도 부분적으로 기초하여 상기 복수의 잠재적 경로 각각과 연관된 비용을 결정하는 단계; 및
상기 복수의 잠재적 경로 각각과 연관되는 결정된 비용에 적어도 부분적으로 기초하여 상기 복수의 잠재적 경로 중에서 상기 주행 경로를 선택하는 단계를 포함하는, 방법. - 제9항에 있어서, 상기 차량의 적어도 하나의 물리적 제약은 상기 차량의 스티어링 휠의 작동 각도를 포함하는, 방법.
- 제9항에 있어서, 상기 복수의 잠재적 경로 각각은 복수의 단위 거리 단계(unit-distant step)를 포함하고, 상기 복수의 단위 거리 단계의 각각의 단위 거리 단계는 적어도 하나의 가변 제어 입력과 연관되는, 방법.
- 제9항에 있어서, 상기 적어도 하나의 물리적 제약은, 상기 주행 경로의 데카르트 솔루션 공간(cartesian solution space)을, 상기 참조 경로로부터 미리 결정된 거리의 영역 내로 구속하는, 방법.
- 제9항에 있어서, 상기 적어도 하나의 물리적 제약은, 차량 방향(vehicle heading)을, 상기 참조 경로 상의 주어진 포인트에 대한 미리 결정된 방향의 범위 내로 구속하는, 방법.
- 제9항에 있어서, 상기 가중 정책에 적어도 부분적으로 기초하여 상기 복수의 잠재적 경로 각각과 연관된 비용을 결정하는 단계는, 상기 복수의 잠재적 경로 각각에 대해, 무충돌 운전(collision-free motion) 비용, 컴포트(comfort) 비용, 및 추적 비용을 결정하는 단계를 포함하는, 방법.
- 제14항에 있어서, 상기 무충돌 운전 비용은 상기 환경내 적어도 하나의 장애물에 대한 차량 풋프린트의 포인트 세트의 각 포인트에 대한, 모든 예측 단계들에서의 충돌 비용의 누적치에 기초하는, 방법.
- 제14항에 있어서, 상기 컴포트 비용은 각 예측 단계에서, 적어도 상기 종방향 변수의 변화율 및 조향각의 변화율에 기초하는, 방법.
- 제14항에 있어서, 상기 추적 비용은, 각 예측 단계에서, 추적 타겟 위치에서의 상기 참조 경로의 참조 방향과의 제1 차분 및 상기 추적 타겟 위치에서의 상기 참조 경로의 참조 위치와의 제2 차분에 기초하는, 방법.
- 제14항에 있어서, 상기 가중 정책은 상기 무충돌 운전 비용, 상기 컴포트 비용, 및 상기 추적 비용에 대한 복수의 가중치를 포함하고, 상기 추적 비용에 대한 상기 복수의 가중치의 가중치 세트는 최종 예측 단계 이전의 중간 예측 단계에 대한 중간 가중치, 및 상기 최종 예측 단계에 대한 최종 가중치를 포함하고, 상기 중간 가중치는 상기 최종 가중치보다 작은, 방법.
- 시스템에 있어서,
적어도 하나의 프로세서; 및
명령어를 저장한 적어도 하나의 비일시적 저장 매체
를 포함하고,
상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금:
차량의 환경과 연관된 차량 환경 데이터를 수신하고;
상기 차량 환경 데이터를 사용하여 상기 환경의 점유 맵을 결정하고― 상기 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―;
상기 차량에 대한 목적지 위치까지 참조 경로를 생성하고;
상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하고― 상기 중간 위치는 상기 참조 경로 상의 한 포인트에 근접함 ―;
상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하게
하는, 시스템. - 명령어를 저장한 적어도 하나의 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금:
차량의 환경과 연관된 차량 환경 데이터를 수신하고;
상기 차량 환경 데이터를 사용하여 상기 환경의 점유 맵을 결정하고― 상기 점유 맵은 환경내 적어도 하나의 장애물을 식별함 ―;
상기 차량에 대한 목적지 위치까지 참조 경로를 생성하고;
상기 참조 경로 및 종방향 변수에 적어도 부분적으로 기초하여 상기 점유 맵에서 중간 위치까지의 주행 경로를 결정하고― 상기 중간 위치는 상기 참조 경로 상의 한 포인트에 근접함 ―;
상기 주행 경로에 적어도 부분적으로 기초하여 상기 차량에 대한 작동 커맨드를 생성하게
하는, 적어도 하나의 비일시적 컴퓨터 판독 가능 저장 매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263332976P | 2022-04-20 | 2022-04-20 | |
US63/332,976 | 2022-04-20 | ||
US17/744,252 US20230339505A1 (en) | 2022-04-20 | 2022-05-13 | Bidirectional path optimization in a grid |
US17/744,252 | 2022-05-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230149709A true KR20230149709A (ko) | 2023-10-27 |
Family
ID=84926663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220168811A KR20230149709A (ko) | 2022-04-20 | 2022-12-06 | 그리드에서의 양방향 경로 최적화 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230339505A1 (ko) |
KR (1) | KR20230149709A (ko) |
DE (1) | DE102022131626A1 (ko) |
GB (1) | GB2617885A (ko) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5646843A (en) * | 1990-02-05 | 1997-07-08 | Caterpillar Inc. | Apparatus and method for surface based vehicle control system |
US11003183B2 (en) * | 2017-09-13 | 2021-05-11 | Baidu Usa Llc | Driving scene based path planning for autonomous driving vehicles |
JP2021077090A (ja) * | 2019-11-08 | 2021-05-20 | 三菱重工業株式会社 | 複数のビークルの移動制御方法、移動制御装置、移動制御システム、プログラム及び記録媒体 |
US11520338B2 (en) * | 2020-02-27 | 2022-12-06 | Uatc, Llc | Systems and methods for vehicle spatial path sampling |
JP7502044B2 (ja) * | 2020-02-28 | 2024-06-18 | フォルシアクラリオン・エレクトロニクス株式会社 | 駐車支援装置、及び駐車支援システム |
US11592830B2 (en) * | 2020-05-29 | 2023-02-28 | Zoox, Inc. | Trajectory generation using lateral offset biasing |
CN116134292A (zh) * | 2020-10-30 | 2023-05-16 | 法弗人工智能有限公司 | 用于性能测试和/或训练自动驾驶车辆规划器的工具 |
US12054145B2 (en) * | 2020-12-10 | 2024-08-06 | Motional Ad Llc | Lane connectors as a constraint |
US20220283587A1 (en) * | 2021-03-02 | 2022-09-08 | Motional Ad Llc | Controlling an autonomous vehicle using a proximity rule |
-
2022
- 2022-05-13 US US17/744,252 patent/US20230339505A1/en active Pending
- 2022-11-29 DE DE102022131626.2A patent/DE102022131626A1/de active Pending
- 2022-12-02 GB GB2218163.0A patent/GB2617885A/en active Pending
- 2022-12-06 KR KR1020220168811A patent/KR20230149709A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
DE102022131626A1 (de) | 2023-10-26 |
GB2617885A (en) | 2023-10-25 |
GB202218163D0 (en) | 2023-01-18 |
US20230339505A1 (en) | 2023-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200216064A1 (en) | Classifying perceived objects based on activity | |
KR20230166129A (ko) | 에이전트 궤적 예측 | |
US20230415739A1 (en) | Systems and methods for controlling longitudinal acceleration based on lateral objects | |
US20230415736A1 (en) | Systems and methods for controlling longitudinal acceleration based on lateral objects | |
US20230294741A1 (en) | Agent importance prediction for autonomous driving | |
US20230415781A1 (en) | Systems and methods for controlling longitudinal acceleration based on lateral objects | |
KR20230144954A (ko) | 차량 궤적 생성을 위한 추적기 포지션 업데이트들 | |
WO2023167759A1 (en) | System, method, and computer program product for detecting and preventing an autonomous driving action | |
US20230195128A1 (en) | Methods and systems for agent prioritization | |
KR20230149709A (ko) | 그리드에서의 양방향 경로 최적화 | |
US11634158B1 (en) | Control parameter based search space for vehicle motion planning | |
US20240025452A1 (en) | Corridor/homotopy scoring and validation | |
US12122417B2 (en) | Discriminator network for detecting out of operational design domain scenarios | |
KR102645980B1 (ko) | 플래너에서 보정된 미래 기동 파라미터 생성 | |
US20230227032A1 (en) | Vehicle Dynamics Classification for Collision and Loss of Control Detection | |
US20240190452A1 (en) | Methods and systems for handling occlusions in operation of autonomous vehicle | |
US20240051568A1 (en) | Discriminator network for detecting out of operational design domain scenarios | |
US12043290B2 (en) | State identification for road actors with uncertain measurements based on compliant priors | |
US20240253663A1 (en) | Generating worst-case constraints for autonomous vehicle motion planning | |
US20240123996A1 (en) | Methods and systems for traffic light labelling via motion inference | |
US20230063368A1 (en) | Selecting minimal risk maneuvers | |
US20240253667A1 (en) | Methods and systems for long-term trajectory prediction by extending a prediction horizon | |
US20240192369A1 (en) | Systems and methods for infant track association with radar detections for velocity transfer | |
US20240051581A1 (en) | Determination of an action for an autonomous vehicle in the presence of intelligent agents | |
US20230373523A1 (en) | Systems and methods for biasing a trajectory of an autonomous vehicle while moving in a lane |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |