Robotics StackExchange | Archived questions

Deploy ROS binary to systems without ROS installed?

I have a little working publisher node that I compile with catkin_simple and I need to make a deployable package that runs in other systems without ros installed.

Right now my CMakeLists.txt looks like this:

cmake_minimum_required(VERSION 3.13.4)
set (CMAKE_CXX_STANDARD 11)
project (test)
find_package(catkin_simple REQUIRED)
catkin_simple()
cs_add_executable(${PROJECT_NAME} 
    src/main.cpp 
)
cs_install()
cs_export()

Everything works fine on my machine, a install folder gets created and I have my binary there, run it, and everything works fine. However, when I move it to another machine without ROS installed, it doesn't work, it tries to search for the core ROS libraries in /opt/ros/kinetic/lib/ (That's also the path where I have ROS installed in my development machine) and it obviously can't find them.

Is there any way to create a compiled package with all the necessary dependencies to be able to run it even if the system doesn't have ROS installed?

Thank you all in advance

Asked by Mayu on 2019-11-21 10:41:51 UTC

Comments

Quick suggestion: look into containers (Docker, Singularity) or technologies like snap, flatpack or appimage.

Asked by gvdhoorn on 2019-11-21 10:46:14 UTC

It is the name ROS, so it is more like a wohle system not just a Programm.

Because then you have to name it ROP :-) But @gvdhoorn has the right answer for your problem

Asked by duck-development on 2019-11-21 11:43:08 UTC

Answers