Software Architecture – Soul of Voyager II

When designing Voyager II, the user control scenario is the main concern of ROV MAKER. Many ROV manufacturers have their own controller, since it is the main method of controlling the vehicle. ROV MAKER decided to use Notebook (NB)/Tablet, which has windows or Linux, as the controller of Voyager II. Notebooks and tablets are mature consumer products in terms of CPU performance, battery capacity, size or even price. In the past 30 years, software for notebook has developed by leaps and bounds, which can be seen not only in applications on windows /Iinux platform but also in cloud technology. Using NB as the controller of Voyager II helps users to write their program to control the vehicle and easily use cloud technology such as FB LIVE and Cloud storage.

We chose the Google Chrome as the Control Software for Voyager II, not only because Google devotes itself to developing many app plugins based on JavaScript but also because Google supports WebRTC, a kind of video conference call protocol based on UDP/IP.

The Software Architecture of Voyager II follows the client-server model. For the server, the Baroque control board in Voyager II uses Node.Js as the HTTP server, which responds to the http request from the client side. NodeJs is based on JavaScript language, the same as the web page on the browser. Programmers can write codes on both server and client sides with only JavaScript. For effectiveness, the sensor driver and ROV control are programmed by C language called ROV BSP, which communicates with the server running on NodeJs through the Linux socket.

Voyager II adopts WebRTC as the video transmission protocol. WebRTC is a kind of video conference protocol based on UDP/IP. It is especially useful when users connect the reel by WIFI. In this way, video won’t delay when WIFI signal is poor. On Voyager II, Janus Gateway is integrated for WebRTC Implement.

Given the above-mentioned software framework, the software development for Voyager II is based on the following issues.

With the above design guidelines in mind, ROV MAKER has implemented many functions for Voyager II. we are planning to open-source the Voyager II software so other experts will be able to implement their own features on Voyager II.

The following features have been implemented on Voyager II.

  • Real time video based on WebRTC, which is implemented by Janus Gateway
  • Software driver of 8250 IMU/MS5837-30B depth sensor/IST 8310 eCompass
  • Control UI (HTML/CSS/JS)
  • Factory Test Mode to calibrate/adjust ROV
  • Software upgrade
  • Depth-Control based on PID algorithm
  • Heading-Control based on PID algorithm
  • 720P video recording
  • Navigation Logging
  • OpenCV JavaScript integrated, which can be exemplified by face detection
  • Control ROV by touch Panel

You could click on the Video to learn how easy it is to use NB/Tablet to control the Voyager II based on our software Architecture.

Leave a Reply