Programing help required


#1

Hi all:

I have always focus on C# and .net programing. I mean, I know how programing proccess works, but lenguages used on ROV are completly unknown for me.

I can't even guess how to read or edit the software, or how to use it.

Could anybody explain what lenguages and which editors are required for writting/reading/editing ROV's software ?

Kind regards

-Ion-


#2

Hey Ion,

I just saw your other post in the Electronics section which referred to this post, so I thought I'd try to answer your question here. For the most part, the high level functionality (stuff that's done on the BeagleBone) is programmed in JavaScript, and the low level functionality (stuff that's done on the Atmega chip on the Controller Board) is programmed in C or C++ using the Arduino IDE. Within the BeagleBone software, we use several software packages: the entire system is running the Ubuntu operating system, and Node.js, Socket IO, and MJPEG streamer are very large parts of whats making the system work.

I'm a lowly mechanical engineer and don't actually do much meaningful development with our software so my description is probably lacking in completeness and syntax, but at least that should give you a general idea of what's under the hood.

You can find all of our source code (as well as some descriptions that are probably better then mine) on our GitHub Software page: https://github.com/OpenROV/openrov-software

Hope that helps!

Eric


#3

Thanks a lot Erik:

Regards


#4

Hi Ion,

As Eric already explained, most of our functionality is written in JavaScript and C/C++.

The Arduino code is written in C/C++ and is responsible to interact with the hardware (motors, sensors). This code is compiled for a microcontroller (ATMEGA) that sits on the controllerboard of our ROV. You can find the code here: https://github.com/OpenROV/openrov-software/tree/master/arduino/OpenROV

The server side code that provides the web interface is written in NodeJS Javascript. It facilitates the communication between the laptop (to control the ROV) and the Arduino microcontroller.

https://github.com/OpenROV/openrov-software/tree/master/src

The Client side is HTML/JavaScript that runs on the laptop.

We use a modular, plugin based approach to develop functionality and the plugins contain both, the server side and the client side code.

https://github.com/OpenROV/openrov-software/tree/master/src/plugins

To get familiar with NodeJS and JavaScript as such, have a look for NodeJS tutorials. Coming form C#, as I did, you will find JavaScript having a similar notation but the concepts are quite different. Where C# is an object oriented procedural language, JavaScript is a functional language.

Regards,

Dominik