PyBulletは、ロボット研究で広く使われるオープンソースの物理シミュレーターです。MuJoCoやGenesisと並ぶ選択肢として、M1 Macでロボットアームのシミュレーションが動かせるか試してみました。

物理シミュレーションとは

物理シミュレーターは、ロボットの関節・重力・摩擦・衝突をコンピューター上で再現するソフトウェアです。毎ステップ各関節への力を指定すると、物理法則に従って次の姿勢が計算されます。これを1秒間に数百〜数千回繰り返し、リアルタイムより速く動きを模擬できます。強化学習(AIが試行錯誤で動作を学習する手法)では、この高速シミュレーションを繰り返し制御アルゴリズムを訓練します。

検証環境

  • 機種: MacBook Air(Apple M1 / 16 GB)
  • Python: 3.11(uv経由の仮想環境)
  • 試行パッケージ: pybullet 3.2.7(PyPI提供のソースコード)

結果: ビルドエラーで断念

pipでインストールを試みたところ、Apple Silicon向けの事前ビルド済みパッケージは配布されておらず、ソースからのビルドが必要でした。ビルド中、PyBulletが内部で使う古いzlibのコードと最新のmacOS SDKのヘッダーが衝突し、「fdopen」関数の定義の食い違いでコンパイルエラーが発生し、失敗しました。

現行のmacOS SDK環境では、PyBulletをM1 Mac上で手軽に動かすのは難しいとわかりました。一方、これまで検証してきたMuJoCoやGenesisはApple Siliconに最適化されており、pipやuvだけでスムーズに動作します。M1 MacでのフィジカルAI開発は、この2つを軸にするのが現実的です。