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

How to chain knowrob and rosjava workspaces

asked 2015-01-23 11:01:41 -0600

Alexey Reshetnyak gravatar image

After a succesfull installation Indigo and rosjava in Ubuntu 14.04 according to this and this instructions I got following error when I was making KnowRob from sources:

CMake Error at /home/al/ros_catkin_ws/install_isolated/share/catkin/cmake/catkinConfig.cmake:75 (find_package):
  Could not find a package configuration file provided by
  "rosjava_build_tools" with any of the following names:


  Add the installation prefix of "rosjava_build_tools" to CMAKE_PREFIX_PATH
  or set "rosjava_build_tools_DIR" to a directory containing one of the above
  files.  If "rosjava_build_tools" provides a separate development package or
  SDK, be sure it has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:6 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/al/ros_catkin_ws/build_isolated/knowrob_common/CMakeFiles/CMakeOutput.log".
See also "/home/al/ros_catkin_ws/build_isolated/knowrob_common/CMakeFiles/CMakeError.log".
<== Failed to process package 'knowrob_common': 
  Command '/home/al/ros_catkin_ws/devel_isolated/rosprolog/ cmake /home/al/ros_catkin_ws/src/stacks/knowrob/knowrob_common -DCATKIN_DEVEL_PREFIX=/home/al/ros_catkin_ws/devel_isolated/knowrob_common -DCMAKE_INSTALL_PREFIX=/home/al/ros_catkin_ws/install_isolated -G Unix Makefiles' returned non-zero exit status 1

I think it occures because workspaces is not chained. There is a tutorial that describes how to chain workspaces, but after a default installation (according to mentioned tutorials) we have the following directories: ~/ros_catkin_ws and ~/rosjava. It's not clear how to chain them.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2015-01-25 10:11:07 -0600

moritz gravatar image

The tutorial explains the necessary steps: The key is which setup.bash you have sourced when running catkin_make. The first time (Sec. 3.3) you have sourced the one in /opt/ros/indigo/..., then you build the first workspace (in your case containing the rosjava repositories, let's assume it's at ~/rosjava), then you create another directory, call catkin_init_workspace, source the setup.bash from your rosjava workspace (~/rosjava/devel/setup.bash), and then run catkin_make on that workspace again. In the end, you have to source the setup.bash from your custom workspace (e.g. ~/custom_pkgs/devel/setup.bash) since only that contains all packages, the ones in /opt/ros, the ones in ~/rosjava, and the ones in ~/custom_pksgs.

edit flag offensive delete link more


It helped. But I didn't have /opt/ros directory when I built Indigo from sources. So I gave up. I installed Indigo through apt-get. Directory /opt/ros appeared in the my system. Then I installed rosjava and KnowRob from sources, the key point was to source right setup.bash. Thanks!

Alexey Reshetnyak gravatar image Alexey Reshetnyak  ( 2015-01-26 02:19:56 -0600 )edit

Alexey, thanks for sharing. Could you please explain a bit more specifically how to source the right setup.bash?

kenari gravatar image kenari  ( 2015-02-16 02:16:39 -0600 )edit

answered 2015-02-16 04:15:11 -0600

Alexey Reshetnyak gravatar image

updated 2015-02-16 04:17:10 -0600

Hello kenari, here the steps that worked for my system: Ubuntu 14.04 LTS, Indigo:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
cd ~/catkin_ws/
source devel/setup.bash
rosdep update
cd ~/catkin_ws/src
rosws init
wstool merge
wstool update
rosdep install --ignore-src knowrob
cd ~/catkin_ws
source /home/al/rosjava/devel/setup.bash
source devel/setup.bash
edit flag offensive delete link more


Hi All,

I´ve been trying to install knowrob for weeks, but I get the rosjava_build_tools error. There doesn´t appear to be a way to install rosjava on kinetic. Any ideas how to get knowrob working without rosjava? Or, at least be able to communicate with prolog from lisp?

toddcpierce gravatar image toddcpierce  ( 2016-08-22 12:15:17 -0600 )edit

You can try to manually build individual packages along the dependency chain. rosjava seems to ignore the catkin dependencies in CMakeLists and package.xml. I've just compiled knowrob again and it worked when building first knowrob_common, then knowrob_srdl, then knowrob_mongo and others.

moritz gravatar image moritz  ( 2016-08-22 23:52:48 -0600 )edit

catkin_make --pkg knowrob_common etc

moritz gravatar image moritz  ( 2016-08-22 23:53:01 -0600 )edit

I lilke the suggestions on how to do all of this stuff on Indigo and older versions of Linux, but does anybody have any idea how to install ROSJava on Kinetic on 16.04? I mean, any instructions I follow, even installing from source, result in files not existing out there in the cloud.

toddcpierce gravatar image toddcpierce  ( 2016-08-24 08:35:22 -0600 )edit

Question Tools

1 follower


Asked: 2015-01-23 11:01:41 -0600

Seen: 1,375 times

Last updated: Feb 16 '15