Os Os carros autônomos já são uma realidade, disso não há dúvidas. Eles deixaram de ser ficção científica e começaram a se materializar, embora ainda haja um longo caminho a percorrer. Seja como for, surpreende que um sistema inteligente seja capaz de pilotar automaticamente um veículo, evitando o trânsito, respeitando a sinalização e evitando atropelar pedestres. Por trás de tudo isso está uma grande tecnologia.
Portanto, vamos dedicar este artigo para aprender um pouco mais sobre direção autônoma e todas as tecnologias que tornam possível.
Arquitetura do sistema de um SDV

Um veículo autônomo (SDV) é um sistema complexo que requer uma arquitetura robusta para processar informações, tomar decisões e controlar o veículo. Esta arquitetura é geralmente dividida em três partes fundamentais: hardware, middleware e software.
Hardware
O hardware de um SDV é a base física do sistema. Dentro do Hardwares Estão incluídos sensores ou sistemas que coletam informações do próprio veículo, bem como do ambiente. Claro, também é necessário um computador central para processar o software, que implementa todas as funções de análise, IA, etc. E isso é feito por meio de computadores potentes com CPU e GPU(), já que grandes quantidades de dados são necessárias para serem executadas imediatamente.
Por outro lado, também temos a rede interna que entrelaça todos os elementos, isto é, os sensores ou sistemas de entrada para o computador e do computador para os elementos de saída ou atuadores. Por exemplo, quando um sensor detecta um pedestre, ele envia um sinal ao computador que irá processar essa informação e enviar uma ordem ao atuador que controla o freio, para parar o veículo e evitar uma colisão.
Da mesma forma, também temos outros módulos de comunicação no sistema de hardware, que servem para comunicar com outros elementos da infraestrutura, como elementos de computação em nuvem ou nevoeiro que podem fornecer dados de tráfego, meteorologia, etc.
Computing
Entre o hardware, você encontra computadores com diversos processadores, entre outros, além de produtos como NVIDIA Orin ou Thor, chip especialmente desenvolvido para direção autônoma e sucessor do Xavier, em SoCs como o Drive AGX da NVIDIA que inclui CPU (ARM) como GPUs (baseadas nas arquiteturas Maxwell, Ampere, Ada Lovelace, Blackwell,...), que fazem parte de a plataforma NVIDIA Drive. Outros produtos que também podemos apreciar são Intel Movidius, Qualcomm Ride, etc.
Em geral, o computadores para veículos autônomos Eles são os principais responsáveis pelo processamento da grande maioria das informações necessárias para a tomada de decisões em tempo real, como detecção de objetos, planejamento de rotas e controle de veículos. Isso ocorre porque a latência, ou seja, o tempo que a informação leva para viajar do veículo até um data center e vice-versa, pode ser crítica em situações como evitar um acidente. No entanto, os data centers desempenham um papel complementar e cada vez mais importante, para formação de modelos de aprendizagem, cálculos que requerem HPC, atualizações de mapas, análise de dados em grande escala ou Big Data, etc.
Portanto, o computador de bordo não é o único envolvido na condução autônoma, ele também é apoiado pelo computação em nuvem ou nuvem, fog computing ou fog e edge computing ou edge, todos se comunicando continuamente para funcionar como um sistema.
Sensores

