Nishida-Lab / rosbook_pkgs

「実用ロボット開発のためのROSプログラミング」サンプルコード
http://amzn.asia/d/ct0zwBh
44 stars 18 forks source link

6章のlaunch testが通らない #25

Closed MoriKen254 closed 6 years ago

MoriKen254 commented 6 years ago

launch test となると、@RyodoTanaka さんの出番ですね。助けてください!

あとこれさえ通せば全テスト行けると思うのですが汗。

ちなみに、ローカルではばっちり全テスト通っています。問題は、Travis CIの空間で通らないということです。

Arg xml is The traceback for the exception was written to the log fil



↑ ` source` をうっかり忘れた時によく出るあれ。

- 原因
  - `$(find fourth_robot_description)` が解決できていない
  - `catkin run_tests` だと自作の他パッケージに依存するところでコケる
     - (`catkin_make run_tests` なら通るんだろうにな−。)
  - ローカルなら `source devel/setup.bash` すれば解決します。Travis CIの空間でどう解決すればよいのかよくわかりません

- 解決案
  - `install` 対象のディレクトリにコツがいるのでしょうか?

よろしくお願いします。
MoriKen254 commented 6 years ago

> 西田先生

本件、本文に一切影響しません。ご安心ください。

MoriKen254 commented 6 years ago

進捗

gazebo側のCMakeListsにcatkin_packageの情報を入れたらファイルを読むとこまでは行けた。

catkin_package(
  LIBRARIES ${PROJECT_NAME}
  CATKIN_DEPENDS fourth_robot_description
)

問題

次なるエラーがこれ。

Param xml is <param command="$(find xacro)/xacro.py '$(arg model)'" name="robot_description">;
[/root/catkin_ws/src/rosbook_pkgs/chapter6/fourth_robot_gazebo/launch/fourth_robot_with_empty_world.launch]:
    Invalid <param> tag: Cannot load command parameter [robot_description]: command [/opt/ros/kinetic/lib/xacro/xacro --inorder /root/catkin_ws/install/share/fourth_robot_description/robots/fourth_robot.urdf.xacro] returned with code [2]. 

一般には、xacroでタグが不正の時に出るエラーだが、ローカルではちゃんと表示されるので、文法の誤りの線はうすい。

内部でcallしている他のxacroファイルがパスの問題で読めていないとか、そんな感じな気もする。

description 側のinstall のdir 設定を見なおして出直します。

MoriKen254 commented 6 years ago

ようやく解決したっぽいです。 いくらググってもヒットしないので、これが正攻法かは不明です。

全package.xmlで、設定フォルダ等も含めてinstallしていることが前提。

fourth_robot_gazebo 側の設定

.travis.yml の設定

ROSDEP_SKIP_KEYS で自作パッケージを退避。これをしないとrosdepで叱られる。

  matrix:
    - ROS_DISTRO="kinetic"  ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu ROSDEP_SKIP_KEYS="fourth_robot_description fourth_robot_control"  
    - ROS_DISTRO="kinetic"  ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu ROSDEP_SKIP_KEYS="fourth_robot_description fourth_robot_control"

まっさらなローカルでrosdepをした時の挙動も確認してみてからマージします。

私も不慣れなので汗、アドバイス等あればおねがいします。

MoriKen254 commented 6 years ago

26 で解決しました。閉じます。