<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Checking the Flight Stability of a Rotary UAV in Navigation Modes for Different Firmware</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Serhii Lienkov</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Myasischev</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Olexander Sieliukov</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oleksandr Pashkov</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Genadiy Zhyrov</string-name>
          <email>g@ukr.net</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrii Zinchyk</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of the Radio Engineering and Radioelectronic Systems of Taras Shevchenko National University of Kyiv</institution>
          ,
          <addr-line>Volodymyrska str., 64/13, Kyiv, 01601</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Khmelnytskyi National University</institution>
          ,
          <addr-line>Instytuts'ka str. 11, Khmelnytskyi, 29016</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Military Institute of Taras Shevchenko National University of Kyiv</institution>
          ,
          <addr-line>Lomonosova street, 81, Kyiv, 03189</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Ministry of Defense of Ukraine</institution>
          ,
          <addr-line>Povitroflostky Ave, 6, Kyiv, 03168</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>State enterprise "Scientific center of accurate machine building"</institution>
          ,
          <addr-line>Boryspylska street, 9, Kyiv, 02099</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this work, the stability of a rotor-type UAV based on the STM32F405 microcontroller was studied for flying in a fully automatic mode along a given trajectory during a gusty wind with an average speed of 6-7 m/s. The INAV software with firmware ver.2.6 and the Ardupilot software with arducopter firmware ver.4.0.5 were used. The possibility of correct formation of the flight trajectory in the semi-automatic mode for taking photographs, studying the radiation situation in the area, spraying fields, etc. has been established for Arducopter firmware. The development of flight mission for INAV is more primitive, it is performed only in manual mode, using preliminary calculations. The obtained results show that the INAV firmware with the UAV allows only telemetry data to be transmitted to the ground station. It is impossible to change the UAV flight trajectory from the ground station via telemetry. For the Ardupilot software, the possibility of changing the route is shown by dragging the flight point to which the UAV is approaching with the mouse pointing device. For the INAV firmware, it was experimentally not possible to connect flying over a given waypoint with the execution of an action, for example, turning on and off the sprayer nozzle, and dropping the load at a given point.</p>
      </abstract>
      <kwd-group>
        <kwd>1 OMNIBUSF4V3</kwd>
        <kwd>INAV 2</kwd>
        <kwd>6</kwd>
        <kwd>GPS receiver</kwd>
        <kwd>STM32F405</kwd>
        <kwd>UAV</kwd>
        <kwd>OSD</kwd>
        <kwd>ESC regulator</kwd>
        <kwd>FlySky FS-i6</kwd>
        <kwd>Failsafe</kwd>
        <kwd>Arducopter</kwd>
        <kwd>Ardupilot</kwd>
        <kwd>Pixhawk</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Currently, topical issues are the study of the
radiation situation in the area, performing
topographic and geodetic surveys for drawing up
a plan of the area, spraying agricultural fields,
carrying out rescue operations [
        <xref ref-type="bibr" rid="ref13 ref18 ref3 ref9">1-4</xref>
        ]. To solve
these issues, unmanned aerial vehicles (UAVs) of
both rotary type (quadcopters, hexacopters,
orthocopters) [1] and with a fixed wing (aircraft,
flying wings) [
        <xref ref-type="bibr" rid="ref18">3</xref>
        ] can be used.
      </p>
      <p>
        To solve the problems under consideration, the
UAV should be able to operate in a fully
automatic mode when flying around an area along
a given route and perform actions set before the
flight, for example, turn on and off the nozzles
when flying over the specified waypoints. The
software of the ground station should be able to
automatically generate flight trajectories and
actions performed during the flight over specified
sites [5]. It is important that during its flight the
vehicle should be sufficiently resistant to external
influences, for example, to gusts of wind. It is
necessary that the UAV flight is displayed on the
screen of the ground station, superimposed on the
geographical map of the area [
        <xref ref-type="bibr" rid="ref1">6</xref>
        ], as well as there
will be a possibility of changing the route by
dragging the flight point with the mouse pointing
device, to which the UAV is approaching. It is
advisable to use the FPV flight capability [7] with
displaying telemetry data on the helmet screen for
maximum control over the UAV flight. In [
        <xref ref-type="bibr" rid="ref1 ref26">6, 8</xref>
        ],
other ways of using UAVs are presented, for
which their stability in flight and positioning at a
given point are also important.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Problem Statement</title>
      <p>
        To solve the problems described above, it is
very important that the UAV is maximally
resistant to changing external impacts. For
example, with a constant wind of 5-6 m/s,
simplified mathematical models are used to
ensure flight stability. An example would be the
use of complementary filters for the joint
operation of a gyroscope and an accelerometer
and simplified models of PID regulators.
However, with a dynamically changing wind of
up to 15-20 m/s, it is required to use a more
complex mathematical apparatus and develop
software on its basis for the flight controller. In
this regard, the work considers the construction of
a quadcopter according to a well-known model
(X-copter) and its adjustment for modern
firmware INAV and Arducopter [
        <xref ref-type="bibr" rid="ref26">8, 9</xref>
        ]. The
adjustment is carried out experimentally with
enumeration of a large number of parameters
(including adjustment of the PID regulators), on
which the flight stability of the copter with the
given geometric parameters as well as the
parameters of the propeller group depends.
      </p>
      <p>
        In this study, the most common firmware,
INAV and Arducopter. These firmwares are free
to use, open source and user-configurable. INAV
supports a large number of flight controllers based
on 32-bit microcontrollers of the STM32F4 and
STM32F7 sets, positioning sensors (gyroscopes,
accelerometers, magnetometers, etc.), and OSD.
The Arducopter firmware was developed for
flight controllers APM 2.6 and Pixhawk [
        <xref ref-type="bibr" rid="ref21 ref24 ref27 ref29 ref33 ref40 ref41 ref44">10</xref>
        ]. In
this work, we have studied how the ported
Arducopter ver.4.0.5 firmware practically
functions on the OMNIBUSF4V3 controller [11]
and how stable flight will be in navigation mode
for such flight controllers based on STM32F4.
The OMNIBUSF4V3 controller is also used for
the INAV ver.2.6 firmware. Therefore, the testing
conditions are the same. The use of free firmware
and common cheap flight controllers makes it
possible to design low-cost UAVs. For example,
a copter assembled for experimental purposes is at
a cost 2-3 times lower than commercial ones,
which have similar flight modes. Pixhawk flight
controller is about 5 times more expensive than
OMNIBUSF4V3.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Research Design</title>
      <p>For Arducopter versions, up to ver. 3.2.1,
which was used by the autopilot based on
atmega2560 microcontroller – for example, APM
2.6 and 2.8 – the Discrete Cosine Matrix (DCM)
mathematical apparatus was used to estimate the
position/orientation of the aircraft [12]. The DCM
was also called the first generation attitude and
position estimation system.</p>
      <p>The current stable version of ArduPilot (4.0.5)
uses EKF2 as the main source of orientation in
space, with the DCM running in the background.
If the autopilot has two (or more) available IMUs
(the Inertial Measurement Unit contains a
gyroscope and accelerometer), two EKF “cores”
will work in parallel, each of which will use its
own IMU. At any given time, only the output
signal of one EKF core is used, and it is this core
that reports the best state, which is determined by
the consistency of the data of its sensors.</p>
      <p>Figure 1 shows the evolution of the Attitude
and Heading Reference System (AHRS) [13]</p>
      <p>INAV firmware for OMNIBUSF4V3 flight
