quarta-feira, 19 de fevereiro de 2020

Carro autônomo

Carro autônomo: planejamento de caminho para manobrar o tráfego.

O planejamento do caminho consiste em encontrar um caminho seguro, confortável e eficiente para manobrar pelo tráfego. O vídeo a seguir demonstra a idéia com pontos verdes, sendo nossa trajetória calculada.

Planejamento de caminho com um simulador de ambiente fornecido pela classe de condução autônoma Udacity.

Isso faz parte de um artigo autônomo de 5 séries. Outros tópicos incluem
  • Percepção de auto-condução: fusão do sensor com o filtro Kalman .
  • Percepção de direção autônoma: filtro Kalman estendido e filtro Kalman sem cheiro .
  • Localização autônoma: Localização com filtro de partículas .
  • Controle autônomo: controle com controle preditivo modelo e PID .
  • Localização de caminho autônomo .

Pipeline de fluxo de trabalho

Primeiro, vamos ter uma visão geral do fluxo de trabalho.
Percepção : Percebemos o que está ao nosso redor. Através da fusão de sensores, integramos as leituras dos sensores para construir uma imagem precisa da posição e da velocidade dos objetos ao redor.

Fonte aqui 3D

Previsão : Usamos as informações do sensor para prever as trajetórias de nossos objetos ao redor. Portanto, evitamos qualquer colisão.

Fonte

Planejamento de comportamento : analisamos diferentes opções e criamos um punhado de propostas a partir de nossas opções. Eventualmente, traduzimos cada proposta em um local.


Planejamento de trajetória : para cada alvo em potencial, calculamos a trajetória correspondente.


Classificação de custos de trajetória : para cada trajetória, analisamos sua viabilidade e o custo com base em segurança, conforto e eficiência. Selecionamos a trajetória final com a maior pontuação.


Controle : Em seguida, enviamos a nova trajetória ao controlador do carro para controlar os atuadores do veículo.

Fonte

Aqui está a visão geral de um sistema de carro autônomo:

Fonte: Udacity Classe de direção autônoma.

Percepção


Fonte: The Economist

Um carro autônomo usa câmeras estéreo, LiDAR e Radar para perceber o ambiente. O vídeo abaixo mostra o uso de câmeras para perceber objetos ao nosso redor, para que saibamos quais ações são viáveis ​​e planejemos um caminho de acordo.


No entanto, não é fácil determinar a profundidade com câmeras estéreo. O LiDAR envia cerca de 2000 pulsos de feixe de laser infravermelho próximo por segundo para reconstruir um mundo 3D em torno de nós. O RADAR, por outro lado, possui um alcance maior que o LiDAR, mas menor resolução. Ele também tem a capacidade de medir a velocidade.


Usando a fusão de sensores , reconstruímos uma imagem consolidada e mais precisa da localização e da velocidade dos objetos.

Predição

No entanto, apenas conhecer a localização ou a velocidade dos objetos ao nosso redor não é suficiente. Também fazemos previsões sobre nossa trajetória e outras para evitar colisões. Se a trajetória do carro autônomo se aproxima perigosamente de outras trajetórias, devemos aumentar drasticamente o custo da trajetória para não escolher essa opção.
Em um ambiente urbano, precisamos rastrear muito mais objetos, incluindo pedestres, ciclistas, carrinhos, scooters, etc ... Às vezes, o sinal manual dos motociclistas e a postura dos pedestres são informações críticas para determinar suas intenções. A palestra do TED abaixo apresenta alguns detalhes desse processo.


Previsão de trajetória baseada em modo ou aprendizado profundo
Para prever trajetórias, podemos usar um método baseado em modelo ou um método de aprendizado profundo.

Fonte: classe autônoma Udacity

Para um método baseado em modelo, começamos com o modelo dinâmico de um objeto.

Fonte

A cada etapa do tempo, monitoramos seu movimento previsto por seu modelo dinâmico e estimamos qual é a probabilidade dessas possíveis trajetórias.

Classe de condução autônoma Udacity

