OpenROV Command Center is designed to extend the capabilities of the OpenROV hardware and software to allow for control of the craft from a remote location. In order to achieve the goal the Command Center is implemented as a multi-tiered software architecture with an abstraction layer over the existing OpenROV Web based control software. Command Center also provides for the control using keyboard, accelerometer and LEAP motion controller.

This project is solving the OpenROV challenge.


Description

Overview

OpenROV Command Center - Presentation

The OpenROV Command Center provides a means by which an OpenROV craft can be controlled remotely over the Internet. The key characteristics of the Command Center are:

  • Open Architecture
  • Abstraction Layer
  • Multi-modal Control UI
  • Scalable
  • One Pilot/Many Viewers

Actors & Use Cases

Actor: OpenROV Pilot

The OpenROV Pilot is a single user who has control of the OpenROV craft during a dive.

Actor: OpenROV Viewer

The OpenROV Viewer is one or more users who wish to monitor the progress and status of the OpenROV during a dive.

Actor: OpenROV Craft

The OpenROV Craft is the hardware and software system that is used to interact with the craft during a dive.

Use Case: OpenROV Remote Control

The OpenROV shall be controlled by a single user, a Pilot, via a Web browser via an Internet connection.

Use Case: OpenROV Viewer

The actions of the OpenROV shall be viewable by many users via Web browser via an Internet connection.

Use Case: Keyboard Control

The OpenROV pilot will have the ability to control the OpenROV with a standard PC keyboard using single keystroke commands.

Use Case: Accelerometer Control

The OpenROV pilot will have the ability to control the OpenROV by using an accelerometer contained in a personal mobile device or other suitable hardware.

Use Case: LEAP Motion Control

The OpenROV pilot will have the ability to control the OpenROV by using a LEAP motion gesture controller on a support personal computer.

Use Case: OpenROV Telemetry Feed

The OpenROV Control Center will publish a feed of all OpenROV movement and related ambient data to all subscribers.

Use Case: OpenROV Video Feed

The OpenROV Control Center will publish a video feed from the on board camera to all subscribers.

Design

In order to achieve its goal of remote control of the OpenROV craft the Command Center is build upon an multi-tier architecture using both direct and asynchronous communications software and protocols. By intention the Command Center software is complimentary to the existing OpenROV software system in that is provides an abstraction layer over this system. The benefits of the abstraction layer include: scalability, security, portability, and interaction control. Additionally, the protocols selected for communications at all layers are open and widely available. The main OTS (off the shelf) components of the design are:

  • HTML5 Web Application
  • 3D OpenROV Craft Visualization
  • Publish/Subscribe Message Broker
  • WebSockets Network Communication
  • Web Server

Implementation

The OTS components are codified into three separate modules of code created by the team during the challenge:

  • Command Center
    • Web app, 3D visualization, control and view
  • Node-Mosquito
    • Web server app that brokers the Web app communications to the OpenROV
  • OpenROV Bridge
    • A Web server app that acts as a client existing OpenROV serial commanding protocol

Future Work

Integration Finish work with smart phone device deployment Test Command Center on OpenROV hardware * Meet-up with San Francisco OpenROV team at Late Tahoe for a dive test

Hardware Evolution Update the on board electronics with a Pinoccio board Add Power over Ether net to tether * Update camera to an IP enable camera

Software Enhancements Integration of OpenROV camera feed with Command Center UI Open source the design of the OpenROV control and telemetry protocols Dive plan simulator Autonomous execution of dive plan

Summary

The OpenROV Command Center team covered a lot of ground during challenge. We were able to connect all of the parts as described above to prove end-to-end communications within the context of the system design. It was decided fairly early on in the challenge that we would forego integration with a remote rover via the Internet to work on the bigger picture of delivering a robust and flexible system for commanding, controlling and viewing the OpenROV in action. Based on our discussions during the challenge with the others on the OpenROV and working on the challenge we feel the OpenROV Command Center is fit for further development and ultimately live deployment in the water.



Project Information

License: MIT License
Source Code/Project URL: https://github.com/SpaceAppsReno/commandcenter

Resources

OpenROV Websocket Bridge - https://github.com/SpaceAppsReno/openrov-bridge
Node Mosquito - https://github.com/SpaceAppsReno/node-mosquito
OpenROV: Command Center Full Presentation - http://prezi.com/rsblwp09dkmt/openrov-command-center/?kw=view-rsblwp09dkmt&rc=ref-11760541
OpenROV: Command Center Web App - http://cc.spaceappsreno.org/