Each RSS recently is a self contained universe concerned with all aspects of building robotic systems. The observation is each RSS project contains a mix of three types of software:
1. DA (Driver and Algorithm Implementations).
2. CM (Communication Middleware).
3. RSF (Robotic Software Framework).
Most RSS projects contain a certain modularity of element, either at the level of run time components or as a plug in device driver architecture. The way in which these modules are defined, implemented and operated is captured in the RSF definition. The RSF style defines an individual RSS project more than anything else. Because of this, the code of RSF is not attractive in terms of reuse. This category includes the tool required to operate a robotic system, e.g. logging, visualization, simulation etc, in addition to the actual frame code. These tools are tied intimately to the RSF implementation and can not be reused across projects by necessity.
All reviewed projects are distributed and use some communication middleware, either general purpose off the shelf or custom. The custom communication libraries tend not to be reusable because they are coupled tightly to the RSF. The general purpose middleware, while highly reusable is used typically by the robotic community rather than maintained or written by it.
At the end, there is the part of the source code which encapsulates the domain knowledge of robotics. The two main categories of this software types are hardware drivers, i.e. for actuators and sensors, and algorithm implementations, i.e. algorithm for mapping, path planning, localization, etc. the critical property of this software category is that the underlying concept, algorithm specification and hardware protocols, are independent from software module definition and inter module communication.
Finally, we will argue that RSF independent DA code has the highest reuse value and we will examine its role in improving reuse between the RSS projects.
No comments:
Post a Comment