Esta é a primeira publicação de uma série de novidades que vem por aí para ensinar sobre como fazer seu primeiro veiculo autônomo! Se você quer entrar neste mundo e não faz ideia pode onde começar, seja bem vindo e continue a leitura! 😀
O que são veículos autônomos?
Os carros autônomos, também conhecido como veículo robótico ou veículo sem motorista, é qualquer veículo terrestre com capacidade de transporte de pessoas ou bens sem a utilização de um condutor humano. O seu principal objetivo é integrar um conjunto de tecnologias de sensores, de sistemas de controle e atuadores para “sentir” o ambiente, determinar as melhores opções de ação e executar estas ações de forma mais segura e confiável do que poderia ser obtida por um condutor humano comum.
Atualmente existem veículos comerciais com direção autônoma, como os carros da empresa Tesla. É importante destacar que essa tecnologia ainda estão em desenvolvimento e até o momento, os motoristas devem manter-se sempre atentos ao transito e sempre com as mãos ao volante.
Outras iniciativas tambem estão em nível de teste em locais delimitados, como os carros da Waymo, subsidiária da Alphabet e dona do Google. Com base nos próprios relatórios de acidentes do Google, seus carros de teste foram envolvidos em 14 colisões, dos quais outros motoristas foram culpados 13 vezes.[1] Em 2016 foi registrado o primeiro acidente causado pelo software do carro.[3]
Por onde começar?
O desenvolvimento de carros autônomos envolvem diversas áreas de conhecimento como: Computação, Eletrônica e Mecânica. Mas calma! Você não precisa ser um expert em tudo! Você pode se aprofundar naquilo que você mais gosta. Por isso é importante montar uma equipe multidisciplinar, cada colega com sua especialidade. Mas é fundamental que todos conheçam um pouco de todas as outras áreas, já que a integração entre elas são fundamentais para o sucesso do projeto!
Entenda o Problema
Você precisa saber por onde começar e qual problema resolver. Tente responder as seguintes perguntas: Quão complexo é o ambiente onde o carro irá andar? Temos mudanças de iluminação ou interferências? Precisamos desviar de objetos? Precisamos seguir um caminho determinado e sempre bem definido? Qual a velocidade máxima? Qual a precisão que precisamos? Qual a autonomia desejada? Qual o nível de segurança que precisamos?
Com essas respostas inicias, já conseguiremos avançar para detalhes mais profundos, vamos lá?
Defina a Plataforma
Agora que sabemos o problema que vamos atuar, chegou o passo de definir a plataforma, isto é, a mecânica e dinâmica do nosso carro. Existem diversos modelos de plataformas para veículos, veja alguns exemplos:
- Carro de 3 ou 4 rodas com tração traseira
- Carro de 4 rodas com tração nas 4 rodas
- Carro de 3 ou 4 rodas com direção na roda frontal
- Carro de 3 ou 4 rodas omnidirecionais.
- Carro com rodas diferenciais.
Definir Motores e Eletrônica de Potência
Com a estrutura do carro definida, precisamos saber qual a velocidade e torque necessários, corrente máxima consumida pelos motores e dimensionamento das baterias. Damos o nome de Eletrônica de Potencia pois nesta etapa são envolvidos semicondutores de potencia, como transistores, para conversão e controle da energia elétrica em níveis mais altos de potência.
As escolhas dos motores é algo bastante importante, um motor mal dimensionado podem consumir muita corrente, ou ter baixa precisão de velocidade ou troque. Alguns tipos de motores são:
- Motor Escovado
- Motor Brushless (sem escovas)
- Motor com Caixa de Redução
- Motor com encoder para controle de velocidade acoplado.
- Motor de Passo
- Motor trifásico
Com a escolha do motor, é necessário a escolha do drive de potencia que controlará este motor, algumas opções são:
- ESC para Motores Brushless
- Ponte H
- Drive especifico para motor de passo
- Ou até um simples Transistor BD135 para motores CC de baixa corrente (até 500mA)
É importante notar que todos esses drivers tem uma corrente máxima suportada, por isso é importante saber qual o pico de corrente que seu motor consome com carga, isto é, com todo o peso do carro e o pico de corrente para sair da inércia.
Em motores de grandes fabricantes o datasheet pode ajudar a encontrar este valor. Alternativamente, é possível testar na prática, aplicando uma breve tensão com o motor travado com um alicate e medir a corrente com um múltimetro . Definido o valor de corrente, escolha sempre um drive com uma boa margem. Por exemplo, se o valor medido foi de 30A, é sempre aconselhável colocar o dobro ou até o triplo para evitar sobreaquecimento ou a queima em momentos de picos.
Escolha da “Visão” (Sensores)
Os sensores são os “olhos” do carro, eles serão responsáveis por “entender” o mundo alimentar o computador para tomar as decisões. Cada sensor tem uma abordagem de software diferente, por isso é fundamental entender qual a complexidade que teremos em tratar esses dados em cada situação. Conheça alguns exemplos de sensores:
- Encoders nas rodas – Podem ser usados para medir distância percorrida pelo carro e mensurar a posição do mesmo (Odometria)
- GPS – se seu carro anda em espaço aberto, GPS é uma alternativa que deve ser considerada
- Câmeras/Webcams – Exige maior poder computacional para “interpretar” as imagens.
- Lidar 2D – Scanners lasers que medem a distancia em um único plano, como paredes, pessoas ou objetos.
- Lidar 3D – Scanners lasers que medem a distancia em todas direções e não apenas em um único plano como o 2D.
Escolha do “cérebro” (Computador)
Finalmente chegamos na parte do software, ou quase isso… 😛
Neste momento precisamos definir qual o poder computacional que precisamos. Se vamos trabalhar apenas com sensores mais simples, como sensores de fotocélulas ou ultrassom, um Arduino deve dar conta de resolver bem o problema.
Mas se os sensores usados são como Lidars 3D, câmeras, ou até a combinação de vários sensores, é fundamental a escolha opções com nível de processamento mais elevado, algumas opções são Raspberry Pi, ASUS Tinker Board S, ou o Jetson da NVIDIA.
Escolha da Linguagem de Programação
A linguagem de programação não pode ser deixada de lado. É importante entender todas as necessidades de processamento, só assim teremos um tempo de reação mais rápido possível para cada vez que os sensores nos entregam uma percepção do ambiente.
Mas tambem é fundamental analisar fatores como: Quanto tempo tenho para desenvolver o projeto? Quais bibliotecas estão disponíveis para a linguagem de programação escolhida? De modo geral, o python tem sido muito usado por ser uma linguagem de fácil uso e bom desempenho. No entanto, para tarefas mais complexas a linguagem C/C++ ainda são as mais apropriadas, pois são mais eficientes computacionalmente.
Por fim, mas não menos importante: Qual bateria usar?
A bateria é um ponto de extrema importante ao que se diz em relação ao tempo de duração e autonomia do carro. É preciso definir o consumo de toda a eletrônica embarcada no carro, como o computador, sensores, motores e tudo aquilo que consome alguma corrente elétrica!
Suponha que seu carro esteja consumindo uma corrente de 1A e você quer que ele funcione por pelo menos 60 minutos? A conta é de uma bateria de pelo menos 1000mAh. Se seu carro consome 2A, esta mesma bateria duraria 30 minutos, e se consumisse 3A ja cairia para 15 minutos.
O tipo de bateria também é fundamental, os tipos mais comuns são:
- Li-Po (Polímero de Lítio)
- Bateria de Chumbo Ácido
- Ni-cd (bateria de níquel cádmio)
Prefira sempre bateria recarregáveis como as citadas, apesar de serem mais caras, no longo prazo acabam valendo a pena.
IMPORTANTE: use sempre carregadores apropriados para cada tipo de bateria. Carregadores incorretos podem acarretar em danos irreversíveis na bateria, alem de acidentes como vazamento, estufamento e até explosão.
Quais competições posso participar?
Você pode seguir o desenvolvimento de um veiculo apenas por diversão ou hobby. Mas a competição é um ótimo modo de conhecer pessoas, trocar aprendizados e experiências e até conseguir um trabalho. Ou seja, mesmo seu carro não indo tão bem, você sempre ganha!
Existem diversas competições com o intuito de estimular o desenvolvimento destas tecnologias. No Brasil, o RoboCar Race é um evento social sem fins lucrativos e suportado por voluntários. O evento é gratuito e aberto para todos, desde jovens iniciantes até phd, entusiastas e empresas.
O RoboCar Race tem como objetivo integrar a comunidade e empresas no desenvolvimento de veículos autônomos em escala, desenvolvendo assim competências aos brasileiros para competitividade em nível global. Ajude-nos divulgando e participando!
Gosta de machine learning, matemática e ajudar. Trabalha na Interapix. Colabora na publicação de conteúdos, divulgação e mantem o site do Robocar Race