Dynamic virtual fixture on the Euclidean group for admittance-type manipulator in deforming environments
Identifieur interne : 001243 ( Pmc/Curation ); précédent : 001242; suivant : 001244Dynamic virtual fixture on the Euclidean group for admittance-type manipulator in deforming environments
Auteurs : Dongwen Zhang [République populaire de Chine] ; Qingsong Zhu [République populaire de Chine] ; Jing Xiong [République populaire de Chine] ; Lei Wang [République populaire de Chine]Source :
- BioMedical Engineering OnLine [ 1475-925X ] ; 2014.
Abstract
In a deforming anatomic environment, the motion of an instrument suffers from complex geometrical and dynamic constraints, robot assisted minimally invasive surgery therefore requires more sophisticated skills for surgeons. This paper proposes a novel dynamic virtual fixture (DVF) to enhance the surgical operation accuracy of admittance-type medical robotics in the deforming environment.
A framework for DVF on the Euclidean Group
The DVF can improve the dynamic properties of human-robot cooperation in a low-frequency (0 ~ 40 rad/sec) deforming environment, and maintain synergy of orientation and translation during the operation. Statistical analysis reveals that the operator has intuitive control over the preferred directions, human and the DVF controller jointly control the motion along the non-preferred directions, the target deformation is tracked actively.
The proposed DVF for an admittance-type manipulator is capable of assisting the operator to deal with skilled operations in a deforming environment.
Url:
DOI: 10.1186/1475-925X-13-51
PubMed: 24767578
PubMed Central: 4041146
Links toward previous steps (curation, corpus...)
- to stream Pmc, to step Corpus: Pour aller vers cette notice dans l'étape Curation :001243
Links to Exploration step
PMC:4041146Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Dynamic virtual fixture on the Euclidean group for admittance-type manipulator in deforming environments</title>
<author><name sortKey="Zhang, Dongwen" sort="Zhang, Dongwen" uniqKey="Zhang D" first="Dongwen" last="Zhang">Dongwen Zhang</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
<affiliation wicri:level="1"><nlm:aff id="I2">University of Chinese Academy of Sciences, No.19A Yuquan Road, Beijing 100049, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>University of Chinese Academy of Sciences, No.19A Yuquan Road, Beijing 100049</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Zhu, Qingsong" sort="Zhu, Qingsong" uniqKey="Zhu Q" first="Qingsong" last="Zhu">Qingsong Zhu</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Xiong, Jing" sort="Xiong, Jing" uniqKey="Xiong J" first="Jing" last="Xiong">Jing Xiong</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Wang, Lei" sort="Wang, Lei" uniqKey="Wang L" first="Lei" last="Wang">Lei Wang</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">24767578</idno>
<idno type="pmc">4041146</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4041146</idno>
<idno type="RBID">PMC:4041146</idno>
<idno type="doi">10.1186/1475-925X-13-51</idno>
<date when="2014">2014</date>
<idno type="wicri:Area/Pmc/Corpus">001243</idno>
<idno type="wicri:Area/Pmc/Curation">001243</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">Dynamic virtual fixture on the Euclidean group for admittance-type manipulator in deforming environments</title>
<author><name sortKey="Zhang, Dongwen" sort="Zhang, Dongwen" uniqKey="Zhang D" first="Dongwen" last="Zhang">Dongwen Zhang</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
<affiliation wicri:level="1"><nlm:aff id="I2">University of Chinese Academy of Sciences, No.19A Yuquan Road, Beijing 100049, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>University of Chinese Academy of Sciences, No.19A Yuquan Road, Beijing 100049</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Zhu, Qingsong" sort="Zhu, Qingsong" uniqKey="Zhu Q" first="Qingsong" last="Zhu">Qingsong Zhu</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Xiong, Jing" sort="Xiong, Jing" uniqKey="Xiong J" first="Jing" last="Xiong">Jing Xiong</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Wang, Lei" sort="Wang, Lei" uniqKey="Wang L" first="Lei" last="Wang">Lei Wang</name>
<affiliation wicri:level="1"><nlm:aff id="I1">Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055</wicri:regionArea>
</affiliation>
</author>
</analytic>
<series><title level="j">BioMedical Engineering OnLine</title>
<idno type="eISSN">1475-925X</idno>
<imprint><date when="2014">2014</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><sec><title>Background</title>
<p>In a deforming anatomic environment, the motion of an instrument suffers from complex geometrical and dynamic constraints, robot assisted minimally invasive surgery therefore requires more sophisticated skills for surgeons. This paper proposes a novel dynamic virtual fixture (DVF) to enhance the surgical operation accuracy of admittance-type medical robotics in the deforming environment.</p>
</sec>
<sec><title>Methods</title>
<p>A framework for DVF on the Euclidean Group <italic>SE</italic>
(3) is presented, which unites rotation and translation in a compact form. First, we constructed the holonomic/non-holonomic constraints, and then searched for the corresponded reference to make a distinction between preferred and non-preferred directions. Second, different control strategies are employed to deal with the tasks along the distinguished directions. The desired spatial compliance matrix is synthesized from an allowable motion screw set to filter out the task unrelated components from manual input, the operator has complete control over the preferred directions; while the relative motion between the surgical instrument and the anatomy structures is actively tracked and cancelled, the deviation relative to the reference is compensated jointly by the operator and DVF controllers. The operator, haptic device, admittance-type proxy and virtual deforming environment are involved in a hardware-in-the-loop experiment, human-robot cooperation with the assistance of DVF controller is carried out on a deforming sphere to simulate beating heart surgery, performance of the proposed DVF on admittance-type proxy is evaluated, and both human factors and control parameters are analyzed.</p>
</sec>
<sec><title>Results</title>
<p>The DVF can improve the dynamic properties of human-robot cooperation in a low-frequency (0 ~ 40 rad/sec) deforming environment, and maintain synergy of orientation and translation during the operation. Statistical analysis reveals that the operator has intuitive control over the preferred directions, human and the DVF controller jointly control the motion along the non-preferred directions, the target deformation is tracked actively.</p>
</sec>
<sec><title>Conclusions</title>
<p>The proposed DVF for an admittance-type manipulator is capable of assisting the operator to deal with skilled operations in a deforming environment.</p>
</sec>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct><analytic><author><name sortKey="Rosenberg, Lb" uniqKey="Rosenberg L">LB Rosenberg</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Peshkin, Ma" uniqKey="Peshkin M">MA Peshkin</name>
</author>
<author><name sortKey="Colgate, Je" uniqKey="Colgate J">JE Colgate</name>
</author>
<author><name sortKey="Wannasuphoprasit, W" uniqKey="Wannasuphoprasit W">W Wannasuphoprasit</name>
</author>
<author><name sortKey="Moore, Ca" uniqKey="Moore C">CA Moore</name>
</author>
<author><name sortKey="Gillespie, Rb" uniqKey="Gillespie R">RB Gillespie</name>
</author>
<author><name sortKey="Akella, P" uniqKey="Akella P">P Akella</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bowyer, Sa" uniqKey="Bowyer S">SA Bowyer</name>
</author>
<author><name sortKey="Baena, Fry" uniqKey="Baena F">FRy Baena</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Abbot, Jj" uniqKey="Abbot J">JJ Abbot</name>
</author>
<author><name sortKey="Okamura, Am" uniqKey="Okamura A">AM Okamura</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bettini, A" uniqKey="Bettini A">A Bettini</name>
</author>
<author><name sortKey="Marayong, P" uniqKey="Marayong P">P Marayong</name>
</author>
<author><name sortKey="Lang, S" uniqKey="Lang S">S Lang</name>
</author>
<author><name sortKey="Okamura, Am" uniqKey="Okamura A">AM Okamura</name>
</author>
<author><name sortKey="Hager, Gd" uniqKey="Hager G">GD Hager</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bettini, A" uniqKey="Bettini A">A Bettini</name>
</author>
<author><name sortKey="Lang, S" uniqKey="Lang S">S Lang</name>
</author>
<author><name sortKey="Okamura, A" uniqKey="Okamura A">A Okamura</name>
</author>
<author><name sortKey="Hager, G" uniqKey="Hager G">G Hager</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Marayong, P" uniqKey="Marayong P">P Marayong</name>
</author>
<author><name sortKey="Li, M" uniqKey="Li M">M Li</name>
</author>
<author><name sortKey="Okamura, Am" uniqKey="Okamura A">AM Okamura</name>
</author>
<author><name sortKey="Hager, Gd" uniqKey="Hager G">GD Hager</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Prada, R" uniqKey="Prada R">R Prada</name>
</author>
<author><name sortKey="Payandeh, S" uniqKey="Payandeh S">S Payandeh</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bowyer, Sa" uniqKey="Bowyer S">SA Bowyer</name>
</author>
<author><name sortKey="Davies, Bl" uniqKey="Davies B">BL Davies</name>
</author>
<author><name sortKey="Baena, Fry" uniqKey="Baena F">FRy Baena</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Navkar, Nv" uniqKey="Navkar N">NV Navkar</name>
</author>
<author><name sortKey="Deng, Z" uniqKey="Deng Z">Z Deng</name>
</author>
<author><name sortKey="Shah, Dj" uniqKey="Shah D">DJ Shah</name>
</author>
<author><name sortKey="Bekris, Ke" uniqKey="Bekris K">KE Bekris</name>
</author>
<author><name sortKey="Tsekos, Nv" uniqKey="Tsekos N">NV Tsekos</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ren, J" uniqKey="Ren J">J Ren</name>
</author>
<author><name sortKey="Patel, Rv" uniqKey="Patel R">RV Patel</name>
</author>
<author><name sortKey="Mcisaac, Ka" uniqKey="Mcisaac K">KA McIsaac</name>
</author>
<author><name sortKey="Gerard, G" uniqKey="Gerard G">G Gerard</name>
</author>
<author><name sortKey="Peters, Tm" uniqKey="Peters T">TM Peters</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ahmed, Rm" uniqKey="Ahmed R">RM Ahmed</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ming, L" uniqKey="Ming L">L Ming</name>
</author>
<author><name sortKey="Ishii, M" uniqKey="Ishii M">M Ishii</name>
</author>
<author><name sortKey="Taylor, Rh" uniqKey="Taylor R">RH Taylor</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Raul, A" uniqKey="Raul A">A Raúl</name>
</author>
<author><name sortKey="Castillo, C" uniqKey="Castillo C">C Castillo</name>
</author>
<author><name sortKey="Jurgen, W" uniqKey="Jurgen W">W Jürgen</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Becker, Bc" uniqKey="Becker B">BC Becker</name>
</author>
<author><name sortKey="Maclachlan, Ra" uniqKey="Maclachlan R">RA MacLachlan</name>
</author>
<author><name sortKey="Lobes, La" uniqKey="Lobes L">LA Lobes</name>
</author>
<author><name sortKey="Hager, Gd" uniqKey="Hager G">GD Hager</name>
</author>
<author><name sortKey="Riviere, Cn" uniqKey="Riviere C">CN Riviere</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ozkan Bebek, M" uniqKey="Ozkan Bebek M">M Özkan Bebek</name>
</author>
<author><name sortKey="Cavu O Lu, C" uniqKey="Cavu O Lu C">C Çavuşoğlu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bullo, F" uniqKey="Bullo F">F Bullo</name>
</author>
<author><name sortKey="Murray, Rm" uniqKey="Murray R">RM Murray</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Huang, S" uniqKey="Huang S">S Huang</name>
</author>
<author><name sortKey="Schimmels, Jm" uniqKey="Schimmels J">JM Schimmels</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Huang, S" uniqKey="Huang S">S Huang</name>
</author>
<author><name sortKey="Schimmels, Jm" uniqKey="Schimmels J">JM Schimmels</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Dongwen, Z" uniqKey="Dongwen Z">Z Dongwen</name>
</author>
<author><name sortKey="Lei, W" uniqKey="Lei W">W Lei</name>
</author>
<author><name sortKey="Jia, G" uniqKey="Jia G">G Jia</name>
</author>
<author><name sortKey="Zhicheng, L" uniqKey="Zhicheng L">L Zhicheng</name>
</author>
<author><name sortKey="Ken, C" uniqKey="Ken C">C Ken</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Park, Fc" uniqKey="Park F">FC Park</name>
</author>
<author><name sortKey="Bobrow, Je" uniqKey="Bobrow J">JE Bobrow</name>
</author>
<author><name sortKey="Ploen, Sr" uniqKey="Ploen S">SR Ploen</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ball, R" uniqKey="Ball R">R Ball</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jiri, M" uniqKey="Jiri M">M Jiri</name>
</author>
<author><name sortKey="Jim, B" uniqKey="Jim B">B Jim</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Boothby, Wm" uniqKey="Boothby W">WM Boothby</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Loncaric, J" uniqKey="Loncaric J">J Loncaric</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Patterson, T" uniqKey="Patterson T">T Patterson</name>
</author>
<author><name sortKey="Lipkin, H" uniqKey="Lipkin H">H Lipkin</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kapoor, A" uniqKey="Kapoor A">A Kapoor</name>
</author>
<author><name sortKey="Li, M" uniqKey="Li M">M Li</name>
</author>
<author><name sortKey="Taylor, Rh" uniqKey="Taylor R">RH Taylor</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Adams, Jd" uniqKey="Adams J">JD Adams</name>
</author>
<author><name sortKey="Whitney, De" uniqKey="Whitney D">DE Whitney</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Schimmels, Jm" uniqKey="Schimmels J">JM Schimmels</name>
</author>
<author><name sortKey="Peshkin, Ma" uniqKey="Peshkin M">MA Peshkin</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Thitipong, S" uniqKey="Thitipong S">S Thitipong</name>
</author>
<author><name sortKey="Itthisek, N" uniqKey="Itthisek N">N Itthisek</name>
</author>
<author><name sortKey="Kanokvate, T" uniqKey="Kanokvate T">T Kanokvate</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Rodgers, Jl" uniqKey="Rodgers J">JL Rodgers</name>
</author>
<author><name sortKey="Nicewander, Wa" uniqKey="Nicewander W">WA Nicewander</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article" xml:lang="en"><pmc-dir>properties open_access</pmc-dir>
<front><journal-meta><journal-id journal-id-type="nlm-ta">Biomed Eng Online</journal-id>
<journal-id journal-id-type="iso-abbrev">Biomed Eng Online</journal-id>
<journal-title-group><journal-title>BioMedical Engineering OnLine</journal-title>
</journal-title-group>
<issn pub-type="epub">1475-925X</issn>
<publisher><publisher-name>BioMed Central</publisher-name>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">24767578</article-id>
<article-id pub-id-type="pmc">4041146</article-id>
<article-id pub-id-type="publisher-id">1475-925X-13-51</article-id>
<article-id pub-id-type="doi">10.1186/1475-925X-13-51</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Research</subject>
</subj-group>
</article-categories>
<title-group><article-title>Dynamic virtual fixture on the Euclidean group for admittance-type manipulator in deforming environments</article-title>
</title-group>
<contrib-group><contrib contrib-type="author" id="A1"><name><surname>Zhang</surname>
<given-names>Dongwen</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<xref ref-type="aff" rid="I2">2</xref>
<email>dw.zhang@siat.ac.cn</email>
</contrib>
<contrib contrib-type="author" id="A2"><name><surname>Zhu</surname>
<given-names>Qingsong</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>qs.zhu@siat.ac.cn</email>
</contrib>
<contrib contrib-type="author" id="A3"><name><surname>Xiong</surname>
<given-names>Jing</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>jing.xiong@siat.ac.cn</email>
</contrib>
<contrib contrib-type="author" corresp="yes" id="A4"><name><surname>Wang</surname>
<given-names>Lei</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>wang.lei@siat.ac.cn</email>
</contrib>
</contrib-group>
<aff id="I1"><label>1</label>
Shenzhen Key Laboratory for Lowcost Healthcare, Key Lab for Health Informatics, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Xueyuan Avenue 1068, Shenzhen 518055, China</aff>
<aff id="I2"><label>2</label>
University of Chinese Academy of Sciences, No.19A Yuquan Road, Beijing 100049, China</aff>
<pub-date pub-type="collection"><year>2014</year>
</pub-date>
<pub-date pub-type="epub"><day>27</day>
<month>4</month>
<year>2014</year>
</pub-date>
<volume>13</volume>
<fpage>51</fpage>
<lpage>51</lpage>
<history><date date-type="received"><day>3</day>
<month>12</month>
<year>2013</year>
</date>
<date date-type="accepted"><day>24</day>
<month>3</month>
<year>2014</year>
</date>
</history>
<permissions><copyright-statement>Copyright © 2014 Zhang et al.; licensee BioMed Central Ltd.</copyright-statement>
<copyright-year>2014</copyright-year>
<copyright-holder>Zhang et al.; licensee BioMed Central Ltd.</copyright-holder>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/2.0"><license-p>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/2.0">http://creativecommons.org/licenses/by/2.0</ext-link>
), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly credited. The Creative Commons Public Domain Dedication waiver (<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/publicdomain/zero/1.0/">http://creativecommons.org/publicdomain/zero/1.0/</ext-link>
) applies to the data made available in this article, unless otherwise stated.</license-p>
</license>
</permissions>
<self-uri xlink:href="http://www.biomedical-engineering-online.com/content/13/1/51"></self-uri>
<abstract><sec><title>Background</title>
<p>In a deforming anatomic environment, the motion of an instrument suffers from complex geometrical and dynamic constraints, robot assisted minimally invasive surgery therefore requires more sophisticated skills for surgeons. This paper proposes a novel dynamic virtual fixture (DVF) to enhance the surgical operation accuracy of admittance-type medical robotics in the deforming environment.</p>
</sec>
<sec><title>Methods</title>
<p>A framework for DVF on the Euclidean Group <italic>SE</italic>
(3) is presented, which unites rotation and translation in a compact form. First, we constructed the holonomic/non-holonomic constraints, and then searched for the corresponded reference to make a distinction between preferred and non-preferred directions. Second, different control strategies are employed to deal with the tasks along the distinguished directions. The desired spatial compliance matrix is synthesized from an allowable motion screw set to filter out the task unrelated components from manual input, the operator has complete control over the preferred directions; while the relative motion between the surgical instrument and the anatomy structures is actively tracked and cancelled, the deviation relative to the reference is compensated jointly by the operator and DVF controllers. The operator, haptic device, admittance-type proxy and virtual deforming environment are involved in a hardware-in-the-loop experiment, human-robot cooperation with the assistance of DVF controller is carried out on a deforming sphere to simulate beating heart surgery, performance of the proposed DVF on admittance-type proxy is evaluated, and both human factors and control parameters are analyzed.</p>
</sec>
<sec><title>Results</title>
<p>The DVF can improve the dynamic properties of human-robot cooperation in a low-frequency (0 ~ 40 rad/sec) deforming environment, and maintain synergy of orientation and translation during the operation. Statistical analysis reveals that the operator has intuitive control over the preferred directions, human and the DVF controller jointly control the motion along the non-preferred directions, the target deformation is tracked actively.</p>
</sec>
<sec><title>Conclusions</title>
<p>The proposed DVF for an admittance-type manipulator is capable of assisting the operator to deal with skilled operations in a deforming environment.</p>
</sec>
</abstract>
</article-meta>
</front>
<body><sec><title>Background</title>
<p>In a deforming anatomic environment, minimally invasive surgery (MIS) therefore requires more sophisticated skills for the surgeons, the motion of an instrument suffers from complex geometrical and dynamic constraints. One approach for enhancing the accuracy and safety of human operation is to use robot controller to regulate the instrument motion under either hands-on or teleoperation control. These are referred to as virtual fixtures (VF), which is kind of task-dependent and computer-generated mechanisms to limit movement into restricted regions [<xref ref-type="bibr" rid="B1">1</xref>
-<xref ref-type="bibr" rid="B3">3</xref>
] or influence movement along desired paths [<xref ref-type="bibr" rid="B4">4</xref>
-<xref ref-type="bibr" rid="B8">8</xref>
]. Extension of VF into deforming environment also refers to dynamic virtual fixture [<xref ref-type="bibr" rid="B9">9</xref>
], where the geometric constraint moves continuously, as a result of changes in the physical environment or task being undertaken [<xref ref-type="bibr" rid="B10">10</xref>
,<xref ref-type="bibr" rid="B11">11</xref>
].</p>
<p>An important case of VFs for surgical application is guidance VF, Bettini et al. [<xref ref-type="bibr" rid="B5">5</xref>
,<xref ref-type="bibr" rid="B6">6</xref>
] used vision information to assist VF construction, and they discussed the application in vitreoretinal surgery. Marayong et al. [<xref ref-type="bibr" rid="B7">7</xref>
] demonstrated a geometrical constraint with varying compliance, which is described for the general spatial case. Compliant control is significantly necessary to overcome the uncertainties associated with registration errors, variations in anatomy [<xref ref-type="bibr" rid="B12">12</xref>
]. Li et al. [<xref ref-type="bibr" rid="B13">13</xref>
] presented an anatomy generated VF for sinus surgery, which employed a constrained optimization framework to incorporate task goals, anatomy-based constraints, forbidden zones, etc. Castillo-Cruces et al. [<xref ref-type="bibr" rid="B14">14</xref>
] presented an admittance controller with autonomous error compensation, a clear distribution of responsibilities between surgeon and robotic system is preserved. Becker et al. [<xref ref-type="bibr" rid="B15">15</xref>
] derived a virtual fixture framework for active handheld micromanipulators, the forces were replaced with an actuated tool tip that is permitted by the high-bandwidth position measurements. These work all used admittance controller to implement VFs, the active robots comply with the manual force that applied on the end-effector or telemanipulated joystick. However, such first-order admittance controller with manual/autonomous error compensation is inadequate to adapt to dynamic environment. Bebek et al. proposed an intelligent control algorithm for robotic-assisted beating heart surgery, the robotic tools actively cancel the relative motion between the surgical instruments and the point of interest on the beating heart [<xref ref-type="bibr" rid="B16">16</xref>
]. However, motions along the preferred directions are not regulated.</p>
<p>Traditional VFs deal with rotation and translation separately in ℝ<sup>3</sup>
space, the interconnection between them is not involved in VF design. Synergy of orientation and position is important for MIS, it requires that the orientation should be ready before the position is reached. Otherwise, a delay is needed to instrument motion when the orientation and position are out of synchronous, it could be awful for real-time operation, collisions could probably appears in the inner anatomic operation space. Bullo and Murray [<xref ref-type="bibr" rid="B17">17</xref>
] proposed a generalized proportional derivative (PD) laws on Euclidean Group <italic>SE</italic>
(3), which used logarithmic feedback control and dealt with rotation and translation simultaneously with a compact form. Besides, the geometric properties of Lie group and Lie algebra facilitate spatial compliance and stiffness matrix synthesis and decomposition. Shuguang Huang [<xref ref-type="bibr" rid="B18">18</xref>
,<xref ref-type="bibr" rid="B19">19</xref>
] examined the structure of spatial stiffness by evaluating the eigenscrew featured rank-1 primitives stiffness matrices.</p>
<p>In our previous works, we studied the spatial compliance/stiffness matrices synthesis for admittance and impedance controlled devices respectively [<xref ref-type="bibr" rid="B20">20</xref>
].</p>
<p>The proposed VFs could not effectively eliminate the tracking error drifts over the deforming frequency growth, thus we hope to improve the dynamic performance of the VF for admittance controlled device. In this paper, we study the application of VF in deforming environment, and propose a novel framework of DVF for admittance-type device on <italic>SE</italic>
(3). We construct the holonomic constraint/non-holonomic constraints and then search for the corresponded reference tasks to make a distinction between preferred and non-preferred directions. Different control strategies are employed to deal with the tasks along the distinguished directions. The paper is organized as follows: the first section outlines the mathematical preliminaries of Lie group and Lie algebra for robot control, spatial compliance matrix synthesis and DVF on <italic>SE</italic>
(3) for admittance-type device are proposed in Methods the last two sections describe a hardware-in-the-loop experiment and discussions.</p>
</sec>
<sec sec-type="methods"><title>Methods</title>
<sec><title>Mathematical preliminaries</title>
<p>The configuration space of a robotic system is defined on the special Euclidean group <italic>SE</italic>
(3) and its subgroups, position and orientation of the end-effector correspond to a element of matrix Lie group. The <italic>Lie algebra</italic>
of <italic>SE</italic>
(3) is denoted as <italic>se</italic>
(3). We express a group element g = (<bold>R</bold>
, <italic>p</italic>
) ∊ <italic>SE</italic>
(3) and velocity <inline-formula><mml:math id="M1" name="1475-925X-13-51-i1" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
using homogeneous coordinates as</p>
<p><disp-formula id="bmcM1"><label>(1)</label>
<mml:math id="M2" name="1475-925X-13-51-i2" overflow="scroll"><mml:mrow><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mi mathvariant="bold">R</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>the operator <inline-formula><mml:math id="M3" name="1475-925X-13-51-i3" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mo>*</mml:mo>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>:</mml:mo>
<mml:msup><mml:mi mathvariant="normal">ℝ</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mo>→</mml:mo>
<mml:mi mathvariant="italic">so</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
is a cross-product matrix that transforms cross-product operation into matrix multiplication, so that <inline-formula><mml:math id="M4" name="1475-925X-13-51-i4" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold-italic">y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
for all <bold><italic>x</italic>
</bold>
, <bold><italic>y</italic>
</bold>
∈ <bold>R</bold>
<sup>3</sup>
. Elements of <italic>se</italic>
(3) can also be represented as vector pair (<bold><italic>ω</italic>
</bold>
, <bold><italic>v</italic>
</bold>
), <bold><italic>ω</italic>
</bold>
, <bold><italic>v</italic>
</bold>
∈ ℝ<sup>3</sup>
.</p>
<p>For all g ∊ <italic>SE</italic>
(3) and all <bold>X</bold>
, <bold>Y</bold>
∊ <italic>se</italic>
(3), the <italic>Adjoint map</italic>
<inline-formula><mml:math id="M5" name="1475-925X-13-51-i5" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
<mml:mo>→</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
is a coordinate transformation on <italic>se</italic>
(3), this allows us to transform spatial velocity from one coordinate to another. The Lie bracket is given by the matrix commutator ad<sub>X</sub>
, which generalizes the standard cross-product operation in <italic>se</italic>
(3).</p>
<p><disp-formula id="bmcM2"><label>(2)</label>
<mml:math id="M6" name="1475-925X-13-51-i6" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold">Y</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:msup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p><disp-formula id="bmcM3"><label>(3)</label>
<mml:math id="M7" name="1475-925X-13-51-i7" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ad</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold">Y</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mrow><mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">XY</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">YX</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Writing <bold>X</bold>
as column vector pair (<italic>ω</italic>
, <italic>v</italic>
), the 6 × 6 matrix representation of adjoint transformation and Lie bracket are</p>
<p><disp-formula id="bmcM4"><label>(4)</label>
<mml:math id="M8" name="1475-925X-13-51-i8" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mi mathvariant="bold">R</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold">R</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mi mathvariant="bold">R</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:msub><mml:mi mathvariant="normal">ad</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Spatial moment-force pair <inline-formula><mml:math id="M9" name="1475-925X-13-51-i9" overflow="scroll"><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mspace width="0.25em"></mml:mspace>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo>∈</mml:mo>
<mml:msup><mml:mi mathvariant="normal">R</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
are elements of the dual space of <italic>se</italic>
(3), which is denoted as <italic>se</italic>
(3)*. The <italic>dual Adjoint map</italic>
<inline-formula><mml:math id="M10" name="1475-925X-13-51-i10" overflow="scroll"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>∗</mml:mo>
</mml:msubsup>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
<mml:mo>*</mml:mo>
<mml:mo>→</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
<mml:mo>*</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
and Lie bracket <inline-formula><mml:math id="M11" name="1475-925X-13-51-i11" overflow="scroll"><mml:msubsup><mml:mi mathvariant="normal">ad</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>∗</mml:mo>
</mml:msubsup>
</mml:math>
</inline-formula>
are given by</p>
<p><disp-formula id="bmcM5"><label>(5)</label>
<mml:math id="M12" name="1475-925X-13-51-i12" overflow="scroll"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>∗</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mo>−</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:msup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mspace width="0.5em"></mml:mspace>
<mml:msubsup><mml:mi mathvariant="normal">ad</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>∗</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mo>−</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mo>−</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mo>−</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Let <italic>V</italic>
<sub>2</sub>
= (<italic>ω</italic>
<sub>2</sub>
, <italic>v</italic>
<sub>2</sub>
) ∊ <italic>se</italic>
(3) denote the spatial velocity of a rigid body in frame <italic>M</italic>
<sub>2</sub>
, g<sub>12</sub>
∊ <italic>SE</italic>
(3) represents the right coordinate transformation from frame <italic>M</italic>
<sub>1</sub>
to frame <italic>M</italic>
<sub>2</sub>
, and then the spatial velocity relative to frame <italic>M</italic>
<sub>1</sub>
, denoted by <italic>V</italic>
<sub>1</sub>
= (<italic>ω</italic>
<sub>1</sub>
, <italic>v</italic>
<sub>1</sub>
), is given by <inline-formula><mml:math id="M13" name="1475-925X-13-51-i13" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
. Let <italic>F</italic>
<sub>2</sub>
= (<italic>m</italic>
<sub>2</sub>
, <italic>f</italic>
<sub>2</sub>
) ∊ <italic>se</italic>
(3) * denotes the moment-force pair acting on a rigid body with respect to frame <italic>M</italic>
<sub>2</sub>
, <italic>g</italic>
<sub>12</sub>
∊ <italic>SE</italic>
(3) represents the right coordinate transformation from frame <italic>M</italic>
<sub>1</sub>
to frame <italic>M</italic>
<sub>2</sub>
, and then the spatial force in frame <italic>M</italic>
<sub>1</sub>
is given by <inline-formula><mml:math id="M14" name="1475-925X-13-51-i14" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msubsup><mml:mi mathvariant="italic">d</mml:mi>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mo>*</mml:mo>
</mml:msubsup>
<mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
.</p>
<p>On <italic>SE</italic>
(3) and its proper subgroups, the exponential map <italic>exp</italic>
: <italic>se</italic>
(3) → <italic>SE</italic>
(3) is a surjective map and a local diffeomorphism [<xref ref-type="bibr" rid="B21">21</xref>
]. Given <inline-formula><mml:math id="M15" name="1475-925X-13-51-i15" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>∈</mml:mo>
<mml:mspace width="0.2em"></mml:mspace>
<mml:mi mathvariant="normal">so</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
and <inline-formula><mml:math id="M16" name="1475-925X-13-51-i16" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mspace width="0.2em"></mml:mspace>
<mml:mi mathvariant="normal">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
, we have</p>
<p><disp-formula id="bmcM6"><label>(6)</label>
<mml:math id="M17" name="1475-925X-13-51-i17" overflow="scroll"><mml:mrow><mml:msub><mml:mo>exp</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">SO</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo>sin</mml:mo>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mfrac><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mo>cos</mml:mo>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mfrac><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p><disp-formula id="bmcM7"><label>(7)</label>
<mml:math id="M18" name="1475-925X-13-51-i18" overflow="scroll"><mml:mrow><mml:msub><mml:mo>exp</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">SE</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msub><mml:mo>exp</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">SO</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mi mathvariant="italic">A</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p><disp-formula id="bmcM8"><label>(8)</label>
<mml:math id="M19" name="1475-925X-13-51-i19" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mo>+</mml:mo>
<mml:mfenced open="(" close=")"><mml:mfrac><mml:mrow><mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mo>cos</mml:mo>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mrow>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mfrac>
</mml:mfenced>
<mml:mfrac><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mfrac><mml:mrow><mml:mo>sin</mml:mo>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mrow>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mfrac><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Equation (6) is also known as Rodrigues formula. The logarithmic map <italic>log</italic>
: <italic>SE</italic>
(3) → <italic>se</italic>
(3) is the inverse operation of exponential map<italic>.</italic>
Let (<bold>R</bold>
, <italic>p</italic>
) ∊ <italic>SE</italic>
(3) be such that tr(R) ≠ −1, then</p>
<p><disp-formula id="bmcM9"><label>(9)</label>
<mml:math id="M20" name="1475-925X-13-51-i20" overflow="scroll"><mml:mrow><mml:msub><mml:mo>log</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">SO</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold">R</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mrow><mml:mo>sin</mml:mo>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold">R</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mspace width="0.2em"></mml:mspace>
<mml:mi mathvariant="normal">so</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>in which <italic>ϕ</italic>
satisfies <inline-formula><mml:math id="M21" name="1475-925X-13-51-i21" overflow="scroll"><mml:mrow><mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">tr</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold">R</mml:mi>
</mml:mfenced>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
and |<italic>ϕ</italic>
| < <italic>π</italic>
. Also</p>
<p><disp-formula id="bmcM10"><label>(10)</label>
<mml:math id="M22" name="1475-925X-13-51-i22" overflow="scroll"><mml:mrow><mml:msub><mml:mo>log</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold">R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:mtd>
<mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold">A</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>where <inline-formula><mml:math id="M23" name="1475-925X-13-51-i23" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:msub><mml:mo>log</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">SO</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold">R</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
.</p>
<p>Note that element of the Lie algebra can be expressed as a velocity as in Eq.(1) or the logarithm coordinates in Eq. (10). We denote them with <inline-formula><mml:math id="M24" name="1475-925X-13-51-i24" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
in the first case, and with <inline-formula><mml:math id="M25" name="1475-925X-13-51-i25" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
in the second case. According Ball’s screws theory, every rigid coordinate transformation corresponds to a finite screw motion [<xref ref-type="bibr" rid="B22">22</xref>
]. More precisely, the twist corresponds to the spatial velocity <inline-formula><mml:math id="M26" name="1475-925X-13-51-i26" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
of the Lie algebra, a screw refers to the exponential coordinate <inline-formula><mml:math id="M27" name="1475-925X-13-51-i27" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
. The screw is an element of the 1–dimensional projective space of <italic>se</italic>
(3), while a screw system with k degree of freedom (DOF) is a k–dimensional subspace [<xref ref-type="bibr" rid="B23">23</xref>
]. The distance between the configuration state <italic>g</italic>
and the identity e<sub>G</sub>
= <bold>I</bold>
∈<italic>SE</italic>
(3) is given by the norm of the logarithmic coordinate, which is an Ad-invariant metric on the matrix Lie group G by either left or right transformation [<xref ref-type="bibr" rid="B24">24</xref>
].</p>
<p><disp-formula id="bmcM11"><label>(11)</label>
<mml:math id="M28" name="1475-925X-13-51-i28" overflow="scroll"><mml:mrow><mml:msub><mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="italic">g</mml:mi>
</mml:mfenced>
<mml:mi mathvariant="normal">G</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup><mml:mfenced open="〈" close="〉"><mml:mrow><mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">g</mml:mi>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">g</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mrow><mml:mn>1</mml:mn>
<mml:mo stretchy="true">/</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:msqrt><mml:mrow><mml:mi mathvariant="italic">tr</mml:mi>
<mml:mfenced open="[" close="]"><mml:mrow><mml:mo>log</mml:mo>
<mml:msup><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">g</mml:mi>
</mml:mfenced>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">g</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
</sec>
<sec><title>Dynamic constrains and reference search</title>
<p>In deforming anatomic environment, the motion of instrument suffers from complex geometrical and dynamic constraints, their translational and rotational degree of freedom are restricted. MIS operation requires more sophisticated skills for the surgeons, making a distinction between and preferred and non-preferred directions and employed different control strategy helps reduce operation burden for surgeons. This can be achieved by construction of the holonomic/non-holonomic constraints and searching for the corresponded reference trajectories. The surgeons have complete control over the preferred directions, which are featured by a set of unit motion screws; while the deviation relative to the reference can be compensated autonomously. For a fully actuated control systems (the number of independent control inputs equals to the number of position variables), the reference trajectory falls into the holonomic and non-holonomic according to the constraints applied to the end-effector.</p>
</sec>
<sec><title>(i). Holonomic constraint and the corresponded reference</title>
<p>In holonomic constraints, the DOF of reference equals to the dimension of <italic>SE</italic>
(3), motion of the end-effector is strictly constrained. The task sequence is defined as a generalized time-varying curve <italic>g</italic>
<sub><italic>r</italic>
</sub>
(<italic>λ</italic>
, <italic>t</italic>
) ∊ <italic>G</italic>
, <italic>λ</italic>
∊ <italic>R</italic>
. Translation and rotation are continuous in <italic>λ</italic>
− <italic>t</italic>
plane, the first-order partial derivatives for <italic>t</italic>
and <italic>λ</italic>
exist. The temporal velocity with respect to inertia frame refers to</p>
<p><disp-formula id="bmcM12"><label>(12)</label>
<mml:math id="M29" name="1475-925X-13-51-i29" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold">V</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mrow><mml:mo>∂</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow><mml:mo>∂</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:msub><mml:mi mathvariant="bold">V</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mo>∈</mml:mo>
<mml:mspace width="0.2em"></mml:mspace>
<mml:mi mathvariant="normal">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The tangent screw</p>
<p><disp-formula id="bmcM13"><label>(13)</label>
<mml:math id="M30" name="1475-925X-13-51-i30" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold">V</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mrow><mml:mo>∂</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow><mml:mo>∂</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:msub><mml:mi mathvariant="bold">V</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:msub>
<mml:mo>∈</mml:mo>
<mml:mspace width="0.2em"></mml:mspace>
<mml:mi mathvariant="normal">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>in inertia frame represents the preferred direction of instrument motion, which is independent of the choice of parameter <italic>λ</italic>
. Given the current configuration <italic>g</italic>
of the end-effector, the instantaneous desired configuration <italic>g</italic>
<sub><italic>d</italic>
</sub>
on the task sequence <italic>g</italic>
<sub><italic>r</italic>
</sub>
(<italic>λ</italic>
, <italic>t</italic>
) refers to the one with minimum norm</p>
<p><disp-formula id="bmcM14"><label>(14)</label>
<mml:math id="M31" name="1475-925X-13-51-i31" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="italic">e</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">λ</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msub><mml:mfenced close="|"><mml:mrow><mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">t</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>arg</mml:mo>
<mml:munder><mml:mo>min</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:munder>
<mml:msub><mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:mi mathvariant="italic">e</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">λ</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="normal">G</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>arg</mml:mo>
<mml:munder><mml:mo>min</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:munder>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:msqrt><mml:mrow><mml:mn>2</mml:mn>
<mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:msqrt>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>in which <inline-formula><mml:math id="M32" name="1475-925X-13-51-i32" overflow="scroll"><mml:mrow><mml:msub><mml:mo>log</mml:mo>
<mml:mrow><mml:mi mathvariant="normal">SE</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">e</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
, the norm of logarithmic error is a weighted distance of pure rotation and translation. Searching for the nearest reference along the task sequence can be generalized as the traversal searching the minimum point along the whole task sequence for initialization, local searching along the direction of norm reduction and the minimum is always reachable due to continuous restriction on rotation and translation.</p>
</sec>
<sec><title>(ii). Non-holonomic constraint and the corresponded reference</title>
<p>In non-Holonomic constraints, the DOF of reference is less than the dimension of Lie group, such as pure translation <italic>R</italic>
<sup>3</sup>
, rotation <italic>SO</italic>
(3), or other displacement subgroups, motion of the end-effector is partially constrained. For example, instrument motion on a deforming surface while the tool shaft along the norm direction, which refers to the displacements in <italic>SE</italic>
(2). Given the reference <italic>g</italic>
<sub><italic>r</italic>
</sub>
= ([<italic>m</italic>
<sub><italic>x</italic>
</sub>
, <italic>m</italic>
<sub><italic>y</italic>
</sub>
, <italic>m</italic>
<sub><italic>z</italic>
</sub>
], <italic>p</italic>
<sub><italic>r</italic>
</sub>
), <italic>f</italic>
(<italic>p</italic>
<sub><italic>r</italic>
</sub>
) = 0 and current state <italic>g</italic>
= ([<italic>n</italic>
<sub><italic>x</italic>
</sub>
, <italic>n</italic>
<sub><italic>y</italic>
</sub>
, <italic>n</italic>
<sub><italic>z</italic>
</sub>
], <italic>p</italic>
), the task is to make <italic>n</italic>
<sub><italic>z</italic>
</sub>
→ <italic>m</italic>
<sub><italic>z</italic>
</sub>
, <italic>p</italic>
→ <italic>p</italic>
<sub><italic>r</italic>
</sub>
. Any rotation about axis <italic>z</italic>
cannot change the direction of axis-z, the instantaneous reference <italic>g</italic>
<sub><italic>d</italic>
</sub>
is the one with minimum norm in all possible frames <italic>g</italic>
<sub><italic>r</italic>
</sub>
<italic>g</italic>
<sub>z</sub>
(<italic>θ</italic>
),</p>
<p><disp-formula id="bmcM15"><label>(15)</label>
<mml:math id="M33" name="1475-925X-13-51-i33" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="normal">z</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">θ</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold-italic">0</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">θ</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mo stretchy="true">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">π</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="normal">z</mml:mi>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">θ</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="italic">e</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">θ</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:msup><mml:mrow></mml:mrow>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>arg</mml:mo>
<mml:munder><mml:mo>min</mml:mo>
<mml:mi mathvariant="italic">θ</mml:mi>
</mml:munder>
<mml:msub><mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:mi mathvariant="italic">e</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="normal">G</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mfenced close="|"><mml:mrow><mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mrow><mml:mo>tr</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">e</mml:mi>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>When the axis vectors <italic>n</italic>
<sub><italic>z</italic>
</sub>
and <italic>m</italic>
<sub><italic>z</italic>
</sub>
coincides, the rotation matrix of reference <italic>g</italic>
<sub><italic>d</italic>
</sub>
equals to that of robot state <italic>g</italic>
according to Eq.(15), that means the user has complete control over the robot along the tangent plane and directs the task flow intuitively, the deviations relative to reference can be compensated manually or autonomously during human-robot cooperation.</p>
</sec>
<sec><title>Spatial compliance for virtual fixture on SE(3)</title>
<p>Admittance control facilitates VF by allowing the end-effectors to comply with the manual force anisotropically. The compliant behavior of admittance VF is featured by a 6 × 6 symmetric positive semidefinite (PSD) compliance matrix <bold>C</bold>
<sub>VF</sub>
: <italic>se</italic>
(3) * → <italic>se</italic>
(3), which maps spatial force into small displacement [<xref ref-type="bibr" rid="B25">25</xref>
,<xref ref-type="bibr" rid="B26">26</xref>
]. The preferred and non-preferred directions construct the geometry constraints, both can be represented by unit screws in <italic>se</italic>
(3). Given a set of linearly independent allowable screw set <bold>S</bold>
in body-fixed frame, the task dependent compliant matrix <inline-formula><mml:math id="M34" name="1475-925X-13-51-i34" overflow="scroll"><mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:math>
</inline-formula>
can be decomposed into sum of <italic>m</italic>
rank-1 PSD matrices,</p>
<p><disp-formula id="bmcM16"><label>(16)</label>
<mml:math id="M35" name="1475-925X-13-51-i35" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="{" close="}"><mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:msub>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>≤</mml:mo>
<mml:mn>6</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="italic">c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msubsup><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msubsup><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:msub>
<mml:msubsup><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">,</mml:mi>
<mml:msub><mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:msub>
<mml:mo>></mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mspace width="1.25em"></mml:mspace>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>positive scalar <italic>c</italic>
<sub><italic>i</italic>
</sub>
defines the compliance for each primitive compliance matrix <italic>C</italic>
<sub><italic>i</italic>
</sub>
. A wrench applied about the screw yields a twist deformation along the same screw, high compliance is encountered along the preferred directions, while low compliance along the non-preferred directions. Making a distinction between and non-preferred directions helps reduce operation burden of surgeons, they only focus on operations along the preferred direction. Any deformation <italic>δX</italic>
<sup><italic>b</italic>
</sup>
= (<italic>δφ</italic>
<sup><italic>b</italic>
</sup>
, <italic>δq</italic>
<sup><italic>b</italic>
</sup>
) complying with the manual force <italic>F</italic>
<sub><italic>h</italic>
</sub>
<sup><italic>b</italic>
</sup>
= (<italic>m</italic>
<sup><italic>b</italic>
</sup>
, <italic>f</italic>
<sup><italic>b</italic>
</sup>
) can be linearly represented by motion screws of <bold>S</bold>
</p>
<p><disp-formula id="bmcM17"><label>(17)</label>
<mml:math id="M36" name="1475-925X-13-51-i36" overflow="scroll"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mi mathvariant="italic">δ</mml:mi>
<mml:msup><mml:mi mathvariant="bold-italic">φ</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mi mathvariant="italic">δ</mml:mi>
<mml:msup><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msubsup><mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The term <italic>F</italic>
<sub><italic>h</italic>
</sub>
<sup><italic>b</italic>
</sup>
is manual force acting on the end-effector with respect to body frame, <italic>δ</italic>
<bold>X</bold>
<sup><italic>b</italic>
</sup>
refers to the dual vectors of translational deformation and rotational deformation in body frame. A complete constraint corresponds to a full-rank compliance matrix <bold>C</bold>
, a deficient-rank matrix indicates an incomplete constraint. The compliance matrix <inline-formula><mml:math id="M37" name="1475-925X-13-51-i37" overflow="scroll"><mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:math>
</inline-formula>
is defined in body-fixed frame ‘<italic>b</italic>
’, if <italic>g</italic>
∈ <italic>SE</italic>
(3) represents the right coordinate transformation from frame ‘<italic>b</italic>
’ to frame ‘<italic>a</italic>
’, then the compliance matrix <inline-formula><mml:math id="M38" name="1475-925X-13-51-i38" overflow="scroll"><mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:msubsup>
</mml:math>
</inline-formula>
in the new coordinate frame ‘<italic>a</italic>
’ is given by</p>
<p><disp-formula id="bmcM18"><label>(18)</label>
<mml:math id="M39" name="1475-925X-13-51-i39" overflow="scroll"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:msup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mrow><mml:mo>‒</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:msub>
<mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msubsup><mml:mi mathvariant="italic">d</mml:mi>
<mml:msup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mrow><mml:mo>‒</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>∗</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>A customized virtual fixture for complicated surgical tasks can be treated as the combination of one or more primitives [<xref ref-type="bibr" rid="B27">27</xref>
]. In Table <xref ref-type="table" rid="T1">1</xref>
, we lists the preferred motion screws for four static primitive tasks. The featured screw system could be redundant, twist matrices intersection is a method to reduce the redundancy of multiple allowable screw sets [<xref ref-type="bibr" rid="B28">28</xref>
,<xref ref-type="bibr" rid="B29">29</xref>
].</p>
<table-wrap position="float" id="T1"><label>Table 1</label>
<caption><p>Four primitive tasks and the corresponding preferred motion screw</p>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="left"></col>
<col align="center"></col>
</colgroup>
<thead valign="top"><tr><th align="left"><bold>Primitive tasks</bold>
</th>
<th align="center"><bold>Allowable motion screw set</bold>
</th>
</tr>
</thead>
<tbody valign="top"><tr><td align="left" valign="bottom">Fixed configuration<hr></hr>
</td>
<td align="center" valign="bottom"><italic>g</italic>
<sub><italic>d</italic>
</sub>
∊ <italic>SE</italic>
(3), <italic>S</italic>
= log (<italic>g</italic>
<sub><italic>d</italic>
</sub>
<sup>−1</sup>
<italic>g</italic>
)<hr></hr>
</td>
</tr>
<tr><td align="left" valign="bottom">Trajectory tracking <italic>g</italic>
<sub><italic>d</italic>
</sub>
∊ <italic>SE</italic>
(3)<hr></hr>
</td>
<td align="center" valign="bottom"><disp-formula><mml:math id="M40" name="1475-925X-13-51-i40" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">S</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msubsup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">S</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<hr></hr>
</td>
</tr>
<tr><td align="left" valign="bottom">Rotate around a line<hr></hr>
</td>
<td align="center" valign="bottom"><italic>S</italic>
= (<italic>s</italic>
,<italic>r</italic>
× <italic>s</italic>
) <bold><italic>s</italic>
</bold>
: rotation axis, <bold><italic>r</italic>
</bold>
: arbitrary point on <bold><italic>s</italic>
</bold>
<hr></hr>
</td>
</tr>
<tr><td align="left">Move on plane</td>
<td align="center"><italic>S</italic>
<sub>1</sub>
= (<italic>0</italic>
,<italic>v</italic>
<sub>1</sub>
),<italic>S</italic>
<sub>2</sub>
= (<italic>0</italic>
,<italic>v</italic>
<sub>2</sub>
),<italic>S</italic>
<sub>3</sub>
= (<italic>s</italic>
,<italic>r</italic>
× <italic>s</italic>
) span{<italic>v</italic>
<sub>1</sub>
,<italic>v</italic>
<sub>2</sub>
}: continent plane, <bold><italic>s</italic>
</bold>
: norm direction</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec><title>Dynamic virtual fixture for admittance-type device</title>
<p>Considering that the end-effector is of admittance type, which can be modeled as non-backdrivable kinematic system, and all joints are equipped with velocity-source actuators. The VF on admittance type device acts as anisotropic compliant wall, the end-effector complies with the manual force along preferred the directions. Bettini and Marayong [<xref ref-type="bibr" rid="B5">5</xref>
,<xref ref-type="bibr" rid="B7">7</xref>
] combined the deviation error into the allowable motion subspace and redefined a new VF that makes it possible to reduce the deviations manually. However, it has been shown that manual compensation does not necessarily compensate for all deviations, especially when the VF is defined for translation and the deviation error is of orientation. Castillo-Cruces et al. [<xref ref-type="bibr" rid="B14">14</xref>
] added linear error feedback term into the admittance controller to compensate rotation and translation deviations separately and autonomously along the non-preferred directions.</p>
<p>However, the first-order admittance controller with manual or autonomous error compensation is inadequate to adapt to dynamic environment. This section extends these VFs with dynamic tracking into a deforming environment on <italic>SE</italic>
(3). The admittance-type robot can be modelled as a left invariant first-order fully actuated systems on <italic>SE(3),</italic>
and satisfies the quasi-equilibrium condition <inline-formula><mml:math id="M41" name="1475-925X-13-51-i41" overflow="scroll"><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>
.</p>
<p><disp-formula id="bmcM19"><label>(19)</label>
<mml:math id="M42" name="1475-925X-13-51-i42" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:msup><mml:mi mathvariant="bold">V</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msup><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="italic">se</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>+</mml:mo>
<mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi mathvariant="italic">DVF</mml:mi>
<mml:mi mathvariant="italic">Ad</mml:mi>
</mml:msubsup>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>The VF is defined as task-dependent and time-varying compliance matrix <inline-formula><mml:math id="M43" name="1475-925X-13-51-i43" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
, <inline-formula><mml:math id="M44" name="1475-925X-13-51-i44" overflow="scroll"><mml:msubsup><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:math>
</inline-formula>
, velocity <bold>V</bold>
<sup><italic>b</italic>
</sup>
, and manual force <inline-formula><mml:math id="M45" name="1475-925X-13-51-i45" overflow="scroll"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="fraktur">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
<mml:mo>*</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
acting on the end-effector are represented in body-fixed frame. Admittance gain <italic>K</italic>
<sub><italic>c</italic>
</sub>
=<italic>diag</italic>
(<italic>c</italic>
<sub><italic>r</italic>
</sub>
<italic>I</italic>
<sub>3×3</sub>
, <italic>c</italic>
<sub><italic>p</italic>
</sub>
<italic>I</italic>
<sub>3×3</sub>
) controls the compliance of the robot to user input, choosing <italic>c</italic>
<sub><italic>r</italic>
</sub>
, <italic>c</italic>
<sub><italic>p</italic>
</sub>
low imposes additional resistance along the preferred directions, high compliance could result in fast robot motion. Velocity of end-effector is controlled jointly by the admittance controller and dynamic tracking controller <italic>U</italic>
<sub><italic>DVF</italic>
</sub>
<sup><italic>Ad</italic>
</sup>
to make the robot state <italic>g</italic>
track the reference <italic>g</italic>
<sub><italic>d</italic>
</sub>
, which is described by <italic>ġ</italic>
<sub><italic>d</italic>
</sub>
= <bold>V</bold>
<sub><italic>d</italic>
</sub>
<italic>g</italic>
<sub><italic>d</italic>
</sub>
. The deviation of robot state <italic>g</italic>
relative to the reference <italic>g</italic>
<sub><italic>d</italic>
</sub>
with respect to the reference frame is defined as <italic>e</italic>
= <italic>g</italic>
<sub><italic>d</italic>
</sub>
<sup>−1</sup>
<italic>g</italic>
, the matrix form is given by</p>
<p><disp-formula id="bmcM20"><label>(20)</label>
<mml:math id="M46" name="1475-925X-13-51-i46" overflow="scroll"><mml:mrow><mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">R</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center"><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>It is also called natural error and independent of the choice of inertia frame [<xref ref-type="bibr" rid="B17">17</xref>
]. Another equivalent definition is <italic>e</italic>
<sup><italic>b</italic>
</sup>
= <italic>g</italic>
<sup>−1</sup>
<italic>g</italic>
<sub><italic>d</italic>
</sub>
, the deviation is seen in body frame. These two error definitions and their logarithmic coordinate are mutually invertible.</p>
<p><disp-formula id="bmcM21"><label>(21)</label>
<mml:math id="M47" name="1475-925X-13-51-i47" overflow="scroll"><mml:mrow><mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">e</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:msup><mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Define the configuration error <italic>ė</italic>
= <italic>e</italic>
<bold>V</bold>
<sub><italic>e</italic>
</sub>
as the first case, the error velocity with respect to inertia frame is given by</p>
<p><disp-formula id="bmcM22"><label>(22)</label>
<mml:math id="M48" name="1475-925X-13-51-i48" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:msup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msup><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>We design the dynamic tracking controller with logarithmic error feedback in matrix form</p>
<p><disp-formula id="bmcM23"><label>(23)</label>
<mml:math id="M49" name="1475-925X-13-51-i49" overflow="scroll"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi mathvariant="italic">DVF</mml:mi>
<mml:mi mathvariant="italic">Ad</mml:mi>
</mml:msubsup>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:msup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">e</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>where <italic>K</italic>
<sub><italic>p</italic>
</sub>
= <italic>k</italic>
<sub><italic>p</italic>
</sub>
<italic>D</italic>
<sub><italic>e</italic>
</sub>
, <italic>D</italic>
<sub><italic>e</italic>
</sub>
=<italic>diag</italic>
(<italic>k</italic>
<sub><italic>r</italic>
</sub>
<italic>I</italic>
<sub>3×3</sub>
, <italic>I</italic>
<sub>3×3</sub>
), <italic>k</italic>
<sub><italic>p</italic>
</sub>
,<italic>k</italic>
<sub><italic>r</italic>
</sub>
> 0, the linear coefficient <italic>k</italic>
<sub><italic>p</italic>
</sub>
controls the speed of error convergence, maximum choice of <italic>k</italic>
<sub><italic>p</italic>
</sub>
is restricted by the actuation power of motors, the rotation-translation (R-T) ratio <italic>k</italic>
<sub><italic>r</italic>
</sub>
controls the synchronous the rotation and translation. We take this control law into the robot kinematics and cancel out manual effect, the error control function of the close loop system satisfies</p>
<p><disp-formula id="bmcM24"><label>(24)</label>
<mml:math id="M50" name="1475-925X-13-51-i50" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">e</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The control law exponentially stabilizes the configuration error <italic>e</italic>
at identity <bold>I</bold>
from any initial configuration. Let <italic>X</italic>
= log (<italic>e</italic>
(<italic>t</italic>
)) = (<italic>ψ</italic>
, <italic>q</italic>
) ∊ <italic>se</italic>
(3) be the logarithmic coordinate of <italic>e</italic>
(<italic>t</italic>
), we can relate the column vector form <italic>Ẋ</italic>
and <italic>V</italic>
<sub><italic>e</italic>
</sub>
through</p>
<p><disp-formula id="bmcM25"><label>(25)</label>
<mml:math id="M51" name="1475-925X-13-51-i51" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true"><mml:munderover><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>∞</mml:mo>
</mml:munderover>
<mml:mrow><mml:mfrac><mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:msup>
<mml:msub><mml:mi mathvariant="normal">B</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow><mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mstyle>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:msubsup><mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:msubsup>
<mml:mfenced open="(" close=")"><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:msub>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="normal">B</mml:mi>
<mml:mi mathvariant="normal">X</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>where the {B<sub>n</sub>
} are Bernoulli numbers, the symbols B<sub>x</sub>
denote the Lie bracket series [<xref ref-type="bibr" rid="B17">17</xref>
]. We have</p>
<p>B<sub>X</sub>
<bold><italic>X</italic>
</bold>
= <bold><italic>X</italic>
</bold>
and <inline-formula><mml:math id="M52" name="1475-925X-13-51-i52" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">B</mml:mi>
<mml:mi mathvariant="normal">X</mml:mi>
</mml:msub>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="italic">A</mml:mi>
<mml:msup><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
<p>so</p>
<p><disp-formula><mml:math id="M53" name="1475-925X-13-51-i53" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="normal">B</mml:mi>
<mml:mi mathvariant="normal">X</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>+</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>−</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mn mathvariant="bold-italic">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="italic">A</mml:mi>
<mml:msup><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Separating the rotational part and the translational parts</p>
<p><disp-formula id="bmcM26"><label>(26)</label>
<mml:math id="M54" name="1475-925X-13-51-i54" overflow="scroll"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p><disp-formula id="bmcM27"><label>(27)</label>
<mml:math id="M55" name="1475-925X-13-51-i55" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="normal">R</mml:mi>
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="normal">R</mml:mi>
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msup><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>the effect of rotation on the translation is featured by operator ℛ<sub><bold><italic>ψ</italic>
</bold>
</sub>
, which is complex and highly dependent on the rotation axis <italic>ψ</italic>
. We can adjust the interconnection between rotation and translation by choosing R-T ratio <italic>k</italic>
<sub><italic>r</italic>
</sub>
. The rotation part is exponentially stabilized for all initial rotation matrix <bold>R</bold>
(0) such tr(<bold>R</bold>
) ≠ −1. Regarding the translational part, consider the candidate Lyapunov function <inline-formula><mml:math id="M56" name="1475-925X-13-51-i56" overflow="scroll"><mml:mrow><mml:mi mathvariant="italic">W</mml:mi>
<mml:mo mathvariant="bold-italic">=</mml:mo>
<mml:mfrac><mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
. Its time derivative satisfies</p>
<p><disp-formula><mml:math id="M57" name="1475-925X-13-51-i57" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mfrac><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">dt</mml:mi>
</mml:mfrac>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfenced open="〈" close="〉"><mml:mrow><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>+</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msup><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mspace width="1.75em"></mml:mspace>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mfenced open="∥ " close="∥ "><mml:msub><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mrow><mml:mo stretchy="true">|</mml:mo>
<mml:mo stretchy="true">|</mml:mo>
</mml:mrow>
</mml:msub>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mfenced open="(" close=")"><mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
</mml:mfenced>
<mml:msup><mml:mfenced open="∥ " close="∥ "><mml:msub><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>⟂</mml:mo>
</mml:msub>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mspace width="1.75em"></mml:mspace>
<mml:mo><</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="0.25em"></mml:mspace>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>where <italic>α</italic>
(<italic>y</italic>
) ≜ (<italic>y</italic>
/2) cot (<italic>y</italic>
/2), 0 < ‖<italic>ψ</italic>
‖ < 1, <italic>q</italic>
= <italic>q</italic>
<sub>||</sub>
+ <italic>q</italic>
<sub>⟂</sub>
is the orthogonal decomposition of <bold><italic>q</italic>
</bold>
along span {<italic>ψ</italic>
} and {<italic>ψ</italic>
}<sub>⟂</sub>
. Thus global exponential stability is proven also for translational part.</p>
<p>Any deviation of the end-effector from the reference is compensated autonomously. This error compensation is regarded as a target tracing acting on the virtual fixture [<xref ref-type="bibr" rid="B14">14</xref>
]. The discrete realization of the VF controller usually introduces time delay and dynamic tracking errors, forecast of the reference velocity <bold>V</bold>
<sub><italic>d</italic>
</sub>
helps improve the tracking precision. As seen in Figure <xref ref-type="fig" rid="F1">1</xref>
, the instantaneous reference and allowable motion set are defined from multiple geometric constraints; manual operation is regulated by the compliance controller, which is synthesized by the allowable motion set. The operator has complete control along the preferred directions, fast motion along the non-preferred direction and deviations relative to the reference are compensated autonomously. The dynamic tracking term in the DVF controller helps the surgeon to deal with operations in deforming environment.</p>
<fig id="F1" position="float"><label>Figure 1</label>
<caption><p>Control loop of DVF for admittance-type device.</p>
</caption>
<graphic xlink:href="1475-925X-13-51-1"></graphic>
</fig>
</sec>
</sec>
<sec><title>Experiments, results and discussion</title>
<p>The proposed DVF is designed for fully actuated robotic system with force/torque sensor. However, both force/torque sensor and admittance controlled device are not available. We designed a virtual proxy based hardware-in-the-loop simulation test bed to evaluate the proposed DVF. The PHANToM Omni device, from SensAble Technologies, is equipped with 3 degree-of-freedom (DOF) actuations and 6 DOF position measurements. It serves as a force source rather than a haptic device to drive a virtual admittance-type proxy alternatively. The device is actuated passively by human force that applied on the end-effector, while there is no haptic feedback to the operator.</p>
<p>The kinematics equation of the admittance-type proxy refers to</p>
<p><disp-formula id="bmcM28"><label>(28)</label>
<mml:math id="M58" name="1475-925X-13-51-i58" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:msub>
<mml:msubsup><mml:mi mathvariant="bold">V</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msubsup><mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="normal">VF</mml:mi>
</mml:msub>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi mathvariant="italic">DVF</mml:mi>
<mml:mi mathvariant="italic">Ad</mml:mi>
</mml:msubsup>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>the proxy is controlled by the DVF controller in Eq. (19). The proxy complies with the actuation force <italic>F</italic>
<sup><italic>b</italic>
</sup>
acting on the proxy with respect to body-fixed frame, which is estimated from the robot dynamics of the PHANToM device.</p>
<p><disp-formula id="bmcM29"><label>(29)</label>
<mml:math id="M59" name="1475-925X-13-51-i59" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mi mathvariant="bold">J</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="bold">Θ</mml:mi>
</mml:mfenced>
<mml:msup><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo stretchy="true">¨</mml:mo>
</mml:mover>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">N</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
<mml:mo stretchy="true">)</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msup><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:msubsup><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>*</mml:mo>
</mml:msubsup>
<mml:msup><mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>where <bold>M</bold>
(<bold><italic>Θ</italic>
</bold>
) is the inertia matrix, <inline-formula><mml:math id="M60" name="1475-925X-13-51-i60" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">N</mml:mi>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">Θ</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true"><mml:mi mathvariant="bold-italic">Θ</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
is the Coriolis matrix, the gravity term <bold>C</bold>
(<bold><italic>Θ</italic>
</bold>
) is eliminated from the actual manual force, kinematics and dynamics details of the Phantom Omni device can be found in [<xref ref-type="bibr" rid="B30">30</xref>
]. <italic>F</italic>
<sup><italic>s</italic>
</sup>
represents the manual force with respect to the inertia frame, <bold>J</bold>
(<bold><italic>Θ</italic>
</bold>
) is manipulator Jacobian matrix, <italic>U</italic>
<sub><italic>DVF</italic>
</sub>
<sup><italic>Ad</italic>
</sup>
refers to the dynamic tracking controller in Eq. (23).</p>
<p>The real haptic device and the virtual admittance-type proxy are integrated in the MATLAB/Simulink environment by the PHANSIM TOOLKIT. The overview of the hardware-in-the-loop test bed for DVF implementation on admittance-type proxy is illustrated in Figure <xref ref-type="fig" rid="F2">2</xref>
. The control loop of the haptic device runs at 1 kHz, we use the PHANToM clock to down sample the joint measurements to 200Hz. The joint angles <bold>Θ</bold>
of the PHANToM Omni are processed by a low-pass filter and a differentiator successively to estimate the joint velocity <inline-formula><mml:math id="M61" name="1475-925X-13-51-i61" overflow="scroll"><mml:mover accent="true"><mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo stretchy="true">˙</mml:mo>
</mml:mover>
</mml:math>
</inline-formula>
and acceleration <inline-formula><mml:math id="M62" name="1475-925X-13-51-i62" overflow="scroll"><mml:mover accent="true"><mml:mi mathvariant="bold">Θ</mml:mi>
<mml:mo stretchy="true">¨</mml:mo>
</mml:mover>
</mml:math>
</inline-formula>
, manual force <italic>F</italic>
<sup><italic>b</italic>
</sup>
are estimated by the Phantom robot dynamics in Eq. (29). The proxy state <italic>g</italic>
<sub><italic>P</italic>
</sub>
is updated by proxy body velocity <italic>V</italic>
<sub><italic>P</italic>
</sub>
<sup><italic>b</italic>
</sup>
discretely, which is jointly controlled by admittance controller and dynamic error compensator Eq. (28). The proxy motion is constrained on a deforming sphere to simulate the beating heart surgery environment. We use an external clock to update the reference state <italic>g</italic>
<sub><italic>d</italic>
</sub>
, proxy state and the deforming radius. For fully apprehension, a 3D virtual environment is built up and visualized using the MATLAB Virtual Reality Toolbox. Both the proxy and the reference are modelled as rigid pens with unit isotropic inertia matrix.</p>
<fig id="F2" position="float"><label>Figure 2</label>
<caption><p>Hardware-in-the-loop test bed for DVF simulation on admittance-type proxy.</p>
</caption>
<graphic xlink:href="1475-925X-13-51-2"></graphic>
</fig>
<p>In the simulation experiment, we simplify the admittance controller robot as a virtual proxy, manual force is estimated indirectly through robot dynamics rather than a real force sensor. The proxy workspace is not restricted compared to a real robot, measurement errors of joint angles are not involved, manual force is also inaccurate due to inertia parameters estimation. We will evaluate the proposed algorithm on a real admittance controlled device when all instruments are ready in the future.</p>
<p>Numerous surgical tasks require the surgeon to follow a predetermined path on a deformable anatomy tissue surface while maintaining the shaft orientation within a safe range, such as minimally invasive beating heart surgery, the area of interest deforms with heartbeat and respiratory motion, instrument motion should be regulated to satisfy the varying geometric constraints. We simplified this task as a non-holonomic constraint problem by moving a tool on a deforming ball, while the tool shaft along the radial direction, the axial rotation is not constrained. The radius r of the ball varies periodically, <italic>r</italic>
= <italic>r</italic>
<sub>0</sub>
+ <italic>Δr</italic>
sin <italic>ωt</italic>
, <italic>r</italic>
<sub>0</sub>
= 15 mm, <italic>Δr</italic>
= 5 mm. The bandwidth of the position measurements is 26 Hz, which refers to the upper limit of tissue motion resulted from physiologic movements, such as heartbeat and respiration [<xref ref-type="bibr" rid="B16">16</xref>
].</p>
<p>The instantaneous reference <italic>g</italic>
<sub><italic>d</italic>
</sub>
refers to the one with minimum norm in Eq. (14). The allowable motions on the deforming sphere refer to translation along the tangent directions and rotation around the radius direction, the corresponded allowable motion set S is defined in the inertia frame,</p>
<p><disp-formula><mml:math id="M63" name="1475-925X-13-51-i63" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="bold-italic">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="bold-italic">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="{" close="}"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>where <italic>r</italic>
<sub><italic>x</italic>
</sub>
, <italic>r</italic>
<sub><italic>y</italic>
</sub>
, <italic>r</italic>
<sub><italic>z</italic>
</sub>
are unit axis vectors of <italic>g</italic>
<sub><italic>d</italic>
</sub>
, <italic>p</italic>
<sub><italic>d</italic>
</sub>
is the translation part. The compliance matrix <bold><italic>C</italic>
</bold>
<sub>VF</sub>
is synthesized by the allowable motion screw set S. The workspace of the Phantom Omni device is 1:1 mapped into the proxy workspace, the corresponding coordinate axes are parallel and without rotational transformation. The initial state of the proxy tool is set to be the inkwell-calibrated configuration. The translation and orientation errors of the tool with respect to the reference are defined as</p>
<p><disp-formula id="bmcM30"><label>(30)</label>
<mml:math id="M64" name="1475-925X-13-51-i64" overflow="scroll"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup><mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mrow><mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mo>,</mml:mo>
<mml:msubsup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msubsup>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced open="∥ " close="∥ "><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mfenced>
<mml:mspace width="0.25em"></mml:mspace>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>Rotational error <italic>e</italic>
<sub><italic>r</italic>
</sub>
describes the angle of the rotation about the equivalent axis <bold>ψ</bold>
, translational error <italic>e</italic>
<sub><italic>p</italic>
</sub>
refers to the distance between tool tip <bold><italic>p</italic>
</bold>
and reference <italic>p</italic>
<sub><italic>d</italic>
</sub>
. We use tracking error and following index to evaluate the performance of the proposed dynamic DVF in deforming environment. Translational tracking error (TTE) and rotational tracking error (RTE) refer to the root-mean-square of translation and orientation errors respectively during the human-robot cooperation. The following index represents how quick and how well the proxy can follow manual operation, or how much manual input can be transferred to the task related commands. More specifically, the following index is defined as the cross-correlation coefficient of manual force <italic>F</italic>
<sup><italic>b</italic>
</sup>
= (<italic>m</italic>
<sup><italic>b</italic>
</sup>
, <italic>f</italic>
<sup><italic>b</italic>
</sup>
) and corresponded velocity acted on the proxy <italic>V</italic>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
= (<italic>ω</italic>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
, <italic>v</italic>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
), which consists of the admittance controller output and the logarithmic error feedback in Eq. (22). The rotational following index (RFI) and translational following index (TFI) for admittance-type device are defined as</p>
<p><disp-formula id="bmcM31"><label>(31)</label>
<mml:math id="M65" name="1475-925X-13-51-i65" overflow="scroll"><mml:mrow><mml:mi mathvariant="italic">RFI</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>corr</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msup><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mrow><mml:mfrac><mml:mrow><mml:mstyle displaystyle="true"><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mrow><mml:msqrt><mml:mrow><mml:mstyle displaystyle="true"><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
<mml:mrow><mml:mstyle displaystyle="true"><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p><disp-formula id="bmcM32"><label>(32)</label>
<mml:math id="M66" name="1475-925X-13-51-i66" overflow="scroll"><mml:mrow><mml:mi mathvariant="italic">TFI</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>corr</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mrow><mml:mfrac><mml:mrow><mml:mstyle displaystyle="true"><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mrow><mml:msqrt><mml:mrow><mml:mstyle displaystyle="true"><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
<mml:mrow><mml:mstyle displaystyle="true"><mml:mo mathsize="big">∑</mml:mo>
<mml:mrow><mml:msup><mml:mfenced open="∥ " close="∥ "><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Three experiments were conducted to validate the efficiency of proposed DVF for admittance-type proxy.</p>
<sec><title>Proportional feedback control experiment</title>
<p>In this experiment, we compare the performance of three control laws to stabilizes the robot state <italic>g</italic>
at fixed state <italic>g</italic>
<sub><italic>d</italic>
</sub>
from any initial state <italic>g</italic>
(0) = (<italic>R</italic>
(0), <italic>p</italic>
(0)). The deviation of the end-effector state relative to the reference is defined as <italic>e</italic>
= <italic>g</italic>
<sub><italic>d</italic>
</sub>
<sup>−1</sup>
<italic>g</italic>
, the logarithmic coordinates refers to <inline-formula><mml:math id="M67" name="1475-925X-13-51-i67" overflow="scroll"><mml:mrow><mml:mo>log</mml:mo>
<mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">e</mml:mi>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="normal">se</mml:mi>
<mml:mfenced open="(" close=")"><mml:mn>3</mml:mn>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
.</p>
<p>1). Separate feedback</p>
<p><disp-formula><mml:math id="M68" name="1475-925X-13-51-i68" overflow="scroll"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow><mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow><mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>2). Double-geodesic feedback</p>
<p><disp-formula><mml:math id="M69" name="1475-925X-13-51-i69" overflow="scroll"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow><mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow><mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:msup><mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:msup>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub><mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>3). Logarithmic feedback</p>
<p><disp-formula><mml:math id="M70" name="1475-925X-13-51-i70" overflow="scroll"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msup><mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="center"><mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow><mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="center"><mml:mtd columnalign="center"><mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center"><mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow><mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mfenced open="[" close="]"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">ψ</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Law-1 takes the error definition and feedback control from Castillo-Cruces’s work [<xref ref-type="bibr" rid="B14">14</xref>
], which treats translation and rotation separately. Law-2 applies proportional feedback actions along geodesic directions for both rotation and translation in <italic>SO</italic>
(3) and <italic>R</italic>
<sup>3</sup>
respectively, law-3 is the logarithmic feedback control. Law-1 is dependent on the choice of inertia frame, both law-2 and law-3 are independent of inertia frame choice. To compare the proportional feedback laws presented above, the same planar motion <italic>SE</italic>
(2), initial state <italic>g</italic>
<sub>0</sub>
, destination state <italic>g</italic>
<sub><italic>d</italic>
</sub>
and proportional parameters <italic>k</italic>
<sub><italic>w</italic>
</sub>
, <italic>k</italic>
<sub><italic>v</italic>
</sub>
are set for the three control laws in our experiment.</p>
<p>As seen in Table <xref ref-type="table" rid="T2">2</xref>
, there are not obvious difference in the residual errors of the three laws, expect for their behaviors during the convergence period. All three control laws converge at the same rate in rotational part, as seen in Figure <xref ref-type="fig" rid="F3">3</xref>
, law-1 shows more curved behaviour and takes the longest path to approach the fixed state, law-2 follows the shortest path. The performance of Law-2 deteriorates for 2<sup>nd</sup>
order robotic systems, only the logarithmic feedback control could locally exponentially stabilized the robot state at <bold>I</bold>
, more detail comparison can be found in [<xref ref-type="bibr" rid="B17">17</xref>
]. We take the logarithmic feedback law in our DVF controller design, with which the robot performs steadily stable, both the rotational and translational part converged uniformly to zero, no oscillations appeared.</p>
<table-wrap position="float" id="T2"><label>Table 2</label>
<caption><p>Residual errors of three proportional feedback control laws</p>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="left"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
</colgroup>
<thead valign="top"><tr><th align="left"> </th>
<th align="center"><bold>Law-1</bold>
</th>
<th align="center"><bold>Law-2</bold>
</th>
<th align="center"><bold>Law-3</bold>
</th>
</tr>
</thead>
<tbody valign="top"><tr><td align="left" valign="bottom">TTE (mm)<hr></hr>
</td>
<td align="center" valign="bottom">0.0046<hr></hr>
</td>
<td align="center" valign="bottom">0.0050<hr></hr>
</td>
<td align="center" valign="bottom">0.012<hr></hr>
</td>
</tr>
<tr><td align="left">RTE (rad)</td>
<td align="center">2.7108e-020</td>
<td align="center">1.7837e-017</td>
<td align="center">1.2123e-007</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F3" position="float"><label>Figure 3</label>
<caption><p><bold>Three proportional actions on SE(2) for 1st kinematics system with </bold>
<bold><italic>k</italic>
</bold>
<sub><bold><italic>w</italic>
</bold>
</sub>
<bold>=</bold>
<bold>2</bold>
<bold>, </bold>
<bold><italic>k</italic>
</bold>
<sub><bold><italic>v</italic>
</bold>
</sub>
<bold>=</bold>
<bold>1, (a) translation error, (b) convergence trajectories, each point is depicted as a frame.</bold>
</p>
</caption>
<graphic xlink:href="1475-925X-13-51-3"></graphic>
</fig>
<p>We also analyzed the influence of proportional parameter <italic>k</italic>
<sub><italic>p</italic>
</sub>
of the logarithmic error feedback controller. The proxy is asked to approximate the nearest reference on the sphere autonomously and manual excitation is still. The initial state of the proxy is set to be the inkwell-calibrated position. As shown in Figure <xref ref-type="fig" rid="F4">4</xref>
, <italic>k</italic>
<sub><italic>p</italic>
</sub>
controls the speed of error convergence, maximum choice of <italic>k</italic>
<sub><italic>p</italic>
</sub>
is restricted by the actuation power of motors</p>
<fig id="F4" position="float"><label>Figure 4</label>
<caption><p><bold>Influence of </bold>
<bold><italic>k</italic>
</bold>
<sub><bold><italic>p </italic>
</bold>
</sub>
<bold>on error convergence with deforming frequency 2 rad/s, R/T ratio =1, (a) translational error, (b) rotational error.</bold>
</p>
</caption>
<graphic xlink:href="1475-925X-13-51-4"></graphic>
</fig>
</sec>
<sec><title>Dynamic tracking experiment</title>
<p>To discusses the dynamic properties, the operator dragged the gimbal pen of haptic device back and forth along x-axis in the inertia frame, the tangent components of manual force drove the proxy move along the circle of latitude on the deforming sphere with frequency varies from 0 to 40 rad/s, R-T ratio =1, <italic>c</italic>
<sub><italic>r</italic>
</sub>
=0.1 rad/s, <italic>c</italic>
<sub><italic>p</italic>
</sub>
=100 mm/s. As shown in Figure <xref ref-type="fig" rid="F5">5</xref>
, the TTE increases linearly with deforming frequency growth, the impact of <italic>k</italic>
<sub><italic>p</italic>
</sub>
on the dynamic error is not clear, but the impact of dynamic compensation (DC) is obvious. The RTE is suppressed by linear logarithm error compensation, and is independent of deforming frequency. This is due to the fact that orientation of reference remained constant while translation along the radial direction, translational deviation along the same direction is compensated autonomously; the proxy is actuated manually along tangent directions, the referred orientation varied accordingly. The discrete realization of the DVF controller usually introduces time delay and dynamic tracking error, forecast of the reference velocity <bold>V</bold>
<sub><italic>d</italic>
</sub>
helps improve the tracking precision.</p>
<fig id="F5" position="float"><label>Figure 5</label>
<caption><p><bold>Results of dynamic tracking experiment with difference </bold>
<bold><italic>k</italic>
</bold>
<sub><bold><italic>p </italic>
</bold>
</sub>
<bold>settings and different tracking strategies (without dynamic compensation (DC), with dynamic compensation, with dynamic forecasting compensation (DFC)), (a) translational tracking error; (b) rotational tracking error.</bold>
</p>
</caption>
<graphic xlink:href="1475-925X-13-51-5"></graphic>
</fig>
<p>As seen in Figure <xref ref-type="fig" rid="F5">5</xref>
, the TTE of the VF with DC is smaller than the VF without DC; furthermore, the VF with dynamic forecasting compensation (DFT) performs much better than the VF with DT. The DVF can improve the dynamic properties in low-frequency range, its dynamic performance deteriorated slowly with deforming frequency growth, this is due to the first-order kinematics property of the admittance-type device. R-T ratio can affect the synchronous of rotation and translation as well as the tracking error convergence speed because of interconnection between rotation and translation on <italic>SE</italic>
(3). We recorded the TTE and settling time with deforming frequency 40 rad/s, <italic>k</italic>
<sub><italic>p</italic>
</sub>
=20, admittance gains <italic>c</italic>
<sub><italic>r</italic>
</sub>
=0.1 rad/s, <italic>c</italic>
<sub><italic>p</italic>
</sub>
=100 mm/s, R-T ratio was set as 4,3,2,1,0.5 respectively, the results are listed in Table <xref ref-type="table" rid="T3">3</xref>
. Appropriate settings of R-T ratio help speed up the error convergence and reduce error level.</p>
<table-wrap position="float" id="T3"><label>Table 3</label>
<caption><p>Impact of R/T ratio on dynamic tracking error</p>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
</colgroup>
<thead valign="top"><tr><th align="center"><bold>R-T ratio</bold>
</th>
<th align="center"><bold>4</bold>
</th>
<th align="center"><bold>3</bold>
</th>
<th align="center"><bold>2</bold>
</th>
<th align="center"><bold>1</bold>
</th>
<th align="center"><bold>0.5</bold>
</th>
</tr>
</thead>
<tbody valign="top"><tr><td align="center" valign="bottom">Tracking error(mm)<hr></hr>
</td>
<td align="center" valign="bottom">0.5347<hr></hr>
</td>
<td align="center" valign="bottom">0.5996<hr></hr>
</td>
<td align="center" valign="bottom">0.6487<hr></hr>
</td>
<td align="center" valign="bottom">0.6610<hr></hr>
</td>
<td align="center" valign="bottom">0.6569<hr></hr>
</td>
</tr>
<tr><td align="center">Settling time(sec)</td>
<td align="center">0.1</td>
<td align="center">0.2</td>
<td align="center">0.35</td>
<td align="center">0.6</td>
<td align="center">1.3</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec><title>Human-robot collaboration experiment</title>
<p>This experiment is designed to analyze human factors on human-robot collaboration with assistance of the DVF controller. To analyze the influence of manual force on the tracking error, three people took part in this experiment. The operator applied time-varied force along x-axis with respect to inertia frame, manual force and tracking error are depicted in Figure <xref ref-type="fig" rid="F6">6</xref>
(a-b); the operator pivoted the gimbal pen around arbitrary axis, the tool shaft orientation deviated from the reference accordingly, manual torque and the tracking error are plotted in Figure (c-d).</p>
<fig id="F6" position="float"><label>Figure 6</label>
<caption><p><bold>The tracking error of multiple manual operations with </bold>
<bold><italic>k</italic>
</bold>
<sub><bold><italic>p</italic>
</bold>
</sub>
<bold>=</bold>
<bold>2, </bold>
<bold><italic>ω</italic>
</bold>
<bold>= 5 rad/s, R-T ratio = 1, </bold>
<bold><italic>c</italic>
</bold>
<sub><bold><italic>r</italic>
</bold>
</sub>
<bold>= 0.1 rad/s, </bold>
<bold><italic>c</italic>
</bold>
<sub><bold><italic>p</italic>
</bold>
</sub>
<bold>= 100 mm/s; (a) manual force when moving along axis-x; (b) resulted error of operation (a), (c) manual torque when pivoting around arbitrary axis; (d) resulted error of operation (c).</bold>
</p>
</caption>
<graphic xlink:href="1475-925X-13-51-6"></graphic>
</fig>
<p>As seen in Figure <xref ref-type="fig" rid="F6">6</xref>
, changes in the magnitude and direction of manual force had influence on rotational and translational errors. The operator dragged the tool along 8-shaped curve with three intensities of manual force{low, medium, high}, <italic>k</italic>
<sub><italic>p</italic>
</sub>
=10, deforming frequency 5 rad/s, the following index RFI and TFI, dynamic tracking error TTE and RTE are recorded in Table <xref ref-type="table" rid="T3">3</xref>
.</p>
<p>As seen in Table <xref ref-type="table" rid="T3">3</xref>
, the dynamic tracking error is linearly related to manual force intensity and R-T ratio, the compliances <italic>c</italic>
<sub><italic>r</italic>
</sub>
, <italic>c</italic>
<sub><italic>p</italic>
</sub>
play the same role as they scaled the manual force intensity that acted on the proxy. Faster manual operation resulted in larger dynamic tracking error. The proportional gain of the rotational part is multiplied by R-T ratio. The VF controller dominates the rotation over manual operation when large R-T ratio is set, the angular velocity resulted from human input is less than that from the logarithmic error feedback controller, and then the rotational following index decreases accordingly. A fair distribution on rotation control between the autonomous controller and human operation is achieved when the R-T ratio is low; the rotational following index has little change. The translational following index is negatively related to the R-T ratio, this is because the impact of rotation part on the translation is weakened when small R-T ratio is set. As seen from Tables <xref ref-type="table" rid="T3">3</xref>
and <xref ref-type="table" rid="T4">4</xref>
, we can also conclude that higher R-T ratio helps suppress the dynamic tracking error, however it could decrease the rotational following index during human-robot cooperation, choosing R-T ratio small can increase the tracking error and the translational following index, the choice of R-T ratio should compromise between user experience and the tracking error. More specifically, the inter-relationship between the components of manual moment-force pair (<bold>m</bold>
<sup><italic>b</italic>
</sup>
, <bold>f</bold>
<sup><italic>b</italic>
</sup>
) and the output velocity (<italic>ω</italic>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
, <italic>v</italic>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
) are featured by the correlation coefficients of <italic>F</italic>
<sup><italic>b</italic>
</sup>
and <bold>V</bold>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
. The operator is asked to drag the tool randomly on the deforming sphere for five minutes with deforming frequency 5 rad/s, <italic>k</italic>
<sub><italic>p</italic>
</sub>
=10. All the data are standardized to eliminate the variable dimension difference. The Pearson product–moment correlation coefficients are calculated for all one-to-one element combinations in <italic>F</italic>
<sup><italic>b</italic>
</sup>
and <bold>V</bold>
<sub><italic>C</italic>
</sub>
<sup><italic>b</italic>
</sup>
with confidence interval 99% [<xref ref-type="bibr" rid="B31">31</xref>
].</p>
<table-wrap position="float" id="T4"><label>Table 4</label>
<caption><p>Results of shape-8 operation with assistance of DVF on admittance proxy</p>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
</colgroup>
<thead valign="top"><tr><th align="center"><bold>Intensity</bold>
</th>
<th align="center"><bold>R-T ratio</bold>
</th>
<th align="center"><bold>RFI</bold>
</th>
<th align="center"><bold>TFI</bold>
</th>
<th align="center"><bold>RTE (rad)</bold>
</th>
<th align="center"><bold>TTE (mm)</bold>
</th>
</tr>
</thead>
<tbody valign="top"><tr><td align="center" valign="bottom">Low<hr></hr>
</td>
<td align="center" valign="bottom">4<hr></hr>
</td>
<td align="center" valign="bottom">0.1296<hr></hr>
</td>
<td align="center" valign="bottom">0.6148<hr></hr>
</td>
<td align="center" valign="bottom">0.0093<hr></hr>
</td>
<td align="center" valign="bottom">0.1046<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Low<hr></hr>
</td>
<td align="center" valign="bottom">2<hr></hr>
</td>
<td align="center" valign="bottom">0.8138<hr></hr>
</td>
<td align="center" valign="bottom">0.8333<hr></hr>
</td>
<td align="center" valign="bottom">0.0260<hr></hr>
</td>
<td align="center" valign="bottom">0.1693<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Low<hr></hr>
</td>
<td align="center" valign="bottom">1<hr></hr>
</td>
<td align="center" valign="bottom">0.6554<hr></hr>
</td>
<td align="center" valign="bottom">0.8647<hr></hr>
</td>
<td align="center" valign="bottom">0.0575<hr></hr>
</td>
<td align="center" valign="bottom">0.2633<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Low<hr></hr>
</td>
<td align="center" valign="bottom">0.5<hr></hr>
</td>
<td align="center" valign="bottom">0.8008<hr></hr>
</td>
<td align="center" valign="bottom">0.9087<hr></hr>
</td>
<td align="center" valign="bottom">0.0856<hr></hr>
</td>
<td align="center" valign="bottom">0.3404<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Medium<hr></hr>
</td>
<td align="center" valign="bottom">4<hr></hr>
</td>
<td align="center" valign="bottom">0.1815<hr></hr>
</td>
<td align="center" valign="bottom">0.7453<hr></hr>
</td>
<td align="center" valign="bottom">0.0180<hr></hr>
</td>
<td align="center" valign="bottom">0.1567<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Medium<hr></hr>
</td>
<td align="center" valign="bottom">2<hr></hr>
</td>
<td align="center" valign="bottom">0.7633<hr></hr>
</td>
<td align="center" valign="bottom">0.9374<hr></hr>
</td>
<td align="center" valign="bottom">0.0452<hr></hr>
</td>
<td align="center" valign="bottom">0.1876<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Medium<hr></hr>
</td>
<td align="center" valign="bottom">1<hr></hr>
</td>
<td align="center" valign="bottom">0.6231<hr></hr>
</td>
<td align="center" valign="bottom">0.8815<hr></hr>
</td>
<td align="center" valign="bottom">0.0712<hr></hr>
</td>
<td align="center" valign="bottom">0.2847<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">Medium<hr></hr>
</td>
<td align="center" valign="bottom">0.5<hr></hr>
</td>
<td align="center" valign="bottom">0.7000<hr></hr>
</td>
<td align="center" valign="bottom">0.9407<hr></hr>
</td>
<td align="center" valign="bottom">0.1226<hr></hr>
</td>
<td align="center" valign="bottom">0.3455<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">High<hr></hr>
</td>
<td align="center" valign="bottom">4<hr></hr>
</td>
<td align="center" valign="bottom">0.1692<hr></hr>
</td>
<td align="center" valign="bottom">0.8519<hr></hr>
</td>
<td align="center" valign="bottom">0.0291<hr></hr>
</td>
<td align="center" valign="bottom">0.1140<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">High<hr></hr>
</td>
<td align="center" valign="bottom">2<hr></hr>
</td>
<td align="center" valign="bottom">0.8190<hr></hr>
</td>
<td align="center" valign="bottom">0.9440<hr></hr>
</td>
<td align="center" valign="bottom">0.0727<hr></hr>
</td>
<td align="center" valign="bottom">0.1832<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">High<hr></hr>
</td>
<td align="center" valign="bottom">1<hr></hr>
</td>
<td align="center" valign="bottom">0.7173<hr></hr>
</td>
<td align="center" valign="bottom">0.7725<hr></hr>
</td>
<td align="center" valign="bottom">0.0812<hr></hr>
</td>
<td align="center" valign="bottom">0.2728<hr></hr>
</td>
</tr>
<tr><td align="center">High</td>
<td align="center">0.5</td>
<td align="center">0.6133</td>
<td align="center">0.8714</td>
<td align="center">0.1755</td>
<td align="center">0.3303</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As seen in Table <xref ref-type="table" rid="T5">5</xref>
, the difference of correlation coefficient reveals that the DVF controller has stronger control over the manual operation in tool shaft orientation. Rotation ω<sub>z</sub>
round the tool shaft and translation v<sub>x</sub>
, v<sub>y</sub>
along tangent directions are strictly linear correlative to manual input m<sub>z</sub>
, f<sub>x</sub>
, f<sub>y</sub>
respectively, the operator has completely control over these direction. The correlation between manual moment m<sub>x</sub>
, m<sub>y</sub>
and tangent velocity v<sub>x</sub>
, v<sub>y</sub>
are notable due to the coupling between rotation and translation. Velocity v<sub>z</sub>
is independent of the manual input; the DVF controller takes charge of the deviation compensation along the deforming direction.The trajectories of the operator driving the proxy along straight line and circle on the deforming sphere are illustrated in Figure <xref ref-type="fig" rid="F7">7</xref>
, the complicated behaviors of dynamic task is beyond human control, making a distinction between the preferred and non-preferred directions and employed different control strategy helps reduce operation burden of surgeons and improve their skills in dynamic tasks.</p>
<table-wrap position="float" id="T5"><label>Table 5</label>
<caption><p>The correlation between manual force and proxy velocity</p>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
</colgroup>
<thead valign="top"><tr><th align="center"><bold>Corr.</bold>
</th>
<th align="center"><bold>m</bold>
<sub><bold>x</bold>
</sub>
</th>
<th align="center"><bold>m</bold>
<sub><bold>y</bold>
</sub>
</th>
<th align="center"><bold>m</bold>
<sub><bold>z</bold>
</sub>
</th>
<th align="center"><bold>f</bold>
<sub><bold>x</bold>
</sub>
</th>
<th align="center"><bold>f</bold>
<sub><bold>y</bold>
</sub>
</th>
<th align="center"><bold>f</bold>
<sub><bold>z</bold>
</sub>
</th>
</tr>
</thead>
<tbody valign="top"><tr><td align="center" valign="bottom">ω<sub>x</sub>
<hr></hr>
</td>
<td align="center" valign="bottom">0. 761<hr></hr>
</td>
<td align="center" valign="bottom">−0.192<hr></hr>
</td>
<td align="center" valign="bottom">−0.051<hr></hr>
</td>
<td align="center" valign="bottom">−0.003<hr></hr>
</td>
<td align="center" valign="bottom">−0.940<hr></hr>
</td>
<td align="center" valign="bottom">−0.692<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">ω<sub>y</sub>
<hr></hr>
</td>
<td align="center" valign="bottom">−0.046<hr></hr>
</td>
<td align="center" valign="bottom">0.880<hr></hr>
</td>
<td align="center" valign="bottom">0.092<hr></hr>
</td>
<td align="center" valign="bottom">0.922<hr></hr>
</td>
<td align="center" valign="bottom">−0.058<hr></hr>
</td>
<td align="center" valign="bottom">0.114<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">ω<sub>z</sub>
<hr></hr>
</td>
<td align="center" valign="bottom">−0.545<hr></hr>
</td>
<td align="center" valign="bottom">−0.043<hr></hr>
</td>
<td align="center" valign="bottom">1.000<hr></hr>
</td>
<td align="center" valign="bottom">0.173<hr></hr>
</td>
<td align="center" valign="bottom">0.048<hr></hr>
</td>
<td align="center" valign="bottom">0.021<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">v<sub>x</sub>
<hr></hr>
</td>
<td align="center" valign="bottom">−0.127<hr></hr>
</td>
<td align="center" valign="bottom">0.889<hr></hr>
</td>
<td align="center" valign="bottom">0.134<hr></hr>
</td>
<td align="center" valign="bottom">0.998<hr></hr>
</td>
<td align="center" valign="bottom">−0.040<hr></hr>
</td>
<td align="center" valign="bottom">0.106<hr></hr>
</td>
</tr>
<tr><td align="center" valign="bottom">v<sub>y</sub>
<hr></hr>
</td>
<td align="center" valign="bottom">−0.754<hr></hr>
</td>
<td align="center" valign="bottom">0.127<hr></hr>
</td>
<td align="center" valign="bottom">0.091<hr></hr>
</td>
<td align="center" valign="bottom">−0.044<hr></hr>
</td>
<td align="center" valign="bottom">0.998<hr></hr>
</td>
<td align="center" valign="bottom">0.676<hr></hr>
</td>
</tr>
<tr><td align="center">v<sub>z</sub>
</td>
<td align="center">0.006</td>
<td align="center">0.039</td>
<td align="center">0.016</td>
<td align="center">0.079</td>
<td align="center">−0.029</td>
<td align="center">0.012</td>
</tr>
</tbody>
</table>
<table-wrap-foot><p>Pearson's correlation coefficient with confidence interval 99%.</p>
</table-wrap-foot>
</table-wrap>
<fig id="F7" position="float"><label>Figure 7</label>
<caption><p><bold>Trajectories of the proxy along straight line (a) and circle (b) on the deforming sphere with </bold>
<bold><italic>k</italic>
</bold>
<sub><bold><italic>p</italic>
</bold>
</sub>
<bold>= 5, </bold>
<bold><italic>ω</italic>
</bold>
<bold>= 5 rad/s, R-T ratio = 1, </bold>
<bold><italic>c</italic>
</bold>
<sub><bold><italic>r</italic>
</bold>
</sub>
<bold>= 0.1 rad/s, </bold>
<bold><italic>c</italic>
</bold>
<sub><bold><italic>p</italic>
</bold>
</sub>
<bold>= 100 mm/s.</bold>
</p>
</caption>
<graphic xlink:href="1475-925X-13-51-7"></graphic>
</fig>
</sec>
</sec>
<sec sec-type="conclusions"><title>Conclusions</title>
<p>This paper described a novel framework of DVF for admittance-type manipulators on the Euclidean Group <italic>SE(3)</italic>
to assist the surgeons to deal with the dynamic tasks, which unites rotation and translation in a compact form We constructed the holonomic/ non-holonomic constraints, and then searched for the corresponded references to make a distinction between preferred and non-preferred directions. Different control strategies are employed to deal with the task along these directions. The DVF can improve the dynamic properties of human-robot cooperation in low-frequency deforming environment, and maintain synergy of orientation and translation during the operation. The experiments show that the DVF implemented on the virtual admittance-type proxy can assist the user to deal with the skilled operations in deforming environment. We will evaluate the proposed algorithm on a real admittance controlled device when all instruments are ready in the future.</p>
</sec>
<sec><title>Notation and nomenclature</title>
<p><italic>a</italic>
; scalar</p>
<p><bold><italic>f</italic>
</bold>
; force vector</p>
<p><bold><italic>m</italic>
</bold>
; moment vector</p>
<p><bold><italic>ω</italic>
</bold>
; angular velocity vector</p>
<p><bold><italic>v</italic>
</bold>
; translational velocity vector</p>
<p><bold>R</bold>
; rotation matrix</p>
<p><bold><italic>0</italic>
</bold>
; null vector</p>
<p><bold>0</bold>
; null matrix</p>
<p><bold><italic>q</italic>
</bold>
; Vector</p>
<p><inline-formula><mml:math id="M71" name="1475-925X-13-51-i71" overflow="scroll"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
</mml:math>
</inline-formula>
; cross-product matrix of vector <bold><italic>q</italic>
</bold>
</p>
<p><italic>SE</italic>
(3); Lie group</p>
<p><italic>SE</italic>
(2); Displacement subgroup of Lie group</p>
<p><italic>SO</italic>
(3); Rotation group</p>
<p><italic>se</italic>
(3); Lie algebra</p>
<p><italic>so</italic>
(3); Lie algebra of rotation group</p>
<p><italic>se</italic>
(3)*; dual space of Lie algebra</p>
<p><italic>so</italic>
(3)*; dual space of <italic>so</italic>
(3)</p>
<p><italic>g</italic>
; elements in <italic>SE</italic>
(3)</p>
<p><inline-formula><mml:math id="M72" name="1475-925X-13-51-i72" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
; matrix form velocity in se(3)</p>
<p><italic>V</italic>
= (<italic>ω</italic>
, <italic>v</italic>
); column vector form velocity in se(3)</p>
<p><inline-formula><mml:math id="M73" name="1475-925X-13-51-i73" overflow="scroll"><mml:mrow><mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo stretchy="true">^</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
; the matrix form logarithmic coordinates of <italic>g</italic>
</p>
<p><italic>X</italic>
= (<italic>ψ</italic>
, <italic>q</italic>
); column vector form logarithmic coordinates of <italic>g</italic>
</p>
<p>* <sup><italic>b</italic>
</sup>
; element relative to the body frame</p>
<p>* <sup>s</sup>
; element relative to the spatial frame</p>
<p><inline-formula><mml:math id="M74" name="1475-925X-13-51-i74" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:msubsup><mml:mi mathvariant="normal">Ad</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>∗</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
; adjoint transformation</p>
<p><inline-formula><mml:math id="M75" name="1475-925X-13-51-i75" overflow="scroll"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ad</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="0.5em"></mml:mspace>
<mml:msubsup><mml:mi mathvariant="normal">ad</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>∗</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
; Lie bracket</p>
<p>exp <sub><italic>SE</italic>
(3)</sub>
( * ); exponential map on <italic>SE</italic>
(3)</p>
<p>log<sub><italic>S</italic>
E(3)</sub>
(∗); logarithmic map on <italic>SE</italic>
(3)</p>
<p>‖ ∗ ‖<sub>G</sub>
; norm on the matrix Lie Group <italic>SE</italic>
(3)</p>
<p>Generally, we use italic small characters for scalars, italic bold for vectors , bold capitals for matrices, italic bold capitals for vectors of Lie algebra.</p>
</sec>
<sec><title>Competing interests</title>
<p>The authors declare that they have no competing interests.</p>
</sec>
<sec><title>Authors’ contributions</title>
<p>DWZ proposed the framework of dynamic virtual fixture on <italic>SE</italic>
(3) for admittance-type device and designed the hardware-in-the-loop experiment, JX derived the dynamics of PHANToM Omni for manual force estimation, QSZ participated in simulation experiments, LW revised the manuscript and contributed to the result discussion. All authors checked and approved the final manuscript.</p>
</sec>
</body>
<back><sec><title>Acknowledgements</title>
<p>This study was financed partially by the Projects of National Natural Science Foundation of China (Grant Nos. 60932001 and 61072031), the National 863 Program of China (Grant No. 2012AA02A604), the National 973 Program of China (Grant No. 2010CB732606), the Next generation communication technology Major project of National S&T (Grant No.2013ZX03005013), the Key Research Program of the Chinese Academy of Sciences, and the Guangdong Innovation Research Team Funds for Low-cost Healthcare and Image-Guided Therapy.</p>
</sec>
<ref-list><ref id="B1"><mixed-citation publication-type="book"><name><surname>Rosenberg</surname>
<given-names>LB</given-names>
</name>
<source>Virtual fixtures</source>
<year>1994</year>
<publisher-name>Stanford, CA: Ph.D. dissertation, Dept. Mech. Eng., Stanford Univ</publisher-name>
</mixed-citation>
</ref>
<ref id="B2"><mixed-citation publication-type="journal"><name><surname>Peshkin</surname>
<given-names>MA</given-names>
</name>
<name><surname>Colgate</surname>
<given-names>JE</given-names>
</name>
<name><surname>Wannasuphoprasit</surname>
<given-names>W</given-names>
</name>
<name><surname>Moore</surname>
<given-names>CA</given-names>
</name>
<name><surname>Gillespie</surname>
<given-names>RB</given-names>
</name>
<name><surname>Akella</surname>
<given-names>P</given-names>
</name>
<article-title>Cobot architecture</article-title>
<source>IEEE Trans Robot Autom</source>
<year>2001</year>
<volume>17</volume>
<issue>4</issue>
<fpage>377</fpage>
<lpage>390</lpage>
</mixed-citation>
</ref>
<ref id="B3"><mixed-citation publication-type="other"><name><surname>Bowyer</surname>
<given-names>SA</given-names>
</name>
<name><surname>Baena</surname>
<given-names>FRy</given-names>
</name>
<article-title>Dynamic Frictional Constraints for Robot Assisted Surgery</article-title>
<source>World Haptics Conference (WHC)</source>
<year>2013</year>
<fpage>319</fpage>
<lpage>324</lpage>
</mixed-citation>
</ref>
<ref id="B4"><mixed-citation publication-type="journal"><name><surname>Abbot</surname>
<given-names>JJ</given-names>
</name>
<name><surname>Okamura</surname>
<given-names>AM</given-names>
</name>
<article-title>Pseudo-admittance Bilateral Telemanipulation with Guidance Virtual Fixture</article-title>
<source>Int J Robot Res</source>
<year>2007</year>
<volume>26</volume>
<issue>8</issue>
<fpage>865</fpage>
<lpage>884</lpage>
</mixed-citation>
</ref>
<ref id="B5"><mixed-citation publication-type="journal"><name><surname>Bettini</surname>
<given-names>A</given-names>
</name>
<name><surname>Marayong</surname>
<given-names>P</given-names>
</name>
<name><surname>Lang</surname>
<given-names>S</given-names>
</name>
<name><surname>Okamura</surname>
<given-names>AM</given-names>
</name>
<name><surname>Hager</surname>
<given-names>GD</given-names>
</name>
<article-title>Vision-assisted control for manipulation using virtual fixtures</article-title>
<source>IEEE Trans Robot</source>
<year>2004</year>
<volume>20</volume>
<issue>6</issue>
<fpage>953</fpage>
<lpage>966</lpage>
</mixed-citation>
</ref>
<ref id="B6"><mixed-citation publication-type="book"><name><surname>Bettini</surname>
<given-names>A</given-names>
</name>
<name><surname>Lang</surname>
<given-names>S</given-names>
</name>
<name><surname>Okamura</surname>
<given-names>A</given-names>
</name>
<name><surname>Hager</surname>
<given-names>G</given-names>
</name>
<source>Vision Assisted Control for Manipulation Using Virtual Fixtures: Experiments at Macro and Micro Scales</source>
<year>2002</year>
<publisher-name>Washington, DC: Proceedings of the IEEE International Conference on Robotics and Automation</publisher-name>
<fpage>3354</fpage>
<lpage>3361</lpage>
</mixed-citation>
</ref>
<ref id="B7"><mixed-citation publication-type="journal"><name><surname>Marayong</surname>
<given-names>P</given-names>
</name>
<name><surname>Li</surname>
<given-names>M</given-names>
</name>
<name><surname>Okamura</surname>
<given-names>AM</given-names>
</name>
<name><surname>Hager</surname>
<given-names>GD</given-names>
</name>
<article-title>Spatial Motion Constraints: Theory and Demonstrations for Robot Guidance Using Virtual Fixture</article-title>
<source>IEEE Int Conf Robot Autom</source>
<year>2003</year>
<volume>2</volume>
<fpage>1954</fpage>
<lpage>1959</lpage>
</mixed-citation>
</ref>
<ref id="B8"><mixed-citation publication-type="journal"><name><surname>Prada</surname>
<given-names>R</given-names>
</name>
<name><surname>Payandeh</surname>
<given-names>S</given-names>
</name>
<article-title>On study of design and implementation of virtual fixtures</article-title>
<source>Virtual Reality</source>
<year>2009</year>
<volume>13</volume>
<issue>2</issue>
<fpage>117</fpage>
<lpage>129</lpage>
</mixed-citation>
</ref>
<ref id="B9"><mixed-citation publication-type="journal"><name><surname>Bowyer</surname>
<given-names>SA</given-names>
</name>
<name><surname>Davies</surname>
<given-names>BL</given-names>
</name>
<name><surname>Baena</surname>
<given-names>FRy</given-names>
</name>
<article-title>Active Constraints/Virtual Fixtures: A Survey</article-title>
<source>IEEE Trans Robot</source>
<year>2013</year>
<volume>30</volume>
<issue>1</issue>
<fpage>1252</fpage>
<lpage>1257</lpage>
</mixed-citation>
</ref>
<ref id="B10"><mixed-citation publication-type="other"><name><surname>Navkar</surname>
<given-names>NV</given-names>
</name>
<name><surname>Deng</surname>
<given-names>Z</given-names>
</name>
<name><surname>Shah</surname>
<given-names>DJ</given-names>
</name>
<name><surname>Bekris</surname>
<given-names>KE</given-names>
</name>
<name><surname>Tsekos</surname>
<given-names>NV</given-names>
</name>
<article-title>Visual and force-feedback guidance for robot-assisted interventions in the beating heart with real-time MRI</article-title>
<source>Proc. IEEE Int. Conf. Robot. Autom</source>
<year>2012</year>
<fpage>689</fpage>
<lpage>694</lpage>
</mixed-citation>
</ref>
<ref id="B11"><mixed-citation publication-type="journal"><name><surname>Ren</surname>
<given-names>J</given-names>
</name>
<name><surname>Patel</surname>
<given-names>RV</given-names>
</name>
<name><surname>McIsaac</surname>
<given-names>KA</given-names>
</name>
<name><surname>Gerard</surname>
<given-names>G</given-names>
</name>
<name><surname>Peters</surname>
<given-names>TM</given-names>
</name>
<article-title>Dynamic 3-D virtual fixtures for minimally invasive beating heart procedures</article-title>
<source>IEEE Trans Med Imaging</source>
<year>2008</year>
<volume>27</volume>
<issue>8</issue>
<fpage>1061</fpage>
<lpage>1070</lpage>
<pub-id pub-id-type="pmid">18672424</pub-id>
</mixed-citation>
</ref>
<ref id="B12"><mixed-citation publication-type="book"><name><surname>Ahmed</surname>
<given-names>RM</given-names>
</name>
<source>Compliant control of robot manipulator for safe physical human robot interaction</source>
<year>2011</year>
<publisher-name>Örebro Universitet</publisher-name>
</mixed-citation>
</ref>
<ref id="B13"><mixed-citation publication-type="journal"><name><surname>Ming</surname>
<given-names>L</given-names>
</name>
<name><surname>Ishii</surname>
<given-names>M</given-names>
</name>
<name><surname>Taylor</surname>
<given-names>RH</given-names>
</name>
<article-title>Spatial Motion Constraints Using Virtual Fixtures Generated by Anatomy</article-title>
<source>IEEE Trans Robot</source>
<year>2007</year>
<volume>23</volume>
<issue>1</issue>
<fpage>4</fpage>
<lpage>19</lpage>
</mixed-citation>
</ref>
<ref id="B14"><mixed-citation publication-type="journal"><name><surname>Raúl</surname>
<given-names>A</given-names>
</name>
<name><surname>Castillo</surname>
<given-names>C</given-names>
</name>
<name><surname>Jürgen</surname>
<given-names>W</given-names>
</name>
<article-title>Virtual fixtures with autonomous error compensation for human-robot cooperative tasks</article-title>
<source>Robotica</source>
<year>2010</year>
<volume>28</volume>
<issue>2</issue>
<fpage>267</fpage>
<lpage>277</lpage>
</mixed-citation>
</ref>
<ref id="B15"><mixed-citation publication-type="journal"><name><surname>Becker</surname>
<given-names>BC</given-names>
</name>
<name><surname>MacLachlan</surname>
<given-names>RA</given-names>
</name>
<name><surname>Lobes</surname>
<given-names>LA</given-names>
</name>
<name><surname>Hager</surname>
<given-names>GD</given-names>
</name>
<name><surname>Riviere</surname>
<given-names>CN</given-names>
</name>
<article-title>Vision-Based Control of a Handheld Surgical Micromanipulator With Virtual Fixtures</article-title>
<source>IEEE Trans Robot</source>
<year>2013</year>
<volume>29</volume>
<issue>3</issue>
<fpage>674</fpage>
<lpage>683</lpage>
<pub-id pub-id-type="pmid">24639624</pub-id>
</mixed-citation>
</ref>
<ref id="B16"><mixed-citation publication-type="journal"><name><surname>Özkan Bebek</surname>
<given-names>M</given-names>
</name>
<name><surname>Çavuşoğlu</surname>
<given-names>C</given-names>
</name>
<article-title>Intelligent Control Algorithms for Robotic-Assisted Beating Heart Surgery</article-title>
<source>IEEE Trans Robot</source>
<year>2007</year>
<volume>23</volume>
<issue>3</issue>
<fpage>468</fpage>
<lpage>480</lpage>
</mixed-citation>
</ref>
<ref id="B17"><mixed-citation publication-type="book"><name><surname>Bullo</surname>
<given-names>F</given-names>
</name>
<name><surname>Murray</surname>
<given-names>RM</given-names>
</name>
<source>Proportional derivative(PD) control on the Euclidean Group</source>
<year>1995</year>
<publisher-name>Rome, Italy: In European Control Conference</publisher-name>
<fpage>1091</fpage>
<lpage>1097</lpage>
</mixed-citation>
</ref>
<ref id="B18"><mixed-citation publication-type="journal"><name><surname>Huang</surname>
<given-names>S</given-names>
</name>
<name><surname>Schimmels</surname>
<given-names>JM</given-names>
</name>
<article-title>The Eigenscrew Decomposition of Spatial Stiffness Matrices</article-title>
<source>IEEE Trans Robot Autom</source>
<year>2000</year>
<volume>6</volume>
<issue>2</issue>
<fpage>146</fpage>
<lpage>156</lpage>
</mixed-citation>
</ref>
<ref id="B19"><mixed-citation publication-type="journal"><name><surname>Huang</surname>
<given-names>S</given-names>
</name>
<name><surname>Schimmels</surname>
<given-names>JM</given-names>
</name>
<article-title>The Bounds and Realization of Spatial Stiffnesses Achieved with Simple Spring Connected in Parallel</article-title>
<source>IEEE Trans Robot Autom</source>
<year>1998</year>
<volume>14</volume>
<issue>3</issue>
<fpage>466</fpage>
<lpage>475</lpage>
</mixed-citation>
</ref>
<ref id="B20"><mixed-citation publication-type="other"><name><surname>Dongwen</surname>
<given-names>Z</given-names>
</name>
<name><surname>Lei</surname>
<given-names>W</given-names>
</name>
<name><surname>Jia</surname>
<given-names>G</given-names>
</name>
<name><surname>Zhicheng</surname>
<given-names>L</given-names>
</name>
<name><surname>Ken</surname>
<given-names>C</given-names>
</name>
<article-title>Realization of Spatial Compliant Virtual Fixture using Eigenscrews</article-title>
<source>Conf Proc IEEE Eng Med Biol Soc</source>
<year>2012</year>
<fpage>1506</fpage>
<lpage>1509</lpage>
<pub-id pub-id-type="pmid">23366188</pub-id>
</mixed-citation>
</ref>
<ref id="B21"><mixed-citation publication-type="journal"><name><surname>Park</surname>
<given-names>FC</given-names>
</name>
<name><surname>Bobrow</surname>
<given-names>JE</given-names>
</name>
<name><surname>Ploen</surname>
<given-names>SR</given-names>
</name>
<article-title>A Lie group formulation of robot dynamics</article-title>
<source>Int J Robot Res</source>
<year>1995</year>
<volume>14</volume>
<issue>6</issue>
<fpage>609</fpage>
<lpage>618</lpage>
</mixed-citation>
</ref>
<ref id="B22"><mixed-citation publication-type="book"><name><surname>Ball</surname>
<given-names>R</given-names>
</name>
<source>A Treatise on the Theory of Screws</source>
<year>1900</year>
<publisher-name>Cambridge University</publisher-name>
</mixed-citation>
</ref>
<ref id="B23"><mixed-citation publication-type="other"><name><surname>Jiri</surname>
<given-names>M</given-names>
</name>
<name><surname>Jim</surname>
<given-names>B</given-names>
</name>
<article-title>Computational Noncommutative Algebra and Applications</article-title>
<source>Springer</source>
<year>2004</year>
<fpage>101</fpage>
<lpage>125</lpage>
</mixed-citation>
</ref>
<ref id="B24"><mixed-citation publication-type="book"><name><surname>Boothby</surname>
<given-names>WM</given-names>
</name>
<source>An Introduction to Differentiable Manifolds and Riemannian Geometry</source>
<year>2002</year>
<edition>Second</edition>
<publisher-name>Academic Press</publisher-name>
</mixed-citation>
</ref>
<ref id="B25"><mixed-citation publication-type="journal"><name><surname>Loncaric</surname>
<given-names>J</given-names>
</name>
<article-title>Normal Forms of Stiffness and Compliance Matrices</article-title>
<source>IEEE Trans Robot Autom</source>
<year>1987</year>
<volume>RA-3</volume>
<issue>6</issue>
<fpage>567</fpage>
<lpage>572</lpage>
</mixed-citation>
</ref>
<ref id="B26"><mixed-citation publication-type="journal"><name><surname>Patterson</surname>
<given-names>T</given-names>
</name>
<name><surname>Lipkin</surname>
<given-names>H</given-names>
</name>
<article-title>Structure of Robot Compliance</article-title>
<source>J Mech Des</source>
<year>1993</year>
<volume>115</volume>
<issue>3</issue>
<fpage>315</fpage>
<lpage>322</lpage>
</mixed-citation>
</ref>
<ref id="B27"><mixed-citation publication-type="book"><name><surname>Kapoor</surname>
<given-names>A</given-names>
</name>
<name><surname>Li</surname>
<given-names>M</given-names>
</name>
<name><surname>Taylor</surname>
<given-names>RH</given-names>
</name>
<source>Spatial Motion Constraints for Robot Assisted Suturing Using Virtual Fixtures</source>
<year>2003</year>
<publisher-name>Taiwan: IEEE International Conference on Robotics & Automation</publisher-name>
<fpage>1954</fpage>
<lpage>1959</lpage>
</mixed-citation>
</ref>
<ref id="B28"><mixed-citation publication-type="journal"><name><surname>Adams</surname>
<given-names>JD</given-names>
</name>
<name><surname>Whitney</surname>
<given-names>DE</given-names>
</name>
<article-title>Application of Screw Theory to Constraint Analysis of Mechanical Assemlies Joined by Features</article-title>
<source>Trans ASME</source>
<year>2001</year>
<volume>123</volume>
<fpage>26</fpage>
<lpage>32</lpage>
</mixed-citation>
</ref>
<ref id="B29"><mixed-citation publication-type="journal"><name><surname>Schimmels</surname>
<given-names>JM</given-names>
</name>
<name><surname>Peshkin</surname>
<given-names>MA</given-names>
</name>
<article-title>Admittance Matrix Design for Force-Guided Assembly</article-title>
<source>IEEE Trans Robot Autom</source>
<year>1992</year>
<volume>8</volume>
<issue>2</issue>
<fpage>213</fpage>
<lpage>227</lpage>
</mixed-citation>
</ref>
<ref id="B30"><mixed-citation publication-type="other"><name><surname>Thitipong</surname>
<given-names>S</given-names>
</name>
<name><surname>Itthisek</surname>
<given-names>N</given-names>
</name>
<name><surname>Kanokvate</surname>
<given-names>T</given-names>
</name>
<article-title>Teleoperation with Inverse Dynamics Control for PHANToM Omni Haptic Device</article-title>
<source>SICE Annual Conference</source>
<year>2012</year>
<fpage>2121</fpage>
<lpage>2126</lpage>
</mixed-citation>
</ref>
<ref id="B31"><mixed-citation publication-type="journal"><name><surname>Rodgers</surname>
<given-names>JL</given-names>
</name>
<name><surname>Nicewander</surname>
<given-names>WA</given-names>
</name>
<article-title>Thirteen ways to look at the correlation coefficient</article-title>
<source>Am Stat</source>
<year>1988</year>
<volume>42</volume>
<issue>1</issue>
<fpage>59</fpage>
<lpage>66</lpage>
</mixed-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 001243 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd -nk 001243 | 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:4041146 |texte= Dynamic virtual fixture on the Euclidean group for admittance-type manipulator in deforming environments }}
Pour générer des pages wiki
HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Curation/RBID.i -Sk "pubmed:24767578" \ | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd \ | NlmPubMed2Wicri -a HapticV1
![]() | This area was generated with Dilib version V0.6.23. | ![]() |