Serveur d'exploration sur les dispositifs haptiques

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.

Design and Calibration of a New 6 DOF Haptic Device

Identifieur interne : 000389 ( Pmc/Curation ); précédent : 000388; suivant : 000390

Design and Calibration of a New 6 DOF Haptic Device

Auteurs : Huanhuan Qin ; Aiguo Song ; Yuqing Liu ; Guohua Jiang ; Bohe Zhou

Source :

RBID : PMC:4721777

Abstract

For many applications such as tele-operational robots and interactions with virtual environments, it is better to have performance with force feedback than without. Haptic devices are force reflecting interfaces. They can also track human hand positions simultaneously. A new 6 DOF (degree-of-freedom) haptic device was designed and calibrated in this study. It mainly contains a double parallel linkage, a rhombus linkage, a rotating mechanical structure and a grasping interface. Benefited from the unique design, it is a hybrid structure device with a large workspace and high output capability. Therefore, it is capable of multi-finger interactions. Moreover, with an adjustable base, operators can change different postures without interrupting haptic tasks. To investigate the performance regarding position tracking accuracy and static output forces, we conducted experiments on a three-dimensional electric sliding platform and a digital force gauge, respectively. Displacement errors and force errors are calculated and analyzed. To identify the capability and potential of the device, four application examples were programmed.


Url:
DOI: 10.3390/s151229857
PubMed: 26690449
PubMed Central: 4721777

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


Links to Exploration step

