자율주행으로의 진입 및 자율주행에서의 해제

申请号 KR1020167009397 申请日 2013-11-26 公开(公告)号 KR101703113B1 公开(公告)日 2017-02-06
申请人 구글 엘엘씨; 发明人 쿨리네인브라이언; 네멕필립; 클레멘트매뉴얼크리스티안; 마리에트로버투스크리스티아너스엘리자베스; 존슨릴리잉그-마리;
摘要 본발명의양상들은자율주행모드와수동운전모드사이에서의전환에관한것이다. 그렇게하도록, 차량의컴퓨터는특정조건들을식별하도록일련의환경, 시스템및 운전자체크들을수행할수 있다. 상기컴퓨터는이러한조건들중 일부를수정할수 있고, 또한완료를위해태스크들의체크리스트를운전자에게제공할수 있다. 상기태스크들이일단완료되고, 상기조건들이변경되면, 상기컴퓨터는상기운전자로하여금수동운전모드에서자율주행모드로전환하도록할 수있다. 상기컴퓨터는또한특정조건들하에서, 운전자의안전을위협하는결정또는자율주행모드에서수동운전모드로전환하는데있어안전한결정을내릴수 있다.
权利要求
  • 방법으로서,
    하나 이상의 프로세서에 의해, 차량(vehicle)을 자율주행 모드(autonomous driving mode)에서 동작시키라는 요청을 상기 차량의 승객으로부터 수신하는 단계;
    상기 요청의 수신에 응답하여, 상기 하나 이상의 프로세서에 의해, 승객의 안전벨트가 적절히 착용되지 않았다는 결정을 사용하는 단계;
    상기 하나 이상의 프로세서에 의해, 적어도 상기 승객의 안전벨트가 적절히 착용되지 않았다는 결정에 기초하여 태스크(task)들의 세트를 발생시키는 단계 - 상기 태스크들의 세트 중 제1 태스크는 상기 승객의 안전벨트를 적절히 착용시키는 것을 포함하고, 상기 태스크들의 세트의 각각의 태스크에는 우선순위 레벨이 할당됨 - ;
    상기 태스크들의 세트의 우선순위 레벨들에 기초하여 상기 제1 태스크를 선택하는 단계;
    상기 하나 이상의 프로세서에 의해, 상기 차량의 디스플레이 상에서 상기 제1 태스크를 완료하라는 요청을 상기 차량의 승객에게 디스플레이하는 단계; 및
    상기 태스크들의 세트의 모든 태스크들이 완료되었다고 결정되는 경우에만, 상기 하나 이상의 프로세서에 의해, 상기 차량이 상기 자율주행 모드에서 동작하도록 허용하는 단계
    를 포함하는 방법.
  • 제1항에 있어서,
    상기 제1 태스크가 완료되었다고 결정하는 단계;
    상기 태스크들의 세트의 태스크들의 우선순위 레벨들에 기초하여 상기 태스크들의 세트 중 제2 태스크를 선택하는 단계; 및
    상기 제2 태스크를 완료하라는 요청을 디스플레이하는 단계
    를 더 포함하는 방법.
  • 삭제
  • 제1항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 상기 하나 이상의 프로세서에 의해 완료되는 방법.
  • 제1항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 상기 차량을 상기 승객에 의해 특정 위치로 이동시키는 것을 포함하는 방법.
  • 제1항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 또한 도로의 특성에 기초하여 생성되는 방법.
  • 제1항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 또한 도로에 대한 상기 차량의 위치에 기초하여 생성되는 방법.
  • 제1항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 또한 상기 차량이 최소 유지 기준을 충족했는지 여부에 기초하여 생성되는 방법.
  • 제1항에 있어서,
    상기 제1 태스크가 완료된 후에 새로운 태스크들의 세트를 생성하는 단계 - 상기 새로운 태스크들의 세트의 각각의 태스크는 새로운 우선순위 레벨에 연관됨 - ; 및
    상기 새로운 우선순위 레벨들에 기초하여 상기 새로운 태스크들의 세트 중 제2 태스크를 선택하는 단계
    를 더 포함하고,
    상기 새로운 태스크들의 세트의 모든 태스크들이 완료되었다고 결정되는 경우에만, 상기 차량이 상기 자율주행 모드에서 동작하도록 허용되는 방법.
  • 시스템으로서,
    차량과 연관된 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    차량을 자율주행 모드에서 동작시키라는 요청을 차량의 승객으로부터 수신하고;
    상기 요청의 수신에 응답하여, 승객의 안전벨트가 적절히 착용되지 않았다는 결정을 사용하고;
    적어도 상기 승객의 안전벨트가 적절히 착용되지 않았다는 결정에 기초하여 태스크들의 세트를 발생시키고 - 상기 태스크들의 세트 중 제1 태스크는 상기 승객의 안전벨트를 적절히 착용시키는 것을 포함하고, 상기 태스크들의 세트의 각각의 태스크에는 우선순위 레벨이 할당됨 - ;
    상기 태스크들의 세트의 우선순위 레벨들에 기초하여 상기 제1 태스크를 선택하고;
    상기 차량의 디스플레이 상에서 상기 제1 태스크를 완료하라는 요청을 상기 차량의 승객에게 디스플레이하고;
    상기 태스크들의 세트의 모든 태스크들이 완료되었다고 결정되는 경우에만, 상기 차량이 상기 자율주행 모드에서 동작하도록 허용하도록
    구성되는 시스템.
  • 제10항에 있어서,
    상기 차량을 더 포함하는 시스템.
  • 제10항에 있어서,
    상기 하나 이상의 프로세서들은 또한,
    상기 제1 태스크가 완료되었다고 결정하고;
    상기 태스크들의 세트의 태스크들의 우선순위 레벨들에 기초하여 상기 태스크들의 세트 중 제2 태스크를 선택하고;
    상기 제2 태스크를 완료하라는 요청을 디스플레이하도록
    구성된 시스템.
  • 삭제
  • 제11항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 상기 하나 이상의 프로세서에 의해 완료되는 시스템.
  • 제11항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 상기 차량을 상기 승객에 의해 특정 위치로 이동시키는 것을 포함하는 시스템.
  • 제11항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 또한 도로의 특성에 기초하여 생성되는 시스템.
  • 제11항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 또한 도로에 대한 상기 차량의 위치에 기초하여 생성되는 시스템.
  • 제11항에 있어서,
    상기 태스크들의 세트 중 적어도 하나의 태스크는 또한 상기 차량이 최소 유지 기준을 충족했는지 여부에 기초하여 생성되는 시스템.
  • 제11항에 있어서,
    상기 하나 이상의 프로세서들은 또한,
    상기 제1 태스크가 완료된 후에 새로운 태스크들의 세트를 생성하고 - 상기 새로운 태스크들의 세트의 각각의 태스크는 새로운 우선순위 레벨에 연관됨 - ; 및
    상기 새로운 우선순위 레벨들에 기초하여 상기 새로운 태스크들의 세트 중 제2 태스크를 선택하도록
    구성되고,
    상기 새로운 태스크들의 세트의 모든 태스크들이 완료되었다고 결정되는 경우에만, 상기 차량이 상기 자율주행 모드에서 동작하도록 허용되는 시스템.
  • 说明书全文

    자율주행으로의 진입 및 자율주행에서의 해제{ENGAGING AND DISENGAGING FOR AUTONOMOUS DRIVING}

    관련 출원들에 대한 상호 참조

    본 출원은, 그 전체 내용이 본 명세서에 참조 문헌으로 병합된 2012년 11월 30일에 출원된 미국 가출원 번호 61/731,717의 출원일의 이익을 청구하는, 2013년 3월 11일에 출원된 미국 특허 출원 번호 13/792,774의 연속이다.

    본 발명은 자율주행으로의 진입 및 자율주행에서의 해제에 관한 것이다.

    자율주행 자동차들은, 하나의 위치에서 다른 위치로 승객들을 운송하는 것을 돕기 위해 여러 컴퓨팅 시스템들을 사용한다. 일부 자율주행 자동차들은, 파일롯, 운전자 또는 승객과 같은 오퍼레이터로부터 일부 초기 입력 또는 계속된 입력을 요구할 수 있다. 오퍼레이터가 수동 운전 모드(상기 오퍼레이터가 운송 수단을 이동시키는 것에 대해 높은 수준의 제어를 훈련함)로부터 자율주행 모드(근본적으로 운송 수단 스스로 운행)로 또는 상기 2개의 모드들 중 어딘가에 존재하는 모드로 전환하는 것을 허용하는 다른 시스템들, 예를 들어, 자동 운항 시스템들은 상기 시스템이 관여될 때에만 사용될 수 있다.

    본 발명의 양상들은 방법을 제공한다. 그와 같은 양상들에서, 상기 방법은 차량(vehicle)을 수동 운전 모드(manual driving mode)로부터 자율주행 모드(autonomous driving mode)로 전환하도록 하는 요청을 수신하는 단계를 포함한다. 상기 요청을 수신하는 것에 응답하여, 프로토콜 데이터는 액세스된다. 이러한 프로토콜 데이터는, 프로세서에 의해, 상기 차량의 환경의 상태, 상기 차량 및 상기 차량의 시스템들, 및 운전자를 평가하도록 사용되고, 하나 이상의 조건들을 식별한다. 상기 방법은, 또한, 상기 조건을 변경하기 위해 운전자에 의해 수행될 수 있는 태스크(task)들과 조건들을 관련시키는 태스크 데이터에 액세스하는 단계를 포함한다. 상기 태스크 데이터는 태스크들의 세트를 발생시키기 위해 사용된다. 상기 태스크들의 세트 중 각 태스크는 순서화된 시퀀스(ordered sequence)로 디스플레이된다. 일단 상기 태스크들이 완료되면, 수동 운전 모드에서 자율주행 모드로 의 전환이 수행될 수 있다.

    일 예에서, 상기 차량의 환경의 상태, 상기 차량 및 상기 차량의 시스템들, 및 운전자를 평가하는 단계는, 센서 데이터에 액세스하는 단계, 상세 맵 정보에 액세스하는 단계, 상기 차량의 여러 시스템들과 통신하는 단계 및 원격 컴퓨터와 통신하는 단계를 포함한다.

    상기 평가들은, 예를 들어, 현재 또는 장래의 기상(weather)이 자율주행을 안전하지 못하게 하고 상기 차량의 승객들을 불편하게 하거나 상기 차량을 손상시키는지, 상기 차량의 실제 위치가 상기 상세 맵 정보에 관련된 상기 차량의 위치와 일치하는지, 상기 검출 시스템의 센서들로부터 수신된 데이터가 대응하는 상세 맵 정보와 일치하는지, 상기 자율주행 모드를 개시하기 위해 상기 차량이 사전-승인된 영역에서 현재 운행 중인지, 상기 자율주행 모드를 개시하기 위해 상기 차량이 사전-승인된 차선에서 현재 운행 중인지, 도로가 포장되어 있는지(맨 흙 상태인 것과 대조됨), 상기 도로가 충분히 넓은지(2대의 차량들이 서로 지나갈 수 없을 정도로 좁은 것과 대조됨), 차량이 곧은 도로상에 있는지(곡선으로, 언덕 아래 또는 위로 운행하는 것과 대조됨), 차량이 충분하게 차선의 중앙에 위치하는지, 차량이 (예를 들어, 밀집한 교통 상황에서) 다른 차량들에 의해 둘러싸이거나 갇히는지, 차량이 현재 어린이 보호 구역에 있는지, 차량이 다가오는 교통 흐름과 마주치고 있는지(예를 들어, 상세 맵 정보에 따라 남쪽으로 향하는 차선에서 북쪽으로 향하게 운전하고 있는지), 다른 차량이 상기 차량에 근접한 차량의 차선에 접근하는지, 차량이 다른 차량들 또는 도로 위의 움직이는 물체들로부터 적어도 일정한 미리결정된 최소 거리에 있는지, 차량이 도로 내의 움직이지 않거나 느리게 움직이는 물체들을 피하기 위해 어떤 작은 조작들을 해야하는지, 차량이 너무 빨리 또는 너무 느리게 움직이고 있는지, 어떤 다음 조작들(upcoming maneuvers)이 수동 운전 모드로부터 자율주행 모드로의 전환을 방지하는지, 수동 운전 모드로의 전환이 요구되기전 최소한의 기간 동안 상기 차량이 상기 자율주행 모드로 운전될 수 있는지, 차량의 자율주행 운전 시스템의 여러 피처들 적절히 작동하는지, 상기 차량이 최소 유지 기준들을 충족하는지(예를 들어, 오일 교환이 최근에 이뤄졌는지), 차량의 타이어들이 적절히 바람이 들어있는지, 상기 차량의 문들이 닫혀있는지, 상기 차량이 현재 "주행(drive)" 중인지("중립(neutral)", "후진(reverse)" 또는 "주차(park)"와 대조), 차량이 (예를 들어, 운전자가 4륜 구동 또는 전륜 구동으로 전환을 허용하는 차량에서) 2륜 구동으로 있는지, 차량의 자동 와이퍼들이 현재 온(on) 상태인지, 차량의 헤드라이트들 또는 안개등들이 온(on) 인지, 다른 경고 표시기들(예를 들어, 엔진 등 체크)이 현재 작동하지 않는지, 그리고 상기 운전자의 안전벨트가 적� ��히 착용되었는지를 결정하는 것 중 하나 이상을 포함할 수 있다.

    수동 모드에서 자동 모드로 전환을 방지하는 다른 조건들은, 차량이 "운전(drive)"에 있지 않고, 상기 자동 와이퍼들이 온에 있지 않고, 자동 전등들이 온에 있지 않고, 자율주행을 개시하기 위해 차량이 자동운전 차선에 있지 않은 것을 포함할 수 있다. 그와 같은 경우들에서, 발생된 태스크들을 세트는, 상기 차량을 "운전(drive)"으로 두고, 자동 와이퍼들을 켜고, 자동 전등들을 켜고, 자율주행을 개시하기 위해 상기 차량을 사전-승인된 차선으로 움직이는 것을 포함할 수 있다. 이러한 예에서, 디스플레이된 태스크들의 시퀀스는, 상기 차량을 운전으로 두는 제1 디스플레이된 태스크, 자동 와이퍼들을 켜는 제2 디스플레이된 태스크, 자동 전등들을 켜는 제3 디스플레이된 태스크, 및 자율주행을 개시하기 위해 상기 차량을 사전-승인된 차선에서 움직이는 제4 디스플레이된 태스크를 포함한다. 상기 제1 디스플레이된 태스크는 완료가 확인될 때까지 디스플레이된다. 상기 제1 디스플레이된 태스크가 완료될 때, 상기 제2 디스플레이된 태스크는 상기 제2 태스크가 완료될 때까지 디스플레이된다. 상기 제2 디스플레이된 태스크가 완료될 때, 상기 제3 디스플레이된 태스크는 상기 제3 태스크가 완료될 때까지 디스플레이된다. 상기 제3 디스플레이된 태스크가 완료될 때, 상기 제4 디스플레이된 태스크는 상기 제4 태스크가 완료될 때까지 디스플레이된다.

    다른 예에서, 상기 방지 조건들은, 상기 차량이 "운전" 중이 아닌 것, 상기 자동 와이퍼들이 온이 아닌 것, 상기 자동 전등들이 온이 아닌 것, 상기 차량이 자율주행을 개시하기 위해 사전-승인된 차선에 있지 않은 것, 상기 차량이 차선의 중앙에 있지 않은 것, 상기 차량이 너무 빠르게 움직이는 것, 그리고 상기 차량이 도로에서 다른 물체와 너무 가까운 것을 포함할 수 있다. 이러한 예에서, 상기 발생된 태스크들의 세트는, 상기 차량을 운전 중인 것으로 두는 것, 자동 와이퍼들을 켜는 것, 자동 전등들을 켜는 것, 상기 차량을 자율주행을 개시하기 위해 사전-승인된 차선으로 움직이는 것, 상기 차량을 차선의 중앙에 두는 것, 상기 차량의 속도를 낮추는 것 그리고 상기 차량과 도로 상의 다른 물체의 거리를 증가시키는 것을 포함할 수 있다.

    다른 예에서, 상기 방법은 또한, 상기 태스크들의 세트를 발생시키기 위해 상기 태스크 데이터를 사용하기 전에, 상기 프로세서에 의한 수정을 위해 사전-승인된 상기 식별된 하나 이상의 조건들을, 상기 프로세서에 의해 수정하는 단계를 포함한다. 다른 예에서, 상기 상태를 평가하는 것은, 상기 태스크들이 완료되는 동안 연속적으로 수행된다. 이와 관련하여, 추가적인 조건들이 식별될 수 있고, 그리고 상기 태스크들의 세트에 추가적인 태스크들을 부가하도록 사용될 수 있다.

    다른 예에서, 상기 방법은, 또한, 상기 자율주행 모드로 전환한 후에, 상기 차량을 상기 자율주행 모드에서 조작하는 단계 및 상기 자율주행 모드로부터 상기 수동 모드로 전환하도록하는 요청을 수신하는 단계를 포함할 수 있다. 액션이 완료되기 전에는 상기 운전자에게 안전하게 또는 용이하게 전달될 수 없는 상기 액션을 수행할 때, 이러한 요청은 권해지지 않거나 거절될 수 있다. 이러한 예에서, 사용자가 수동 모드로 되돌아가길 원한다는 사용자에 의한 지시에 응답하여, 수동 운전 모드로의 전환이 권해지지 않을 때, 경고가 운전자에 디스플레이될 수 있다.

    본 발명의 여러 양상들은 상기에서 서술된 방법들의 여러 피처들의 일부 또는 전부를 수행하는 프로세서를 포함하는 시스템들을 제공한다. 또한, 본 발명의 추가적인 양상들은, 프로그램의 컴퓨터-판독가능한 명령어들이 저장되는 비-일시적이고, 유형의 컴퓨터-판독가능한 저장 매체를 제공한다. 상기 프로세서에 의해 실행될 때, 상기 명령어들은, 프로세서로 하여금, 상기에서 서술된 방법들의 여러 피처들의 일부 또는 전부를 수행하도록 한다.

    도 1은 본 발명의 양상들에 따른 시스템의 기능적인 다이어그램이다.
    도 2는 본 발명의 양상들에 따른 자율주행 차량의 내부이다.
    도 3은 본 발명의 양상들에 따른 자율주행 차량의 외부이다.
    도 4는 본 발명의 양상들에 따른 예로서 사용되는 고속도로를 도시한다.
    도 5는 본 발명의 양상들에 따른 맵 정보의 예이다.
    도 6은 본 발명의 양상들에 따른 맵 정보의 다른 예이다.
    도 7a는 본 발명의 양상들에 따른 시스템의 도식적인 다이어그램이다.
    도 7b는 본 발명의 양상들에 따른 시스템의 기능적인 다이어그램이다.
    도 8은 본 발명의 양상들에 따른 일련의 스크린 이미지들이다.
    도 9는 본 발명의 양상들에 따른 일련의 스크린 이미지들이다.
    도 10은 본 발명의 양상들에 따른 흐름도이다.

    운전자가 자율주행 모드에서 차량을 작동하거나, 예를 들어, 차량의 제어를 상기 차량의 컴퓨터에게 이관하거나, 운전자가 자율주행 모드에서 수동 운전 모드로 전환하도록 하기 전에, 상기 차량은 여러가지 결정들을 할 수 있다. 이것은 일련의 환경, 시스템 및 운전자 체크들을 수행하는 것을 포함할 수 있고, 또한, 상기 차량의 제어를 상기 차량의 컴퓨터로 이관하기 전에 운전자에게 태스크들의 리스트를 제공하는 것을 포함할 수 있다.

    일 예에서, 자율주행 모드 및 수동 운전 모드를 갖는 차량과 관련된 컴퓨터는 수동 운전 모드로부터 자율주행 모드로 전환하도록 하는 요청을 수신할 수 있다. 상기 컴퓨터는, 이후 프로토콜 데이터를 액세스하고, 상기 차량의 현재 환경, 상기 차량의 가까운 장래의 환경, 상기 차량 및 운전자의 상태를 평가하도록 상기 프로토콜 데이터를 사용함으로써 응답할 수 있다. 이후, 상기 차량이 자율주행 모드로 들어가는 것을 방지하기 위해 상기 시스템이 사용하는 식별된 어떤 조건들(이후 "방지 조건들"이라고 함)을 이러한 평가들이 갖는지를 상기 컴퓨터는 결정할 수 있다. 그렇지 않으면, 상기 컴퓨터는 수동 모드로부터 자율 주행 모드로의 전환을 수행할 수 있다.

    상기 평가들의 결과로서, 상기 컴퓨터가 하나 이상의 방지 조건들을 식별하면, 상기 컴퓨터는, 상기 컴퓨터 또는 운전자가 즉시 또는 특정 기간 내에 이러한 식별된 조건들을 변경할 수 있을지를 결정할 수 있다. 상기 방지 조건들이 그렇게 변경될 수 없으면, 상기 컴퓨터는 실패 메시지를 드라이버에 디스플레이할 수 있다. 일부 예시들에서, 이러한 실패 메시지는 상기 실패에 대한 특정 이슈를 나타낼 수 있다.

    컴퓨터가 상기 식별된 방지 조건들을 변경시킬 수 있으면, 상기 컴퓨터는 그렇게 하는데 필요한 액션들을 취할 수 있다. 컴퓨터가 상기 방지 조건들을 다르게 변경시킬 수 있더라도, 상기 차량은 상기 조건을 변경하도록 상기 운전자에게 요청하도록 설계될 수 있다. 예를 들어, 상기 운전자는 상기 방지 조건이 변경될 수 있는지를 그리고 상기 방지 조건이 변경될 수 있는 방법을 평가하기 위해 더 양호한(better) 위치에 존재할 수 있다. 어떤 식별된 방지 조건들이 남아있지 않으면, 상기 컴퓨터는 상기 수동 모드로부터 자율 주행 모드로 전환을 수행할 수 있다.

    상기 컴퓨터 상기 방지 조건들 중 일부를 수정한 후, 다른 방지 조건들이 남아있으면, 상기 컴퓨터는 대응하는 태스크 또는 나머지 문제있는 조건들 각각에 대한 태스크를 발생시킬 수 있다. 상기 컴퓨터는 이후 상기 태스크들을 우선순위에 따라 상기 운전자에게 디스플레이할 수 있다. 예를 들어, 상기 컴퓨터는 항상 상기 태스크들을 미리결정된 순서로 한번에 하나씩 디스플레이하거나 또는 나머지 태스크들이 디스플레이되어야 하는 순서를 동적으로 결정하도록 프로그래밍될 수 있다. 일단 상기 태스크가 완료되면, 상기 컴퓨터는 완료를 위해 다음 태스크를 디스플레이할 수 있다. 상기 컴퓨터는 각 태스크가 수정될 때까지 상기 태스크들을 계속해서 디스플레이할 수 있고, 이후, 상기 컴퓨터는 수동 모드로부터 자율주행 모드로의 전환을 수행할 수 있다. 추가로, 다른 단계들이 도시되는 동안 상기 단계들 중 하나가 완료되면, 이후 상기 완료된 태스크는 제거될 수 있도록 이러한 리스트는 주기적으로 재계산될 수 있다.

    운전자가 상기 태스크들을 수행하는 동안, 컴퓨터는 어떤 추가 방지 조건들을 식별하기 위해 앞서 언급된 평가들을 계속해서 행할 수 있다. 이러한 조건들은, 이후, 상기 컴퓨터로 하여금 에러 메시지를 디스플레이하도록 하고, 추가적인 방지 조건들을 수정하도록 하거나, 또는 운전자에 의한 완료를 위해 추가적인 태스크들을 발생시키고 디스플레이하도록 할 수 있다. 다시, 상기 방지 조건들 모두가 수정되면, 상기 컴퓨터는 상기 수동 모드로부터 상기 자율 주행 모드로 전환을 수행하도록 할 수 있다.

    상기 컴퓨터는, 유사하게 상기 자율주행 모드에서 상기 수동 운전 모드로 상기 차량을 전환하는 것이 현재 권해지고 있지 않은지를 결정하기 위해 평가들을 할 수 있다.

    도 1에서 도시된 것처럼, 자율 주행 시스템(100)은 여러 컴포넌트들을 갖는 차량(101)을 포함할 수 있다. 본 발명의 특정 양상들이 특정 타입들의 차량들과 관련하여 특히 유용한 반면, 상기 차량은 승용차들, 트럭들, 모터사이클들, 버스들, 보트들, 비행기들, 헬리콥터들, 잔디깎는 기계들, 레크레이션용 차량들, 놀이 공원 차량들, 농장 시설, 건설 장비, 전차들, 골프 카트들, 열차들 및 트롤리들을 포함하는 임의의 타입의 차량을 포함할 수 있지만, 이에 한정되지 않는다. 상기 차량은, 하나 이상의 컴퓨터들, 예를 들어, 프로세서(120), 메모리(130) 및 범용 컴퓨터들에 통상적으로 존재하는 다른 컴포넌트들을 포함하는 컴퓨터(110)를 가질 수 있다.

    상기 메모리(130)는, 명령어들(132) 및 데이터(134)를 포함하는, 프로세서(120)에 의해 액세스가능한 정보를 저장하고, 상기 데이터(134)는 상기 프로세서(120)에 의해 실행되거나 다르게 사용될 수 있다. 상기 메모리(130)는, 컴퓨터-판독가능한 매체 또는 하드-드라이브, 메모리 카드, ROM, RAM, DVD 또는 다른 광학 디스크들과 같은 전자 디바이스의 도움으로 판독될 수 있는 데이터를 저장하는 다른 매체와 함께 다른 기입-가능 메모리 및 판독-전용 메모리를 포함하는, 상기 프로세서에 의해 액세스가능한 정보를 저장할 수 있는 임의의 타입의 메모리일 수 있다. 시스템들 및 방법들은 상기의 것들의 서로 다른 조합들을 포함할 수 있고, 상기 명령어들 및 데이터의 서로 다른 부분들은 서로 다른 타입들의 매체들에 저장된다.

    상기 명령어들(132)은 상기 프로세서에 의해 직접 실행될 수 있거나(예를 들어, 머신 코드) 또는 간접적으로 실행될 수 있다(예를 들어, 스크립트들). 예를 들어, 상기 명령어들은, 상기 컴퓨터-판독가능한 매체 상에서 컴퓨터 코드로서 저장될 수 있다. 이와 관련하여, 상기 용어들 "명령어들(instructions)" 및 "프로그램들(programs)"은 여기에서 호환가능하게 사용될 수 있다. 상기 명령어들은 상기 프로세서에 의하여 직접 처리를 위한 객체 코드로 저장될 수 있거나, 요구시 해석되거나 사전에 컴파일링된 독립적인 소스 코드 모듈들의 스크립트들 또는 컬렉션들을 포함하는 임의의 다른 컴퓨터 언어로 저장될 수 있다. 상기 명령어들의 기능들, 방법들 또는 루틴들은 아래에서 더 상세하게 설명된다.

    상기 데이터(134)는 상기 명령어들(132)에 따라 프로세서(120)에 의해 검색, 저장 또는 수정될 수 있다. 예를 들어, 상기 청구된 대상은 임의의 특정 데이터 구조에 의해 제한되지 않지만, 상기 데이터는, 복수의 서로 다른 필드들 및 레코드들, XML 문서들 또는 플랫 파일들을 갖는 테이블과 같은 관계형 데이터베이스(relational database)로, 컴퓨터 레지스터들에 저장될 수 있다. 상기 데이터는 또한 임의의 컴퓨터 판독가능한 포맷으로 포맷될 수 있다. 단지 추가적인 예로서, 이미지 데이터는, 드로잉 그래픽들을 위한 컴퓨터 명령어들과 함께, 압축된 또는 압축되지 않은, 손실이 없는(예를 들어, BMP) 또는 손실이 있는(예를 들어, JPEG), 및 비트맵 또는 백터-기반인(예를 들어, SVG)인 포맷들에 따라 저장되는 픽셀들의 그리드들로 구성된 비트맵들로서 저장될 수 있다. 상기 데이터는, 동일한 메모리 또는 서로 다른 메모리들(다른 네트워크 위치들을 포함함)의 다른 영역들에 저장된 데이터에 대한 수들, 서술적 텍스트, 소유 코드들, 레퍼런스들과 같은 관련 정보 또는 상기 관련 데이터를 계산하기 위한 기능에 의해 사용되는 정보를 식별하기에 충분한 임의의 정보를 포함할 수 있다.

    상기 프로세서(120)는, 상업적으로 이용가능한 CPU들과 같은 임의의 종래의 프로세서일 수 있다. 대안으로, 상기 프로세서는, ASIC 또는 다른 하드웨어-기반 프로세서과 같은 전용 디바이스일 수 있다. 도 1은 기능적으로 동일한 블록 내에 존재하는 컴퓨터(110)의 프로세서, 메모리, 및 다른 요소들을 도시하지만, 상기 프로세서, 컴퓨터 또는 메모리가 동일한 물리적 하우징 내에 저장될 수 있거나 또는 저장될 수 없는 다수의 프로세서들, 컴퓨터들 또는 메모리들을 실제로 포함할 수 있음을 통상의 기술자들은 이해할 것이다. 예를 들어, 메모리는 컴퓨터(110)의 하우징과 서로 다른 하우징에 위치된 하드 드라이브 또는 다른 저장 매체일 수 있다. 따라서, 프로세서 또는 컴퓨터에 대한 레퍼런스들은, 병렬로 동작할 수 있거나 동작할 수 없는 프로세서들 또는 컴퓨터들 또는 메모리들의 집합에 대한 레퍼런스들을 포함하도록 이해될 것이다. 여기에서 서술된 단계들을 수행하기 위해 단일 프로세서를 사용하기보다는, 스티어링 컴포넌트들 및 감속 컴포넌트들과 같은 일부 컴포넌트들은, 각각, 상기 컴포넌트의 특정 기능에 관련된 계산 만을 수행하는 컴포넌트 자신의 프로세서를 가질 수 있다.

    여기에서 서술된 여러 양상들에서, 상기 프로세서는 상기 차량으로부터 멀리 떨어져 위치되거나 상기 차량과 무선으로 통신할 수 있다. 다른 양상들에서, 단일 조작을 실행하기 위해 필요한 단계들을 수행하는 것을 포함하는 여기에서 서술된 프로세스들의 일부는, 상기 차량 내에 배치된 프로세서상에서 실행되거나 원격 프로세서에 의해 다른 것들에서 실행된다.

    컴퓨터(110)는, 중앙 처리 유닛(CPU), 데이터(134) 및 웹브라우저와 같은 명령어들을 저장하는 메모리(예를 들어, RAM 및 내부 하드 드라이브들), 전자 디스플레이(152)(예를 들어, 스크린, 작은 LCD 터치-스크린 또는 정보를 디스플레이하기 위해 동작할 수 있는 임의의 다른 전자 디바이스를 갖는 모니터), 사용자 입력부(150)(예를 들어, 마우스, 키보드, 터치 스크린 및/또는 마이크로폰)과 사람의 상태 및 요청들에 대한 분명한(예를 들어, 제스처) 또는 암묵적인(예를 들어, "그 사람은 취침중이다(the person is asleep)") 정보를 수집하는 여러 센서들(예를 들어, 비디오 카메라)과 같은 컴퓨터와 접속하여 일반적으로 사용되는 모든 컴포넌트들을 포함할 수 있다.

    일 예에서, 컴퓨터(110)는 차량(101)에 통합된 자율 주행 컴퓨팅 시스템일 수 있다. 도 2는 자율 주행 차량의 내부의 예시적인 설계를 도시한다. 상기 자율 주행 차량은, 비-자율 주행 차량의 모든 피처들, 예를 들어, 스티어링 휠(210)과 같은 스티어링 장치; (전자 디스플레이(152)의 일부가 될 수 있는) 네비게이션 디스플레이(215)와 같은 네비게이션 디스플레이 장치; 및 기어 쉬프터(220)와 같은 기어 선택 장치를 포함할 수 있다. 상기 차량은, 앞선 것에 더하여, 여러 사용자 입력 디바이스들(140), 예를 들어, 하나 이상의 자율 주행 모드들을 활성화 또는 비활성화하고, 운전자 또는 승객(290)이 네비게이션 목적지와 같은 정보를 상기 자율 주행 컴퓨터(110)에 제공할 수 있게 하는, 터치 스크린(217)(전자 디스플레이(152)의 일부분이 될 수 있음) 또는 버튼 입력부들(219)을 가질 수 있다.

    상기 자율 주행 컴퓨팅 시스템은 상기 차량의 여러 컴포넌트들과 통신할 수 있다. 예를 들어, 도 1로 돌아가면, 컴퓨터(110)는 상기 차량의 중앙 프로세서(160)와 통신할 수 있고, 차량(101)의 움직임, 속도 등을 제어하기 위해, 차량(101)의 여러 시스템들, 예를 들어, 브레이크 시스템(180), 가속 시스템(182), 시그널링 시스템(184) 및 네비게이션 시스템(186)으로부터 정보를 전송 및 수신할 수 있다. 일 예에서, 상기 차량의 중앙 프로세서(160)는 비-자율 컴퓨터 내의 중앙 프로세서의 모든 기능들을 수행할 수 있다. 다른 예에서, 프로세서(120 및 160)는 단일 프로세싱 디바이스 또는 병렬로 동작하는 다중 프로세싱 디바이스들을 포함할 수 있다.

    게다가, 관여될 때, 컴퓨터(110)는 차량(101)의 이러한 기능들 일부 또는 전부를 제어할 수 있고, 따라서, 전적으로 또는 부분적으로 자율일 수 있다. 여러 시스템들 및 컴퓨터(100)는 차량(101) 내에 있는 것으로 도시되지만, 이러한 요소들은 차량(101) 외부에 존재할 수 있거나 물리적으로 긴 거리 만큼 떨어져 있을 수 있는 것으로 이해된다.

    상기 차량은 또한 상기 디바이스의 지리적 위치를 결정하기 위해 컴퓨터(110)와 통신하는 지리적 위치 컴포넌트(144)를 포함할 수 있다. 예를 들어, 상기 위치 컴포넌트는 상기 디바이스의 위도, 경도 및 고도 위치를 결정하도록 GPS 수신기를 포함할 수 있다. 레이저-기반 위치표시 시스템들, 관성-지원 GPS, 또는 카메라-기반 위치표시와 같은 다른 위치 시스템들은 또한 상기 차량의 위치를 식별하기 위해 사용될 수 있다. 상기 차량의 위치는, 위도, 경도 및 고도와 같은 절대 지리적 위치와 함께, 상기 차량의 바로 주위에 있는 다른 자동차들에 대한 상대적인 위치와 같은 상대적인 위치 정보를 포함할 수 있고, 이러한 상대적인 위치 정보는 때때로 절대적인 지리적인 위치보다 더 정확한 것으로 결정될 수 있다.

    상기 차량은, 또한, 컴퓨터(110)와 통신하는 다른 디바이스들, 예를 들어, 상기 차량의 방향 및 속도 또는 상기 방향 및 속도의 변화들을 결정하도록 가속도계, 자이로스코프 또는 다른 방향/속도 검출 디바이스(146)를 포함할 수 있다. 단지 예시로서, 가속도 디바이스(146)는, 중력 방향 또는 중력 방향에 수직인 면에 대한 피치(pitch), 요(yaw) 또는 롤(roll)(또는 피치, 요, 또는 롤에 대한 변화들)을 결정할 수 있다. 상기 디바이스는 또한 그러한 변화들의 속도 및 방향에서의 증가들 또는 감소들을 추적할 수 있다. 여기에서 서술된 위치 및 방향 데이터의 디바이스의 제공은, 상기 사용자, 컴퓨터(110), 다른 컴퓨터들 및 이것들의 조합들에 자동적으로 제공될 수 있다.

    상기 컴퓨터(110)는 여러 컴포넌트들을 제어함으로써 상기 차량의 방향 및 속도를 제어할 수 있다. 예를 들어, 상기 차량이 완전하게 자율 주행 운전 모드로 동작할 때, 컴퓨터(110)는 상기 차량으로 하여금 (예를 들어, 엔진에 제공되는 연료 또는 다른 에너지를 증가시킴으로써) 가속하게 하고, (예를 들어, 상기 엔진에 공급된 연료를 감소시키거나 브레이크들을 적용함으로써) 감속하게 하며, (예를 들어, 앞바퀴 2개를 회전시킴으로써) 방향을 바꾸도록 할 수 있다.

    상기 차량은, 또한, 상기 차량의 외부에 있는 물체들, 예를 들어, 다른 차량들, 차도의 장애물들, 교통 신호등들, 표지판들, 나무들 등을 검출하는 컴포넌트들을 포함할 수 있다. 상기 검출 시스템(154)은, 레이저들, 소나, 레이더, 카메라들, 또는 컴퓨터(110)에 의해 처리될 수 있는 데이터를 기록하는 임의의 다른 검출 디바이스들을 포함할 수 있다. 예를 들어, 상기 차량이 작은 승용차라면, 상기 차는 루프 또는 다른 편리한 위치상에 장착된 레이저를 포함할 수 있다.

    도 3에서 도시된 것처럼, 차량(101)은, 상기 차량의 전면 및 상부면 각각에 장착된 레이저들(310 및 311)을 갖는 작은 승용차를 포함할 수 있다. 레이저(310)는 대략 150미터의 범위, 30도의 수직 시야, 및 대략 30도의 수평 시야를 가질 수 있다. 레이저(311)는 대략 50 내지 80 미터의 범위, 30도의 수직 시야 및 360도의 수평 시야를 가질 수 있다. 상기 레이저들은, 상기 컴퓨터가 여러 물체들의 위치 및 거리를 식별하기 위해 사용할 수 있는 거리 및 밝기 정보를 상기 차량에 제공할 수 있다. 일 양상에서, 상기 레이저들은, 레이저의 축을 회전시키고 레이저의 피치를 변경시킴으로써, 상기 차량을 향하는 물체 표면들과 상기 차량 사이의 거리를 측정할 수 있다.

    상기 차량은, 적응식 크루즈 제어 시스템들을 위해 사용되는 것과 같은 여러 레이더 검출 유닛들을 또한 포함할 수 있다. 상기 레이더 검출 유닛들은, 상기 차량의 전면 및 후면과 함께 상기 전면 범퍼의 양 측면 상에 위치될 수 있다. 도 3의 상기 예에서 도시된 것처럼, 차량(101)은 상기 차량의 측면(하나의 측면만 도시됨), 전면 및 후면 상에 위치된 레이더 검출 유닛들(320 내지 323)을 포함한다. 이러한 레이더 검출 유닛들 각각은, 대략 18도의 시야를 위한 대략 200미터의 범위와 대략 56도의 시야를 위한 대략 60미터의 범위를 가질 수 있다.

    다른 예에서, 여러 카메라들이 상기 차량 상에 장착될 수 있다. 상기 카메라들은, 2개 이상의 카메라들의 이미지들로부터의 시차가 여러 물체들에 대한 거리를 계산하기 위해 사용될 수 있도록 미리결정된 거리들에 장착될 수 있다. 도 3에 도시된 것처럼, 차량(101)은 리어뷰 미러(도시되지 않음) 부근의 앞유리(340) 아래에 장착된 2개의 카메라들(330 및 331)을 포함할 수 있다. 카메라(330)는 대략 200 미터의 범위 및 대략 30도의 수평 시야를 포함할 수 있는 반면, 카메라(331)는 대략 100 미터의 범위 및 대략 60도의 수평 시야를 포함할 수 있다.

    상기에서 서술된 센서들에 더하여, 상기 컴퓨터는 또한 비-자율 주행 차량들에 통상적인 다른 센서들 및 피처들로부터의 입력을 사용할 수 있다. 예를 들어, 이러한 다른 센서들 및 피처들은, 타이어 압력 센서들, 엔진 온도 센서들, 브레이크 열 센서들, 브레이크 패드 상태 센서들, 타이어 마모 센서들, 연료 센서들, 오일 레벨 및 품질 센서들, (공기 내의 온도, 습도 또는 입자들을 검출하기 위한) 공기질 센서들, 도어 센서들, 전등들, 와이퍼들 등을 포함할 수 있다. 이러한 정보는 이러한 센서들 및 피처들로부터 또는 상기 차량의 중앙 프로세서(160)를 통해 직접 제공될 수 있다.

    이러한 센서들 중 많은 것들은 실시간 상기 컴퓨터에 의해 처리되는 데이터를 제공한다. 즉, 상기 센서들은, 일정 범위의 시간에 또는 일정 범위의 시간을 넘어 감지되는 환경을 반영하도록 센서들의 출력을 계속해서 업데이트할 수 있고, 상기 차량의 당시 방향들 또는 속도가 상기 감지된 환경에 응답하여 수정되어야하는지 여부를 상기 컴퓨터가 결정할 수 있도록 상기 센서들은 연속적으로 또는 요구될 때 상기 업데이트된 출력을 상기 컴퓨터에 제공할 수 있다.

    상기 여러 센서들에 의해 제공된 데이터를 처리하는 것에 더하여, 상기 컴퓨터는, 일정 시간의 이전의 지점에서 획득되고, 상기 환경에서 차량의 존재에 관계없이 계속되는 것이 예측되는 환경 데이터에 의존할 수 있다. 예를 들어, 도 1을 다시 참조하면, 데이터(134)는 상세한 맵 정보(136), 예를 들어, 도로들의 형태 및 높낮이를 식별하는 매우 상세한 맵들, 차선 경계선들, 교차로들, 횡단 보도들, 제한 속도들, 교통 신호등들, 건물들, 표지판들, 실시간 교통 정보, 녹지들 또는 다른 그와 같은 물체들 및 정보를 포함할 수 있다. 예를 들어, 상기 맵 정보는 여러 도로 세그먼트들과 관련된 명확한 속도 제한 정보를 포함할 수 있다. 상기 속도 제한 데이터는 수동으로 입력될 수 있거나, 예를 들어, 광학 문자 인식을 사용하여 속도 제한 표지의 이전에 취득된 이미지들로부터 스캔될 수 있다.

    도 4는 고속도로(100)의 일 예이다. 이 예에서, 고속도로(400)는, 파선인 차선 경계선(430 내지 433) 및 실선인 차선 경계선(440 내지 443)에 의해 정의된 3개의 북쪽으로 향하는 차선들(410 내지 412) 및 3개의 남쪽으로 향하는 차선들(420 내지 422)을 포함한다. 고속도로(400)는, 또한, 실선인 차선 경계선(440)과 장벽(460) 사이에 정의된 갓길(450) 및 실선인 차선 경계선(443)과 장벽(461) 사이에 정의된 갓길(451)을 각각 포함한다. 상기 북쪽으로 향하는 차선들 및 상기 남쪽으로 향하는 차선들 사이에, 고속도로(400)는 중앙 분리대(470)를 포함한다.

    도 5는 도 4의 고속도로(400)에 대한 맵 정보(500)의 일 예이다. 맵 정보는 고속도로(400)의 여러 피처들의 위치 및 방향을 나타내는 데이터를 포함한다. 예를들어, 맵 정보(500)는 북쪽으로 향하는 차선들(410 내지 412)을 식별하는 북쪽으로 향하는 차선들 데이터(510 내지 512)와 함께 남쪽으로 향하는 차선들(420 내지 422)을 식별하는 남쪽으로 향하는 차선들 데이터(520 내지 522)를 포함한다. 맵 정보(500)는, 또한, 파선인 차선 경계선들(430 내지 433) 및 실선인 차선 경계선들(440 내지 443)을 나타내는 파선인 차선 경계선 데이터(530 내지 533) 및 실선인 차선 경계선 데이터(540 내지 543)를 포함한다. 갓길들(450 내지 451)은 또한 갓길 데이터(550 내지 551)에 의해 표시된다. 장벽들(460 내지 461)은 장벽 데이터(560 내지 561)에 의해 표시되고, 중앙 분리대(470)는 중앙 분리대 데이터(570)에 의해 표시된다.

    상기 맵 정보는, 또한, 상기에서 언급된 하나 이상의 물체들을 포함하는 3차원 지형 맵들을 포함할 수 있다. 예를 들어, 상기 차량은, 자동차와 같은 다른 물체가 실시간 데이터(예를 들어, 다른 차량의 현재 GPS 위치 데이터 및 방향 지시등이 깜빡거리는지 여부를 결정하기 위해 자신의 센서를 사용하는) 및 다른 데이터(예를 들어, 다른 차량이 회전 차선 내에 있는지 여부를 결정하기 위해 이전에 저장된 차선-특정 맵 데이터와 상기 GPS 위치를 비교하는)에 기초하여 회전하는 것으로 예측됨을 결정할 수 있다.

    맵 정보(136)는, 또한, 자율 주행에 현재 이용할 수 있는 자동운전 구역들을 포함할 수 있다. 자동운전 구역들은, 예를 들어, 자율 주행 모드에서 초기 운전을 위해 사전-승인되거나 다르게 지정된 맵 정보 내의 영역들을 포함할 수 있다. 이러한 영역들은, 예를 들어, 고속도로상의 특정 차선들, 주택가들 등을 포함할 수 있다. 이와 관련하여, 자동운전 구역들은 미리결정된 자동운전 차선들을 포함할 수 있다. 자동운전 구역들로부터 배제될 수 있는 영역들은, 단지 예로서, 가속 차선들, 출구 차선들, 병합부분들, 교차로들, 고속도로 요금소들, 알려진 건설 현장들, 및 어린이 보호구역들 및 그와 같은 영역들 근처의 도로의 일부들을 포함할 수 있다. 컴퓨터(110)는 자동운전 구역들로서 지정되지 않은 영역들에서 자율 운행 모드를 시작하는 것을 제한할 수 있지만, 상기 컴퓨터(110)는 실제로 그와 같은 영역들을 통과하는 상기 차량을 충분히 조작할 수 있거나 실제로 상기 자율 주행 모드를 시작할 수 있다.

    예를 들어, 도 6의 맵 정보(600)는 맵 정보(500)를 포함하고 또한 자동운전 구역들(610 및 620)을 포함한다. 이러한 예에서, 자동운전 구역(610)은 고속도로(400)의 남쪽으로 향하는 차선들(430 내지 432)(남쪽으로 향하는 차선 데이터(530 내지 532)에 의해 표시됨)을 포함하는 반면, 자동운전 구역(620)은 고속도로(400)의 북쪽으로 향하는 차선들(420 내지 422)(북쪽으로 향하는 차선 데이터(520 내지 522)에 의해 표시됨)의 일부만을 포함한다. 자동운전 구역(610)은 차선들(410 내지 422)의 구역들(차선들(510 내지 522)에 의해 표시됨)을 포함하지만, 이러한 예에서, 차선들(410(510) 및 411(511))은 단지 자동운전 차선들(611 및 612)을 각각 포함한다. 마찬가지로, 자동운전 구역(620)은 차선들(420 내지 422)(차선들(520 내지 522)에 의해 표시됨)의 구역들의 일부분들을 포함하지만, 이 예에서, 차선들(421(521) 및 422(522))은 단지 자동운전 차선들(621 및 622)을 각각 포함한다. 따라서, 고속도로(400)의 모든 부분들은 자동운전 구역들이 아니고, 자동운전 구역들 내의 모든 차선들은 자동운전 차선들이 아니다.

    상세한 맵 정보(136)는 여기에서 이미지-기반 맵으로 도시되지만, 상기 맵 정보는 전적으로 이미지 기반일 필요가 없다(예를 들어, 래스터 방식). 예를 들어, 상기 맵 정보는, 도로들, 차선들, 교차로들 및 이러한 피처들 사이의 접속들과 같은 정보의 하나 이상의 그래프들 또는 그래프 네트워크들을 포함할 수 있다. 각 피처는 그래프 데이터로서 저장될 수 있고, 각 피처가 다른 관련 피처들과 링크되는지 여부는 지리적 위치와 같은 정보와 관련될 수 있다. 예를 들어, 정지 표지판은 도로 및 교차로에 연결될 수 있다. 일부 예들에서, 상기 관련된 데이터는 특정 로드그래프 피처들의 효율적인 검색을 촉구하도록 로드그래프들의 그리드기반 표시들을 포함할 수 있다.

    컴퓨터(110)는 또한 다른 컴퓨터들로부터 정보를 수신할 수 있거나 다른 컴퓨터들에 정보를 전달할 수 있다. 예를 들어, (도 5 및 6에 도시된 맵 정보(500 및 600)의 예들과 같은) 컴퓨터(110)에 의해 저장된 상기 맵 정보는 다른 컴퓨터들로부터 수신 또는 전달될 수 있고/차량(101)의 센서들로부터 수집된 상기 센서 데이터는 여기에서 서술된 것처럼 처리를 위해 다른 컴퓨터에 전달될 수 있다. 도 7a 및 7b에 도시된 것처럼, 차량(101) 내의 컴퓨터(110)로부터의 데이터는 추가적인 프로세싱을 위해 네트워크를 통해 고정된 컴퓨터(720)에 전송될 수 있다. 유사하게, 아래에서 서술된 것과 같은, 소프트웨어 업데이트들 또는 기상 정보와 같은 컴퓨터(720)로부터의 데이터는, 상기 네트워크를 통해 컴퓨터(110)에 전송될 수 있다. 상기 네트워크 및 중계 노드들은, 하나 이상의 회사들에 소유된 통신 프로토콜들, 이더넷, 와이파이 및 HTTP, 및 이것들의 다양한 조합들을 사용하여, 인터넷, 월드 와이드 웹, 인트라넷들, 가상 사설 네트워크들, 광역 네트워크들, 로컬 네트워크들, 사설 네트워크들을 포함하는 다양한 구성들 및 프로토콜들을 포함할 수 있다. 그와 같은 통신은, 모뎀들 및 무선 인터페이스들과 같은 다른 컴퓨터들에 그리고 다른 컴퓨터들로부터 데이터를 전송할 수 있는 임의의 디바이스에 의해 가능해질 수 있다. 다른 예에서, 데이터는 컴퓨터들(110 및 720)에 의해 액세스될 수 있거나 컴퓨터들(110 및 720)에 접속될 수 있는 메모리 상에 데이터를 저장함으로써 전달될 수 있다.

    일 예에서, 컴퓨터(720)는, 컴퓨터(110)에 그리고 컴퓨터(110)로부터 상기 데이터를 수신, 처리 및 전송할 목적으로 네트워크의 서로 다른 노드들과 정보를 교환하는 복수의 컴퓨터들, 예를 들어, 부하 균형 서버 팜(load balanced server farm)을 갖는 서버를 포함할 수 있다. 상기 서버는 프로세서(730), 메모리(740), 명령어들(750) 및 데이터(760)를 갖고, 상기 컴퓨터(110)와 유사하게 구성될 수 있다.

    상기에서 언급된 것처럼, 서버(720)의 데이터(760)는 소프트웨어 업데이트들 및 기상 관련 정보를 제공할 수 있다. 예를 들어, 서버(720)는, 예를 들어, 메모리(130)에 저장된 명령어들(132), 상세 맵 정보(136), 프로토콜 데이터(138) 및/또는 태스크 데이터(140)와 같은 상기 여러 데이터를 갱신하는 것을 포함하는 소프트웨어 업데이트들을 컴퓨터(110)에 제공할 수 있다. 다른 예에서, 서버(720)는 기상에 관련된 여러 정보를 수신, 모니터, 저장, 업데이트 및 전송할 수 있다. 이러한 정보는, 예를 들어, 리포트들, 레이더 정보, 예보 등의 형태로 강수량, 구름 및/또는 온도 정보를 포함할 수 있다.

    컴퓨터(110)는, 자동운전 모드에 대한 변화 또는 자동운전 모드로부터의 변화가 운전자뿐 아니라, 상기 차량의 환경, 상기 차량의 상태의 평가에 기초하여 허용될 수 있는지 여부를 평가하는 프로토콜 데이터(138)를 사용할 수 있다. 아래에서 상세하게 설명된 것처럼, 컴퓨터(110)는, 방지 조건들 및 이러한 방지 조건들이 컴퓨터 또는 운전자에 의해 수정될 수 있는지 여부를 식별하도록 프로토콜들(138)을 사용할 수 있다.

    태스크 데이터(140)는, 차량(101)과 같은 차량을 제어하는 운전자에 의해 수행될 수 있는 일련의 태스크들을 포함할 수 있다. 아래에서 더 상세하게 논의된 것처럼, 이러한 태스크들은 문을 닫기, 안전벨트 착용, 차선들 변경 등을 포함할 수 있다. 각 태스크는, 차량의 운전자에 의한 상기 태스크의 수행이 프로토콜 데이터(138)를 사용하여 식별된 방지 조건을 수정하도록 대응하는 방지 조건과 관련될 수 있다. 이와 관련하여, 태스크 데이터는 프로토콜 데이터(138)의 일부로서 또는 개별적으로 저장될 수 있다.

    상기 컴퓨터(110)는 각 태스크의 적절한 순서를 결정할 수 있다. 이와 관련하여, 안전 벨트를 착용하는 것은 차선들을 변경하는 것보다 더 높은 순위를 가질 수 있는데, 이는 운전자가 안전 벨트 등을 착용하지 않고 차량을 제어하는 것은 안전하지 않을 수 있기 때문이다. 상기 태스크 데이터는, 또한, 명령어들 및 태스크들을 운전자에게 표시하는 디스플레이 데이터를 포함할 수 있다. 참고하기 용이하도록, 본 발명은 상기 태스크 데이터(140)의 일부인 순위 데이터를 언급할 것이지만, 각 태스크의 순서를 결정하는데 요구되는 정보는 프로토콜 데이터(138)의 부분으로서, 데이터(134) 내의 어딘가에 그리고 명령어들(132)의 부분으로서 저장될 수 있다.

    상기에서 서술되고 도면들에서 도시된 동작들에 더하여, 여러 동작들이 이제 서술될 것이다. 하기의 동작들은 아래에 서술된 정확한 순서로 수행될 필요가 없음을 알아야 한다. 오히려, 여러 단계들이 여러 순서로 또는 동시에 처리될 수 있고, 또한 여러 단계들이 추가되거나 생략될 수 있다.

    일 예에서, 차량(101)의 운전자는 자율주행 시스템(100)을 활성화할 수 있고 상기 차량이 수동 운전 모드에서 자율주행 모드 또는 자동운전 모드로의 전환을 요청하기 위해 사용자 입력(150)을 사용할 수 있다. 상기 요청을 승인하기 전에, 상기 컴퓨터(110)는, 상기 전환을 방지하기 위해 사용될 임의의 조건들이 존재하는지 여부를 결정할 수 있다. 이것은, 프로토콜 데이터(138)를 액세스하는 것 및 어떤 방지 조건들을 식별하기 위해 운전자의 상태와 함께 차량의 환경(현재 및 가까운 미래), 차량 및 차량 시스템의 상태를 평가하는 것을 포함할 수 있다. 예를 들어, 방지 조건들은, 수동에서 자율주행 모드로 전환하는 것은 안전하지 않을 수 있다는 것, 상기 차량이 자율주행이 법으로 금지된 영역에 있다는 것, 또는 상기 차량이 현재 환경(예를 들어, 오프-로드 여행)에서 자율주행을 위해 설계되지 않은 것을 나타내는 조건들을 포함할 수 있다.

    상기 차량의 환경의 상태의 평가는, 원격 컴퓨터로부터의 정보와 함께 상기 차량의 여러 센서들에 의해 수집된 정보, 저장된 맵 정보에 의존할 수 있다. 예를 들어, 상기 평가들은, 상기 차량의 바로 주변의 기상의 상태를 결정하는 것 및 이러한 정보가 운전자가 차량의 충분한 제어를 유지하는 것이 운전자에게 더 안전한지 여부를 결정하는 것을 포함할 수 있다. 이것은 컴퓨터(720)로부터 기상 데이터를 수신하는 것 및/또는 차량의 센서들로부터 기상 조건들을 검출하는 것을 포함할 수 있다. 일반적으로, 운전자는, 비, 눈, 우박 등과 같은 많은 양의 또는 누적된 강수량이 존재할 때, 컴퓨터(110)보다 차량을 조종하는데 더 양호한 위치에 있을 수 있다. 따라서, 그와 같은 기상 조건 하에서, 컴퓨터(110)는 방지 조건을 식별할 수 있다.

    다른 현재의 환경 평가들은, 상기 차량의 현재 위치 및 속도를 결정하는 것 및 상기 차량이 수동에서 자율주행 모드로 전환하기에 적합한 위치 및 속도에 있는지를 결정하는 것을 포함할 수 있다. 상기 차량의 위치는 지리적 위치 컴포넌트(144) 및/또는 가속 디바이스(142)에 의해 발생된 데이터로부터 수신될 수 있거나 상기 발생된 데이터로부터 결정될 수 있다. 이러한 위치는, 맵 정보(136)와 함께 상기 검출 시스템(154)의 여러 센서들로부터의 데이터와 결합될 수 있다. 예를 들어, 컴퓨터(110)는, 상기 차량의 실제 위치가 상세한 맵 정보에 관한 상기 차량의 위치와 일치하는지, 상기 검출 시스템의 센서들로부터 수신된 데이터가 대응하는 상세 맵 정보와 일치하는지, 상기 차량이 현재 자동운전 구역에서 운행되고 있는지, 상기 차량이 현재 자동운전 차선에서 운행되고 있는지, 도로가 포장되어 있는지(맨 흙 상태인 것과 대조됨), 도로가 충분히 넓은지(2대의 차량들이 서로 지나갈 수 없을 정도로 좁은 것과 대조됨), 차량이 곧은 도로상에 있는지(곡선으로, 언덕 아래 또는 위로 운행하는 것과 대조됨), 차량이 충분하게 차선의 중앙에 위치하는지, 차량이 (예를 들어, 밀집한 교통 상황에서) 다른 차량들에 의해 둘러싸이거나 갇히는지, 차량이 현재 어린이 보호 구역에 있는지, 차량이 다가오는 교통 흐름과 마주치고 있� �지(예를 들어, 맵 정보(136)에 따라 남쪽으로 향하는 차선에서 북쪽으로 향하게 운전하고 있는지), 다른 물체가 차량에 근접한 차량의 차선에 접근하는지, 차량이 다른 차량들 또는 도로 위의 움직이는 물체들로부터 적어도 일정한 미리결정된 최소 거리에 있는지, 차량이 도로 내의 움직이지 않는 물체들을 피하기 위해 어떤 작은 조작들을 해야하는지, 차량이 너무 빨리 또는 너무 느리게 움직이고 있는지를 평가할 수 있다. 이러한 조건들의 일부가 사실이 아니면, 컴퓨터(110)는 그러한 조건이 문제 있는 조건으로 식별할 수 있다.

    차량의 현재 환경에 더하여, 컴퓨터(110)는, 차량이 장래에 접할 가능성이 있는 운전 환경을 평가할 수 있다. 이와 관련하여, 차량의 검출 시스템(154)으로부터의 데이터에 의존하기보다는, 컴퓨터(110)는 원격 컴퓨터, 저장된 맵 정보 및 사용자 입력으로부터 데이터를 수신 및/또는 액세스할 수 있다.

    일 예에서, 상기 컴퓨터(110)는, 어떤 다가올 상황들 또는 조작들이 방지 조건을 생성할 수 있는지 여부를 평가할 수 있다. 예를 들어, 상기 컴퓨터는, 상기 운전자가 차량의 현재의 경로를 유지하거나 권고된 노선상에 머무르고 있다면, 다가올 방지 조건들에 대한 맵 데이터를 체크할 수 있다. 방지 조건이 장래에 발생할 가능성이 있다는 사실 자체는, 사용자가 자동운전 모드를 활성화시키는 것을 막는 방지 조건으로 고려될 수 있다.

    장래의 방지 조건이 발생할 때까지 흐를 것으로 예상되는 시간은, 상기 차량을 자동운전 모드로 두려는 사용자를 가로막을지 여부를 결정하기 위해 사용될 수 있다. 일 예에서, 차량이 교차로 또는 교통 병합지점과 같은, 수동 운전 모드가 요구되는 위치에 도달하기 전에, 상기 차량이 자율운행으로 운행되는 동안 일정한 최소한의 시간이 존재할 수 있다. 도로의 차선은 계속될 수 있지만, 현재의 차선 중 자동운전 차선은 교차로에서 끝날 수 있다. 상기 컴퓨터는 따라서, 차량의 속도 또는 다른 데이터(예를 들어, 도로의 속도 제한)에 기초하여, 상기 차량이 상기 교차로에 도달할 때까지 걸리는 시간을 양을 추정할 수 있다. 추정된 시간이 임계치보다 작으면, 다가올 교차로는 현재의 방지 조건으로 고려될 수 있다. 상기 임계치는 미리결정될 수 있거나 동적으로 계산될 수 있다. 예를 들어, 사용자들이 상기 차량을 자동운전 모드로 두는데 지장 받은 것으로 고려하여, 자동운전 모드를 50초의 시간 내로 강제할 수 있기에, 상기 임계치는 대략 50초로 설정될 수 있다. 상기 임계치는 또한 동적으로 결정될 수 있다. 즉, 상기 임계치는 나쁜 기상에서 증가될 수 있다.

    컴퓨터(110)는, 또한, 차량 및 차량의 여러 시스템들의 상태를 평가하기 위해 그리고 방지 조건이 존재하는지를 결정하기 위해 프로토콜 데이터(138)를 사용할 수 있다. 예를 들어, 컴퓨터(110)는, 자율주행 운전 시스템(100)의 여러 피처들 적절히 작동하는지 여부를 결정할 수 있다. 이러한 것은, 컴퓨터(110)가 최신의 소프트웨어를 가졌는지 여부를 결정하기 위해, 컴퓨터(720)와 같은 원격 컴퓨터와 통신하는 것을 포함할 수 있다. 추가로, 컴퓨터(110)가 이러한 시스템들과 통신할 수 있고 또한 이러한 시스템들이 적절히 작동하는지 여부를 결정할 수 있도록, 상기 컴퓨터(110)가 자율주행 시스템(100)의 여러 컴포넌트들과 또한 통신할 수 있다. 예를 들어, 컴퓨터(110)는, 검출 시스템(154)의 여러 센서들이 적절히 작동하는지, 응답하는지, 적절히 측정되는지 여부를 결정할 수 있다. 그렇지 않으면, 컴퓨터(110)는 문제있는 조건을 식별할 수 있다.

    자율주행 시스템(100)의 컴포넌트들과 통신하는 것에 더하여, 컴퓨터(110)는 또한 상기 차량의 여러 비-자율주행 컴포넌트들의 상태를 결정할 수 있다. 이것은, 상기 차량의 상태에 관련한 정보에 대하여 차량의 중앙 프로세서(160)에 질의하는 것을 포함할 수 있다. 이와 관련하여, 상기 차량의 중앙 프로세서(160)는, 다른 차량 피처들 또는 센서들, 예를 들어, 전등들, 운전 시스템, 타이어 압력 모니터들, 도어 센서들 등과 통신할 수 있다.

    컴퓨터(110)는, 이후, 여러 평가들을 하기 위해 다른 차량의 피처들 및 센서들에 관련된 이러한 정보를 이용할 수 있다. 예를 들어, 컴퓨터(110)는, 상기 차량이 최소 유지 기준들을 충족하는지(예를 들어, 오일 교환이 최근에 이뤄졌는지), 차량의 타이어들이 적절히 바람이 들어있는지, 상기 차량의 문들이 닫혀있는지, 상기 차량이 현재 "주행(drive)" 중인지("중립(neutral)", "후진(reverse)" 또는 "주차(park)"와 대조), 차량이 (예를 들어, 운전자가 4륜 구동 또는 전륜 구동으로 전환을 허용하는 차량에서) 2륜 구동으로 있는지, 차량의 자동 와이퍼들이 현재 온(on) 상태인지, 차량의 헤드라이트들 또는 안개등들이 온(on) 인지, 다른 경고 표시기들(예를 들어, 엔진등 체크)이 현재 작동하지 않는지를 결정할 수 있다. 그렇지 않으면, 컴퓨터(110)는 방지 조건을 식별할 수 있다.

    컴퓨터(110)는 또한 차량 운전자의 상태를 평가하기 위해 프로토콜 데이터(138)를 사용할 수 있다. 예를 들어, 컴퓨터(110)는, 또한, 운전자의 안전벨트가 적절하게 채워졌는지를 결정하기 위해 중앙 프로세서(160)에 질의할 수 있다. 다른 예들은 운전자의 졸음, 운전자의 음주 상태, 또는 상기 운전자가 상기 차량을 사용할 권한을 갖는지 또는 갖지 않는지 결정하기 위해 센서들 또는 다른 방법들을 사용하는 것을 포함할 수 있다.

    상기 평가들은 뚜렷한 환경, 차량, 또는 운전자 상태들로 구성될 필요는 없지만, 실제로는 평가를 위해 더 많은 수집 또는 피처들의 리스트를 포함할 수 있다. 대안으로, 특정 상태 평가와 관련되어 식별된 일부 피처들은 다른 상태 평가들 또는 체크된 다수 회들과 관련될 수 있다. 예를 들어, 차량의 문이 열려있는지 여부는 운전자 상태 평가와 함께 차량 상태 평가의 일부로서 행해진 평가될 수 있다.

    프로토콜 데이터(138)에 따라 컴퓨터(110)에 의해 행해진 평가들은 임의의 순서로 수행될 수 있다. 추가로, 이러한 평가들 중 많은 것들은, 예를 들어, 병렬로 동작하는 많은 프로세서들에 의해 동시에 행해질 수 있다. 상기 평가들은, 자동운전 요구(또는 상기 자동운전 모두를 사용하도록하는 요구)를 수신하기 전에 반복적으로 행해지거나, 자동운전 요구를 수신하는 때에 행해질 수 있거나, 자동운전 요구를 수신한 후에 반복적으로 체크될 수 있거나, 이것들의 임의의 조합일 수 있다.

    컴퓨터(110)가 수동에서 자율주행 모드로 전환을 방지하는 방지 조건을 식별하면, 상기 컴퓨터는 상기 컴퓨터 또는 상기 운전자가 즉각적인 시정 조치를 행할 수 있는지를 결정할 수 있다. 그렇지 않으면, 컴퓨터(110)는, 자율주행 모드가 현재 이용불가능하다는 것을 운전자에게 알려주는 통지를 발생시킬 수 있다. 이러한 통지는, 또한, 자율주행 모드가 이용불가능한 이유를 나타내는 정보를 포함할 수 있다. 상기 통지는, 또한, 예를 들어, 전자 디스플레이(152)를 사용하여 운전자에게 디스플레이될 수 있다.

    예를 들어, 자동차의 환경의 상태에 관련한 평가들을 참조하면, 컴퓨터(110) 또는 운전자 모두 현재의 기상 조건들을 변경시킬 수 없다. 이와 관련하여, 컴퓨터(110)는, 상기 자율운행 모드가 기상 조건들로 인해 현재 이용불가능하다고 설명하는 통지를 발생시키고 디스플레이할 수 있다.

    다른 예에서, 상기 차량의 상태를 참조하면, 컴퓨터(110) 또는 운전자 모두, 차량 유지 이슈들, 예를 들어, 오일 변경 표시계, 낮은 타이어 압력 표시계, 또는 검출 시스템(154)의 여러 센서들에 관련된 다른 더 많은 일련의 이슈들을 즉시 변경시키지 못할 수 있다. 유사하게, 컴퓨터(110) 또는 운전자 모두, 데이터를 제공하는 센서의 고장으로 인해 방지 조건을 즉시 변경하지 못할 수 있다. 예를 들어, 운전자가 안전벨트를 착용하고 있는지 여부를 컴퓨터(110)가 결정할 수 없다면, 상기 안전벨트가 실질적으로 동작되고 운전자가 안전벨트를 착용하고 있는지 확실하게 하기 위해서, 단순히 운전자에게 묻는 것으로는 충분하지 않을 수 있다. 따라서, 컴퓨터(110) 또는 운전자 모두, 그와 같은 문제되는 조건을 수정못할 수 있고, 다시 컴퓨터(110)는, 상기 자율주행 모드가 방지 조건으로 인해 현재 이용불가능하다고 설명하는 통지를 발생시키고 디스플레이할 수 있다.

    컴퓨터(110)가 방지 조건을 어드레스하기 위해 시정 조치를 취할 수 있으면, 상기 컴퓨터는 그렇게 할 것이다. 예를 들어, 차량의 상태의 평가가 컴퓨터 교정에의해 수정될 수 있는 문제를 차동자의 센서들에 표시하면, 컴퓨터(110)는 상기 센서들을 재교정할 수 있고, 평가될 것으로 남아있는 임의의 아이템들을 계속할 수 있다. 다른 예에서, 컴퓨터(110)가 최신의 소프트웨어를 가지지 않는다고 결정하면, 이러한 방지 조건은, 예를 들어, 컴퓨터(720)로부터 소프트웨어 업데이트를 얻음으로써 수정될 수 있다. 다른 예에서, 컴퓨터(110)는 짧은 지연을 갖는 일부 방지 조건들을 수정할 수 있다. 여러 다른 문제 조건들은 또한 컴퓨터(110)에 의해 수정될 수 있다. 추가로, 상기 컴퓨터는, 또한, 수동 운전 모드에서 자율주행 모드로 전환을 요청하는 운전자를 기다리게 하기 보다는, 이러한 시정 조치들 일부 또는 전부를 선제적으로 수행할 수 있다. 상기 컴퓨터 시정 조치들은 또한 서로 병렬로 수행되거나 그리고/또는 운전자에 의해 수행된 시정 조치들과 병렬로 수행될 수 있다.

    컴퓨터(110)가 많은 서로 다른 조건들을 수정할 수 있지만, 적어도 일부의 방지 조건들을 어드레스하기 위해 컴퓨터(100)보다는 상기 사용자에게 요청하는 것이 더 안전할 수 있다. 이와 관련하여, 적어도 일부 방지 조건들에 대해, 컴퓨터(110)는 그러한 조건들에 대한 태스크들을 발생시키도록 태스크 데이터(140)를 사용할 수 있다.

    예를 들어, 차량의 환경의 상태를 참조하면, 컴퓨터(110)는 차량의 위치 및/속도를 변화시키기 위한 태스크들을 발생시킬 수 있다. 상기 방지 조건들에 따라, 이러한 태스크들은 상기 차량을 자율주행 차선으로 이동시키는 것, 상기 차량을 차선의 중심에 두는 것, 상기 도로에서 상기 차량과 일부 다른 움직이는 물체 사이에 충분한 거리를 만드는 것, 그리고 상기 차량의 속도를 높이거나 낮추는 것을 포함할 수 있다. 유사하게, 상기 차량의 상태를 참조하여, 컴퓨터(110)는 적절하게 닫히거나 열린 문에 관련된 방지 조건들을 수정하고, 상기 차량을 "운전(drive)"으로 두도록 기어 시프트를 사용하고, 자동 와이퍼들을 켜고, 전등들을 켜는 등의 태스크들을 발생시킬 수 있다. 상기 운전자의 상태에 관련하여, 상기 컴퓨터(110)는 운전자에게 안전밸트를 착용하도록 요청하는 태스크를 발생시킬 수 있다.

    위에서 언급한 바와 같이, 태스크 데이터(140)를 사용하는 상기 컴퓨터(110)에 의해 생성된 각 태스크는 순위가 매겨질 수 있다. 따라서, 어떤 식별된 방지 조건들을 수정하기 위해 상기 요청된 태스크들의 전부를 발생시킨 후, 컴퓨터(110)는 상기 태스크들의 순서를 정하기 위해 순위들을 사용할 수 있고, 이후 상기 순서화된 태스크들을 운전자에게 표시할 수 있다. 이것은, 컴퓨터(100)로 하여금 체크리스트를 안전을 강화하고 전제조건들과 일치하는 순서로 운전자에게 제공하도록 할 수 있다. 예를 들어, 운전자는, 상기 차량을 "운전"으로 두도록 요구받기 전에 그리고 자동운전 차선으로 움직이도록 요구받기 전에, 안전벨트를 착용하도록 지시받을 수 있다.

    유사하게, 상기 운전자는 동시에 다수의 태스크들 받을 수 있지만, 상기 운전자에게 다음 태스크를 제공하기 전에 각 태스크가 완료될 때까지 기다리면서, 각 태스크를 한번에 하나씩 운전자에게 제공하는 것이 더 유용할 수 있다. 추가로, 완료하기 위해 더 오랜 시간이 필요한 태스크들은 자율주행 모드로 전환하도록 하는 다른 운전자 요청 후에 행해지는 반면, 더 짧은 시간으로 완료될 수 있는 다른 태스크들은 그렇지 않을 수 있다.

    도 8은, 전자 디스플레이(152) 상에서 운전자에 디스플레이될 수 있는 일련의 스크린 이미지들(810, 820, 830 및 840)을 도시한다. 이러한 스크린 이미지들은 식별된 문제의 조건들을 수행하는데 요구되는 태스크들을 식별할 수 있다. 이러한 예에서, 컴퓨터(110)는, 이러한 방지 조건들 각각이 상기 운전자에 의해 수행되어야 하고 또는 수행될 수 있음을 이미 결정했다. 이러한 조건들은, 차량이 "운전"에 있지 않고, 상기 자동 와이퍼들이 온에 있지 않고, 자동 전등들이 온에 있지 않고, 차량이 자동운전 차선에 있지 않는 것을 포함한다. 따라서, 컴퓨터(110)는 태스크들의 세트 및 관련된 스크린 이미지들(810, 820, 830 및 840)을 발생시키다. 위에서 언급된 바와 같이, 이러한 태스크들 및 스크린 이미지들은 특정 순서로 표시된다.

    이러한 예에서, 제1 태스크는 스크린 이미지(180)에 도시된 것처럼 차량을 "운전"으로 시프트하는 것을 포함한다. 일단, 제1 태스크가 운전자에 의해 완료되면, 상기 컴퓨터(110)는 대응하는 조건이 수정되었다고 결정할 수 있다. 그 결과, 컴퓨터(110)는 다음 태스크를 보여줄 수 있다. 이러한 예에서, 다음 태스크는 스크린 이미지(820)에서 도시된 것처럼 자동 와이퍼들을 켜는 것을 포함한다. 다시, 스크린 이미지(820)의 태스크가 완료되면, 자동 전등들을 켜는 다음 태스크가 스크린 이미지(830)에 도시된 것처럼 디스프레이될 수 있다. 일단 이러한 태스크가 완료되면, 컴퓨터(110)는, 스크린 이미지(840)에서 도시된 것처럼, 자동운전 차선으로 움직이는 다음 태스크를 디스플레이할 수 있다.

    따라서, 위에서 언급한 것처럼, 각 스크린 이미지는, 각 태스크(810, 820, 830 및 840)가 완료되고, 대응하는 방지 조건이 더 이상 적용되지 않는다고 상기 컴퓨터가 결정할 때까지, 한번에 하나씩 차례차례로 도시될 수 있다.

    일단, 식별된 문제의 조건들이 운전자에 의해 수정되면, 상기 컴퓨터는 운전자로 하여금 수동 운전 모드에서 자율주행 모드로 전환하도록 할 수 있다. 예를 들어, 요청된 태스크들 전부(예를 들어, 스크린 이미지들(810, 820, 830 및 840)에 의해 도시된 것 같은 것들)가 운전자에 의해 완료되었다면, 스크린 이미지(850)에서 도시된 것 같은, 자율주행 시스템(100) 및 컴퓨터(110)가 차량을 제어할 준비가 되었다는 것을 나타내는 메시지를 디스플레이할 수 있다. 추가로, 컴퓨터(110)는 차량이 자율주행 모드로 준비되었음을 추가로 나타내도록 디스플레이의 전부 또는 일부의 색을 변경시킬 수 있다. 이와 관련하여, 스크린 이미지(850)는 스크린 이미지들(810, 820, 830 및 840)과 서로 다른 배경 색을 포함할 수 있다. 일단 준비되면, 상기 컴퓨터는 상기 수동 운전 모드를 자율주행 모드로 자동적으로 전환할 수 있거나 상기 운전자가 실제로 준비되었음을 명확하게 하도록 운전자로부터 다른 요청을 대기할 수 있다.

    수동에서 자율주행 모드로 스위칭하기 전에, 컴퓨터(110)는 앞서 언급한 평가들을 계속해서 수행할 수 있다. 이와 관련하여, 운전자 또는 컴퓨터(110)가 상기 차량을 자동운전 모드로 두기 위해 여러 장애들을 수정할 수 있지만, 새로운 문제들은 발생할 수 있다(또는 위에서 언급한 것처럼, 일부 문제점들이 수정될 수 있다). 예를 들어, 일단 상기 운전자가 도 8의 스크린 이미지(840)에 의해 묘사된 태스크에 응답하여 차량(101)을 자동운전 차선으로 움직이면, 컴퓨터(110)는 추가적인 문제점들을 식별할 수 있다. 일 예에서, 이러한 추가적인 방지 조건들은, 상기 차량이 차선의 중앙에 있지 않은 것, 상기 차량이 그때 너무 빨리 움직이고 있는 것, 그리고 상기 차량이 도로에서 다른 물체와 너무 가까이 있는 것을 포함할 수 있다.

    이러한 추가적인 조건들에 기초하여, 컴퓨터(110)는, 차량을 상기 차선 중앙에 위치시키는 것, 상기 차량의 속도를 낮추는 것, 및 상기 차량과 도로 위의 다른 물체 사이의 거리를 증가시키는 것을 포함하는 추가적인 태스크들을 발생시킬 수 있다. 도 8의 예와 마찬가지로, 컴퓨터(110)는 또한 상기 운전자가 상기 조건들 각각을 수정하게 하도록 대응하는 스크린 이미지들을 발생시킬 수 있다. 도 9에서 도시된 것처럼, 컴퓨터(110)는, 운전자에 의해 완료된 태스크들을 식별하는 일련의 스크린 이미지들(910, 920 및 930)을, 예를 들어, 전자 디스플레이(152) 상에서 운전자에게 디스플레이할 수 있다. 도 8의 예와 마찬가지로, 각 스크린 이미지는 상기 운전자가 상기 태스크를 완료할 때까지 한번에 하나씩 디스플레이될 수 있고, 상기 컴퓨터는 대응하는 조건이 수정되었음을 결정한다. 다시, 나머지 방지 조건들 또는 새롭게 식별된 방지 조건들이 전혀 존재하지 않음을 상기 컴퓨터(110)가 결정하면, 컴퓨터(110)는, 스크린 이미지(940)에서 도시된 것 같은, 자율주행 시스템(100) 및 컴퓨터(110)가 상기 차량을 제어할 준비가 되었음을 나타내는 메시지를 디스플레이할 수 있다.

    도 10의 흐름도(100)는, 자율주행 모드 및 수동운전 모드를 갖는 차량과 관련된 컴퓨터에 의해 수행될 수 있는 상기에서 서술된 양상들의 일부의 예시이다. 예를 들어, 차량(101)의 컴퓨터(110)는 블록 1002에서 자동운전 요청을 수신하거나 수동운전 모드에서 자율주행 모드로 전환하도록 하는 요청을 수신할 수 있다. 상기 컴퓨터(110)는 그때 블록 1004에서 프로토콜 데이터를 액세스함으로써 응답한다. 상기 프로토콜 데이터는, 그때, 차량의 현재 환경의 상태, 차량의 장래 환경의 상태, 차량의 상태 및 운전자의 상태를, 블록 1006, 1008, 1010 및 1012에서 각각 평가하기 위해 사용된다. 다시, 이러한 평가들은 임의의 순서로 수행될 수 있다. 상기 컴퓨터(110)는, 그때, 이러한 평가들이 블록 1014에서 어떤 문제가 되는 조건들을 식별할 수 있는지를 결정한다. 그렇지 않으면, 상기 컴퓨터(110)는 블록 1016에서 상기 수동운전 모드에서 자율주행모드로 전환하도록 처리한다.

    상기 평가들의 결과로서, 상기 컴퓨터(110)가 하나 이상의 방지 조건들을 식별하면, 상기 컴퓨터 또는 운전자가 이러한 식별된 조건들을 수정할 수 있을지 여부를 상기 컴퓨터가 블록 1018에서 결정한다. 상기 조건들이 수정될 수 없으면, 상기 컴퓨터(110)는 블록 1020에서 실패 메시지를 상기 드라이버에 디스플레이한다. 위에서 언급된 것처럼, 이러한 실패 메시지는 상기 실패에 대한 특정 이슈를 나타낼 수 있다.

    상기 컴퓨터(110) 또는 운전자가 식별된 문제들을 충분히 그리고 즉시 수정할 수 있으면, 상기 컴퓨터는 블록 1022에서 상기 컴퓨터에 의해 수정될 수 있는 문제들을 수정할 수 있다. 블록 1024에서, 어떤 식별된 방지 조건들이 존재하지 않으면, 상기 컴퓨터(110)는 블록 1016에서 상기 수동운전 모드에서 자율주행모드로 전환하도록 처리한다.

    블록 1024로 되돌아가, 상기 컴퓨터가 상기 컴퓨터들 중 일부를 수정한 후, 다른 문제점들이 남아있으면, 상기 컴퓨터(110)는 블록 1026에서 대응하는 태스크 또는 남아있는 문제점들 각각에 대하여 미리 순위가 정해진 태스크 데이터를 사용하여 태스크를 발생시킨다. 상기 컴퓨터(110)는 이후 블록 1028에서 차량(101)의 운전자에 의해 완성되는 가장 높은 순위의 태스크를 디스플레이한다. 상기 컴퓨터는 블록 1030에서 태스크가 완료될 때까지 상기 태스크를 디스플레이하는 것을 계속한다. 이러한 예에서, 상기 태스크가 일단 완료되면, 상기 컴퓨터는 상기 프로토콜 데이터를 액세스하고 블록 1006, 1008, 1010 및 1012의 여러 피처들의 상태를 재평가하기 위해 블록 1004로 되돌아간다. 상기 식별된 문제점들 모두가 수정되고, 상기 컴퓨터(110)가 블록 1016에서 수동운전 모드에서 자율주행 모드로 전환을 수행할 때까지 상기 프로세스는 계속될 수 있다.

    대안으로, 일단 태스크가 블록 1030에서 완료되면, 상기 식별된 문제있는 조건들 모두가 수정될 때까지 상기 컴퓨터는 그 다음 가장 높은 순위의 태스크를 단순하게 디스플레이할 수 있다. 일단 이러한 것이 발생하면, 상기 컴퓨터(110)는 수동운전 모드에서 자율주행 모드로 전환을 수행한다.

    앞서 언급된 평가들을 수행하는 것 및 시정 조치들을 수행하는 것은, 잠재적인 안전 이슈들과 같은 특정 문제들, 사용자가 지장을 받을 수 있는 액션들, 시간들에 걸쳐 자동차에 손상을 줄 수 있는 액션들을 방지할 수 있다. 예를 들어, 컴퓨터(110)가 일부 알려진 조건 때문에, 특정한 차선 또는 갓길에서 자동적으로 운전할 수 없다면, 그러한 조건에서 자율적으로 운전을 시작하는 것은 위험할 수 있다. 다른 예에서, 상기 차량이 다른 차량과 너무 가깝거나 너무 빠르게 주행중이면, 자율주행 모드로 직접 스위칭하는 것은, 상기 컴퓨터로 하여금 상기 차량의 속도를 즉시 그리고 극적으로 낮추도록 할 수 있다. 이는 운전자를 불편하고 불안하도록 할 수 있다. 또 다른 예에서, 상기 차량이 차선에서 충분하게 중앙에 있지 않으면, 컴퓨터(110)는 운전자가 운전하도록 의도하지 않은 차선으로 이동하게 함으로써 운전자를 놀라게 할 수 있다. 갑작스러운 차선 변경은 운전자를 불안하고 또는 불편하게 만들 수 있다. 따라서, 여기에서 서술된 피처들은, 상기 컴퓨터(110) 및 운전자가 운전 모드를 전환하는 것이 안전할 때까지 운전자로 하여금 제어를 유지하도록 한다.

    일단 차량이 자율주행 모드에 있고, 수동운전 모드로의 전환을 요구하는 어떤 조건들이 발생하면, 컴퓨터(110)는 상기에서 서술된 평가들 중 적어도 일부를 계속할 수 있고, 또한 자율주행 모드에서 운전의 연속적인 안전성에 관련된 다른 평가들을 행한다. 컴퓨터(110)에 의해 즉시 수정될 수 없거나 수정되지 말아야 할 어떤 방지 조건들이 식별되면, 컴퓨터(110)는 수동 운전 모드로 다시 전환할 필요성을 상기 운전자에게 알릴 수 있다. 예를 들어, 컴퓨터(110)가 자율 주행 모드의 어떤 컴포넌트와 통신의 손실과 같은 어떤 긴급 또는 어떤 방지 조건을 검출하면, 상기 컴퓨터(110)는 수동운전 모드로 전환할 필요성을 상기 운전자에게 즉시 알릴 수 있다. 빨리 그렇게 함으로써, 상기 방지 조건이 즉각적인 관심을 요구하지 않을 때조차도, 상기 컴퓨터는 운전자에게 상기 차량을 운전할 수 있도록 가능한 많은 시간을 제공할 수 있다.

    어떤 특정 조건들 하에서, 상기 컴퓨터(110)는 또한 운전자가 자율주행 모드에서 수동운전 모드로 전환하는 것을 막을 수 있다. 각 차량은, 상기 운전자가 어떤 조건들 하에서 수동 운전 모드로 전환하는 것을 허용하는 긴급 수동 전환을 포함할 수 있지만, 정규 동작들 하에서 수동 모드로 전환하는 것이 금지되거나 지연되는 경우들이 존재할 수 있다.

    예를 들어, 자율주행 모드에서 첫 몇 초들이 흐른 후, 상기 운전자가 운전대를 회전시키거나 또는 액셀레이터를 밟는 것과 같은, 자율주행 모드를 푸는 것을 시도하고 있음을 상기 컴퓨터(110)는 검출할 수 있다. 자율주행 모드로의 연결 요청 후 자율주행 모드를 푸는 요청이 매우 빠르게 발생하기에, 상기 컴퓨터(110)는, 상기 자율주행 모드를 푸는 요청이 의도적이지 않았음을 결정할 수 있다. 이와 관련하여, 자동적으로 자율주행을 풀기보다는, 컴퓨터(110)는 자율주행 모드가 풀렸다는 경고를 상기 운전자에게 제공할 수 있고, 또한, 상기 운전자가 다른 액션들을취할 때까지, 예를 들어, 상기 운전자가 실제로 자율주행 모드를 푸는 것을 시도하고 있음을 나타내는, 운전대를 계속해서 회전시키거나 액셀레이터를 계속해서 밟을 때까지 상기 차량의 일부 측면들을 계속해서 제어할 수 있다.

    다른 예에서, 상기 액션이 완료되기 전에 상기 운전자에게 용이하게 전달될 수 없는 액션을 상기 차량이 수행할 때, 상기 컴퓨터(110)는 상기 운전자가 수동 운전 모드로 전환하는 것을 막을 수 있다. 예를 들어, 갑작스러운 회전 중에 차량의 제어를 안전하게 운전자에게 돌려주는 것은 용이하지 않을 수 있다. 이와 관련하여, 컴퓨터(110)는 연속해서 이러한 평가를 행할 수 있고, 수동 운전 모드로의 전환이 운전자에게 안전하지 않거나 불편할 수 있음을 상기 컴퓨터가 결정할 때 그 시간 동안 경고를 제공할 수 있다. 수동 운전 모드로의 전환이 안전하고 편안함을 상기 컴퓨터가 결정할 때 그 시간 동안, 이러한 경고는 변경되거나 제거될 수 있다.

    상기에서 논의된 피처들의 이러한 그리고 다른 변화들 및 조합들은 청구범위에서 정의된 주제로부터 벗어나지 않고 이용될 수 있기에, 예시적인 실시예들의 이전의 서술은 청구범위들에서 정의된 주제를 제한하기보다는 설명의 목적으로 행해져야 한다. 여기에서 서술된 예들의 제공("와 같은", "예를 들어", "포함하는" 등과 같이 표현된 절들을 포함)은 특정 예시들에 대해 청구된 주제를 제한하도록 해석되지 말아야한다; 오히려, 상기 예들은 많은 가능한 양상들의 일부만을 나타내도록 의도됨을 또한 알 수 있다.

    산업상 이용가능성

    본 발명은, 수동 및 자율주행 모드를 갖는 차량에서 자율주행 모드로 들어가거나 자율주행 모드를 푸는 것을 포함하는 폭넓은 산업상 이용가능성을 가지고 있으나, 이에 한정되지는 않는다.

    QQ群二维码
    意见反馈