ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

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

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


Solved my problem.. Thx

fritz gravatar image fritz  ( 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 image Dave 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 image Adolfo 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 image Dave 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 image Adolfo 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 image Dave Coleman  ( 2013-09-05 11:02:06 -0500 )edit

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


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 image cdrwolfe  ( 2013-09-02 22:27:28 -0500 )edit

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

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

cdrwolfe gravatar image


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


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 image Dirk 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 image Dirk 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 image cdrwolfe  ( 2013-09-04 20:42:24 -0500 )edit

Question Tools

1 follower


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

Seen: 1,488 times

Last updated: Sep 04 '13