PMC:4721777

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">Design and Calibration of a New 6 DOF Haptic Device</title>
<author>
<name sortKey="Qin, Huanhuan" sort="Qin, Huanhuan" uniqKey="Qin H" first="Huanhuan" last="Qin">Huanhuan Qin</name>
<affiliation>
<nlm:aff id="af1-sensors-15-29857">School of Instrument Science and Engineering, Southeast University, Nanjing 210096, China;
<email>230159227@seu.edu.cn</email>
</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Song, Aiguo" sort="Song, Aiguo" uniqKey="Song A" first="Aiguo" last="Song">Aiguo Song</name>
<affiliation>
<nlm:aff id="af1-sensors-15-29857">School of Instrument Science and Engineering, Southeast University, Nanjing 210096, China;
<email>230159227@seu.edu.cn</email>
</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Liu, Yuqing" sort="Liu, Yuqing" uniqKey="Liu Y" first="Yuqing" last="Liu">Yuqing Liu</name>
<affiliation>
<nlm:aff id="af2-sensors-15-29857">National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Jiang, Guohua" sort="Jiang, Guohua" uniqKey="Jiang G" first="Guohua" last="Jiang">Guohua Jiang</name>
<affiliation>
<nlm:aff id="af2-sensors-15-29857">National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Zhou, Bohe" sort="Zhou, Bohe" uniqKey="Zhou B" first="Bohe" last="Zhou">Bohe Zhou</name>
<affiliation>
<nlm:aff id="af2-sensors-15-29857">National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">26690449</idno>
<idno type="pmc">4721777</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4721777</idno>
<idno type="RBID">PMC:4721777</idno>
<idno type="doi">10.3390/s151229857</idno>
<date when="2015">2015</date>
<idno type="wicri:Area/Pmc/Corpus">000389</idno>
<idno type="wicri:Area/Pmc/Curation">000389</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">Design and Calibration of a New 6 DOF Haptic Device</title>
<author>
<name sortKey="Qin, Huanhuan" sort="Qin, Huanhuan" uniqKey="Qin H" first="Huanhuan" last="Qin">Huanhuan Qin</name>
<affiliation>
<nlm:aff id="af1-sensors-15-29857">School of Instrument Science and Engineering, Southeast University, Nanjing 210096, China;
<email>230159227@seu.edu.cn</email>
</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Song, Aiguo" sort="Song, Aiguo" uniqKey="Song A" first="Aiguo" last="Song">Aiguo Song</name>
<affiliation>
<nlm:aff id="af1-sensors-15-29857">School of Instrument Science and Engineering, Southeast University, Nanjing 210096, China;
<email>230159227@seu.edu.cn</email>
</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Liu, Yuqing" sort="Liu, Yuqing" uniqKey="Liu Y" first="Yuqing" last="Liu">Yuqing Liu</name>
<affiliation>
<nlm:aff id="af2-sensors-15-29857">National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Jiang, Guohua" sort="Jiang, Guohua" uniqKey="Jiang G" first="Guohua" last="Jiang">Guohua Jiang</name>
<affiliation>
<nlm:aff id="af2-sensors-15-29857">National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Zhou, Bohe" sort="Zhou, Bohe" uniqKey="Zhou B" first="Bohe" last="Zhou">Bohe Zhou</name>
<affiliation>
<nlm:aff id="af2-sensors-15-29857">National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</nlm:aff>
</affiliation>
</author>
</analytic>
<series>
<title level="j">Sensors (Basel, Switzerland)</title>
<idno type="eISSN">1424-8220</idno>
<imprint>
<date when="2015">2015</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<p>For many applications such as tele-operational robots and interactions with virtual environments, it is better to have performance with force feedback than without. Haptic devices are force reflecting interfaces. They can also track human hand positions simultaneously. A new 6 DOF (degree-of-freedom) haptic device was designed and calibrated in this study. It mainly contains a double parallel linkage, a rhombus linkage, a rotating mechanical structure and a grasping interface. Benefited from the unique design, it is a hybrid structure device with a large workspace and high output capability. Therefore, it is capable of multi-finger interactions. Moreover, with an adjustable base, operators can change different postures without interrupting haptic tasks. To investigate the performance regarding position tracking accuracy and static output forces, we conducted experiments on a three-dimensional electric sliding platform and a digital force gauge, respectively. Displacement errors and force errors are calculated and analyzed. To identify the capability and potential of the device, four application examples were programmed.</p>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Ernst, M O" uniqKey="Ernst M">M.O. Ernst</name>
</author>
<author>
<name sortKey="Banks, M S" uniqKey="Banks M">M.S. Banks</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Song, A" uniqKey="Song A">A. Song</name>
</author>
<author>
<name sortKey="Han, Y" uniqKey="Han Y">Y. Han</name>
</author>
<author>
<name sortKey="Hu, H" uniqKey="Hu H">H. Hu</name>
</author>
<author>
<name sortKey="Li, J" uniqKey="Li J">J. Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Song, A" uniqKey="Song A">A. Song</name>
</author>
<author>
<name sortKey="Han, Y" uniqKey="Han Y">Y. Han</name>
</author>
<author>
<name sortKey="Hu, H" uniqKey="Hu H">H. Hu</name>
</author>
<author>
<name sortKey="Tian, L" uniqKey="Tian L">L. Tian</name>
</author>
<author>
<name sortKey="Wu, J" uniqKey="Wu J">J. Wu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Salisbury, K" uniqKey="Salisbury K">K. Salisbury</name>
</author>
<author>
<name sortKey="Conti, F" uniqKey="Conti F">F. Conti</name>
</author>
<author>
<name sortKey="Barbagli, F" uniqKey="Barbagli F">F. Barbagli</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Srinivasan, M A" uniqKey="Srinivasan M">M.A. Srinivasan</name>
</author>
<author>
<name sortKey="Basdogan, C" uniqKey="Basdogan C">C. Basdogan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Teo, C L" uniqKey="Teo C">C.L. Teo</name>
</author>
<author>
<name sortKey="Burdet, E" uniqKey="Burdet E">E. Burdet</name>
</author>
<author>
<name sortKey="Lim, H" uniqKey="Lim H">H. Lim</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Fogg, B" uniqKey="Fogg B">B. Fogg</name>
</author>
<author>
<name sortKey="Cutler, L D" uniqKey="Cutler L">L.D. Cutler</name>
</author>
<author>
<name sortKey="Arnold, P" uniqKey="Arnold P">P. Arnold</name>
</author>
<author>
<name sortKey="Eisbach, C" uniqKey="Eisbach C">C. Eisbach</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Basdogan, C" uniqKey="Basdogan C">C. Basdogan</name>
</author>
<author>
<name sortKey="De, S" uniqKey="De S">S. De</name>
</author>
<author>
<name sortKey="Kim, J" uniqKey="Kim J">J. Kim</name>
</author>
<author>
<name sortKey="Muniyandi, M" uniqKey="Muniyandi M">M. Muniyandi</name>
</author>
<author>
<name sortKey="Kim, H" uniqKey="Kim H">H. Kim</name>
</author>
<author>
<name sortKey="Srinivasan, M" uniqKey="Srinivasan M">M. Srinivasan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Brooks Jr, F P" uniqKey="Brooks Jr F">F.P. Brooks Jr</name>
</author>
<author>
<name sortKey="Ouh Young, M" uniqKey="Ouh Young M">M. Ouh-Young</name>
</author>
<author>
<name sortKey="Batter, J J" uniqKey="Batter J">J.J. Batter</name>
</author>
<author>
<name sortKey="Jerome Kilpatrick, P" uniqKey="Jerome Kilpatrick P">P. Jerome Kilpatrick</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Massie, T H" uniqKey="Massie T">T.H. Massie</name>
</author>
<author>
<name sortKey="Salisbury, J K" uniqKey="Salisbury J">J.K. Salisbury</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tahmasebi, A M" uniqKey="Tahmasebi A">A.M. Tahmasebi</name>
</author>
<author>
<name sortKey="Taati, B" uniqKey="Taati B">B. Taati</name>
</author>
<author>
<name sortKey="Mobasser, F" uniqKey="Mobasser F">F. Mobasser</name>
</author>
<author>
<name sortKey="Hashtrudi Zaad, K" uniqKey="Hashtrudi Zaad K">K. Hashtrudi-Zaad</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Cavu O Lu, M C" uniqKey="Cavu O Lu M">M.C. Çavuşoğlu</name>
</author>
<author>
<name sortKey="Feygin, D" uniqKey="Feygin D">D. Feygin</name>
</author>
<author>
<name sortKey="Tendick, F" uniqKey="Tendick F">F. Tendick</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Martin, S" uniqKey="Martin S">S. Martin</name>
</author>
<author>
<name sortKey="Hillier, N" uniqKey="Hillier N">N. Hillier</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Clavel, R" uniqKey="Clavel R">R. Clavel</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Grange, S" uniqKey="Grange S">S. Grange</name>
</author>
<author>
<name sortKey="Conti, F" uniqKey="Conti F">F. Conti</name>
</author>
<author>
<name sortKey="Helmer, P" uniqKey="Helmer P">P. Helmer</name>
</author>
<author>
<name sortKey="Rouiller, P" uniqKey="Rouiller P">P. Rouiller</name>
</author>
<author>
<name sortKey="Baur, C" uniqKey="Baur C">C. Baur</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Arata, J" uniqKey="Arata J">J. Arata</name>
</author>
<author>
<name sortKey="Ikedo, N" uniqKey="Ikedo N">N. Ikedo</name>
</author>
<author>
<name sortKey="Fujimoto, H" uniqKey="Fujimoto H">H. Fujimoto</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Vu, M H" uniqKey="Vu M">M.H. Vu</name>
</author>
<author>
<name sortKey="Na, U J" uniqKey="Na U">U.J. Na</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ueberle, M" uniqKey="Ueberle M">M. Ueberle</name>
</author>
<author>
<name sortKey="Buss, M" uniqKey="Buss M">M. Buss</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ueberle, M" uniqKey="Ueberle M">M. Ueberle</name>
</author>
<author>
<name sortKey="Mock, N" uniqKey="Mock N">N. Mock</name>
</author>
<author>
<name sortKey="Buss, M" uniqKey="Buss M">M. Buss</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Van Der Linde, R Q" uniqKey="Van Der Linde R">R.Q. Van der Linde</name>
</author>
<author>
<name sortKey="Lammertse, P" uniqKey="Lammertse P">P. Lammertse</name>
</author>
<author>
<name sortKey="Frederiksen, E" uniqKey="Frederiksen E">E. Frederiksen</name>
</author>
<author>
<name sortKey="Ruiter, B" uniqKey="Ruiter B">B. Ruiter</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tsumaki, Y" uniqKey="Tsumaki Y">Y. Tsumaki</name>
</author>
<author>
<name sortKey="Naruse, H" uniqKey="Naruse H">H. Naruse</name>
</author>
<author>
<name sortKey="Nenchev, D N" uniqKey="Nenchev D">D.N. Nenchev</name>
</author>
<author>
<name sortKey="Uchiyama, M" uniqKey="Uchiyama M">M. Uchiyama</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Mcneely, W A" uniqKey="Mcneely W">W.A. McNeely</name>
</author>
<author>
<name sortKey="Puterbaugh, K D" uniqKey="Puterbaugh K">K.D. Puterbaugh</name>
</author>
<author>
<name sortKey="Troy, J J" uniqKey="Troy J">J.J. Troy</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ellis, R" uniqKey="Ellis R">R. Ellis</name>
</author>
<author>
<name sortKey="Ismaeil, O" uniqKey="Ismaeil O">O. Ismaeil</name>
</author>
<author>
<name sortKey="Lipsett, M" uniqKey="Lipsett M">M. Lipsett</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lawrence, D" uniqKey="Lawrence D">D. Lawrence</name>
</author>
<author>
<name sortKey="Chapel, J D" uniqKey="Chapel J">J.D. Chapel</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Holzapfel, G A" uniqKey="Holzapfel G">G.A. Holzapfel</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, J" uniqKey="Wang J">J. Wang</name>
</author>
<author>
<name sortKey="Gosselin, C M" uniqKey="Gosselin C">C.M. Gosselin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zareinia, K" uniqKey="Zareinia K">K. Zareinia</name>
</author>
<author>
<name sortKey="Maddahi, Y" uniqKey="Maddahi Y">Y. Maddahi</name>
</author>
<author>
<name sortKey="Ng, C" uniqKey="Ng C">C. Ng</name>
</author>
<author>
<name sortKey="Sepehri, N" uniqKey="Sepehri N">N. Sepehri</name>
</author>
<author>
<name sortKey="Sutherland, G R" uniqKey="Sutherland G">G.R. Sutherland</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ruspini, D C" uniqKey="Ruspini D">D.C. Ruspini</name>
</author>
<author>
<name sortKey="Kolarov, K" uniqKey="Kolarov K">K. Kolarov</name>
</author>
<author>
<name sortKey="Khatib, O" uniqKey="Khatib O">O. Khatib</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zilles, C B" uniqKey="Zilles C">C.B. Zilles</name>
</author>
<author>
<name sortKey="Salisbury, J K" uniqKey="Salisbury J">J.K. Salisbury</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-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">26690449</article-id>
<article-id pub-id-type="pmc">4721777</article-id>
<article-id pub-id-type="doi">10.3390/s151229857</article-id>
<article-id pub-id-type="publisher-id">sensors-15-29857</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Design and Calibration of a New 6 DOF Haptic Device</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Qin</surname>
<given-names>Huanhuan</given-names>
</name>
<xref ref-type="aff" rid="af1-sensors-15-29857">1</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Song</surname>
<given-names>Aiguo</given-names>
</name>
<xref ref-type="aff" rid="af1-sensors-15-29857">1</xref>
<xref rid="c1-sensors-15-29857" ref-type="corresp">*</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Liu</surname>
<given-names>Yuqing</given-names>
</name>
<xref ref-type="aff" rid="af2-sensors-15-29857">2</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Jiang</surname>
<given-names>Guohua</given-names>
</name>
<xref ref-type="aff" rid="af2-sensors-15-29857">2</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhou</surname>
<given-names>Bohe</given-names>
</name>
<xref ref-type="aff" rid="af2-sensors-15-29857">2</xref>
</contrib>
</contrib-group>
<contrib-group>
<contrib contrib-type="editor">
<name>
<surname>Vieira</surname>
<given-names>Manuela</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<aff id="af1-sensors-15-29857">
<label>1</label>
School of Instrument Science and Engineering, Southeast University, Nanjing 210096, China;
<email>230159227@seu.edu.cn</email>
</aff>
<aff id="af2-sensors-15-29857">
<label>2</label>
National Key Laboratory of Human Factors Engineering, China Astronaut Research and Training Center, Beijing 100094, China;
<email>clara_liu@163.com</email>
(Y.L.) ;
<email>jgh_isme@sina.com</email>
(G.J.) ;
<email>zhoubohe@126.com</email>
(B.Z.)</aff>
<author-notes>
<corresp id="c1-sensors-15-29857">
<label>*</label>
Correspondence:
<email>a.g.song@seu.edu.cn</email>
; Tel.: +86-25-8379-3293; Fax: +86-25-8379-2813</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>11</day>
<month>12</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="collection">
<month>12</month>
<year>2015</year>
</pub-date>
<volume>15</volume>
<issue>12</issue>
<fpage>31293</fpage>
<lpage>31313</lpage>
<history>
<date date-type="received">
<day>11</day>
<month>9</month>
<year>2015</year>
</date>
<date date-type="accepted">
<day>07</day>
<month>12</month>
<year>2015</year>
</date>
</history>
<permissions>
<copyright-statement>© 2015 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2015</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>For many applications such as tele-operational robots and interactions with virtual environments, it is better to have performance with force feedback than without. Haptic devices are force reflecting interfaces. They can also track human hand positions simultaneously. A new 6 DOF (degree-of-freedom) haptic device was designed and calibrated in this study. It mainly contains a double parallel linkage, a rhombus linkage, a rotating mechanical structure and a grasping interface. Benefited from the unique design, it is a hybrid structure device with a large workspace and high output capability. Therefore, it is capable of multi-finger interactions. Moreover, with an adjustable base, operators can change different postures without interrupting haptic tasks. To investigate the performance regarding position tracking accuracy and static output forces, we conducted experiments on a three-dimensional electric sliding platform and a digital force gauge, respectively. Displacement errors and force errors are calculated and analyzed. To identify the capability and potential of the device, four application examples were programmed.</p>
</abstract>
<kwd-group>
<kwd>haptic device</kwd>
<kwd>force feedback</kwd>
<kwd>position tracking</kwd>
<kwd>hybrid structure</kwd>
<kwd>calibration</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="sec1-sensors-15-29857">
<title>1. Introduction</title>
<p>Traditional interaction research emphasizes visual and auditory display, but pay little attention to haptic display. Visual and auditory interactions use vision and voices to transmit information. These interactions are non-contact interaction approaches, and they have some limitations. For example, vision mainly dominates visual percepts like size, shape and position [
<xref rid="B1-sensors-15-29857" ref-type="bibr">1</xref>
], but kinematic feelings such as velocity, acceleration or inertia cannot be reflected, even though vision has a higher spatial resolution than touch. Haptic refers to touching or interacting with real, virtual and remote environments, such as exploring and distinguishing material properties [
<xref rid="B2-sensors-15-29857" ref-type="bibr">2</xref>
,
<xref rid="B3-sensors-15-29857" ref-type="bibr">3</xref>
] and tele-operating a robot. Different from visual and auditory display, haptic is a unique bilateral sensory modality with energy and information flowing both from and to the user. This bi-directionality is often referred to as the single most important feature of the haptic interaction modality [
<xref rid="B4-sensors-15-29857" ref-type="bibr">4</xref>
]. As a medium between environments and human users, haptic interfaces transmit and display haptic stimuli [
<xref rid="B5-sensors-15-29857" ref-type="bibr">5</xref>
]. With precisely controlled forces and torques exerted on the manipulator’s fingertips, hand or arm, subtle sensations are able to be perceived, thus a high level of immersion is constructed. With the development of computer science, haptic has manifested great superiorities in fields, ranging from robotics and tele-operation to computational geometry and computer graphics, and to psychophysics, cognitive science and the neurosciences [
<xref rid="B4-sensors-15-29857" ref-type="bibr">4</xref>
]. Nowadays, haptic interfaces have been widely applied in many areas such as education [
<xref rid="B6-sensors-15-29857" ref-type="bibr">6</xref>
], entertainment [
<xref rid="B7-sensors-15-29857" ref-type="bibr">7</xref>
], surgical simulation and training [
<xref rid="B8-sensors-15-29857" ref-type="bibr">8</xref>
], and scientific visualization [
<xref rid="B9-sensors-15-29857" ref-type="bibr">9</xref>
].</p>
<p>The past decade has shown an increasing interest in the science of haptics. A number of haptic devices with different structures have been developed, some of which are commercially available devices and some are experimental prototypes. The PHANToM haptic device (SensAble Technologies, Woburn, MA, USA) designed by Massie and Salisbury [
<xref rid="B10-sensors-15-29857" ref-type="bibr">10</xref>
,
<xref rid="B11-sensors-15-29857" ref-type="bibr">11</xref>
] is a convenient desktop device with 3 or 6 actuated DOF. Due to characteristics of low inertia, low friction and high position precision, it has been widely used in a multitude of applications. Although it shows great success, there are still some weaknesses, such as limited strength, low stiffness and small workspace,
<italic>etc.</italic>
A critical study of the mechanical and electrical properties of the PHANToM is presented in [
<xref rid="B12-sensors-15-29857" ref-type="bibr">12</xref>
]. After the research of the kinematics, dynamics, high frequency dynamic response, and velocity estimation of the PHANToM system, some modifications are made to compensate for the deficiencies that impede high performance. The Novint Falcon is a relatively inexpensive 3 DOF haptic device made by Novint for the gaming industry [
<xref rid="B13-sensors-15-29857" ref-type="bibr">13</xref>
]. It has features of low inertia, high stiffness, high operating rate and better position repeatability due to the adoption of the DELTA mechanism [
<xref rid="B14-sensors-15-29857" ref-type="bibr">14</xref>
]. Nevertheless, it still has some shortages. Firstly, its workspace is small, and output forces are relatively small and inaccurate. Secondly, complexity of kinematic modelling increases significantly compared to its serial counterparts. In fact, some of the same advantages and disadvantages exist in haptic devices such as the DELTA Haptic Device (Force Dimension, Nyon, Switzerland) [
<xref rid="B15-sensors-15-29857" ref-type="bibr">15</xref>
], OMEGA Haptic Devices (Force Dimension, Nyon, Switzerland), haptic prototypes designed by Jumpei Arata
<italic>et al.</italic>
[
<xref rid="B16-sensors-15-29857" ref-type="bibr">16</xref>
] and Minh Hung Vu
<italic>et al.</italic>
[
<xref rid="B17-sensors-15-29857" ref-type="bibr">17</xref>
]. The VISHARD6 [
<xref rid="B18-sensors-15-29857" ref-type="bibr">18</xref>
] and VISHARD10 [
<xref rid="B19-sensors-15-29857" ref-type="bibr">19</xref>
] are both haptic devices with a serial kinematic design. The VISHARD6 is a 6 DOF device designed towards a comparatively large workspace and high force capability. However, it suffers from low mechanical stiffness. Singularities exist in its workspace as well. The VISHARD10 with 10 DOF introduces actuated kinematic redundancies to realize a larger workspace free of singularities while simultaneously reduce the device size. However, serial structure may lead to large occupation in space and loss in portability. On these issues, both devices do not have any breakthroughs. The same disadvantages are reflected in haptic devices such as HapticMaster [
<xref rid="B20-sensors-15-29857" ref-type="bibr">20</xref>
].</p>
<p>Traditionally, structure of haptic devices can be divided into serial and parallel structures. The serial structure is an open kinematic structure, which usually provides a large workspace, but shows lack of strength. Furthermore, singularities may exist in the workspace, whereas the parallel structure has a higher level of stiffness and better position repeatability. However, applications have been limited by its small workspace and complex kinematic modelling. Consequently, a hybrid structure that combines advantages of both structures is proposed. This form has proven itself as an excellent platform of large workspace, high output ability and high stiffness. The compact 6 DOF haptic interface designed by Y.Tsumaki
<italic>et al.</italic>
[
<xref rid="B21-sensors-15-29857" ref-type="bibr">21</xref>
] is such a hybrid structure device. </p>
<p>With the diversification of haptic applications, many tasks need to simulate arbitrary object-object interactions. A 6 DOF haptic device that provides torque feedback in addition to force feedback is very useful. In 6 DOF haptic scenes, the virtual avatar is usually a wrench, a screwdriver or something like a teapot [
<xref rid="B22-sensors-15-29857" ref-type="bibr">22</xref>
]. It gives operators enough dexterity to feel and explore virtual objects. Additionally, in some special tasks, it is necessary to simulate grabbing actions. Although a press button can solve parts of the problem sometimes, a grasping interface like CyberForce or CyberGrasp that can represent multi-finger joints is much more desirable.</p>
<p>Force feedback and sensing is a key technology in a virtual training system. It guarantees the authenticity of the training in many contact operations such as load transmission and component assembly. The absence of forces destructs immersions when touching and moving objects. It is necessary to have a haptic device to integrate operators into the virtual training system. Contact operations mainly relay on human upper extremity. Currently, commercially available haptic devices provide limited kinds of force feedback for upper limbs and hands. CyberTouch only provides senses of touch through vibration. CyberGrasp only represents forces of fingers. PHANTOM, HAPTION and CyberForce only provide forces on hand. The combination of CyberForce and CyberGrasp can exert forces on finger and hand, but CyberGrasp is hard to equip, and its motor-pull transfer method has electromagnetic interference problems. So it is essential to design a haptic device that combines finger and hand together, that is easy to equip, and that can realize various operations such as grasping, pushing-and-pulling and twisting in a virtual training system. Based on these motivations, a new 6 DOF haptic device with a grasping interface is designed and fabricated. This device differs from previous haptic devices on several important points. First, the integration of finger and hand increases dexterity of this device. Second, it is a new hybrid structure device designed towards a comparatively large workspace and high force output ability. Lastly, with an adjustable base, it allows operators to change different postures without interrupting haptic tasks.</p>
<p>The rest of this paper is organized as follows.
<xref ref-type="sec" rid="sec2-sensors-15-29857">Section 2</xref>
proposes the mechanical design of this 6 DOF haptic device. Motion measurement and tracking, as well as realization of force feedback, are introduced in
<xref ref-type="sec" rid="sec3-sensors-15-29857">Section 3</xref>
and
<xref ref-type="sec" rid="sec4-sensors-15-29857">Section 4</xref>
respectively.
<xref ref-type="sec" rid="sec5-sensors-15-29857">Section 5</xref>
describes the control scheme of this device. Specific calibration and evaluation experiments are shown in
<xref ref-type="sec" rid="sec6-sensors-15-29857">Section 6</xref>
. Experimental results and error analysis are also given in this section. Finally, conclusions are made in
<xref ref-type="sec" rid="sec7-sensors-15-29857">Section 7</xref>
.</p>
</sec>
<sec id="sec2-sensors-15-29857">
<title>2. Mechanical Design</title>
<p>Generally, an ideal haptic device is designed towards low inertial mass, low friction, low backlash, high structural stiffness, high force bandwidth and dynamic range, large workspace, and freedom of mechanical singularity [
<xref rid="B23-sensors-15-29857" ref-type="bibr">23</xref>
]. However, these demands are conflicting and difficult to achieve entirely. Careful considerations should be given by designers to the selection of a variety of requirements that a desirable haptic device needs to meet. Additionally, human perceptual thresholds can be used to establish general design guidelines [
<xref rid="B24-sensors-15-29857" ref-type="bibr">24</xref>
]. The main design objectives of our device are to obtain a large workspace and high output capability, and, at the same time, provide force feedback for three fingers. A hybrid structure haptic device with a grasping interface was designed. The general assembly drawing and overview of this device are presented in
<xref ref-type="fig" rid="sensors-15-29857-f001">Figure 1</xref>
and
<xref ref-type="fig" rid="sensors-15-29857-f002">Figure 2</xref>
individually. It is mainly composed of an adjustable base, a double parallel linkage, a rhombus linkage, a rotating mechanical structure and a grasping interface.</p>
<fig id="sensors-15-29857-f001" position="float">
<label>Figure 1</label>
<caption>
<p>General assembly drawing (
<bold>1</bold>
) Base; (
<bold>2</bold>
) Double parallel linkage; (
<bold>3</bold>
) Rhombus linkage; (
<bold>4</bold>
) Rotating mechanical structure; (
<bold>5</bold>
) Grasping interface.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g001"></graphic>
</fig>
<fig id="sensors-15-29857-f002" position="float">
<label>Figure 2</label>
<caption>
<p>Overview of the haptic device.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g002"></graphic>
</fig>
<p>The principle of the double parallel linkage is described in
<xref ref-type="fig" rid="sensors-15-29857-f003">Figure 3</xref>
. When a single linking bar rotates around a fixed point, there will be an inclination of the end-plane (see
<xref ref-type="fig" rid="sensors-15-29857-f003">Figure 3</xref>
a). Once two parallel linking bars are employed, the inclination disappears. The end-plane always keeps parallel to the initial location (see
<xref ref-type="fig" rid="sensors-15-29857-f003">Figure 3</xref>
b).</p>
<fig id="sensors-15-29857-f003" position="float">
<label>Figure 3</label>
<caption>
<p>Double parallel linkage. (
<bold>a</bold>
) Single linking bar; (
<bold>b</bold>
) Two parallel linking bars; (
<bold>c</bold>
) Double parallel linkage.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g003"></graphic>
</fig>
<p>The double parallel linkage utilizes this principle. As shown in
<xref ref-type="fig" rid="sensors-15-29857-f003">Figure 3</xref>
c, there are four identical linking bars in this structure. The linking bar A1 A2, B1 B2, C1 C2 and D1 D2 are fixed on the base plane A1 B1 C1 D1 and the movable plane A2 B2 C2 D2 with universal joints at their extremities. The inclination and orientation in space of the movable plane remain unchanged, whatever motions of linking bars may be. The trajectory of the plane A2 B2 C2 D2 is a part of the spherical surface. There is only a small displacement along the Z-axis. A new structure that can realize a large independent linear motion in Z direction was designed. </p>
<p>The rhombus linkage (shown in
<xref ref-type="fig" rid="sensors-15-29857-f004">Figure 4</xref>
) is a symmetrical structure. The linking bar E1 E2 and E2 E3 are connected by an axial joint. The same connection is applied to the bar E1 E4 and E4 E3. The four linking bars constitute a deformable space-rhombus. If this structure is stretched to the dotted position, the point E3 will have a large movement along the Z-axis (see
<xref ref-type="fig" rid="sensors-15-29857-f004">Figure 4</xref>
a). But if rotation rates of the bar E1 E2 and E1 E4 are different, there will be a deflection (displayed in
<xref ref-type="fig" rid="sensors-15-29857-f004">Figure 4</xref>
b). To ensure synchronous motions, gear mesh constraints are added at the points E1 and E3 (see
<xref ref-type="fig" rid="sensors-15-29857-f004">Figure 4</xref>
c).</p>
<fig id="sensors-15-29857-f004" position="float">
<label>Figure 4</label>
<caption>
<p>Rhombus linkage. (
<bold>a</bold>
) A large movement along the Z-axis ; (
<bold>b</bold>
) Deflection without gear mesh constraint; (
<bold>c</bold>
) Synchronous motion with gear mesh constraint.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g004"></graphic>
</fig>
<p>The rotating mechanical structure is shown in
<xref ref-type="fig" rid="sensors-15-29857-f005">Figure 5</xref>
. There are three motors numbered as NO. 4~NO. 6 in this structure. Each motor is perpendicular to the other two in space, so there is no coupling interference among torques. The torque τ6 generated by motor NO. 6 is transmitted to the handle through pulley block. The other two torques are transmitted through mechanisms.</p>
<fig id="sensors-15-29857-f005" position="float">
<label>Figure 5</label>
<caption>
<p>Rotating mechanical structure.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g005"></graphic>
</fig>
<p>The grasping interface (shown in
<xref ref-type="fig" rid="sensors-15-29857-f006">Figure 6</xref>
) is designed to provide three independent forces to the thumb, forefinger and middle finger respectively. It is equipped with three motors and three finger rings. During operation, users are asked to hold the handle with three fingers inserted into the rings to feel grasping forces. Dynamic compensations that are based on rotation angles have been integrated to counteract the effect of gravity so that operators can feel more comfortable when grasping objects.</p>
<fig id="sensors-15-29857-f006" position="float">
<label>Figure 6</label>
<caption>
<p>Grasping interface.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g006"></graphic>
</fig>
<p>In addition, an adjustable base that can provide 400 mm of free adjusting space along the vertical direction is introduced to meet the requirement of different postures.</p>
<p>There are mainly two kinds of haptic actuators: DC motors and MR (Magneto-Rheological) actuators. Since haptic actuator is constantly working at a locked-rotor condition, it must have a high level of static performance and good cooling performance. Choosing a proper haptic actuator can enhance the haptic feedback performance dramatically, and hence provide better user experience. In this paper, the actuators chosen are Maxon DC motors, produced in Switzerland. This type of motor uses high-performance permanent magnetic steel as a magnetic component. It is a tight and efficient driving device. Because of its small polar moment of inertia, it has a short response time, which is about 2~3 ms. At the same time, Maxon also provides each motor with a supporting decelerator to reduce output rotating speed, and increases output torque and load capability. This motor is highly suitable for a haptic feedback device which has low rotating rate and large torque. The position sensor is mainly used to measure angular displacement at moveable joints. Common angular sensors include the Hall sensor, the DC tachometer, rotating transformers, and encoders. Out of these sensors, the encoder is the most commonly used angular sensor. It has many advantages, such as high accuracy, small volume, and light weight. Considering the integration level and capability of the device, we choose the supporting encoder for the selected Maxon motor as the angular sensor.</p>
<p>In addition, to improve the performance of this device, we have made some modifications. First, to reduce the overall mass, all linking bars are hollowed to proper thickness, and steel components are replaced by aluminum counterparts in light loading areas. Next, for a workspace free of singularities, arresting pins are applied to constrain extreme motions of the rhombus linkage. Balance weight blocks are added to eliminate the influence of gravity.</p>
</sec>
<sec id="sec3-sensors-15-29857">
<title>3. Motion Measurement and Tracking</title>
<p>Motion measurement and tracking is one of the most fundamental tasks of a haptic control system. It is expected to generate real-time data that dynamically represents the pose changes of a human body (or a part of it) based on motion-sensing technologies. It needs kinematic data of motion sequences. As a result, positions of the end-effector and joint angles must be acquired. In the device, we use nine encoders to measure and track motions of the operator’s hand and fingers. The motion measurement model of the translational structure is shown in
<xref ref-type="fig" rid="sensors-15-29857-f007">Figure 7</xref>
.</p>
<fig id="sensors-15-29857-f007" position="float">
<label>Figure 7</label>
<caption>
<p>Motion measurement model of translational structure.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g007"></graphic>
</fig>
<p>For convenience of description, rotation angles of the double parallel linkage around axises 1 and 2 are defined as
<italic>β</italic>
and
<italic>α</italic>
. The angle between the linking bar E1 E2 and the centre line O1 O2 is set as
<italic>γ</italic>
. Lengths of the bar A1 A2 and E1 E2 are L1 and L2, respectively. The height between the point O0 and O is
<inline-formula>
<mml:math id="mm1">
<mml:mi>h</mml:mi>
</mml:math>
</inline-formula>
. In the
<inline-formula>
<mml:math id="mm2">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>X</mml:mi>
<mml:mi>Y</mml:mi>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
coordinate system, the coordinate of point O0, O1 and O2 are
<inline-formula>
<mml:math id="mm3">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
,
<inline-formula>
<mml:math id="mm4">
<mml:mrow>
<mml:mtext> </mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm5">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
, respectively. Therefore, the following equations are established.
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm6">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm7">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="mm8">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The vector
<inline-formula>
<mml:math id="mm9">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
is always perpendicular to the plane A2 B2 C2 D2, regardless of the location of the translational structure. Hence, the vector
<inline-formula>
<mml:math id="mm10">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
can be represented as:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math id="mm11">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mtext>O</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>O</mml:mtext>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>
<inline-formula>
<mml:math id="mm12">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
is the length of the vector
<inline-formula>
<mml:math id="mm13">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
.
<disp-formula id="FD5">
<label>(5)</label>
<mml:math id="mm14">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Thus, the vector can be rewritten as:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math id="mm15">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The trajectory of the plane A2 B2 C2 D2 is a part of the spherical surface. Using the conversion between the spherical coordinate system and the Cartesian coordinate system, the vector
<inline-formula>
<mml:math id="mm16">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
is expressed as:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math id="mm17">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>O</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>cos</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Thus, the coordinate of the point O2 is acquired.
<disp-formula id="FD8">
<label>(8)</label>
<mml:math id="mm18">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>cos</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>According to pervious equations, the coordinate of O1 is:
<disp-formula id="FD9">
<label>(9)</label>
<mml:math id="mm19">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo></mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The trajectory of the point O1 is a spherical arc. Therefore:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math id="mm20">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Thus, three angles can be calculated:
<disp-formula id="FD11">
<label>(11)</label>
<mml:math id="mm21">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>β</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>cos</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo></mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>α</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>sin</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo></mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>γ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>cos</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo></mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo></mml:mo>
<mml:msup>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
</sec>
<sec id="sec4-sensors-15-29857">
<title>4. Realization of Force Feedback </title>
<p>Haptic-rendering algorithms compute interaction forces between avatars and objects when collisions are detected. Assume that outputs of three actuators along axises 1–3 are
<inline-formula>
<mml:math id="mm22">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
,
<inline-formula>
<mml:math id="mm23">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm24">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
respectively.
<inline-formula>
<mml:math id="mm25">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
,
<inline-formula>
<mml:math id="mm26">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm27">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
are components of force along three axes of the
<inline-formula>
<mml:math id="mm28">
<mml:mrow>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
coordinate system. The model of translational force feedback is illustrated in
<xref ref-type="fig" rid="sensors-15-29857-f008">Figure 8</xref>
. </p>
<fig id="sensors-15-29857-f008" position="float">
<label>Figure 8</label>
<caption>
<p>Model of translational force feedback.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g008"></graphic>
</fig>
<p>
<inline-formula>
<mml:math id="mm29">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm30">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
can easily be acquired.
<disp-formula id="FD12">
<label>(12)</label>
<mml:math id="mm31">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<inline-formula>
<mml:math id="mm32">
<mml:mi>d</mml:mi>
</mml:math>
</inline-formula>
is the arm of force:
<disp-formula id="FD13">
<label>(13)</label>
<mml:math id="mm33">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>cos</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The rhombus linkage has its own characteristics. The principle of virtual work [
<xref rid="B25-sensors-15-29857" ref-type="bibr">25</xref>
,
<xref rid="B26-sensors-15-29857" ref-type="bibr">26</xref>
] is adopted in the computation of
<inline-formula>
<mml:math id="mm34">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
. The principle of virtual work states that the sum of the works of the internal and external forces done by virtual displacements is zero.
<disp-formula id="FD14">
<label>(14)</label>
<mml:math id="mm35">
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="sans-serif">δ</mml:mi>
<mml:mtext>W</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>internal </mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="sans-serif">δ</mml:mi>
<mml:mtext>W</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>external </mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Virtual displacements are infinitesimal changed in the position coordinates of a system such that the constraints remain satisfied. The model of virtual work is displayed in
<xref ref-type="fig" rid="sensors-15-29857-f009">Figure 9</xref>
.</p>
<fig id="sensors-15-29857-f009" position="float">
<label>Figure 9</label>
<caption>
<p>Model of virtual work.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g009"></graphic>
</fig>
<p>
<inline-formula>
<mml:math id="mm36">
<mml:mrow>
<mml:mi></mml:mi>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
is the infinitesimal change of the point E3.
<inline-formula>
<mml:math id="mm37">
<mml:mrow>
<mml:mi></mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
is the tiny rotation angle of the linking bar E1-E2.
<inline-formula>
<mml:math id="mm38">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
represents the component of external force in the Z-axis. Therefore, the virtual work of the user’s hand
<inline-formula>
<mml:math id="mm39">
<mml:mrow>
<mml:mi></mml:mi>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
and the actuator
<inline-formula>
<mml:math id="mm40">
<mml:mrow>
<mml:mi></mml:mi>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
are computed as follows:
<disp-formula id="FD15">
<label>(15)</label>
<mml:math id="mm41">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi></mml:mi>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo></mml:mo>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
<mml:mo>×</mml:mo>
<mml:mi></mml:mi>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi></mml:mi>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>×</mml:mo>
<mml:mi></mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi></mml:mi>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi></mml:mi>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Since
<inline-formula>
<mml:math id="mm42">
<mml:mrow>
<mml:mi></mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
is small enough, the displacement E2 E2‘ can be treated as a vertical line of the linking bar E1 E2 (see
<xref ref-type="fig" rid="sensors-15-29857-f010">Figure 10</xref>
). Approximate equations are established:
<disp-formula id="FD16">
<label>(16)</label>
<mml:math id="mm43">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi></mml:mi>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>'</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mi>sin</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>'</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mi></mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<fig id="sensors-15-29857-f010" position="float">
<label>Figure 10</label>
<caption>
<p>Approximation model.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g010"></graphic>
</fig>
<p>Based on Equations (15) and (16), the force
<inline-formula>
<mml:math id="mm44">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
is calculated as:
<disp-formula id="FD17">
<label>(17)</label>
<mml:math id="mm45">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>So
<inline-formula>
<mml:math id="mm46">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
,
<inline-formula>
<mml:math id="mm47">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm48">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
can be expressed as below:
<disp-formula id="FD18">
<label>(18)</label>
<mml:math id="mm49">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>cos</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>cos</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>α</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mi>α</mml:mi>
<mml:mi>sin</mml:mi>
<mml:mi>β</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Shafts of the rotating mechanical structure are mutually perpendicular.
<inline-formula>
<mml:math id="mm50">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
,
<inline-formula>
<mml:math id="mm51">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm52">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>6</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
are independent torques in pitch, yaw and roll respectively.
<disp-formula id="FD19">
<label>(19)</label>
<mml:math id="mm53">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mtext>pitch</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mtext>yaw </mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mtext>roll </mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>6</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Forces exerted on the three fingers are also independent. They are only relevant to the corresponding torques and arms. The motors in the grasping interface are numbered as NO. 7~NO. 9. Three grasping forces are shown as below:
<disp-formula id="FD20">
<label>(20)</label>
<mml:math id="mm54">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mn>7</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>7</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>7</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mn>8</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>8</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>8</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mn>9</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mn>9</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>9</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Thses forces are desired to be as close as possible to the forces that would arise during real-object contact. With accurate force feedback, operators were able to acquire an intuitive feeling about what they had touched. </p>
</sec>
<sec id="sec5-sensors-15-29857">
<title>5. Control Scheme of the 6 DOF Haptic Device</title>
<p>Haptic interactions require both motion collection and actuator control. The control scheme of this haptic device is illustrated in
<xref ref-type="fig" rid="sensors-15-29857-f011">Figure 11</xref>
. Motions of the operators’ hand and fingers are collected by encoders. Through the smooth function, the data is transmitted to forward kinematic equations for position and orientation calculation. Position information is compensated before sent to the haptic rendering engine for collision detection. Interaction forces are computed by modeling a spring between the avatar and the device.
<disp-formula id="FD21">
<label>(21)</label>
<mml:math id="mm55">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>k</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>></mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<inline-formula>
<mml:math id="mm56">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula>
represents the object’s stiffness. Force commands are transferred back to generate corresponding forces under the condition that the current of all motors are less than the peak values. In the diagram, P(t) and F(t) are continuous-time position and force signals exchanged between the human user and the haptic device. P(K) and F(K) are discrete-time position and force signals exchanged between haptic device and virtual environment. </p>
<fig id="sensors-15-29857-f011" position="float">
<label>Figure 11</label>
<caption>
<p>Control scheme diagram.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g011"></graphic>
</fig>
<p>To ensure the accuracy of computed positions and orientations at a high level, a smoothing function is used to filter peak values that may cause disturbances. It acts as follows. First, three successive frames of position data are received and saved. Let
<inline-formula>
<mml:math id="mm57">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
be the position data of motor
<inline-formula>
<mml:math id="mm58">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>O</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>i</italic>
received at the previous frame, let
<inline-formula>
<mml:math id="mm59">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
be the position data at the current frame, and let
<inline-formula>
<mml:math id="mm60">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
be the position data at the next frame.
<inline-formula>
<mml:math id="mm61">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mo>+</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
and
<inline-formula>
<mml:math id="mm62">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mo></mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
represent the maximum positive position error and negative position error, respectively. Without loss of generality, we assume that the three frames of data all meet the communication protocols and there is no data loss. Three frames of data is subsequently checked. The smoothing function is described in Algorithm 1.</p>
<array>
<tbody>
<tr>
<td align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">
<bold>Algorithm 1</bold>
Peak Values Filter of Current Frame of Data</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm63">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>f</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
</mml:mstyle>
<mml:mtext> Smoothing Function </mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm64">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mstyle>
<mml:mtext> i</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mtext> </mml:mtext>
<mml:mo></mml:mo>
<mml:mn>8</mml:mn>
<mml:mtext> </mml:mtext>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>d</mml:mi>
<mml:mi>o</mml:mi>
</mml:mstyle>
<mml:mo> </mml:mo>
<mml:mtext> </mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">    
<inline-formula>
<mml:math id="mm65">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mstyle>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>></mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mo>+</mml:mo>
</mml:msubsup>
<mml:mo>&</mml:mo>
<mml:mo>&</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>></mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mo>+</mml:mo>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mtext> </mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">      
<inline-formula>
<mml:math id="mm66">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>d</mml:mi>
</mml:mstyle>
<mml:mo> </mml:mo>
<mml:mtext> </mml:mtext>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">    
<inline-formula>
<mml:math id="mm67">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mstyle>
<mml:mtext> </mml:mtext>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mstyle>
<mml:mtext> </mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo><</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mo></mml:mo>
</mml:msubsup>
<mml:mo>&</mml:mo>
<mml:mo>&</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo></mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo><</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mo></mml:mo>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">      
<inline-formula>
<mml:math id="mm68">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>d</mml:mi>
</mml:mstyle>
<mml:mo> </mml:mo>
<mml:mtext> </mml:mtext>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">    
<inline-formula>
<mml:math id="mm69">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
</mml:mstyle>
<mml:mo> </mml:mo>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mstyle>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm70">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
</mml:mstyle>
<mml:mo> </mml:mo>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mstyle>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm71">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>n</mml:mi>
</mml:mstyle>
<mml:mtext> </mml:mtext>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">
<inline-formula>
<mml:math id="mm72">
<mml:mrow>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
</mml:mstyle>
<mml:mo> </mml:mo>
<mml:mstyle mathvariant="bold" mathsize="normal">
<mml:mi>f</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
</mml:mstyle>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</array>
<p>There are nine motors and encoders in the haptic device. In order to maintain a stable system while displaying smooth and realistic forces and torques, the force control rate must be as high as possible. As described above, the actuator chosen was the Maxon DC motor, which has a short response time of about 2~3 ms. Force commands were controlled at the frequency of 300 HZ. </p>
</sec>
<sec id="sec6-sensors-15-29857">
<title>6. Calibrations and Evaluations</title>
<sec id="sec6dot1-sensors-15-29857">
<title>6.1. Assessment of Position Tracking Accuracy</title>
<p>Position tracking experiments are conducted on a three dimensional electric sliding platform that has a linear precision of 5/57 mm and an effective stroke of 600 mm on each axis (see
<xref ref-type="fig" rid="sensors-15-29857-f012">Figure 12</xref>
). The platform is driven by three step-motors with two operating modes. During tests, we use the manual mode to provide 2 mm displacement at each step. To protect the device from running out of strokes and to reduce repeated measurements, we adopted the following strategies: first, the workspace was measured in advance; afterward, the device was allowed to track the sliding platform step by step within a given range for specific assessment. Actual displacements (displacements of the sliding platform) can be read from the LCD (Liquid Crystal Display) panel of the platform control box. Computed displacements (displacements of the haptic device) are displayed in the window of Force Feedback Controller, a software programmed for this haptic device. </p>
<fig id="sensors-15-29857-f012" position="float">
<label>Figure 12</label>
<caption>
<p>Setup of position tracking experiment (
<bold>1</bold>
) Haptic device; (
<bold>2</bold>
) Three dimensional electric sliding platform.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g012"></graphic>
</fig>
<p>Measurements show that the workspace of the X-axis, Y-axis and Z-axis reach 500 mm, 500 mm and 420 mm, respectively. This is a comparatively large workspace when compared to other haptic devices. The most commonly used PHANTOM series devices provide workspaces of different sizes. PHANTOM Omni only provides 160 × 120 × 70 mm in width, height and depth. PHANTOM Premium 1.5 provides a larger workspace of 381 × 267 × 191 mm, but its workspace is still smaller than ours. PHANTOM Premium 3.0 can provide a range of motion that is equivalent to human shoulder rotation arm movement. Its workspace reaches 838 × 584 × 406 mm, but our device can offer a larger range of movement in the Z direction. Another family of haptic devices is manufactured by Force Dimension. The Force Dimension devices utilize parallel kinematic design and provide small workspaces. The Delta series offers a slightly larger workspace of ϕ 400 × 260 mm, which is still smaller than the workspace of our device. The workspace of Sigma 7, the most advanced haptic device ever designed by Force Dimension, is even smaller. Another commercially available device, HD
<sup>2</sup>
High Definition, has a workspace of 800 × 250 × 350 mm. Out of these three dimensions, two of them are less than what we have [
<xref rid="B27-sensors-15-29857" ref-type="bibr">27</xref>
].</p>
<p>The actual specific assessment range of X-axis, Y-axis and Z-axis are selected as 0~218 mm, 0~230 mm and 0~260 mm. Experimental results are shown in
<xref ref-type="fig" rid="sensors-15-29857-f013">Figure 13</xref>
,
<xref ref-type="fig" rid="sensors-15-29857-f014">Figure 14</xref>
and
<xref ref-type="fig" rid="sensors-15-29857-f015">Figure 15</xref>
, respectively.</p>
<p>For the convenience of analysis, we defined computed error as the difference between mechanical error and displacement error. Displacement error mainly comes from mechanical error and computed error. The mechanical error stems from small backlashes (mainly gear clearance) in the structure. Linking bars magnify these backlashes and make errors relatively large. From the initial error figures above, it can be seen that the mechanical error of the X-axis is about 10 mm, while the mechanical error of the Y-axis is smaller than 10 mm because of the effect of gravity. The error figure of the Z-axis is a curve, because its displacement is relevant to
<inline-formula>
<mml:math id="mm73">
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mi>γ</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
(shown in Equation (8)). The mechanical error of the Z-axis is the smallest, since linking bars of the rhombus linkage are shorter than those of the double parallel linkage. The computed error lies in inaccuracy of the algorithm and a limited resolution of encoders. The computed error is estimated by its MSE (mean square error). The initial MSE of computed errors in the forward and backward travel in X-axis, Y-axis and Z-axis are calculated to be 0.37 mm and 0.24 mm, 0.65 mm and 0.52 mm, 3.14 mm and 3.53 mm, respectively. Compared to mechanical error, computed error contributes to only a small portion of the overall displacement error.</p>
<p>After the analysis of displacement error, we made some modifications on the algorithm to compensate for mechanical error and to reduce computed error. Due to the dramatic differences of displacement error at the beginning and end of travels along the three axes, segmented error compensation is utilized. Compensated data of three axes are displayed in
<xref ref-type="fig" rid="sensors-15-29857-f016">Figure 16</xref>
. The standard deviation of the mean values of the displacement errors in forward and backward travel along the three axes are calculated to be 0.1591 mm and 0.1329 mm, 0.1051 mm and 0.1053 mm, 0.1572 mm and 0.1742 mm after compensation. The maximum displacement errors are 0.63 mm, 0.51 mm and 0.56 mm along X-axis, Y-axis and Z axis. </p>
<fig id="sensors-15-29857-f013" position="float">
<label>Figure 13</label>
<caption>
<p>X-axis displacement and error. (
<bold>a</bold>
) Displacement; (
<bold>b</bold>
) Error.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g013"></graphic>
</fig>
<fig id="sensors-15-29857-f014" position="float">
<label>Figure 14</label>
<caption>
<p>Y-axis displacement and error. (
<bold>a</bold>
) Displacement; (
<bold>b</bold>
) Error.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g014"></graphic>
</fig>
<fig id="sensors-15-29857-f015" position="float">
<label>Figure 15</label>
<caption>
<p>Z-axis displacement and error. (
<bold>a</bold>
) Displacement; (
<bold>b</bold>
) Error.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g015"></graphic>
</fig>
<fig id="sensors-15-29857-f016" position="float">
<label>Figure 16</label>
<caption>
<p>Displacement error after compensation of three axes. (
<bold>a</bold>
) Displacement error of X-axis; (
<bold>b</bold>
) Displacement error of Y-axis; (
<bold>c</bold>
) Displacement error of Z-axis.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g016"></graphic>
</fig>
</sec>
<sec id="sec6dot2-sensors-15-29857">
<title>6.2. Calibration of Static Output Forces </title>
<p>For a haptic device, small forces are insufficient to construct a high level of immersion, while ultra-strong forces may hurt the manipulator and damage device. Thus, it is important to have desirable output. Static output forces of this device is measured by a digital force gauge, which has a peak force of 30 N and a force resolution of 0.01 N (shown in
<xref ref-type="fig" rid="sensors-15-29857-f017">Figure 17</xref>
). The gauge is equipped with a serial port through which sampled data can be stored automatically. In experiments, peak forces were measured first. Subsequently, static output forces were specifically calibrated within continuous working ranges. </p>
<fig id="sensors-15-29857-f017" position="float">
<label>Figure 17</label>
<caption>
<p>Setup of static translational force calibration (
<bold>1</bold>
) Haptic device; (
<bold>2</bold>
) Haptic control box; (
<bold>3</bold>
) Digital force gauge.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g017"></graphic>
</fig>
<p>Maximum measurable forces of X-axis, Y-axis and Z-axis are 20 N, 20 N and 19 N, respectively. These values reach the level of maximum force output of PHANTOM Premium 3.0 (22 N), Deltas 3 and 6 (20 N), and Sigma 7 (20 N). Without loss of generality, static forces are specifically calibrated at five points within continuous working ranges along the three axes. Three representative experimental results of each axis are shown in
<xref ref-type="fig" rid="sensors-15-29857-f018">Figure 18</xref>
,
<xref ref-type="fig" rid="sensors-15-29857-f019">Figure 19</xref>
and
<xref ref-type="fig" rid="sensors-15-29857-f020">Figure 20</xref>
. From the results, forces of the three points along the X-axis are displayed with average error and maximum error of 0.0205 N and 0.48 N, 0.000384 N and 0.41 N, 0.0084 N and 0.46 N. The errors of the three points along the Y-axis are even smaller with the largest average error of 0.000233 N and largest maximum error of 0.38 N. Similarly, the largest average error of the three points along the Z-axis are computed as 0.0112 N and the largest maximum error is 0.49 N. </p>
<fig id="sensors-15-29857-f018" position="float">
<label>Figure 18</label>
<caption>
<p>Forces at three points along X-axis.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g018"></graphic>
</fig>
<fig id="sensors-15-29857-f019" position="float">
<label>Figure 19</label>
<caption>
<p>Forces at three points along Y-axis.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g019"></graphic>
</fig>
<fig id="sensors-15-29857-f020" position="float">
<label>Figure 20</label>
<caption>
<p>Forces at three points along Z-axis.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g020"></graphic>
</fig>
<p>Since the digital force gauge is unable to measure torques, torque calibration is based on force measurement with the given arm of 165 mm. Representative experimental results (torque in pitch and force of middle finger) are shown in
<xref ref-type="fig" rid="sensors-15-29857-f021">Figure 21</xref>
and
<xref ref-type="fig" rid="sensors-15-29857-f022">Figure 22</xref>
. The measurable peak torque is 0.6 Nm. This value is larger than 0.15 Nm of Delta 6 and 0.4 Nm of Sigma 7, but less than 1.72 Nm of HD
<sup>2</sup>
High Definition. From the data of
<xref ref-type="fig" rid="sensors-15-29857-f021">Figure 21</xref>
, the average error of torque is 0.00049 Nm with a maximum error of 0.0087 Nm. The measurable peak force of our grasping interface reaches 3.5 N, which is less than the maximum grasping force of 8 N provided by Sigma 7. However, our grasping interface provides more accurate forces. The maximum error of grasping force is 0.07 N with the average error only 0.0001 N. The specific error data is given in
<xref ref-type="table" rid="sensors-15-29857-t001">Table 1</xref>
.</p>
<fig id="sensors-15-29857-f021" position="float">
<label>Figure 21</label>
<caption>
<p>Torque in pitch.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g021"></graphic>
</fig>
<fig id="sensors-15-29857-f022" position="float">
<label>Figure 22</label>
<caption>
<p>Force of grasping interface.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g022"></graphic>
</fig>
<table-wrap id="sensors-15-29857-t001" position="float">
<object-id pub-id-type="pii">sensors-15-29857-t001_Table 1</object-id>
<label>Table 1</label>
<caption>
<p>Errors of Force/Torque.</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">Force/Torque</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Group</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Average Error</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Maximum Error</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3" align="center" valign="middle" style="border-bottom:solid thin" colspan="1">Forces in X-axis</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Point1</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.0205 N</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.48 N</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Point2</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.000384 N</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.41 N</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Point3</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.0084 N</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.46 N</td>
</tr>
<tr>
<td rowspan="3" align="center" valign="middle" style="border-bottom:solid thin" colspan="1">Forces in Y-axis</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Point1</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.000315 N</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.27 N</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Point2</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.000162 N</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.27 N</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Point3</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.000233 N</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.38 N</td>
</tr>
<tr>
<td rowspan="3" align="center" valign="middle" style="border-bottom:solid thin" colspan="1">Forces in Z-axis</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Point1</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.000571 N</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.36 N</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Point2</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.000285 N</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.49 N</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Point3</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.0112 N</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.45 N</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Torque</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Pitch</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.00049 Nm</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.0087 Nm</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Grasping interface</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Middle finger</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.0001 N</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.07 N</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Since the forces measured are static, friction effects should be evaluated to improve the transparency of the device. Static-friction force is measured by gradually increasing the input value from zero. The minimum measurable force and the corresponding input value are recorded. From the known relation between input value and output force, the static-friction force can be calculated. The static-friction force of X-axis, Y-axis and Z-axis are 0.32 N, 0.30 N and 0.40 N, respectively. </p>
<p>After evaluations, specific properties of this haptic device are displayed in
<xref ref-type="table" rid="sensors-15-29857-t002">Table 2</xref>
.</p>
<table-wrap id="sensors-15-29857-t002" position="float">
<object-id pub-id-type="pii">sensors-15-29857-t002_Table 2</object-id>
<label>Table 2</label>
<caption>
<p>Device Properties.</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">Properties</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Values</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3" align="center" valign="middle" style="border-bottom:solid thin" colspan="1">Workspace </td>
<td align="center" valign="middle" rowspan="1" colspan="1">Translation: 500 × 500 × 420 mm in X-,Y- and Z-axis</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Rotation: pitch −35°~90°, roll ±60° and yaw ±90°</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Grasping interface: 5 cm</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Position resolution</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.01 mm</td>
</tr>
<tr>
<td rowspan="3" align="center" valign="middle" style="border-bottom:solid thin" colspan="1">Peak output ability</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Translation: 20 N in X-, Y-axis and 19 N in Z-axis</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Rotation: 0.6 Nm</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Grasping interface: 3.5 N</td>
</tr>
<tr>
<td rowspan="3" align="center" valign="middle" style="border-bottom:solid thin" colspan="1">Continuous working range</td>
<td align="center" valign="middle" rowspan="1" colspan="1">Translation: 10 N in X-, Y- and Z-axis</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Rotation: 0.3 Nm</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Grasping interface: 2 N</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Force resolution </td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.01 N</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="sec6dot3-sensors-15-29857">
<title>6.3. Application Examples </title>
<p>Four application examples (shown in
<xref ref-type="fig" rid="sensors-15-29857-f023">Figure 23</xref>
) are programmed to identify the capability and potential of the device. The first example is designed to show the potential of the grasping interface. Operators are asked to operate the robot arm to grasp the ball in the virtual environment. When the ball is grasped, it follows the movement of the robot arm extremity, and forces are exerted on three fingers. A virtual bounding box with a size of 500 × 500 × 400 mm, is created to verify the effective workspace of this device. The virtual proxy [
<xref rid="B28-sensors-15-29857" ref-type="bibr">28</xref>
] (similar to the “god-object” [
<xref rid="B29-sensors-15-29857" ref-type="bibr">29</xref>
]) through which users physically interact with the virtual environment is modeled as a ball. Operators can move the ball freely inside the workspace. Once collisions between the ball, and boundaries of the box are detected, the motion of the ball is constrained immediately. During operations, we find that boundary of the box can be easily reached. The last two examples are programmed based on the CHAI-3D platform, with which designers can program their own demos easily. The third demonstration is designed to test the maximum force of our device. A yellow rigid aircraft is imported and fixed in the haptic scene. Operators are asked to hit the aircraft surface with the ball in different directions. At the same time, interaction forces are recorded. Interaction data shows that the maximum recorded forces of X-axis, Y-axis and Z-axis reach 20 N, 20 N and 19 N, respectively. The last demonstration is designed to verify the position tracking accuracy. A plate with varying waviness is created. Wave amplitude gradually increases from left to right. The ball is controlled to slide along the plate surface. From the users’ perspective, they can identify the surface feature of the plate. Moreover, they can distinguish force differences caused by tiny changes in wave amplitude.</p>
<fig id="sensors-15-29857-f023" position="float">
<label>Figure 23</label>
<caption>
<p>Four application examples: (
<bold>a</bold>
) Grasping example; (
<bold>b</bold>
) Bounding box example; (
<bold>c</bold>
) Rigid object interaction; (
<bold>d</bold>
) Position tracking example.</p>
</caption>
<graphic xlink:href="sensors-15-29857-g023"></graphic>
</fig>
</sec>
</sec>
<sec id="sec7-sensors-15-29857">
<title>7. Conclusions</title>
<p>In this study, a new 6 DOF hybrid structure haptic device was designed and calibrated. The device is mainly composed of a double parallel linkage, a rhombus linkage, a rotating mechanical structure and a grasping interface. It can provide three DOF of force feedback, three DOF of torque feedback and three independent grasping force feedback to human operators. Experiments were conducted on a three-dimensional electric sliding platform to evaluate the position tracking accuracy of this device. After analysis of displacement error, we made some modifications on the algorithm to compensate for mechanical error and to reduce computed error. Static output forces were calibrated by a digital force gauge. Friction effects were evaluated to improve the transparency of the whole system. To show the capability and potential of our device, four application examples were programmed. Calibration and evaluation results show that this is an efficient haptic device with a large workspace and a high output ability.</p>
</sec>
</body>
<back>
<ack>
<title>Acknowledgments</title>
<p>This paper is supported by the Defense Industrial Technology Development Program under Grants number B1720132001 and Natural Science Foundation of China under Grants number 61325018. </p>
</ack>
<notes>
<title>Author Contributions</title>
<p>Each co-author made important contributions to this research. Aiguo Song organized the research. Huanhuan Qin joined in the design of the haptic device and conducted calibration experiments. Yuqing Liu, Guohua Jiang and Bohe Zhou participated in the formulation of main design targets. This writing was finished by Huanhuan Qin and supervised by Aiguo Song. All authors approved the final version of this paper.</p>
</notes>
<notes>
<title>Conflicts of Interest</title>
<p>The authors declare no conflict of interest.</p>
</notes>
<ref-list>
<title>References</title>
<ref id="B1-sensors-15-29857">
<label>1.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ernst</surname>
<given-names>M.O.</given-names>
</name>
<name>
<surname>Banks</surname>
<given-names>M.S.</given-names>
</name>
</person-group>
<article-title>Humans integrate visual and haptic information in a statistically optimal fashion</article-title>
<source>Nature</source>
<year>2002</year>
<volume>415</volume>
<fpage>429</fpage>
<lpage>433</lpage>
<pub-id pub-id-type="doi">10.1038/415429a</pub-id>
<pub-id pub-id-type="pmid">11807554</pub-id>
</element-citation>
</ref>
<ref id="B2-sensors-15-29857">
<label>2.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
</person-group>
<article-title>A novel texture sensor for fabric texture measurement and classification</article-title>
<source>IEEE Trans. Instrum. Meas.</source>
<year>2014</year>
<volume>63</volume>
<fpage>1739</fpage>
<lpage>1747</lpage>
<pub-id pub-id-type="doi">10.1109/TIM.2013.2293812</pub-id>
</element-citation>
</ref>
<ref id="B3-sensors-15-29857">
<label>3.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
</person-group>
<article-title>Active perception-based haptic texture sensor</article-title>
<source>Sens. Mater.</source>
<year>2013</year>
<volume>25</volume>
<fpage>1</fpage>
<lpage>15</lpage>
</element-citation>
</ref>
<ref id="B4-sensors-15-29857">
<label>4.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Salisbury</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Conti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Barbagli</surname>
<given-names>F.</given-names>
</name>
</person-group>
<article-title>Haptic rendering: Introductory concepts</article-title>
<source>IEEE Comput. Gr. Appl.</source>
<year>2004</year>
<volume>24</volume>
<fpage>24</fpage>
<lpage>32</lpage>
<pub-id pub-id-type="doi">10.1109/MCG.2004.1274058</pub-id>
</element-citation>
</ref>
<ref id="B5-sensors-15-29857">
<label>5.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Srinivasan</surname>
<given-names>M.A.</given-names>
</name>
<name>
<surname>Basdogan</surname>
<given-names>C.</given-names>
</name>
</person-group>
<article-title>Haptics in virtual environments: Taxonomy, research status, and challenges</article-title>
<source>Comput. Gr.</source>
<year>1997</year>
<volume>21</volume>
<fpage>393</fpage>
<lpage>404</lpage>
<pub-id pub-id-type="doi">10.1016/S0097-8493(97)00030-7</pub-id>
</element-citation>
</ref>
<ref id="B6-sensors-15-29857">
<label>6.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Teo</surname>
<given-names>C.L.</given-names>
</name>
<name>
<surname>Burdet</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Lim</surname>
<given-names>H.</given-names>
</name>
</person-group>
<article-title>In a Robotic Teacher of Chinese Handwriting, Haptic Interfaces for Virtual Environment and Teleoperator Systems, 2002</article-title>
<source>Proceedings of the IEEE 10th Symposium on HAPTICS</source>
<conf-loc>Washington, DC, USA</conf-loc>
<conf-date>24–25 March 2002</conf-date>
<fpage>335</fpage>
<lpage>341</lpage>
</element-citation>
</ref>
<ref id="B7-sensors-15-29857">
<label>7.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Fogg</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Cutler</surname>
<given-names>L.D.</given-names>
</name>
<name>
<surname>Arnold</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Eisbach</surname>
<given-names>C.</given-names>
</name>
</person-group>
<article-title>Handjive: A device for interpersonal haptic entertainment</article-title>
<source>Proceedings of the SIGCHI Conference on Human Factors in Computing Systems</source>
<conf-loc>Los Angeles, CA, USA</conf-loc>
<conf-date>18–23 April 1998</conf-date>
<fpage>57</fpage>
<lpage>64</lpage>
</element-citation>
</ref>
<ref id="B8-sensors-15-29857">
<label>8.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Basdogan</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>De</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Muniyandi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Srinivasan</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Haptics in minimally invasive surgical simulation and training</article-title>
<source>IEEE Comput. Gr. Appl.</source>
<year>2004</year>
<volume>24</volume>
<fpage>56</fpage>
<lpage>64</lpage>
<pub-id pub-id-type="doi">10.1109/MCG.2004.1274062</pub-id>
</element-citation>
</ref>
<ref id="B9-sensors-15-29857">
<label>9.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Brooks Jr</surname>
<given-names>F.P.</given-names>
</name>
<name>
<surname>Ouh-Young</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Batter</surname>
<given-names>J.J.</given-names>
</name>
<name>
<surname>Jerome Kilpatrick</surname>
<given-names>P.</given-names>
</name>
</person-group>
<article-title>Project gropehaptic displays for scientific visualization</article-title>
<source>Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques</source>
<conf-loc>New York, NY, USA</conf-loc>
<conf-date>6–10 August 1990</conf-date>
<fpage>177</fpage>
<lpage>185</lpage>
</element-citation>
</ref>
<ref id="B10-sensors-15-29857">
<label>10.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Massie</surname>
<given-names>T.H.</given-names>
</name>
<name>
<surname>Salisbury</surname>
<given-names>J.K.</given-names>
</name>
</person-group>
<article-title>The phantom haptic interface: A device for probing virtual objects</article-title>
<source>Proceedings of the ASME Winter Annual Meeting, Symposium on Haptic Interfaces for Virtual Environment and Teleoperator Systems</source>
<conf-loc>Chicago, IL, USA</conf-loc>
<conf-date>20 November 1994</conf-date>
<fpage>295</fpage>
<lpage>300</lpage>
</element-citation>
</ref>
<ref id="B11-sensors-15-29857">
<label>11.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Tahmasebi</surname>
<given-names>A.M.</given-names>
</name>
<name>
<surname>Taati</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Mobasser</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Hashtrudi-Zaad</surname>
<given-names>K.</given-names>
</name>
</person-group>
<article-title>Dynamic parameter identification and analysis of a phantom haptic device</article-title>
<source>Proceedings of the 2005 IEEE Conference on Control Applications, CCA 2005</source>
<conf-loc>Toronto, ON, Canada</conf-loc>
<conf-date>28–31 August 2005</conf-date>
<fpage>1251</fpage>
<lpage>1256</lpage>
</element-citation>
</ref>
<ref id="B12-sensors-15-29857">
<label>12.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Çavuşoğlu</surname>
<given-names>M.C.</given-names>
</name>
<name>
<surname>Feygin</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Tendick</surname>
<given-names>F.</given-names>
</name>
</person-group>
<article-title>A critical study of the mechanical and electrical properties of the phantom haptic interface and improvements for highperformance control</article-title>
<source>Teleoperators Virtual Environ.</source>
<year>2002</year>
<volume>11</volume>
<fpage>555</fpage>
<lpage>568</lpage>
<pub-id pub-id-type="doi">10.1162/105474602321050695</pub-id>
</element-citation>
</ref>
<ref id="B13-sensors-15-29857">
<label>13.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Martin</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hillier</surname>
<given-names>N.</given-names>
</name>
</person-group>
<article-title>Characterisation of the novint falcon haptic device for application as a robot manipulator</article-title>
<source>Proceedings of the Australasian Conference on Robotics and Automation (ACRA)</source>
<conf-loc>Sydney, Australia</conf-loc>
<conf-date>2–4 December 2009</conf-date>
<fpage>291</fpage>
<lpage>292</lpage>
</element-citation>
</ref>
<ref id="B14-sensors-15-29857">
<label>14.</label>
<element-citation publication-type="patent">
<person-group person-group-type="author">
<name>
<surname>Clavel</surname>
<given-names>R.</given-names>
</name>
</person-group>
<article-title>Device for the Movement and Positioning of an Element in Space</article-title>
<source>U.S. Patent</source>
<patent>4,976,582</patent>
<day>11</day>
<month>12</month>
<year>1990</year>
</element-citation>
</ref>
<ref id="B15-sensors-15-29857">
<label>15.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Grange</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Conti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Helmer</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Rouiller</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Baur</surname>
<given-names>C.</given-names>
</name>
</person-group>
<article-title>Overview of the Delta Haptic Device</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://infoscience.epfl.ch/record/29978/files/EUROHAPTICS01-SG.pdf">http://infoscience.epfl.ch/record/29978/files/EUROHAPTICS01-SG.pdf</ext-link>
</comment>
<date-in-citation>(accessed on 9 April 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B16-sensors-15-29857">
<label>16.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Arata</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ikedo</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Fujimoto</surname>
<given-names>H.</given-names>
</name>
</person-group>
<article-title>New Multi-DOF Haptic Device using a parallel mechanism with a wide rotational working area</article-title>
<source>Adv. Robot.</source>
<year>2012</year>
<volume>26</volume>
<fpage>121</fpage>
<lpage>135</lpage>
<pub-id pub-id-type="doi">10.1163/016918611X607671</pub-id>
</element-citation>
</ref>
<ref id="B17-sensors-15-29857">
<label>17.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vu</surname>
<given-names>M.H.</given-names>
</name>
<name>
<surname>Na</surname>
<given-names>U.J.</given-names>
</name>
</person-group>
<article-title>A new 6-DOF haptic device for teleoperation of 6-DOF serial robots</article-title>
<source>IEEE Trans. Instrum. Meas.</source>
<year>2011</year>
<volume>60</volume>
<fpage>3510</fpage>
<lpage>3523</lpage>
<pub-id pub-id-type="doi">10.1109/TIM.2011.2164285</pub-id>
</element-citation>
</ref>
<ref id="B18-sensors-15-29857">
<label>18.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Ueberle</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Buss</surname>
<given-names>M.</given-names>
</name>
</person-group>
<source>Design, Control, and Evaluation of a New 6 DOF Haptic Device</source>
<publisher-name>Citeseer</publisher-name>
<publisher-loc>Minato-Ku, Japan</publisher-loc>
<year>2002</year>
<fpage>2949</fpage>
<lpage>2954</lpage>
</element-citation>
</ref>
<ref id="B19-sensors-15-29857">
<label>19.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Ueberle</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mock</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Buss</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Vishard10, a novel hyper-redundant haptic interface</article-title>
<source>Proceedings of the 12th International Symposium on Haptic Interfaces for Virtual Environment and Teleoperator Systems</source>
<conf-loc>Chicago, IL, USA</conf-loc>
<conf-date>27–28 March 2004</conf-date>
<fpage>58</fpage>
<lpage>65</lpage>
</element-citation>
</ref>
<ref id="B20-sensors-15-29857">
<label>20.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Van der Linde</surname>
<given-names>R.Q.</given-names>
</name>
<name>
<surname>Lammertse</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Frederiksen</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Ruiter</surname>
<given-names>B.</given-names>
</name>
</person-group>
<source>The Hapticmaster, a New High-Performance Haptic Interface</source>
<publisher-name>Proc. Eurohaptics</publisher-name>
<publisher-loc>Edinburgh, UK</publisher-loc>
<year>2002</year>
<fpage>1</fpage>
<lpage>5</lpage>
</element-citation>
</ref>
<ref id="B21-sensors-15-29857">
<label>21.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Tsumaki</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Naruse</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Nenchev</surname>
<given-names>D.N.</given-names>
</name>
<name>
<surname>Uchiyama</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>In Design of a compact 6-DOF haptic interface</article-title>
<source>Proceedings of the 1998 IEEE International Conference on Robotics and Automation</source>
<conf-loc>Lueven, Belgium</conf-loc>
<conf-date>16–20 May 1998</conf-date>
<fpage>2580</fpage>
<lpage>2585</lpage>
</element-citation>
</ref>
<ref id="B22-sensors-15-29857">
<label>22.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>McNeely</surname>
<given-names>W.A.</given-names>
</name>
<name>
<surname>Puterbaugh</surname>
<given-names>K.D.</given-names>
</name>
<name>
<surname>Troy</surname>
<given-names>J.J.</given-names>
</name>
</person-group>
<source>Six Degree-of-Freedom Haptic Rendering Using Voxel Sampling</source>
<publisher-name>ACM</publisher-name>
<publisher-loc>Los Angeles, CA, USA</publisher-loc>
<year>2005</year>
<fpage>42</fpage>
</element-citation>
</ref>
<ref id="B23-sensors-15-29857">
<label>23.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ellis</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ismaeil</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Lipsett</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Design and evaluation of a high-performance haptic interface</article-title>
<source>Robotica</source>
<year>1996</year>
<volume>14</volume>
<fpage>321</fpage>
<lpage>327</lpage>
<pub-id pub-id-type="doi">10.1017/S0263574700019639</pub-id>
</element-citation>
</ref>
<ref id="B24-sensors-15-29857">
<label>24.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Lawrence</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Chapel</surname>
<given-names>J.D.</given-names>
</name>
</person-group>
<article-title>Performance trade-offs for hand controller design</article-title>
<source>Proceedings of the 1994 IEEE International Conference on Robotics and Automation</source>
<conf-loc>San Diego, CA, USA</conf-loc>
<conf-date>8–13 May 1994</conf-date>
<fpage>3211</fpage>
<lpage>3216</lpage>
</element-citation>
</ref>
<ref id="B25-sensors-15-29857">
<label>25.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Holzapfel</surname>
<given-names>G.A.</given-names>
</name>
</person-group>
<source>Nonlinear Solid Mechanics</source>
<publisher-name>Wiley Chichester</publisher-name>
<publisher-loc>Hoboken, NJ, USA</publisher-loc>
<year>2000</year>
</element-citation>
</ref>
<ref id="B26-sensors-15-29857">
<label>26.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gosselin</surname>
<given-names>C.M.</given-names>
</name>
</person-group>
<article-title>A new approach for the dynamic analysis of parallel manipulators</article-title>
<source>Multibody Syst. Dyn.</source>
<year>1998</year>
<volume>2</volume>
<fpage>317</fpage>
<lpage>334</lpage>
<pub-id pub-id-type="doi">10.1023/A:1009740326195</pub-id>
</element-citation>
</ref>
<ref id="B27-sensors-15-29857">
<label>27.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zareinia</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Maddahi</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ng</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Sepehri</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Sutherland</surname>
<given-names>G.R.</given-names>
</name>
</person-group>
<article-title>Performance evaluation of haptic hand-controllers in a robot-assisted surgical system</article-title>
<source>Int. J. Med. Robot. Comput. Assist. Surg.</source>
<year>2015</year>
<volume>11</volume>
<fpage>486</fpage>
<lpage>501</lpage>
<pub-id pub-id-type="doi">10.1002/rcs.1637</pub-id>
<pub-id pub-id-type="pmid">25624185</pub-id>
</element-citation>
</ref>
<ref id="B28-sensors-15-29857">
<label>28.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Ruspini</surname>
<given-names>D.C.</given-names>
</name>
<name>
<surname>Kolarov</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Khatib</surname>
<given-names>O.</given-names>
</name>
</person-group>
<article-title>The haptic display of complex graphical environments</article-title>
<source>Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques</source>
<conf-loc>Los Angeles, CA, USA</conf-loc>
<conf-date>3–8 August 1997</conf-date>
<fpage>345</fpage>
<lpage>352</lpage>
</element-citation>
</ref>
<ref id="B29-sensors-15-29857">
<label>29.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zilles</surname>
<given-names>C.B.</given-names>
</name>
<name>
<surname>Salisbury</surname>
<given-names>J.K.</given-names>
</name>
</person-group>
<article-title>A constraint-based god-object method for haptic display</article-title>
<source>Proceedings of the 1995 IEEE/RSJ International Conference on Intelligent Robots and Systems, Human Robot Interaction and Cooperative Robots</source>
<conf-loc>Pittsburgh, PA, USA</conf-loc>
<conf-date>5–9 August 1995</conf-date>
<fpage>146</fpage>
<lpage>151</lpage>
</element-citation>
</ref>
</ref-list>
</back>
</pmc>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/HapticV1/Data/Pmc/Curation
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000389 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd -nk 000389 | SxmlIndent | more

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

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    HapticV1
   |flux=    Pmc
   |étape=   Curation
   |type=    RBID
   |clé=     PMC:4721777
   |texte=   Design and Calibration of a New 6 DOF Haptic Device
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Curation/RBID.i   -Sk "pubmed:26690449" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd   \
       | NlmPubMed2Wicri -a HapticV1 

Wicri

This area was generated with Dilib version V0.6.23.
Data generation: Mon Jun 13 01:09:46 2016. Site generation: Wed Mar 6 09:54:07 2024