start-jsk / rtmros_common

OpenRTM - ROS interoperability packages
http://wiki.ros.org/rtmros_common
12 stars 52 forks source link

hrpsys_ros_bridge_tutorialsでmake cleanしてからrosmakeするとxmlが生成されない #139

Closed k-okada closed 10 years ago

k-okada commented 10 years ago

From nakaokat on July 24, 2013 16:33:36

make時にhrpsys_ros_bridge_tutorials/models以下にxmlやdaeが生成されるようになっていると思いますが、 hrpsys_ros_bridge_tutorialsでmake cleanした直後、 rosmake hrpsys_ros_bridge_tutorialsとすると、HRP4C.xmlなどがなぜか生成されません。 makeとしてやる必要があります。 Issue 131 や Issue 107 と同じで、並列コンパイルの影響かと思います。

Original issue: http://code.google.com/p/rtm-ros-robotics/issues/detail?id=139

k-okada commented 10 years ago

From nakaokat on July 24, 2013 01:33:05

すみません、rosmakeとmakeで違いはなさそうです。

外部でrtm-namingを起動しておくと正しく生成されるようです。 rtm-namingが起動されていない状態でmakeした場合、 rtm-namingをその都度起動して生成してくれるようになっていたと思いますが、 昔から別途rtm-namingを起動しておかないと上手くいかなかったでしょうか。

k-okada commented 10 years ago

From nakaokat on July 24, 2013 01:58:57

rtm-namingが上がっていない状態でも、pr2などはxmlが生成されているので調べたところ、 compile_robot_model.cmakeでcompile_collada_modelのみがomniNamesを起動するようになっていました。

wrlから生成するときはcompile_openhrp_model、daeから生成するときはcompile_collada_modelを使うようになっているため、 daeから生成するpr2はxmlができていたようです。 r4665 でcompile_collada_modelと同じように、compile_openhrp_modelでもomniNamesを起動するようにしました。

Status: Fixed

k-okada commented 10 years ago

From noz...@jsk.imi.i.u-tokyo.ac.jp on July 24, 2013 05:16:27

遅くなりましたが、ご指摘のとおりrtm-namingが必要です。 compile_openhrp_modelとcompile_collada_modelが 同時にはしってしまうと動かないことがあると思うので(cmakeで依存関係がないのと、make -j16などした場合、つまりromsakeしたとき)、 前者はportを2888->2889にしました( r4666 )。

k-okada commented 10 years ago

From kei.ok...@gmail.com on August 04, 2013 01:46:48

以下のようにまだ 2889でなく2888な部分がありますが,これは意図したものでしょうか?

174   add_custom_command(OUTPUT ${_xmlfile}
175     COMMAND rosrun openrtm_aist rtm-naming 2888
176     COMMAND rostest -t hrpsys_tools _gen_project.launch CORBA_PORT:=2888 INPUT:=${daefile}${_proj_f    176 ile_root_option} OUTPUT:=${_xmlfile} ${_conf_file_option} ${_robothardware_conf_file_option} ${_con    176 f_dt_option}

Status: Accepted
Owner: noz...@jsk.imi.i.u-tokyo.ac.jp

k-okada commented 10 years ago

From noz...@jsk.imi.i.u-tokyo.ac.jp on August 04, 2013 06:02:31

以下のようにまだ 2889でなく2888な部分がありますが,これは意図したものでしょうか? はい、そうです。 commit messageの言葉がちょっと不十分でした。

同時にはしってしまうと動かないことがあると思うので(cmakeで依存関係がないのと、make -j16などした場合、つまりromsakeしたとき)、 compile_collada_model compile_openhrp_model とで依存関係がないので、make -j16などで同じポート(例えばどちらも2888)を使ってしまうと、 片方が2888をkillしてしまい、もう片方が2888を必要としているのに ominNamesにできない、というのが問題でした。 ということで、片方が2889, 猛火他方が2888であっていると思います。

多分そもそも経緯として、

1.もともとは、 compile_openhrp_modelもcompile_collada_modelも 特になにも指定せずデフォルト2809を使ってました

  1. compile_openhrp_modelが特になにも指定せずデフォルト2809を使うままで、 compile_collada_modelが2888を立ち上げる+使う+killする になりました。
  2. デフォルトで2809のomniNamesがなくても動くように、 r4665 でcompile_openhrp_modelもomniNamesを立ち上げる+使う+killする に変更がなされました。 ただしこのときのポートは2888
  3. 3の変更だと上記の問題がでるため、 r4666 でcompile_openhrp_modelを2889, compile_collada_modelを2888にしました。
k-okada commented 10 years ago

From kei.ok...@gmail.com on August 04, 2013 06:45:02

2888を使わず, 2889と2890としたらまずいですか.

2888のnameserverはシステムが稼動していてそれを止めるにはsudoが必要だったり,yes/noを おさなければいけなかったりして,必要なければ2888を使わないようにしておきたいです. [#141]にあるようにシステム自体も変えようとおもいます.昔は(HRP2)は3003だっけ?4004だっけ?

k-okada commented 10 years ago

From noz...@jsk.imi.i.u-tokyo.ac.jp on August 04, 2013 06:56:30

なるほど、事情がわかりました。 数値自体は他とかぶらない、かつcompile_xx同士でかぶらなければ, 2888でなくとも、何であっても問題ないと思います。

昔は(HRP2)は3003だっけ?4004だっけ? 5005でした。

k-okada commented 10 years ago

From kei.ok...@gmail.com on August 04, 2013 07:01:00

なるほど、事情がわかりました。 数値自体は他とかぶらない、かつcompile_xx同士でかぶらなければ, 2888でなくとも、何であっても問題ないと思います。

関連するところを変更しておいて下さい.

昔は(HRP2)は3003だっけ?4004だっけ? 5005でした。

は僕の方で直しますので,上の変更が終わったら僕にassinしておいてください.

k-okada commented 10 years ago

From noz...@jsk.imi.i.u-tokyo.ac.jp on August 04, 2013 08:16:58

r4940 で、2889と2890のポートを使うようにしました。

Owner: k-ok...@jsk.imi.i.u-tokyo.ac.jp

k-okada commented 10 years ago

From kei.ok...@gmail.com on January 30, 2014 02:54:25

Status: Fixed