Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[eusurdf] cascaded-linkと,それにassocするbodyset-linkの原点の位置がずれていると上手く変換されない #234

Open
ketaro-m opened this issue May 10, 2021 · 2 comments
Assignees

Comments

@ketaro-m
Copy link

cascaded-linkにassocされているbodyset-linkの原点がcascaded-linkの原点とずれていると,生成されたurdf上でそのbodyset-linkの原点がcascaded-linkの原点に移動させられ,その影響が伝播してその先のbody-linkらの原点も順にずれてしまいます.

エラーの出たソースコードはここにあり,wheelchair_error.l をconvert-eus-to-urdf.lで変換すると,以下の写真のように軸の位置がずれてしまいます.
Screenshot from 2021-05-10 19-11-24

wheelchair_fixed.lを変換すると,正しい軸の位置のまま変換されます.
Screenshot from 2021-05-10 19-15-47

wheelchair_error.l と wheelchair_fixed.l のdiffはこの部分で,wheelchair_error.lの方ではcascaded-linkにassocしているbodyset-linkの原点を移動させているのですが,変換後のurdfではこの原点が強制的にcascaded-linkの原点と同じ位置に戻されてしまっているため,その先の子リンクたちの原点も順次移動してしまっているのではないかと考えられます.
wheelchair_fixed.l の方ではbodyset-linkの原点はそのままcascaded-linkの原点と一致したままでbodyの位置のみを移動させているために,このようなエラーは出ていません.

上記のようにcascaded-linkとそこにassocするbodyset-linkの原点がずれている場合に加え,cascaded-linkに複数のbodyset-linkをassocした場合も何かしらのエラーが出るのではないかと考えられます.

@YoheiKakiuchi
Copy link
Member

urdfへ変換をするのに、以下のように行われています。
eus-model -(irtcollada.l)-> COLLADA形式 -(collada_to_urdf)-> URDF形式

それで今回は、irtcollada.lの段階でバグがあったようで、
このPRで修正したつもりです euslisp/jskeus#600

あと、この問題と直接は関係ないのですが、wheelchair.lのモデルで、
jointのインスタンスをバインドしている変数がグローバル変数になっています。
これらの値 jlleg jltire jlstire jrleg jrtire jrstire

letで宣言してローカル変数にするか、wheelchairクラスの :slotsに宣言して
インスタンス変数にするのが良いかと思います。

ファイルをコンパイルするとグローバル変数があった場合warningが出るので確認できます。
(comp::compile-file "wheelchair.l")

@ketaro-m
Copy link
Author

ありがとうございます.マージされたら試させていただきます.

jointのインスタンスはスロット変数にして,コンパイルのwarningも出なくなりました
ご指摘ありがとうございます.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants