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

[hrpsys_ros_bridge_tutorials/models] Change the location of multisens… #504

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mttamtam
Copy link
Member

…e model files

multisense_rosの下記のアップデートに伴って、multisenseのURDFファイルの置き場所が変わり、xacroになりました。

https://bitbucket.org/crl/multisense_ros/commits/7e23594784d062995f074cfded04942a0b51e30d

@mttamtam
Copy link
Member Author

ずっと
Some checks haven't completed yet
The Travis CI build is in progress
になっていて、
TravisCIのDetailsをみてみると緑色になっていて終了してそうなんですが、
こういう時はどうすればいいんでしょうか。

@orikuma
Copy link
Contributor

orikuma commented Feb 25, 2017

JAXONのみでの暫定的な確認ですが, 下記の変更を入れないと正しいJAXON_WH_SENSORS.urdfはできない気がします.
mttamtam/rtmros_tutorials@multisense_urdf...orikuma:fix-jaxon-urdf-for-new-multisense-xacro

また新しいmultisenseSL.urdf.xacroはnameをprefixに取るように変わっていて, 今は後方互換製のために暫定的にname=""を与えていますが, urdfで先頭に/が入るのは規約的に良いんでしたっけ?

@k-okada
Copy link
Member

k-okada commented Feb 25, 2017

少し設定変えたので、これで、
https://travis-ci.org/start-jsk/rtmros_tutorials/builds/204188226
のrestartが押せるようになっているかな?

@mttamtam

@YoheiKakiuchi
Copy link
Member

また新しいmultisenseSL.urdf.xacroはnameをprefixに取るように変わっていて, 今は後方互換製のために暫定的にname=""を与えていますが, urdfで先頭に/が入るのは規約的に良いんでしたっけ?

状況がほとんど理解できないので、
簡単にでいいですが、理解できる程度に状況を説明してください。

@orikuma
Copy link
Contributor

orikuma commented Feb 27, 2017

アップストリームのmultisenseSL.urdfがmultisenseSL.urdf.xacroになった際, multisenseのlink名とjoint名の頭にxacroのnameパラメータで指定されるprefixが入るようになりました.
ex. 旧: hokuyo_link -> 新: ${name}/hokuyo_link
これによりmultisense_driverのjoint_statesやhrpsys_state_publisherのtfに影響が出ています.

対策としては

  1. nameをmultisenseなどに決めてmultisenseのlink/jointに関係する部分を全部修正する
  2. nameを""にする

の2つがありそうです.
1は正しい解決策ですが, hokuyo_link, motor_joint, left_camera_optical_frameなど関係するlink名・joint名が多く, drc_task_commonのタスク用アプリケーションなども含めると修正が大変そうです.
2は既存の設定をそのまま使うためのとりあえずの解決策ですが, tilt_laser_listenerなどの一部nodeで先頭の"/"を考慮したjoint名判定が必要になったり, tf_prefixに対応できないといった問題があります.

@YoheiKakiuchi
Copy link
Member

  1. nameを""にする

とすると何がおこるのか確認できているかな?
確認する必要のある対象は tf と joint_statesのjoint名 それ以外に何かあるかな?

確認する必要のある対象について、大本の変更以前と nameを""にする とで違いはあるかな?

@orikuma
Copy link
Contributor

orikuma commented Feb 27, 2017

とすると何がおこるのか確認できているかな?

2の場合, urdfのmultisense関連のlink・joint名の先頭に"/"がつきます.
ex. 旧: hokuyo_link -> 新: /hokuyo_link

確認する必要のある対象は tf と joint_statesのjoint名 それ以外に何かあるかな?

現状で気がついているのはjaxonvisionの認識系pipeline内で

  • tf (現状は問題になっていないが多分tf_prefixやnamespaceが効かなくなる気がしている, 未確認)
  • mutlisense_driverの出すjoint_statesのjoint名 (motor_joints -> /motor_jointsに変わっている)
    ですが他にあるかもしれないです

確認する必要のある対象について、大本の変更以前と nameを""にする とで違いはあるかな?

