Shipping an entire team of Duke Robotics members to San Diego is no small feat. While everyone individually manages their own flights, the team has to coordinate many things, including arrival times, rental cars, and checking into the Airbnb. The most difficult transportee however, is our robot Oogway.

About a week before the competition, we received news of an issue with the shipping company which would make them no longer suitable for our needs. It turns out, our pallets are large, and in our case, too large! After a small panic and many team huddles, we arrived on a new (somewhat shady) shipping company that claimed they could handle our equipment. The team had expressed concerns, because it would require a guy (yes, a single person) to drive Oogway coast-to-coast in the matter of only a few days. Further, we had enough stuff—including a second pallet containing our old backup robot Cthulhu—to warrant two separate shipments (count that, two guys). We paid the shipping costs and crossed our fingers.

The team planned to converge in San Diego on the afternoon of July 29, two days before RoboSub was set to begin. The hope was that these extra days would prove valuable, giving the team time to unpack, do some preliminary testing in the house’s pool, and get our rental cars all set. Our one concern though was that Oogway and our lab would only be in Oklahoma or any other place not named San Diego.

Will and I were the first to arrive in San Diego’s airport. As the 12 other members began to land, Will and Morgan set off to get the rental cars. Everyone appeared to be reasonably on schedule, with the exception of Drew, whose airline decided arrival was not in the plans. So, with everyone else having arrived within a few hours, we considered it to be a 90% success. Drew would land later that evening.

It was then that we got an update on our shipments. The non-Oogway truck was set to arrive about an hour after we were set to check in to our Airbnb—very good. The Oogway truck did not end up arriving that day. That’s because arrived the day prior! The driver informed us via text that he was enjoying his time on the beach, and wanted to know when he should drop the stuff off. A true legend. As I write this, I’m flying coast to coast. To think that, under short notice, he drove our robot this distance in only a few days is truly impressive. 

Upon arrival at the Airbnb, we were thoroughly impressed. We knew what we had booked, but something hits different about stepping foot in a place large enough to house 14 people, with an included in-ground pool courtyard. Not to mention it was ocean-side.

Moving everyone in didn’t take long, but unpacking everything did. It felt strange moving a robot lab into a very nice living room with a water view, but I couldn’t complain. Some parts of our robots had to be disassembled for shipping and the RDU summer team had done an overall very good job at packing everything. A few members of the CS team helped to reassemble the robot carts. I decline to comment on the success of this operation.

We got some good testing in at the house’s pool. Unfortunately, the Airbnb required us the be absolutely silent at night, which certainly limited productivity at night. It didn’t stop us though! We pressed on, and were ultimately ready to test in the bigger pool at the competition.

After the few days of testing, we were ready for the opening ceremony. Nothing eventful came of this beyond useful competition logistics: here is the parking, these are the layouts of the courses, always use the crane to drop the robot in the water…you get the point. One memorable quote from an opening speech went “software will win you the competition, hardware will lose you the competition.” Pfft, that could never be us! That night, the team planned for the first day of testing Oogway at the venue: the naval testing facility known as TRANSDEC.

Oogway first got in the water a little after 7AM. What’s neat is that the RoboSub competition hires naval divers to help manipulate the robot in the name of our safety. Throughout the competition, they were extremely helpful, a pleasure to work with, and one actually ended up saving our robot.

Nothing exceptional came of this pool test. Perhaps that is a good thing, as Oogway didn’t flood and no major mechanical problems came about. The same went for the other test runs later that day, as we worked to have Oogway traverse the gate, which would qualify us for the remainder of the competition.

Eventually, a familiar problem resurfaced which pertained to the onboard Arduino bridging our computer and our thrusters. We had been having problems where it would disconnect, which would mean bad things for our thrusters. After hours of debugging and with no reliable way to reproduce the bug, it seemed as though the rest of the team went in a different direction with this issue: blame Michael. As an electrical member I can’t entirely blame them for blaming me. If nothing else, the lighthearted yet mocking “Michael!” that would occasionally come in unison from the CS team was quick communication to me to go reset the thrusters. While inconvenienced, we were not totally dead in the water.

