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).
Originally posted by ahendrix with karma: 47576 on 2018-01-10
This answer was ACCEPTED on the original site
Post score: 3
Comment by gvdhoorn on 2018-01-10:\
t's best not to think of ROS as a single project with hardware requirements
+100 to this.
ROS isn't a monolithic application, and although it seems like a sane enough question, asking whether ROS "can do something" or about its requirements is strange if you start to accept the fact that it's ..
Comment by gvdhoorn on 2018-01-10:
.. essentially a bunch of regular programs which happen to use networking as their primary form of data input and output.
The question then quickly becomes: "ok, but what are the requirements of those programs?".
And that actually does make sense.
Comment by saurabh on 2018-08-29:
@gvdhoorn after all the development has been done, is it possible to include all the dependencies and our own code in a single executable and then port it to an embedded platform.
If so, can you please provide some suitable link.
Comment by gvdhoorn on 2018-08-29:
re: single executable: perhaps, with a lot of work, but it will completely depend on what dependencies your application has.
If you're looking for a scalable solution for deployment to embedded platforms, look at bmwcarit/meta-ros.