The buoy task comes after the gate task. This task requires our robot to circumnavigate the buoy in a certain direction.
Functional Requirements
This issue is focused on detecting the vertical marker and passing around it. The functional requirements are as follows:
You can assume that we are roughly aligned with the buoy. However, the buoy may be up to 10m away. So don't expect it to be within viewing distance of our camera
The robot must be able to find and navigate to the buoy
The robot must be able to navigate around the buoy clockwise or counter clockwise based on a variable
The robot should not hit the buoy
Relevant ROS topics
Relevant ROS Topics that may be useful to publish/subscribe to
/pontus/odometry : contains the current odometry of the sub, Pose (position + orientation) and Twist (velocity)
/cmd_pos : publishing a pose message to this topic directs the sub to go to that point/orientation
/cmd_vel : publishing a twist message to this topic directs the sub to go a certain velocity
/pontus/camera_0/image_raw : contains the RGB image feed from the front facing camera
/pontus/sonar_1 : contains a LaserScan representing the data coming from the Ping360
/pontus/sonar_0 : contains a LaserScan representing the data coming from the Sonoptix
Implementation
Slowly head straight. The sensor that should catch the buoy first should be the sonoptix. The ping360 may find it as well, but we will just have to see during testing.
Once you get relatively close to the buoy (2m), it should be fairly visible to the camera.
Once you have found the buoy navigate around the buoy based on a variable that will indicate the direction it should go around
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.
Overview
The buoy task comes after the gate task. This task requires our robot to circumnavigate the buoy in a certain direction.
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
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.
Start the simulation:
And then in another terminal you can run your code: