# ROS setup with cmake

Hi,

Is it possible to compile ROS from source code using a single cmake command without using rosdep and so on tools ?

Regards, S.Ancelot

Edit: We have add a look at ROS, and the reasons to willing understand and being able to compile it is a consequence of our feedback regarding ROS.

Unfortunately, at time of writing, we think this project is nice only for research projects , but not for use in industrial company context. And thus not ready for ROS-INDUSTRIAL for next reasons. And this is mainly a software locking issue.

As machine builder and robot integrators, we should be able to provide robotician guys a platform easy to setup , use and ideally enhance.

The first step is setup. ROS should be able to be setted up easily on any platform. either binary packages are available for the operating system you are using or we can build it and integrate it. We are building our own CNC software and we must being able to know what goes inside.

This means, we will decide on which operating system to run, kernel settings , which drivers and so on ..... At the moment software is locked to some distributions and system dependencies. That's really a locking issue.

In our software (and robotics) research development team (and any software development team), guys are used to use common used tool for developing software (CMake, autoconf, gcc compilers ....etc etc ....). Here you are providing a kind of black box (rosdep and so on tools), we can not master what is doing on the backside??? We must be able to monitor / check any package licenses used too.

It looks like on the back side, CMake is used, that's good to know. Cmake is provided with all battery included, this is why we don't understand the need to provide a frontend layer that complicates it, any developer don't know wtf it does, and will finally loose everybody. Regarding cmake, it is easy to download / use any particular libs that won't be available in the system and provide a complete build / install system, thus fullfills all the requirements for ROS ?. CMake can too be parameterized thanks to options. Having a look at https://github.com/robotology/robotol... link you provided, they seem being in "real life " reading only the introduction:

for portability reasons and for customizing the build via CMake options

Regarding usage: We have not be able to use it in real contexts, since we had to provide a "custom ROS computer" in our applications and next to our machines (Our applications are integrated : no need to have a computer for each function, one is enough). But from offline programming viewpoint: To use ROS, command line usage is needed. This is really of another epoch, and can not be deployed in industry . Some tools need being developped to avoid it. Then, we should be able to customize interfaces and functions to the final application . eg simulation software (eg gazebo, to provide the ...

edit retag close merge delete

Sort by » oldest newest most voted

re: your edit: thanks for the edit, this provides a lot more context and to be honest your original question was really unanswerable without that context.

This is a prime example of an xy-problem I believe.

Unfortunately, at time of writing, we think this project is nice only for research projects , but not for use in industrial company context. And thus not ready for ROS-INDUSTRIAL for next reasons.

If you feel this technology is not for you, that is ok. No one is going to force you to use it.

As to use in industrial contexts: it could very well be true that for your use-cases using ROS does not bring value. However I would not make a blanket statement as you do in your edit. The events listed here alone indicate that there is certainly a viable way to use ROS 1 in industrial contexts. I would refer you to the RIC-EU 2018 conference recordings (playlist 1, playlist 2, playlist 3 and playlist 4) to get an impression of the many companies and research organisations using it in production environments (and yes: also in RnD).

And this is mainly a software locking issue. As machine builder and robot integrators, we should be able to provide robotician guys a platform easy to setup , use and ideally enhance.

The first step is setup. ROS should be able to be setted up easily on any platform. either binary packages are available for the operating system you are using or we can build it and integrate it. We are building our own CNC software and we must being able to know what goes inside.

This means, we will decide on which operating system to run, kernel settings , which drivers and so on ..... At the moment software is locked to some distributions and system dependencies. That's really a locking issue.

This is what I meant with providing more context: your question "can I install ROS using CMake" seems to really have been: "are there build and deployment options for ROS other than the on the wiki documented build-a-workspace-with-Catkin workflow?".

The answer to that question would be: yes, there are.

Take a look at ros/meta-ros (and ros-infrastructure/superflore) for instance which provides an "OpenEmbedded Layer for ROS". The various ROSCon presentations about Docker-based build and deployment pipelines may also be interesting (2018 had some nice ones). There have also been presentations about orchestration and fleet management using tools such as Kubernetes and others.

Builds and deployment for embedded systems are being discussed in the Embedded category on ROS Discourse and in the OpenEmbedded category.

While I'm not going to pretend this will solve your specific problems, it shows that others (including a rather large number of companies) have recognised that alternative deployment strategies to catkin_make need to exist and those have been created.

I would perhaps suggest to take a look at those, as right now I believe you have a somewhat skewed or one-sided impression of ROS ...

more