これから買う小型ロボットアーム SO-101(6 つの関節をモーターで曲げて動く)を、先にコンピューターの中で動かします。ロボットとのやりとりは「いまの角度を読む(get_observation)」と「目標の角度を送る(send_action)」の 2 つだけ。実機用ソフト LeRobot と同じ形なので、ここで書いた制御は実機にもそのまま使えます。アームが赤いキューブを青いトレイへ運ぶ間、送った指令と読んだ角度がどれだけずれるか(追従誤差)を下のグラフで確かめられます。ドラッグで視点を回せます。
| 関節 | 最大 [度] | 平均 [度] |
|---|
グリッパーは、キューブをつかんでいる間、指が閉じきれないので指令と読み値が離れます(正常です)。そのため表には含めていません。
実線が send_action で送った指令、点線が get_observation で読んだ角度(0.088° 刻みに丸めています)。重なっていれば、モーターが指令どおりに動けています。グリッパーの縦軸は 0=閉、100=開。
元は sim_so101.py と pick_place.py(Python)です。モーターの模擬・安全制限・指令の送り方・作業の手順は同じです。違いは次のとおりです。