Catkin_make error: Workspace contains non-catkin packages in it
I first followed the tutorials of moveit and everything was fine. I could run the demo.launch for pr2. Then I replaced src folder with my own and tried to compile it. After solved some problems like can't find urdfdomConfig.cmake, now I don't know how to solve this problem.
Here is my result for catkin_make:
Base path: //home/ruinianxu/ws_moveit
Source space: //home/ruinianxu/ws_moveit/src
Build space: //home/ruinianxu/ws_moveit/build
Devel space: //home/ruinianxu/ws_moveit/devel
Install space: //home/ruinianxu/ws_moveit/install
####
#### Running command: "make cmake_check_build_system" in "//home/ruinianxu/ws_moveit/build"
####
-- Using CATKIN_DEVEL_PREFIX: //home/ruinianxu/ws_moveit/devel
-- Using CMAKE_PREFIX_PATH: /home/ruinianxu/ws_moveit/devel;/opt/ros/indigo
-- This workspace overlays: /home/ruinianxu/ws_moveit/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/ruinianxu/ws_moveit/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.19
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 75 packages in topological order:
-- ~~ - genmsg
-- ~~ - gencpp
-- ~~ - genlisp
-- ~~ - genpy
-- ~~ - cmake_modules
-- ~~ - cpp_common
-- ~~ - message_generation
-- ~~ - message_runtime
-- ~~ - mk
-- ~~ - moveit_planners (metapackage)
-- ~~ - moveit_plugins (metapackage)
-- ~~ - moveit_pr2 (metapackage)
-- ~~ - moveit_resources
-- ~~ - moveit_ros (metapackage)
-- ~~ - ompl (plain cmake)
-- ~~ - pr2_moveit_config
-- ~~ - ros (metapackage)
-- ~~ - ros_comm (metapackage)
-- ~~ - rosbash
-- ~~ - rosboost_cfg
-- ~~ - rosbuild
-- ~~ - rosclean
-- ~~ - roscpp_traits
-- ~~ - roscreate
-- ~~ - rosgraph
-- ~~ - roslang
-- ~~ - rosmake
-- ~~ - rosmaster
-- ~~ - rosmsg
-- ~~ - rospack
-- ~~ - roslib
-- ~~ - rosparam
-- ~~ - rospy
-- ~~ - rosservice
-- ~~ - rostime
-- ~~ - roscpp_serialization
-- ~~ - roslaunch
-- ~~ - rosunit
-- ~~ - rosconsole
-- ~~ - roslz4
-- ~~ - rosbag_storage
-- ~~ - rostest
-- ~~ - std_msgs
-- ~~ - rosgraph_msgs
-- ~~ - std_srvs
-- ~~ - moveit_msgs
-- ~~ - xmlrpcpp
-- ~~ - roscpp
-- ~~ - rosout
-- ~~ - message_filters
-- ~~ - rosnode
-- ~~ - rostopic
-- ~~ - roswtf
-- ~~ - topic_tools
-- ~~ - rosbag
-- ~~ - srdfdom
-- ~~ - moveit_core
-- ~~ - moveit_controller_manager_example
-- ~~ - moveit_fake_controller_manager
-- ~~ - moveit_ros_perception
-- ~~ - moveit_ros_planning
-- ~~ - moveit_ros_move_group
-- ~~ - moveit_ros_manipulation
-- ~~ - moveit_ros_robot_interaction
-- ~~ - moveit_simple_controller_manager
-- ~~ - pr2_moveit_plugins
-- ~~ - pr2_moveit_tests
-- ~~ - moveit_ros_warehouse
-- ~~ - moveit_ros_benchmarks
-- ~~ - moveit_ros_planning_interface
-- ~~ - moveit_commander
-- ~~ - moveit_ros_visualization
-- ~~ - moveit_ros_benchmarks_gui
-- ~~ - moveit_setup_assistant
-- ~~ - pr2_moveit_tutorials
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMake Error at src/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)
-- Configuring incomplete, errors occurred!
See also "/home/ruinianxu/ws_moveit/build/CMakeFiles/CMakeOutput.log".
See also "/home/ruinianxu/ws_moveit/build/CMakeFiles/CMakeError.log".
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
I checked some similar problems but still don't know how to solve it. I found that someone said I can move the noncatkin packages out and build a second workspace for it to install it. But I don't know what package is noncatkin package. I also want to know whether there is difference if I change to use catkinmakeisolated? I compiled successfully by catkinmakeisolated but when I tried to launch demo.launch for pr2, my rviz always stopped to work suddenly.
Asked by Oh233 on 2017-05-11 14:27:32 UTC
Answers
It is because of catkin_isolated, I think. I also encountered the same problem, but I solve easy way(not good way) I clear the isolated packages (bcoz, these packages are not use at that time) again I do catkin_make. So, I don't know about that case "how to solve" . I can say only cause of that error is by isolated_catkin.
Asked by nunuwin on 2019-06-25 06:32:59 UTC
Comments
I have this same problem. No clue WHICH packages are "non-catkin". Looks like many other people have had this SAME PROBLEM over the years. Why hasn't this bug been fixed??
What finally worked (after two days of cargo-cult "programming") was eliminating the build/devel/install folders, doing catkin_make_isolated --install (in the catkin_ws folder), then source devel_isolated/setup.bash.
Asked by Alan8 on 2019-07-17 11:17:07 UTC
Comments
This is not a bug. The workspace just really contains non-Catkin packages, and only catkin_make_isolated
and catkin_tools
can build those workspaces.
There is nothing to fix.
Asked by gvdhoorn on 2019-07-17 13:15:25 UTC
@gvdhoom: The bug is that there's no clue how to fix this problem; look at all the people who have been stuck on this over the years. At a minimum, the framework should LIST the non-Catkin packages. Even better would be to automatically do a make_isolated in this situation.
Asked by Alan8 on 2019-07-17 13:23:21 UTC
We're getting into semantics here, but what you describe is not a bug. It's not something that is broken or doesn't work as intended.
You're essentially posting an enhancement request. It's a legitimate one, but this is not the place to do it. Might be better to post it over at ros/catkin (but with the focus on colcon
these days it's probably going to require a PR to get it in).
Even better would be to automatically do a make_isolated in this situation.
catkin_make_isolated
and catkin_make
are separate tools. It makes little sense to me to have one call the other.
Asked by gvdhoorn on 2019-07-17 13:41:58 UTC
Ok, an enhancement request. But from the user's point of view, it's indistinguishable from a bug; the user said "make" and the system didn't make. The fact that the make process is split between two tools is an implementation detail. It seems to me that a more user-friendly approach would be one tool that handled both situations.
Asked by Alan8 on 2019-07-17 13:58:16 UTC
the user said "make" and the system didn't make.
if you run make
on non-Makefile
projects, make
is also going to complain. We don't call that a bug, but logical behaviour. It's the same with catkin_make
and heterogeneous workspaces.
But it doesn't matter: unless an enhancement request is posted on the correct tracker, and a PR submitted, this will not change.
ROS is a community project. Without contributions from the community, things will either not change, or very slowly. There's no point in complaining about something on ROS Answers.
Asked by gvdhoorn on 2019-07-17 14:13:40 UTC
In my case, using an old docker container caused this issue. Simply running
apt-get update && apt-get upgrade -y
fixed the issue
Asked by canderson on 2020-12-09 15:55:32 UTC
Comments
Please use the preformatted text button when inserting code (101010 button)
Asked by jarvisschultz on 2017-05-11 17:07:55 UTC
Hi,
Asked by chengwei on 2017-05-22 20:50:54 UTC
At least now I found that is due to you add package like ompl in your workspace and try to catkin_make the whole workspace. You can find tutorial about how to install source ompl library with moveit. Actually they use catkin build that I just know is similar to catkin_make isolated.
Asked by Oh233 on 2017-05-22 21:52:39 UTC
Although that sounds like a separate issue, please at least provide the system output of it if you think it's related to what you're originally asking.
Asked by 130s on 2019-03-11 23:36:02 UTC