-
Notifications
You must be signed in to change notification settings - Fork 10
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 aSpeedsAssignment
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|
+-------------+ +----------------+
- Installation / setup
- Modules description
- How to execute the code
- Challenge 1 [15 pts]: Obstacle avoidance using the sonars sensors
- Challenge 2 [15 pts]: Obstacle avoidance using the laser sensor
- Challenge 3 [10 pts]: Obstacle avoidance using sonar and laser sensors via a subsumption architecture
- Challenge 4 [10 pts]: Obstacle avoidance using sonar and laser sensors via a motor schema architecture
- Challenge 5 [5 pts]: Publish the robot path
- Challenge 6 [10 pts]: Update the coverage field
- Challenge 7 [15 pts]: Calculate velocities towards path traversing
- Challenge 8 [10 pts]: Calculate velocities towards path traversing, including the sonars and the laser measurements via a subsumption architecture
- Challenge 9 [10 pts]: Calculate velocities towards path traversing, including the sonars and the laser measurements via a motor schema architecture
- Challenge 10 [5 pts]: Improve the subgoal visitation check
- Challenge 11 [10 pts]: Create a smart target selection technique
- Challenge 12 [10 pts]: Improve the A* algorithm's efficiency
- Challenge 13 [up to 25 pts]: Surprise us!