OpendBC é uma API Python para o seu carro.
Controle o gás, freio, direção e muito mais. Leia a velocidade, o ângulo de direção e muito mais.
A maioria dos carros desde 2016 possui direção, gás e freios acionáveis eletronicamente graças aos LKAs e ACC. O objetivo deste projeto é apoiar o controle da direção, gás e freios em cada um desses carros.
Embora o foco principal esteja no suporte às interfaces do ADAS para o OpenPilot, também estamos interessados em ler e escrever o máximo de coisas possível (o status de carga EV, portas de bloqueio/desbloqueio, etc.), de modo que possamos criar o melhor aplicativo de gerenciamento de veículos de todos os tempos.
Esta lista de carros de leitura e carros suportados são todos os documentos para o projeto OpenDBC. Tudo o que você precisa saber para usar, contribuir e estender opendBC está nesses documentos.
git clone https://github.com/commaai/opendbc.git
cd opendbc
# you probably just want to use this. it's an all-in-one for dependency
# installation, compiling, linting, and tests. it's also what runs in CI
./test.sh
# here are the individual commands it runs
pip3 install -e .[testing,docs] # install dependencies
scons -j8 # build with 8 cores
pytest . # run the tests
pre-commit run --all-files # run the linter examples/ contém pequenos programas de exemplo que podem ler o estado do carro e controlar a direção, o gás e os freios. examples/joystick.py permite controlar um carro com um joystick.
opendbc/dbc/ é um repositório de arquivos DBCopendbc/can/ é uma biblioteca para analisar e construir mensagens de lata de arquivos DBCopendbc/car/ é uma biblioteca de alto nível para interface com carros usando Python Este guia cobre tudo, desde a adição de suporte a um carro novo até melhorar os carros existentes (por exemplo, adicionando controle longitudinal ou análise de radar). Se carros semelhantes aos seus já são compatíveis, a maior parte desse trabalho provavelmente já é feita para você.
No seu mais básico, uma porta de carro controlará a direção em um carro. Uma porta de carro "completa" terá todo: controle lateral, controle longitudinal, bom ajuste para a análise lateral e longitudinal, radar (se equipado), impressão digital difusa e muito mais. Os novos documentos de suporte do carro comunicarão claramente o nível de apoio de cada carro.
O primeiro passo é conectar -se ao carro com um vírgula 3x e um chicote de carro. O arnês de carros o conecta a dois ônibus diferentes e divide um desses ônibus para enviar nossas próprias mensagens de atuação.
Se você tiver sorte, um arnês compatível com seu carro já será projetado e vendido em vírgula.ai/shop. Se você não tiver tanta sorte, comece com um "arreios do desenvolvedor" do vírgula.ai/shop e crimp em qualquer conector que você precisar.
Dependendo, a maior parte dessa estrutura básica já estará em vigor.
A diretoria de um porto de carro mora no opendbc/car/<brand>/ :
carstate.py : analisa as informações relevantes da lata transmitindo usando o arquivo DBC do carrocarcontroller.py : as saídas podem mensagens para controlar o carro<brand>can.py : ajudantes finos de python em torno do arquivo DBC para construir mensagens podemfingerprints.py : banco de dados de versões de firmware da ECU para identificar modelos de carrosinterface.py : classe de alto nível para interface com o carroradar_interface.py : analisa o radarvalues.py : enumera os carros suportados da marcaComece gravando uma rota com muitos eventos interessantes: Ativar LKAs e ACC, gire o volante ambos os extremos, etc. Em seguida, carregue essa rota em Cabana.
Use o relatório de manobras longitudinais para avaliar o controle longitudinal do seu carro e ajustá -lo.
Todo o desenvolvimento do OpenDBC é coordenado no Github e Discord. Confira o canal #dev-opendbc-cars e seção Vehicle Specific .
Curto prazo
pip install opendbcA longo prazo
As contribuições para qualquer coisa aqui são bem -vindas.
Cada porta de carro é elegível para uma recompensa:
Além das recompensas padrão, também oferecemos recompensas de maior valor para carros mais populares. Veja aqueles em vírgula.ai/bounties.
Como eu uso isso? Uma vírgula 3X é personalizada para ser a melhor maneira de executar e desenvolver OpendBC e OpenPilot.
Quais carros são suportados? Veja a lista de carros suportados.
Posso adicionar suporte ao meu carro? Sim, a maior parte do apoio de carros vem da comunidade. Leia o guia aqui.
Quais carros podem ser suportados? Qualquer carro com LKAs e ACC. Mais informações aqui.
Como é que isso funciona? Em suma, projetamos hardware para substituir os recursos de Keep de Keep e Cruise Adaptive do seu carro. Veja esta conversa por uma explicação aprofundada.
Existe uma linha do tempo ou roteiro para adicionar suporte de carro? Não, a maior parte do apoio do carro vem da comunidade, com vírgula fazendo validação final de segurança e qualidade. Quanto mais completa o porto de carros da comunidade e mais popular é o carro, maior a probabilidade de buscá -lo como o próximo a validar.
A vírgula está contratando engenheiros para trabalhar no OpendBC e OpenPilot. Adoramos contratar colaboradores.