We ended up qualifying the next day. Relieved, we began to prepare for our semifinal runs. Our plan built off of going through the gate with style (spinning) and hopefully finishing by hitting the correct parts of the buoy by primarily CV. 

As the days went on, we had consistent software and hardware changes. Specifically, software advances and hardware replacements. “Okay, maybe that opening ceremony speaker had a bit of truth to him.” One annoyingly persistent problem had to do with our PoE network switch. The short conclusion is that the switch consumes a lot of power and turns into a mini-furnace. As a result, we’d have relatively high capsule temperatures (bad), and would occasionally blow the boost converter powering it (very bad). When this would go, we would have to take apart much of the stack to get the tightly packed component. One time the robot even blew a fuse. After a few blown boost converters, we concluded that the issue came from extended switch use and the consequential heating. From then on, we made sure to run the robot for shorter periods of time. The result is that the problem subsided, but we would need to make more permanent electrical changes back at Duke—especially given our dwindling supply of boost converters.

At one point, we had an issue with the tether wherein we had to cut out a faulty section and re-crimp a connector. We had initially bought new adapters before determining the cable was the cause. We verified our successful fix by having Morgan scp an enormous folder to me over the cable.

Meanwhile, CS continued to work on task planning to get the robot correctly positioned to see the buoy. Getting to this spot was by far the most difficult part of the run, as the robot will have just performed multiple disorienting spins. Our CV implementation was extremely reliable, but only useful if the buoy was in view. One time we’d get near the buoy, the next time we could see it more clearly, the next “Michael!”, but soon, by the grace of testing, we were poised to perform our two bumps into the correct parts of it.

But mechanical! What’s up with them? Well they would soon get a rather critical task. As part of the routine for putting Oogway in the water, we explain a few basic points to the divers: operating the switches, where to grab the robot, and where its cameras are. Another precautionary note we usually make goes along the lines of “If you hear any loud cracking or see any significant bubbles, tell us IMMEDIATELY.” During the next pool test, the diver was with the robot maybe 20 feet from the edge of the pool where we were standing. “It looks like he is trying to tell us something. What are you saying?! Oh you mean — oh no, take it out take it out.” The diver heard a large crack and made sure we knew of it. We may have violated the whole only use the crane thing, but the situation was rather dire.

Luckily, water ingress was minimal and Oogway was alright electrically. Specifically, the epoxy job that held the top acrylic sheet to the capsule had been slightly compromised. Luckily we had backup capsules, but these proved a liability because their threaded inserts would strip out, their acrylic sheets would fail, and we were overall not confident in their performance. With many trips to both Home Depot (for epoxy and sealers) and to Ohio State’s tent (to borrow their torque driver to not over-tighten the inserts), we had something that was workable. And boy was it ugly. Multiple layers of hastily applied caulking, a filthy acrylic sheet, over-scored surfaces, and the worst, many scraps of paper towel caught in the drying adhesives. It would last us to the end of the competition, but we knew it would be an immediate priority back at Duke.

The team theorized on the cause of this issue. We deduced that the day’s prior pool test was likely the culprit. During the pool test a small issue arose which was not completely visible initially. It turns out, according to the diver, we lost control of the robot, it started to dive to the bottom, and smashed the capsule against the concrete pool wall before hitting the bottom 20+ feet down. Yeah, that’s probably it.

The time spent on the capsule gave the CS team time to reflect on one of their core guiding principles: real programmers test in production. I’m making that up, but that was unfortunately the reality here. Max and the rest of CS had produced a 700+ line untested behemoth to use in the upcoming semifinal run.

