gt-marine-robotics-group / Pontus

The GT Marine Robotics Group's software for RoboSub.
1 stars 0 forks source link

Skateboard Marker #47

Open Jeff300fang opened 2 months ago

Jeff300fang commented 2 months ago

Overview

image 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

  1. 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.
  2. Use some sort of color filtering to detect the skateboard, then determine the direction based on that
  3. Use the Sonoptix to see if it can determine the location
  4. 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.

 colcon build
 source install/setup.bash

Start the simulation:

 ros2 launch pontus_bringup odom_simulation.launch.py

And then in another terminal you can run your code:

 ros2 run pontus_perception INSER_YOUR_NODE_HERE