O CARLA é um simulador de pesquisa de direção autônoma de código aberto desenvolvido no Unreal Engine. Ele fornece uma plataforma flexível para que os pesquisadores desenvolvam, treinem e validem sistemas de direção autônoma. O CARLA suporta simulações de vários sensores, como câmera, LIDAR e radar, e fornece ativos digitais avançados, como mapas da cidade, veículos e pedestres. Os usuários podem controlar o ambiente de simulação e ajustar as condições, como clima, tráfego e cenários, por meio da API Python ou C++. O CARLA foi projetado para dar suporte a testes de cenários complexos de tráfego e pesquisa de interação de corpos com inteligência múltipla para uma ampla gama de aplicações na academia e no setor. Sua natureza de código aberto permite que os usuários usem e contribuam com o código gratuitamente, tornando-o adequado para o desenvolvimento e teste de algoritmos de direção autônoma.
Lista de funções
- Simulação de sensorSuporte a uma ampla variedade de sensores, como câmeras RGB, LIDAR, radar, sensores de profundidade e GPS, para gerar dados sensoriais fotorrealistas.
- Geração de cenas de tráfegoMapas de cidades, subúrbios e autoestradas: fornece uma ampla variedade de mapas de cidades, subúrbios e autoestradas e oferece suporte à simulação dinâmica do fluxo de tráfego e do comportamento dos pedestres.
- API flexívelControle o ambiente de simulação, incluindo veículos, pedestres, clima e regras de trânsito, por meio de APIs Python e C++.
- Editor de mapasSuporte à criação de mapas personalizados com base no padrão ASAM OpenDRIVE, que pode ser gerado por ferramentas como o RoadRunner.
- Gravação e reprodução de cenasPermite registrar o processo de simulação e reproduzi-lo com precisão, facilitando a comparação de resultados de diferentes configurações.
- Arquitetura multi-clienteSuporte a vários clientes para controlar diferentes inteligências ao mesmo tempo, adequado para pesquisas com várias inteligências.
- Integração do ROSConexão perfeita com o sistema operacional do robô por meio da ponte ROS, com suporte a estruturas como o AutoWare.
- gerenciamento de tráfegoO Traffic Manager integrado controla o comportamento dos NPCs (personagens não jogadores) para simular desafios reais de tráfego.
- simulação físicaIntegração da biblioteca Chrono para dar suporte a simulações altamente precisas da dinâmica de veículos e da dinâmica de vários corpos.
Usando a Ajuda
Processo de instalação
Para usar o CARLA localmente, os usuários precisam instalar e configurar o ambiente. Abaixo estão as etapas de instalação para sistemas Ubuntu; os usuários do Windows podem consultar a documentação oficial.
- Verificação dos requisitos do sistema
O CARLA é compatível com o Unreal Engine versão 4.26 ou 5.5. A configuração de hardware recomendada é Intel i7/i9 (9ª-11ª geração) ou AMD Ryzen 7/9, com uma placa de vídeo compatível com DirectX 11 ou superior, pelo menos 16 GB de RAM e 50 GB de espaço em disco. - Baixar CARLA
Os usuários podem optar por baixar pacotes pré-compilados do GitHub ou compilados na fonte:- pacote pré-compiladoVisite o site oficial do CARLA (http://carla.org) ou a página de lançamento do GitHub (https://github.com/carla-simulator/carla/releases) para fazer download da versão mais recente (por exemplo, 0.9.15). Descompacte-a e use-a.
- Compilação de código-fonteClonar um repositório do GitHub:
git clone -b ue5-dev https://github.com/carla-simulator/carla.git CarlaUE5
Uma conta do GitHub precisa ser associada à Epic Games para acessar os repositórios do Unreal Engine 5.5.
- Instalação de dependências
Vá para o diretório raiz do CARLA e execute o script de instalação:cd CarlaUE5 sudo -E env GIT_LOCAL_CREDENTIALS=github_username@github_token ./CarlaSetup.sh
O script faz o download automático do Unreal Engine 5.5 e das dependências, e pode exigir que as credenciais do GitHub sejam inseridas. Os usuários do Windows precisarão executar um comando semelhante usando o prompt de comando x64 Native Tools no Visual Studio 2022.
- Compilado por CARLA
Execute no diretório raiz do CARLA:cmake -G Ninja -S . -B Build --toolchain=$PWD/CMake/Toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_ROS2=ON
Após a compilação, execute
./CarlaUE4.sh
Inicie o simulador. - Instalação da biblioteca do cliente Python
O CARLA fornece uma API Python e requer a instalação de bibliotecas de clientes:pip3 install carla
Recomenda-se instalá-lo em um ambiente virtual para evitar conflitos de versão. Há suporte para Python 2.7, 3.6, 3.7 e 3.8.
Uso das funções principais
- Iniciar o simulador
estar em movimento./CarlaUE4.sh -quality-level=epic
(alta qualidade) ou-quality-level=low
(Hardware de baixo custo). O simulador é iniciado mostrando a visualização da cidade e aguardando a conexão do cliente. - Execute o script de amostra
O CARLA fornece vários scripts de exemplo em Python localizados no diretórioPythonAPI/examples
Catálogo. Exemplo:- Geração de tráfego: Executar
python3 generate_traffic.py
gerando veículos e pedestres dinâmicos no simulador. - controle manual: Executar
python3 manual_control.py
O veículo é controlado pelo teclado e pelo mouse, com as teclas WASD para mover e o mouse para ajustar a visualização. - Aquisição de dados do sensor: Executar
python3 03_RGB_camera.py
Se quiser salvar os dados de imagem da câmera RGB, poderá usar a câmera RGB para adquirir os dados de imagem e salvá-los.
- Geração de tráfego: Executar
- Gerente de tráfego operacional
O Traffic Manager controla o comportamento do NPC. Exemplo:tm = client.get_trafficmanager() tm.set_desired_speed(vehicle, 30.0) # 设置车辆速度为 30 km/h tm.set_percentage_random_left_lanechange(vehicle, 20.0) # 20% 概率随机左换道
A velocidade do NPC, o comportamento de mudança de faixa etc. podem ser definidos por meio da API.
- Mapas personalizados
Os usuários podem criar mapas por meio do RoadRunner ou do OpenDRIVE. Importar mapas para o CARLA:python3 import_map.py --path /path/to/your_map.xodr
Em seguida, carregue o novo mapa no emulador.
- Gravação e reprodução
Iniciar a gravação:client.start_recorder("recording01.log")
Gravação de reprodução:
client.replay_file("recording01.log", start_time=0.0, duration=60.0)
- Integração do ROS
Instale a ponte ROS (https://github.com/carla-simulator/ros-bridge):git clone https://github.com/carla-simulator/ros-bridge.git
Depois de iniciar um nó do ROS, o CARLA pode interagir com estruturas como o AutoWare.
Operação da função em destaque
- Configuração do sensorAdicione sensores ao veículo por meio da API Python. Por exemplo, adicione uma câmera RGB:
blueprint_library = world.get_blueprint_library() camera_bp = blueprint_library.find('sensor.camera.rgb') camera = world.spawn_actor(camera_bp, carla.Transform(carla.Location(x=1.5, z=1.4))) camera.listen(lambda image: image.save_to_disk('output/%06d.png' % image.frame))
- Simulação de corpo com inteligência múltiplaScripts Python: Vários scripts Python podem controlar diferentes veículos ao mesmo tempo por meio de uma arquitetura multicliente. Cada cliente se conecta a uma porta de emulador (padrão 2000-2002).
- Simulação de física do ChronoAtivação da biblioteca Chrono: A ativação da biblioteca Chrono torna a dinâmica do veículo mais realista e adequada para o estudo do controle do veículo e da resposta dinâmica. Consulte a documentação oficial (https://carla.readthedocs.io/en/latest/adv_chrono/) para obter o método de configuração.
cenário do aplicativo
- Desenvolvimento de algoritmo de direção autônoma
Os pesquisadores usam o CARLA para testar algoritmos de percepção, planejamento e controle. Por exemplo, modelos de aprendizagem profunda foram treinados para detecção de alvos e planejamento de caminhos simulando dados de LiDAR e câmera. - Teste de cenário de tráfego
Os desenvolvedores podem criar cenários de tráfego complexos no CARLA, como testes de colisão em cruzamentos ou condução em condições climáticas adversas, para validar a robustez do sistema de condução autônoma. - Educação e treinamento
Universidades e organizações de treinamento usam o CARLA para ensinar os princípios da direção autônoma. Os alunos implementam algoritmos de controle simples por meio de APIs Python e aprendem sobre processamento de dados de sensores e controle de veículos. - Pesquisa de inteligência múltipla
A arquitetura multi-cliente do CARLA é adequada para estudar a direção cooperativa de vários veículos, simulando a comunicação da frota ou cenários de direção competitiva.
QA
- Quais sistemas operacionais são compatíveis com o CARLA?
O CARLA é oficialmente compatível com o Ubuntu 18.04 e 20.04 e com o Windows 7 e superior. O macOS não é oficialmente compatível, mas a comunidade tem algumas soluções não oficiais. - Como resolver as dependências durante a compilação?
Certifique-se de que todas as dependências (por exemplo, CMake, Ninja) estejam instaladas. ExecutarCarlaSetup.sh
O script instalará automaticamente as dependências ausentes. Se houver falha, consulte a FAQ oficial (https://carla.readthedocs.io/en/latest/faq/). - Posso executar o CARLA off-line?
Sim, o CARLA suporta a execução off-line. Depois de fazer o download do pacote pré-compilado ou compilar o código-fonte, você pode executar o emulador e os scripts sem uma conexão com a Internet. - Como faço para obter mais mapas?
Faça o download de pacotes de mapas adicionais (por exemplo, Town06, Town07) ou crie mapas personalizados usando o RoadRunner para importar arquivos OpenDRIVE para o CARLA.