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

ベースとなるモデルファイルをurdfにする(検討) #67

Open
YoheiKakiuchi opened this issue Oct 27, 2014 · 7 comments
Open

Comments

@YoheiKakiuchi
Copy link
Member

  • openhrp3のmodelloaderでURDFを読めるようにする
  • いまVRMLのロボットをすべてURDFで書きなおす
  • SolidEdgeのデータからURDFを作る方法を確立する(ドキュメント化する)

pros

  • 変数で左右対称やミラーが表現できるため,記述が楽
    • STAROのVRMLだと,腕は同じ部品で脚は左右対称の部品
      • そのため,マスプロパティは腕はxとyをひっくり返し,脚はyのみをひっくり返す
      • 可動域も同様にいい感じにする
      • リンク座標系も同様にいい感じにする
      • というのを頭の中でやっていて,割と大変
    • その部分を自動記述させるためのツールとしてurdf.xacroスタートにしたい

cons

  • HRP2はVRML以外に選択しがない。VRMLだと、HRP2をさわれる人はJAXONを、JAXONさわれる人はHRP2を触れるが、URDFだとそうはいかない
@eisoku9618
Copy link
Contributor

VRML URDF
pros
cons

  • HRP2はVRML以外に選択しがない。VRMLだと、HRP2をさわれる人はJAXONを、JAXONさわれる人はHRP2を触れるが、URDFだとそうはいかない
  • これまでと変わらないのでhrpsys-baseがそのまま動く
  • URDFに変換する手段は確立されている
  • URDFに変換したときに幾何形状ファイルとリンク長などのファイルが区別して出力されるため,いじりやすい

  • 変数が使えてミラーと左右対称に対応できて最初に書く人が楽
  • 変数が使えてミラーと左右対称に対応できてメンテナンスが楽
  • シンプルなので,書きやすく見やすいため,メンテナンス性up+ヒューマンエラーなくなりやすい
  • ROS標準なのでROSの恩恵にあやかりやすい
  • ros wikiやサンプルが豊富で分かりやすい

  • 書きづらく見づらいのでメンテナンス性が悪い+ヒューマンエラーが起こりやすい
  • 変数が使えないため,ミラーや左右対称なども直打ちしかなく,大変+メンテナンス性悪い
  • ドキュメントがあんまりなくて分かりづらい

  • 現状のhrpsys-baseが使える形式に変換できるか不明
    • VRMLには存在するclimit / torqueConst / gearRatio がURDFにはない
      • 上の3つの積であるeffortはURDFにもある
      • 現状のhrpsys-baseではeffortに対応するデータしか使っていない(by @orikuma
    • 現状の変換プログラムだとセンサ系がちゃんと変換されない
      • URDFではセンサもリンクとして扱っており,VRMLのようにしっかりとセンサであるという区別はしていない
    • 現状の変換プログラムだと幾何形状データとリンク長データが混ざってしまっていて,いじりづらい

@YoheiKakiuchi
Copy link
Member Author

以下のpros, consがよく分からないんだけどどういうことかな?

VRML の pros

URDFに変換したときに幾何形状ファイルとリンク長などのファイルが区別して出力されるため,いじりやすい

urdf の cons

現状の変換プログラムだと幾何形状データとリンク長データが混ざってしまっていて,いじりづらい

@k-okada
Copy link
Member

k-okada commented Oct 27, 2014

いいんだけど,urdf/vrmlになっていて,実際にやらなければいけないことはロボットを動かすことなので,これをつかうモデルライブラリ,それを使うコントローラや,キャリブレーションツールなど,先の先の先の部分まで考えてみましょう

macが買いたい理由

  • かっこいい,スタバでいじったらモテそう
  • 2本指,3本指でしゅしゅっとやりたい
  • 最近はROSで動くらしい

で,思わず買っちゃうと,

  • まず,jsk.rosinstallがlsb_releaseみていて動かない?
  • あれ?gazebo動く?
  • あれ?hrpsys-base動く?(これはものすごく動く)
  • あれ?rviz動く?
  • あれ?F#うごく?
  • 実験をはじめるとMIDIとかつなげることになるかも?
  • 実験をはじめるとなるとgzwebを使うけど,ブラウザはどうしたらいい?
  • kinect2つながる? multisenseつながる?

と,買う前に思っていた検討項目と,実際に買った後にチェックしなければポイントは結構違うものです.
urdfにしたい,もそういう形から入っているかな?という感じに見えます.もちろんわかってやっていればいいし,
ROSがMac/Windowsでうごくのは世界の皆さんが待っていることなので,ぜひがんばりましょう,とおもいますが.
万万が一,そこまで見えていなかったら,広い視野を持ってみましょう.

@garaemon
Copy link
Member

僕の個人的な意見は現状維持で、hrpsysまではvrmlで、ROSからはurdfです(変換はすでにある、はず?
キャリブを考えるとROSからはurdfで行くのが楽

評価軸は実装にかかる時間、のみです。

VRML作るのが大変なら、VRMLまでは形状はバウンディングボックスで良いとも思ってます。

2014年10月28日火曜日、Kei [email protected]さんは書きました:

いいんだけど,urdf/vrmlになっていて,実際にやらなければいけないことはロボットを動かすことなので,これをつかうモデルライブラリ,それを使うコントローラや,キャリブレーションツールなど,先の先の先の部分まで考えてみましょう

macが買いたい理由

  • かっこいい,スタバでいじったらモテそう
  • 2本指,3本指でしゅしゅっとやりたい
  • 最近はROSで動くらしい

で,思わず買っちゃうと,

  • まず,jsk.rosinstallがlsb_releaseみていて動かない?
  • あれ?gazebo動く?
  • あれ?hrpsys-base動く?(これはものすごく動く)
  • あれ?rviz動く?
  • あれ?F#うごく?
  • 実験をはじめるとMIDIとかつなげることになるかも?
  • 実験をはじめるとなるとgzwebを使うけど,ブラウザはどうしたらいい?
  • kinect2つながる? multisenseつながる?

と,買う前に思っていた検討項目と,実際に買った後にチェックしなければポイントは結構違うものです.
urdfにしたい,もそういう形から入っているかな?という感じに見えます.もちろんわかってやっていればいいし,
ROSがMac/Windowsでうごくのは世界の皆さんが待っていることなので,ぜひがんばりましょう,とおもいますが.
万万が一,そこまで見えていなかったら,広い視野を持ってみましょう.


Reply to this email directly or view it on GitHub
#67 (comment)
.

from iPhone

@eisoku9618
Copy link
Contributor

以下のpros, consがよく分からないんだけどどういうことかな?

mesh情報とロボット幾何的な(?)の情報が同一ファイルに書かれていると,編集するのが大変だな,という意味です.

現状のURDF - > VRMLの変換プログラムを使ってみて,

  • マスプロパティ・可動域などはちゃんと変換される
  • センサがちゃんと反映されない

という事が分かったので,やはり最初に挙がっていた

URDFで書いて変換して出てきた微妙なVRMLを切り貼りしてちゃんとしたVRMLを作って大本として管理する

が一番良いと思っています.

aginika pushed a commit to aginika/jsk_model_tools that referenced this issue Jul 30, 2015
…-depent

delete depent to posedetectiondb
@robograffitti
Copy link
Member

robograffitti commented Jun 12, 2018

最初からURDFしかないモデルのVRMLを作ろうと試行錯誤をしていて
URDFからVRMLに変換する方法について質問です

現状のURDF -> VRML の変換プログラムを使ってみて,

という部分についてですが、
これはここの"Convert3. convert to collada"を実行した後、
export-vrml で変換し、そのVRMLに手動修正を加えたり、
リンクのvisualの部分を各ファイルに分割して最終的なVRMLを仕上げているのでしょうか?
(プライベートの33で議論されていた方法)

自分の場合はこの方法に辿り着く前に、以下のsimtransを使って、

URDFで書いて変換して出てきた微妙なVRMLを切り貼りしてちゃんとしたVRMLを作って

というところまでは現状できていて、hrpsys-simulatorを起動するところまではできました。
http://fkanehiro.github.io/simtrans/html-ja/index.html

気になる点としては、export-vrmlの場合は、

  • wrlファイルが1つしか生成されなかった(リンクのvisualの部位が分割されないので1個のファイルがかなり重いので、emacsで開こうとすると警告が出る)

simtransの場合は、

  • リンクのvisualの部位がファイルに分割して生成されるので便利
  • メッシュがSTLの場合はURDFのタグからscaleを読んで適用してくれないので、daeに変換してから使うか、変換後のscaleタグの値を0.001に設定する必要がある

共通の問題としては、

  • メッシュが真っ黒になる(hrpsys-simulatorの場合)→輝度とかのパラメータがwrlに上手く設定されていない
  • gen_minmax_table_for_closed_robots のコマンドを実行するためにおそらく必要となるmin-maxに関するパラメータが存在しない(maxAngleとminAngleを保持するCylinderSensorX/Y/Zという謎リンクがないので、それを手動で追記する必要がある?)→.lで(hoge-init)みたいなコマンドを実行するために生成されるファイルが足りてない

また、最初からURDFが存在する場合、
hrpsys_ros_bridge_tutorials と同じ方法でビルドすると、
URDFとColladaがオリジナルのものを含めて2重で生成され、
hogerobot_ros_bridge.launchはビルドで生成された.daeを参照する形で生成されます。
こういう場合、元々あるURDFを使った方がいいと思うのですが、
現状は手動でlaunchファイルを編集するしかないと思っています。

今自分がやっている方法で、やりたいこと自体はできそうなところまで来ていますが(SampleRobotを参考にきちんとVRMLを手動で注意深く書き直すという力技)、やり方として適切か他の人のやり方を参考にしたいと思っているので、どなたかご回答お願いいたします。

@robograffitti
Copy link
Member

@YoheiKakiuchi から口頭で回答をいただきました。後でまとめます。

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

5 participants