eduROV - Educational Remotely Operated Vehicle
==============================================

Stream camera feed from a Raspberry Pi camera to any web browser on the network.
Control the robot with your keyboard directly in the browser.

The eduROV project is all about spreading the joy of technology and learning.
The eduROV is being developed as a DIY ROV kit meant to be affordable and
usable by schools, hobbyists, researchers and others as they see fit.
We are committed to be fully open-source, both software and hardware-wise,
everything we develop will be available to you. Using other open-source and or
open-access tools and platforms.

:GitHub: https://github.com/trolllabs/eduROV
:PyPI: https://pypi.org/project/edurov/
:Documentation: http://edurov.readthedocs.io
:Engage eduROV: https://www.edurov.no/

.. image:: ./docs/edurov_gui.jpg

Main features
*************

1. **Low video latency**

   You can stream HD video from the Raspberry Pi camera to any unit on the same
   network with a video delay below 200ms.

2. **No setup required**

   The package works by displaying the video feed and other content in a web
   browser. This means that you can use any device to display your interface.

3. **Very easy to use**

   With the exception of Pyro4 (which is installed automatically), edurov
   doesn't require any other packages or software. Everything is written in
   python and html. 4 lines of code is everything needed to get started!

4. **Highly customizable**

   Since you define the html page yourself, you can make it look and work
   exactly the way you want. Use css and javascript as much as you want.

5. **True parallelism**

   Need to control motors, read sensor values and display video feed at the
   same time? edurov can spawn your functions on multiple CPU cores while still
   maintaining the possibility to share variables.

Prerequisites
*************
- eduROV requires python 3, if you don't have python installed, you can
  download it here: https://www.python.org/downloads/
- the camera on the raspberry pi has to be enabled, see
  https://www.raspberrypi.org/documentation/configuration/camera.md

Installation
************
Run the following commands in a terminal on the Raspberry Pi.::

  sudo pip3 install edurov

For a more in depth description visit
`the official documentation <http://edurov.readthedocs.io/>`_.

Usage
*****

Engage eduROV submersible
-------------------------

On the Raspberry Pi, run the following command::

  edurov-web

This will start the web server and print the ip where the web page can be
viewed, e.g. ``Visit the webpage at 192.168.0.197:8000``.

Create your own
---------------

The eduROV package includes multiple classes and functions to facilitate
easy robot communication with video feed. It will get you up and running in a
matter of minutes. Visit
`the official documentation <http://edurov.readthedocs.io/>`_ for a *getting
started*, examples and API.

Performance
***********
The eduROV package were created with a strong focus on keeping the latency at
a minimum. When deploying on a wireless network the actual performance will
vary depending on factors such as distance, interference and hardware.

.. image:: ./docs/latency.png
