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

Revision history [back]

click to hide/show revision 1
initial version

ROS uses absolute paths to find workspaces; there isn't a way to change that, but there are lots of workaround.

Depending on how your repository is structured and how many robots you have, there are a few ways you can do this:

  • If your codebase has lots of small repositories, have you developers set up an overlay workspace on the robot, and only checkout and build the packages they're actually testing.
  • Give each developer an account on the robot that exactly matches their account on the development machine, so that the paths are the same.
  • You can change the install path for catkin_make install so that it installs to a different path, and then transfer that directory to the same place on the robot; for example install to /opt/local/ros and then copy that directory to the robot. You'll still have absolute paths, but they'll match on the developer's machine and the robot.
  • Build in docker (or some other kind of container) and then transfer that container to the robot.
  • If you have lots of robots and want to test or deploy to all of them, consider setting up an apt repo and running a system like buildbot-ros to produce binary packages

And there lots of variations on these approaches.