Como alternativa, usamos o aprendizado profundo para localizar um objeto e calcular sua trajetória ou classificar sua intenção. Por exemplo, na imagem abaixo, detectamos que um motociclista está sinalizando uma curva à esquerda.

Fonte: Google

Planejamento de comportamento

Em conjunto com um mapa, uma rota planejada para um destino e previsões, o planejador de comportamento faz sugestões sobre como manobrar um carro.

Fonte: classe autônoma Udacity

Nós somos fornecidos com muitas opções:
  • Faixa: mantenha a mesma faixa, troque a faixa para a esquerda / direita, passe o veículo à frente ou apenas prepare a troca de faixa.
  • Velocidade: mantenha a mesma velocidade, siga o veículo à frente, diminua a velocidade ou acelere até a velocidade desejada ou pare.
Comece com diferentes objetivos de alto nível, como seguir o trânsito, passar carros em movimento lento ou acelerar até o limite de velocidade. Analisamos diferentes opções de como fazer isso acontecer. Por exemplo, mude para a faixa esquerda e acelere a 90 km / h ou reduza a velocidade para manter uma distância segura do carro à frente. Para cada plano, determinamos qual faixa usar e a velocidade desejada no final de nossa avaliação. Então calculamos a localização de acordo. Abaixo, apresentamos uma lista de locais (pontos amarelos) nos quais podemos querer que nosso carro esteja em, digamos, 2 segundos.

Planejamento de trajetória

Depois de termos uma lista de locais candidatos, calculamos a trajetória de cada proposta. Mas antes disso, primeiro examinamos o sistema de coordenadas.
Sistema de coordenadas
A localização e o planejamento de rotas usam um sistema cartesiano global para definir um local (x, y).


No entanto, para o planejamento de trajetória, será mais fácil trabalhar em um sistema de coordenadas que segue a curva da estrada ( quadro Frenet ). No nosso exemplo abaixo, temos 3 pistas. d = 0 é o meio da estrada. d = -1 significa a faixa da direita. s mede a distância de um ponto específico ao longo da estrada. Então, em vez de ( x , y ), nossa localização de trajetória é medida como ( s , d ) no quadro Frenet.


Para fins de exibição, distorcemos o sistema de coordenadas Frenet da seguinte maneira:


Conversão entre os quadros cartesiano e Frenet
Usaremos um mapa para converter coordenadas entre as coordenadas cartesianas e Frenet globais. No entanto, os pontos de referência do mapa podem estar mais distantes do que queremos. Por exemplo, o mapa abaixo tem apenas 3 pontos de referência (rosa). Para interpolar pontos no meio, usamos esses 3 pontos para ajustar um modelo de spline e usamos para executar a transformação.


Agora, vamos ver como as trajetórias são calculadas.
Modelo de spline cúbico
Durante o planejamento do comportamento, propomos planos diferentes. Traduzimos isso em locais-alvo que queremos que nosso carro esteja em um horário específico. Usamos esse local de destino e alguns locais anteriores para construir uma curva spline cúbica para modelar nossa trajetória. Esse modelo de spline preserva a primeira e a segunda derivadas de nossas trajetórias anteriores, para que tenhamos uma condução mais suave (sem salto repentino na velocidade e aceleração). Posteriormente, usamos o modelo de spline para calcular onde o carro deve estar a cada 0,02 segundo no próximo segundo. Em seguida, essas informações são transferidas para o controlador para controlar os atuadores do veículo.


JMT (trajetória minimizada de empurrões)
Como alternativa, podemos criar uma trajetória para minimizar o empurrão, que queremos minimizar acelerações repentinas. Matematicamente, definimos s como uma função polinomial do tempo t. Para minimizar o jerk, queremos encontrar uma trajetória ideal que minimize a magnitude acumulada da mudança de aceleração, ou seja, não há muitas mudanças repentinas de aceleração | a '(t) |:


Para conseguir isso, restringimos nosso polinômio s (t) a uma classificação de 5. Intuitivamente, a alta classificação de um polinômio permite movimentos repentinos. Por exemplo, uma função polinomial de classificação 9 abaixo permite curvas acentuadas.


