Interim Report 10/02/2020
thrust vectoring algorithm has been developed to convert the XBOX controller joystick positions into
speed values for all 8 thrusters, allowing control of the ROVs pitch, yaw and roll, as well as up/down,
right/left and forward/backward movements. This was achieved by analysing each thruster in turn,
to see whether it has a positive or negative contribution to roll or pitch etc. when the thruster is being
driven forward. This generates an array with 8 speed values for each thruster. These values are then
normalised to the highest speed value and joystick position, so that the values are in the range 1 -
999 to be sent to the ROV via serial communication.
This algorithm has been tested on a small prototype ROV in a water tank and is able to control the
ROVs movement and rotation in all 3 axes. However, the ability to precisely control the ROVs position
can only properly be tested in a large body of water, so fine tuning of the algorithm may be required
in the future.
The C code running on the ROV in the Arduino environment has also progressed, with a simple and
reliable serial interface that uses ASCII commands to control the thrusters, actuators, camera signal
switches and sensors. The commands start with ‘?’ followed by an alphabetical character (acts like an
address) that indicates which aspect of the ROV the command is trying to control, followed by the
required data. This makes serial communication with the ROV simple human readable, allowing the
ROVs basic functions to be tested via command line without needing to use the GUI program. The
commands currently implemented are shown in Appendix Ben.
2.2. Joseph Orford
This PCB is responsible for the data processing of the project. This includes the main microcontroller
and microprocessors for doing the processing of the control system, control signals and camera
processing. The board takes 48V from the main supply and regulates it to 5v, 3.3v, 2.5v, 1.8v and 1.2v
for all of the systems on board at varying power levels. The board can take USB, ethernet, CSI and
analog camera inputs which can be sent up the tether differentially or via the fibre optic connection.
The on board microprocessors allow for image processing as well as server hosting for a backup
communications system with the surface. This board is responsible for all the communications with
the surface and mini-ROV and has multiple differential transceivers.
The board is designed to have multiple redundancy elements, such that if one system was to fail,
there is another which can be switched to within seconds. This has been achieved with the
implementation of at least two methods of achieving the same sensor reading communication
method. This is because the PCB will be in hot, humid conditions which can lead to failures of the
PCB. The PCB will be conformally coated to help alleviate this issue, with limited effect as
components such as connectors cannot be conformally coated.
The first revision of the PCB was completed and tested, as shown in figure [JOE1]. There were several
errors on this PCB, most notably the interconnections between two Physical Ethernet Layers (PHYs)
were incorrect and resulted in multiple modifications for the next revision. Further potential errors
were found with the 3v3 power supply unit in that it couldn’t supply enough current for sustained
usage with all elements being used. Brownouts could occur if all features were active at the same
time. The ethernet switch and fibre optics were a success, achieving speeds over 100 Mbps. This is
significantly less than the datasheet specification, so work will be done to remove the bottlenecks.
3