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

PR2の変換がおかしい #48

Open
fkanehiro opened this issue Dec 9, 2015 · 9 comments
Open

PR2の変換がおかしい #48

fkanehiro opened this issue Dec 9, 2015 · 9 comments

Comments

@fkanehiro
Copy link
Owner

チュートリアルにある通りの手順でPR2をurdfからwrlに変換すると、一見正常に変換できたように見えますが、やたらと大きなパーツがロボットから少し離れたところに存在しています。

@yosuke
Copy link
Contributor

yosuke commented Dec 18, 2015

ロボットの頭に乗っているKinectのリンクのvisualがstlでできていて、scaleが正しく設定できていないせいだと思います。

以前修正したはずの不具合なのですが、復活してしまったようなので調査してみます。

@robograffitti
Copy link

すべてのメッシュがSTLで記述されたURDFをVRMLに変換しようとして利用していますが、@yosuke さんが仰られているように、STLを読み込んだ時のscaleが正しく設定できていないようです。

@robograffitti
Copy link

報告の内容が不足していましたが、メッシュがすべてSTLのURDFを変換したらscaleの問題でロボットが正しく表示できなかったということでした。

@fkanehiro
Copy link
Owner Author

御報告有難うございます。
正直なところこのソフトウェアは最近メンテしていないのですが、問題が再現できるだけシンプルなデータを頂けましたら調査できるかもしれません。

@robograffitti
Copy link

hrpsysを新しいロボットで使うために、VRMLを生成する方法として、1. CADからエクスポートしてOpenHRPの拡張を施すべきか、2. 既にURDFがあるならこのsimtransを使うべきか、ということがスタート地点で、2の方が自動生成できる部分は多いだろうと思って、このsimtransを使っているという状況です。

ただ、これがモデル変換の方法として最適かどうかは以下を見つけてみて、少しわからなくなっているところです。
start-jsk/rtmros_common#531
jsk-ros-pkg/jsk_model_tools#67

とりあえず、以下、simtrans で試したものたちです。

Robotis OP3: https://github.com/ROBOTIS-GIT/ROBOTIS-OP3-Common/blob/master/op3_description/urdf/robotis_op3.urdf.xacro
image

Thormang 3: https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-Common/blob/master/thormang3_description/urdf/thormang3.xacro
image

REEMC: https://github.com/pal-robotics/reemc_robot/blob/indigo-devel/reemc_description/robots/reemc.urdf.xacro

※collada と STL が混在?

image

SampleRobot: https://github.com/start-jsk/rtmros_tutorials

※ビルド時に生成された SampleRobot.urdf をsimtrans で変換したもの

image

@robograffitti
Copy link

op3のSTLをすべてdaeに手動変換したURDFからsimtransでwrlを生成してみました。

やはり、STLのスケールの問題のようです。

image

@robograffitti
Copy link

続報ですが、STLから変換したwrlの中身のscale 1.0 1.0 1.0 を scale 0.001 0.001 0.001 に手動で書き換えたら、STLでも正常に表示できました。

wrl に scale のパラメーターを書き込む時に 0.001 で書き込むという分岐を追記すれば解決できそうです。

@fkanehiro
Copy link
Owner Author

https://en.wikipedia.org/wiki/STL_(file_format)
によるとSTLではスケールを指定する術がないようです。
複数のSTLがあってスケールがバラバラだと対応するのが難しそうですが、全て1000倍(単位がmm)とかであればスケールをオプション引数で指定する、といった方法が考えられますね。

@robograffitti
Copy link

STLにはスケールを指定する術がないからか、
URDFではメッシュの読み込み時にscaleのタグを指定することができるようです。
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3-Common/blob/master/op3_description/urdf/robotis_op3.visuals.xacro#L12

geometry > mesh の attribute で scale をここで読んでいるのかなと思いました
https://github.com/fkanehiro/simtrans/blob/master/simtrans/urdf.py#L223

なので、STLReaderでMeshDataのインスタンスを作る時にここで読んだスケールを上手く使えていないのではと思って、コードを見て修正箇所を探しているところです。

もしくは、wrlにスケールを書き込むところでURDFから読んだスケールを書き込めていないか(テンプレートのデフォルト値1.000のままになってるからcolladaでは問題が起きていないだけとか)

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

3 participants