gt-marine-robotics-group / Pontus

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

Pre-qual Vertical Marker Task #49

Open Jeff300fang opened 1 month ago

Jeff300fang commented 1 month ago

Overview

image

Before the competition actually happens, we can attempt the pre-qual task that will put us straight into semi finals. The task is shown above. Currently, the logic to pass through the gate is under development. However, we can still develop the logic for this task independently of the other issue. Currently, we have a barebone framework and an attempt at the vertical marker task in this file: pontus_autonomy/pontus_autonomy/tasks/vertical_marker_task.py. However, this was created last year, where we only had a forward-facing camera. Now our sub contains two sonars: a Ping360 and Sonoptix, which should provide more information that will allow us to more confidently accomplish the vertical marker task. The main goal of this issue is to use all of these sensors to accomplish this task.

Functional Requirements

This issue is focused on detecting the vertical marker and passing around it. The functional requirements are as follows:

Relevant ROS topics

Relevant ROS Topics that may be useful to publish/subscribe to

Implementation

  1. Determine the location of the vertical marker using the ping360 + camera + sonoptix
  2. Head towards the vertical marker while attempting to keep the vertical marker in view
  3. When the vertical marker is roughly 1m away, go around the vertical marker by going around the right side
  4. Keep on going around the vertical marker until our orientation is roughly 180 degrees from where we started and/or the gate is in view again
  5. Align ourselves back with the gate

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:

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_autonomy YOUR_NODE_HERE