Difference between revisions of "Repository Template"

From AIRWiki
Jump to: navigation, search
m
m
Line 1: Line 1:
 +
=Generalities=
 
This page illustrate the structure of the AIRLab Subversion repository of source code for robots. The repository is subdivided into two separate sections:
 
This page illustrate the structure of the AIRLab Subversion repository of source code for robots. The repository is subdivided into two separate sections:
 
#'''generic_libraries''' containing software packages that implement single robot functionalities in the form of libraries for general use. Each library must be a stand-alone package with its own Makefile, to be compiled separately.
 
#'''generic_libraries''' containing software packages that implement single robot functionalities in the form of libraries for general use. Each library must be a stand-alone package with its own Makefile, to be compiled separately.
 
#'''specific_modules''', containing software packages that are dedicated to specific robots (or other devices). Each package can take one of the following forms:
 
#'''specific_modules''', containing software packages that are dedicated to specific robots (or other devices). Each package can take one of the following forms:
##a complete ''[Ros Howto | ROS] package'' implementing all or part of the functionalities of the device;
+
##a complete ''[Ros Howto | ROS] package'' implementing all or part of the functionalities of the device, able to operate on its own as a ROS system;
##a single ''Ros Howto | ROS node'' implementing one of the functionalities of the device;
+
##a single ''Ros Howto | ROS node'' implementing one of the functionalities of the device, ready for integration into larger ROS systems but not able to operate alone as a ROS system;
##a special-purpose ''software library'' which is dedicated to the device, the function of which is too specialized for inclusion in the ''generic_libraries'' section of the repository.
+
##a special-purpose ''software library'' which is dedicated to the device, the function of which is too specialized for inclusion in the ''generic_libraries'' section of the repository, ''along with a wrapper in the form of a ROS node or package, which must be the '''only''' method used to access the library''.
  
 +
=Design criteria=
 +
Whoever develops software for AIRLab must comply with the following criteria for software design and inclusion in the Subversion repository.
 +
*
 +
 +
 +
=Structure of the repository=
 +
The following is a template for the structure of the AIRLab Subversion source code repository. Elements in ''italic'' are examples (some of them are actual software modules developed in AIRLab, other are placeholders for "legacy" packages which do not comply with the repository's structure and will be replaced with newer versions and/or newer software).
  
 
*'''generic_libraries'''
 
*'''generic_libraries'''
**play_media
 
***''media_library1''
 
 
**behavior
 
**behavior
 
**''brian''
 
**''brian''
**safety
 
***''radio_remote''
 
 
**fuzzy
 
**fuzzy
 
***''fuzzy_library1''
 
***''fuzzy_library1''
**multi-robot
 
***''scare''
 
 
**obstacle
 
**obstacle
 
***''fuzzy_library1''
 
***''fuzzy_library1''
Line 24: Line 26:
 
**motor_control
 
**motor_control
 
***''logging_library1''
 
***''logging_library1''
 +
**multi-robot
 +
***''scare''
 
**odometry
 
**odometry
 
***''odometry_library1''
 
***''odometry_library1''
 
**planning
 
**planning
 
***''spike''
 
***''spike''
 +
**play_media
 +
***''media_library1''
 
**pose
 
**pose
 
***''ARToolKit-based_library1''
 
***''ARToolKit-based_library1''
 +
**safety
 +
***''radio_remote''
 
**sensor
 
**sensor
 
***laser
 
***laser

Revision as of 15:07, 3 April 2013

Generalities

This page illustrate the structure of the AIRLab Subversion repository of source code for robots. The repository is subdivided into two separate sections:

  1. generic_libraries containing software packages that implement single robot functionalities in the form of libraries for general use. Each library must be a stand-alone package with its own Makefile, to be compiled separately.
  2. specific_modules, containing software packages that are dedicated to specific robots (or other devices). Each package can take one of the following forms:
    1. a complete [Ros Howto | ROS] package implementing all or part of the functionalities of the device, able to operate on its own as a ROS system;
    2. a single Ros Howto | ROS node implementing one of the functionalities of the device, ready for integration into larger ROS systems but not able to operate alone as a ROS system;
    3. a special-purpose software library which is dedicated to the device, the function of which is too specialized for inclusion in the generic_libraries section of the repository, along with a wrapper in the form of a ROS node or package, which must be the only method used to access the library.

Design criteria

Whoever develops software for AIRLab must comply with the following criteria for software design and inclusion in the Subversion repository.


Structure of the repository

The following is a template for the structure of the AIRLab Subversion source code repository. Elements in italic are examples (some of them are actual software modules developed in AIRLab, other are placeholders for "legacy" packages which do not comply with the repository's structure and will be replaced with newer versions and/or newer software).

  • generic_libraries
    • behavior
    • brian
    • fuzzy
      • fuzzy_library1
    • obstacle
      • fuzzy_library1
    • logging
      • logging_library1
    • motor_control
      • logging_library1
    • multi-robot
      • scare
    • odometry
      • odometry_library1
    • planning
      • spike
    • play_media
      • media_library1
    • pose
      • ARToolKit-based_library1
    • safety
      • radio_remote
    • sensor
      • laser
        • hokuyo
      • sonar
        • AIRLab_sonar_board
      • vision
        • AIRLabProsilica
  • specific_modules
    • wheelchair
    • Triskar2