This issue outlines the research tasks to be done for the controls team. We should start as soon as we can, and the ideal deadline to have our research done is Early Winter Term 2 (2023).
Research Topics
[ ] The Rudder Controller
Researchers: @eomielan
[ ] The Sail Controller (Wingsail)
Researchers: @Tsuchijo
[ ] The Boat Simulator
Researchers: @DFriend01, @Harvir14
The Rudder Controller
Description and Goal
The rudder controller adjusts the rudder angle according to the desired heading that we wish to sail towards and the type of
turn that we wish to perform. The goal is to describe the rudder angle with respect to inputs like desired heading, wind direction, etc., which can then be converted to some feedback that tells the controller to perform a certain action (i.e. turn the rudder CW or CCW).
Considerations
The types of turns that we will likely consider are tacking, gybing (jibing), and a direct turn.
We will likely reuse most of what we have used for Raye for the rudder controller, but we should still try to see if others have tried a similar method or something different. It may confirm or deny our current beliefs, and we can act according to our findings.
There may be different types of controllers depending on the action we are performing (like tacking or gybing), so be sure to keep an eye out for those. We may want to take advantage of multiple controllers, not just one. This can also apply to different points of sail as well.
The sail controller turns the sail to maximize the amount of wind hitting the sail so that the sailboat can move forwards. The goal is to define a controller such that the wind hitting the sail is maximized.
Considerations
The type of sail that we are using is different from Raye. Instead of using a cloth sail, we are using a wingsail. This may require a different controller than the one we use previously on Raye since the physics of a wingsail are very different.
The boat simulator emulates the environment and the physics of a vessel subject to our controller and local pathfinding. The goal is determine how we can develop such a simulator. There are three main components of the simulator:
The Environment: The open ocean. This will emulate any sensor readings that we get like wind velocity, current velocity, etc.
The Agent: The sailboat. This will emulate the vessel and how it physically responds to both the environment and our controller.
The GUI: The GUI to visualize our simulator.
Considerations
We want to avoid reinventing the wheel as much as possible. It will be important to research existing solutions and if we can potentially integrate that into ROS. This is particularly important for the environment, as it is difficult to simulate in general.
It will most likely be easier to implement the logic for the agent rather than the environment if we are given the physics equations. Then, it just becomes a software engineering problem from there.
We can likely use most of the functionality that ROS provides to implement the GUI if we need to
Purpose
This issue outlines the research tasks to be done for the controls team. We should start as soon as we can, and the ideal deadline to have our research done is Early Winter Term 2 (2023).
Research Topics
The Rudder Controller
Description and Goal
The rudder controller adjusts the rudder angle according to the desired heading that we wish to sail towards and the type of turn that we wish to perform. The goal is to describe the rudder angle with respect to inputs like desired heading, wind direction, etc., which can then be converted to some feedback that tells the controller to perform a certain action (i.e. turn the rudder CW or CCW).
Considerations
Resources
The Sail Controller
Description and Goals
The sail controller turns the sail to maximize the amount of wind hitting the sail so that the sailboat can move forwards. The goal is to define a controller such that the wind hitting the sail is maximized.
Considerations
Resources
The Boat Simulator
Description and Goals
The boat simulator emulates the environment and the physics of a vessel subject to our controller and local pathfinding. The goal is determine how we can develop such a simulator. There are three main components of the simulator:
Considerations
Resources
Confluence
Pages for research notes have been created on Confluence. They are as follows:
There is also a page for some research tips for your reference.