Choreonoidではまったメモ
タイトルの通り、Choreonoidでハマったメモを残していくだけの記事です。
万が一、誰かのお役に立てば…。
リンクのグローバル座標が更新されない
現象
enableInput()で位置情報の入力を有効化しているつもりなのに、初期位置のまま更新されない。
原因と解決策
シンプルコントローラ上で情報を取得したい場合、基本的に「enableInput()」で取得したい情報を有効化する必要がある。(参考リンク: Choreonoid-コントローラの実装)
グローバル位置情報を取得したい場合は、enableInput()の引数に「LINK_POSITION」を指定するが、この引数でハマった。
[誤] Link::LINK_POSITION (@Link.h)
[正] LINK_POSITION (@SimpleController.h)
setActuationMode()の方の引数は Link.hで定義されているものを使うので、その流れでenableInput()の引数にもLink.hのほうの定義を使ってしまい、ハマってしまってしまってましたとさ。トホホ…。