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

catkin vs rosbuild system?

asked 2014-02-03 23:27:27 -0600

Hamid Didari gravatar image

Hi what is the difference between catkin and rosbuild? In what kind of uses is one of them more preferable than the other?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
7

answered 2014-02-04 01:42:43 -0600

Dirk Thomas gravatar image

rosbuild was the buildsystem of ROS since the early times. It uses CMake but invokes it from a Makefiles and builds each package separately and in-source.

catkin has been introduced in Groovy (in Fuerte only for testing for some packages). It is using CMake more cleanly and only enhances CMake where that falls short on features. It builds packages out-of-source by default, handles dependencies better and does a much better jobs for packaging. The list of advantages is pretty long and you can find more details here: http://wiki.ros.org/catkin/conceptual...

While rosbuild can still be used in the future only catkin packages can be released as of Hydro. So if you can choose you might want to go with catkin even if it might take a bit longer to learn the CMake stuff. But whenever you depend on a rosbuild package you are forced to stick to rosbuild.

edit flag offensive delete link more

Comments

In rosbuild system when i create a package I can't make that in another pc Is catkin same as rosbuild?

Hamid Didari gravatar image Hamid Didari  ( 2014-02-04 02:24:30 -0600 )edit
4

answered 2014-02-04 00:50:32 -0600

dornhege gravatar image

In short: catkin is mainly cmake, rosbuild uses cmake, but does "stuff" on its own.

The default/preferred build system in ROS is catkin. So, you should start new packages in catkin. However catkin packages can only depend on other catkin packages. So, if you have a dependency that is still on rosbuild, you'll need to convert that first or use rosbuild for your packages.

edit flag offensive delete link more

Comments

In rosbuild system when i create a package I can't make that in another pc Is catkin same as rosbuild?

Hamid Didari gravatar image Hamid Didari  ( 2014-02-04 01:46:52 -0600 )edit

I don't understand the question. Can you maybe reformulate it?

dornhege gravatar image dornhege  ( 2014-02-04 02:34:53 -0600 )edit

I create one package with rosbuild system in my laptop and then I copy this package in another pc when I try to make that. rosmake can't make that . i can't make my package in another pc with rosbuild. I have this err"mkdir -p bin cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=/opt/ros/hydro/share/ros/core/rosbuild/rostoolchain.cmake .. CMake Error: The current CMakeCache.txt directory /home/mohammad/ros_workspace/class/build/CMakeCache.txt is different than the directory /home/hamid/working_space/class/build where CMakeCache.txt was created. This may result in binaries being created in the wrong place. If you are not sure, reedit the CMakeCache.txt CMake Error: The source "/home/mohammad/ros_workspace/class/CMakeLists.txt" does not match the source "/home/hamid/working_space/class/CMakeLists.txt" used to generate cache. Re-run cmake with a different source directory."

Hamid Didari gravatar image Hamid Didari  ( 2014-02-04 02:50:35 -0600 )edit
1

You should only copy package sources, not builds. Run make clean before on another machine.

dornhege gravatar image dornhege  ( 2014-02-04 03:21:03 -0600 )edit
2

"make clean" might not be sufficient. Remove the "build" folder.

Dirk Thomas gravatar image Dirk Thomas  ( 2014-02-04 03:41:23 -0600 )edit

Thanks a lot :)

Hamid Didari gravatar image Hamid Didari  ( 2014-02-04 03:55:30 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-02-03 23:27:27 -0600

Seen: 8,163 times

Last updated: Feb 04 '14