catkin_makeエラー

4,616 views
Skip to first unread message

S. Hirose

unread,
Nov 2, 2016, 1:05:06 AM11/2/16
to ROS JAPAN Users Group
ROS初心者です.
ROSwiki内で紹介されているicart_miniを用いた地図作成(http://wiki.ros.org/icart_mini)を試みています.

同ページ内のInstallの項目を順次実行していったのですが、

$ rosdep install --from-paths . --ignore-src --rosdistro indigo -y

を実行した際に、

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
icart_mini_driver: Cannot locate rosdep definition for [ypspur]

といったエラーが出てしまいます。
一応catkin_makeも試してみたのですが

CMakeFiles/icart_mini_driver_node.dir/src/icart_mini_driver_node.cpp.o: 関数 `main' 内:
icart_mini_driver_node.cpp:(.text+0x34b): `YP_get_error_state' に対する定義されていない参照です
CMakeFiles/icart_mini_driver_node.dir/src/icart_mini_driver_node.cpp.o: 関数 `TFrog::TFrog()' 内:
icart_mini_driver_node.cpp:(.text._ZN5TFrogC2Ev[_ZN5TFrogC5Ev]+0x5d): `YPSpur_init' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrogC2Ev[_ZN5TFrogC5Ev]+0x1ed): `YP_set_wheel_vel' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrogC2Ev[_ZN5TFrogC5Ev]+0x224): `YP_set_wheel_accel' に対する定義されていない参照です
CMakeFiles/icart_mini_driver_node.dir/src/icart_mini_driver_node.cpp.o: 関数 `TFrog::~TFrog()' 内:
icart_mini_driver_node.cpp:(.text._ZN5TFrogD2Ev[_ZN5TFrogD5Ev]+0x19): `YPSpur_stop' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrogD2Ev[_ZN5TFrogD5Ev]+0x3e): `YPSpur_free' に対する定義されていない参照です
CMakeFiles/icart_mini_driver_node.dir/src/icart_mini_driver_node.cpp.o: 関数 `TFrog::reopen()' 内:
icart_mini_driver_node.cpp:(.text._ZN5TFrog6reopenEv[_ZN5TFrog6reopenEv]+0x15): `YP_wheel_vel' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrog6reopenEv[_ZN5TFrog6reopenEv]+0x1a): `YPSpur_free' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrog6reopenEv[_ZN5TFrog6reopenEv]+0x1f): `YPSpur_init' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrog6reopenEv[_ZN5TFrog6reopenEv]+0x4a): `YP_set_wheel_vel' に対する定義されていない参照です
icart_mini_driver_node.cpp:(.text._ZN5TFrog6reopenEv[_ZN5TFrog6reopenEv]+0x75): `YP_set_wheel_accel' に対する定義されていない参照です
CMakeFiles/icart_mini_driver_node.dir/src/icart_mini_driver_node.cpp.o: 関数 `TFrog::read()' 内:
icart_mini_driver_node.cpp:(.text._ZN5TFrog4readEv[_ZN5TFrog4readEv]+0x207): `YP_wheel_vel' に対する定義されていない参照です
CMakeFiles/icart_mini_driver_node.dir/src/icart_mini_driver_node.cpp.o: 関数 `TFrog::write()' 内:
icart_mini_driver_node.cpp:(.text._ZN5TFrog5writeEv[_ZN5TFrog5writeEv]+0x31): `YP_get_wheel_vel' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
make[2]: *** [/home/hirose/catkin_ws/devel/lib/icart_mini_driver/icart_mini_driver_node] エラー 1
make[1]: *** [icart_mini/icart_mini_driver/CMakeFiles/icart_mini_driver_node.dir/all] エラー 2
make: *** [all] エラー 2
Invoking "make -j4 -l4" failed

とエラーが出ました。
エラーを見る限り、こちらと同じように見えたのですが...解決できません。
(ヘッダファイルを参照できていないのでは?と考えました)
 
ypspurのドライバはT-frogプロジェクトのページにあるマニュアル(http://t-frog.com/products/motor_driver/files/TF-2MD3-R6_Manual_rev5.pdf)に沿って
インストールしました。
マニュアルでhttps://openspur.org/repos/yp-spur.git/となっていたところはhttps://github.com/DaikiMaekawa/ypspur.git/と置き換えて実行しました。
(インストールをcatkin_make/src上でやればいいのか、catkin_wsのあるディレクトリ上でやればいいのかわからず、後者で行いました。)

質問としては
1.rosdep install によるエラーの解決策はあるでしょうか?
2.ypspurドライバのインストールはcatkin_wsの上層で行うので良いのでしょうか?
です。

対処法があれば教えていただけると幸いです。
他に必要な情報などあれば、質問していただければお答えします。

[Ubuntsu 14.04LTS  indigo]

Moirai

unread,
Nov 3, 2016, 1:54:13 AM11/3/16
to ROS JAPAN Users Group
git cloneしてくる位置はsrcの下です.

rosdep install ...はパッケージの依存を解消するコマンドです.
icart_miniを使おうとしているのだから,icart_miniが参照しているパッケージ群への依存を解消しないとicart_miniは使えないので
$ rosdep install --from-paths . --ignore-src --rosdistro indigo -y
を実行する.

> Cannot locate rosdep definition for [ypspur]

のエラーはypspurの位置が特定できないから.

ワークスペースの直下に落としているypspurを消し,
src配下にcloneし直して
rosdep installからやりなおしてみてください.



S. Hirose

unread,
Nov 4, 2016, 1:27:58 AM11/4/16
to ROS JAPAN Users Group
回答ありがとうございます。
src上にgit cloneしなおしてみたところ、rosdep installでのエラーはなくなりました。
しかし、catkin_makeしたところ、以下のようなエラーが出ました。

Base path: /home/hirose/catkin_ws
Source space: /home/hirose/catkin_ws/src
Build space: /home/hirose/catkin_ws/build
Devel space: /home/hirose/catkin_ws/devel
Install space: /home/hirose/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/hirose/catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/hirose/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/hirose/catkin_ws/devel;/opt/ros/indigo
-- This workspace overlays: /home/hirose/catkin_ws/devel;/opt/ros/indigo
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/hirose/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.6.18
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 8 packages in topological order:
-- ~~  - icart_mini (metapackage)
-- ~~  - icart_mini_description
-- ~~  - ros_start
-- ~~  - cit_adis_imu
-- ~~  - icart_mini_gazebo
-- ~~  - icart_mini_control
-- ~~  - ypspur (plain cmake)
-- ~~  - icart_mini_driver
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMake Error at /opt/ros/indigo/share/catkin/cmake/catkin_workspace.cmake:95 (message):
  This workspace contains non-catkin packages in it, and catkin cannot build
  a non-homogeneous workspace without isolation.  Try the
  'catkin_make_isolated' command instead.
Call Stack (most recent call first):
  CMakeLists.txt:63 (catkin_workspace)

Try the 'catkin_make_isolated' command instead.
という記述があるのですが、こちらのコマンドを試したほうが良いでしょうか?
それともypspurをcatkinパッケージとして認識させる方法があるのでしょうか?


2016年11月3日木曜日 14時54分13秒 UTC+9 Moirai:

S. Hirose

unread,
Nov 4, 2016, 5:23:08 AM11/4/16
to ROS JAPAN Users Group
自己解決しました。
$ catkin_make_isolated
を試してみたところ、

configure: error: source directory already configured; run "make distclean" there first

といったエラーが出たため、ypspurディレクトリ上で
$ make distclean
を行ったあとに再び
$ catkin_make_isolated
を試してみると、エラーを吐くことなく、catkin_makeが終了しました。

2016年11月4日金曜日 14時27分58秒 UTC+9 S. Hirose:
Reply all
Reply to author
Forward
0 new messages