controller uses Alpha-Beta filter (complementary
filter) for position estimation. It allows using the
accelerometer and gyroscope to obtain fairly
accurate pitch and roll values. However, with
large vibrations of the motors, its accuracy
becomes insufficient and this filter is not suitable
for using another sensor, a magnetometer. That is
why aircraft behave unstable when switching to
fully automatic control with INAV firmware.
Therefore, in this work, along with INAV
firmware, the behaviour of the craft in automatic
mode, using the Kalman filter, is investigated.</p>
      <p>Another alternative is the Madgwick filter
[14], which gives a better result than the Kalman
filter in the results of position accuracy and
calculation performance.</p>
      <p>The Advanced Kalman Filter (EKF2)
algorithm used in ArduPilot provides a way to
combine or consolidate data from an IMU, GPS,
compass, airspeed sensor, barometer, and other
sensors to calculate a more accurate and reliable
estimate of the UAV position, speed and angular
orientation. This algorithm evaluates a total of 22
states from different sensors.</p>
      <p>The issues of constructing mathematical
models to ensure the stability of the UAV were
also discussed in [15-17].</p>
    </sec>
    <sec id="sec-4">
      <title>4. Basic</title>
    </sec>
    <sec id="sec-5">
      <title>Results</title>
    </sec>
    <sec id="sec-6">
      <title>Material and</title>
    </sec>
    <sec id="sec-7">
      <title>Working</title>
      <p>For testing the UAV, a quadcopter with a
250mm frame was chosen (Figure 2). On the
quadcopter, the following equipment was
installed: motor 2204/2300 KV with ESC
regulator 30A; propeller 5×4.5 inches; GPS
receiver: u-blox NEO-6M; control equipment:
FlySky FS-i6 firmware upgraded from 6 to 10
channels with a communication range of up to 1.0
km; flight controller OMNIBUSF4V3 based on
STM32F405 LQFP64 microcontroller (168Mhz,
1M Flash, 192kB SRAM) with built-in
gyroscope, MPU6000 accelerometer and
BMP280 barometer; battery 1500 mAh/hour, 11.1
V; video camera and video transmitter TS832
with a power of 0.6 W. The flight weight of the
quadcopter was about 550 g.</p>
      <p>The interconnecting network of the copter
electronic components is given in Figure 3. The
video camera is connected to a separate power
source. The copter sends telemetry data, which are
superimposed on the image of the terrain obtained
from the video camera, through the video
transmitter.</p>
      <p>To configure the flight controller of the copter,
the firmware file for the microcontrollers and the
ground station software are used. The ground
station uses Mission Planners, which is located at
https://firmware.ardupilot.org/Tools/MissionPlan
ner/. The firmware for OMNIBUSF4V3 is copied
from
https://firmware.ardupilot.org/Copter/stable4.0.5/omnibusf4/ under the name
arducopter_with_bl.hex.</p>
      <p>When sold OMNIBUSF4V3 controller is
usually pre-flashed with Betaflight firmware.
After Betaflight, INAV firmware is installed quite
easy [9]. Setting up this firmware using the INAV
navigator was considered in [18-20]. After its
installation, test flights were performed with
INAV ver.2.6. After completing the testing,
arducopter firmware was installed. However, it is
not possible to directly install arducopter
firmware from Mission Planners, the ArduPilot
ground station. To use ArduPilot, you need an
ArduPilot compatible bootloader on the
microcontroller. Therefore, _bl.hex file is used,
which contains the firmware and bootloader
compatible with ArduPilot. _bl.hex file can be
flashed using the INAV configurator, which uses
a convenient graphical interface for this purpose.
Before flashing, the controller should be switched
to DFU mode (Figure 4).</p>
      <p>If OMNIBUSF4V3 controller is not
recognized as a com port under Windows, zadig
program is downloaded from http://zadig.akeo.ie/
and installed.</p>
      <p>It should be noted that the peculiarities of the
