Website Under Construction! Stay Tuned!

Software Team

Overview

The software team is responsible for the design and implementation of the software that allows the robot to operate autonomously. The major software components include: Mission Planning, Control Systems, Computer Vision and Sonar Navigation.

Software Design

At the highest level, our software follows a 3 step process:
Perception
Planning
Mission Planner
Controls
Visibility
Localization

Perception

In the perception faze of the pipeline, the robot takes in information about its surroundings to answer the question “Where am I?” There are a number of areas the robot takes information from.

Planning

Once the robot has taken in sensor information and a position estimate is formed. The robot must then answer the question “What should I do?” This is where the mission planner comes in.

Mission Planner

The mission planner monitors the state of the robot and of the props and sets goals to drive the robot. It does not directly control thrusters but rather it sets targets for the control system to reach. For example, the mission planner may see that the robot is at position x=1, y=1, and z=5 (this notation is cumbersome so instead we will refer to positions in this form, (x,y,z) where z increases as the robot goes deeper underwater.) but the prop for the next task is at (5,3,5). The mission planner might then set a goal somewhere near the prop like (4,3,5). Once a goal is set, the mission planner is done. It does not determine the path the robot will take to a goal; that is handled by the robot’s control systems. 

Setting goals is not the only function of the mission planner, it also handles time management. At competition, the robot has half an hour to complete as many tasks as possible. That may sound like a fair amount of time but in actuality it is very limited. Moving from task to task can take ~4 minutes and tasks themselves can take an additional ~2 minutes. If the robot intends to do 5 tasks, then the mission should take ~26 minutes in total. So with this in mind, the robot cannot be allowed to stall at a single task for too long. To account for the time limitation, each goal set by the mission planner has a predetermined timeout. If the timeout is reached and a goal has not been met then the mission planner will move on to the next goal. 

One of the biggest challenges with autonomous robotics is that once you start the robot on a mission you completely lose control. As per the rules of competition, we are not allowed, in any way, to communicate with the robot once it starts. That is why it is important to have a robust mission planner. If there is some sort of failure, the mission planner is there to cut losses and continue on with the mission.

Another Tab Contents

Controls

The controllers on the robot are the processes that convert positional targets provided by the mission planner into thrust efforts over time. They answer the question, “How do I reach my goal?”

Visibility



Second, visibility in water can be limited. Reds, Yellows, and Greens become indistinguishable. So an object that is easy to recognize above water may have its colors muted a little when you look at it up close in clear water. It may have its colors muted more if you look at the object from a distance in clear water. The big issue is that the water in the pool at competition is absolutely not clear and may even be green-ish. If something is hard for you to see, there is no way computer vision will be able to see it. This progression can be seen in the following images. The first two were of a practise target at the Kinsmen diving pool in Edmonton. The last image was of the actual target at competition. Observe how the green target boundaries are almost impossible to make out in the competition image.

Localization

Localization has limitations. The term, “localization,” refers to the robot’s ability to determine its position underwater. Specifically, the issue is how does the robot measure its position (xyz) with respect to some coordinate system? If we were designing a ship or a land robot we would use GPS but unfortunately we do not have that luxury underwater. In the same way that water absorbs visible light as in the previous point, water also absorbs radio waves from orbiting satellites making GPS unusable. So far, the only way that a robot might estimate its position is by measuring acceleration or velocity and integrating. This is not perfect however, because acceleration and velocity sensors can never be perfect and have some error. When position is estimated, that error is transferred into position error. Over time, the position error accumulates and eventually the estimate becomes unusable. Even nuclear submarines have this issue.
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram