Hybrid cross-compilation for ROS-based projects for Raspberry Pi

Hello,

I’m new here so I apologize in advance in case I’ve (once again) posted this to the wrong place :smiley: I’ve just finished my latest project and thought to share it with the community. It’s a method for hybrid cross compilation of ROS and ROS-based projects for Raspberry pi (and probably other armhf boards running linux).

I developed it since I wanted to use cross compilation on a ROS project I’m working on, but there seemed to be no complete guide on how to do it, with all info in one place, updated for newer ROS versions. This hybrid approach relies on a docker container to do the muscle work (compilation & linking) while it uses a portion of the target filesystem to resolve the dependencies. The method should be fairly portable, modular and flexible towards different ROS version and flavors.

So far, it is possible to cross-compile ros_comm and ros_robot (without collada_urdf) and then simply copy the install folder back to target system. What’s more important, it allows one to compile catkin workspaces containing ROS packages, link them against target system libraries and ROS libraries - all on the host system. Afterwards, simply move the install folder back to target system and use it.

Perhaps it can help someone else as well :slight_smile:

https://github.com/vedranMv/ros_rpi_h…

3 Likes