FPGA-Based Fused Smart Sensor for Dynamic and Vibration Parameter Extraction in Industrial Robot Links
Identifieur interne : 000596 ( Pmc/Corpus ); précédent : 000595; suivant : 000597FPGA-Based Fused Smart Sensor for Dynamic and Vibration Parameter Extraction in Industrial Robot Links
Auteurs : Carlos Rodriguez-Donate ; Luis Morales-Velazquez ; Roque Alfredo Osornio-Rios ; Gilberto Herrera-Ruiz ; Rene De Jesus Romero-TroncosoSource :
- Sensors (Basel, Switzerland) [ 1424-8220 ] ; 2010.
Abstract
Intelligent robotics demands the integration of smart sensors that allow the controller to efficiently measure physical quantities. Industrial manipulator robots require a constant monitoring of several parameters such as motion dynamics, inclination, and vibration. This work presents a novel smart sensor to estimate motion dynamics, inclination, and vibration parameters on industrial manipulator robot links based on two primary sensors: an encoder and a triaxial accelerometer. The proposed smart sensor implements a new methodology based on an oversampling technique, averaging decimation filters, FIR filters, finite differences and linear interpolation to estimate the interest parameters, which are computed online utilizing digital hardware signal processing based on field programmable gate arrays (FPGA).
Url:
DOI: 10.3390/s100404114
PubMed: 22319345
PubMed Central: 3274264
Links to Exploration step
PMC:3274264Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">FPGA-Based Fused Smart Sensor for Dynamic and Vibration Parameter Extraction in Industrial Robot Links</title>
<author><name sortKey="Rodriguez Donate, Carlos" sort="Rodriguez Donate, Carlos" uniqKey="Rodriguez Donate C" first="Carlos" last="Rodriguez-Donate">Carlos Rodriguez-Donate</name>
<affiliation><nlm:aff id="af1-sensors-10-04114"> HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Morales Velazquez, Luis" sort="Morales Velazquez, Luis" uniqKey="Morales Velazquez L" first="Luis" last="Morales-Velazquez">Luis Morales-Velazquez</name>
<affiliation><nlm:aff id="af1-sensors-10-04114"> HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Osornio Rios, Roque Alfredo" sort="Osornio Rios, Roque Alfredo" uniqKey="Osornio Rios R" first="Roque Alfredo" last="Osornio-Rios">Roque Alfredo Osornio-Rios</name>
<affiliation><nlm:aff id="af1-sensors-10-04114"> HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Herrera Ruiz, Gilberto" sort="Herrera Ruiz, Gilberto" uniqKey="Herrera Ruiz G" first="Gilberto" last="Herrera-Ruiz">Gilberto Herrera-Ruiz</name>
<affiliation><nlm:aff id="af2-sensors-10-04114"> Facultad de Ingenieria, Universidad Autonoma de Queretaro, Cerro de las Campanas s/n, 76010 Queretaro, Qro., Mexico; E-Mail:<email>gherrera@uaq.mx</email>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="De Jesus Romero Troncoso, Rene" sort="De Jesus Romero Troncoso, Rene" uniqKey="De Jesus Romero Troncoso R" first="Rene" last="De Jesus Romero-Troncoso">Rene De Jesus Romero-Troncoso</name>
<affiliation><nlm:aff id="af3-sensors-10-04114"> HSPdigital – CA Telematica, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5+1.8, Palo Blanco, 36700 Salamanca, Gto., Mexico</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">22319345</idno>
<idno type="pmc">3274264</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3274264</idno>
<idno type="RBID">PMC:3274264</idno>
<idno type="doi">10.3390/s100404114</idno>
<date when="2010">2010</date>
<idno type="wicri:Area/Pmc/Corpus">000596</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Corpus" wicri:corpus="PMC">000596</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">FPGA-Based Fused Smart Sensor for Dynamic and Vibration Parameter Extraction in Industrial Robot Links</title>
<author><name sortKey="Rodriguez Donate, Carlos" sort="Rodriguez Donate, Carlos" uniqKey="Rodriguez Donate C" first="Carlos" last="Rodriguez-Donate">Carlos Rodriguez-Donate</name>
<affiliation><nlm:aff id="af1-sensors-10-04114"> HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Morales Velazquez, Luis" sort="Morales Velazquez, Luis" uniqKey="Morales Velazquez L" first="Luis" last="Morales-Velazquez">Luis Morales-Velazquez</name>
<affiliation><nlm:aff id="af1-sensors-10-04114"> HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Osornio Rios, Roque Alfredo" sort="Osornio Rios, Roque Alfredo" uniqKey="Osornio Rios R" first="Roque Alfredo" last="Osornio-Rios">Roque Alfredo Osornio-Rios</name>
<affiliation><nlm:aff id="af1-sensors-10-04114"> HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Herrera Ruiz, Gilberto" sort="Herrera Ruiz, Gilberto" uniqKey="Herrera Ruiz G" first="Gilberto" last="Herrera-Ruiz">Gilberto Herrera-Ruiz</name>
<affiliation><nlm:aff id="af2-sensors-10-04114"> Facultad de Ingenieria, Universidad Autonoma de Queretaro, Cerro de las Campanas s/n, 76010 Queretaro, Qro., Mexico; E-Mail:<email>gherrera@uaq.mx</email>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="De Jesus Romero Troncoso, Rene" sort="De Jesus Romero Troncoso, Rene" uniqKey="De Jesus Romero Troncoso R" first="Rene" last="De Jesus Romero-Troncoso">Rene De Jesus Romero-Troncoso</name>
<affiliation><nlm:aff id="af3-sensors-10-04114"> HSPdigital – CA Telematica, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5+1.8, Palo Blanco, 36700 Salamanca, Gto., Mexico</nlm:aff>
</affiliation>
</author>
</analytic>
<series><title level="j">Sensors (Basel, Switzerland)</title>
<idno type="eISSN">1424-8220</idno>
<imprint><date when="2010">2010</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><p>Intelligent robotics demands the integration of smart sensors that allow the controller to efficiently measure physical quantities. Industrial manipulator robots require a constant monitoring of several parameters such as motion dynamics, inclination, and vibration. This work presents a novel smart sensor to estimate motion dynamics, inclination, and vibration parameters on industrial manipulator robot links based on two primary sensors: an encoder and a triaxial accelerometer. The proposed smart sensor implements a new methodology based on an oversampling technique, averaging decimation filters, FIR filters, finite differences and linear interpolation to estimate the interest parameters, which are computed online utilizing digital hardware signal processing based on field programmable gate arrays (FPGA).</p>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct><analytic><author><name sortKey="Lopez Juarez, I" uniqKey="Lopez Juarez I">I. Lopez-Juarez</name>
</author>
<author><name sortKey="Corona Castuera, J" uniqKey="Corona Castuera J">J. Corona-Castuera</name>
</author>
<author><name sortKey="Pe A Cabrera, M" uniqKey="Pe A Cabrera M">M. Peña-Cabrera</name>
</author>
<author><name sortKey="Ordaz Hernandez, K" uniqKey="Ordaz Hernandez K">K. Ordaz-Hernandez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Hernandez, W" uniqKey="Hernandez W">W. Hernandez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Rivera, J" uniqKey="Rivera J">J. Rivera</name>
</author>
<author><name sortKey="Herrera, G" uniqKey="Herrera G">G. Herrera</name>
</author>
<author><name sortKey="Chac N, M" uniqKey="Chac N M">M. Chacón</name>
</author>
<author><name sortKey="Acosta, P" uniqKey="Acosta P">P. Acosta</name>
</author>
<author><name sortKey="Carrillo, M" uniqKey="Carrillo M">M. Carrillo</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Olabi, A" uniqKey="Olabi A">A. Olabi</name>
</author>
<author><name sortKey="Bearee, R" uniqKey="Bearee R">R. Béarée</name>
</author>
<author><name sortKey="Gibaru, O" uniqKey="Gibaru O">O. Gibaru</name>
</author>
<author><name sortKey="Damak, M" uniqKey="Damak M">M. Damak</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Zhu, W H" uniqKey="Zhu W">W.H. Zhu</name>
</author>
<author><name sortKey="Lamarche, T" uniqKey="Lamarche T">T. Lamarche</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jeon, S" uniqKey="Jeon S">S. Jeon</name>
</author>
<author><name sortKey="Tomizuka, M" uniqKey="Tomizuka M">M. Tomizuka</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Osornio Rios, R A" uniqKey="Osornio Rios R">R.A. Osornio-Rios</name>
</author>
<author><name sortKey="Romero Troncoso, R J" uniqKey="Romero Troncoso R">R.J. Romero-Troncoso</name>
</author>
<author><name sortKey="Herrera Ruiz, G" uniqKey="Herrera Ruiz G">G. Herrera-Ruiz</name>
</author>
<author><name sortKey="Casta Eda Miranda, R" uniqKey="Casta Eda Miranda R">R. Castañeda-Miranda</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="V Liviita, S" uniqKey="V Liviita S">S. Väliviita</name>
</author>
<author><name sortKey="Ovaska, S J" uniqKey="Ovaska S">S.J. Ovaska</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="De Santiago Perez, J J" uniqKey="De Santiago Perez J">J.J. de Santiago-Pérez</name>
</author>
<author><name sortKey="Osornio Rios, R A" uniqKey="Osornio Rios R">R.A. Osornio-Rios</name>
</author>
<author><name sortKey="Romero Troncoso, R J" uniqKey="Romero Troncoso R">R.J. Romero-Troncoso</name>
</author>
<author><name sortKey="Herrera Ruiz, G" uniqKey="Herrera Ruiz G">G. Herrera-Ruiz</name>
</author>
<author><name sortKey="Delgado Rosas, M" uniqKey="Delgado Rosas M">M. Delgado-Rosas</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Morales Velazquez, L" uniqKey="Morales Velazquez L">L. Morales-Velazquez</name>
</author>
<author><name sortKey="Romero Troncoso, R J" uniqKey="Romero Troncoso R">R.J. Romero-Troncoso</name>
</author>
<author><name sortKey="Osornio Rios, R A" uniqKey="Osornio Rios R">R.A. Osornio-Rios</name>
</author>
<author><name sortKey="Cabal Yepez, E" uniqKey="Cabal Yepez E">E. Cabal-Yepez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Canepa, G" uniqKey="Canepa G">G. Canepa</name>
</author>
<author><name sortKey="Hollerbach, J M" uniqKey="Hollerbach J">J.M. Hollerbach</name>
</author>
<author><name sortKey="Boelen, A J M A" uniqKey="Boelen A">A.J.M.A. Boelen</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Han, J D" uniqKey="Han J">J.D Han</name>
</author>
<author><name sortKey="He, Y Q" uniqKey="He Y">Y.Q. He</name>
</author>
<author><name sortKey="Xu, W L" uniqKey="Xu W">W.L. Xu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Gamez Garcia, J" uniqKey="Gamez Garcia J">J. Gamez-Garcia</name>
</author>
<author><name sortKey="Robertsson, A" uniqKey="Robertsson A">A. Robertsson</name>
</author>
<author><name sortKey="Gomez Ortega, J" uniqKey="Gomez Ortega J">J Gomez-Ortega</name>
</author>
<author><name sortKey="Johansson, R" uniqKey="Johansson R">R. Johansson</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Wang, W" uniqKey="Wang W">W. Wang</name>
</author>
<author><name sortKey="Jianu, O A" uniqKey="Jianu O">O.A. Jianu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mekid, S" uniqKey="Mekid S">S. Mekid</name>
</author>
<author><name sortKey="Pruschek, P" uniqKey="Pruschek P">P. Pruschek</name>
</author>
<author><name sortKey="Hernandez, J" uniqKey="Hernandez J">J. Hernandez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Liu, H H S" uniqKey="Liu H">H.H.S. Liu</name>
</author>
<author><name sortKey="Pang, G K H" uniqKey="Pang G">G.K.H. Pang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jassemi Zargani, R" uniqKey="Jassemi Zargani R">R. Jassemi-Zargani</name>
</author>
<author><name sortKey="Necsulescu, D" uniqKey="Necsulescu D">D. Necsulescu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Dumetz, E" uniqKey="Dumetz E">E. Dumetz</name>
</author>
<author><name sortKey="Dieulot, J Y" uniqKey="Dieulot J">J.Y. Dieulot</name>
</author>
<author><name sortKey="Barre, P J" uniqKey="Barre P">P.J. Barre</name>
</author>
<author><name sortKey="Colas, F" uniqKey="Colas F">F. Colas</name>
</author>
<author><name sortKey="Delplace, T" uniqKey="Delplace T">T. Delplace</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ohta, T" uniqKey="Ohta T">T. Ohta</name>
</author>
<author><name sortKey="Murakami, T" uniqKey="Murakami T">T. Murakami</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Trendafilova, I" uniqKey="Trendafilova I">I. Trendafilova</name>
</author>
<author><name sortKey="Van Brussel, H" uniqKey="Van Brussel H">H. van Brussel</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bernmark, E" uniqKey="Bernmark E">E. Bernmark</name>
</author>
<author><name sortKey="Wiktorin, C" uniqKey="Wiktorin C">C. Wiktorin</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Rangel Magdaleno, J J" uniqKey="Rangel Magdaleno J">J.J. Rangel-Magdaleno</name>
</author>
<author><name sortKey="Romero Troncoso, R J" uniqKey="Romero Troncoso R">R.J. Romero-Troncoso</name>
</author>
<author><name sortKey="Osornio Rios, R A" uniqKey="Osornio Rios R">R.A. Osornio-Rios</name>
</author>
<author><name sortKey="Cabal Yepez, E" uniqKey="Cabal Yepez E">E. Cabal-Yepez</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Miro, J V" uniqKey="Miro J">J.V. Miro</name>
</author>
<author><name sortKey="White, A S" uniqKey="White A">A.S. White</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Karagulle, H" uniqKey="Karagulle H">H. Karagülle</name>
</author>
<author><name sortKey="Malgaca, L" uniqKey="Malgaca L">L. Malgaca</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Sulaiman, N" uniqKey="Sulaiman N">N. Sulaiman</name>
</author>
<author><name sortKey="Obaid, Z A" uniqKey="Obaid Z">Z.A. Obaid</name>
</author>
<author><name sortKey="Marhaban, M H" uniqKey="Marhaban M">M.H. Marhaban</name>
</author>
<author><name sortKey="Hamidon, M N" uniqKey="Hamidon M">M.N. Hamidon</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Vachhani, L" uniqKey="Vachhani L">L. Vachhani</name>
</author>
<author><name sortKey="Sridharan, K" uniqKey="Sridharan K">K. Sridharan</name>
</author>
<author><name sortKey="Meher, P K" uniqKey="Meher P">P.K. Meher</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Patra, J C" uniqKey="Patra J">J.C. Patra</name>
</author>
<author><name sortKey="Lee, H Y" uniqKey="Lee H">H.Y. Lee</name>
</author>
<author><name sortKey="Meher, P K" uniqKey="Meher P">P.K. Meher</name>
</author>
<author><name sortKey="Ang, E L" uniqKey="Ang E">E.L. Ang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Depari, A" uniqKey="Depari A">A. Depari</name>
</author>
<author><name sortKey="Ferrari, P" uniqKey="Ferrari P">P. Ferrari</name>
</author>
<author><name sortKey="Flammini, A" uniqKey="Flammini A">A. Flammini</name>
</author>
<author><name sortKey="Marioli, D" uniqKey="Marioli D">D. Marioli</name>
</author>
<author><name sortKey="Taroni, A" uniqKey="Taroni A">A. Taroni</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Altintas, Y" uniqKey="Altintas Y">Y. Altintas</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Liu, G" uniqKey="Liu G">G Liu</name>
</author>
<author><name sortKey="Goldenberg, A A" uniqKey="Goldenberg A">A.A. Goldenberg</name>
</author>
<author><name sortKey="Zhang, Y" uniqKey="Zhang Y">Y. Zhang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Fan, S" uniqKey="Fan S">S Fan</name>
</author>
<author><name sortKey="Bicker, R" uniqKey="Bicker R">R. Bicker</name>
</author>
</analytic>
</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-title-group><journal-title>Sensors (Basel, Switzerland)</journal-title>
</journal-title-group>
<issn pub-type="epub">1424-8220</issn>
<publisher><publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">22319345</article-id>
<article-id pub-id-type="pmc">3274264</article-id>
<article-id pub-id-type="doi">10.3390/s100404114</article-id>
<article-id pub-id-type="publisher-id">sensors-10-04114</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Article</subject>
</subj-group>
</article-categories>
<title-group><article-title>FPGA-Based Fused Smart Sensor for Dynamic and Vibration Parameter Extraction in Industrial Robot Links</article-title>
</title-group>
<contrib-group><contrib contrib-type="author"><name><surname>Rodriguez-Donate</surname>
<given-names>Carlos</given-names>
</name>
<xref ref-type="aff" rid="af1-sensors-10-04114"><sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Morales-Velazquez</surname>
<given-names>Luis</given-names>
</name>
<xref ref-type="aff" rid="af1-sensors-10-04114"><sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Osornio-Rios</surname>
<given-names>Roque Alfredo</given-names>
</name>
<xref ref-type="aff" rid="af1-sensors-10-04114"><sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Herrera-Ruiz</surname>
<given-names>Gilberto</given-names>
</name>
<xref ref-type="aff" rid="af2-sensors-10-04114"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>de Jesus Romero-Troncoso</surname>
<given-names>Rene</given-names>
</name>
<xref ref-type="aff" rid="af3-sensors-10-04114"><sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c1-sensors-10-04114">*</xref>
</contrib>
</contrib-group>
<aff id="af1-sensors-10-04114"><label>1</label>
HSPdigital – CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Rio, Qro., Mexico; E-Mails:<email>cdonate@hspdigital.org</email>
(C.R.-D.);<email>lmorales@hspdigital.org</email>
(L.M.-V.);<email>raosornio@hspdigital.org</email>
(R.A.O.-R.)</aff>
<aff id="af2-sensors-10-04114"><label>2</label>
Facultad de Ingenieria, Universidad Autonoma de Queretaro, Cerro de las Campanas s/n, 76010 Queretaro, Qro., Mexico; E-Mail:<email>gherrera@uaq.mx</email>
</aff>
<aff id="af3-sensors-10-04114"><label>3</label>
HSPdigital – CA Telematica, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5+1.8, Palo Blanco, 36700 Salamanca, Gto., Mexico</aff>
<author-notes><corresp id="c1-sensors-10-04114"><label>*</label>
Author to whom correspondence should be addressed; E-Mail: <email>troncoso@hspdigital.org</email>
; Tel.: +52-464-647-9940; Fax: +52-464-647-9940.</corresp>
</author-notes>
<pub-date pub-type="collection"><year>2010</year>
</pub-date>
<pub-date pub-type="epub"><day>26</day>
<month>4</month>
<year>2010</year>
</pub-date>
<volume>10</volume>
<issue>4</issue>
<fpage>4114</fpage>
<lpage>4129</lpage>
<history><date date-type="received"><day>2</day>
<month>3</month>
<year>2010</year>
</date>
<date date-type="rev-recd"><day>20</day>
<month>4</month>
<year>2010</year>
</date>
<date date-type="accepted"><day>20</day>
<month>4</month>
<year>2010</year>
</date>
</history>
<permissions><copyright-statement>© 2010 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2010</copyright-year>
<license><license-p>This article is an open-access article distributed under the terms and conditions of the Creative Commons Attribution license (<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</ext-link>
).</license-p>
</license>
</permissions>
<abstract><p>Intelligent robotics demands the integration of smart sensors that allow the controller to efficiently measure physical quantities. Industrial manipulator robots require a constant monitoring of several parameters such as motion dynamics, inclination, and vibration. This work presents a novel smart sensor to estimate motion dynamics, inclination, and vibration parameters on industrial manipulator robot links based on two primary sensors: an encoder and a triaxial accelerometer. The proposed smart sensor implements a new methodology based on an oversampling technique, averaging decimation filters, FIR filters, finite differences and linear interpolation to estimate the interest parameters, which are computed online utilizing digital hardware signal processing based on field programmable gate arrays (FPGA).</p>
</abstract>
<kwd-group><kwd>smart sensor</kwd>
<kwd>motion dynamics</kwd>
<kwd>vibrations</kwd>
<kwd>accelerometer</kwd>
<kwd>FPGA</kwd>
</kwd-group>
</article-meta>
</front>
<body><sec><label>1.</label>
<title>Introduction</title>
<p>Intelligent robotics, as defined by Lopez-Juarez, <italic>et al.</italic>
[<xref ref-type="bibr" rid="b1-sensors-10-04114">1</xref>
], demands the integration of smart sensors [<xref ref-type="bibr" rid="b2-sensors-10-04114">2</xref>
,<xref ref-type="bibr" rid="b3-sensors-10-04114">3</xref>
] that allow the controller to efficiently measure physical quantities. Communication and data processing functionalities are two of the most important features in smart sensors [<xref ref-type="bibr" rid="b3-sensors-10-04114">3</xref>
], but data fusion is also desirable. Industrial manipulator robots require constant monitoring of several variables and their fusion [<xref ref-type="bibr" rid="b4-sensors-10-04114">4</xref>
–<xref ref-type="bibr" rid="b6-sensors-10-04114">6</xref>
] such as: motion dynamics, inclination, and vibration; these variables inform about the machine wellness, highlighting the necessity of a specialized smart sensor that provides sufficient information to evaluate the robot performance. This work is focused on the extraction of several parameters from the mentioned physical variables, related to a single axis industrial robot arm. Motion dynamics is defined as the time-dependent profiles for position, velocity, acceleration, and jerk [<xref ref-type="bibr" rid="b7-sensors-10-04114">7</xref>
] in a servomotor, and determines the motion trajectory of a single axis robotic arm to reach a specific position and orientation based on a motion controller that uses these profiles as reference. On the other hand, the robot inclination is related to the spatial orientation of the physical sensor, where angular position, velocity, and acceleration on each robot link can be inferred. In addition, during the arm motion, vibrations are generated mainly due to friction, gearing, joint wear, <italic>etc</italic>
.; these vibrations are undesired movements that reflect potential failures or improper operating conditions, making necessary their continuous monitoring to detect possible problems. Summarizing, it is desirable to have a single system able to provide all the aforementioned parameters from each robot link.</p>
<p>Current literature points out that the encoder in servomotors [<xref ref-type="bibr" rid="b4-sensors-10-04114">4</xref>
,<xref ref-type="bibr" rid="b8-sensors-10-04114">8</xref>
–<xref ref-type="bibr" rid="b10-sensors-10-04114">10</xref>
] and the accelerometer [<xref ref-type="bibr" rid="b11-sensors-10-04114">11</xref>
–<xref ref-type="bibr" rid="b14-sensors-10-04114">14</xref>
] are two of the most widely used sensors to monitor motion dynamics and vibrations on computerized numeric control (CNC) machines and robotic manipulator arms. Conversely, in industry, automation demands the integration of smart sensors [<xref ref-type="bibr" rid="b2-sensors-10-04114">2</xref>
,<xref ref-type="bibr" rid="b3-sensors-10-04114">3</xref>
] and control drivers in an open-architecture fashion [<xref ref-type="bibr" rid="b1-sensors-10-04114">1</xref>
,<xref ref-type="bibr" rid="b15-sensors-10-04114">15</xref>
]. Motion dynamics has been estimated from an incremental optical encoder in [<xref ref-type="bibr" rid="b9-sensors-10-04114">9</xref>
,<xref ref-type="bibr" rid="b10-sensors-10-04114">10</xref>
] where position, velocity, acceleration, and jerk parameters are successfully obtained, but they do not present the information of vibrations nor inclination. The use of accelerometers is well established to obtain kinematics parameters [<xref ref-type="bibr" rid="b8-sensors-10-04114">8</xref>
,<xref ref-type="bibr" rid="b16-sensors-10-04114">16</xref>
–<xref ref-type="bibr" rid="b18-sensors-10-04114">18</xref>
] or to measure vibrations [<xref ref-type="bibr" rid="b19-sensors-10-04114">19</xref>
], but there are no reported works that cover a broad parameter spectrum. The acceleration signal in an accelerometer contains merged information from the inclination with respect to gravity and about vibrations; therefore, a separation of these parameters is desirable for further kinematics and vibration monitoring. The extraction of vibrations allows failure detection [<xref ref-type="bibr" rid="b20-sensors-10-04114">20</xref>
] and some intelligent sensors have been proposed to perform this task [<xref ref-type="bibr" rid="b14-sensors-10-04114">14</xref>
]. Accelerometers have been also included in servo control loops [<xref ref-type="bibr" rid="b12-sensors-10-04114">12</xref>
]. By analyzing vibrations in combination with force sensors, contact forces are measured and calibrated [<xref ref-type="bibr" rid="b13-sensors-10-04114">13</xref>
], manifesting the relevance of a proper separation of vibration signals from the raw accelerometer measurement. Moreover, static acceleration indicates the inclination of the accelerometer with respect to gravity and by taking these signals, kinematics calibration in a manipulator arm can also be performed [<xref ref-type="bibr" rid="b11-sensors-10-04114">11</xref>
]. Inclination parameters have been investigated utilizing an accelerometer as primary sensor [<xref ref-type="bibr" rid="b21-sensors-10-04114">21</xref>
]. Furthermore, an integrated approach utilizing an encoder and an accelerometer has been presented to accurately estimate velocity [<xref ref-type="bibr" rid="b8-sensors-10-04114">8</xref>
]. Additionally, sensors are becoming more intelligent by integrating signal conditioning, processing units, communication protocols, among other features [<xref ref-type="bibr" rid="b3-sensors-10-04114">3</xref>
]. Therefore, the development of a smart sensor that integrates data fusion of motion dynamics, inclination, and vibration parameters is considered an essential move towards intelligent-robotics.</p>
<p>This work presents a novel smart sensor that extracts motion dynamics and inclination parameters along with the separation of vibration information from a single link in industrial robots, based on the fusion of two primary sensors: an optical incremental encoder and a triaxial accelerometer. Motion dynamics is estimated from the encoder measurement to give position, velocity, acceleration, and jerk; whereas vibrations and inclination are separated from the accelerometer signal, for providing angular position, velocity, acceleration, and vibrations. Estimated parameters are computed online utilizing digital hardware signal processing techniques such as digital filtering, interpolation, finite differences, among others. These computer-intensive processing algorithms are implemented in a field programmable gate array (FPGA) for a smart sensor approach by integrating hardware signal processing and data communication in an embedded system.</p>
</sec>
<sec><label>2.</label>
<title>Background</title>
<p>This section establishes the relationship among the estimated parameters on a robotics application, where the encoder gives information regarding motion dynamics and the accelerometer gives both inclination and vibration information.</p>
<sec><label>2.1.</label>
<title>Motion Dynamics</title>
<p>Motion in a manipulator arm is conducted by the motion controller that applies a profile to perform smooth movements to the end effector. By taking the position feedback signal (<italic>p</italic>
) from the servo control loop, velocity (<italic>v</italic>
), acceleration (<italic>a</italic>
), and jerk (<italic>j</italic>
) can be estimated. <xref ref-type="fig" rid="f1-sensors-10-04114">Figure 1</xref>
shows an example of a polynomial profile comparing the analytical motion dynamics (<xref ref-type="fig" rid="f1-sensors-10-04114">Figure 1a</xref>
, <xref ref-type="fig" rid="f1-sensors-10-04114">1b</xref>
, <xref ref-type="fig" rid="f1-sensors-10-04114">1c</xref>
, and <xref ref-type="fig" rid="f1-sensors-10-04114">1d</xref>
) against the motion dynamics obtained using recursive finite differentiation (<xref ref-type="fig" rid="f1-sensors-10-04114">Figure 1e</xref>
, <xref ref-type="fig" rid="f1-sensors-10-04114">1f</xref>
, <xref ref-type="fig" rid="f1-sensors-10-04114">1g</xref>
, and <xref ref-type="fig" rid="f1-sensors-10-04114">1h</xref>
). In the case of using finite differentiation, quantization noise overwhelms the signal, making some filtering necessary. This differentiation and filtering stage can be performed by a combination of an averaging decimation filter [<xref ref-type="bibr" rid="b22-sensors-10-04114">22</xref>
], a finite difference stage, and a linear interpolation stage to estimate motion dynamic parameters (<italic>p</italic>
, <italic>v</italic>
, <italic>a</italic>
, and <italic>j</italic>
) as shown in <xref ref-type="fig" rid="f1-sensors-10-04114">Figure 1i</xref>
, <xref ref-type="fig" rid="f1-sensors-10-04114">1j</xref>
, <xref ref-type="fig" rid="f1-sensors-10-04114">1k</xref>
, and <xref ref-type="fig" rid="f1-sensors-10-04114">1l</xref>
.</p>
</sec>
<sec><label>2.2.</label>
<title>Inclination</title>
<p>From the accelerations provided by the accelerometer (<italic>a</italic>
<sub>x</sub>
, <italic>a</italic>
<sub>y</sub>
, and <italic>a</italic>
<sub>z</sub>
), inclination angles pitch (<italic>ρ</italic>
), roll (<italic>φ</italic>
), and yaw (<italic>θ)</italic>
are calculated. <xref ref-type="fig" rid="f2-sensors-10-04114">Figure 2</xref>
shows the diagram of a single axis robot arm depicting the triaxial accelerometer location, where <italic>ρ</italic>
represents the inclination with respect to the X-axis, <italic>φ</italic>
represents the inclination with respect to the Y-axis, and <italic>θ</italic>
is the inclination with respect to the Z-axis.</p>
<p>The inclination is calculated from the acceleration provided by the accelerometer as stated by (<xref ref-type="disp-formula" rid="FD1">1</xref>
–<xref ref-type="disp-formula" rid="FD3">3</xref>
) taken from [<xref ref-type="bibr" rid="b23-sensors-10-04114">23</xref>
]. These equations assume that original signals (<italic>a</italic>
<sub>x</sub>
, <italic>a</italic>
<sub>y</sub>
, and <italic>a</italic>
<sub>z</sub>
) are noise-free, which is unrealistic, requiring filtering.
<disp-formula id="FD1"><label>(1)</label>
<mml:math id="M1"><mml:mrow><mml:mi>ρ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup><mml:mrow><mml:mrow><mml:mtext>tan</mml:mtext>
</mml:mrow>
</mml:mrow>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow><mml:msqrt><mml:mrow><mml:msubsup><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD2"><label>(2)</label>
<mml:math id="M2"><mml:mrow><mml:mi>ϕ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup><mml:mrow><mml:mrow><mml:mtext>tan</mml:mtext>
</mml:mrow>
</mml:mrow>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow><mml:msqrt><mml:mrow><mml:msubsup><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD3"><label>(3)</label>
<mml:math id="M3"><mml:mrow><mml:mi>θ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup><mml:mrow><mml:mrow><mml:mtext>tan</mml:mtext>
</mml:mrow>
</mml:mrow>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mfrac><mml:mrow><mml:msqrt><mml:mrow><mml:msubsup><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
<mml:mrow><mml:msub><mml:mrow><mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
</sec>
<sec><label>2.3.</label>
<title>Vibrations</title>
<p>The accelerometer provides merged information about vibration and inclination that must be separated; given that the inclination signal is principally low frequency [<xref ref-type="bibr" rid="b24-sensors-10-04114">24</xref>
] whereas vibration is high frequency [<xref ref-type="bibr" rid="b25-sensors-10-04114">25</xref>
], they can be separated with properly tuned filters. To reduce the noise and effectively extract the vibration signal, a decimation process followed by a high-pass filter is used to separate the three signals; this technique reduces the noise from the original signal.</p>
</sec>
</sec>
<sec><label>3.</label>
<title>Smart Sensor Methodology</title>
<p>The proposed smart sensor is implemented in three stages: primary sensors, signal conditioner, and signal processing; <xref ref-type="fig" rid="f3-sensors-10-04114">Figure 3</xref>
shows the overall architecture for the proposed smart sensor. At the primary sensors stage the physical quantities are sensed, at the signal conditioning stage the accelerometer signal is amplified, and at the signal processing stage parameters are estimated. For each sampling period, the encoder measures the relative servomotor shaft position and gives two quadrature signals; the first step is to decode the absolute position of the servomotor shaft on the effector motions, then parameter estimation can be performed. The accelerometer reads the acceleration analog signals and then the signal conditioner amplifies these signals to pass them to the analog-to-digital converter, digitally normalized (m/s<sup>2</sup>
). Once the sample is taken, the signal processing is started; at the end of this process the estimated parameters are stored in the memory via the memory interface; finally the user is able to request the desired information from the smart sensor via the communication interface.</p>
<p>Most of the proposed smart sensor functionality is performed by the digital signal processor inside the smart sensor, depicted in <xref ref-type="fig" rid="f4-sensors-10-04114">Figure 4</xref>
. The motion dynamics block processes the encoder position signal (<italic>E</italic>
) to obtain the motion dynamics parameters <italic>p</italic>
, <italic>v</italic>
, <italic>a</italic>
, and <italic>j</italic>
. The inclination block takes the acceleration from each axis (<italic>A<sub>x</sub>
</italic>
, <italic>A<sub>y</sub>
</italic>
, and <italic>A<sub>z</sub>
</italic>
) to calculate the inclination angles <italic>ρ, φ ,</italic>
and <italic>θ</italic>
. The vibration block separates the vibration signals from the inclination for further analysis. The control unit synchronizes the resulting parameters to maintain the correspondence among the signals; these parameters are then stored into an external synchronous dynamic random access memory (SDRAM) or sent via USB interface to the user PC.</p>
<p>The signal processing unit of the smart sensor needs to make intensive computations for obtaining motion dynamics, inclination, and vibration data from three acceleration signals and the encoder input. In order to properly achieve the required processing performance, an FPGA device is the most suited option for implementation thanks to the reconfigurability and parallelism features of these devices [<xref ref-type="bibr" rid="b25-sensors-10-04114">25</xref>
].</p>
<sec><label>3.1.</label>
<title>Motion Dynamics Methodology</title>
<p>The motion dynamics methodology is shown in <xref ref-type="fig" rid="f5-sensors-10-04114">Figure 5</xref>
. Since the primary sensor in this module is the encoder, 64-times oversampling is applied, requiring a decimation factor of 64 that is also applied to a differentiation unit described below. This figure also shows the process used to estimate the motion profile using only the encoder signal by cascading three low noise differentiation units to obtain <italic>p</italic>
, <italic>v</italic>
, <italic>a</italic>
, and <italic>j</italic>
.</p>
<p>The averaging decimation filter shown in <xref ref-type="fig" rid="f5-sensors-10-04114">Figure 5</xref>
is used for filtering the encoder signal in order to reduce the quantization noise as stated in <xref ref-type="disp-formula" rid="FD4">(4)</xref>
and exposed by Rangel-Magdaleno <italic>et al</italic>
. [<xref ref-type="bibr" rid="b22-sensors-10-04114">22</xref>
] using an oversampling technique, where <italic>E</italic>
is the encoder input signal, <italic>p</italic>
the decimated position, <italic>k</italic>
the discrete-time index, and <italic>i</italic>
the decimation index.
<disp-formula id="FD4"><label>(4)</label>
<mml:math id="M4"><mml:mrow><mml:mi>p</mml:mi>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mfrac><mml:mi>k</mml:mi>
<mml:mrow><mml:mn>64</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mrow><mml:mn>64</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover><mml:mo>∑</mml:mo>
<mml:mrow><mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow><mml:mn>63</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mrow><mml:mi>E</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The differentiation unit performs a low-noise difference over <italic>p</italic>
utilizing a finite difference operation defined in <xref ref-type="disp-formula" rid="FD5">(5)</xref>
to obtain <italic>p<sub>F</sub>
</italic>
. An averaging decimation filter is then applied to the differentiated signal as stated in <xref ref-type="disp-formula" rid="FD6">(6)</xref>
to obtain <italic>p<sub>D</sub>
</italic>
, and a linear interpolation using <xref ref-type="disp-formula" rid="FD7">(7)</xref>
to preserve the sampling rate and obtain the estimated velocity <italic>v</italic>
. To estimate <italic>a</italic>
and <italic>j</italic>
an equivalent process is followed, recursively.
<disp-formula id="FD5"><label>(5)</label>
<mml:math id="M5"><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi>
</mml:mrow>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD6"><label>(6)</label>
<mml:math id="M6"><mml:msub><mml:mi>p</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mfrac><mml:mi>k</mml:mi>
<mml:mrow><mml:mn>64</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mrow><mml:mn>64</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover><mml:mo>∑</mml:mo>
<mml:mrow><mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow><mml:mn>63</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mrow><mml:msub><mml:mi>P</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD7"><label>(7)</label>
<mml:math id="M7"><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:mi>v</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>64</mml:mn>
<mml:mo>·</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>p</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mrow><mml:mn>64</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub><mml:mi>p</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi>p</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left"><mml:mrow><mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mn>63</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</sec>
<sec><label>3.2.</label>
<title>Inclination Methodology</title>
<p>The process for estimating inclination parameters is depicted in <xref ref-type="fig" rid="f6-sensors-10-04114">Figure 6</xref>
. The raw triaxial acceleration signals are filtered by averaging decimation filters of the 128th order, as stated in <xref ref-type="disp-formula" rid="FD8">(8)</xref>
, where subscript <italic>s</italic>
represents the accelerometer axis (<italic>x</italic>
, <italic>y</italic>
, or <italic>z</italic>
). Then, to separate inclination signals from vibration, a 32nd order low-pass FIR filter is applied to the decimated signals resulting in the inclination signals (<italic>A<sub>xdf</sub>
</italic>
, <italic>A<sub>ydf</sub>
</italic>
, and <italic>A<sub>zdf</sub>
</italic>
). To calculate inclination angles from the acceleration signals, it is necessary to compute the inverse tangent function; this is performed using the CORDIC algorithm [<xref ref-type="bibr" rid="b27-sensors-10-04114">27</xref>
].
<disp-formula id="FD8"><label>(8)</label>
<mml:math id="M8"><mml:mrow><mml:msub><mml:mrow><mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow><mml:mi mathvariant="italic">sd</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mfrac><mml:mi>k</mml:mi>
<mml:mrow><mml:mn>128</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mrow><mml:mn>128</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover><mml:mo>∑</mml:mo>
<mml:mrow><mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow><mml:mn>127</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mrow><mml:msub><mml:mrow><mml:mi>A</mml:mi>
</mml:mrow>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
</sec>
<sec><label>3.3.</label>
<title>Vibration Methodology</title>
<p>To extract the vibration components from the raw accelerometer signals they are first filtered using a 32nd order averaging decimated filter as depicted in <xref ref-type="fig" rid="f7-sensors-10-04114">Figure 7</xref>
; after this, the decimated signals (<italic>A<sub>xd</sub>
</italic>
, <italic>A<sub>yd</sub>
</italic>
, and <italic>A<sub>zd</sub>
</italic>
) are passed through a 1024th order high-pass FIR filter to isolate the vibration signals (<italic>V<sub>x</sub>
</italic>
, <italic>V<sub>y</sub>
</italic>
, and <italic>V<sub>z</sub>
</italic>
).</p>
</sec>
</sec>
<sec><label>4.</label>
<title>Experimental Results</title>
<p>In this section, the experimental validation of the proposed smart sensor is presented. The online parameter estimation was performed during a single arm movement in the second effector.</p>
<sec><label>4.1.</label>
<title>Experimental Setup</title>
<p>The experimental setup consists on the instrumentation of a single axis of a 6-degree of freedom Cloos-Romat 56 modular robot, a triaxial accelerometer LIS3L02AS4 [<xref ref-type="bibr" rid="b28-sensors-10-04114">28</xref>
] with a signal bandwidth of 750 Hz, and a sampling frequency of 3.2 kHz at the three-channel on-board data acquisition system; a proprietary Spartan 3E XC3S1600E FPGA platform running at 48 MHz as the smart sensor processing unit, a proprietary motion controller, and a user PC, as shown in <xref ref-type="fig" rid="f8-sensors-10-04114">Figure 8</xref>
. Processing units were implemented in the VHSIC hardware description language (VHDL) under the Xilinx ISE Design Suite version 11, since it has being extensively used to develop smart sensors [<xref ref-type="bibr" rid="b29-sensors-10-04114">29</xref>
,<xref ref-type="bibr" rid="b30-sensors-10-04114">30</xref>
]. <xref ref-type="table" rid="t1-sensors-10-04114">Table 1</xref>
summarizes the resource usage of the FPGA after compilation.</p>
<p>The experiment consists of a single-axis movement of the second effector arm using the proprietary motion controller by applying a 7th order polynomial motion profile [<xref ref-type="bibr" rid="b7-sensors-10-04114">7</xref>
] during 90 seconds and extracting in real-time the required parameters that are stored in SDRAM and then sent to the user PC.</p>
</sec>
<sec sec-type="results"><label>4.2.</label>
<title>Motion Dynamics Results</title>
<p><xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9</xref>
shows the analytical profiles that were obtained from the motion controller, whereas the estimated ones are computed by the smart sensor for the motion dynamics estimation. The upper row is the profile applied to the motion controller to conduct the arm movement; the middle row is the estimated profile obtained from the encoder measurement by applying the proposed methodology, and the bottom row is the computed error between these signals. For all parameters the shape of the analytical profile is well fitted, and the error between the analytical and the estimated signals is quantitatively calculated. The estimated position profile in <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9e</xref>
is very similar to the analytical one in <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9a</xref>
, having an absolute error below 0.01%. The estimated velocity in <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9f</xref>
fits the analytical profile of <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9b</xref>
with an overall absolute error below 0.5%. The estimated acceleration of <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9g</xref>
is very similar in shape to the analytical one in <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9c</xref>
with an absolute error below 5%. The estimated jerk on <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9h</xref>
also shows a good fitting to the analytical one in <xref ref-type="fig" rid="f9-sensors-10-04114">Figure 9d</xref>
, but the error is increased mainly because the initial and final discontinuities in the jerk shape, having an absolute error below 20% in those sections and below 5% in the middle section.</p>
</sec>
<sec sec-type="results"><label>4.3.</label>
<title>Inclination Results</title>
<p>The inclination results from the accelerometer measurements follow the methodology described in section 3.2. The estimated inclination angles shown in <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10</xref>
were computed using the same trajectory used in the previous section for motion dynamics. Analytical inclination angles were calculated from the motion position profile. The analytical yaw in <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10a</xref>
, compared with the estimated yaw in <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10d</xref>
, gives a maximum error of 6% in <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10g</xref>
. Analytical roll of <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10b</xref>
is similar to the estimated roll of <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10e</xref>
with an error below 10% on <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10h</xref>
. Finally, analytical pitch angle of <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10c</xref>
, compared with the estimated pitch of <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10f</xref>
, gives an error below 1% on <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10i</xref>
. As presented in <xref ref-type="fig" rid="f10-sensors-10-04114">Figure 10</xref>
, analytical and estimated angles are very similar in shape with an overall error below 10%.</p>
</sec>
<sec sec-type="results"><label>4.4.</label>
<title>Vibration Results</title>
<p>The vibration separation performed by the smart sensor is shown in <xref ref-type="fig" rid="f11-sensors-10-04114">Figure 11</xref>
; this figure shows the three axis vibration signals, separated from the accelerometer measurements. The obtained vibration signals are identified with respect to time and the motion profile shape because they were taken using the same primary sensor in the system. Hence it is possible to relate the inclination results with vibration results and, in a further analysis, to identify gearing or friction problems.</p>
</sec>
<sec sec-type="discussion"><label>4.5.</label>
<title>Discussion</title>
<p>Experimental results using the proposed smart sensor present the obtained motion dynamics, inclination angles and vibrations over a single axis robot link. In the case of motion dynamics, position, velocity, and acceleration were obtained having an overall error below 5%, and below 20% for jerk estimation. Inclination angles were successfully separated from vibrations and the error between the analytical and the estimated values were below 10% for all angles. The separated vibration signals from the smart sensor do not contain information on the inclination and the user can further process the information for monitoring and diagnosis purposes.</p>
<p>The parameter extraction is possible in the developed smart sensor thanks to the FPGA parallelism and reconfigurability. These features allow the hardware-processing unit of the smart sensor to efficiently perform the related smart operations such as hardware signal processing (data acquisition drivers, CORDIC arc tangent estimation, and oversampling, decimation, FIR, and interpolation filtering), data storage, and data communication. The developed sensor can be utilized in many different areas with a variety of applications; <xref ref-type="table" rid="t2-sensors-10-04114">Table 2</xref>
presents several application examples on high-impact researches where the developed smart sensor can be utilized.</p>
</sec>
</sec>
<sec><label>5.</label>
<title>Conclusions</title>
<p>This work proposes a new smart sensor to simultaneously obtain several parameters related to motion dynamics and inclination, along with the separation of the vibration information using two primary sensors: an encoder and a triaxial accelerometer on a single link of industrial robots. Results on motion dynamics and inclination estimations show the effectiveness of this smart sensor that integrates data fusion among primary sensor data. The vibration signal result, provided by the smart sensor, does not contain the inclination information and it contains the vibration information only, which can be further processed for monitoring and diagnosis purposes. Furthermore, the proposed smart sensor was implemented in a low-cost FPGA where hardware signal processing units compute in parallel the parameters and integrate the necessary modules with a system on-a-chip approach. The developed sensor provides the information of a single robot link, but one smart sensor can be placed on each robot link and combine the obtained information from all of them to estimate other parameters such as direct kinematics or make assessments on the robot wellness; however, this is beyond the scope of the present research and it is left for future work.</p>
</sec>
</body>
<back><ack><p>The authors wish to thank the reviewers for having made suggestions and comments that greatly improved the paper. This project was partially supported by CONACyT scholarship 217623, FOMIX-QRO-2008-CO2-102123 and SEP-CONACyT 84723 projects.</p>
</ack>
<ref-list><title>References</title>
<ref id="b1-sensors-10-04114"><label>1.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Lopez-Juarez</surname>
<given-names>I.</given-names>
</name>
<name><surname>Corona-Castuera</surname>
<given-names>J.</given-names>
</name>
<name><surname>Peña-Cabrera</surname>
<given-names>M.</given-names>
</name>
<name><surname>Ordaz-Hernandez</surname>
<given-names>K.</given-names>
</name>
</person-group>
<article-title>On the design of intelligent robotic agents for assembly</article-title>
<source>Inf. Sci</source>
<year>2005</year>
<volume>171</volume>
<fpage>377</fpage>
<lpage>402</lpage>
</element-citation>
</ref>
<ref id="b2-sensors-10-04114"><label>2.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hernandez</surname>
<given-names>W.</given-names>
</name>
</person-group>
<article-title>A survey on optimal signal processing techniques applied to improve the performance of mechanical sensors in automotive applications</article-title>
<source>Sensors</source>
<year>2007</year>
<volume>7</volume>
<fpage>84</fpage>
<lpage>102</lpage>
</element-citation>
</ref>
<ref id="b3-sensors-10-04114"><label>3.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Rivera</surname>
<given-names>J.</given-names>
</name>
<name><surname>Herrera</surname>
<given-names>G.</given-names>
</name>
<name><surname>Chacón</surname>
<given-names>M.</given-names>
</name>
<name><surname>Acosta</surname>
<given-names>P.</given-names>
</name>
<name><surname>Carrillo</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Improved progressive polynomial algorithm for self-adjustment and optimal response in intelligent sensors</article-title>
<source>Sensors</source>
<year>2008</year>
<volume>8</volume>
<fpage>7410</fpage>
<lpage>7427</lpage>
</element-citation>
</ref>
<ref id="b4-sensors-10-04114"><label>4.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Olabi</surname>
<given-names>A.</given-names>
</name>
<name><surname>Béarée</surname>
<given-names>R.</given-names>
</name>
<name><surname>Gibaru</surname>
<given-names>O.</given-names>
</name>
<name><surname>Damak</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Feedrate planning for machining with industrial six-axis robots</article-title>
<source>Control Eng. Pract.</source>
<year>2010</year>
<comment>in press,</comment>
<pub-id pub-id-type="doi">10.1016/j.conengprac.2010.01.004</pub-id>
</element-citation>
</ref>
<ref id="b5-sensors-10-04114"><label>5.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Zhu</surname>
<given-names>W.H.</given-names>
</name>
<name><surname>Lamarche</surname>
<given-names>T.</given-names>
</name>
</person-group>
<article-title>Velocity estimation by using position and acceleration sensors</article-title>
<source>IEEE T. Ind. Electron</source>
<year>2007</year>
<volume>54</volume>
<fpage>2706</fpage>
<lpage>2715</lpage>
</element-citation>
</ref>
<ref id="b6-sensors-10-04114"><label>6.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jeon</surname>
<given-names>S.</given-names>
</name>
<name><surname>Tomizuka</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Benefits of acceleration measurement in velocity estimation and motion control</article-title>
<source>Control Eng. Pract</source>
<year>2007</year>
<volume>15</volume>
<fpage>325</fpage>
<lpage>332</lpage>
</element-citation>
</ref>
<ref id="b7-sensors-10-04114"><label>7.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Osornio-Rios</surname>
<given-names>R.A.</given-names>
</name>
<name><surname>Romero-Troncoso</surname>
<given-names>R.J.</given-names>
</name>
<name><surname>Herrera-Ruiz</surname>
<given-names>G.</given-names>
</name>
<name><surname>Castañeda-Miranda</surname>
<given-names>R.</given-names>
</name>
</person-group>
<article-title>FPGA implementation of higher degree polynomial acceleration profiles for peak jerk reduction in servomotors</article-title>
<source>Robot. Cim-Int. Manuf</source>
<year>2009</year>
<volume>25</volume>
<fpage>379</fpage>
<lpage>392</lpage>
</element-citation>
</ref>
<ref id="b8-sensors-10-04114"><label>8.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Väliviita</surname>
<given-names>S.</given-names>
</name>
<name><surname>Ovaska</surname>
<given-names>S.J.</given-names>
</name>
</person-group>
<article-title>Delayless acceleration measurement method for elevator control</article-title>
<source>IEEE T. Ind. Electron</source>
<year>1998</year>
<volume>45</volume>
<fpage>364</fpage>
<lpage>366</lpage>
</element-citation>
</ref>
<ref id="b9-sensors-10-04114"><label>9.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>de Santiago-Pérez</surname>
<given-names>J.J.</given-names>
</name>
<name><surname>Osornio-Rios</surname>
<given-names>R.A.</given-names>
</name>
<name><surname>Romero-Troncoso</surname>
<given-names>R.J.</given-names>
</name>
<name><surname>Herrera-Ruiz</surname>
<given-names>G.</given-names>
</name>
<name><surname>Delgado-Rosas</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>DSP algorithm for the extraction of dynamics parameters in CNC machine tool servomechanisms from an optical incremental encoder</article-title>
<source>Int. J. Mach. Tool Manu</source>
<year>2008</year>
<volume>48</volume>
<fpage>1318</fpage>
<lpage>1334</lpage>
</element-citation>
</ref>
<ref id="b10-sensors-10-04114"><label>10.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Morales-Velazquez</surname>
<given-names>L.</given-names>
</name>
<name><surname>Romero-Troncoso</surname>
<given-names>R.J.</given-names>
</name>
<name><surname>Osornio-Rios</surname>
<given-names>R.A.</given-names>
</name>
<name><surname>Cabal-Yepez</surname>
<given-names>E.</given-names>
</name>
</person-group>
<article-title>Sensorless jerk monitoring using an adaptive antisymmetric high-order FIR filter</article-title>
<source>Mech. Syst. Signal Pr</source>
<year>2009</year>
<volume>23</volume>
<fpage>2383</fpage>
<lpage>2394</lpage>
</element-citation>
</ref>
<ref id="b11-sensors-10-04114"><label>11.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Canepa</surname>
<given-names>G.</given-names>
</name>
<name><surname>Hollerbach</surname>
<given-names>J.M.</given-names>
</name>
<name><surname>Boelen</surname>
<given-names>A.J.M.A.</given-names>
</name>
</person-group>
<article-title>Kinematic calibration by means of a triaxial accelerometer</article-title>
<conf-name>Proceedings of ICRA-1994, the International Conference on Robotics and Automation</conf-name>
<conf-loc>San Diego, CA, USA</conf-loc>
<conf-date>May 1994</conf-date>
</element-citation>
</ref>
<ref id="b12-sensors-10-04114"><label>12.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Han</surname>
<given-names>J.D</given-names>
</name>
<name><surname>He</surname>
<given-names>Y.Q.</given-names>
</name>
<name><surname>Xu</surname>
<given-names>W.L.</given-names>
</name>
</person-group>
<article-title>Angular acceleration estimation and feedback control: an experimental investigation</article-title>
<source>Mechatronics</source>
<year>2007</year>
<volume>17</volume>
<fpage>524</fpage>
<lpage>532</lpage>
</element-citation>
</ref>
<ref id="b13-sensors-10-04114"><label>13.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gamez-Garcia</surname>
<given-names>J.</given-names>
</name>
<name><surname>Robertsson</surname>
<given-names>A.</given-names>
</name>
<name><surname>Gomez-Ortega</surname>
<given-names>J</given-names>
</name>
<name><surname>Johansson</surname>
<given-names>R.</given-names>
</name>
</person-group>
<article-title>Self-calibrated robotic manipulator force observer</article-title>
<source>Robot. Cim-Int. Manuf</source>
<year>2009</year>
<volume>25</volume>
<fpage>366</fpage>
<lpage>378</lpage>
</element-citation>
</ref>
<ref id="b14-sensors-10-04114"><label>14.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname>
<given-names>W.</given-names>
</name>
<name><surname>Jianu</surname>
<given-names>O.A.</given-names>
</name>
</person-group>
<article-title>A smart sensing unit for vibration measurement and monitoring</article-title>
<source>IEEE/ASME Trans. Mechatron</source>
<year>2010</year>
<volume>15</volume>
<fpage>70</fpage>
<lpage>78</lpage>
</element-citation>
</ref>
<ref id="b15-sensors-10-04114"><label>15.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Mekid</surname>
<given-names>S.</given-names>
</name>
<name><surname>Pruschek</surname>
<given-names>P.</given-names>
</name>
<name><surname>Hernandez</surname>
<given-names>J.</given-names>
</name>
</person-group>
<article-title>Beyond intelligent manufacturing: a new generation of flexible intelligent NC machines</article-title>
<source>Mech. Mach. Theory</source>
<year>2009</year>
<volume>44</volume>
<fpage>466</fpage>
<lpage>476</lpage>
</element-citation>
</ref>
<ref id="b16-sensors-10-04114"><label>16.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname>
<given-names>H.H.S.</given-names>
</name>
<name><surname>Pang</surname>
<given-names>G.K.H.</given-names>
</name>
</person-group>
<article-title>Accelerometer for mobile robot positioning</article-title>
<source>IEEE T. Ind. Appl</source>
<year>2001</year>
<volume>37</volume>
<fpage>812</fpage>
<lpage>819</lpage>
</element-citation>
</ref>
<ref id="b17-sensors-10-04114"><label>17.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jassemi-Zargani</surname>
<given-names>R.</given-names>
</name>
<name><surname>Necsulescu</surname>
<given-names>D.</given-names>
</name>
</person-group>
<article-title>Extended kalman filter-based sensor fusion for operational space control of a robot arm</article-title>
<source>IEEE T. Instrum. Meas</source>
<year>2002</year>
<volume>51</volume>
<fpage>1279</fpage>
<lpage>1282</lpage>
</element-citation>
</ref>
<ref id="b18-sensors-10-04114"><label>18.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Dumetz</surname>
<given-names>E.</given-names>
</name>
<name><surname>Dieulot</surname>
<given-names>J.Y.</given-names>
</name>
<name><surname>Barre</surname>
<given-names>P.J.</given-names>
</name>
<name><surname>Colas</surname>
<given-names>F.</given-names>
</name>
<name><surname>Delplace</surname>
<given-names>T.</given-names>
</name>
</person-group>
<article-title>Control of an industrial robot using acceleration feedback</article-title>
<source>J. Intell. Robot Syst</source>
<year>2006</year>
<volume>46</volume>
<fpage>111</fpage>
<lpage>128</lpage>
</element-citation>
</ref>
<ref id="b19-sensors-10-04114"><label>19.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ohta</surname>
<given-names>T.</given-names>
</name>
<name><surname>Murakami</surname>
<given-names>T.</given-names>
</name>
</person-group>
<article-title>A stabilization control of bilateral system with time delay by vibration index-application to inverted pendulum control</article-title>
<source>IEEE T. Ind. Electron</source>
<year>2009</year>
<volume>56</volume>
<fpage>1595</fpage>
<lpage>1603</lpage>
</element-citation>
</ref>
<ref id="b20-sensors-10-04114"><label>20.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Trendafilova</surname>
<given-names>I.</given-names>
</name>
<name><surname>van Brussel</surname>
<given-names>H.</given-names>
</name>
</person-group>
<article-title>Condition monitoring of robot joints using statistical and nonlinear dynamics tools</article-title>
<source>Meccanica</source>
<year>2003</year>
<volume>38</volume>
<fpage>283</fpage>
<lpage>295</lpage>
</element-citation>
</ref>
<ref id="b21-sensors-10-04114"><label>21.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Bernmark</surname>
<given-names>E.</given-names>
</name>
<name><surname>Wiktorin</surname>
<given-names>C.</given-names>
</name>
</person-group>
<article-title>A triaxial accelerometer for measuring arm movements</article-title>
<source>Appl. Ergon</source>
<year>2002</year>
<volume>33</volume>
<fpage>541</fpage>
<lpage>547</lpage>
<pub-id pub-id-type="pmid">12507338</pub-id>
</element-citation>
</ref>
<ref id="b22-sensors-10-04114"><label>22.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Rangel-Magdaleno</surname>
<given-names>J.J.</given-names>
</name>
<name><surname>Romero-Troncoso</surname>
<given-names>R.J.</given-names>
</name>
<name><surname>Osornio-Rios</surname>
<given-names>R.A.</given-names>
</name>
<name><surname>Cabal-Yepez</surname>
<given-names>E.</given-names>
</name>
</person-group>
<article-title>Novel oversampling technique for improving signal-to-quantization noise ratio on accelerometer-based smart jerk sensors in CNC applications</article-title>
<source>Sensors</source>
<year>2009</year>
<volume>9</volume>
<fpage>3767</fpage>
<lpage>3789</lpage>
</element-citation>
</ref>
<ref id="b23-sensors-10-04114"><label>23.</label>
<element-citation publication-type="journal"><article-title>AN3461 Application Note, Tilt sensing using linear accelerometers</article-title>
<source>Freescale Semiconductor</source>
<year>2007</year>
</element-citation>
</ref>
<ref id="b24-sensors-10-04114"><label>24.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Miro</surname>
<given-names>J.V.</given-names>
</name>
<name><surname>White</surname>
<given-names>A.S.</given-names>
</name>
</person-group>
<article-title>Modelling an industrial manipulator a case study</article-title>
<source>Simulat. Pract. Theor</source>
<year>2002</year>
<volume>9</volume>
<fpage>293</fpage>
<lpage>319</lpage>
</element-citation>
</ref>
<ref id="b25-sensors-10-04114"><label>25.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Karagülle</surname>
<given-names>H.</given-names>
</name>
<name><surname>Malgaca</surname>
<given-names>L.</given-names>
</name>
</person-group>
<article-title>Analysis of end point vibrations of a two-link manipulator by Integrated CAD/CAE procedures</article-title>
<source>Finite Elem. Anal. Des</source>
<year>2004</year>
<volume>40</volume>
<fpage>2049</fpage>
<lpage>2061</lpage>
</element-citation>
</ref>
<ref id="b26-sensors-10-04114"><label>26.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Sulaiman</surname>
<given-names>N.</given-names>
</name>
<name><surname>Obaid</surname>
<given-names>Z.A.</given-names>
</name>
<name><surname>Marhaban</surname>
<given-names>M.H.</given-names>
</name>
<name><surname>Hamidon</surname>
<given-names>M.N.</given-names>
</name>
</person-group>
<article-title>Design and Implementation of FPGA-Based Systems - A Review</article-title>
<source>Aust. J. Basic Appl. Sci</source>
<year>2009</year>
<volume>3</volume>
<fpage>3575</fpage>
<lpage>3596</lpage>
</element-citation>
</ref>
<ref id="b27-sensors-10-04114"><label>27.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Vachhani</surname>
<given-names>L.</given-names>
</name>
<name><surname>Sridharan</surname>
<given-names>K.</given-names>
</name>
<name><surname>Meher</surname>
<given-names>P.K.</given-names>
</name>
</person-group>
<article-title>Efficient FPGA realization of CORDIC with application to robotic exploration</article-title>
<source>IEEE T. Ind. Electron</source>
<year>2009</year>
<volume>56</volume>
<fpage>4915</fpage>
<lpage>4929</lpage>
</element-citation>
</ref>
<ref id="b28-sensors-10-04114"><label>28.</label>
<mixed-citation publication-type="other">LIS3L02AS4 data sheet, STMicroelectronics, 2004.</mixed-citation>
</ref>
<ref id="b29-sensors-10-04114"><label>29.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Patra</surname>
<given-names>J.C.</given-names>
</name>
<name><surname>Lee</surname>
<given-names>H.Y.</given-names>
</name>
<name><surname>Meher</surname>
<given-names>P.K.</given-names>
</name>
<name><surname>Ang</surname>
<given-names>E.L.</given-names>
</name>
</person-group>
<article-title>Field programmable gate array implementation of a neural network-based intelligent sensor system</article-title>
<conf-name>International Conference on Control Automation Robotics and Vision (IEEE ICARCV 2006)</conf-name>
<conf-loc>Singapore</conf-loc>
<conf-date>December 2006</conf-date>
<fpage>333</fpage>
<lpage>337</lpage>
</element-citation>
</ref>
<ref id="b30-sensors-10-04114"><label>30.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Depari</surname>
<given-names>A.</given-names>
</name>
<name><surname>Ferrari</surname>
<given-names>P.</given-names>
</name>
<name><surname>Flammini</surname>
<given-names>A.</given-names>
</name>
<name><surname>Marioli</surname>
<given-names>D.</given-names>
</name>
<name><surname>Taroni</surname>
<given-names>A.</given-names>
</name>
</person-group>
<article-title>A VHDL model of a IEEE1451.2 smart sensor: characterization and applications</article-title>
<source>IEEE Sens. J</source>
<year>2007</year>
<volume>7</volume>
<fpage>619</fpage>
<lpage>626</lpage>
</element-citation>
</ref>
<ref id="b31-sensors-10-04114"><label>31.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Altintas</surname>
<given-names>Y.</given-names>
</name>
</person-group>
<source>Manufacturing Automation: Metal Cutting Mechanics, Machine Tool Vibrations, and CNC Design</source>
<publisher-name>Cambridge University Press</publisher-name>
<publisher-loc>Cambridge, UK</publisher-loc>
<year>2000</year>
</element-citation>
</ref>
<ref id="b32-sensors-10-04114"><label>32.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname>
<given-names>G</given-names>
</name>
<name><surname>Goldenberg</surname>
<given-names>A.A.</given-names>
</name>
<name><surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
</person-group>
<article-title>Precise slow motion control of a direct-drive robot arm with velocity estimation and friction compensation</article-title>
<source>Mechatronics</source>
<year>2004</year>
<volume>14</volume>
<fpage>821</fpage>
<lpage>834</lpage>
</element-citation>
</ref>
<ref id="b33-sensors-10-04114"><label>33.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Fan</surname>
<given-names>S</given-names>
</name>
<name><surname>Bicker</surname>
<given-names>R.</given-names>
</name>
</person-group>
<article-title>Design and validation of an FPGA-based self-healing controller for hybrid machine tools</article-title>
<source>J. Adv. Mech. Sys</source>
<year>2010</year>
<volume>2</volume>
<fpage>99</fpage>
<lpage>107</lpage>
</element-citation>
</ref>
</ref-list>
</back>
<floats-group><fig id="f1-sensors-10-04114" position="float"><label>Figure 1.</label>
<caption><p>Analytical polynomial-motion profile: <bold>(a)</bold>
position, <bold>(b)</bold>
velocity, <bold>(c)</bold>
acceleration, <bold>(d)</bold>
jerk; recursive finite differentiation of the encoder: <bold>(e)</bold>
position, <bold>(f)</bold>
velocity, <bold>(g)</bold>
acceleration, and <bold>(h)</bold>
jerk; estimated motion profile with decimation: <bold>(i)</bold>
position, <bold>(j)</bold>
velocity, <bold>(k)</bold>
acceleration, <bold>(l)</bold>
jerk.</p>
</caption>
<graphic xlink:href="sensors-10-04114f1"></graphic>
</fig>
<fig id="f2-sensors-10-04114" position="float"><label>Figure 2.</label>
<caption><p>Triaxial accelerometer location on the robot arm, showing inclination angles with respect to gravity.</p>
</caption>
<graphic xlink:href="sensors-10-04114f2"></graphic>
</fig>
<fig id="f3-sensors-10-04114" position="float"><label>Figure 3.</label>
<caption><p>An overview of the architecture of the proposed smart sensor.</p>
</caption>
<graphic xlink:href="sensors-10-04114f3"></graphic>
</fig>
<fig id="f4-sensors-10-04114" position="float"><label>Figure 4.</label>
<caption><p>Smart sensor methodology showing the main blocks in the system.</p>
</caption>
<graphic xlink:href="sensors-10-04114f4"></graphic>
</fig>
<fig id="f5-sensors-10-04114" position="float"><label>Figure 5.</label>
<caption><p>The motion dynamics methodology.</p>
</caption>
<graphic xlink:href="sensors-10-04114f5"></graphic>
</fig>
<fig id="f6-sensors-10-04114" position="float"><label>Figure 6.</label>
<caption><p>Methodology to estimate inclination angles from accelerometer signals.</p>
</caption>
<graphic xlink:href="sensors-10-04114f6"></graphic>
</fig>
<fig id="f7-sensors-10-04114" position="float"><label>Figure 7.</label>
<caption><p>Vibration-parameters estimation methodology used to separate vibrations from the original accelerometer measurement.</p>
</caption>
<graphic xlink:href="sensors-10-04114f7"></graphic>
</fig>
<fig id="f8-sensors-10-04114" position="float"><label>Figure 8.</label>
<caption><p>Experimental setup used for experimentation, showing the Cloos-Romat 56 modular robot, the two primary sensors, the FPGA processing unit, the proprietary motion controller, and the user PC.</p>
</caption>
<graphic xlink:href="sensors-10-04114f8"></graphic>
</fig>
<fig id="f9-sensors-10-04114" position="float"><label>Figure 9.</label>
<caption><p>Motion dynamics results: <bold>(a)</bold>
analytical position profile, <bold>(e)</bold>
estimated position profile, <bold>(i)</bold>
position error, <bold>(b)</bold>
analytical velocity profile, <bold>(f)</bold>
estimated velocity profile, <bold>(j)</bold>
velocity error, <bold>(c)</bold>
analytical acceleration profile, <bold>(g)</bold>
estimated acceleration profile, (k) acceleration error, <bold>(d)</bold>
analytical jerk profile, <bold>(h)</bold>
estimated jerk profile, and <bold>(l)</bold>
jerk error.</p>
</caption>
<graphic xlink:href="sensors-10-04114f9"></graphic>
</fig>
<fig id="f10-sensors-10-04114" position="float"><label>Figure 10.</label>
<caption><p>Inclination estimated results: (a) analytical yaw, (b) analytical roll, (c) analytical pitch, (d) estimated yaw, (e) estimated roll, (f) estimated pitch, (g) yaw relative error (h) roll relative error, and (i) pitch relative error.</p>
</caption>
<graphic xlink:href="sensors-10-04114f10"></graphic>
</fig>
<fig id="f11-sensors-10-04114" position="float"><label>Figure 11.</label>
<caption><p>Vibration information separated from inclination at the accelerometer <bold>(a)</bold>
X-axis, <bold>(b)</bold>
Y-axis, and <bold>(c)</bold>
Z-axis.</p>
</caption>
<graphic xlink:href="sensors-10-04114f11"></graphic>
</fig>
<table-wrap id="t1-sensors-10-04114" position="float"><label>Table 1.</label>
<caption><p>FPGA resource usage.</p>
</caption>
<table frame="box" rules="all"><thead><tr><th colspan="4" align="center" valign="middle" rowspan="1">1.6 million-gate Xilinx Spartan 3E FPGA: XC3S1600E</th>
</tr>
<tr><th align="center" valign="middle" rowspan="1" colspan="1">Element</th>
<th align="center" valign="middle" rowspan="1" colspan="1">Used</th>
<th align="center" valign="middle" rowspan="1" colspan="1">Available</th>
<th align="center" valign="middle" rowspan="1" colspan="1">Percentage %</th>
</tr>
</thead>
<tbody><tr><td align="center" valign="middle" rowspan="1" colspan="1">Slices</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2027</td>
<td align="center" valign="middle" rowspan="1" colspan="1">4752</td>
<td align="center" valign="middle" rowspan="1" colspan="1">13</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">Slice Flip-flops</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2158</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2950</td>
<td align="center" valign="middle" rowspan="1" colspan="1">47</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">4-input LUTs</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2719</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2959</td>
<td align="center" valign="middle" rowspan="1" colspan="1">49</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">Block RAMs</td>
<td align="center" valign="middle" rowspan="1" colspan="1">6</td>
<td align="center" valign="middle" rowspan="1" colspan="1">36</td>
<td align="center" valign="middle" rowspan="1" colspan="1">17</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">Multipliers</td>
<td align="center" valign="middle" rowspan="1" colspan="1">25</td>
<td align="center" valign="middle" rowspan="1" colspan="1">36</td>
<td align="center" valign="middle" rowspan="1" colspan="1">70</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="t2-sensors-10-04114" position="float"><label>Table 2.</label>
<caption><p>Smart sensor parameter application areas.</p>
</caption>
<table frame="box" rules="all"><thead><tr><th align="center" valign="middle" rowspan="1" colspan="1">Primary sensor</th>
<th align="center" valign="middle" rowspan="1" colspan="1">Parameter group</th>
<th align="center" valign="middle" rowspan="1" colspan="1">Parameter</th>
<th align="center" valign="middle" rowspan="1" colspan="1">Applications</th>
</tr>
</thead>
<tbody><tr><td align="center" valign="middle" rowspan="4" colspan="1">Encoder</td>
<td align="center" valign="middle" rowspan="4" colspan="1">Motion dynamics</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Position</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Positioning [<xref ref-type="bibr" rid="b10-sensors-10-04114">10</xref>
,<xref ref-type="bibr" rid="b31-sensors-10-04114">31</xref>
]</td>
</tr>
<tr><td align="left" valign="middle" rowspan="1" colspan="1">Velocity</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Control loop [<xref ref-type="bibr" rid="b32-sensors-10-04114">32</xref>
,<xref ref-type="bibr" rid="b33-sensors-10-04114">33</xref>
]</td>
</tr>
<tr><td align="left" valign="middle" rowspan="1" colspan="1">Acceleration</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Control loop [<xref ref-type="bibr" rid="b8-sensors-10-04114">8</xref>
]</td>
</tr>
<tr><td align="left" valign="middle" rowspan="1" colspan="1">Jerk</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Machine wear [<xref ref-type="bibr" rid="b7-sensors-10-04114">7</xref>
,<xref ref-type="bibr" rid="b31-sensors-10-04114">31</xref>
]</td>
</tr>
<tr><td align="center" valign="middle" rowspan="4" colspan="1">Accelerometer</td>
<td align="center" valign="middle" rowspan="3" colspan="1">Inclination</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Angular position</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Calibration [<xref ref-type="bibr" rid="b11-sensors-10-04114">11</xref>
], positioning [<xref ref-type="bibr" rid="b16-sensors-10-04114">16</xref>
,<xref ref-type="bibr" rid="b18-sensors-10-04114">18</xref>
]</td>
</tr>
<tr><td align="left" valign="middle" rowspan="1" colspan="1">Angular velocity</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Control loop [<xref ref-type="bibr" rid="b17-sensors-10-04114">17</xref>
,<xref ref-type="bibr" rid="b18-sensors-10-04114">18</xref>
]</td>
</tr>
<tr><td align="left" valign="middle" rowspan="1" colspan="1">Angular acceleration</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Torque control [<xref ref-type="bibr" rid="b12-sensors-10-04114">12</xref>
,<xref ref-type="bibr" rid="b13-sensors-10-04114">13</xref>
]</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">Vibrations</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Vibration</td>
<td align="left" valign="middle" rowspan="1" colspan="1">Failure detection [<xref ref-type="bibr" rid="b14-sensors-10-04114">14</xref>
]</td>
</tr>
</tbody>
</table>
</table-wrap>
</floats-group>
</pmc>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/TelematiV1/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000596 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 000596 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Ticri/CIDE |area= TelematiV1 |flux= Pmc |étape= Corpus |type= RBID |clé= PMC:3274264 |texte= FPGA-Based Fused Smart Sensor for Dynamic and Vibration Parameter Extraction in Industrial Robot Links }}
Pour générer des pages wiki
HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/RBID.i -Sk "pubmed:22319345" \ | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd \ | NlmPubMed2Wicri -a TelematiV1
![]() | This area was generated with Dilib version V0.6.31. | ![]() |