ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
First thing, is get comfortable with rosinstall. When you're only doing pc development, apt-get is great as you only ever play around in the one directory. However, if you're using your pc to build (especially when cross-compiling) for multiple robots, then its nice to have one pc-based installation for quick dev and testing of your algorithms and then one for each robot which has the global rostoolchain.cmake and rosconfig.cmake (for your cpu flags) customised for each tree. e.g. my /opt looks something like:
/opt/diamondback : my pc partition
/opt/waykook : robot
/opt/skelly : robot
/opt/iclebo : robot
/opt/cafero : robot
/opt/winmaster : ros for windoze (mingw)
/opt/building_manager : app dev environment
That way, for the robot trees you don't have to meddle with rpaths at all. Just tarball the tree or synchronise via unison with your robot.
If you haven't set aside space for this to work on /opt (I usually make my /opt a partition of its own), then you can symbolically link to somewhere else and all the rpaths will be oblivious of the fact that you're using a symbolic link rather than a real dir, e.g.
mkdir /home/phil/ros/cturtle
sudo ln -s /home/phil/ros/cturtle /opt/ros/cturtle
rosinstall /opt/ros/cturtle myinstaller.rosinstall
Rosbuild2 will hopefully make this problem go away as it has a proper install step.
2 | No.2 Revision |
First thing, I initially tried rejigging rpaths and then installing everything in the standard *nix directories, but ended up finding it easier (and with no real disadvantage except from my initial preconceptions) to just install a trimmed tree on the robot. Troy is get comfortable with rosinstall. When you're only doing working on rosbuild2 at the moment, so this will hopefully make this problem go away as rosbuild2 has a proper install step.
Only thing to make sure of when installing trees is those rpaths - need them the same on the robot as on the pc. I typically rosinstall a tree for each robot on my pc development, apt-get (and one or two for native pc development/testing). This is great as you only ever play around in the one directory. However, especially important if you're using your pc to build (especially when cross-compiling) for multiple robots, then its nice to have one pc-based installation for quick dev and testing of your algorithms and then one for each robot which has configuring the global rostoolchain.cmake and (toolchains) or rosconfig.cmake (for your cpu flags) customised for each tree. (cpu flags). e.g. my /opt looks pc is something like:like
/opt/diamondback : my pc partition
test/dev tree
/opt/waykook : robot
/opt/skelly : robot
/opt/iclebo : robot
/opt/cafero : robot
/opt/winmaster : ros for windoze (mingw)
/opt/building_manager : app dev environment
That way, for the robot trees you don't have to meddle with rpaths at all. Just tarball the tree or synchronise via unison unison or rsync with your robot.
Whatever method, just make sure to set alot of appropriate excludes/ignores (see that link for an example of some of the things you can drop safely, its by no means exhaustive). Even when size isn't important, it will speed up transfer.
If you haven't set aside space for this to work on /opt (I usually make my /opt a partition of its own), /opt, then you can symbolically link to somewhere else and all the rpaths will be oblivious of the fact that you're using a symbolic link rather than a real dir, e.g.
mkdir /home/phil/ros/cturtle
sudo ln -s /home/phil/ros/cturtle /opt/ros/cturtle
rosinstall /opt/ros/cturtle myinstaller.rosinstall
Rosbuild2 will hopefully make this problem go away as it has a proper install step.