[choreonoid-users-ja 00168] Re: Choreonoid 1.4におけるRIC30モデルの不具合?

Shin'ichiro Nakaoka s.nakaoka @ aist.go.jp
2016年 1月 6日 (水) 17:48:52 JST


升谷先生

申し訳ありません、私の方の確認が不十分だったのですが、

> しかし,補間に逆運動学を使っているとしても,「ポーズを指定した時刻にお
> いて」指定の関節角度にならなのは解せません.これは,バージョン1.5では起
> こりません.バージョン1.4のバグでしょうか?

とのことで、本件はバージョン1.4で現れるバグだったのですね。
そうでしたら、それもあり得るかと思います。
こちらでは1.5で確認してしまっていました。
IKのチェックについても、同様のことが言えるかもしれません。

申し訳ないのですが、今こちらで1.4については修正する余力がないため、対応
は難しいと思って下さい。

Windows版については、今開発版のコードをWindows上でコンパイル・実行できる
ようにする作業を進めています。

> ポーズ間の補間に関しては納得できますが,ポーズを指定した時刻での角度が
> 一致しないのは納得できません.

これについても1.5では起こらないとのことですが、カスタマイザのIKコードが
異なっているのかもしれません。(実はあまりそこを改良した覚えはないのです
が…。)

IKのチェックが入っているときは、

腰と足先の位置を作業空間で補間→IKで関節角を計算

という順番になりますので、「ポーズを指定した時刻での角度が一致しない」か
どうかはIK次第です。そして、特異点付近ではIKの解が(存在したとしても)得
られない場合が一般的です。そこは納得していただきたいところです。

解析解の場合でも、足が伸びきるような位置だと、ちょっとの数値誤差が原因で
解が出なかったりすることもあります。特にGR001のカスタマイザは、近似的な
解析解と収束計算を組み合わせたIKになっていますので、特異点付近での挙動は
収束計算に近いかもしれません。

いずれにしても、GR001とRIC30用のIKは
sample/GRobotPlugin/GRobotCustomizer.cpp に実装されていますので、そちら
もチェックしてみてください。

なお、GR001は元々の設計上は普通に解析解が存在するようです。ただ、こちら
でGR001のモデルを作成するときに、GR001の設計時のモデルが得られなかったた
め、こちらで現物を測りながらモデルを作りました。すると足首の2軸の位置等
にオフセットがあるようにみえたので、それをモデル化したのですが、そうする
とIKが複雑になってしまいました。あとでとある人から「GR001の関節にオフ
セットはないはずですよ」と教えてもらったのですが、そうは言われてもその設
計図はないですし、対応する時間もないため、モデルはそのままになっていま
す。正確なモデルを知っている方がいらっしゃいましたら、直していただけると
助かります。

RIC30はどうだったかな…。RIC30はアールティさんに正確なモデルをいただいて
いるので、オフセットなしのちゃんとしたモデルになっているように思います。
その場合、解析解も普通に出ますが、足を伸ばしきっているところの数値的な問
題への対応はちゃんとできてないのかもしれません。


On 12/20/15 19:58, MASUTANI Yasuhiro wrote:
> 中岡様,
> 
> 本件の応答が大変遅くなってしまい申し訳ありません.
> 
> At Fri, 4 Dec 2015 17:27:22 +0900,
> "Shin'ichiro Nakaoka" <s.nakaoka @ aist.go.jp> wrote:
>>>   ・ファイル内とは異なる関節角度になる
>>>   ・他の関節と連動して補間されている.
>>
>> これについては前回メールした理由でそうなっているかと思います。
> 
> ポーズ間の補間に関しては納得できますが,ポーズを指定した時刻での角度が
> 一致しないのは納得できません.
> 
>>> ■IKのチェックを入れないファイル
>>
>> これはIKのチェックを外した状態で保存したということですよね。
>> このファイルを再度読み込むと、
>>
>>>   ・ポーズロールのIKにチェックが入っている.←???
>>
>> ということでしょうか?(この部分が「解せぬ動作」ということですよね)
> 
> その通りです.
> 
>> ただ、こちらでGR001のサンプルを用いて試したところ、IKのチェックを外して
>> 保存し再度読み込むと、同じ所のチェックは外れた状態になっており、上記の症
>> 状を再現できませんでした。
> 
> こちらでも,GR001のモデルで試してみました.
> 
> まず,ポーズロールにおいてR_ANKLE_RのIKのチェックを外しても,ポーズ間で
> 複数の関節が連動して補間されています.これは,RIC30の場合と異なります.
> 
> 次に,R_ANKLE_RのIKのチェックを外してファイルを保存しました.pseqファイ
> ルの中身を見ると,「name: R_ANKLE_R」に「isSlave: true」が付いています.
> このファイルを再び読み込んでみました,R_ANKLE_RのIKは★入っています★
> RIC30の場合と同じです.中岡様の書かれているのとは,異なる現象です.
> 
> RIC30とGR001のそれぞれで試したcnoidファイルとpseqファイルを添付します.
> 


-- 
Shin'ichiro Nakaoka <s.nakaoka @ aist.go.jp>


choreonoid-users-ja メーリングリストの案内