Difference between revisions of "Robotic Software Development"

From The BABEL Development Site
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
−
As the robotics realm itself, robotic software has continually evolved, running in parallel to the
+
== On Robotic Software Development ==
−
hardware and software technologies available at the moment. For summarizing the main trends, we
+
 
−
identify here three different stages in time, each of them characterized by a particular software issue
+
* [[Introduction]]
−
that received certain effort from the robotics research community. Nevertheless, these stages should
+
 
−
be understood as a convenient discretization of a continuous process, thus it is not rare that the
+
* [[Historic Evolution]]
−
works mentioned here can be considered to belong to more than one phase.
+
 
−
The first stage we can set in the evolution of robotic software, that we could call raw robotic
+
* [[Robotics Software Development Systems Review]]
−
programming, covers from the lately sixties until the late eighties of the XX century. In that period
 
−
robotics programming was limited to solutions based on direct hardware implementation of
 
−
algorithms [4] or ad-hoc programming of concrete hardware platforms [23], [32]. Most of the
 
−
development of programming languages for robots was focused during that period on industrial
 
−
manipulators [25], although those languages were of a very low level (close to assembler).
 
−
In a second stage, that we could call middleware robotic programming and extends around the
 
−
early nineties, the goal for the robotic software developers shifted to provide pre-defined software
 
−
platforms to control the physical devices of the robot (namely, actuators and sensors); in spite of
 
−
this software being tightly coupled to specific hardware, it alleviated the, until the moment, heavy
 
−
task of programming robots. In this period, some robotic software was in fact real-time operative
 
−
systems, like ALBATROSS [36], Harmony [20], or Chimera II [33]. But this stage do not stopped
 
−
there: these platforms led to the ability of a more complex processing, and, accordingly, the notion
 
−
of robotic control architecture (a set of software elements or modules that worked together in order
 
−
to achieve a robotic task) also received attention by the robotics community2. So, the first years of
 
−
the 90's decade also offered interesting architectures like TCA [29] or NASREM [1]. Since then,
 
−
architecture solutions were continuously released to the robotics arena: e.g., new robotics fields (for
 
−
example, multirobots) demand their own architectural approaches ([24]).
 
−
Finally, we can distinguish a last stage of robotics software that embraces from the mid nineties
 
−
to present, and can be called robotics software engineering. The key point at this stage is that some
 
−
SE aspects are considered when programming robots, mainly due to the complexity of robotic
 
−
applications. Now, the goal is not to produce a closed or static architecture, but a framework that
 
−
allows the developer to produce the architectural solution he/she may need in his/her particular
 
−
situation3. Examples of free, commercial, and/or academical frameworks are ORCCADD [30],
 
−
Cimetrix's CODE [7], RTI's ControlShell [28], GeNoM [16], NEXUS [9] (a previous instance of our
 
−
current BABEL development system), OSACA [31], OROCOS [35], Player/Stage [26], CARMEN
 
−
[37], MARIE [38], RobotFlow [25], CLARAty [13], or Microsoft Robotics Studio [22]. Different
 
−
SE paradigms -like object-oriented programming, software lifecycle, software validation,
 
−
reusability, CASE tools, or automatic code generation- are being progressively included into these
 
−
frameworks. However, not all of these focus on SE in the same manner or intensity. In particular, it
 
−
is very common that they are not able to deal with heterogeneity in a desirable way, which is our
 
−
aim with BABEL.
 

Latest revision as of 07:03, 16 May 2008