Ask Your Question
0

Ros_Controllers Package Catkin_Make Error

asked 2013-09-02 11:19:21 -0500

cdrwolfe gravatar image

There seems to be an error when looking to catkin_make the Ros_Controllers package:

-- ==> add_subdirectory(ros_controllers/joint_state_controller)
-- +++ processing catkin package: 'joint_trajectory_controller'
-- ==> add_subdirectory(ros_controllers/joint_trajectory_controller)
CMake Error at ros_controllers/joint_trajectory_controller/CMakeLists.txt:116 (add_rostest_gtest):
  Unknown CMake command "add_rostest_gtest".


-- Configuring incomplete, errors occurred!
Invoking "cmake" failed

Checking github shows some recent changes linked with add_rostest_gtest, though I'm not sure if this is the reason for catkin_make failing?

Anyone else able to install the package

edit retag flag offensive close merge delete

4 Answers

Sort by ยป oldest newest most voted
3

answered 2013-09-02 23:03:58 -0500

Adolfo Rodriguez T gravatar image

The controller should be searching for the rostest dependency correctly (see here). Could it be that you have an older version of rostest installed?. The add_rostest_gtest function is relatively new. Could you check if your rostest installation contains this CMake function?.

edit flag offensive delete link more

Comments

Solved my problem.. Thx

fritz gravatar imagefritz ( 2013-09-04 02:01:53 -0500 )edit

This new function has not been released into Groovy yet, for some reason. So ros_controllers is failing to build, causing gazebo_ros_pkgs to fail building as well :/ The ros_comm repo is on version 1.9.48 but the corresponding Groovy debians is only on 1.9.47, which does not contain the ``add_rostest_gtest`` function.

Dave Coleman gravatar imageDave Coleman ( 2013-09-05 09:53:32 -0500 )edit

The version of ros_controllers that uses `add_rostest_gtest` has been only released in Hydro. As Hydro diverges from Groovy these things will happen more and more (confessions of a Fuerte user ;-). I'd suggest that you overlay ros_comm with the Hydro equivalent, or if that doesn't work, with the Groovy version and add the extra CMake function manually.

Adolfo Rodriguez T gravatar imageAdolfo Rodriguez T ( 2013-09-05 10:20:04 -0500 )edit

I agree, but we have been telling lots of Gazebo users to install ros_control pkgs from source for Groovy and until now its been no problem. Ideally, the ros_controllers hydro branch should feature freeze and we begin development on a new indigo branch.

Dave Coleman gravatar imageDave Coleman ( 2013-09-05 10:39:50 -0500 )edit

It should strive to not break the (C++, ROS) API within a ROS distro. It's possible to revert the change and use a more verbose cmake command combination, though.

Adolfo Rodriguez T gravatar imageAdolfo Rodriguez T ( 2013-09-05 10:46:15 -0500 )edit

I think if we just create a new release of ros_comm into Groovy the problem should be fixed.

Dave Coleman gravatar imageDave Coleman ( 2013-09-05 11:02:06 -0500 )edit
2

answered 2013-09-02 21:57:18 -0500

Dirk Thomas gravatar image

Make sure to find_package(catkin REQUIRED COMPONENTS rostest) which will include the CMake code containing the function "add_rostest_gtest".

edit flag offensive delete link more

Comments

Sorry but could you extrapolate on that a bit :), do you mean add this line to a CMakeLists file, if so which one?

cdrwolfe gravatar imagecdrwolfe ( 2013-09-02 22:27:28 -0500 )edit
0

answered 2013-09-02 21:15:28 -0500

MarkyMark2012 gravatar image

Have you tried removing the test stuff from the CMakeLists file? Might get the package to build at least

edit flag offensive delete link more
0

answered 2013-09-04 07:59:14 -0500

cdrwolfe gravatar image

Right,

So it seems A. Rodriguez's answer proved fruitful, basically I had a ros_comm package in opt/ros but it only contained a package.xml, which is odd as I though I had an up to date hydro desktop full install.

Anyway git cloning ros_comm into catkin_ws/src helped get it past this little problem only to give rise to another:

[ 97%] Building CXX object ros_controllers/joint_trajectory_controller/CMakeFiles/joint_trajectory_controller.dir/src/joint_trajectory_controller.cpp.o
In file included from /home/michael/catkin_ws/src/ros_controllers/joint_trajectory_controller/src/joint_trajectory_controller.cpp:34:0:
/home/michael/catkin_ws/src/ros_controllers/joint_trajectory_controller/include/joint_trajectory_controller/joint_trajectory_controller.h:64:56: fatal error: realtime_tools/realtime_server_goal_handle.h: No such file or directory
compilation terminated.

All good, just simply git clone realtime_tools into src and job done all catkin_maked to death :)

However I'm curious, in that I ran

rosdep check --from-paths . --ignore-src --rosdistro hydro

Thinking this would identify any missing / dependency packages, but it seems realtime_tools was not mentioned, hmm oh well.

Thanks for the help either way

edit flag offensive delete link more

Comments

ros_comm is a metapackage (a former stack). It is correct and intentional that the folder /opt/ros/hydro/share/ros_comm contains only a package.xml file. All other relevant files are installed under the specific packages which are in the ros_comm repo.

Dirk Thomas gravatar imageDirk Thomas ( 2013-09-04 09:43:49 -0500 )edit

If a build from source works for you it is highly likely that you installed an older version of the ROS packages. A simple "sudo apt-get update && sude apt-get dist-upgrade" or "sudo apt-get install ros-hydro-ros-comm" would very likely have solved the issue without the need to compile core packages yourself.

Dirk Thomas gravatar imageDirk Thomas ( 2013-09-04 09:45:25 -0500 )edit

Aaahhhh, ok, I admit I don't apt-get update often enough, and I've never apt-get dist upgraded because I never knew of the command :). Thanks for the advice

cdrwolfe gravatar imagecdrwolfe ( 2013-09-04 20:42:24 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2013-09-02 11:19:21 -0500

Seen: 1,010 times

Last updated: Sep 04 '13