Image credit: Shutterstock / cobalt88
Embedded systems are hardware and software devices that are designed to perform a specific function and generally don’t allow users to execute their own programs. Embedded systems can be implemented in robots, but time factors, size and cost have limited their use so far. A team of researchers from Italy has now designed an inexpensive real-time kernel, known as Yartek, which is suitable for embedded systems in nonvisual robotic sensors.
An embedded systems goal is to control a system, with a robot being one such example. Embedded systems generally require their operation to perform under a real-time operating processor (or controller) with a low computational power.
A group of Italian researchers has developed a Kernel which not only presents itself in real-time, but is also flexible, has low overheads and a low footprint for embedded applications. The researchers also document an embedded application that the Kernel has been used in.
The motivation behind the project was borne from an inability to find an open-source real-time operating system, which was stable and suited their requirements. The specific requirements that the researchers were looking is a real-time operation with non-preemptive scheduling, deferred interrupt mechanism, low footprint, and low overheads, that could be implemented as real-time algorithms for nonvisual robotic sensors- be it as an infrared, tactile/force, inertial devices or ultrasonic proximity sensor.
Non-preemptive scheduling has been found to be suitable for many nonvisual sensors as these sensors use time of flight measurements to reduce the computational power overheads and communicate with external devices.
The kernel Yartek (yet another real time embedded kernel) and its source code are freely available online and was developed by modifying the scheduling module of another small operating system. Yartek is suitable for running on microcontrollers due to its low resource requirement, and the utilisation of non-preemptive scheduling leads to a cheaper utilisation of computational power. This is in addition to other benefits, such as an accurate response analysis, ease of implementation, no synchronisation overhead and reduced stack memory requirements.
Yartek was produced to build small, autonomous embedded systems with the required processing power for nonvisual sensors in robots, without overloading the main processor of the robot- as the computational power is limited in a mobile system. Specifically, Yartek provides robots with an environmental map which is obtained through ultrasonic sensors.
Yartek is based on a contingent memory and allows for the creation and running of threads with a fast context switch. The Kernel also allows for dynamic memory management and the threads can be periodically scheduled in both real-time and non-real-time.
The kernel was developed on a Coldfire microcontroller, specifically a MCF5282 microcontroller. The usability of the system is enhanced through the incorporation of a random-access memory (RAM) disk. The implementation of the RAM-disk provides a file system that allows the storing of temporary data and increases the amount of real-time applications that the kernel can run.
The kernel implements a non-preemptive earliest-deadline-first (EDF) scheduling to schedule the real-time tasks. In addition to this, the non-real-time tasks are scheduled in the background through a deferred interrupt mechanism, where the interrupts are served by non-real-time aperiodic tasks.
In addition, the kernel provides many other features to the user, including a thread management mechanism, dynamic memory management using first-fit, availability of a serial port driver which allows the connection of an external terminal for data exchange and system monitoring purposes.
Unlike other systems, Yartek can have its code rewritten and be used for both pre-emptive and non-preemptive schedules, but any user attempting to use a pre-emptive schedule will have to modify and input more operations than a user who uses non-preemptive scheduling.
The researchers are now developing other embedded systems for nonvisual sensors, namely inertial and infrared, for implementation into mobile robots. If anybody wishes to use Yartek, the source code is freely available online, is written in C language and the executable image is less than 120 kilobytes.
You can read the entire article here.
This information has been sourced, reviewed and adapted from materials provided by SpingerOpen.