In charge of ARM support for ROS at Willow Garage

134 views
Skip to first unread message

Paul Mathieu

unread,
Jan 21, 2013, 5:23:00 PM1/21/13
to ros-s...@googlegroups.com
Hi,

I'm Paul with Willow Garage, I've been newly appointed to bringing and enhancing ROS support on ARM platforms.
Please don't hesitate to update me with any feedback and experience, comments and requests are more than welcome.

Best,
-paul

mptho...@gmail.com

unread,
Jan 22, 2013, 2:26:33 PM1/22/13
to ros-s...@googlegroups.com
Hi Paul,

I would like to introduce myself to this list.  I'm Mike Thompson and I kicked off the Raspbian development just under a year ago to create hard float distribution of Debian armhf for ARMv6+vfp for the Raspberry Pi.  Recently I haven't been doing too much with Raspbian to concentrate on work that will pay the family bills, but I continue to keep tabs on it.  Now it's mostly managed on a day-to-day basis by a Debian Developer named Peter Green to build the packages needed so that Raspbian mirrors the Debian Wheezy distribution as much as possible.  However, the build cluster of 8 ARM based systems and associated servers for the build is still located in my basement.

I'm just getting caught up on this list and I hope I can help in some manner. I'm not yet knowledgeable about ROS or how the ROS packages are created, but I can help with general Debian package building and with setting up a repository (we use reprepro for nginx for the Raspbian repository).  In particular, I can setup up an independent ROS repository on the Raspbian servers similar to the MATE (a fork on Gnome 2) repository I set up at:

http://archive.raspbian.org/mate/

Ideally, I am hoping that the strategy is to create Debian .deb packages for ROS just as there are .deb ROS packages for Ubuntu.  It's sounds like this is the plan.  As Debian has a broader reach than Ubuntu in embedded Linux systems, it seems this would be a good goal for ROS independent of the desire to get ROS running on the Raspberry Pi.  If generic Debian .deb packages can be created for ROS, ideally they should build without any problems for Raspbian just as 98% of the rest of the Debian packages do (the other 2% needing hand tweaks to be built for ARMv6+vfp).

Once the Debian .deb packages for ROS are stable enough (if they aren't already), I can work on having the source for the packages built on Raspbian build cluster and then push them out to an independent repository that they can be downloaded and used on the Raspberry Pi.  Or, was there other ideas for making the packages available to Raspberry Pi users?

Thank you for these efforts and let me know what I can do to help.

Mike

Paul Mathieu

unread,
Jan 22, 2013, 2:56:08 PM1/22/13
to ros-s...@googlegroups.com
Hello Mike,

I am glad to hear from you, as we probably will need your help to get things done right for ROS on the RPi.
You are correct in that our short term goal here is to have a repository of .deb packages for Raspbian (or more generally for any ARM6 Debian distro, hopefully).
I am still in the phase of getting things figured out here, but I should be fully operational to work on this very soon.

As for how to make packages available to users, nothing is set in stone yet, we'll have to discuss that more thoroughly with Tully.

Anyway, thank you for being here, it is much appreciated.

Paul


--
 
 

mptho...@gmail.com

unread,
Jan 22, 2013, 4:28:02 PM1/22/13
to ros-s...@googlegroups.com
Paul,

If it hasn't been thought of already, ROS packages created for Raspbian armhf (armv6+vfp) should function fine on a Debian Wheezy armhf system (armv7+vfp3v3+thumb2) as the binaries are 100% forwards compatible.  Ideally the ROS package build scripts will also support Debian Wheezy armel to pick the low-cost ARMv4, ARMv5 and ARMv6 systems (ie. Olimex Olinuxino iMX233 boards) which lack floating point processors and Debian Wheezy i386 which picks up Intel based embedded systems.  Hopefully any extra effort to include armel and i386 will be minimal.  It's easy to set up a repository that offers all three types of binaries for download. 

The other thing to consider is what system you are using to build your test packages.  Building packages on the Raspberry Pi is pretty painful because of the relatively slow CPU, limited RAM and poor USB performance.  For all but the very largest packages, packages builds will work on the Raspberry Pi, but its very, very slow going.  For Raspbian, we do all our builds on Freescale iMX53 Quick Start Boards which have 1GB of RAM, SATA hard disk interfaces and many gigabytes of swap space.  Builds on this system typically are 4x to 12x faster than on a Raspberry Pi.  The systems run Debian Wheezy armhf and we do all the Raspbian package builds in chroot environment where all the tools target the armv6 platform. 

Hopefully this information is useful as you plan things out.

Mike

Paul Mathieu

unread,
Jan 22, 2013, 5:23:39 PM1/22/13
to ros-s...@googlegroups.com
Thanks for the information.
Actually, I am thinking about cross-compiling ROS for ARM on our actual build machines. This is the preferred solution since it does not involve any hardware change in the building process, only software configuration. By doing so, I would like to make cross compiling ROS for any popular embedded platform an easy task, and provide as many tools and documentation as required.

More to come about that soon.

Paul


--
 
 

mptho...@gmail.com

unread,
Jan 23, 2013, 2:09:35 AM1/23/13
to ros-s...@googlegroups.com
Paul,

I've had pretty good luck cross compiling Linux kernels on Intel based systems in a chroot QEMU environment so it's a reasonable approach.  With this approach you simply create a Raspbian chroot environment on your server and build everything using a the toolchains that already exist and are supported in Raspbian.  If you are not using QEMU and going to be using cross compilers and other build tools that run natively under Intel, you will need to keep the compilers and build tools up to date that target armhf for armv6 -- a non-trivial task as it is a non standard configuration you'll need to create yourself.   The notes to maintain the tools and that others can replicate will be quite extensive.  Another problem is that it's very easy to accidentally link in libraries are compiled with armv7 instructions and thus yield binaries that won't run on the Raspberry Pi and will fail with illegal instructions.

For official Debian packages, the Debian Project generally discourages cross-compilation for a variety of philosophical (and perhaps some practical) reasons, but since the ROS packages are not official Debian supported packages that won't be an issue.  Regardless, I would strongly suggest that the build system should work equally well on both ARM and Intel systems so that natively built packages can be produced by end users if desired.

Mike
Reply all
Reply to author
Forward
0 new messages