joint名についてはtilt_laser_listenerが想定しているjoint名(motor_joints)とjoint_statesのjoint名(/motor_joints)のマッチングが出来ないことが分かっています.
jaxonvision内のpipelineでは他には不都合は出ていませんでしたが, アプリケーション系の方では不都合があるかもしれないです.

@YoheiKakiuchi
Copy link
Member

結果と判断だけでなくて中間の情報も含めよう。

tf (現状は問題になっていないが多分tf_prefixやnamespaceが効かなくなる気がしている, 未確認)

でtfは実際にどうなってる? 頭に"/"がついているのか?

いずれにしろ、
jointの名前やlinkの名前は解決できない
(たぶんlinkの名前を明示的に使ってるところはほとんどないはずurdf内headくらいか)

tfは先頭に"/"がついてしまうが解決はできる

この際、調べて必要なところは変えたほうが後に災いを残さないのではないか

@orikuma
Copy link
Contributor

orikuma commented Feb 27, 2017

tfは実際にどうなってる? 頭に"/"がついているのか?

見る限りでは頭に"/"はついていないようです.

この際、調べて必要なところは変えたほうが後に災いを残さないのではないか

使ってみて該当箇所を見つけ次第直していくようなことになりそうですが,
後々を考えると変えるのが正しいかと思います.
name=multisenseあたりにして修正するという方針でいいでしょうか.

また先程 @mttamtam さんと確認しましたが,
multisense_description/urdf/multisenseSL/importable.urdf.xacro
を使うと名前が変わっていますがhead_root_jointが使えるようです.

@orikuma
Copy link
Contributor

orikuma commented Feb 27, 2017

(たぶんlinkの名前を明示的に使ってるところはほとんどないはずurdf内headくらいか)

これについてはlidar系のhokuyo_link, camera系のleft_camera_optical_frameなど使っているものが多そうなものがあるかと思います.

@k-okada
Copy link
Member

k-okada commented Mar 1, 2017 via email

@mttamtam
Copy link
Member Author

mttamtam commented Mar 2, 2017

ビルドが通らないな、と思ってファイル名を変更したら通るようになったけど実は動かなかった、という迂闊なプルリクを送ってしまって申し訳ないのですが、multisense_rosの4.0.0で互換性のない変更が色々と加えられている点から、

multisense_description はソースから入れているのであれば、.rosinstall
を直して、バージョンを3.xに固定しておく、というてもあるんじゃないでしょうか.

というのが楽で良いのではないかと思いました。

@YoheiKakiuchi
Copy link
Member

multisense_description はソースから入れているのであれば、.rosinstall
を直して、バージョンを3.xに固定しておく、というてもあるんじゃないでしょうか.

そうですね。ちょっと考えたんですが、今はある程度試せる時期かなと思ってはいました。

ビルドが通らないな、と思ってファイル名を変更したら通るようになったけど実は動かなかった、という迂闊なプルリクを送ってしまって申し訳ないのですが、multisense_rosの4.0.0で互換性のない変更が色々と加えられている点から、

何が問題そうでしょうか?

それと、4.0.0へ変更になった時に、xacroになった以外の有効そうな変更はありそうでしょうか?

@mttamtam
Copy link
Member Author

mttamtam commented Mar 8, 2017

何が問題そうでしょうか?

このブランチのままだと
[ERROR] [1488977874.196454826]: Failed to build tree: child link [head_root] of joint [head_tip_to_multisense] not found
と言われて、例えばrvizでロボットモデルにエラーが表示されたり、点群が見れなくなります。orikumaさんの変更を適用することでrvizで見ることができます。認識系のpipelineでの問題は私はちょっとよくわからないです。

それと、4.0.0へ変更になった時に、xacroになった以外の有効そうな変更はありそうでしょうか?

については、「いろいろ」と書いてしまいましたが大本を見ると
Added support for new firmware version 3.5 features.
Rewrote urdf and launch files for ease of use.
ということで、モデルファイルが互換性なく変わったのと、それに伴う変更が主だと思います。

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

Successfully merging this pull request may close these issues.

4 participants