Conversão autônoma de um Volvo 1993 com openpilot
(practicapp.com)- Foi escolhido um Volvo 940 Estate 1993 antigo para atender às condições de participação da Carbage Run 2025 Winter edition, e começou-se uma conversão criativa de assistência ao motorista nível 2 baseada em openpilot para ganhar pontos em originalidade
- O openpilot suporta mais de 275 veículos modernos, mas este Volvo usa direção, aceleração e frenagem mecânicas/hidráulicas, então foi preciso adicionar atuadores para acionar eletronicamente cada função
- A direção foi implementada transplantando a EPS de um Toyota Corolla 2020 e um sensor externo de ângulo de direção para a coluna de direção do Volvo, funcionando apenas com alimentação básica, sinal de ignição e conexão CAN
- A frenagem substituiu o servo-freio a vácuo por um Bosch iBooster, e a aceleração foi montada com um servo RC e um cabo auxiliar puxando a válvula do carburador
- A assistência hidráulica original e a nova assistência elétrica passam a atuar juntas, deixando o volante mais leve, mas ainda existe a limitação de ele não voltar sozinho ao centro após curvas
Transformando um Volvo 1993 em carro autônomo para a Carbage Run
- O ponto de partida foi participar da Carbage Run 2025 Winter edition
- Uma jornada de 6 dias atravessando a Suécia no inverno até o círculo polar ártico e depois descendo até Helsinque
- Cerca de 400 carros participam juntos
- Os veículos participantes precisam ter pelo menos 20 anos e valor diário inferior a €1000
- Incluindo o deslocamento de ida e volta da Bélgica, seria necessário rodar cerca de 6000 km em pouco mais de uma semana
- Como a originalidade do carro também faz parte da avaliação, a ideia foi transformar um Volvo 940 Estate 1993 em algo parecido com um carro autônomo
Requisitos que o openpilot impõe ao veículo
- O openpilot é um projeto de assistência avançada ao motorista nível 2 desenvolvido pela comma.ai
- Ele oferece funções próximas de uma condução parcialmente autônoma, como o Tesla Autopilot
- Hoje suporta mais de 275 modelos de veículos, incluindo Toyota, Honda, Hyundai, VW e outros
- Tesla Model 3/Y também está entre os suportados
- O requisito central é que o carro consiga acionar eletronicamente direção, aceleração e frenagem
- Em carros modernos, normalmente os seguintes sistemas recebem comandos por mensagens CAN-bus
- Electric Power Steering, ou EPS
- Servo-freio elétrico ou bomba do ABS
- Unidade eletrônica de controle do motor
- O Volvo 940 de 1993 está longe dessas condições
- A direção é hidráulica
- O acelerador é ligado ao carburador por cabo
- O servo-freio é a vácuo
Direção: transplante da EPS do Toyota Corolla
- Para manter o carro na faixa, era necessário um atuador de direção capaz de aplicar torque eletronicamente ao volante
- A solução escolhida foi transplantar o atuador EPS e a ECU de um Toyota Corolla 2020
- No Corolla, esse motor fica instalado na coluna de direção atrás do painel
- Ele mede o torque do motorista e aplica força amplificada ao eixo de saída
- A coluna de direção reta original do Volvo foi removida e a EPS do Corolla foi inserida no meio
- Foram removidas o máximo possível as peças ligadas ao ajuste do volante vindas da coluna do Corolla
- Parte da coluna do Volvo foi cortada e soldada ao estriado do lado do Corolla
- Também foi adicionada uma estrutura de reforço extra entre o quadro original da direção e a EPS
- O Corolla também usa um sensor externo de ângulo de direção
- O sensor interno do motor EPS serve para medições relativas precisas dentro do loop interno de controle
- O sensor externo fornece o ângulo absoluto de direção, com 0 grau representando a roda reta
- O código do controlador de veículo do openpilot também precisa desse ângulo absoluto
- Como foi possível baixar esquemas elétricos e documentação de conectores da Toyota por um pequeno valor, entender a fiação foi simples
- A caixa de direção precisava de GND, 12 V permanente, fusível de 80 A, sinal de ignição 12 V e CAN para o sensor de ângulo
- Só com essas conexões a EPS já funcionou, embora possa estar em modo degradado por falta de mensagens como velocidade do veículo da Toyota
O problema de manter direção hidráulica e elétrica juntas
- A direção hidráulica assistida original do Volvo foi mantida e funciona ao mesmo tempo que a nova EPS elétrica
- Também seria possível desligar a assistência hidráulica e usar só a elétrica, mas não está claro se a caixa de direção foi projetada para receber continuamente o torque maior vindo da EPS nesse cenário
- Mesmo com os dois sistemas de assistência ligados, o carro continuou dirigível e o volante ficou mais leve
- A desvantagem é que o torque natural de retorno do veículo não é suficiente para vencer os dois sistemas no sentido inverso
- Ao soltar o volante numa curva, ele não volta ao centro
- Ele permanece na posição em que foi deixado
- Uma possível solução seria reduzir a pressão hidráulica para diminuir a assistência original, mas isso ainda não foi testado
Frenagem: instalação do Bosch iBooster
- Um dos recursos modernos que reduzem o cansaço em viagens longas é o Adaptive Cruise Control
- Para manter distância segura do carro da frente, o veículo precisa conseguir frear automaticamente
- No Volvo original, o freio funciona amplificando com vácuo a força aplicada pelo motorista ao pedal para empurrar o cilindro mestre
- Em carros modernos, o princípio básico é semelhante, mas o Bosch iBooster usado em Tesla e outros substitui a assistência a vácuo por um sensor de força e motor elétrico
- O iBooster é bastante usado em projetos de conversão para EV
- Ele permite uma solução mais limpa do que substituir a fonte de vácuo do motor original
- Mesmo sem CAN conectado, entra em modo degradado e pode ser usado sem funções de controle
- A EVcreate publicou textos sobre o uso do iBooster, incluindo Wiring the iBooster
- Um iBooster usado ainda era caro em relação ao valor do carro
- Lars, da EVcreate, forneceu um iBooster em troca de pesquisa sobre controle via CAN
Processo de instalação do iBooster e linhas de freio
- Depois de remover o servo-freio a vácuo do Volvo e instalar o iBooster, percebeu-se que, inesperadamente, o padrão dos furos de fixação e o furo central de alinhamento batiam exatamente
- A haste de acionamento embutida no iBooster também tinha comprimento quase ideal para ligação ao pedal
- Foi adicionada uma arruela de 2 mm ao prisioneiro roscado para que a haste ficasse totalmente estendida quando o pedal não estivesse pressionado
- O cilindro mestre do iBooster tem as portas em posições diferentes, então as linhas de freio originais não serviram
- Foram feitas novas linhas de freio de cobre até a peça que parece um pequeno bloco distribuidor
- Depois de sangrar o sistema e ligar a alimentação, os freios passaram a funcionar normalmente
- A embreagem também era acionada hidraulicamente usando o mesmo reservatório de fluido de freio, então foi adicionado um pequeno reservatório separado
- O reservatório do cilindro mestre do iBooster não tem porta para a embreagem
Aceleração: servo RC e cabo auxiliar
- O pedal do acelerador do Volvo usa uma ligação totalmente mecânica por cabo Bowden até a válvula de ar do carburador
- Como carros modernos usam injeção direta e unidades avançadas de controle do motor em vez de carburadores, não foi fácil encontrar um atuador de aceleração automotivo moderno adequado
- Considerando que o atuador de aceleração tem implicações de segurança menores do que direção ou frenagem, a escolha foi montar algo com peças hobby prontas
- O sistema foi projetado para permitir que o motorista sobrescrevesse a posição de aceleração aplicada apertando mais o pedal, como numa lógica de cruise control tradicional
- Dois cabos foram ligados à polia da válvula de ar
- O cabo que puxar mais longe vence
- Foi comprado no AliExpress um servo RC à prova d’água, e uma segunda polia foi usinada e instalada no servo
- Também foi feito um suporte para o servo e adicionada uma bucha guia de bronze para limitar folgas no cabo
Radar e próximos passos
- Embora não seja um atuador, também foi instalado atrás da grade dianteira um sensor de radar Continental da Tesla
- O ACC apenas por visão do openpilot já funciona até certo ponto, mas usar um radar real oferece uma experiência mais suave e consistente
- O próximo texto tratará da fiação e de uma ECU personalizada
- Responsável por manter os atuadores funcionando corretamente
- Implementar os botões de cruise control
- Ler velocidade e setas
- Depois disso, a ideia é explicar o código da ECU e o port do openpilot e publicar tudo como open source
1 comentários
Comentários do Hacker News
O Volvo 940 é um carro realmente incrível e se destaca, mesmo entre os carros já feitos, como um carro de excelente qualidade e projeto
Era um projeto muito maduro, que evoluiu lentamente a partir do Volvo 140 dos anos 1960, passando pelo 240 dos anos 70 e o 740 dos anos 80, então quando chegou ao 940 quase todos os problemas já tinham sido refinados
Ainda assim, teria sido bom poder escolher AWD junto com um diesel econômico. Havia versão diesel, mas ela não foi vendida nos EUA
O autor parece entender bastante de hacking elétrico, mas se soubesse mais da parte automotiva haveria coisas que poderiam ter sido resolvidas com mais facilidade. Por exemplo, trocando por uma bomba ABS BOSCH mais nova, seria possível acionar os freios eletricamente sem passar pelo servo-freio, e esse tipo de sistema já era usado em carros europeus do fim dos anos 90 com controle de tração
A direção poderia talvez ter sido resolvida transplantando uma cremalheira de direção elétrica completa, instalando a cremalheira totalmente manual do Volvo 240, ou colocando uma embreagem de compressor de ar-condicionado na bomba de direção hidráulica para desligá-la acima de velocidade de estacionamento
Além disso, esse carro não usa carburador, e sim injeção eletrônica de combustível. Dá para ver os injetores e o trilho de combustível sobre o corpo de borboleta. Mais importante: esse carro tinha um sistema eletrônico de controle da borboleta de fábrica para o controle de cruzeiro, e como as peças faltantes são baratas e comuns, há grande chance de que entrassem direto no suporte e no came já existentes no motor
Realmente não há carburador, e eu escrevi errado enquanto cochilava no avião; queria dizer que era uma borboleta/válvula de ar mecânica acionada por cabo
Este carro também não tem ABS. Talvez tenha virado opcional a partir desse ano-modelo, mas por isso trocar a bomba não era uma opção. O iBooster é uma adaptação excelente e fácil, recomendo
Ainda não fiz isso, mas na direção hidráulica pretendo ajustar o regulador com calços para reduzir a pressão, e isso provavelmente já deve bastar. Mesmo agora já existe alguma capacidade de esterçamento sem essa modificação
Esses Volvo grandes mais recentes, como o V90, viraram carros de luxo chineses idiotas, então não penso em comprar um
A explicação de que “os carros modernos não têm carburador e usam injeção direta e sistemas sofisticados de controle do motor” não está correta
Na prática, o sistema de injeção de combustível é bastante independente do controle da borboleta. A quantidade de combustível necessária é calculada com base no sensor de pressão do coletor de admissão, então também existiram carros que combinavam injeção de combustível com borboleta acionada por cabo
O problema provavelmente era que o carburador precisa ficar a montante da borboleta, então a dificuldade estaria mais em adaptar a tubulação de um corpo de borboleta moderno
Todos os sistemas LH da época usavam sensor MAF
Participo do desenvolvimento do openpilot há 5 anos e sempre me interesso por casos de uso desses projetos
Nestas férias, rodei 2.500 milhas com o openpilot ligado no meu carro e foi excelente. Acho que dirigi manualmente só uns 10% da viagem inteira, deixando o resto por conta da automação
Mesmo assim, ainda há muita coisa a melhorar, então neste ano pretendo focar em criar um fork do openpilot para tornar as funções de ADAS mais parecidas com as de carros Hyundai modernos, ou seja, mais próximas da Tesla
Pretendo postar a primeira versão no Show HN
Uma coisa que eu gostaria de testar, se criar coragem para compilar e gravar a imagem por conta própria, é uma função que desacelere ao reconhecer uma troca de faixa com seta ligada. Pelo que sei, hoje o carro só desacelera depois que o outro já invadiu a faixa. Sei que há muitos casos-limite, mas isso parece uma mudança bem segura e educada
Também seria bom reconhecer as luzes de freio de vários carros e tirar o pé do acelerador. Atualmente parece usar o radar do carro logo à frente, mas se 75% dos carros ao redor estão com as luzes de freio acesas e só o da frente está reagindo devagar ou dirigindo de forma agressiva, não há motivo para o Comma forçar ainda mais esse efeito em cadeia
Outra função que seria muito útil é reconhecer placas de limite de velocidade e ajustar a velocidade do controle de cruzeiro. Principalmente para reduzir situações em que ele entra numa saída a 65 mph e depois reclama que a curvatura é grande demais para a velocidade
Se reconhecesse placas de “velocidade recomendada” em saídas, o resultado seria o que todo mundo quer, e quando a alça de saída leva para outra rodovia o motorista nem precisaria intervir. Também seria bom reconhecer placas de parada, sinal amarelo ou vermelho. Não precisa necessariamente detectar o contexto do trânsito, mas não é agradável ver o sistema avançando em velocidade máxima em direção a uma placa de parada ou sinal vermelho enquanto dispara alertas
Também preciso ver se o Comma consegue saber que meu carro é elétrico e simplesmente soltar o acelerador em vez de frear. O meu tem vários níveis de frenagem regenerativa, então talvez desse até para considerar isso, mas pessoalmente me acostumei com o BMW i3 e sempre deixo na regeneração mais forte
Fico me perguntando se é possível dirigir esse carro em vias públicas na Suécia
Eu imaginava que a legislação sueca seria bem rígida com esse tipo de modificação DIY, então seria surpreendente se fosse permitido
Esse tipo de modificação é claramente ilegal em vias públicas na Suécia e na Finlândia, e muitas vezes passar na inspeção periódica não é suficiente. É preciso obter homologação de tipo para que a circulação seja legal
Parece estar registrado na Holanda, mas, se for o caso, acho que esse carro nem passaria na inspeção periódica lá. Há uma página informativa do governo holandês em inglês: https://www.government.nl/topics/general-periodic-inspection...
Ainda assim, o projeto em si é muito legal
A frase “felizmente, [o servo do pedal do acelerador] é o único atuador que não traz grandes problemas de segurança” dá arrepios
O que acontece se esse servo RC travar em aceleração total? A suposição é que dá para pisar na embreagem, mas, dependendo da situação, talvez não haja muito tempo para perceber o que aconteceu e reagir
Parece que a parte 2 vai tratar da troca de marchas
Não é dito diretamente, mas há uma pista de que a embreagem também é acionada hidraulicamente, então parece plausível que seja câmbio manual. Para um Volvo 1993 comprado na Europa, é uma suposição bem razoável
Não parece que eles vão adaptar e instalar uma nova transmissão; talvez a ideia seja colocar uma embreagem automática meio bruta
É bem possível que a maior parte dos 6000 km rodados tenha sido assim. Em trânsito lento, onde seria preciso trocar de marcha, teriam de abrir mão da “direção autônoma”, mas ainda assim isso é muito útil
O autor disse que, na parte 2, vai tratar de uma ECU personalizada que ele mesmo projetou para manter a fiação e os atuadores estáveis, da implementação dos botões de controle de cruzeiro, da leitura de velocidade e setas, e depois, na parte 3, vai explicar o código da ECU e o port do openpilot, publicando tudo como open source
Eu não faria isso pessoalmente, mas é bom saber que existem pessoas corajosas o bastante para conseguir. Vai render uma ótima história
Guardei este post para entender melhor carros e buscar inspiração DIY para mim e para outras pessoas
Dá para adicionar radar ao comma 3X? Eu achava que era só visão, então isso é interessante