Para simplificar o cálculo, redefinimos o tempo para 0 quando calculamos uma nova trajetória. Conhecemos nosso estado inicial (localização, velocidade, aceleração) em nosso sistema de automóveis.


e o planejamento do comportamento nos fornece o estado alvo:


Agora, queremos encontrar os 6 coeficientes em nosso modelo de trajetória:


No tempo = 0,


Portanto, os três primeiros coeficientes podem ser encontrados em nosso estado inicial. Repetimos se para o nosso estado-alvo:


Agora, temos mais 3 equações para que possamos resolver os 3 coeficientes restantes. Repetiremos o mesmo processo para encontrar o polinômio na direção d .


Exemplo


Idealmente, durante o planejamento do comportamento, não queremos mais aceleração ou mudança de faixa até o final de nossa trajetória planejada. Portanto, para o estado inicial ou de destino, eles devem ser:


Além disso, nosso plano quer que o carro atinja uma velocidade específica às vezes. (atingir o limite de velocidade ou corresponder à velocidade do carro na frente)


Aqui está o nosso resumo:


No entanto, em baixa velocidade, não podemos calcular s e d independentemente ( papel ). No nosso exemplo, tornamos d = constante para contornar o problema em baixa velocidade. (ou seja, não mudamos de faixa em baixa velocidade)

Classificação de custo da trajetória

As trajetórias são classificadas usando uma função de custo. Dependendo da nossa política definida, ela inclui fatores como
  • as condições de contorno, o alvo desejado dos parâmetros de estado e
  • a frequência correspondente e a magnitude das mudanças.
Por exemplo, a aceleração máxima é limitada pelo torque máximo de um carro. Portanto, não é viável uma trajetória que exija uma aceleração maior do que aquilo que ela pode fazer. Para evitar uma colisão, comparamos todas as trajetórias projetadas. Aumentamos drasticamente o custo quando a distância do carro cai abaixo de uma zona de segurança. Para eficiência, queremos dirigir o mais próximo possível do limite de velocidade legal.
Também incluiremos mais parâmetros de estado no cálculo de custos. Por exemplo, adicionaremos o ângulo e a velocidade da direção para evitar capotamentos. No entanto, não contamos esses fatores igualmente. Para viabilidade e segurança, seus pesos são extremamente altos. Isso garante que não tomemos uma atitude inviável ou arriscada. Alguns outros pesos são ajustáveis. Portanto, para fatores menos críticos que envolvem conforto e eficiência, realizamos experimentos para encontrar um bom equilíbrio entre uma condução mais suave ou uma direção mais agressiva para obter a velocidade ideal.


Após calcular o custo de todas as trajetórias, selecionamos uma com o menor custo como nossa decisão final.

Produzir novo caminho

Agora uma trajetória ideal é selecionada. No nosso exemplo, calculamos os próximos 50 locais (com um intervalo de 0,02 segundo) usando o modelo matemático que construímos. isto é, 1 segundo de pontos de trajetória.


Nós o convertemos novamente na coordenada global. Essa coordenada x , y será usada pelo controlador do carro para manobrar o carro e para fins de localização. No entanto, geralmente não esperamos até que toda a trajetória seja concluída para a próxima trajetória. Freqüentemente, uma vez que tenhamos um novo conjunto de medidas, podemos recalcular uma nova trajetória.


Mapa modificado daqui

Bônus

Por diversão, essa é outra maneira de enviar seu Tesla para Marte se o planejamento de seu caminho estiver desativado.

Mais pensamentos

Este artigo descreve uma estrutura de osso de urso para o planejamento do caminho. Essa estrutura será ampliada e modificada para enfrentar o desafio da vida real, em particular para a condução urbana.
Ao longo do artigo, mencionamos frequentemente a fusão e o controle de sensores. Para os interessados ​​no aspecto técnico, aqui estão mais alguns artigos que você pode ler.

Nenhum comentário:

Postar um comentário

Conheça Um dos Melhores Aplicativos Para Ganhar Dinheiro no Paypal de 2020!

O ClipClaps é um aplicativo totalmente inovador que já vem fazendo sucesso no exterior há alguns anos, mas que só chegou oficialmente na Goo...