-
Notifications
You must be signed in to change notification settings - Fork 0
Understanding the Structure
The structure of our project is quite simple. We have separated high-level tasks as individual ROS packages. Each package contains the nodes necessary to handle the assigned task. Below are the list of packages and their tasks. Each will have a link to another wiki page that contains the information about each package, what scripts they have and how to use them.
In order to understand the structure, one must understand how we define a node and its purpose. In the same way, a function should complete one action or query, a node should complete a single task and handle everything related to that task. Every node should follow the same general steps:
- Get data (either from a sensor or another node)
- Process that data (this could vary widely in complexity)
- Send the data via a publisher.
Every node should have a single main script to call that clearly follows these steps.
For example, a GPS node would handle all things regarding GPS. Its main script would call modules to get the sensor data, process it, and then publish it for some other node (eg pathfinding). This could obviously be broken into many other functions as the tasks for GPS grows, but the core should remain the same. The goal is modularity and exclusivity of tasks.
This package contains all the custom messages we use in our system.
Contains everything we need to read and process our sensor information.