<!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>A method to verify a path planning by a back-propagation arti cial neural network</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Aldo-Francisco Contreras-Gonzalez</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose-Isidro Hernandez-Vega</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>C. Hernandez-Santos</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dolores-Gabriela Palomares-Gorham</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>2001 Col. Tolteca</institution>
          ,
          <addr-line>Guadalupe, Nuevo Leon</addr-line>
          ,
          <country country="MX">Mexico</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Instituto Tecnologico de Nuevo Leon, Division de Estudios de Posgrado e Investigacion</institution>
          ,
          <addr-line>Av. Eloy Cavazos</addr-line>
        </aff>
      </contrib-group>
      <fpage>98</fpage>
      <lpage>105</lpage>
      <abstract>
        <p>This paper proposes a method to reduce the error on the position given by the global position system (GPS), using a back-propagation arti cial neural network (ANN) focused on a known linear path employed as target, which is used on the creation of path planning for an Unmanded Aereal Vehicle (UAV) tested on real time. This document shows the step by step development of the equations used and the algorithm for trigonometric functions and then to a lineal path made by a path planning code. The implementation of this project was made on Python for real time ight in which the GPS data are acquired and graphed to analyse results.</p>
      </abstract>
      <kwd-group>
        <kwd>Path planning</kwd>
        <kwd>Unmanned Aerial Vehicle</kwd>
        <kwd>Arti cial Neural Network</kwd>
        <kwd>Global Position System</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Programming control of autonomous paths for UAVs, nowadays, has been
difcult for the inaccuracy of the received signal from the global position system
(GPS); [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] the signal received is inconsistent because of diverse factors such as
ionospheric and atmospherics delays, satellite clock and receiver errors,
multipath e ects, between others. The destination place is a ected on a range of 5 to
10m from the desired point because the physical location does not match with
the device signal. When the device performs an autonomous path it is physically
following a lineal trajectory, but it is sending an intermittent signal on the space
showing a variation on several points on the space which are not real.
      </p>
      <p>
        Jha, Chattopadhyay, [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] proposes a framework for the direct navigation to
objectives in a reactive form without Global Positioning facilities on dynamic and
unknown environments. A network of mobile sensors is used to localise interest
regions to the path planning of an autonomous mobile robot. The algorithm
developed has been used to spread local decisions for target detection on a mobile
sensor network, thus, an assumption location map (belief system) for the target
detected by the network is achieved.
      </p>
      <p>
        Nieuwenhuisen, M [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] mentions that the good performance on aerial vehicles
on partially known environments to world level require coherent plans based on
incomplete models and fast reactions to obstacles unknown for the real time
path planning on free collisions paths.
      </p>
      <p>
        An arti cial neural network is used to reduce the error given by the global
position system [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and give more accuracy to the point to get on the path [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
as we mentioned, the kind of path is point to point and the algorithm for path
planning has to be accurate and precise to arrive to the point.
      </p>
      <p>
        During the tests that were carried out to feed the arti cial neural network
and establish knowledge, a linear path followed by a thread was conducted; the
data acquired by the GPS of the UAV is stored in real time On this project the
GPS device is used [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] without the inertial measurement unit (IMU).
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>ANN math used</title>
      <p>
        The mathematical method developed here, proposed by Aguado [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], consists
on estimating the network represented on a simpli ed form on the Fig.1. To
illustrate this let us assume that we have a set of data pairs, P = 1; 2; ::N for
the neuron S| of the layer, this is de ned as the functions corresponding to the
sample excitation p data.
      </p>
      <p>We used the back-propagation arti cial neural network shown on Fig. 1; to
use this, we must make a standard data input and output in the range 0-1. To
declare "bias" as random numbers, the input given to the network are values
di erent to zero. A sigmoid function is used as activation function, then the
output of the neuron | of the hidden layer is expressed as:
Excitation of the neuron k of the output layer is calculated analogously by the
expression:
and nally, the output of the neuron k of the output layer is expressed as:
n
Sjp = X Wipj xip + Wnp+1;j</p>
      <p>i=1
hjp = f (Sjp) =</p>
      <p>1
1 + exp( Sjp)
rkp =</p>
      <p>l
X vjpkhjp + vl+1;k</p>
      <p>p
j=1
Okp = f (rkp) =</p>
      <p>1
1 + exp( rjp)
(1)
(2)
(3)
(4)
We now de ne the output error k, for sample p as:
The criterion to be minimized in the sample | is de ned by:
epk = ykp</p>
      <p>Okp
m m
Ep = 21 X(epk)2 = 21 X(ykp</p>
      <p>p 2</p>
      <p>Ok)
k=1
k=1
(5)
(6)</p>
      <p>
        The training process of the neural network consisted in presenting the inputs
sequentially, calculate the outputs on the network, the error and the citerion
E, and to apply the procedure to minimize the function error; the procedure
is to always move in the direction of the negative gradient of the function with
respect to the coe cients w and v, this is called "steepest descent", [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>ANN Algorithm</title>
      <p>The mathematical method was implemented with MATLAB R2014a. In this tool
the equations are written and adapted to the language to estimate any given
function, for number of samples on the network, for number of periods,
for learn coe cient between 0 and 0.9 and for any neuron number |. This is
represented on the algorithm shown below:
Algorithm 1:
1. Compute number of samples
2. Compute function
3. Convert sigmoid function data
4. Compute periods, learn coe cient and neuron number
5. While: ep Number of periods
6. ! For i = 1: neuron number
7. ! ! hjp = f (Sjp) = 1+exp( Sjp)</p>
      <p>1
8. ! For i = 1:neuron number
9. ! ! rkp = Plj=1 vjpkhjp + vlp+1;k
10. ! Error = (T arget</p>
      <p>Okp = f (rkp) = 1+exp( rjp) )
1
11. ! For i = 1:neuron number
12. ! ! using vjpk = vjpk 1 + kphjp
13. ! For i = 1:neuron number
14. ! ! using wipk = wipj 1 + jpxip
15. ! For i = 1:neuron number
16. ! ! using hjp = f (Sjp) = 1+exp1( Sjp)
17. ! For i = 1:neuron number
18. ! ! using rkp = Plj=1 vjpkhjp + vlp+1;k
19. ! using Okp = f (rkp) = 1+exp1( rjp)</p>
      <p>Okp
20. ! using epk = ykp
21. ! ep = ep + 1
22. mse = mean((N sal
23. Plot</p>
      <p>T arget):2)
You can nd this MATLAB code on: https://drive.google.com/open?id=
0B6xtNWuLHIRMT2U0c0gtbG1MNDg
4</p>
    </sec>
    <sec id="sec-4">
      <title>Function graphic</title>
      <p>For any trigonometric or lineal function with one variable, we can use the last
algorithm, in which the number of tests corresponds to the amplitude of the
graph or the number of tests to be estimated in the ANN. Trigonometric
functions such as sine and tangent were tested in order to verify the behaviour and
the mean squared error (mse).</p>
      <p>To match what we have done at the time, for path planning using global
positioning data it is necessary to know the starting point and end point of the
desired path. Once obtained these data, we can create our lineal function full
of points to match with the quantity of inputs as Target, with the input data
obtained from the global position system. After knowing our target input data
and our data target we can create our arti cial neural network.</p>
    </sec>
    <sec id="sec-5">
      <title>Path planning veri cation</title>
      <p>The path planning works like a multithread algorithm. The rst thread named
"data acquisition" is responsible for sending a command to update the UAV
and to perform the most frequent calculations updating these data with global
variables.</p>
      <p>The second thread named "acquisition and writing sample", performs veri
cation of existence of strong GPS signal and checks the level of battery charge,
and once all data is correct, it starts the storage of the sampling information
such as latitude, longitude and height above ground. The third thread named
"Commands sender" is the UAV control; it generates a virtual barrier between
the current point and the next point, checks that the angle is physically relative
to the angle generated against the GPS point and it sends the UAV motion
commands to perform the route.</p>
      <p>
        In tests to feed the neural network and establish knowledge, took just by
walking in a straight line followed by a thread ensuring that is kept as straight
as possible, while advancing, the data acquired by the GPS device are saved,
on this project a only the GPS devise is used [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], without use the inertial
measurement unit (IMU).
The le was plotted, as shown in Fig.2 left, contains 736 points of latitude
and 736 in longitude, using this data to feed the network as a target, they are
generated for each point of the actual travel, as sown on the Fig.2 right.
      </p>
    </sec>
    <sec id="sec-6">
      <title>Results</title>
      <p>
        For testing was used the UAV from Parrot company the Bebop 1, the
programming language was Python, to establish communication and commands sending
was used the library of Martin[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] which allows to connect and move the drone
under commands, this library was modi ed in some parts to have a better
control. The weather conditions were non controlled, under a wind of 20 knot and
a temperature around the 23 - 28 oC.
      </p>
      <p>After feeding the ANN we can see the behaviour (Fig.4) taken by the
estimation of the back-propagation arti cial neural network who is very similar to
the established straight as target with an mse = 7:651903681967e 05.</p>
      <p>Once the ANN was trained, we took the synaptic weights and implemented
them in the path planning algorithm modifying the original data given by the
GPS, as shown in Fig. 3. To test physically this algorithm three ights were
tested as shown in Fig. 5, with the same GPS points to reach for all(Table 1)
and with uncontrolled weather conditions using a ight algorithm of path
planning by GPS; we can compare the improvement in accuracy with respect to the
data given by the GPS (left side without feedback of the ANN and right side
with feedback). The sample data is acquired by generating a le in real time
by saving the current global position of the UAV every second elapsed to be
interpreted and plotted later.</p>
      <p>The same algorithm for path planning was used in all tests. In Fig. 5 red
circles represent points target of the path planning algorithm. On the left side
we have an error in circumference of about 10m (32.8ft); on the contrary, on the
right side (which uses the estimate of the ANN), an error to the circumference
of 1.5m (4.6ft) was obtained. During the ight, this was measured by placing
ags on the testing ground in the points shown in Table 1.</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions and future work</title>
      <p>In this document we studied a method of reducing the error given by the GPS
using path planning algorithm for UAVs. The ANN back-propagation algorithm
predicts the location of the UAV giving a start point and an end point to
generate a straight line that breaks down into the number of data provided by the
GPS. As the UAV moves, the algorithm predicts its location with respect to
the learned error and the point at which it encounters respect to the line, thus
giving a smooth and accurate point to point travel. It is noteworthy that the
tests were taken on a eld without climate controlled conditions and without
obstacles in the path of UAVs. A sampling time of one second is considered, as
the calculated processing time for this algorithm (in a conventional system) is
greater than 0.5 and less than 0.8 seconds.</p>
      <p>
        Our future task is to compare this method and implement a Kalman lter [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
in order to compare the performance and accuracy of the path planning code.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A. Aguado</given-names>
            <surname>Behar</surname>
          </string-name>
          .:
          <article-title>"Temas de identi cacion y control adaptado" Instituto de Ciberntica Matemtica y Fsica (ICIMAF)</article-title>
          ,
          <source>La Habana Cuba</source>
          ,
          <volume>257</volume>
          {
          <fpage>268</fpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>El-Sheimy</surname>
          </string-name>
          , Naser,
          <string-name>
            <surname>Kai-Wei</surname>
            <given-names>Chiang</given-names>
          </string-name>
          , and Aboelmagd Noureldin.:
          <article-title>"The utilization of arti cial neural networks for multisensor system integration in navigation and positioning instruments." Instrumentation and Measurement</article-title>
          ,
          <source>IEEE Transactions on 55.5</source>
          ,
          <issue>1606</issue>
          {
          <fpage>1615</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Guerrero</surname>
          </string-name>
          ,
          <string-name>
            <surname>Juan S. Guerrero</surname>
          </string-name>
          , et al.:
          <article-title>"Instrumentation of an Array of Ultrasonic Sensors and Data Processing for Unmanned Aerial Vehicle (UAV) for Teaching the Application of the Kalman Filter."</article-title>
          <source>Procedia Computer Science</source>
          <volume>75</volume>
          :
          <fpage>375</fpage>
          {
          <fpage>380</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Jha</surname>
          </string-name>
          ,
          <string-name>
            <surname>Devesh</surname>
            <given-names>K.</given-names>
          </string-name>
          , et al.:
          <article-title>Path planning in GPS-denied environments via collective intelligence of distributed sensor networks</article-title>
          .
          <source>International Journal of Control</source>
          ,
          <volume>1</volume>
          {
          <fpage>16</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Niewenhuisen</surname>
          </string-name>
          , Matthias; Behnke, Sven.:
          <article-title>Layered mission and path planning for MAV navigation with partial environment knowledge</article-title>
          .
          <source>En Intelligent Autonomous Systems 13</source>
          . Springer International Publishing,
          <volume>307</volume>
          {
          <fpage>319</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ryu</surname>
          </string-name>
          , Ji Hyoung; Gankhuyag, Ganduulga; Ching, Kil To.
          <article-title>: Navigation system heading and position accuracy improvement through GPS and INS data fusion</article-title>
          .
          <source>Journal of Sensors</source>
          ,
          <volume>501</volume>
          ,
          <issue>7942963</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>7. robotika/katarina (online) GitHub, https://github.com/robotika/katarina</mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Sharaf</surname>
          </string-name>
          , Rashad, and Aboelmagd Noureldin.:
          <article-title>"Sensor integration for satellite-based vehicular navigation using neural networks." Neural Networks</article-title>
          , IEEE Transactions,
          <volume>18</volume>
          .2,
          <issue>589</issue>
          {
          <fpage>594</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Teunissen</surname>
            ,
            <given-names>P. J. G.</given-names>
          </string-name>
          :
          <article-title>Least-squares estimation of the integer GPS ambiguities. En Invited lecture, section IV theory and methodology</article-title>
          , IAG general meeting, Beijing, China. (
          <year>1993</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Zhao</surname>
          </string-name>
          ,
          <article-title>Handong; LI, Zhipeng.: Ultra-tight GPS/IMU Integration based Long-Range Rocket Projectile Navigation</article-title>
          . Defence
          <source>Science Journal</source>
          ,
          <volume>66</volume>
          .1,
          <issue>64</issue>
          {
          <fpage>70</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>