firmware for OMNIBUSF4V3 controller
compared to the typical firmware developed for
Pixhawk 2.4.6 flight controller based on
STM32F427 Cortex M4 processor with FPU 168
MHz/256 Kb RAM and 2 Mb flash memory. The
microcontroller on OMNIBUSF4V3 has 1 Mb
flash memory, so its capabilities are limited. For
example, some sensors and telemetry formats may
not work; some devices cannot be controlled, etc.
Lua scripting is not possible due to insufficient
flash memory. These scripts provide a safe
sandbox environment for adding new behaviour
to the autopilot without changing the main flight
code.</p>
      <p>Despite this, the flight performance with
OMNIBUSF4V3 is higher than with APM 2.6
based on ATmega2560 processor due to a more
advanced mathematical model of flight control
when using the same type of sensors.</p>
      <p>The quadcopter firmware is configured using
MissionPlanner ver. 1.3.74 application.</p>
      <p>A computer is connected to the flight
controller using a USB cable. Then the Mission
Planner application is launched, which connects
to the firmware of OMNIBUSF4V3 controller by
clicking on CONNECT (1) in the upper right
corner. The frame type is selected step by step
(Figure 5).</p>
      <p>The calibration of the accelerometer, compass,
control equipment and ESC regulators is
performed. Calibrations are performed according
to the step-by-step instructions on the
corresponding tab. Figure 6 shows a combination
of setting tabs. To calibrate the accelerometer, the
copter is sequentially installed to a fixed position
along 6 axes, followed by fixing each of the
positions. It is best to calibrate the magnetometer
in the launch field by rotating the quadcopter in
six axes until the Mission Planner reports the end
of the calibration. The location of the
magnetometer relative to the flight controller is
determined automatically.</p>
      <p>ESC controllers are configured as described in
the ESC Calibration tab.</p>
      <p>Before setting flight modes (Flight Modes) it
is necessary to configure FlySky FS-i6 control
equipment. In order to do this, it is first upgraded
to a 10-channel operating mode [18,19]. Then, on
the FlySky FS-i6 operation panel, go to the End
points and Aux channels tabs, in which the
parameters shown in Figure 7 are set for the 5th
channel. The Reverse tab sets the reverse for the
2nd channel.</p>
      <p>Such an installation will allow using the
threeposition SwC and two-position SwD switches to
work with 6 different flight modes. Figure 8
shows the flight mode and Failsafe settings tabs.
To implement Failsafe, the control hardware and
receiver are preconfigured as presented here [18,
19]. FailSafe mode is set to minimum throttle.
That is throttle value is equal to 1003 pulses when
control equipment is on. If communication with
the operation panel is broken, this value will be
equal to 900 pulses. Fig. 8 shows that it is set to
950, below which FailSafe will be triggered. This
will turn on the Enabled Continue mode with
Mission and Auto modes, so the flight mission is
continued in automatic mode.</p>
      <p>To control the battery charge, in order to notify
about its charge via telemetry, to give an audible
signal informing about a low battery charge, and
execute a command to return the copter to the
takeoff point when the battery is low, the battery
should be calibrated. It is performed in the tab
shown in Figure 9. For OMNIBUSF4V3, the
values are set inked with green rectangles.</p>
      <p>The Extended Turning tab is used to configure
the parameters of the PID controller and some
navigation flight modes (inked in a red
rectangular).</p>
      <p>For copters, the PID controllers are adjusted by
manual selection based on visual control over the
stability of the aircraft behaviour. At present there
are no reliable mathematical models for the
automatic determination of the parameters of PID
controllers. Therefore, for the convenience of
adjusting the parameters during the flight, the
sixth channel of the control equipment – the
"spinner" – is used to set specific PID parameters
and designate the range of these parameters. In
Figure 10, the above said is inked in green
rectangles</p>
      <p>The OMNIBUSF4V3 flight controllers are
equipped with an OSD chip, with the help of
which it is possible to overlay telemetry
parameters (flight altitude, speed, distance
travelled, number of received satellites, battery
charge, etc.) on the video image of the FPV
camera. The Onboard OSD tab is used to
configure the OSD (Figure 11).</p>
      <p>The FPV camera screen field with the selected
