In the world of remote-operated vehicles (ROVs), there are two basic elements to every deployed vehicle: a hardware platform, and a software platform. Typically in the not-so-distant past, a company that developed computer-related products (like a computer-controlled ROV, for example) would develop proprietary hardware and then either write proprietary software to control the hardware, or hire someone else to write the software. Apple Computers was (and is) a good example of the first kind of company: they design and produce their own computers, smartphones, and tablets, and they also create and maintain their own enormous codebase of operating systems and application programs to run that hardware.
There are merits in that approach; controlling the software enables a tighter control of the user experience, and for some products that’s not always a terrible idea. However, many companies – including Aquabotix – have embraced a different model of development. At Aquabotix, we create proprietary hardware using our own designs, and we control how that hardware is built and sold – but for the software side of things, we rely on a vast community network of innovators and developers, a community that we participate in but that we do not control. This development model is known as “open source” and you’ve probably heard of it.
All Aquabotix ROVs are controlled via software written using the MOOS-IvP platform. MOOS-IvP stands for "Mission Oriented Operating Suite - Interval Programming.” (Marketers did not name this software platform.) MOOS-IvP is a world-class suite of open-source C++ modules used to manage and control autonomous robotic platforms, particularly marine ROVs. The MOOS-IvP program is administered by MIT via their Department of Mechanical Engineering and their Center for Ocean Engineering. MOOS-IvP development is done by programmers all over the world – some at MIT, some at other academic institutions, some hobbyists, and of course, a large number of technical professionals at various companies and organizations deploying ROVs, including Aquabotix. We take the MOOS-IvP modules as the starting point, write wrapper code to provide a nicer GUI for the user experience, and add some custom functionality, but in essence the MOOS-IvP code is the operating guts of our ROV software package.
So what are the advantages of taking the open-source approach to the software that controls our ROVs? There are a number of them. Some of these advantages mainly benefit Aquabotix (or other companies using the same development approach), some mainly benefit our customers, and some make the experience better for everybody.
The first advantage is security. It seems ironic to people who don’t know how software development works, but making software open-source makes it LESS vulnerable to hacking or security defects, not more, even though would-be “bad guys” can look at the code base. The reason is that because *everyone* can look at the code base, many more sets of eyeballs look at every possible defect.
Another major advantage is customization. Because the core set of control modules is easily modifiable, Aquabotix can tweak the software to take full advantage of specific hardware features that we add. In addition, our customers can take control of the software experience themselves and code unique features or modules to handle their specific missions or address their special needs. It’s a wide-open platform, but with a ton of expert advice ready to hand.
A third advantage is interoperability. Interoperability means being able to interface with a variety of operating systems, file formats, interface specifications, etc. For example, Aquabotix has chosen to support controlling our ROVs via an iPad tablet, or via a Windows app. Other users of the MOOS IvP platform may decide to work via Android devices, or Unix mainframes for that matter. The choice is up to the user; the underlying software platform is open to interface with any modern operating system.
A final major advantage: cost. MOOS-IvP, like many open-source platforms, is free. That means that Aquabotix does not have to pay high licensing fees to develop code using MOOS-IvP, or pay ongoing royalties for each ROV that we sell. We are able to pass those savings along to the customer, enabling us to offer world-class recreational and professional ROVs at market-leading prices.
The advantages of the open-source development process over proprietary methods are leading more and more companies to adopt this innovative new way of producing new and exciting products. We are very proud of the hardware platform that we have created in our line of top-quality ROVs, and the software suite that we have developed to control them is more powerful, more user-friendly, and provides more value for the dollar, thanks to the open-source idea.
(For more information on the MOOS-IvP platform, visit their home page at http://oceanai.mit.edu/moos-ivp/pmwiki/pmwiki.php?n=Main.HomePage)
The Aquabotix HydroView and Endura remote-operated vehicle (ROV) family have any number of terrific features that set them apart from the competition. Among the most compelling of those features are those which make the Aquabotix ROVs extremely easy to use. The ability to control a full-featured ROV using a gamepad controller, an iPad, or a laptop, and the company’s commitment to the 3-3-3 learning curve model (three minutes to get into the water, three hours to learn how to drive, three days to mastery) makes learning to use the vehicles very simple.
Aquabotix is now expanding that ease of use with the development of a new self-diagnostics panel on all ROV software. The self-diagnostic panel helps even the most inexperienced users quickly identify and fix any problems that may hold up the deployment of an Aquabotix ROV. The diagnostics panel can be called up on the iPad or laptop being used to run the Aquabotix software by clicking on the ‘Diagnostics’ icon at the right side of the bottom control panel.
The self-diagnostic panel has four major elements. At the top is the System Overview, a graphical representation of the entire chain of communication from the controlling PC to the ROV itself. At the bottom left is the App pane, with information about the controlling PC. In the bottom center is the Network Statistics pane, and at the bottom right we find the Vehicle Information pane. We’ll take a quick look at each of these elements.
The System Overview panel provides an at-a-glance status report on the communication and control path between the controlling PC and the ROV. This pane gives a graphic representation of the status of your PC, your PC’s connection to its own network, the topside box which interfaces between your PC network and the ROV, the wired connection between the topside box and the ROV, and the ROV itself. These status displays are simplified to a green check (all is well), a red ‘X’ (something is not working), and a yellow ‘!’ (there is some important piece of information relating to this element of the system which you need to see). Looking at this panel gives the user a quick assessment of the system status when things are working properly, and an exact idea of where the problem is when they are not.
The other sections of the self-diagnostic panel provide useful information for drilling down deeper into any problems that arise. The App pane gives some basic information about your PC, including the current software version, whether your PC is supported by the Aquabotix software, whether a gamepad controller is connected, and how your local video performance is holding up. The Network Statistics pane tells you the health of the network connections to the topside box, alerting you to any latency issues, and also gives statistics on the health of the video feed from the ROV. Finally, the Vehicle Information pane tells you the current date and time, the vehicle’s current uptime, the time of the last shutdown, and information about the vehicle version.
Using the self-diagnostics panel in the Aquabotix software package allows even beginning ROV users to quickly identify the source of any problems with their ROV deployment, making it even quicker and easier to get into the water and get to work.