-
Notifications
You must be signed in to change notification settings - Fork 61
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のHRP2JSKNT_WH.urdfのビルド時における依存関係の解決 #84
Comments
https://github.com/start-jsk/rtmros_tutorials/blob/master/hrpsys_ros_bridge_tutorials/catkin.cmake#L257 |
…before build {robotname}_WH.urdf in connection with issue start-jsk#84. This workaround should be temporary.
取り敢えずgen_hand_attached_hrp2_model.shでビルド前に依存するモデルが生成されるまで待つことでcaktin_makeが通るようになりましたが, これは正しい解決策ではないように思います. 問題としては
ということで, 排他制御のようなことをするかcmakeによるconfiguration時に依存するファイルの生成規則を網羅的にtargetとして記述することが出来れば良さそうなのですが, 方法がよくわかりませんでした. それと{robotmodel}_WH.urdfはHRP23HAND_L/R.urdfに依存しているようですがgen_hand_attached_hrp2_model.shにはハンドモデルの情報が渡されていないようです. |
launchに依存しているものがありますか? |
gen_hand_attached_hrp2_model.shを見ると{robotname}_ros_bridge.launchのCOLLADA_FILEをsedで置換するために依存しているようです. |
全体的に、ちょっと複雑にしすぎてる気がするので、もとファイルが何で、どういう変換をして、そのためどういう依存関係が必要で、と整理しましょう すくなくとも、launchは同じcmakeでつくってるにもかかわらず、一旦かきだして、そのあとsedして、それのためにwaitが必要で、と脱線している気がします |
@snozawa さん やりたいことは, (i)ハンドのjoint_statesを出す (ii)のためのPRが #74 ですが, このPRの中でやっていることは,以下の3つです.
ただ,以下のような他のやり方もあった気がして,もしかしたらそちらのほうがよかったのかも,とも思います.
|
そうですね。
あとh、ハンドをつける部分に関しては、VRMLの時点でつける以外の方法も確率しておくといいとおもうので、 まず付け方ですが、
ロボットの手首リンクを削除せず、手首リンクを残しつつ、 |
可能です. HRP2は,ARM_JOINT6がロボット本体側とハンド側の両方にあるので, |
これは、リンクの名前がかぶってるという話だっけ? 同じ形状もあるんだっけ? |
すみません,JOINT6ではなくLINK6でした. LINK6については, |
この、ハンド側の形状を変更するのに何か問題があるんだっけ? |
VRMLかcolladaのメッシュファイルを直接編集して,共通部分を取り除く作業になりそうで, |
fixed jointでつながってるロボットの形状がかぶっていると、gazeboで問題があるんだっけ? |
gazeboではとりあえず問題ないような気がします. 少なくとも現状のデフォルトでは,自己干渉を見ないようになっているので大丈夫なはずで, |
gazebo以外で問題ないところはあるかな?
でいいのではないでしょうか? |
HRP2の場合は, |
ちらと見ましたが,メッシュの編集はそれほど難しくなくできると思います. |
はい,そういう意味ならそうでした. ついでに以下の25行目のように,
というのもスマートでありかもしれないですね. |
に沿って,#96 でmake時にxacroとlaunchの書き換えをやらないようにしました. 以下の(b)と(c)がなくなったことになって,残りは(a)だけですがこれはおおもとのVRMLの変更が必要そうです.
|
この件どうなったでしょうか. [ 60%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNT_WH.urdf
/home/iori/ros/hydro/src/rtm-ros-robotics/openrtm_common/openhrp3/bin/export-collada /home/iori/prog/OpenHRP/etc/HRP2JSKNTS_for_OpenHRP3/HRP2JSKNTSmain.wrl was successfully exported to /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.dae
/home/iori/ros/hydro/src/rtm-ros-robotics/openrtm_common/openhrp3/bin/export-collada /home/iori/prog/OpenHRP/etc/HRP2JSKNTS_for_OpenHRP3/HRP2JSKNTSmain.wrl was successfully exported to /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.dae
[ 60%] [ 60%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.urdf, /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_meshes
Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_L.urdf, /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_L_meshes
;; Adding gazebo description
;; Use assimp export
;; output file is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_L.urdf
;; mesh_prefix is: package://hrpsys_ros_bridge_tutorials/models/HRP3HAND_L_meshes
;; Mesh output directory is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_L_meshes
;; Input file is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_L.dae
Traceback (most recent call last):
File "/opt/ros/hydro/share/xacro/xacro.py", line 60, in <module>
xacro.main()
File "/opt/ros/hydro/lib/python2.7/dist-packages/xacro/__init__.py", line 657, in main
process_includes(doc, os.path.dirname(args[0]))
File "/opt/ros/hydro/lib/python2.7/dist-packages/xacro/__init__.py", line 270, in process_includes
raise XacroException("included file \"%s\" could not be opened: %s" % (filename, str(e)))
xacro.XacroException: included file "/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_R.urdf" could not be opened: [Errno 2] No such file or directory: '/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_R.urdf'
;; Adding gazebo description
;; Use assimp export
;; output file is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.urdf
;; mesh_prefix is: package://hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_meshes
;; Mesh output directory is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_meshes
;; Input file is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.dae
make[2]: *** [/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNT_WH.urdf] エラー 1
make[1]: *** [rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/CMakeFiles/HRP2JSKNT_xacro_model_generate.dir/all] エラー 2
make[1]: *** 未完了のジョブを待っています....
[ 60%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.urdf, /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_meshes
[ WARN] [1418569446.424804920]: could not find collada joint kmodel1/jointsid1000!
;; Adding gazebo description
;; Use assimp export
;; output file is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.urdf
;; mesh_prefix is: package://hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_meshes
;; Mesh output directory is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_meshes
;; Input file is: /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS.dae
Traceback (most recent call last):
File "/opt/ros/hydro/share/xacro/xacro.py", line 60, in <module>
xacro.main()
File "/opt/ros/hydro/lib/python2.7/dist-packages/xacro/__init__.py", line 657, in main
process_includes(doc, os.path.dirname(args[0]))
File "/opt/ros/hydro/lib/python2.7/dist-packages/xacro/__init__.py", line 270, in process_includes
raise XacroException("included file \"%s\" could not be opened: %s" % (filename, str(e)))
xacro.XacroException: included file "/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_R.urdf" could not be opened: [Errno 2] No such file or directory: '/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_R.urdf'
make[2]: *** [/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNT_WH.urdf] エラー 1
make[1]: *** [rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/CMakeFiles/HRP2JSKNT_WH_SENSORS.urdf_generate.dir/all] エラー 2
[ WARN] [1418569446.610216411]: could not find collada joint kmodel1/jointsid1000!
[ WARN] [1418569446.662309304]: could not find collada joint kmodel1/jointsid1000!
[ 60%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_body.urdf
sed: -e expression #1, char 1: 不明なコマンド: `,'
expr: 構文エラー
make[2]: *** [/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_body.urdf] エラー 1
make[1]: *** [rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/CMakeFiles/HRP2JSKNTS_model_generate.dir/all] エラー 2
[ 60%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_body.urdf
[ 60%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_WH.urdf
Traceback (most recent call last):
File "/opt/ros/hydro/share/xacro/xacro.py", line 60, in <module>
xacro.main()
File "/opt/ros/hydro/lib/python2.7/dist-packages/xacro/__init__.py", line 657, in main
process_includes(doc, os.path.dirname(args[0]))
File "/opt/ros/hydro/lib/python2.7/dist-packages/xacro/__init__.py", line 270, in process_includes
raise XacroException("included file \"%s\" could not be opened: %s" % (filename, str(e)))
xacro.XacroException: included file "/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_R.urdf" could not be opened: [Errno 2] No such file or directory: '/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP3HAND_R.urdf'
make[2]: *** [/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_WH.urdf] エラー 1
make[1]: *** [rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/CMakeFiles/HRP2JSKNTS_xacro_model_generate.dir/all] エラー 2
make: *** [all] エラー 2
Invoking "make" failed また, Scanning dependencies of target pr2eus_roseus_ALL_GEN_OUTPUT_FILES_eus
[ 71%] Built target pr2eus_roseus_ALL_GEN_OUTPUT_FILES_eus
Scanning dependencies of target HRP2JSKNTS_WH_SENSORS.urdf_generate
[ 72%] Generating /home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_WH_SENSORS.urdf
Traceback (most recent call last):
File "/home/iori/ros/hydro/src/jsk-ros-pkg/jsk_model_tools/euscollada/scripts/add_sensor_to_urdf.py", line 69, in <module>
main(sys.argv[1:])
File "/home/iori/ros/hydro/src/jsk-ros-pkg/jsk_model_tools/euscollada/scripts/add_sensor_to_urdf.py", line 63, in main
parent, child, input_file, output_file)
File "/home/iori/ros/hydro/src/jsk-ros-pkg/jsk_model_tools/euscollada/scripts/add_sensor_to_urdf.py", line 45, in updateURDF
xdoc = minidom.parse(input_file)
File "/usr/lib/python2.7/xml/dom/minidom.py", line 1920, in parse
return expatbuilder.parse(file)
File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse
result = builder.parseFile(fp)
File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 211, in parseFile
parser.Parse("", True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0
make[2]: *** [/home/iori/ros/hydro/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HRP2JSKNTS_WH_SENSORS.urdf] エラー 1
make[1]: *** [rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/CMakeFiles/HRP2JSKNTS_WH_SENSORS.urdf_generate.dir/all] エラー 2
make: *** [all] エラー 2
Invoking "make" failed |
明日見てみます 2014年12月15日月曜日、[email protected]さんは書きました:
from iPhone |
こちらのissueですが,治った気がします. @garaemon, @YoheiKakiuchi , @mmurooka (多分このあたりのcmakeのマクロを書いたと思われる開発者の方々)
|
やっていることはハンドをつけることと、センサーのtfをrobot_sate_publisherから出すためにurdfにつけることです。 JAXON系とHRP2系はリンク名などを与えられるようにすれば同じになると思います。JAXON系が古くてスクリプトになっていますが、中身は同じことをしています。 最終的に使っているのは WH_SENSORS.urdf だけですね。依存関係や並列実行に関してどうするのがいいかは @garaemon さんにおまかせします。 |
使っているのがWH_SENSORS.urdfだけであれば、そのファイルだけ最終的にできるようにすると、 |
これに関連して、@mmurookaさんと話して思いましたが、
|
ちなみに、VRMLとURDFの間はhttps://github.com/fkanehiro/simtrans みたいなのもありますね。 |
変換のひとつひとつのスクリプトをシンプルにするために,途中生成物としてhoge_WH.urdfができていますね. |
collada_urdfに入れるのが正解かもしれないのですが,colladaをメンテナンスしていくモチベーションが個人的にはあまりないですね.OpenRAVEはcolladaですが,それならむしろvrml->urdf->colladaとしたいところです. |
スクリプトはシンプルですが、生成物が多くて初見だとちょっと難しい+扱いが複雑で、ビルド・cmakeの依存関係の書き方が難しくなるきがします(このissueの日付から逆算すると、半年以上解決しないレベルの難しさ)。 |
個人的にはcolladaを経由しない方向性は大賛成です。 |
そもそもの-j1じゃないとうまく行かない問題自体は解決できている気がしますが,依存関係は難しいですね. collada_urdfをリッチにするのとcolladaをエイヤっと消してしまうのはどっちが楽なのでしょうか? urdfは良い感じのpython parserがあるので,それを使うと楽にかけますね. また,multisenseをくっつける,とかはurdfレベルでしかできないことですね. |
だんだん思い出してきましたが,依存関係はopenhrpのmodelloaderがPCで一つしか上がらない問題をなんとか回避しようとしてのことでしたね |
実機用とgazebo用のURDFを共通にする話ですが, https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/cmake/compile_robot_model.cmake#L320 gazebo上で動かすには, 生成過程を単純にする話をしているところで, @garaemon , |
2015-06-26 17:36 GMT+09:00 Ryohei Ueda [email protected]:
これはもうなくなったはずです. ◉ Kei Okada |
今見たらかなりシンプルになっていますね.
デフォルトをcollada_urdf_jsk_patchにして良いと思います |
これは最新openhrp3とcompile_robot_model.cmakeにしておくと、治っていると思います。 @mmurooka |
今はcmakeはかなりシンプルになっているから,依存関係が複雑すぎるというのは見たらわかるレベルになっているんじゃないでしょうか? |
個人的には colladaを一気に消すというのが時間がかかりそうというなら,後でurdfをいじるスタイルが一番手っ取り早いかと思います. collada_urdfに色々と機能を入れていくと,vrml->colladaとcollada->urdfの2つを変更しなくてはいけなくて, |
はい,start-jsk/rtmros_gazebo#195 (comment) でも言われている通りそうするのですが, 現状のまま移植すると, |
models/Jaxon.yamlに追加するのはどうだろうか 2015年6月26日金曜日、Masaki [email protected]さんは書きました:
✉︎ from iPhone |
start-jsk/rtmros_gazebo#195 |
assimpは今のところvrmlを使えないので、vrml->urdf の変換には必要ないでしょうね。 |
update HRP2 calibration file for MultisenseSL
現在環境によってはhrpsys_ros_bridge_tutorialsのcatkin_makeが通らない状態になっている気がします.
具体的には,HRP2JSKNT_WH.urdfのビルドでHRP2JSKNT.urdf, またはhrp2jsknts_ros_bridge.launchがないと言われてcatkin_makeが落ちる現象が起こっています(hrpsys_ros_bridge_tutorials最新版のYST脚とiori-t430sで確認).
エラーメッセージは以下のとおりです.
catkin_make --only-pkg-with-deps hrpsys_ros_bridge_tutorials --make-args -j1
するとビルドが通るので,
https://github.com/start-jsk/rtmros_tutorials/blob/master/hrpsys_ros_bridge_tutorials/catkin.cmake#L247-266
の部分で依存関係が考慮されずに並列コンパイルされると発生する問題と思われます.
参照: Pull #75
-- 以下エラー --
The text was updated successfully, but these errors were encountered: