- Um motor de runtime amigável para desenvolver robôs rápidos e estáveis
- Um "game engine" para robôs, assim como existe um "game engine" para jogos
- Fácil: oferece um sistema de configuração de alto nível e uma API Rust natural
- Rápido: usa abstrações de custo zero do Rust e uma abordagem orientada a dados para alcançar latência abaixo de microssegundos em hardware comercial e evitar alocação em heap durante a execução
- Confiável: aproveita o modelo de ownership, o sistema de tipos e o modelo de concorrência do Rust para minimizar bugs e garantir segurança entre threads
- Orientado a produto: busca gerar um runtime altamente previsível para evitar problemas de integração de infraestrutura em estágios mais avançados
- Testado em Linux (x86_64, armv7, aarch64 & riskv64) e MacOS (arm64)
Visão técnica geral
- Copper é um SDK de robótica orientado a dados que fornece os seguintes componentes:
- Task Graph: especifica tarefas que se comunicam compondo a topologia do sistema conforme descrito em RON (Rusty Object Notation), além de definir os tipos de nós e mensagens
- Runtime Generator: determina o plano de execução com base nos metadados do grafo. Pré-aloca a "Copper List" para maximizar o acesso sequencial à memória durante a execução
- Zero-Copy Data Logging: registra todas as mensagens entre tarefas sem cópia de dados, garantindo logging eficiente
- Fast Structured Logging: Intern e Index registram strings em tempo de compilação para evitar a construção de strings em runtime e garantir logging de texto em alta velocidade
- Caso não haja um robô real, é possível usar um ambiente de simulação desenvolvido com Bevy (engine de jogos em Rust) + Avian3d (engine de física em Rust)
Ainda não há comentários.