Basic ENvironment for developing Robotic software

A robotic software environment tested in the real autonomous mini-vehicle BENDER 2.0, designed for educational purposes, is presented in this paper. Future Computer Science engineers have used this framework to learn Concurrent Programming techniques on a real system. The successful results obtained show the significance of using real environments in practicals, in order to acquire the necessary abilities in the field of computing. Both the mechanical assembly of the mini-robot and the development of software components have been carried out taking into account its educational purpose. In order to implement concurrent programs, the YARP middleware library has been used together with POSIX threads, mutex objects and condition variables, in a Linux-based environment.

Many future Computer Science engineers will become members of heterogeneous teams where teammates will have to collaborate contributing with their expertise to solve complex problems emerged from the industrial world. In particular, Mechatronics Engineering is an emergent area of knowledge where engineers trained in Mechanics, Physics, Mathematics, Computing, Industrial Design and many other fields, will be needed to cooperate in complex projects [1]. Therefore, Computer Science engineers must gain experience designing real time and distributed software as soon as possible. In order to achieve this goal, during the academic year 2006- 2007, the University of Huelva funded the teaching innovation project: “Concurrent Programming workshop: Applying parallel algorithms in a real environment”. Concurrent Programming (a second year subject in the Computer Science syllabus at the University of Huelva), was selected for this project. Its main issues are:  Concurrent programming techniques in a shared memory framework (using POSIX threads, mutex objects and condition variables to implement the behaviour of monitors).  Distributed programming methods for distributed memory environments (middleware design and use). Virtual laboratories has been used in Robotics and Automation subjects in order to simulate real industrial control systems, mobile robots and manipulators . In these cases, the purpose of the practical works is generally the design and implemention of the studied control strategies in theory . However, Concurrent Programming is the subject where Computer Science students learn methods and techniques related to parallel and distributed programming, and these techniques can be applied to solve very different problems. In the past, practical works were tested in a simulated framework using several well-known tools, for example, Pascal-FC . In general, typical problems like the Philosophers’ Dinner or the Bounded Buffer problem were solved using these simulation frameworks. Solving these classical problems is appropriated in theorical lessons, however, more realistic practical environments are needed in the laboratory such as electronic commerce applications, images distributed analysis or robotics perception, among others. Therefore, after considering several ideas and taking into account the available funds, a decision was made: to design a low cost general purpose autonomous mini-vehicle, because commercial robotic solutions in stock were too expensive.

Free download research paper