-
Notifications
You must be signed in to change notification settings - Fork 13
Software System Overview
The current picture of our software system (most still under development) has 2 main areas. The first area concerns the basic stability and control of the sub. The second concerns logic for the main competitions. Each of these will interact with either the real robot or a simulation.
The main idea behind ROS is that these systems will be composed of small programs. Each will run independently, and communicate with the other programs by sending messages.
The real robot will have a node running to read each sensor and publish the latest readings. A node will also be running to communicate with and send commands to the thrusters.
These will be simulated by Gazebo when working in simulation
The basics of stability and control, which will also be used by the logic system, include the following:
- Sensors
- State Estimation
- Stabilization Controls
- Thruster Control
As mentioned before, each sensors will have a node which talks to it and publishes information.
Still to be developed, this node will take in information from all of the sensors, and attempt to determine the sub's state (angular and xyz positions, velocities, etc). At this stage, readings will be filtered, combined, etc.
At the moment, control nodes are currently working off of raw sensors readings. We want to replace this by having them work off of the full estimated state.
This currently includes our Depth and Roll-Pitch-Yaw PID controls. This nodes can take set-points, and issue controls to move the sub's state to these points.
Controls are currently published in the form of a Wrench. This is a collection of 3 forces and 3 moments.
The logic system can interact with these by sending commands to change the goal points of each pid controller.
The thruster control system first accumulates all of the Wrench-type commands published throughout the system. These are combined into a single Wrench. The required thruster forces are then calculated to generate this Wrench. These commands are sent to the thrusters.
Still mostly to be done.