parameters is ensquared in green, and the settable
parameters are selected at the bottom, ensquared
in orange.</p>
      <p>More fine adjustment of aircraft flight modes
is performed in the Full Parameter List tab (Figure
12).</p>
      <p>When configuring the firmware of the
ArduPilot copter, one should pay attention to
setting the following parameters:</p>
      <p>AHRS_EKF_TYPE = 2 This parameter
determines which version of the Kalman filter is
used to estimate orientation and position;</p>
      <p>EK2_ENABLE = 1 This enables EKF2.
Turning on EKF2 only triggers mathematical
calculations, but that does not mean that it will be
used for flight control. To use it, you should set
AHRS_EKF_TYPE = 2. After changing the value
of EK2_ENABLE, you must perform a restart
procedure for the parameters to take effect;
EK2_IMU_MASK = 1. One-byte IMU bitmap
for use in EKF2. A separate item of EKF2 will be
launched for each selected IMU. Value = 1 only
uses the first IMU (default), if value = 2 then only
the second IMU is used, value 3 allows the first
and second IMU to be used. Up to 6 additional
IMUs can be used if memory resources and
processing speed permit. There may be
insufficient memory and processing resources to
run multiple items. If this happens, EKF2 will not
start;</p>
      <p>EK2_ALT_SOURCE = 0 defines which
sensor is used as the main one for determining the
altitude: 0: barometer is used (default); 1:
Rangefinder is in use.</p>
      <p>2: GPS is being used. Useful when GPS quality
is very good and barometer drift can be a problem.
For example, if the copter will perform
longdistance missions with elevation differences&gt;
100m;</p>
      <p>EK2_GPS_TYPE = 0: controls the use of GPS.
0: use 3D speed and 2D position from GPS; 1:
use 2D speed and 2D position (GPS speed does
not affect the altitude estimate); 2: use 2D
position; 3: no GPS (it will use the optical flow
from the sensor only if available);</p>
      <p>EK2_CHECK_SCALE scales thresholds that
are used to check GPS accuracy before the EKF is
used. The default is 100. Values greater than 100
increase, and values less than 100 decrease the
maximum GPS error that the EKF accepts. A
value of 200 will double the acceptable GPS error.
For EK2_CHECK_SCALE of the tested aircraft
the value of 130 is set. In this case, it establishes
communication with satellites faster, but also flies
stably;</p>
      <p>AHRS_GPS_GAIN = 0 parameter controls
how much intensive GPS should be used to
correct the position. The parameter for the
airplane should not be equal to 0, as this will lead
to loss of control of the airplane when turning. For
an airplane, the value is 1.0. For a copter is 0. The
consequence of this parameter turned on is the
twitching of the horizon line when the craft is
stationary if the GPS does not perfectly capture
the position and drifts. With strong jumps in GPS
position, the roll can reach critical values, which
will lead to instability of the copter. Therefore, in
copters this parameter is set to 0.</p>
      <p>GPS_AUTO_SWITCH = 0. Setting up
automatic switching between multiple GPS. For
one GPS, the parameter is set to 0.</p>
      <p>The following is how braking is performed in
LOITER flight mode (holding position and
altitude):</p>
      <p>LOIT_ACC_MAX = 500 Maximum
acceleration of position correction in Loiter mode
in cm/s/s. Higher values cause the aircraft to
correct position errors more aggressively (for
example, in gusts of wind);</p>
      <p>LOIT_BRK_ACCEL = 100 Acceleration of
braking when the copter jams on the brakes, in
cm/s/s. Higher values stop the copter faster when
the left-to-left and front-to-back stick of the
controlling equipment is moved to the centre.
Large values of this parameter lead to sharp
braking, which can lead to a rollover of the copter,
especially in gusty winds;</p>
      <p>LOIT_BRK_JERK Braking jerk at Loiter in
