853
1 INTRODUCTION
The most suitable solution for automatic surveilance
of water areas is using floating unmanned surface
vehicles - small-sized ship.
The USV could measure water parameters in-situ,
and make sampling for ongoing more detailed
laboratory research.
The main goal of current development is to design
complex solution including unmanned surface
vehicle (USV), custom autopilot firmware and
software for real-time depth visualization. In the
beginning of development we have pointed next
requirements for the USV:
Easily accessible low-cost hardware parts
Easy USV transportation
Monohull
Free software libraries and IDE
Custom autopilot
Custom base ground station
Propulsion high reliability
Maneuverability
Minimal continuous USV work over 1 hour
Custom software for collected data post-
processing
For making USV easy to transportation we have
determined the longest dimension is 1 meter, which is
depends of average size of car trunk. Monohull
design was chosen because of easy to proceed and
USV was targeted to work in calm waters as lakes
and internal bays where the high waves are rare.
2 HULL AND HARDWARE PART
USV was made of two main materials - fiberglass and
styrofoam as hull base. The hull base was CNC-
machined and glued together in one part (Figure 1).
Autonomous Unmanned Surface Vehicle for Water
Surface Monitoring
V. Nikishin, M. Durmanov & I. Skorik
Sevastopol State University, Sevastopol, Russia
ABSTRACT: The unmanned surface vehicle (USV) considered in this article is used for the purpose of
environmental monitoring of water areas. Small size of vehicle allows to move sensors to areas close to shore
line, under the low bridges where the manned boats difficult or danger to use because of damage. With its help,
measurements of the required parameters are carried out directly in the studied area, or water samples are
taken for further study in the laboratory. For this, it is necessary that the USV automatically move to
predetermined points of the route. This article describes one of the stages in the development of an automatic
control system for a given USV course. The problem of finding the steering angle for turning the USV to the
required points of the route is being solved. An algorithm for visualizing the depth measurements of the
exploration water area in the form of a heat map described.
http://www.transnav.eu
the International Journal
on Marine Navigation
and Safety of Sea Transportation
Volume 14
Number 4
December 2020
DOI: 10.12716/1001.14.04.09
854
Figure 1. CNC-machined styrofoam hull base
For minimizing interaction electronic parts with
water they are was placed over the top in separated
covered box mounted with PVC pipes glued to the
USV hull. Placing antennas as high as possible also
gives advantages for reliable connection with ground
station and easy access to electronic, also it worth
because of magnetometer is far enough from engine
containing strong magnets. Final results of the hull is
shown in Figure 2.
We have selected electrical propulsion system
because modern brushless and brushed motors has
enough power and they are has small size suitable for
using in USVs. Electrical propulsion system allows
fast changing battery and it does not pollute water by
any hazardous materials or exhaust gases. Our USV
uses 3S (12 Volts) battery, 4074 sized brushless motor
with 2000kV, total power over 1 kW. Motor is driven
by electric speed controlled (ESC). Because of ESC is
dissipates a lot of heat it is require cooling, cooling is
produced by water injected by water jet.
Figure 2. Unmanned surface vehicle
For steering and movement of USV we used water
jet. Water jet has advantages in safety and
maneuverability. Safety reason is very important if
USV works near the beaches with swimming people.
Because of water jet rotor located inside tube, so there
are almost impossible to injure someone by rotating
blades. Open propellers are more dangerous, also
there are big chances that floating garbage, seaweed
or fish lines could wound up on the shaft and
propeller blades. Even if water jet has no safety lattice
there are always problem of floating garbage and
seaweed (Figure 3).
Figure 3. Seaweed in water jet
For steering of USV was used rotating nozzle.
Nozzle has rotating angle near 30 degrees left and
right. This allows to get very good maneuverability.
3 AUTOPILOT
The main purpose of autopilot is to control USV by
rotating nozzle to steer it at given route point. This
requires sensors (gyro, accelerometer and
magnetometer) integration with microcontroller
(MCU). We selected Atmega2560 on ArduinoMega
board [1]. This MCU has enough interfaces for
connecting with sensors and does not require high
programming skill. For autonomous movement of
USV main measurements is current heading and
current location. Heading is measures by MEMS
magnetometer connected to MCU by I2C interface.
Magnetometer require calibration to minimize hard
and soft iron distortion. For measurement location of
USV uses GPS module U-Blox connected to MCU by
UART interface. For controlling nozzle and motor
ESC uses PWM signal generated by internal
hardware timer [2].
The paper is overviews control system algorithm
for heading hold of USV. Algorithm calculates turn
angle for rudder rotation for steering the USV. This
allow to steer USV in path-following mode to
checkpoints stored in autopilot memory.
For correct work of USV`s control system we have
to consider where USV have to be turn - left or right
when it moves on targeted path line. Thus, a
formalized description of the algorithm is needed,
according to which the calculated angle of rotation
will allow the USV to rotate along the smallest arc to
the azimuth required at the moment.
There are also external factors that influence the
movement of USV. For example, it can be a current or
wind that displaces the USV from the path line.
Therefore, here it is also necessary to know the angle
of rotation so that the USV can correct its movement.
But in order to make a turn, it is not enough to
know only the turning angle. You want to calculate
the steering angle. In the described BMA, such a
device is a rotating nozzle of a water jet.
αrud - steering angle of rudder from -20 ° to + 20 °.
In Figure 4 shows USV (1), its heading relative to
the north (2) is indicated, azimuth (3), i.e. the angle to
855
which the USV must turn in order to reach the path
line when moving to the given checkpoint.
N
α rudder.
Check
point
Path
line
2
3
1
Figure 4. USV testing
Control system consist of compass and GPS-
receiver. Compass in fact is 3-axis magnetometer.
Compass data uses for heading calculation.
180
*
=
X
Y
arctg
(1)
X and Y magnetic projection of Earth magnetic field.
GPS data uses for location of USV. Azimuth to
checkpoint calculates as:
)cos*cos*sin
sin*cos;cos*(sin2
21
212
= arctg
(2)
where
Δλ= λ2 - λ1 longitude difference;
φ1 and φ 2 – latitude difference.
First checkpoint is current USV location, second
checkpoint next checkpoint of path-line.
If the azimuth value is negative, then 360 is
added to it.
In Figure 5 shows angle rotation calculation block
diagram.
GPS
Compass
Heading
Current USV location Checkpoint coordinates
Azimuth
Turn angle
Figure 5. Angle rotation calculation block diagram
Then USV heading and azimuth uses for turn
angle calculation:
=
(3)
Figure 6 shows the difference of azimuth and
heading gives value of turn angle. But this is simplest
case. Some cases where additional correction
requires:
1 Δ negative value;
2 Δ more than 180. in this case USV will turn
ineffective at longest arc.
N
Check
point
Path
line
2
φ
1
θ
Δ
Figure 6. Navigational angles
1 USV, 2 current heading , θ - azimuth to checkpoint,
- turn angle, N north heading
Calculation of rudder turn angle sown in Figure 7.
Δ > 180°
Δ < 0°
Δ < -180°
Нет
Да
Нет
Да
Да
Нет
Δ = φ - θ
20*
180
360
=
рул
20*
180
360 +
=
рул
20*
180
=
рул
20*
180
=
рул
Figure 7. Rudder angle calculation block-diagram
856
Given algorithm includes angle corrections. Since
the rudder of USV can rotates left and right for 20,
angle have to be divided to 180 and multiplies at 20.
Thus, rudder angle is calculates in allowed range
from -20 to 20. Negative values of rudder angle
means that USV steers to the right and vice versa
Figure 8.
20°
-11
20°
X
Y
Figure 8. Rudder angle limits
The algorithm described in Figure 5 for calculating
the steering angle ensures the correct movement of
the USV along a path-line. During the movement, the
USV will turn to the checkpoint along the smallest
arc.
Also, the calculation of the steering angle allows
USV to automatically correct its movement relative to
the path-line.
Thus, the presented algorithm, due to its
formalized form, can be integrated into the USV
autopilot based on the microcontroller.
4 SONAR
The most useful part of USV development is
integration with measurement devices. Current
development is targeted to bathymetry. Selection of
sonar depends on many reasons as precision,
resolution, one or multi-beam ray. But in case of USV
the most important is connection with MCU - sonar
has to be equipped with suitable interface, in most
cases this is RS-232 with NMEA standard messages
[3]. We choose Garmin Echomap 42 [4], this sonar has
5 Volts NMEA interface, but it`s signal is inverted.
Because of Atmega2560 does not have option to
invert UART signal, we have to add inverter before
signal goes to MCU using NPN transistor (Figure 9).
Figure 9. NMEA inverter
Placing sonar in internal compartment protects it
from water sprays (Figure 10).
Figure 10. Placing sonar in USV
5 POST-PROCESSING SOFTWARE
DEVELOPMENT
5.1 Statement of the bathymetric data visualization
problem
It is proposed to visualize bathymetric data using a
heat map. To do this, select a color palette and fill
with the color each area with the same depth. The
initial data for building a heat map are:
geographical coordinates of points (latitude and
longitude) and depth values measured by the
sonar at these points;
geographical coordinates of the boundary points
of the test site, to create the boundaries of the
displayed heat map;
color palette (range and number of color shades).
To solve this problem, there are special services.
For example, the Heatmaptool [5] online service
allows you to use various color palettes, control the
radius, zoom, and opacity of heat spots and update
the map in real time. However, this service is paid
and designed to visually display statistical data in the
selected region.
5.2 Heat Map algorithm
The problem of building a heat map is to fill on the
map not only the individual points at which depth
measurements were made, but to fill the entire area
with the color. This problem is solved using the
Inverse distance weighting (IDW) [6] method, which
consists in determining the weight of each point by
interpolating neighboring points with a known
weight at a given point.
The heat map algorithm consists from the
following steps [7]:
1 Converting the geographical coordinates of the
points to the x and y coordinates of the Cartesian
coordinates.
2 Formation of the border of the polygon for
cropping the resulting image of the heat map.
3 Implementation of the IDW method for
constructing a heat map image.
4 Converting points in a Cartesian coordinates to
geographical coordinates and combining a heat
map with a geographical map of the area.
857
The algorithm is implemented using developed
software in the C # programming language.
1 Primary processing of coordinates and
bathymetric data. The heat map is built according
to three parameters: geographic coordinates
(longitude and latitude) and depth. USV capture
this data, which is saved in a file with the .csv
extension. To process bathymetric information, it
is necessary to read the data from the file line by
line, split them into lexemes and write the
necessary parameters to the buffer. The read data
are in symbolic format and for further processing
and building a heat map, they are converted into
real numeric format.
The dimensions of the heat map field correspond
to the linear dimensions determined by the
maximum and minimum values of latitude and
longitude.
To process depth values, you need to convert them
from text format to numeric format and convert
them to a specified range.
2 Creation of polygon border for cropping the heat
map image. Polygon boundary is an array of
points located on the boundary of the exploration
water area. The border of the polygon for
cropping the image field is created at the stage of
forming the dimensions of the image field and
converting geographic coordinates to X0Y
coordinates. This is due to the fact that the
polygon is also specified by geographic
coordinates, which will need to be converted to
X0Y coordinates at the same scale.
In Figure 11 shows an image obtained using the
Google Earth web application, with the help of
which the geographic coordinates of this polygon
were obtained.
Figure 11. Exploration area of Inkerman career (Sevastopol)
in Google Earth application
Considering the coordinates of the polygon
corrected the linear dimensions of the plotting
area of the heat map image and converted the
geographic coordinates of the polygon into X0Y
coordinates. The image cropping contour is built
using these coordinates.
3 Building a heat map using the IDW method. A
heat map of the depth of an area of interest is a
raster image that is obtained by calculating
interpolated depth values using known depth
values at fixed points. Thus, interpolation is
performed in those places where we are not
interested in depth, for example, on land. In this
case, the resulting image must be cropped along
the contour of the exploration water area. Image
cropping is performed using the formed contour
along the boundary points of the polygon. The
color palette is chosen arbitrarily, usually warmer
tones correspond to smaller depths, colder ones
correspond to larger ones.
An results of building a depth map for an artificial
reservoir in Inkerman (Sevastopol) is shown in
Figure 12 and the coastal waters of Holland Bay
(Sevastopol) is shown in Figure 13.
Figure 12. Heat map of Inkerman (Sevastopol)
Figure 13. Heat map of Holland Bay (Sevastopol)
6 CONCLUSION
Developed USV shown in the paper has simple
design which is can be reproduced with minimal cost.
The main limitations of our USV is working only in
calm waters without strong wind and waves.
Small draft of USV less than 3 inches allows to
mapping depth of lakes or bays very close to
shoreline, this is almost impossible with big boats
with crew on board.
ACKNOWLEDGEMENTS
The reported study was funded of the internal grant
by Sevastopol State University, project number
516/06-31
858
REFERENCES
[1] Arduino Mega official site,
https://store.arduino.cc/arduino-mega-2560-rev3.
[2] Nikishin V. V., Durmanov M. A. Firmware and
Software Structure Of Unmanned Naval Vehicle”, Int.
Conf. “Modern problems of radio electronics and
telecommunications”, Sevastopol State University,
Sevastopol, Russia, 2019.
[3] National Marine Electronics Association,
https://www.nmea.org.
[4] Garmin Echomap sonar, https://buy.garmin.com/en-
US/US/p/592785.
[5] HeatmapTool.com, https://www.heatmaptool.com.
[6] GisGeography. Inverse Distance Weighting (IDW)
Interpolation, https://gisgeography.com/inverse-
distance-weighting-idw-interpolation.
[7] Nikishin V. V., Durmanov M. A., Sizyh D. A. “Heatmap
for Water Depth Visualization”, Int. Conf. “Modern
problems of radio electronics and telecommunications”,
Sevastopol State University, Sevastopol, Russia, 2019.