Programming the OpenROV Cockpit



My team and I are working on a project with the OpenROV 2.7 of which the end goal is to create closed-loop control for the ROV. We would like to program the functions of the OpenROV Cockpit to receive data, run a closed-loop control algorithm, and send out propeller commands. What would be the best way to do this?



Can you be a little more descriptive? Closing the control loop can be done numerous ways, some better than others…What’s your plan? Architecture? Not sure many people will design the solution for you, but certainly could help.


We plan to operate the ROV in a tank that has a motion capture system. This system will constantly return the position (as x, y, and z coordinates), and the roll, pitch, and yaw of the ROV to our computer. We will mainly be relying on this motion capture system rather than the IMU depth sensor to track the vehicle. Our plan for closed-loop control is, after receiving data from the motion capture system, we will use this data in MATLAB to write a control algorithm which outputs an RPM value for each propeller. Esssentially, we need to create our own version of the OpenROV Cockpit so we can send the RPM values we get from our control algorithm in MATLAB and apply them to the ROV.


Another thing we may try is to modify the existing cockpit, if that is a possibility.


I would start by looking at the Socket.IO API. Look for an update to this post later today with the code actually checked in and ready to be used: Feature: API Documentation

From the Mathlab computer, can you either communicate with web sockets, or you could instead use the CurlAPI which is a simple http interface instead.

Both allow you to specify motor commands in the form of thrust, yaw, lift with a value of -1.0 to +1.0

You also get the added benefit of being able to directly read in the telemetry stream of all of the sensors on the ROV.


any update on what you are working on?



is this API ready we can read most sensors include camera and control motion ?

Or can I design these tasks by Cockpit plugin ? Thank for your kind reply …

Sean Shui