Système d'information stratégique et agriculture (serveur d'exploration)

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

Merge Fuzzy Visual Servoing and GPS-Based Planning to Obtain a Proper Navigation Behavior for a Small Crop-Inspection Robot

Identifieur interne : 000017 ( Pmc/Checkpoint ); précédent : 000016; suivant : 000018

Merge Fuzzy Visual Servoing and GPS-Based Planning to Obtain a Proper Navigation Behavior for a Small Crop-Inspection Robot

Auteurs : José M. Bengochea-Guevara ; Jesus Conesa-Mu Oz ; Dionisio Andújar ; Angela Ribeiro

Source :

RBID : PMC:4813851

Abstract

The concept of precision agriculture, which proposes farming management adapted to crop variability, has emerged in recent years. To effectively implement precision agriculture, data must be gathered from the field in an automated manner at minimal cost. In this study, a small autonomous field inspection vehicle was developed to minimise the impact of the scouting on the crop and soil compaction. The proposed approach integrates a camera with a GPS receiver to obtain a set of basic behaviours required of an autonomous mobile robot to inspect a crop field with full coverage. A path planner considered the field contour and the crop type to determine the best inspection route. An image-processing method capable of extracting the central crop row under uncontrolled lighting conditions in real time from images acquired with a reflex camera positioned on the front of the robot was developed. Two fuzzy controllers were also designed and developed to achieve vision-guided navigation. A method for detecting the end of a crop row using camera-acquired images was developed. In addition, manoeuvres necessary for the robot to change rows were established. These manoeuvres enabled the robot to autonomously cover the entire crop by following a previously established plan and without stepping on the crop row, which is an essential behaviour for covering crops such as maize without damaging them.


Url:
DOI: 10.3390/s16030276
PubMed: 26927102
PubMed Central: 4813851


Affiliations:


Links toward previous steps (curation, corpus...)


Links to Exploration step

