This project is solving the OpenROV challenge.
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
- 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.
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
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
- 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
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
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 InformationLicense: MIT License
Source Code/Project URL: https://github.com/SpaceAppsReno/commandcenter
ResourcesOpenROV 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/