Voltando ao tópico de os sensores, podemos encontrar alguns dispositivos de entrada ou periféricos como:
- Radar: É um dispositivo que utiliza ondas de rádio para detectar objetos a uma determinada distância, medindo assim a velocidade, distância e presença de outros veículos, pedestres e obstáculos, mesmo que haja condições de baixa visibilidade.
- LiDAR: significa Light Detection and Ranging, e é um dispositivo que utiliza pulsos de laser para criar mapas 3D do ambiente, e assim saber como se movimentar nele. Você pode medir distâncias com precisão, criar uma representação detalhada rapidamente, etc.
- Ultra-som: Também pode ser usado para detectar objetos em tempo real, como os anteriores. Nesse caso, ele emite ondas sonoras de alta frequência e mede o tempo que leva para retornar para saber as distâncias. São utilizados como complemento aos anteriores para medir objetos que estão muito próximos do veículo, por exemplo durante manobras de estacionamento.
- Máquinas fotográficas: Essas câmeras podem capturar imagens do ambiente para serem processadas por sistemas de visão computacional ou de visão artificial e assim serem capazes de identificar objetos, pedestres, sinais de trânsito, faixas e outros elementos. Desta forma, poderão também conhecer as limitações de velocidade, e outros tipos de sinalização vertical ou horizontal.
- Unidades de Medição Inercial: Esses IMUs medem a orientação, velocidade angular e aceleração de um veículo. Isso é necessário para rastrear o movimento do carro, estimar sua posição e poder se orientar quando o sinal GPS não estiver disponível.
- Odômetro- Este dispositivo mede a distância percorrida pelo veículo, utilizando-a para calcular a posição do carro em combinação com outros sensores. Além disso, pode ser útil para determinar o desgaste dos pneus, os quilômetros percorridos para estimar as revisões do motor, etc.
É claro que os carros autônomos também possuem muitos outros sensores, para medir a temperatura do motor, velocidade, pressão dos pneus, etc.
Interfaces e atuadores
Por outro lado temos os chamados Rede no veículo, ou a rede do veículo. São sistemas de comunicação que permitem a interligação de diferentes componentes eletrônicos dentro de um veículo. Estes sistemas são essenciais para a coordenação e troca de informação entre os vários sistemas de controlo dos veículos, incluindo os sistemas de condução autónoma. Por exemplo, podemos destacar barramentos de dados como:
- CAN (Rede de Área do Controlador): É amplamente utilizado na indústria automobilística, o que permite a comunicação entre diferentes módulos eletrônicos.
- LIN (Rede de Interconexão Local): um protocolo de comunicação de baixo custo usado para conectar dispositivos de baixa velocidade, como sensores e atuadores.
- MOST (Transporte de Sistemas Orientados à Mídia): Neste caso é a alta velocidade utilizada para transmitir dados multimídia, como áudio e vídeo.
Graças a eles é possível trocar dados de diversos módulos eletrônicos e ECUs, bem como enviar sinais de controle distribuídos, diagnóstico conectando dispositivos capazes de ler e interpretar códigos de erro, etc.
Além disso, eles também servem para o que é chamado Interface do atuador e os componentes, ou seja, os atuadores. A Interface do Atuador é o ponto de conexão entre o sistema de controle de um veículo autônomo e os atuadores físicos que controlam o movimento do veículo. Esses atuadores são dispositivos mecânicos que realizam ações baseadas em sinais elétricos. Este subsistema é composto por módulo de controle de potência, controle de motor, servoatuadores, sensores de posição e velocidade, etc.
Drive-by-wire é um sistema de controle que substitui os tradicionais componentes mecânicos do sistema de condução (como volante, pedais e caixa de câmbio) por sistemas eletrônicos e elétricos. Isto permite maior flexibilidade e controle na direção autônoma. Podemos ter um para controlar o volante, outro para os freios, para o acelerador, ou para mudar de marcha...
middleware

El middleware é uma camada de software que conecta o hardware ao software aplicativo. Suas funções incluem o processamento de dados por meio de filtragem, fusão e processamento dos dados que chegam dos sensores, além de planejar e desenvolver o controle dos atuadores com base em planos de condução.
Esta camada de arquitetura Não confunda com o firmware, por se tratar de uma camada de software integrada responsável pela mediação entre o hardware e o software aplicativo. Em outras palavras, é uma camada de abstração que permite aos desenvolvedores aproveitar facilmente os recursos de hardware disponíveis na camada de software ou aplicação, por meio de API/frameworks de desenvolvimento.
Alguns exemplos de sistemas operacionais usados em carros autônomos são:
- ROS (sistema operacional de robô): é um sistema de código aberto para desenvolvimento de software para robôs ou mecanismos automáticos que fornece serviços padrão de um sistema operacional como abstração de hardware, comunicação entre processos e gerenciamento de pacotes, facilitando a criação de aplicações robóticas complexas.
- Autoware.AI: é uma plataforma de software de código aberto para o desenvolvimento de veículos autônomos. Assim como o ROS, ele fornece uma arquitetura modular e uma ampla gama de ferramentas e bibliotecas.
- Apollo– Desenvolvido pela Baidu, Apollo é uma plataforma de software de código aberto para veículos autônomos que oferece uma arquitetura flexível e escalável.
- SO NVIDIA DRIVE: é uma plataforma de software da NVIDIA projetada especificamente para veículos autônomos. Ele fornece uma base sólida para o desenvolvimento de aplicações de direção autônoma e possui forte integração com hardware NVIDIA.
- ROS2: A próxima geração de ROS, projetada para resolver algumas das limitações do ROS e oferecer maior escalabilidade e robustez para aplicações críticas.
Aplicação

La camada de aplicação é o software Um SDV é a parte intangível do sistema, todas aquelas aplicações que se encarregam de processar a percepção dos sensores, a localização do carro no mundo real, o planejamento, o controle, etc., e que o fazem aproveitando o recursos de hardware.
Outros conceitos importantes sobre carros autônomos

