After each task, there are these "skateboard" markers that are intended to help guide you to the next task. Our submarine needs to be able to determine which direction these skateboard markers are pointing in as it will immensely assist the autonomy of the sub. This issue is focused on developing some sort of algorithm that will take data from our sensors and determine the direction of the skateboard.
Functional Requirements
This issue is focused on determining the direction of the skateboard. The function requirements are as follows:
The skateboard in sim should follow the same dimensions as per indicated in handbook
For now, you can assume that the skateboard is relatively close to you. In other words, you do not need to search for the skateboard
A ROS2 Node prints the direction of the skateboard, where 0 degrees means that the marker is pointing straight, -90 degrees means its pointing to the left, 90 degrees means its pointing to the right.
Relveant ROS Topics
/pontus/camera_1/image_raw : contaisn the RGB image feed from the bottom facing camera
/pontus/sonar_0 : contains a LaserScan representing the data coming from the Sonoptix
Add the skateboard to sim, you can either look online to see if anyone has a gazebo model for the skateboard already, or you can look at how the gate task was inserted into the sim. You do not have to have the pvc pipes, you can just have the flat skateboard in sim.
Use some sort of color filtering to detect the skateboard, then determine the direction based on that
Use the Sonoptix to see if it can determine the location
Create a YOLO model to make it more robust
Testing
To test your code, you can run your code against the sub simulation. Running the simulation will also be very useful to see what the output of certain topics are, such as the camera, and how publishing to certain topics affects the sub. To run the simulation:
First start the docker image. Ensure that the docker application is running. Then go to the directory where your MRG-Docker is located. Run
./session.sh
To see the display, open up localhost:6080 in your browser.
Go to your workspace directory and build your project.
Overview
Image taken from: Robosub 2024 Handbook
After each task, there are these "skateboard" markers that are intended to help guide you to the next task. Our submarine needs to be able to determine which direction these skateboard markers are pointing in as it will immensely assist the autonomy of the sub. This issue is focused on developing some sort of algorithm that will take data from our sensors and determine the direction of the skateboard.
Functional Requirements
This issue is focused on determining the direction of the skateboard. The function requirements are as follows:
Relveant ROS Topics
Implementation Suggestion
Your code should go in pontus_perception/pontus_perception
Testing
To test your code, you can run your code against the sub simulation. Running the simulation will also be very useful to see what the output of certain topics are, such as the camera, and how publishing to certain topics affects the sub. To run the simulation:
First start the docker image. Ensure that the docker application is running. Then go to the directory where your MRG-Docker is located. Run
To see the display, open up
localhost:6080
in your browser.Go to your workspace directory and build your project.
Start the simulation:
And then in another terminal you can run your code: