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

The short answer is that it depends on what you want to do.

It's best not to think of ROS as a single project with hardware requirements. It's better to think of it as a collection of individual packages, either with their own hardware requirements, and often those hardware requirements vary significantly based on your application.

The ROS middleware and the talker tutorials can be run on just about anything that will run a Linux kernel.

Each of the hardware driver packages has its own interface requirements for the hardware that it supports, and that is usually listed on the ROS wiki page for that hardware. These drivers usually have minimal CPU and memory requirements.

For ROS algorithms, the hardware requirements can be very difficult to determine because they are very dependent on the parameter settings. For example, the performance and memory usage of the move_base package scales with the square of the local map size, and scales linearly with the update rate. There are simply too many parameters to characterize the performance space, and the choice of parameters like map size and resolution often depends on the size, speed, and sensing capability of your robot, and the size of your operating environment. At best, you can look for similar robots running the same ROS packages that you're interested in, and look or ask for information about their hardware and parameters.

In general, I've seen a few groups running SLAM with a Raspberry Pi 3 mounted on a Neato. It seems to work well, but they're using lower resolutions, low speeds and low update rates.

If you're going for an ARM processor, choose one that has support for one of the Ubuntu versions that is supported by ROS. This will allow you to install binary ROS packages instead of building ROS from source on your target platform. (Stay away from the original Raspberry Pi; they use an ARMv6 instruction instead of the more modern ARMv7 that is supported by Ubuntu and Debian, and it makes them that much harder to support).