Meta(Oculus)Quest のコントローラーの動きでロボットの手の動きを制御:システム構成

PCでROS2を動かしてそこを中核に制御しています。

unity appでmeta(oculus) quest のコントローラの位置とクォータニオンを取得しています。取得したデータをEndpointを通じてROS2側にデータを送っています。

ROS2のメインで受け取ったデータから7リンク問題を解いています。ただし、位置は手首に合わせています。手首を合わせた後、その時のクォータニオンと、コントローラーのクォータニオンの差分を残りの3軸で合わせています。

7リンク問題を解いた際の各関節の角度情報をシリアル通信を通じて、Arduinoの送信しています。

Arduinoがロボットのサーボ制御を担っていますが、通信で受け取った角度に合わせるだけです。

手首までの関節は上の図のようになります。手首までの4リンク位置決め、手首から先のクウォータニオン決めは数式で1発で出すようになっていないので、これとは違う関節構造の場合でも、ソースは多少参考になるかと思います。