Let consider how different distribution options stack up with the respect to these requirements.
1. Within existing projects: one obvious option is to re-factor the software but to keep it within the existing of RSS projects. There are several problems with this approach. The current projects mostly have non-trivial dependencies e.g. communication middleware, which outsiders are understandably reluctant to install for the benefit of “a single useful library”. The interdependencies and dependencies within a large RSS project are often not documented well and have to be decoded by examining the build system. At the end there is a human factor; internal developers working on a library within an RSS project may not even be aware of the outside users and may unintentionally make frequent changes which break compatibility?
2. New modules within existing projects: a clear improvement is to create a new distribution module within an existing project, marked clearly as RSF independent. This imposes a certain discipline on the internal developers while maintaining the same level of control over development of the software. Among likely improvements are reduced number and better documentation of dependencies, a more stable API, and simpler installation.
3. New Projects: another step towards more independent DA code is to create a few stand alone projects dedicated, for instance, to particular types of drivers or algorithms (the OpenSLAM approach). A project separates from any RSS stats clearly the intention of developers to create RSF independent code and gives more assurances to the external users.
4. Common Robotic project: finally instead of each RSS project spinning off its own DA project, the community could agree to create a common repository of RSF independent DA libraries. Among additional advantages of this options are unified installation procedure and excellent accessibility for the end users. One of the attractions of the current all in one RSS projects is that to a certain extent they offer a one stop solution to the end users.
No comments:
Post a Comment