ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Good bare-bone or industrial PC to run ROS.

asked 2018-06-23 13:46:10 -0500

machinekoder gravatar image

updated 2018-06-24 11:12:04 -0500

What are good bare-bone PCs to run ROS? I'm looking for something that is capable of running a nice GUI and some basic CV. Ideally, it should also have good RT performance.

I found the fitlet2, which has an Atom CPU, but I'm unsure if this little PC has adequate CV performance for some basic image recognition.

UPDATE: more specific requirements:

  • I indeed mean real-time as in soft real-time. No human will come to harm when deadlines are missed, but the performance of the system may degrade. For this system, we use Debian with a PREEMPT RT kernel. Machinekit works as a low-level hardware interface. The most important criteria here is jitter.
  • There are quite big differences between CPUs when it comes RT performance. Simple single core CPUs usually have the best RT performance. See https://www.osadl.org/Hardware-overview.qa-farm-hardware.0.html
    • The application will run for long time periods.
    • The application will not be used in extreme conditions (heat, vibrations).
    • As meantioned RAM is cheap these days, so I don't think this will limit the selection.
    • For the GUI I need OpenGL support, any modern CPU including integrated graphics should do. However, some graphics card degrade RT performance.
    • I don't know the exact CV application yet. However, the CPU/GPU should be capable of doing live image and tag recognition via OpenCV. Since it should be future-application proof, I prefer to choose something that covers most cases or is extensible.
edit retag flag offensive close merge delete

Comments

@machinekoder: it might have been informative to provide some context with your question. ROS Answers is more a beginners forum, and we get this sort of question a lot. Many times 'real-time' is used in the sense of "fast enough", so the response by @ahendrix is understandable.

gvdhoorn gravatar image gvdhoorn  ( 2018-06-24 05:11:07 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2018-06-23 15:28:17 -0500

ahendrix gravatar image

As you're phrased it, this is a question with many very subjective answers. There are so many good industrial PCs out there that it's hard to make any recommendation.

  • Realtime performance (the ability to run recurring tasks at precise intervals or respond to incoming events with low latency) comes from the operating system and your software, not the hardware. RT means something different to everyone, so it's basically useless as a requirement. Instead, I suggest you define the timing requirements that you need in order for your software to run successfully.
  • GUI and CV are also very subjective. If you have a sample version of your application, I suggest you benchmark it on a desktop CPU from a similar manufacturer, and measure the algorithm's runtime, cycle time and overall CPU usage. From there, you should be able to multiply the test CPU's speed by the CPU usage to determine how fast your final CPU needs to be. Add 10-50% to give yourself some margin for error and some room for your software to grow and change.
  • Perform a similar analysis for memory usage. RAM is generally cheap, so it's easy to give yourself plenty of overhead.
  • If you don't have something that is already written, try to find a similar project, and benchmark it.
  • Consider if you will be operating in a high-temperature or high-vibration environment. This generally requires computers that are built to withstand these conditions.
  • Consider if your computer will be running for extended periods of time or in a safety-critical system. If either of these is true, you probably need ECC memory.

Once you have answers to all of these question, you'll have a rough estimate of the number of CPU cores, clock speed, memory, and other requirements. This will help you narrow in on the industrial computer that fits your needs.

If you don't have or can't get answers for these, I'd suggest a computer with a high clock speed and plenty of RAM. Research applications tend to be largely single-threaded and do well on a CPU with good single-threaded performance.

edit flag offensive delete link more

Comments

@ahendrix: I believe @machinekoder has quite some experience with real-time and what it means. He's a contributor to Machinekit which is heavily RT dependent as well.

gvdhoorn gravatar image gvdhoorn  ( 2018-06-24 05:10:16 -0500 )edit

Realtime performance [..] comes from the operating system and your software, not the hardware.

For completeness: the hw is actually really important as well. Especially the later Intel CPUs have introduced all sorts of features (SMI, other embedded management features) that can have a ..

gvdhoorn gravatar image gvdhoorn  ( 2018-06-24 05:12:27 -0500 )edit

.. big impact on the real-time-ness that can be achieved with platforms based on those CPUs. Many times these features cannot even be disabled without some serious hacking. Intel i965 graphic cards are notorious as well.

Next to that are NICs for which real-time capable drivers must exist.

gvdhoorn gravatar image gvdhoorn  ( 2018-06-24 05:13:55 -0500 )edit

You are right, I was too unspecific with my question.

machinekoder gravatar image machinekoder  ( 2018-06-24 10:57:59 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2018-06-23 13:46:10 -0500

Seen: 500 times

Last updated: Jun 24 '18