Skip to content

Modules description

Manos Tsardoulias edited this page Nov 21, 2015 · 3 revisions

##Files and structure

The autonomous_systems_architectures repository contains one ROS package, named autonomous_exploration. There, the following files and folders exist:

  • config/autonomous_expl.yaml: Contains several configurations. You will change some of them during the challenges
  • launch: Contains several ROS launchers (each of them launches one or more processes). These are:
    • crsm.launch: Launches the CRSM SLAM for mapping
    • stdr.launch: Launches the STDR Simulator with a map and a robot in it
    • rviz.launch: Launches rviz, a ROS visualization tool. There you can see the robot, the created paths, the subgoals, as well as the map and the coverage field
    • exploration.launch: Launches everything
    • all_except_exploration.launch: Launches everything except the autonomous_exploration node (foro initialization purposes)
    • exploration_only.launch: Launches only the autonomous_exploration node (after all the others)
  • rviz/config.rviz: Configuration file for the visualization
  • CMakeLists.txt: The makefile
  • package.xml: ROS-specific configuration file
  • src: The sources folder. There we have:
    • main.py: The code entrance. Creates a SpeedsAssignment object
    • speeds_assignment.py: Class for assigning velocities to the robot. You can set speeds in various ways, which will be described in the challenges. Contains a laser_data_aggregator, sonar_data_aggrerator and a navigator
    • laser_data_aggregator.py: Class for reading the distance data from the simulated LRF
    • sonar_data_aggregator.py: Class for reading the distance data from the 5 sonars the robot is equipped with
    • navigation.py: Implements basic navigation. Selects a target via a target_selection object, creates a path using a path_planning object, calculates the required velocities for the path traversal and keeps track of the robot pose. Also contains an object of robot_perception.
    • robot_perception.py: Reads the occupancy grid map from the CRSM SLAM, as well as the robot pose. Stores the robot trajectory and the creates the coverage field.
    • path_planning.py: Creates a path in the occupancy grid map, having as input the robot pose, the selected target and the map
    • target_selection.py: Oughts to select the best next target, having as input the robot pose, the map and the coverage field

The files' structure (by imports) follows:

                       +-------+
                       |main.py|
                       +---+---+
                           ^
                           |
                           |
                  +--------+--------+               +--------------+
     +------------>speeds_assignment+-------------->+STDR Simulator|
     |            +--------+-------++               +--+-------+---+
     |                     ^       ^                   |       |
     |                     |       |                   |       |
     |                     |       |                   |       |
     |                     |      ++-------------------v+      |
+----+-----+               |      |sonar_data_aggregator|      |
|navigation|               |      +---------------------+      |
+----+-----+               |                                   |
     |                  +--+------------------+                |
     |                  |laser_data_aggregator<----------------+
     |                  +---------------------+
     |
     |
     |
     |             +----------------+                +---------+
     +------------->robot_perception<----------------+CRSM SLAM|
                   +---+---------+--+                +---------+
                       |         |
                       |         |
                       |         |
                       |         |
   +-------------+     |       +-v--------------+
   |path_planning<-----+       |target_selection|
   +-------------+             +----------------+
Clone this wiki locally