はじめに
この記事はIsaac Simの入門として,4輪のシンプルなロボットに差動駆動コントローラを追加し,駆動することを目標としている.前回からの続きである.
こちらが参考にした資料である.
Isaac Simは使用者が少なく記事も少ないが,その分公式ドキュメントが非常に充実している.この記事は公式の上記サイトの日本語版という位置づけでまとめようと思う.上記サイトは英語ではあるが入門から発展まで学べるコース形式となっており,自分で学ぶ分には無料なので,非常におすすめである.
環境
| 項目 | 仕様 |
|---|---|
| メモリ | 32.0 GiB |
| CPU | Intel i7-14700F @ 5.300GHz |
| GPU | NVIDIA GeForce RTX 5080 |
| OS | Ubuntu 22.04.5 LTS 64ビット |
| Isaac Sim | 5.1.0 |
前回からの準備
もし前回の続きとして見てくださっている方は,前回設定した部分のうち車輪を駆動する部分は無効にしておく必要がある.
前回設定した2つの後輪Jointの角速度(Target Velocity)は0に設定しておく.

コントローラのセットアップ
コントローラのセットアップ
コントローラを作成するまえに,関節(Artuculation)を作成することが重要である.
SimpleRobot xformを右クリックして,Add > Physics > Articulation Rootを選択する.
メニューバーのTools > Robotics > OmniGraph Controllers > Differential Controllerを選択する.

出てきた設定画面に以下を入力.車輪半径や車輪間距離はモデルに合わせる.今回はJointが4つあるため,後輪のジョイントを指定する.

OmniGraphの理解
Stageに「Graphs」フォルダが追加されており,ここに先程追加したdifferential_controllerがある.

differential_controllerを右クリックして「Open Graph」からOmniGraphを開く.

- On Playback Tick: 後続のノードに毎フレーム信号を送って計算といった処理を実行させる.
- Differential Controller: 入力によってロボットの速度コマンドを計算する. 左のピンは他のノードが計算した値をわたすことができ,右のピンは計算結果を後続のノードにわたす.
- Articulation Controller: Differential Controllerから計算された値を元にロボットのジョイントに前後運動を伝える.
- MakeArray: このノードでは、ジョイント名に必要なだけ値を追加できる.
コントローラのテスト
Playボタンを押してOmnigraphの中のDifferential Controllerを選択してPropertyに表示されるDifferential Controller NodeのDesired Linear Velocityに値を入力して動くことを確認する.

次回

