Geekfest: Ray Hightower Dumps a Robot into Lake Michigan

Today at Groupon’s Geekfest, Ray Hightower presented his underwater robot!

The robot is the product of OpenROV, an open-source project to develop a Remotely Operated Vehicle (that’s the ROV part) that can navigate underwater.

Most underwater ROVs are much larger than a human being and cost millions of dollars to buy and maintain. The OpenROV team wanted, instead, to create a robot that would cost less than $1000 and would be much smaller than its counterparts. The result is a machine smaller than a breadbox, which sells (disassembled) for $850. Ray showed us his model, and he talked about the process of getting her to work:

photo 3

When you purchase the OpenROV, it comes as a disassembled kit with detailed instructions about how to put it together.

Things you’ll want to learn to assemble the OpenROV:

  1. Soldering. There is lots of soldering.
  2. Acrylic welding. Many of the pieces are made of an acrylic thermoplastic, and you’ll need to attach them together via this method.
  3. Patience. Ray mentioned that he took about two weeks to assemble his outside of work. The founder of the company can assemble one in a day, but that’s still more serious than a piece of IKEA furniture.

Why soldering and welding, as opposed to screws and tape à la IKEA: the computer components must remain completely insulated from water. When assembled correctly, the robot is rated down to 100m (about 328 feet) beneath the water’s surface. Beyond that point, the transparent cylinder that contains the computer components can implode under the pressure of the water above it.

How does the OpenROV move around underwater?

The OpenROV has three thrusters: one on the port side, one on the starboard side, and one on the top. It doesn’t accelerate particularly quickly, but provided the robot is deep enough, it tends to stay in place pretty well in spite of the waves above it.

The RopenROV’s three simple motors are powered are powered with Pulse Width Modulation: instead of running a current through a resistor, this method sends pulses of power of a fixed width. This allows the person controlling the motors to dictate the motors’ rpms and positions more energy-efficiently than using a resistor.

Still confused? Here’s a short Youtube clip that cleared it up for me:

While you’re assembling the OpenROV, you’ll install three electronic speed controllers: these send the pulses to the motors. Other hardware you’ll get to play with: a BeagleBone Black (like a Raspberry Pi, but more powerful), an arduino, bright LEDs (for navigating the murky depths), and lasers (not dangerous lasers. Just two laser pointers, installed 10cm apart, that you can shine on stuff underwater in order to judge its size. Also, to annoy the fish):

The whole system gets its power from a pair of small lithium-ion batteries, which you can purchase online. These are the same kind of batteries that power your Tesla, if you’re blessed with the means to possess a Tesla.

There’s also a tether for the OpenROV. This is not just a string for you to yank on if you run down your battery exploring the seafloor: it carries the TCP/IP information that allows you to control the robot from a laptop (and also to look at the video feed):

Screen Shot 2014-10-21 at 4.09.37 PM
This is a bad photo: you can see a better version in Ray’s slides at rayhightower.com. Here is the link to those slides.

Ray’s tip on tether management: do not just haul a hundred feet of loose cord to the lake, because it will turn into a giant morass like any decent length of wire is wont to do. Instead, get an extension cord reel from Home Depot and a slip ring from adafruit. Total cost of the tether management rig: about $30.

So what’s this TCP/IP thing? 

I’m glad you asked. Open ROV talks to your laptop via TCP/IP: this is a computer networking protocol that facilitates communication through through a web browser.

That’s right: it’s all through a web browser. So, when it comes time to hack the robot’s software, what do we use? Node.js and socket.io, which facilitate bi-drectional, real time, event-based programming with Javascript.

Here’s a very basic diagram of the softwares that make OpenROV what it is:

Screen Shot 2014-10-21 at 4.09.20 PM

The web-based communication model has its advantages. In the words of an OpenROV founder:

“You can put an OpenROV in the water in Barbados and control it from a laptop in Taiwan.”

Who cares? 

Well, lots of people, if we’re judging by the size of the post-presentation crowd around the robot:

photo 1

But seriously. So we’re controlling a robot with through the internet. And?

As it turns out, the OpenROV already has some practical applications:

And for the future—who knows?

I certainly don’t, but let me tell you what the white, toaster-sized robot made me think about:

I’m from the state of Louisiana, y’all. My cousin is married to an underwater arc welder who works on oil rigs out in the gulf. It’s an extremely dangerous job, due to the biological complications that come with deep-water diving as well as the dangers of welding. The job also keeps him out in the gulf on a boat for about 6 months out of the year, far away from his 4 year old daughter and newborn son. Though this may be far in the future, imagine if he could do even half of his job via a robot from his home, or from an office. He would be in much less physical danger, and he could see his family more often. We have robots that drastically improve surgical outcomes. We  have robots that help maintain equipment in space. How far of a stretch is it, really, to put these things in the ocean?

Ray is going to find out, with the help of about a hundred other enthusiastic hackers. This January, RubyCaribe conference participants will hack on, drive, and dive/snorkel with Ray, the robots, and one of OpenROV’s founders. It’s not underwater arc welding, but it promises to be a lot of fun!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s