SEGA divides its components into a few layers. Namely, a layer that manages all the communication with the Simulation, a low-level layer that manages and processes sensor data and a high level layer which mainly focusses on using the processed sensor data to create complex structures that can be used for controlling the robot. (Think of calculation distances to specific objects and approximating our current position on our map) The final layer is the actual AI component, that glues the uses the high level layer to make decisions on controlling the robot movement and actions that it will take.
All components in these layers are nodes in a distributed system; each node can run on a different machine.
The components in SEGA are:
The simulation component is more or less a granted component, and is provided by USARSim. It is used to control the robot. We read and write data to the simulation. Sensor data is acquired through reading, moving the robot is aquired through writing data over the network.
The Networking component relays messages from the simulation to other components.
Low level components; this layer contains sensors plus the steering component.
The Wheels component is used to control the robot. It uses the USAR Protocol to control movement of the robot.
The robot has 8 Sonar sensors, all of which returns a distance to the object that reflect the sound.
Each of these distances are turned into 2d points by our sonar processor.
The robot has a Laser sensor. The laser sensor returns 180 distances, each associated with a different angle.
These distances are also turned into 2d points. (Just like the Sonar)
The Odometer returns the x and y coordinates the robot has ridden, plus the angle of the robot.
This information is incredibly useful when creating the map, as it is essential to know what angle you are facing.
High level components;
- Path Planner
- Position
- Map