PMC:4813851

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">Merge Fuzzy Visual Servoing and GPS-Based Planning to Obtain a Proper Navigation Behavior for a Small Crop-Inspection Robot</title>
<author>
<name sortKey="Bengochea Guevara, Jose M" sort="Bengochea Guevara, Jose M" uniqKey="Bengochea Guevara J" first="José M." last="Bengochea-Guevara">José M. Bengochea-Guevara</name>
</author>
<author>
<name sortKey="Conesa Mu Oz, Jesus" sort="Conesa Mu Oz, Jesus" uniqKey="Conesa Mu Oz J" first="Jesus" last="Conesa-Mu Oz">Jesus Conesa-Mu Oz</name>
</author>
<author>
<name sortKey="Andujar, Dionisio" sort="Andujar, Dionisio" uniqKey="Andujar D" first="Dionisio" last="Andújar">Dionisio Andújar</name>
</author>
<author>
<name sortKey="Ribeiro, Angela" sort="Ribeiro, Angela" uniqKey="Ribeiro A" first="Angela" last="Ribeiro">Angela Ribeiro</name>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">26927102</idno>
<idno type="pmc">4813851</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4813851</idno>
<idno type="RBID">PMC:4813851</idno>
<idno type="doi">10.3390/s16030276</idno>
<date when="2016">2016</date>
<idno type="wicri:Area/Pmc/Corpus">000034</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Corpus" wicri:corpus="PMC">000034</idno>
<idno type="wicri:Area/Pmc/Curation">000034</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Curation">000034</idno>
<idno type="wicri:Area/Pmc/Checkpoint">000017</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Checkpoint">000017</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">Merge Fuzzy Visual Servoing and GPS-Based Planning to Obtain a Proper Navigation Behavior for a Small Crop-Inspection Robot</title>
<author>
<name sortKey="Bengochea Guevara, Jose M" sort="Bengochea Guevara, Jose M" uniqKey="Bengochea Guevara J" first="José M." last="Bengochea-Guevara">José M. Bengochea-Guevara</name>
</author>
<author>
<name sortKey="Conesa Mu Oz, Jesus" sort="Conesa Mu Oz, Jesus" uniqKey="Conesa Mu Oz J" first="Jesus" last="Conesa-Mu Oz">Jesus Conesa-Mu Oz</name>
</author>
<author>
<name sortKey="Andujar, Dionisio" sort="Andujar, Dionisio" uniqKey="Andujar D" first="Dionisio" last="Andújar">Dionisio Andújar</name>
</author>
<author>
<name sortKey="Ribeiro, Angela" sort="Ribeiro, Angela" uniqKey="Ribeiro A" first="Angela" last="Ribeiro">Angela Ribeiro</name>
</author>
</analytic>
<series>
<title level="j">Sensors (Basel, Switzerland)</title>
<idno type="eISSN">1424-8220</idno>
<imprint>
<date when="2016">2016</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<p>The concept of precision agriculture, which proposes farming management adapted to crop variability, has emerged in recent years. To effectively implement precision agriculture, data must be gathered from the field in an automated manner at minimal cost. In this study, a small autonomous field inspection vehicle was developed to minimise the impact of the scouting on the crop and soil compaction. The proposed approach integrates a camera with a GPS receiver to obtain a set of basic behaviours required of an autonomous mobile robot to inspect a crop field with full coverage. A path planner considered the field contour and the crop type to determine the best inspection route. An image-processing method capable of extracting the central crop row under uncontrolled lighting conditions in real time from images acquired with a reflex camera positioned on the front of the robot was developed. Two fuzzy controllers were also designed and developed to achieve vision-guided navigation. A method for detecting the end of a crop row using camera-acquired images was developed. In addition, manoeuvres necessary for the robot to change rows were established. These manoeuvres enabled the robot to autonomously cover the entire crop by following a previously established plan and without stepping on the crop row, which is an essential behaviour for covering crops such as maize without damaging them.</p>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Gebbers, R" uniqKey="Gebbers R">R. Gebbers</name>
</author>
<author>
<name sortKey="Adamchuk, V I" uniqKey="Adamchuk V">V.I. Adamchuk</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Srinivasan, A" uniqKey="Srinivasan A">A. Srinivasan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Stafford, J V" uniqKey="Stafford J">J.V. Stafford</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Reid, J F" uniqKey="Reid J">J.F. Reid</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Senay, G B" uniqKey="Senay G">G.B. Senay</name>
</author>
<author>
<name sortKey="Ward, A D" uniqKey="Ward A">A.D. Ward</name>
</author>
<author>
<name sortKey="Lyon, J G" uniqKey="Lyon J">J.G. Lyon</name>
</author>
<author>
<name sortKey="Fausey, N R" uniqKey="Fausey N">N.R. Fausey</name>
</author>
<author>
<name sortKey="Nokes, S E" uniqKey="Nokes S">S.E. Nokes</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Rew, L J" uniqKey="Rew L">L.J. Rew</name>
</author>
<author>
<name sortKey="Cousens, R D" uniqKey="Cousens R">R.D. Cousens</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Marshall, E J P" uniqKey="Marshall E">E.J.P. Marshall</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Slaughter, D C" uniqKey="Slaughter D">D.C. Slaughter</name>
</author>
<author>
<name sortKey="Giles, D K" uniqKey="Giles D">D.K. Giles</name>
</author>
<author>
<name sortKey="Downey, D" uniqKey="Downey D">D. Downey</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Li, M" uniqKey="Li M">M. Li</name>
</author>
<author>
<name sortKey="Imou, K" uniqKey="Imou K">K. Imou</name>
</author>
<author>
<name sortKey="Wakabayashi, K" uniqKey="Wakabayashi K">K. Wakabayashi</name>
</author>
<author>
<name sortKey="Yokoyama, S" uniqKey="Yokoyama S">S. Yokoyama</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Stoll, A" uniqKey="Stoll A">A. Stoll</name>
</author>
<author>
<name sortKey="Kutzbach, H D" uniqKey="Kutzbach H">H.D. Kutzbach</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Blackmore, B S" uniqKey="Blackmore B">B.S. Blackmore</name>
</author>
<author>
<name sortKey="Griepentrog, H W" uniqKey="Griepentrog H">H.W. Griepentrog</name>
</author>
<author>
<name sortKey="Nielsen, H" uniqKey="Nielsen H">H. Nielsen</name>
</author>
<author>
<name sortKey="N Rremark, M" uniqKey="N Rremark M">M. Nørremark</name>
</author>
<author>
<name sortKey="Resting Jeppesen, J" uniqKey="Resting Jeppesen J">J. Resting-Jeppesen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Gomez Gil, J" uniqKey="Gomez Gil J">J. Gomez-Gil</name>
</author>
<author>
<name sortKey="Alonso Garcia, S" uniqKey="Alonso Garcia S">S. Alonso-Garcia</name>
</author>
<author>
<name sortKey="G Mez Gil, F J" uniqKey="G Mez Gil F">F.J. Gómez-Gil</name>
</author>
<author>
<name sortKey="Stombaugh, T" uniqKey="Stombaugh T">T. Stombaugh</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Alonso Garcia, S" uniqKey="Alonso Garcia S">S. Alonso-Garcia</name>
</author>
<author>
<name sortKey="Gomez Gil, J" uniqKey="Gomez Gil J">J. Gomez-Gil</name>
</author>
<author>
<name sortKey="Arribas, J I" uniqKey="Arribas J">J.I. Arribas</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Eaton, R" uniqKey="Eaton R">R. Eaton</name>
</author>
<author>
<name sortKey="Katupitiya, J" uniqKey="Katupitiya J">J. Katupitiya</name>
</author>
<author>
<name sortKey="Siew, K W" uniqKey="Siew K">K.W. Siew</name>
</author>
<author>
<name sortKey="Howarth, B" uniqKey="Howarth B">B. Howarth</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kise, M" uniqKey="Kise M">M. Kise</name>
</author>
<author>
<name sortKey="Noguchi, N" uniqKey="Noguchi N">N. Noguchi</name>
</author>
<author>
<name sortKey="Ishii, K" uniqKey="Ishii K">K. Ishii</name>
</author>
<author>
<name sortKey="Terao, H" uniqKey="Terao H">H. Terao</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Nagasaka, Y" uniqKey="Nagasaka Y">Y. Nagasaka</name>
</author>
<author>
<name sortKey="Umeda, N" uniqKey="Umeda N">N. Umeda</name>
</author>
<author>
<name sortKey="Kanetai, Y" uniqKey="Kanetai Y">Y. Kanetai</name>
</author>
<author>
<name sortKey="Taniwaki, K" uniqKey="Taniwaki K">K. Taniwaki</name>
</author>
<author>
<name sortKey="Sasaki, Y" uniqKey="Sasaki Y">Y. Sasaki</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Noguchi, N" uniqKey="Noguchi N">N. Noguchi</name>
</author>
<author>
<name sortKey="Kise, M" uniqKey="Kise M">M. Kise</name>
</author>
<author>
<name sortKey="Ishii, K" uniqKey="Ishii K">K. Ishii</name>
</author>
<author>
<name sortKey="Terao, H" uniqKey="Terao H">H. Terao</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bak, T" uniqKey="Bak T">T. Bak</name>
</author>
<author>
<name sortKey="Jakobsen, H" uniqKey="Jakobsen H">H. Jakobsen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Marchant, J A" uniqKey="Marchant J">J.A. Marchant</name>
</author>
<author>
<name sortKey="Hague, T" uniqKey="Hague T">T. Hague</name>
</author>
<author>
<name sortKey="Tillett, N D" uniqKey="Tillett N">N.D. Tillett</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Billingsley, J" uniqKey="Billingsley J">J. Billingsley</name>
</author>
<author>
<name sortKey="Schoenfisch, M" uniqKey="Schoenfisch M">M. Schoenfisch</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Slaughter, D C" uniqKey="Slaughter D">D.C. Slaughter</name>
</author>
<author>
<name sortKey="Chen, P" uniqKey="Chen P">P. Chen</name>
</author>
<author>
<name sortKey="Curley, R G" uniqKey="Curley R">R.G. Curley</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tillett, N D" uniqKey="Tillett N">N.D. Tillett</name>
</author>
<author>
<name sortKey="Hague, T" uniqKey="Hague T">T. Hague</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey=" Strand, B" uniqKey=" Strand B">B. Åstrand</name>
</author>
<author>
<name sortKey="Baerveldt, A J" uniqKey="Baerveldt A">A.-J. Baerveldt</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Benson, E R" uniqKey="Benson E">E.R. Benson</name>
</author>
<author>
<name sortKey="Reid, J F" uniqKey="Reid J">J.F. Reid</name>
</author>
<author>
<name sortKey="Zhang, Q" uniqKey="Zhang Q">Q. Zhang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Gottschalk, R" uniqKey="Gottschalk R">R. Gottschalk</name>
</author>
<author>
<name sortKey="Burgos Artizzu, X P" uniqKey="Burgos Artizzu X">X.P. Burgos-Artizzu</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kise, M" uniqKey="Kise M">M. Kise</name>
</author>
<author>
<name sortKey="Zhang, Q" uniqKey="Zhang Q">Q. Zhang</name>
</author>
<author>
<name sortKey="Rovira Mas, F" uniqKey="Rovira Mas F">F. Rovira Más</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sainz Costa, N" uniqKey="Sainz Costa N">N. Sainz-Costa</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
<author>
<name sortKey="Burgos Artizzu, X P" uniqKey="Burgos Artizzu X">X.P. Burgos-Artizzu</name>
</author>
<author>
<name sortKey="Guijarro, M" uniqKey="Guijarro M">M. Guijarro</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="S Gaard, H T" uniqKey="S Gaard H">H.T. Søgaard</name>
</author>
<author>
<name sortKey="Olsen, H J" uniqKey="Olsen H">H.J. Olsen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hague, T" uniqKey="Hague T">T. Hague</name>
</author>
<author>
<name sortKey="Tillett, N D" uniqKey="Tillett N">N.D. Tillett</name>
</author>
<author>
<name sortKey="Wheeler, H" uniqKey="Wheeler H">H. Wheeler</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hough, P V" uniqKey="Hough P">P.V. Hough</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Marchant, J A" uniqKey="Marchant J">J.A. Marchant</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hague, T" uniqKey="Hague T">T. Hague</name>
</author>
<author>
<name sortKey="Marchant, J A" uniqKey="Marchant J">J.A. Marchant</name>
</author>
<author>
<name sortKey="Tillett, D" uniqKey="Tillett D">D. Tillett</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Leemans, V" uniqKey="Leemans V">V. Leemans</name>
</author>
<author>
<name sortKey="Destain, M F" uniqKey="Destain M">M.-F. Destain</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tellaeche, A" uniqKey="Tellaeche A">A. Tellaeche</name>
</author>
<author>
<name sortKey="Burgos Artizzu, X P" uniqKey="Burgos Artizzu X">X.P. Burgos-Artizzu</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tellaeche, A" uniqKey="Tellaeche A">A. Tellaeche</name>
</author>
<author>
<name sortKey="Burgosartizzu, X P" uniqKey="Burgosartizzu X">X.P. BurgosArtizzu</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
<author>
<name sortKey="Fernandez Quintanilla, C" uniqKey="Fernandez Quintanilla C">C. Fernández-Quintanilla</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tellaeche, A" uniqKey="Tellaeche A">A. Tellaeche</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
<author>
<name sortKey="Burgos Artizzu, X P" uniqKey="Burgos Artizzu X">X.P. Burgos-Artizzu</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kise, M" uniqKey="Kise M">M. Kise</name>
</author>
<author>
<name sortKey="Zhang, Q" uniqKey="Zhang Q">Q. Zhang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Vioix, J B" uniqKey="Vioix J">J.-B. Vioix</name>
</author>
<author>
<name sortKey="Douzals, J P" uniqKey="Douzals J">J.-P. Douzals</name>
</author>
<author>
<name sortKey="Truchetet, F" uniqKey="Truchetet F">F. Truchetet</name>
</author>
<author>
<name sortKey="Assemat, L" uniqKey="Assemat L">L. Assémat</name>
</author>
<author>
<name sortKey="Guillemin, J P" uniqKey="Guillemin J">J.-P. Guillemin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bossu, J" uniqKey="Bossu J">J. Bossu</name>
</author>
<author>
<name sortKey="Gee, C" uniqKey="Gee C">C. Gée</name>
</author>
<author>
<name sortKey="Guillemin, J P" uniqKey="Guillemin J">J.P. Guillemin</name>
</author>
<author>
<name sortKey="Truchetet, F" uniqKey="Truchetet F">F. Truchetet</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bossu, J" uniqKey="Bossu J">J. Bossu</name>
</author>
<author>
<name sortKey="Gee, C" uniqKey="Gee C">C. Gée</name>
</author>
<author>
<name sortKey="Jones, G" uniqKey="Jones G">G. Jones</name>
</author>
<author>
<name sortKey="Truchetet, F" uniqKey="Truchetet F">F. Truchetet</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Romeo, J" uniqKey="Romeo J">J. Romeo</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
<author>
<name sortKey="Montalvo, M" uniqKey="Montalvo M">M. Montalvo</name>
</author>
<author>
<name sortKey="Guerrero, J M" uniqKey="Guerrero J">J.M. Guerrero</name>
</author>
<author>
<name sortKey="Guijarro, M" uniqKey="Guijarro M">M. Guijarro</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Conesa Mu Oz, J" uniqKey="Conesa Mu Oz J">J. Conesa-Muñoz</name>
</author>
<author>
<name sortKey="Gonzalez De Soto, M" uniqKey="Gonzalez De Soto M">M. Gonzalez-de-Soto</name>
</author>
<author>
<name sortKey="Gonzalez De Santos, P" uniqKey="Gonzalez De Santos P">P. Gonzalez-de-Santos</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bochtis, D D" uniqKey="Bochtis D">D.D. Bochtis</name>
</author>
<author>
<name sortKey="S Rensen, C G" uniqKey="S Rensen C">C.G. Sørensen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Conesa Munoz, J" uniqKey="Conesa Munoz J">J. Conesa-Munoz</name>
</author>
<author>
<name sortKey="Bengochea Guevara, J M" uniqKey="Bengochea Guevara J">J.M. Bengochea-Guevara</name>
</author>
<author>
<name sortKey="Andujar, D" uniqKey="Andujar D">D. Andujar</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Meyer, G E" uniqKey="Meyer G">G.E. Meyer</name>
</author>
<author>
<name sortKey="Neto, J C" uniqKey="Neto J">J.C. Neto</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Woebbecke, D M" uniqKey="Woebbecke D">D.M. Woebbecke</name>
</author>
<author>
<name sortKey="Meyer, G E" uniqKey="Meyer G">G.E. Meyer</name>
</author>
<author>
<name sortKey="Von Bargen, K" uniqKey="Von Bargen K">K. Von Bargen</name>
</author>
<author>
<name sortKey="Mortensen, D A" uniqKey="Mortensen D">D.A. Mortensen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Andreasen, C" uniqKey="Andreasen C">C. Andreasen</name>
</author>
<author>
<name sortKey="Rudemo, M" uniqKey="Rudemo M">M. Rudemo</name>
</author>
<author>
<name sortKey="Sevestre, S" uniqKey="Sevestre S">S. Sevestre</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Perez, A J" uniqKey="Perez A">A.J. Perez</name>
</author>
<author>
<name sortKey="Lopez, F" uniqKey="Lopez F">F. Lopez</name>
</author>
<author>
<name sortKey="Benlloch, J V" uniqKey="Benlloch J">J.V. Benlloch</name>
</author>
<author>
<name sortKey="Christensen, S" uniqKey="Christensen S">S. Christensen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Aitkenhead, M J" uniqKey="Aitkenhead M">M.J. Aitkenhead</name>
</author>
<author>
<name sortKey="Dalgetty, I A" uniqKey="Dalgetty I">I.A. Dalgetty</name>
</author>
<author>
<name sortKey="Mullins, C E" uniqKey="Mullins C">C.E. Mullins</name>
</author>
<author>
<name sortKey="Mcdonald, A J S" uniqKey="Mcdonald A">A.J.S. McDonald</name>
</author>
<author>
<name sortKey="Strachan, N J C" uniqKey="Strachan N">N.J.C. Strachan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Yang, C C" uniqKey="Yang C">C.-C. Yang</name>
</author>
<author>
<name sortKey="Prasher, S O" uniqKey="Prasher S">S.O. Prasher</name>
</author>
<author>
<name sortKey="Landry, J A" uniqKey="Landry J">J.-A. Landry</name>
</author>
<author>
<name sortKey="Ramaswamy, H S" uniqKey="Ramaswamy H">H.S. Ramaswamy</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
<author>
<name sortKey="Fernandez Quintanilla, C" uniqKey="Fernandez Quintanilla C">C. Fernández-Quintanilla</name>
</author>
<author>
<name sortKey="Barroso, J" uniqKey="Barroso J">J. Barroso</name>
</author>
<author>
<name sortKey="Garcia Alegre, M C" uniqKey="Garcia Alegre M">M.C. García-Alegre</name>
</author>
<author>
<name sortKey="Stafford, J V" uniqKey="Stafford J">J.V. Stafford</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Van Evert, F K" uniqKey="Van Evert F">F.K. Van Evert</name>
</author>
<author>
<name sortKey="Van Der Heijden, G W" uniqKey="Van Der Heijden G">G.W. Van Der Heijden</name>
</author>
<author>
<name sortKey="Lotz, L A" uniqKey="Lotz L">L.A. Lotz</name>
</author>
<author>
<name sortKey="Polder, G" uniqKey="Polder G">G. Polder</name>
</author>
<author>
<name sortKey="Lamaker, A" uniqKey="Lamaker A">A. Lamaker</name>
</author>
<author>
<name sortKey="De Jong, A" uniqKey="De Jong A">A. De Jong</name>
</author>
<author>
<name sortKey="Kuyper, M C" uniqKey="Kuyper M">M.C. Kuyper</name>
</author>
<author>
<name sortKey="Groendijk, E J" uniqKey="Groendijk E">E.J. Groendijk</name>
</author>
<author>
<name sortKey="Neeteson, J J" uniqKey="Neeteson J">J.J. Neeteson</name>
</author>
<author>
<name sortKey="Van Der Zalm, T" uniqKey="Van Der Zalm T">T. Van der Zalm</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Burgos Artizzu, X P" uniqKey="Burgos Artizzu X">X.P. Burgos-Artizzu</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
<author>
<name sortKey="Tellaeche, A" uniqKey="Tellaeche A">A. Tellaeche</name>
</author>
<author>
<name sortKey="Pajares, G" uniqKey="Pajares G">G. Pajares</name>
</author>
<author>
<name sortKey="Fernandez Quintanilla, C" uniqKey="Fernandez Quintanilla C">C. Fernández-Quintanilla</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bengochea Guevara, J M" uniqKey="Bengochea Guevara J">J.M. Bengochea-Guevara</name>
</author>
<author>
<name sortKey="Burgos Artizzu, X P" uniqKey="Burgos Artizzu X">X.P. Burgos Artizzu</name>
</author>
<author>
<name sortKey="Ribeiro, A" uniqKey="Ribeiro A">A. Ribeiro</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sheikholeslam, S" uniqKey="Sheikholeslam S">S. Sheikholeslam</name>
</author>
<author>
<name sortKey="Desoer, C" uniqKey="Desoer C">C. Desoer</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Rossetter, E J" uniqKey="Rossetter E">E.J. Rossetter</name>
</author>
<author>
<name sortKey="Gerdes, J C" uniqKey="Gerdes J">J.C. Gerdes</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Pomerleau, D A" uniqKey="Pomerleau D">D.A. Pomerleau</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sugeno, M" uniqKey="Sugeno M">M. Sugeno</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zadeh, L A" uniqKey="Zadeh L">L.A. Zadeh</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Fraichard, T" uniqKey="Fraichard T">T. Fraichard</name>
</author>
<author>
<name sortKey="Garnier, P" uniqKey="Garnier P">P. Garnier</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Naranjo, J E" uniqKey="Naranjo J">J.E. Naranjo</name>
</author>
<author>
<name sortKey="Sotelo, M" uniqKey="Sotelo M">M. Sotelo</name>
</author>
<author>
<name sortKey="Gonzalez, C" uniqKey="Gonzalez C">C. Gonzalez</name>
</author>
<author>
<name sortKey="Garcia, R" uniqKey="Garcia R">R. Garcia</name>
</author>
<author>
<name sortKey="Sotelo, M A" uniqKey="Sotelo M">M.A. Sotelo</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Pradhan, S K" uniqKey="Pradhan S">S.K. Pradhan</name>
</author>
<author>
<name sortKey="Parhi, D R" uniqKey="Parhi D">D.R. Parhi</name>
</author>
<author>
<name sortKey="Panda, A K" uniqKey="Panda A">A.K. Panda</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kodagoda, K R S" uniqKey="Kodagoda K">K.R.S. Kodagoda</name>
</author>
<author>
<name sortKey="Wijesoma, W S" uniqKey="Wijesoma W">W.S. Wijesoma</name>
</author>
<author>
<name sortKey="Teoh, E K" uniqKey="Teoh E">E.K. Teoh</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Antonelli, G" uniqKey="Antonelli G">G. Antonelli</name>
</author>
<author>
<name sortKey="Chiaverini, S" uniqKey="Chiaverini S">S. Chiaverini</name>
</author>
<author>
<name sortKey="Fusco, G" uniqKey="Fusco G">G. Fusco</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors (Basel)</journal-id>
<journal-id journal-id-type="iso-abbrev">Sensors (Basel)</journal-id>
<journal-id journal-id-type="publisher-id">sensors</journal-id>
<journal-title-group>
<journal-title>Sensors (Basel, Switzerland)</journal-title>
</journal-title-group>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>MDPI</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">26927102</article-id>
<article-id pub-id-type="pmc">4813851</article-id>
<article-id pub-id-type="doi">10.3390/s16030276</article-id>
<article-id pub-id-type="publisher-id">sensors-16-00276</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Merge Fuzzy Visual Servoing and GPS-Based Planning to Obtain a Proper Navigation Behavior for a Small Crop-Inspection Robot</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Bengochea-Guevara</surname>
<given-names>José M.</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Conesa-Muñoz</surname>
<given-names>Jesus</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Andújar</surname>
<given-names>Dionisio</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ribeiro</surname>
<given-names>Angela</given-names>
</name>
<xref rid="c1-sensors-16-00276" ref-type="corresp">*</xref>
</contrib>
</contrib-group>
<contrib-group>
<contrib contrib-type="editor">
<name>
<surname>Pajares Martinsanz</surname>
<given-names>Gonzalo</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<aff id="af1-sensors-16-00276">Center for Automation and Robotics, CSIC-UPM, Arganda del Rey, Madrid 28500, Spain;
<email>jose.bengochea@csic.es</email>
(J.M.B.-G.);
<email>jesus.conesa@csic.es</email>
(J.C.-M.);
<email>dionisioandujar@hotmail.com</email>
(D.A.)</aff>
<author-notes>
<corresp id="c1-sensors-16-00276">
<label>*</label>
Correspondence:
<email>angela.ribeiro@csic.es</email>
; Tel.: +34-918-711-900; Fax: +34-918-717-050</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>24</day>
<month>2</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="collection">
<month>3</month>
<year>2016</year>
</pub-date>
<volume>16</volume>
<issue>3</issue>
<elocation-id>276</elocation-id>
<history>
<date date-type="received">
<day>21</day>
<month>12</month>
<year>2015</year>
</date>
<date date-type="accepted">
<day>19</day>
<month>2</month>
<year>2016</year>
</date>
</history>
<permissions>
<copyright-statement>© 2016 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2016</copyright-year>
<license>
<license-p>
<pmc-comment>CREATIVE COMMONS</pmc-comment>
This article is an open access article distributed under the terms and conditions of the Creative Commons by Attribution (CC-BY) license (
<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</ext-link>
).</license-p>
</license>
</permissions>
<abstract>
<p>The concept of precision agriculture, which proposes farming management adapted to crop variability, has emerged in recent years. To effectively implement precision agriculture, data must be gathered from the field in an automated manner at minimal cost. In this study, a small autonomous field inspection vehicle was developed to minimise the impact of the scouting on the crop and soil compaction. The proposed approach integrates a camera with a GPS receiver to obtain a set of basic behaviours required of an autonomous mobile robot to inspect a crop field with full coverage. A path planner considered the field contour and the crop type to determine the best inspection route. An image-processing method capable of extracting the central crop row under uncontrolled lighting conditions in real time from images acquired with a reflex camera positioned on the front of the robot was developed. Two fuzzy controllers were also designed and developed to achieve vision-guided navigation. A method for detecting the end of a crop row using camera-acquired images was developed. In addition, manoeuvres necessary for the robot to change rows were established. These manoeuvres enabled the robot to autonomously cover the entire crop by following a previously established plan and without stepping on the crop row, which is an essential behaviour for covering crops such as maize without damaging them.</p>
</abstract>
<kwd-group>
<kwd>generation of autonomous behaviour</kwd>
<kwd>crop inspection</kwd>
<kwd>visual servoing</kwd>
<kwd>fuzzy control</kwd>
<kwd>precision agriculture</kwd>
<kwd>GPS</kwd>
</kwd-group>
</article-meta>
</front>
<floats-group>
<fig id="sensors-16-00276-f001" position="float">
<label>Figure 1</label>
<caption>
<p>(
<bold>a</bold>
) The system architecture. (
<bold>b</bold>
) Devices integrated in the mBase-MR7 robot (right) and a maize crop field (left).</p>
</caption>
<graphic xlink:href="sensors-16-00276-g001"></graphic>
</fig>
<fig id="sensors-16-00276-f002" position="float">
<label>Figure 2</label>
<caption>
<p>Path taken by the planner traversed all rows of the crop field in which the experiments were performed.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g002"></graphic>
</fig>
<fig id="sensors-16-00276-f003" position="float">
<label>Figure 3</label>
<caption>
<p>Pose of the robot with respect to the central crop row.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g003"></graphic>
</fig>
<fig id="sensors-16-00276-f004" position="float">
<label>Figure 4</label>
<caption>
<p>(
<bold>a</bold>
) A typical image acquired by the camera of the robot. (
<bold>b</bold>
) The working area of the image is delimited in red.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g004"></graphic>
</fig>
<fig id="sensors-16-00276-f005" position="float">
<label>Figure 5</label>
<caption>
<p>Diagram of the image processing phase.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g005"></graphic>
</fig>
<fig id="sensors-16-00276-f006" position="float">
<label>Figure 6</label>
<caption>
<p>(
<bold>a</bold>
) Original image with marked weed presence. (
<bold>b</bold>
) Segmented image.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g006"></graphic>
</fig>
<fig id="sensors-16-00276-f007" position="float">
<label>Figure 7</label>
<caption>
<p>(
<bold>a</bold>
) Segmented image. (
<bold>b</bold>
) Central crop row detected by applying the proposed detection method to
<xref ref-type="fig" rid="sensors-16-00276-f006">Figure 6</xref>
a.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g007"></graphic>
</fig>
<fig id="sensors-16-00276-f008" position="float">
<label>Figure 8</label>
<caption>
<p>(
<bold>a</bold>
) Central crop row obtained in the previous stage. (
<bold>b</bold>
) White and black columns defined by the algorithm from
<xref ref-type="fig" rid="sensors-16-00276-f008">Figure 8</xref>
a. (
<bold>c</bold>
) Straight line defining the crop row centre in
<xref ref-type="fig" rid="sensors-16-00276-f008">Figure 8</xref>
a.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g008"></graphic>
</fig>
<fig id="sensors-16-00276-f009" position="float">
<label>Figure 9</label>
<caption>
<p>Visual scheme of the developed control.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g009"></graphic>
</fig>
<fig id="sensors-16-00276-f010" position="float">
<label>Figure 10</label>
<caption>
<p>Angular speed controller. Fuzzy sets of input variables: (
<bold>a</bold>
) offset and (
<bold>b</bold>
) angle.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g010"></graphic>
</fig>
<fig id="sensors-16-00276-f011" position="float">
<label>Figure 11</label>
<caption>
<p>Linear speed controller. Fuzzy sets of input variables: (
<bold>a</bold>
) offset and (
<bold>b</bold>
) angle.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g011"></graphic>
</fig>
<fig id="sensors-16-00276-f012" position="float">
<label>Figure 12</label>
<caption>
<p>Fuzzy sets for the output variables: (
<bold>a</bold>
) angular speed and (
<bold>b</bold>
) linear speed.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g012"></graphic>
</fig>
<fig id="sensors-16-00276-f013" position="float">
<label>Figure 13</label>
<caption>
<p>(
<bold>a</bold>
) Image acquired by the robot of the end of a crop row. (
<bold>b</bold>
) Segmented image of
<xref ref-type="fig" rid="sensors-16-00276-f013">Figure 13</xref>
a. The number of pixels that is associated with vegetation (white pixels) is less than 80% of the number of pixels in the reference image (
<xref ref-type="fig" rid="sensors-16-00276-f006">Figure 6</xref>
), and the robot location is very close to the output point that is defined in the plan for the row that is being scouted. Thus, the robot determines that it has reached the end of the crop row.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g013"></graphic>
</fig>
<fig id="sensors-16-00276-f014" position="float">
<label>Figure 14</label>
<caption>
<p>Manoeuvres defined for crop row change.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g014"></graphic>
</fig>
<fig id="sensors-16-00276-f015" position="float">
<label>Figure 15</label>
<caption>
<p>(
<bold>a</bold>
)–(
<bold>c</bold>
) are examples of different images that were acquired by the camera of the robot. (
<bold>a</bold>
) shows the maize crops; (
<bold>b</bold>
) shows the crop rows where the irrigation system used is visible; (
<bold>c</bold>
) shows the kind of image to be taken when a crop border is being reaching.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g015"></graphic>
</fig>
<fig id="sensors-16-00276-f016" position="float">
<label>Figure 16</label>
<caption>
<p>(
<bold>a</bold>
) First test environment. (
<bold>b</bold>
) Crop employed in the experiments.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g016"></graphic>
</fig>
<fig id="sensors-16-00276-f017" position="float">
<label>Figure 17</label>
<caption>
<p>First test environment: (
<bold>a</bold>
) Evolution of the linear speed of the robot. (
<bold>b</bold>
) Evolution of the angular speed of the robot. (
<bold>c</bold>
) Evolution of the offset of the robot relative to the line. (
<bold>d</bold>
) Evolution of the angle of the robot relative to the line.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g017"></graphic>
</fig>
<fig id="sensors-16-00276-f018" position="float">
<label>Figure 18</label>
<caption>
<p>Crop row tracking behaviour. Images from (
<bold>a</bold>
) to (
<bold>d</bold>
) show a sequence of different frames of the video available in [
<xref rid="B65-sensors-16-00276" ref-type="bibr">65</xref>
].</p>
</caption>
<graphic xlink:href="sensors-16-00276-g018"></graphic>
</fig>
<fig id="sensors-16-00276-f019" position="float">
<label>Figure 19</label>
<caption>
<p>Sequence of manoeuvres performed by the robot to change rows. (
<bold>a</bold>
) corresponds with manoeuvre 1 in
<xref ref-type="fig" rid="sensors-16-00276-f014">Figure 14</xref>
,
<italic>i.e.</italic>
, the straight-line forward movement; (
<bold>b</bold>
) with the circular-arc movement, manoeuvre 2; (
<bold>c</bold>
) with straight-line forward movement, manoeuvre 3; (
<bold>d</bold>
) with reverse circular-arc movement, manoeuvre 4; (
<bold>e</bold>
) with straight-line forward movement, manoeuvre 5. Video can be found in [
<xref rid="B65-sensors-16-00276" ref-type="bibr">65</xref>
].</p>
</caption>
<graphic xlink:href="sensors-16-00276-g019"></graphic>
</fig>
<fig id="sensors-16-00276-f020" position="float">
<label>Figure 20</label>
<caption>
<p>Tests in a real field: (
<bold>a</bold>
) Evolution of the linear speed of the robot. (
<bold>b</bold>
) Evolution of the angular speed of the robot. (
<bold>c</bold>
) Evolution of the offset of the robot relative to the line. (
<bold>d</bold>
) Evolution of the angle of the robot relative to the line.</p>
</caption>
<graphic xlink:href="sensors-16-00276-g020"></graphic>
</fig>
<table-wrap id="sensors-16-00276-t001" position="float">
<object-id pub-id-type="pii">sensors-16-00276-t001_Table 1</object-id>
<label>Table 1</label>
<caption>
<p>Crop row detection method.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Type of Current Pixel</th>
<th colspan="3" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1">Distance
<italic>d</italic>
(in pixels) until next non-Black Pixel</th>
</tr>
<tr>
<th align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm10">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm11">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo><</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm12">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>></mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">White</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Mark all pixels from
<italic>p</italic>
to
<italic>n</italic>
and jump to n (
<italic>p</italic>
<italic>n</italic>
)</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Mark all pixels from
<italic>p</italic>
to
<italic>n</italic>
and jump to
<italic>n</italic>
(
<italic>p</italic>
←n
<italic>)</italic>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Stops</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Border</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Mark all pixels from
<italic>p</italic>
to
<italic>n</italic>
and jump to
<italic>n</italic>
(
<italic>p</italic>
<italic>n</italic>
)</td>
<td align="center" valign="middle" rowspan="1" colspan="1">IF White pixels(input(1…N),
<italic>p</italic>
<italic>n</italic>
)) >
<italic>min_proportion</italic>
<break></break>
THEN Mark all pixels from
<italic>p</italic>
to
<italic>n</italic>
and jump to
<italic>n</italic>
(
<italic>p</italic>
=
<italic>n</italic>
) ELSE Stops</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Stops</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Black</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Jump to
<italic>n</italic>
(
<italic>p</italic>
<inline-formula>
<mml:math id="mm13">
<mml:mo></mml:mo>
</mml:math>
</inline-formula>
<italic>n</italic>
)</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Jump to
<italic>n</italic>
(
<italic>p</italic>
<inline-formula>
<mml:math id="mm14">
<mml:mo></mml:mo>
</mml:math>
</inline-formula>
<italic>n</italic>
)</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Stops</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00276-t002" position="float">
<object-id pub-id-type="pii">sensors-16-00276-t002_Table 2</object-id>
<label>Table 2</label>
<caption>
<p>Fuzzy control rules for angular speed. The fuzzy labels in this table correspond to the fuzzy sets shown in
<xref ref-type="fig" rid="sensors-16-00276-f010">Figure 10</xref>
. Furthermore,
<xref ref-type="fig" rid="sensors-16-00276-f011">Figure 11</xref>
shows the fuzzy set for linear speed used in
<xref ref-type="table" rid="sensors-16-00276-t003">Table 3</xref>
whereas fuzzy sets for the output variables are illustrated in
<xref ref-type="fig" rid="sensors-16-00276-f012">Figure 12</xref>
.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle" style="border-top:solid thin" rowspan="1" colspan="1"></th>
<th align="right" valign="middle" style="border-top:solid thin;border-right:solid thin" rowspan="1" colspan="1">Offset
<italic>d</italic>
</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Negative Big</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Negative Small</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Zero</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Positive Small</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Positive Big</th>
</tr>
<tr>
<th align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Angle
<italic>α</italic>
</th>
<th align="right" valign="middle" style="border-bottom:solid thin;border-right:solid thin" rowspan="1" colspan="1"></th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Negative Big</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Big</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Big</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Big</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Zero</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Negative Small</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Big</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Zero</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Negative Small</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Zero</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Big</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Zero</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Negative Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Negative Big</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Positive Small</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Positive Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Zero</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Negative Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Negative Small</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Negative Big</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" style="border-bottom:solid thin" rowspan="1">
<bold>Positive Big</bold>
</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Zero</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Negative Small</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Negative Big</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Negative Big</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Negative Big</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00276-t003" position="float">
<object-id pub-id-type="pii">sensors-16-00276-t003_Table 3</object-id>
<label>Table 3</label>
<caption>
<p>Fuzzy control rules for linear speed. The fuzzy labels in this table correspond to the fuzzy sets shown in
<xref ref-type="fig" rid="sensors-16-00276-f011">Figure 11</xref>
and
<xref ref-type="fig" rid="sensors-16-00276-f012">Figure 12</xref>
b.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle" style="border-top:solid thin" rowspan="1" colspan="1"></th>
<th align="right" valign="middle" style="border-top:solid thin;border-right:solid thin" rowspan="1" colspan="1">Offset
<italic>d</italic>
</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Negative Big</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Negative Small</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Zero</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Positive Small</th>
<th rowspan="2" align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Positive Big</th>
</tr>
<tr>
<th align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Angle α</th>
<th align="right" valign="middle" style="border-bottom:solid thin;border-right:solid thin" rowspan="1" colspan="1"></th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Negative Big</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Negative Small</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Zero</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Maximum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" rowspan="1">
<bold>Positive Small</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Medium</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Minimum</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle" style="border-bottom:solid thin" rowspan="1">
<bold>Positive Big</bold>
</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Minimum</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Minimum</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00276-t004" position="float">
<object-id pub-id-type="pii">sensors-16-00276-t004_Table 4</object-id>
<label>Table 4</label>
<caption>
<p>Detection of the central crop row. Performance of the proposed approach and an approach that is based on the Hough transform.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Approach</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Effectiveness (%)</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Mean Processing Time (seconds)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Proposed approach</td>
<td align="center" valign="middle" rowspan="1" colspan="1">96.4</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.069</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Hough-transform-based approach</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">88.4</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.258</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00276-t005" position="float">
<object-id pub-id-type="pii">sensors-16-00276-t005_Table 5</object-id>
<label>Table 5</label>
<caption>
<p>Results obtained in the test environment.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Test environment</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Mean</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Std. dev.</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Minimum</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Maximum</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">
<bold>Linear speed (cm/s)</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">28.66</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.68</td>
<td align="center" valign="middle" rowspan="1" colspan="1">26.20</td>
<td align="center" valign="middle" rowspan="1" colspan="1">30.00</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">
<bold>Angular speed (°/s)</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">−0.57</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.53</td>
<td align="center" valign="middle" rowspan="1" colspan="1">−2.00</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.00</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">
<bold>Offset (cm)</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.55</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.47</td>
<td align="center" valign="middle" rowspan="1" colspan="1">−0.78</td>
<td align="center" valign="middle" rowspan="1" colspan="1">1.88</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">
<bold>Angle (°)</bold>
</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.52</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.38</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">−0.56</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">1.51</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00276-t006" position="float">
<object-id pub-id-type="pii">sensors-16-00276-t006_Table 6</object-id>
<label>Table 6</label>
<caption>
<p>Results obtained in a real field.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Real Field</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Mean</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Std. dev.</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Minimum</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Maximum</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">
<bold>Linear speed (cm/s)</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">18.87</td>
<td align="center" valign="middle" rowspan="1" colspan="1">6.16</td>
<td align="center" valign="middle" rowspan="1" colspan="1">10.04</td>
<td align="center" valign="middle" rowspan="1" colspan="1">29.94</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">
<bold>Angular speed (°/s)</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">−0.14</td>
<td align="center" valign="middle" rowspan="1" colspan="1">6.40</td>
<td align="center" valign="middle" rowspan="1" colspan="1">−9.60</td>
<td align="center" valign="middle" rowspan="1" colspan="1">9.60</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">
<bold>Offset (cm)</bold>
</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.05</td>
<td align="center" valign="middle" rowspan="1" colspan="1">7.33</td>
<td align="center" valign="middle" rowspan="1" colspan="1">−14.00</td>
<td align="center" valign="middle" rowspan="1" colspan="1">16.00</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">
<bold>Angle (°)</bold>
</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.53</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">3.32</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">−9.00</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">11.00</td>
</tr>
</tbody>
</table>
</table-wrap>
</floats-group>
</pmc>
<affiliations>
<list></list>
<tree>
<noCountry>
<name sortKey="Andujar, Dionisio" sort="Andujar, Dionisio" uniqKey="Andujar D" first="Dionisio" last="Andújar">Dionisio Andújar</name>
<name sortKey="Bengochea Guevara, Jose M" sort="Bengochea Guevara, Jose M" uniqKey="Bengochea Guevara J" first="José M." last="Bengochea-Guevara">José M. Bengochea-Guevara</name>
<name sortKey="Conesa Mu Oz, Jesus" sort="Conesa Mu Oz, Jesus" uniqKey="Conesa Mu Oz J" first="Jesus" last="Conesa-Mu Oz">Jesus Conesa-Mu Oz</name>
<name sortKey="Ribeiro, Angela" sort="Ribeiro, Angela" uniqKey="Ribeiro A" first="Angela" last="Ribeiro">Angela Ribeiro</name>
</noCountry>
</tree>
</affiliations>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Wicri/Agronomie/explor/SisAgriV1/Data/Pmc/Checkpoint
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000017 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Pmc/Checkpoint/biblio.hfd -nk 000017 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Wicri/Agronomie
   |area=    SisAgriV1
   |flux=    Pmc
   |étape=   Checkpoint
   |type=    RBID
   |clé=     PMC:4813851
   |texte=   Merge Fuzzy Visual Servoing and GPS-Based Planning to Obtain a Proper Navigation Behavior for a Small Crop-Inspection Robot
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Checkpoint/RBID.i   -Sk "pubmed:26927102" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Checkpoint/biblio.hfd   \
       | NlmPubMed2Wicri -a SisAgriV1 

Wicri

This area was generated with Dilib version V0.6.28.
Data generation: Wed Mar 29 00:06:34 2017. Site generation: Tue Mar 12 12:44:16 2024