11
$\begingroup$

Is there an operating system for the Raspberry Pi that is specifically made for running robotics applications? Or an operating system whose purpose is to optimized just to run a few specific programs?

I've been working with an Arduino for a while now. As far as efficiency goes, it makes sense to me to just upload a specific set of commands and have the hardware only need to handle that, and not have to worry about running a full fledged operating system. Is something like this possible to do on a Raspberry Pi?

$\endgroup$
7
$\begingroup$

You are asking two different things. 1) Is there a robotics-specific operating system, and 2) Is it possible to do hardware-level control on an R-Pi without messing around with an operating system. This is sort of a false dichotomy, as an operating system is a benefit, not a cost, unless you are severely constrained for processing power.

Microcontrolers (Arduino) are designed to handle time-critical things, and usually only one or two time critical things. They are great for turning wheels, etc. When it comes to high level planning, a high-level language / libraries are very helpful. As are multi-threaded applications, etc. This is where your OS comes in. Without further details about your project, I can't help you decide what is the best fit: Arduino or R-Pi.

To answer 1: Yes, just google around.

To answer 2: Yes, the hardware interfaces IO are available to code API's. But you'll need (want) something like this:

You -> OS -> microcontroller -> hardware.

See This excellent answer

$\endgroup$
  • $\begingroup$ Hi Josh, if you want to link to an answer (or question) it's best to click on the share link below that answer (or question) as these links are permanent. The url you used in your "This excellent answer" link is to the question page and is non-portable, thus it may break if the question title changes. I presume you were referring to this answer instead. $\endgroup$ – Mark Booth Dec 13 '12 at 11:28
4
$\begingroup$

From your question, what you might be interested in is an RTOS for microcontrollers. A very popular one is FreeRTOS, which apparently was ported to Raspberry Pi.

$\endgroup$
0
$\begingroup$

You could use a simplified Linux (without the X-Windowing and other graphics utilities that a robot may not need). Raspian-Lite is one such OS.

Then there are a number of robot frameworks that will run on the Raspberry Pi. They run under the Linux OS.

ROS (the Robot Operating System) is one of the most popular frameworks, but also the most complicated to learn. As Peter Parker learned: With Great Power Comes a Great Learning Curve. :)

ROS is written in C++, but can be accessed in a number of languages including Java and Python.

Gobot. This is a framework written in the language Go. It has a number of sensors and boards that the framework knows about. You can put the main intelligence onto a large computer and use a smaller board with a wireless connection on the robot. Gobot has sister projects (Artoo - uses Ruby, and Cylon.js - uses JavaScript).

Go is a C-like language that is fairly easy to use, created by Google. I think of it as C's BASIC (Go is to C like BASIC is to Fortran). It compiles very quickly.

I am thinking of starting a Rust port of Gobot (Rust is yet another C-like language similar to Go, but it was designed to be as type-safe as possible. Many pointer errors common to C/C++ are caught by the Rust compiler.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.