-
Notifications
You must be signed in to change notification settings - Fork 1
Repositories
A modular software structure has been created as can be viewed in Figure 1. This structure is made up of metapackages (sets of packages grouped in the same place) and package alone.
Figure 1: Doogie Mouse package organization.
Below is described what is the purpose of each package within these metapackages and their corresponding repository link. In the README page of each repository there is a better explanation about the package usage.
doogie_welcome: Contains executables for checking the operation of the ROS framework in the installation step
- doogie_bringup: Groups configuration and startup files from all sub-robot systems. It also contains the executables responsible for the actuation of the Mobile platform
- doogie_drivers: Comprises executables and libraries of robot hardware components (motor, encoder and infrared sensors)
- doogie_gazebo: Integrate all configuration files needed to run the simulation environment
- doogie_rviz: Comprise code, configuration and launch files to use rviz tool to debug doogie robot behaviors
- doogie_algorithms: Contains the intelligence algorithms that are used by the robot in maze solving
- doogie_control: Has configuration and process startup files for robot control
- doogie_core: Comprise exclusive doogie robot C++ libraries common to other robot packages
- doogie_description: Includes files with description of the robot model
- doogie_localization: Provides localization capability for Doogie Robot
- doogie_msgs: It comprises data structures (.msg and .action) created exclusively for Doogie Mouse
- doogie_navigation: Covers the processes used for localization and robot navigation inside the maze. It also provides APIs to allow users to implement their own maze solve strategy
- doogie_perception: Comprehend the node used to detect walls in the maze
Although all of these packages were created, not all of them are used in the operation of the mobile platform. As some packages are only used for robot simulation, there is no need for its use within the platform. Thus, the packages were organized according to their final purpose: simulation environment, the physical robot or both. Figure 2 demonstrates how these packages relate to each other. The doogie_base metapackage is common to both the simulation and the physical robot, however, it is of no use if not used within these two contexts. The doogie_robot metapackage has all the essential packages to work. However, the physical robot has a direct dependence on the doogie_base metapackage. In opposition is the doogie_simulator metapackage valid only for use in the simulation environment, but like the doogie_robot, it depends on the doogie_base to work.
Figure 2: Doogie Mouse metapackage dependency relation.