cm/sec/sec/sec. Higher values will eliminate
braking more if the pilot moves the sticks during
a braking manoeuvre. The default setting is used.</p>
      <p>Ardupilot software allows performing
automatic formation of the flight path, for
example, for taking photographs, studying the
radiation situation in the area, spraying fields, etc.
Figure 13 shows an example of the formation of a
flight mission for fertilizing a field. The
processing contour is preselected (highlighted in
red) and the flight path is automatically formed to
cover the area that can be treated by the spraying
system (the path is represented by yellow lines)
[21]. Usually, the flight altitude above the ground
is set equal to 1.5-3 m, which should be provided
by the ultrasonic sensor. Its use is especially
important if the field surface is not flat, i.e. there
are depressions and hills.</p>
      <p>In this work, an experimental test of the flight
stability of the quadcopter presented in Fig. 2 with
INAV firmware, ver. 2.6 and Arducopter
firmware, ver. 4.0.5, was carried out. The test was
carried out during winds of different intensity
(table 1) in navigation modes. In fig. 14 (right)
shows the flight path for two firmwares, which are
programmatically set in the Mission Planner
ground station for Arducopter and similarly in
INAV - Configurator for INAV ver.2.6 firmware.
Figure 14 on the left shows the real flight path for
Arducopter ver.4.0.5, which was built using the
Google Earth software package based on log files
from the flight controller. A similar trajectory was
obtained for INAV. As can be seen from Table1,
the flight of the copter in navigation mode on the
firmware INAV ver.2.6 was completely
unsuccessful in a wind of 6-7m / s with gusts. Loss
of stability of the quadcopter was recorded with
its fall at the moment of passing an arbitrary
waypoint, when the stability of the copter was
minimal due to a sharp change in the direction of
flight and a sharp gust of wind. Tests for high
wind speeds were not carried out due to the
obvious advantage of the Arducopter ver.4.0.5
firmware.</p>
      <p>Thus, the expediency of using the
mathematical model of the extended Kalman filter
was experimentally established to ensure the
stability of the flight of a rotor-type UAV.</p>
    </sec>
    <sec id="sec-8">
      <title>5. Conclusions</title>
      <p>1. Experience has shown that the operation of
Arducopter firmware for OMNIBUSF4V3 flight
controller, which was developed for the Pixhawk
family flight controllers is correct.</p>
      <p>2. A test of the stability of the flight of the
quadcopter on a frame of 250 mm during a gusty
wind of 6-7 m/s in navigation modes Arducopter
firmware was carried out. The stability of the
flight in the mode of automatic flight by points
and in the mode of automatic return to the starting
point was noted.</p>
      <p>3. Likewise for INAV firmware, ver. 2.6, flight
stability of the same quadcopter was tested during
a gusty wind of 6-7 m/s in navigation modes.
Significant flight instability was found in the auto
return and point-to-point flight modes. Loss of
stability of the quadcopter with its fall was
recorded.</p>
      <p>4. The expediency of using the mathematical
model of the extended Kalman filter to ensure the
stability of the flight of a rotor-type UAV, which
is used in the arducopter 4.0.5 firmware, has been
experimentally established. It provides better
flight results in navigation modes than the
complimentary filter based firmware (INAV 2.6
firmware). When flying in acro (gyroscope) and
stabilize (gyroscope + accelerometer) modes, the
behavior of the copter for these two firmwares did
not differ noticeably.</p>
      <p>5. It is deemed that the mathematical model of
the extended Kalman filter is expedient to use on
high-performance microcontrollers such as
STM32F4 and STM32F7 for flight in navigation
modes, where many sensors are simultaneously
used to provide information about the position of
the UAV.</p>
      <p>6. The possibility of correct formation of the
flight trajectory in the semi-automatic mode for
taking photographs, studying the radiation
situation of the area, spraying fields, etc. has been
experimentally established for Arducopter
firmware. Formation of a flight mission for INAV
is more primitive, it is performed only in manual
mode, using preliminary calculations.</p>
      <p>7. It has been established that INAV firmware
