OOGWAY PRE-QUALIFICATION COMPLETE!
Oogway Pre-Qualification
We changed the pre-qualification code to make it more reliable and take less time.
- Instead of dead reckoning a complete square around the buoy, the robot now dead reckons only first half of the square. Once the robot is in the adjacent lane, it follows the adjacent lane’s marker in reverse, correcting its Y and yaw along the way, until it passes the buoy, then dead reckons back into the original lane and follows the original lane’s marker in reverse to go back through the gate. Following the adjacent lane’s marker makes the robot’s behavior much more consistent, it corrects all deviations in Y and yaw.
- When following the lane marker, the robot first corrects its Y and yaw before moving forward/backward. This ensure the robot doesn’t lose track of the lane marker on the first movement when it starts tracking the lane marker.
- The robot now dead reckons when it passes under the gate.
- The dead reckoning portions were changed to be completed in one single movement instead of in 1 meter increments. This includes:
- When passing under the gate (both ways), it dead reckons 2.5 meters forward/backward.
- When moving past the buoy, it dead reckons 3 meters forward.
- When moving into the adjacent lane, it dead reckons 2 meters to the left.
- The
depth_level
argument was added tomove_to_pose_local
, which if provided, ensures that the robot moves to the provided depth level. By using this argument in allmove_to_pose_local
commands where the robot shouldn’t change depth, the robot doesn’t need to spend time correcting its depth after each movement; this is done in conjunction with other corrections and forward/backward movements.
We also tried making the robot move in 2 meter increments instead of 1 meter when tracking the lane marker, but this led to the robot quickly going off course, so we reverted to 1 meter increments.
We tested the changes above with a few tethered runs. Then, we did our first autonomous run, which was successful! See autonomous run in the videos at the end of this post.
Crush
Mechanical briefly tested Crush’s buoyancy in the pool. The found that since the back of Crush is much heavier than the front, it requires 3 additional buoyancy blocks in the back. With this addition, Crush stayed fairly level, although the buoyancy will need to be fine-tuned after the electrical stack is put in.
Sonar
With the time that we had left at the end of the pool test, we tested the sonar code that was migrated to ROS2. We ran into a few bugs, but after fixing them, the sonar was working as expected.
Oogway Pre-Qualification Videos
The pre-qualification was captured underwater and on land. Neither video has audio.