ロボット本体の姿勢を知る方法


#1


では,一般論として質問しましたが,WRSのために実際にやりたいのは移動ロボット本体の姿勢を知ることです.不整地で走行するロボットを搭載カメラだけで操縦していると,それが不可欠だということがよくわかりました.

最近は,加速度センサ,ジャイロセンサ,磁気センサを内蔵し,内部で3次元の姿勢を推定するセンサが手軽に使えるようになっています.そのようなセンサを想定して,Choreonoidでもロボットの姿勢を得るデバイスを設けられないでしょうか?WRSの競技としてはそれは不可かもしれませんね.一方,Chorenoidの機能としては可能でしょうか?デバイスにする必要はなく,特定のリンクの姿勢を得るだけのことでしょうか?


#2

Choreonoidの機能としては可能です。デバイスにする必要はありません。
こちらに解説があります。
http://choreonoid.org/ja/manuals/latest/simulation/howto-implement-controller.html#simulation-implement-controller-link-position

BodyIoRTCでも同様にしてポートに出力できます。

またコメントされているように、これはロボット実機では本来取得できない値なので、WRSの競技では使用禁止となっております。

実機の場合は加速度センサやジャイロを用いて現在の姿勢を推定することになるかと思いますが、それはもちろん競技の方でも行っていただいて結構です。


#3

回答ありがとうございます.よくわかりました.

マルチコプタの場合は,特別にワールド座標系の位置を使えるようにすると言われていたので,最近一般的な姿勢推定機能付きのセンサを想定して,ロボット「姿勢」だけは取得できるようにならないかなと淡い期待を抱いて質問した次第です.


#4

マルチコプタの場合は,特別にワールド座標系の位置を使えるようにすると言われていたので,

これに関しては、私個人的にはそれでもよいのではないかと思っているのですが、申し訳ありません、まだ競技委員からの許可が降りたわけではありません。

最近一般的な姿勢推定機能付きのセンサを想定して

実際にそのようなセンサが実機で利用可能なのでしたら、使えるようになる可能性はあります。実際の機種を提示いただくと説得力がでるかと思います。ただし完全に正確な値というのはありえないと思うので、シミュレーションにおけるセンサ出力が実機と同様の正確さ(不正確さ)となるよう、何らかの処理が必要かと思います。ただしそこまでやるとなると、それでよいのかという判定も難しくなってくるでしょうから、ルール上はなかなか難しい問題ですよね…。

いずれにしてもこのあたりは競技委員の見解によるかと思います。 このあたりはWRSカテゴリで議論できればと思います。