with the UAV only allows transmitting telemetry
data to the ground station. From the ground
station, changing the UAV flight trajectory
through telemetry is impossible, for example,
when "dragging" the flight point with the mouse
manipulator [22-24]. Arducopter firmware
supports the two-way MAVLink protocol for
receiving and transmitting telemetry data between
the flight controller and the ground station.</p>
      <p>8. For INAV firmware, it was experimentally
impossible to connect the flight over a given
waypoint with the execution of an action, for
example, turning on and off the sprayer nozzle,
dropping the load, turning on/off the video
camera. Arducopter firmware allows doing these.</p>
    </sec>
    <sec id="sec-9">
      <title>6. References</title>
      <p>[1] A. Boyko, AV applications, 2017.</p>
      <p>
        URL:http://robotrends.ru/robopedia/oblastiprimeneniya-bespilotnikov.
[
        <xref ref-type="bibr" rid="ref9">2</xref>
        ] The modernized Spectator drone from OJSC
"Meridian" named after SP Korolyova, 2019.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>_continue=6&amp;v=HvLErmgBRX4&amp;feature=</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <source>emb_logo. [3] Spectator (UAV)</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>_(БПЛА)</article-title>
          . [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Boyko</surname>
          </string-name>
          ,
          <article-title>Spraying plants from drones,</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>vanie-rasteniy-s-bespilotnikov</article-title>
          . [5]
          <string-name>
            <given-names>iNavFlight</given-names>
            <surname>Missions</surname>
          </string-name>
          ,
          <year>2020</year>
          . URL:
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>vFlight-Missions</surname>
            . [6]
            <given-names>Copter</given-names>
          </string-name>
          <string-name>
            <surname>Mission Command List</surname>
          </string-name>
          ,
          <year>2020</year>
          . URL:
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <source>command-list.html. [7] FPV piloting theory</source>
          ,
          <year>2021</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          module/pilot-3part.rst. [8]
          <string-name>
            <given-names>ArduPilot</given-names>
            <surname>Firmware builds</surname>
          </string-name>
          ,
          <year>2020</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          URL:https://firmware.ardupilot.
          <source>org. [9] INAV 2.6.0</source>
          ,
          <year>2020</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <source>eases/tag/2</source>
          .6.0. [10]
          <string-name>
            <given-names>Pixhawk</given-names>
            <surname>Overview</surname>
          </string-name>
          ,
          <year>2020</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <article-title>mon-pixhawk-overview</article-title>
          .html. [11]
          <string-name>
            <surname>Omnibus F4</surname>
          </string-name>
          <article-title>Pro (on-board current sensor)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>and Omnibus F4</surname>
          </string-name>
          <article-title>AIO (no sensor onboard),</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <year>2020</year>
          , URL:
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          omnibusf4pro.html?highlight=inav. [12]
          <string-name>
            <surname>Starlino</surname>
            ,
            <given-names>DCM</given-names>
          </string-name>
          <article-title>Tutorial-An Introduction to</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <given-names>Orientation</given-names>
            <surname>Kinematics</surname>
          </string-name>
          ,
          <year>2011</year>
          , URL:
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          http://www.starlino.com/dcm_tutorial.
          <source>html. [13] Extended Kalman Filter (EKF)</source>
          ,
          <year>2020</year>
          , URL:
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          overview.html. [14]
          <string-name>
            <given-names>Filtr</given-names>
            <surname>Madzhvika</surname>
          </string-name>
          ,
          <year>2015</year>
          , URL:
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          https://habr.com/ru/post/255661. [15]
          <string-name>
            <surname>Ibrahim</surname>
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Mohammed</surname>
            ,
            <given-names>Abdulla I. Abdulla</given-names>
          </string-name>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <article-title>of 3DOF helicopter with hybrid control</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <source>Computer Engineering</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>2</issue>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <year>2020</year>
          ,
          <fpage>1868</fpage>
          -
          <lpage>1884</lpage>
          . doi:
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          10.11591/ijece.v10i2.
          <fpage>pp1868</fpage>
          -
          <lpage>1884</lpage>
          . [16]
          <string-name>
            <surname>Agung</surname>
            <given-names>Prayitno</given-names>
          </string-name>
          , Veronica Indrawati, Ivan
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <source>Computer Engineering</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>4</issue>
          ,
          <year>2018</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          pp.
          <fpage>1939</fpage>
          -
          <lpage>1946</lpage>
          . doi:
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          10.11591/ijece.v8i4.
          <fpage>pp1939</fpage>
          -
          <lpage>1946</lpage>
          . [17]
          <string-name>
            <surname>Almido</surname>
            <given-names>H Ginting</given-names>
          </string-name>
          , Oyas Wahyunggoro,
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <article-title>Controller on SO(3),"</article-title>
          <source>International Journal</source>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          8, no.
          <issue>1</issue>
          ,
          <issue>2018</issue>
          , pp.
          <fpage>566</fpage>
          -
          <lpage>575</lpage>
          . doi:
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          10.11591/ijece.v8i1. [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lienkov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Myasischev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Banzak</surname>
          </string-name>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <source>Engineering Research</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>9</issue>
          ,
          <issue>2020</issue>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <source>doi:10</source>
          .30534/ijeter/2020/200892020. [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lienkov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Myasischev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Komarova</surname>
          </string-name>
          , N.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <string-name>
            <surname>Controllers</surname>
          </string-name>
          ,
          <source>Based On a ATmega 2560 and</source>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          <string-name>
            <given-names>STM32f405</given-names>
            <surname>Microprocessors</surname>
          </string-name>
          , International
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          <string-name>
            <surname>Research</surname>
          </string-name>
          , vol.
          <volume>8</volume>
          , no.
          <issue>8</issue>
          ,
          <issue>2020</issue>
          , pp.
          <fpage>4703</fpage>
          -
          <lpage>4710</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          <source>doi:10</source>
          .30534/ijeter/2020/104882020. [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lienkov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Myasischev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Banzak</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y.</surname>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          <article-title>UAV on the basis of STM32</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          <string-name>
            <surname>Engineering</surname>
          </string-name>
          , vol.
          <volume>9</volume>
          , no.
          <issue>3</issue>
          ,
          <issue>2020</issue>
          , pp.
          <fpage>3506</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          3513. doi:
          <volume>10</volume>
          .30534/ijatcse/2020/156932020. [21]
          <string-name>
            <given-names>Mission</given-names>
            <surname>Planning</surname>
          </string-name>
          ,
          <year>2021</year>
          . URL:
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          <article-title>mission-planning.html</article-title>
          . [22]
          <article-title>Flight by plane using INAV telemetry</article-title>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>URL:https://sites.google.com/site/webstm32</mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          /inav_25_wp_sam/telemetriy-inav. [23]
          <string-name>
            <surname>Chi-Bao</surname>
            <given-names>Le</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dinh-Thuan</surname>
            <given-names>Do</given-names>
          </string-name>
          , Employing
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          10, no.
          <issue>1</issue>
          ,
          <issue>2021</issue>
          , pp.
          <fpage>241</fpage>
          -
          <lpage>248</lpage>
          . doi:
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          10.11591/eei.v10i1.
          <fpage>2102</fpage>
          . [24]
          <string-name>
            <given-names>Deha</given-names>
            <surname>Agus</surname>
          </string-name>
          <string-name>
            <surname>Umarhadi</surname>
          </string-name>
          , Projo Danoedoro,
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          <source>Computer Engineering</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>1</issue>
          ,
          <year>2021</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          pp.
          <fpage>356</fpage>
          -
          <lpage>364</lpage>
          . doi:
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          10.11591/ijece.v11i1.
          <fpage>pp356</fpage>
          -
          <lpage>364</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>