Before that though, we must discuss an unavoidable topic at RoboSub: porta-potties. The venue does not have great bathrooms, so RoboSub had set up about a row of six porta-potties. While not normally a topic of conversation, they came to everyone’s attention by about day five when they started to empty them. The smell was absolutely unbearable and they were unfortunately located directly next to the testing pool. I feel bad for the few teams with tents directly next to this biological hazard. 

During our first semifinal run, luck turned in our favor. Oogway actually performed about as expected and we ended up hitting one of the correct spots on the buoy. The untested code mostly worked. As far as we were concerned, it was a complete success! By this point, we were already outperforming all of Duke Robotics’ prior robots, and we were hopeful to hit the second spot on the buoy before competition’s end.

One small hiccough came as a result of this run: our pressure sensor seemed less reliable. From reading the documentation, this can happen if it stays wet for too long. We then proceeded to impulse-buy two pressure sensors from the on-site vendor. Things worked out, however, as replacing the sensor seemed to fix the issue.

Before our second and final semifinal run, we had the opportunity to test run the robot. With the tune-ups from the prior test, we were able to hit both buoys successfully, completing the entirety of our competition agenda. In very high spirits, we had an ambitious plan to try beyond our standard goals. We asked the diver if he could carefully move Oogway to the center of the octagon. The octagon represents one of the hardest RoboSub tasks, requiring teams to locate an acoustic pinger and surface in the octagon above it. Our thought was to instead have the diver (visually) locate the octagon and Oogway would record the position. Then in the run, we would simply tell Oogway to go back to that same place. We attempted this once in testing, but it took too long and Oogway also missed. Given the 15 minutes we get during the semifinals, we decided not to go with this approach.

In RoboSub, qualified teams each get two semifinal runs. Then, to determine the finalists, they set both score and rank cutoffs. Teams that surpass both of these qualify for finals. They also offer a “final chance” for teams that don’t qualify for finals during the semifinals. For this, they use the same cutoffs (except limited to at most two teams), just giving teams another run. We had our sights set on making it to the finals.

Our standing was good, but our previous run did not break the points threshold. We reasonably expected to have two more runs to qualify for finals. Our second semifinal came and went with a performance notably worse than the first one. Unsure what the cause was (perhaps the Arduino), we prepared extensively for the final chance run the next day, checking all subsystems over and over. And when that time came, Oogway totally worked. We went through the gate with style and hit both correct symbols on the buoy. The team’s cheers upon the diver indicating that we had succeeded were a total highlight for the trip. We anticipated the announcement on the intercom: “Attention everyone, Duke Robotics has just met the threshold to qualify for finals.” All we could do then was wait, and hope no more than one team surpassed us.

Credit: Morgan Chu

And that is exactly what happened. We were bested by three teams. Ohio state had completed the same tasks as we had, just they were slightly lighter and won the tiebreaker. In this way, it was a relief that three teams had beaten us, and not just two. While disappointed, we were still proud of our results.

After our run, we were able to help another team diagnose an issue with their thrusters. Specifically, we noticed a team in the testing pool and that had an issue that was rather familiar to us; we had debugged the exact problem a few months prior. A few pointers later, their thrusters were operational again.

The team ended the competition with a team dinner before going to the RoboSub party. Many of us played corn hole with giant Connect-4 pieces (don’t ask) and Morgan somehow acquired a very nice battery charger from ARVP. We even got an informal award for our social media engagement during the competition. Notably, this included our Capri-Sun repost war with the RoboSub account (again, don’t ask). We went back to the house, packed up our belongings (minus some chairs which we had bought and had to donate to the Airbnb), and met the same two truck drivers to haul our equipment back to the East Coast.

The trip was highlighted by Oogway’s success, but also the fun of living in a beach-side house together for a week, massive Costco runs, overnight pool testing, many Home Depot trips, and Jackie’s delicious French toast.

The team drove together to the airport, returned the rental cars, and all parted ways until the beginning of the new semester, already thinking of plans for RoboSub 2024!