Por fim, gostaria também de descrever outros conceitos importantes para a direção autônoma que não comentei na seção anterior:
ADAS x ADS
Não confunda ADAS com ADS, eles não são iguais. ADAS significa Sistemas Avançados de Assistência ao Motorista.. Esses sistemas são projetados para auxiliar o motorista em diversas tarefas, melhorando a segurança e o conforto ao dirigir. Por exemplo, ABS, controle de tração, etc., e também estão presentes em carros autônomos.
Em vez disso, ADS (sistemas de direção automatizados) refere-se a sistemas que visam permitir que um veículo se dirija sem intervenção humana sob certas condições. Ou seja, é a tecnologia para pilotagem autônoma, e não é substituta do ADAS, mas sim complementar...
Algoritmo ICP
El Algoritmo ICP (ponto mais próximo iterativo) É uma ferramenta fundamental na área de visão computacional, principalmente em tarefas que envolvem o alinhamento de nuvens de pontos. Imagine ter duas digitalizações 3D do mesmo objeto, mas tiradas de ângulos ou momentos diferentes. O algoritmo ICP permite encontrar a transformação (rotação e translação) que melhor alinha essas duas varreduras, fazendo com que elas correspondam o mais próximo possível. Desta forma, pode ser utilizado para realizar reconstruções 3D utilizando vários scans feitos pelos sensores, também pode ser utilizado para o chamado SLAM que descreverei mais tarde, bem como para visão artificial.
Baseado em INS + GPS + SLAM
sistemas de navegação INS (Sistema de Navegação Inercial), GPS (Sistema de Posicionamento Global) e SLAM (Localização e Mapeamento Simultâneo) Eles são utilizados em diversas aplicações, principalmente em veículos autônomos. Cada um tem seus próprios pontos fortes e fracos, e muitas vezes se combinam para obter localização e navegação mais precisas e robustas.
Enquanto o INS se baseia em sensores internos, como acelerômetros e giroscópios para medir aceleração e velocidade angular, o GPS se baseia na triangulação do veículo por meio de sinais de satélite (pode-se falar também de outros sistemas de geolocalização como Galileo, GLONASS, BeiDou.. .) e os sistemas SLAM combinam localização com mapeamento simultaneamente para construir mapas do ambiente enquanto determinam a posição do veículo dentro desse ambiente.
Como cada sistema tem seus prós e contras, podendo ter impedimentos, como mau sinal de GPS devido ao clima ou à orientação dos satélites, etc., os carros autônomos geralmente utilizam uma combinação de vários para maior segurança, como INS+ GPS , SLAM+GPS ou INS+GPS+SLAM.
Outros modelos de posicionamento: filtro de Kalman, EKF, AMM, UKF e estimativa de estado
Os acima não são os únicos sistemas para calcular o status. O algoritmo Filtro de Kalman é um sistema recursivo que estima o estado de um sistema dinâmico (como posição e velocidade) a partir de medições. Funciona prevendo o estado futuro e atualizando essa previsão com as novas medições. É amplamente utilizado em sistemas de controle e navegação.
EKF (Filtro de Kalman Estendido) é uma extensão do filtro de Kalman usado quando o modelo de movimento é não linear. Linearize o modelo em cada intervalo de tempo para aplicar as equações do filtro de Kalman. É comumente usado em robótica móvel.
Modelo de movimento avançado é uma representação matemática que descreve como o estado de um sistema muda ao longo do tempo. Pode incluir fatores como aceleração, velocidade angular e forças externas. Por outro lado,
Em vez disso, UKF (Filtro Kalman sem cheiro) é uma alternativa ao EKF o que evita a linearização do modelo. Em vez disso, utiliza um conjunto de pontos de amostragem (pontos sigma) para representar a distribuição de probabilidade do estado. Esses pontos são propagados através do modelo não linear e então utilizados para calcular a média e a covariância do estado estimado.
Inteligência veicular
Claro que para aproveitar o hardware e toda essa infraestrutura dos carros autônomos, um sistema inteligente que pode tomar decisões, e para isso são necessárias outras tecnologias como a IA. Embora, como sabem, ainda haja muito a melhorar, pois ainda é uma tecnologia disruptiva e precisa de melhorias. Para isso, os carros autônomos contam com paradigmas como:
- Aprendizado de Máquina: é um ramo da inteligência artificial que se concentra no desenvolvimento de algoritmos que aprendem com os dados. Esses algoritmos podem encontrar padrões nos dados e fazer previsões ou decisões.
- Aprendizagem Supervisionada: é um tipo de aprendizado de máquina em que o algoritmo aprende a mapear uma entrada para uma saída desejada. É fornecido um conjunto de dados de treinamento com entradas e saídas corretas, e o algoritmo aprende a generalizar para novos dados.
- Neuronal Vermelho: é um modelo computacional inspirado no cérebro biológico. É composto por uma rede de nós interligados que processam informações. As redes neurais são capazes de aprender representações complexas de dados e são utilizadas em uma ampla variedade de tarefas, como reconhecimento de imagens e processamento de linguagem natural.
Mapeamento (grade de ocupação, feição, mapas relacionais…)
Todas essas tecnologias mapeiam fundamentalmente o ambiente para poder tomar decisões sobre ele. Não são mapas pré-programados, pois tudo pode mudar de um momento para o outro, dependendo do trânsito, dos pedestres, das obras, dos obstáculos, etc. Por isso é necessário realizar esta representação em tempo real. Dentro do mapeamento Nós temos:
- Grade de ocupação: é uma representação do espaço que divide o ambiente em uma grade e atribui a cada célula uma probabilidade de ocupação.
- Mapas de recursos: São representações que enfocam características específicas do ambiente, como cantos, linhas ou objetos.
- Mapas relacionais: representam as relações entre diferentes objetos ou lugares do ambiente.
Os filtros de Kalman, EKF/UKF e mapeamento estão intimamente relacionados, assim como o aprendizado de máquina, que é responsável por compreender esse ambiente e tomar decisões com base nele.
Imagens | Canva | NVIDIA | GeeksForGeeks | FlexAutomotivo