how to: Setting up ROS on RaspberryPi [closed]
All,
This is just a small how to re: getting ROS to work on the Raspberry Pi.
- Pi Setup
I'm not going to go into a load of details here - but for me the main thing was to boot the Pi with as much memory as possible. With that in mind set the arm224_start.elf to be your start.elf file.
Also ensure you have a reasonable amount of swap space available (The build of ROS is on the Pi itself - I don't have a x-compiler to hand)
- Building ROS
This is largely following the Debian Instruction here With a few notable exceptions:
- Update the turtlesim.cpp file to the attached one - else compilation problems (static_cast<> issue around std::max())
- Use just make and not "make -j8" - it's a single core machine and all 8 cpp threads will do it hang everything on waiting on IO - trust me I tried - 8 hrs later and still nothing... This step takes somewhere between 1-2 hrs. Not quite sure I left it to it.
- Before Section 1.5 (Build Higher Level Tools) type
export ROS_OS_OVERRIDE=debian:squeeze
is it mentioned later in the install. I found you need it sooner.
Then Finish off up to 1.5's "rosdep install -a". At this time having problems getting past this. However this are the higher level fucntions that might be too much for the Pi.
Once that's done you should be able to run ROS. I've attached a small screen shot of rxconsole; turtlesim etc with a move command being published (from the tutorials).
A word of expectation it's slow. I expect the graphics drivers will have much to do with it (which are due to be changed to take advantage of the GPU).
But what the heck it's cool (tm) :)
Hope this is of some use/help
Mark
PS - If there is some where this how to would be better suited let me know/feel free to move it there.
turtle.cpp change the extension to cpp
Great job! Will definitely try as soon as my Pi arrives. Even when it is slow, do you think it is usable when you distribute ROS-nodes over several Raspberry Pis?
Yep that's what I'm hoping. As yet (As you'll see below 1.5 is proving troublesome) but I think the lower level stuff - distros will work well. Currently I'm slightly side tracked hoping to install rosjava on it too
ok, I was expecting that. I hope that it is possible to run a full ROS installation on a strong master but have several Pi slaves with only low level functionality that take care of certain tasks only (like a Pi that does only arm navigation in a more complex robot that runs a quadcore master or so)
TilScout: Stick with Electric for now. I had ZERO luck getting Fuerte installed, but Electric went smoothly. Also, consider running Raspbian as the OS and doing the 800Mhz OC. That plus running OS off external drive makes things run a LOT smoother. You should be able to do what you're wanting to.
@TillScout - yep I think that's a sound plan @mkopack lower level stuff should be working okay - good to hear Electric is a stable install! - rviz working? :)
@TilScout - yep I think that's a sound plan
didn't try Rviz. As you said, everything is rather SLOOOOOOOW. I need to hook up an external USB drive and set up using that as that seems to make the whole Rpi run a LOT faster. on the Plus side, RPi #3 arrived today :) so I should be able to set all 3 up and make them a nice little ROS cluster.
Oh, and no dice on using Raspbian with Electric. Electric insists on having libboost1.42-dev-all and that doesn't exist for Raspbian. installing 1.49 (which Raspbian has) wouldn't get me past the error so I gave up for now.