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

Revision history [back]

Regarding 1, if you build your binaries with no dependencies on ros libraries they will run anywhere that does have compatible libraries it is dependent on and same architecture like mentioned by @joq. I think your find_package(catkin...) would be emptyand you would find your libs with standard cmake find_packages etc. (unless you are doing something lazy like using cv_bridge when all you really want is OpenCV, which works as long as cv_bridge is built upon the same opencv that B has) And of course you couldn't use rosrun to launch the binaries on the other machine, just run the /path/to/binary directly.

The build farm http://wiki.ros.org/buildfarm is supposed to provide capabilities for custom building (and distribution?). There is likely a lot more learning curve than catkin_make install + copy binaries.

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

I haven't done this (and it would be fantastic to see tutorials or any more information from anyone who has) but I hope the end stage is that machine B would add a local private server to the deb repositories and then be able to apt-get a binary down into /opt/ros.

Regarding 1, if you build your binaries with no dependencies on ros libraries they will run anywhere that does have compatible libraries it is dependent on and same architecture like mentioned by @joq. I think your find_package(catkin...) would be emptyand empty and you would find your libs with standard cmake find_packages etc. (unless you are doing something lazy like using cv_bridge when all you really want is OpenCV, which works as long as cv_bridge is built upon the same opencv that B has) And of course you couldn't use rosrun to launch the binaries on the other machine, just run the /path/to/binary directly.

The build farm http://wiki.ros.org/buildfarm is supposed to provide capabilities for custom building (and distribution?). There is likely a lot more learning curve than catkin_make install + copy binaries.

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

I haven't done this (and it would be fantastic to see tutorials or any more information from anyone who has) but I hope the end stage is that machine B would add a local private server to the deb repositories and then be able to apt-get a binary down into /opt/ros.

Regarding 1, if you build your binaries with no dependencies on ros libraries they will run anywhere that does have compatible non-ros libraries it is that they are dependent on and same architecture like mentioned by @joq.

I think your find_package(catkin...) would be empty and you would find your libs with standard cmake find_packages etc. (unless you are doing something lazy like using cv_bridge when all you really want is OpenCV, which works as long as cv_bridge is built upon the same opencv that B has) And of course you couldn't use rosrun to launch the binaries on the other machine, just run the /path/to/binary directly.

The build farm http://wiki.ros.org/buildfarm is supposed to provide capabilities for custom building (and distribution?). There is likely a lot more learning curve than catkin_make install + copy binaries.

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

I haven't done this (and it would be fantastic to see tutorials or any more information from anyone who has) but I hope the end stage is that machine B would add a local private server to the deb repositories and then be able to apt-get a binary down into /opt/ros.

Regarding 1, if you build your binaries with no dependencies on ros libraries they will run anywhere that does have compatible non-ros libraries that they are dependent on and same architecture like mentioned by @joq.

I think your find_package(catkin...) would be empty and you would find your libs with standard cmake find_packages etc. (unless you are doing something lazy like using cv_bridge when all you really want is OpenCV, which works as long as cv_bridge is built upon the same opencv that B has) And of course you couldn't use rosrun to launch the binaries on the other machine, just run the /path/to/binary directly.

The build farm http://wiki.ros.org/buildfarm is supposed to provide capabilities for custom building (and distribution?). There is likely a lot more learning curve than catkin_make install + copy binaries.

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

I haven't done this (and it would be fantastic to see tutorials or any more information from anyone who has) but I hope the end stage is that machine B would add a local private server to the deb repositories and then be able to apt-get a binary down into /opt/ros.

There was a presentation at roscon 2015: http://roscon.ros.org/2015/presentations/Buildfarm.pdf and https://vimeo.com/142150815

Regarding 1, if you build your binaries with no dependencies on ros libraries they will run anywhere that does have compatible non-ros libraries that they are dependent on and same architecture like mentioned by @joq.

I think your find_package(catkin...) would be empty empty, you wouldn't put ${catkin_LIBRARIES} in the target_link_libraries (to be double sure), and you would find your libs with standard cmake find_packages etc. (unless you are doing something lazy like using cv_bridge when all you really want is OpenCV, which works as long as cv_bridge is built upon the same opencv that B has) And of course you couldn't use rosrun to launch the binaries on the other machine, just run the /path/to/binary directly.

The build farm http://wiki.ros.org/buildfarm is supposed to provide capabilities for custom building (and distribution?). There is likely a lot more learning curve than catkin_make install + copy binaries.

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

I haven't done this (and it would be fantastic to see tutorials or any more information from anyone who has) but I hope the end stage is that machine B would add a local private server to the deb repositories and then be able to apt-get a binary down into /opt/ros.

There was a presentation at roscon 2015: http://roscon.ros.org/2015/presentations/Buildfarm.pdf and https://vimeo.com/142150815

Regarding 1, if you build your binaries with no dependencies on ros libraries they will run anywhere that does have compatible non-ros libraries that they are dependent on and same architecture like mentioned by @joq.

I think your Unless you have multiple non-ros dependent catkin packages you want catkin to find for you, find_package(catkin...) would be empty, you wouldn't need to put ${catkin_LIBRARIES} in the target_link_libraries (to be double sure), target_link_libraries, and you would find your other libs with standard cmake find_packages etc. (unless you are doing something lazy like using cv_bridge when all you really want is OpenCV, which works as long as cv_bridge is built upon the same opencv that B has) find_packages. And of course you couldn't use rosrun to launch the binaries on the other machine, just run the /path/to/binary directly.

The For 2, the build farm http://wiki.ros.org/buildfarm is supposed to provide capabilities for custom building (and distribution?). There is likely a lot more learning curve than catkin_make install + copy binaries.

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

I haven't done this (and it would be fantastic to see tutorials or any more information from anyone who has) but I hope the end stage is that machine B would add a local private server to the deb repositories and then be able to apt-get a binary down into /opt/ros.

There was a presentation at roscon 2015: http://roscon.ros.org/2015/presentations/Buildfarm.pdf and https://vimeo.com/142150815