copper-project/copper-rs

Copper is an operating system for robots - build, run, and replay your entire robot deterministically.

What it solves

Copper は、ロボットタスクグラフの高パフォーマンスかつ決定論的なランタイムを提供します。高レベルの Linux システムからベアメタルなマイクロコントローラまで、多様な物理ハードウェア上で動作する必要があるロボットソフトウェアの開発における課題を解決します。リアルタイム性能を維持しつつ、デバッグ用の実行結果を完全に再現可能にする能力を備えています。

How it works

Copper は、タスクグラフを RON (Rusty Object Notation) で宣言し、コンパイル時に配線を行う静的な設計を採用しています。このアプローチにより、"hot path" においてゼロアロケーション (zero-allocation) な実行パスを実現し、リアルタイム性能を確定させます。システムは、すべてのメッセージ、タイミング、および状態を .copper ログに統合して記録し、決定論的なリプレイとオフライン解析を可能にします。

Who it's for

クアッドコプター、セルフバランスロボット、ヒューマノイドなど、厳格なタイミング保証とクロスプラットフォーム互換性が必要な自律システムを構築するロボットエンジニアや開発者向けに設計されています。

Highlights

  • Cross-flagship support: Linux, macOS, SBCs, およびベアメタルなマイクロコントローラ上で動作します。
  • Dynamic replay: 実行を記録し、オフライン解析のために正確に再現可能です。
  • Real-time first: 高パフォーマンスパスのための、ゼロアロケーションかつデータ指向の実行方式です。
  • Interoperable: Zenoh を介して ROS 2 に接続し、段階的な移行を可能にします。
  • Rust-first: Rust のコンパイル時保証と人間工学的な API を活用しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト