IWATAKU
1
連日、質問失礼します。
Choreonoid-2.0.0で、share/model/Tank/Tank.bodyとshare/model/misc/floor.bodyを使用して、RateGyroSensorから値を取得しようとしました。
AISTSimulatorを使用した場合は、下の画像の「メッセージ」ビューを見ていただければわかるとおり、取得できております。(動いているときではないので微小ですが…)
次に、AGXSimulatorを使用した場合は、下の画像の通り、すべてが0の値を取り、正しく取得できていないことがわかります。
プロジェクトファイルは以下になります。
ご回答いただけると幸いです。よろしくお願いいたします。
tank_imu_test.cnoid (10.2 KB)
こんにちは。現在私の手元にAGXシミュレータのライセンスが無いため、こちらで挙動を確認することができませんが、まずは下記一点ご確認させていただきたく思います。
とのことですが、ロボットを動かしても値に変化がないままでしょうか?ご確認いただければと思います。
補足します。
RateGyroSensorの値は以下のファイル内で、ロボットの各剛体リンクの速度から計算される実装になっています。そのため、シミュレータによって値が出たり出なかったりする、ということは無いと認識しております。
そのため、AGXのシミュレータが非常によく動いていて、RateGyroSensorが本当に速度値ゼロを出力している可能性も排除できないと考えた次第です。
IWATAKU
4
ご返信ありがとうございます。
こちらの画像は動かしているときに撮った画像なのですが、-0の値を一部取っています。
すなわち、符号の変化のみとなっています。
本件ご返事が遅れて申し訳ありませんでした.
相変わらず私の手元にはAGXのライセンスがなく,十分な検証ができていませんが,この問題は以下のコミットが原因と考えられます.
この変更によれば,確かにご指摘の通り,AGX仕様時に現状ではジャイロ,加速度センサの値がゼロになる可能性が高いです.
Choreonoid本体に対して以下のような修正が必要と考えております.
返信が遅くなってしまい申し訳ありません。
たしかに、こちらのコミットを適用したところ、正しく角速度を得ることができました。
w -6.03733e-06, 1.07453e-05, -2.54744
ありがとうございました!
すみません、こちらの件ちゃんと見れていませんでした。
Yuki_Onishiさんご回答ありがとうございました。
どうも元々はセンサの出力もちゃんとしていたのを、私が誤ってバグを入れてしまったようですが、そのような認識でよろしかったでしょうか?このコミットはもうmasterに入っているのですよね。ご対応ありがとうございました。
中岡さん,こちらまだmasterには入っておりません.
手元にAGXライセンスがないため動作検証ができませんでした.
動作問題ないようですので,PRを立てました.
ご確認の上,masterに取り込んでいただけると助かります.
こちら対応が遅くなりましてすみません。
内容も確認しました。完璧な修正ですね。
恐縮ですが、リベースをかけてからマージさせていただきました。
ご協力ありがとうございました。