Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

DimOS

ROS 不要の Python ロボティクス実行環境。エージェント、SLAM、遠隔操作を内蔵

ライセンス

Apache-2.0

概要

DimOS は ROS を使わずにロボットアプリケーションを構築するための Python 実行環境です。サブシステムは型付きの In[] / Out[] ストリームを持つ Module として表現され、ブループリントが autoconnect() でそれらを配線します。autoconnect() は名前とメッセージ型でストリームを対応付け、合成・リマップ・トランスポート差し替えが可能です。その上に、多くのスタックが手作業で組み上げる機能群が載ります。A* 経路計画とフロンティア探索を伴う SLAM・コストマップナビゲーション、検出器と VLM による知覚、物体の位置を時間軸で追う時空間記憶、そして任意のストリームを購読できるネイティブモジュールとして動くエージェントです。dimos CLI はブループリントの実行、ログの追従、エージェントへの指示送信、MCP 経由のスキル呼び出しを担います。リプレイモードと MuJoCo シミュレーションモードがあるため、クイックスタートは机上に実機がなくても動きます。

本カタログのエージェント型ロボティクス項目は、そのほとんどが ROS 2 の上に立っています。RAI、AgenticROS、ROS-MCP などはいずれも ROS を土台として扱い、その上に言語レイヤーを重ねます。DimOS は逆に賭けました。ミドルウェアごと置き換えるのです。モジュール、型付きストリーム、ブループリント、そして独自トランスポート(LCM、WebRTC、ホスト型ブローカー)は、ROS のノード・トピック・launch ファイルに対する完全な代替であり、主に Python で書かれ、速度が要る箇所には Rust と C++ が使われています。この賭けが成立するかどうかこそ読者が見極めるべき問いであり、リポジトリはそれを判断するに足る材料を出しています。4,500 のスター、毎日のコミット、十数名の名前のある貢献者、そして何が安定なのかを率直に示すハードウェア対応表です。

その対応表は README で最も有用なページです。Unitree Go2 が唯一「安定」と記された対応機種で、ヒューマノイド G1、xArm、AgileX Piper はベータ、MAVLink と DJI はアルファ、B1 と力覚センシングは実験段階です。インストール手順も同様に段階分けされており、Ubuntu 22.04 / 24.04 がサポート対象、NixOS と一般的な Linux は CI 未検証、macOS はアルファです。自らの対応水準を正直に表示するプロジェクトは、すべてのプラットフォームを同列に並べるものより評価しやすく、リポジトリ全体にはプレリリースベータの掲示が出ています。

遠隔操作にあたる dimTELE は別途触れておく価値があります。ロボット側からホスト型ブローカーへ発呼するため受信ポートを開ける必要がなく、操作者はブラウザまたは Quest ヘッドセットから WebRTC で運転します。動作は良好でスタックの最も明快なデモですが、Dimensional 自社コンソールのアカウントと API キーが必要です。クライアントとトランスポートのコードは Apache-2.0 のリポジトリにありますが、その先のブローカーは含まれません。

重要な理由

収録に値する他のエージェント型ロボティクスフレームワークは、例外なく ROS 2 を前提としてその上に言語レイヤーを構築しています。DimOS はミドルウェア自体を置き換えるべきではないかと問う唯一の存在であり、推測ではなく評価の対象になる程度まで進んでいます。トピックの代わりに型付き Python ストリーム、実用に足るナビゲーションと記憶のスタック、一級市民としてのエージェントモジュール、そしてハードウェアなしで主張を検証できるリプレイデータが揃っています。採用するかどうかに関わらず、ROS 型の既定値が法則ではなく選択であることを示す、現時点で最も強い論拠です。

解決する課題

ロボットアプリケーションの構築は通常、振る舞いを一行も書かないうちから ROS 2 とその一式──ビルドシステム、メッセージ定義、launch ファイル──を導入することを意味します。DimOS は同じ層をごく普通の Python として提供します。モジュール間の型付きストリーム、それらを起動・点検する CLI、そしてその上にすでに構築されたナビゲーション、知覚、記憶、エージェント連携です。

主なポイント

  • あえて ROS を使わない Python ロボティクス実行環境。型付き In[]/Out[] ストリームを持つ Module を autoconnect() が合成可能なブループリントへ配線する
  • ナビゲーション(SLAM、コストマップ、A* 経路計画、フロンティア探索)、知覚、そして物体がいつどこにあったかを追う時空間記憶を同梱
  • エージェントは MCP ツールを備えたネイティブモジュールであり、dimos agent-send "explore the room" や dimos mcp call move_to が一級の CLI 動詞になっている
  • リプレイモードと MuJoCo シミュレーションモードにより、掲載のクイックスタートは実機を一切つながずに動作する
  • ハードウェア対応表は自らの対応水準を正直に格付けしている。Unitree Go2 は安定、G1 と xArm はベータ、MAVLink と DJI はアルファ、B1 は実験段階
  • dimTELE はブローカーへの発呼により WebRTC でブラウザおよび Quest からの遠隔操作を実現し、ロボット側ネットワークに受信ポートを開けない
  • Dimensional Inc. による Apache-2.0。常時十数名の貢献者がおり、コミットは日々マージされている

対象

  • 先に ROS 2 を学ぶことなくロボットの振る舞いを書きたい Python 開発者
  • Unitree の四足やヒューマノイドを扱い、ベンダー SDK の上に載せるスタックを探しているチーム
  • REST エンドポイントを叩くのではなく実センサーのストリームを購読する必要がある LLM / MCP エージェントの開発者
  • 受信ポートを開けずに NAT 越しの遠隔操作を必要とする運用者
  • ミドルウェア設計を比較し、議論の相手となる本格的な非 ROS の参照実装を求める研究者

制限事項

  • リポジトリ自身がプレリリースベータを名乗り、PyPI は依然 0.0.x のため、インターフェースは動くものと考えるべき
  • オープンな issue はおよそ 700 件。活発なプロジェクトである一方、本格採用前に目を通すべき滞留も大きい
  • ROS を使わないことは ROS エコシステムから切り離されることでもある。既存ドライバも Nav2 も MoveIt も rosbag もなく、プロジェクトが作っていないものは自分で作ることになる
  • 対応ハードウェアは狭く、大半が不安定。安定と記されているのは Unitree Go2 のみで、他はすべてベータ、アルファ、実験段階
  • dimTELE のブローカーはアカウントと API キーを要する Dimensional のホスト型サービスであり、Apache-2.0 リポジトリが提供するのはクライアント側のみ
  • 検証済みの経路は Ubuntu 22.04 / 24.04。macOS はアルファで、一般的な Linux は CI 未検証と明記されている
  • これはコミュニティプロジェクトであると同時に一企業の製品ロードマップでもあり、公開リポジトリとホスト型コンソールは一体で開発されている

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。