クイックスタート
この手順では、最小の MuJoCo model を fibril_sim で検証して実行します。
ROS 2 node や custom extension は使わず、Model、Manifest、Plan、Instance の関係だけを確認します。
ビルド
ROS 2 workspace のルートで Fibril Simulation を build し、install space を source します。
CLI が利用できることを確認します。
最小の MuJoCo model
model.xml は自由落下する球と床だけを定義します。
physics timestep は MJCF の <option timestep="..."> に明示します。
最小の SimulationManifest
manifest.yaml は model の場所、physics timestep、execution mode、episode seed を指定します。
相対パスの model.path は Manifest ファイルがあるディレクトリを基準に解決されます。
ROS 2 package に置いた model は package:// URI でも参照できます。
Manifest を検証する
最初に validate を実行します。
このコマンドは Manifest の YAML 形式だけを見るのではなく、MuJoCo model の parse と compile、object binding、Component と schedule の整合性まで確認して SimulationPlan を構築します。
正常であれば、Plan の schema version とともに valid が表示されます。
CI から扱う場合は --json を指定できます。
解決された Plan を確認する
inspect は Manifest から解決された Component、schedule、binding、provenance などを表示します。
設定値が意図した実行条件になっているかを確認するときは、source YAML だけでなくこの出力を使います。
machine-readable な Plan が必要な場合は --json を付けます。
Simulation を実行する
run は Plan から一つの SimulationInstance を生成し、指定した physics step 数だけ進めます。
この例では MJCF の timestep を 2 ms にしているので、500 step で EpisodeTime は 1 s 進みます。
wall-clock と同じ速度で動かすことは、この deterministic_ci の例の目的ではありません。
Rangefinder を追加する
Component を追加すると、MuJoCo object と virtual hardware の対応が Manifest に現れます。
次の model には前方を向いた site と壁があります。
MJCF ではその site を参照する native rangefinder sensor を定義し、Manifest は sensor 名を fibril_sim/rangefinder に binding します。
この Manifest も同じ CLI で検証できます。
period_s は sensor acquisition の nominal period、latency_s は acquisition から controller-visible delivery までの transport latency です。
Component ごとの設定は Component reference で確認できます。
次に読むページ
自分の robot model を載せる場合は Simulation を作る に進んでください。 Fibril Component が MuJoCo object をどう参照するかは MuJoCo と Fibril で説明しています。