Serveur d'exploration sur les dispositifs haptiques

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

The Robotic Lumbar Spine: Dynamics and Feedback Linearization Control

Identifieur interne : 000F74 ( Pmc/Checkpoint ); précédent : 000F73; suivant : 000F75

The Robotic Lumbar Spine: Dynamics and Feedback Linearization Control

Auteurs : Ernur Karadogan [États-Unis] ; Robert L. Williams [États-Unis]

Source :

RBID : PMC:3787629

Abstract

The robotic lumbar spine (RLS) is a 15 degree-of-freedom, fully cable-actuated robotic lumbar spine which can mimic in vivo human lumbar spine movements to provide better hands-on training for medical students. The design incorporates five active lumbar vertebrae and the sacrum, with dimensions of an average adult human spine. It is actuated by 20 cables connected to electric motors. Every vertebra is connected to the neighboring vertebrae by spherical joints. Medical schools can benefit from a tool, system, or method that will help instructors train students and assess their tactile proficiency throughout their education. The robotic lumbar spine has the potential to satisfy these needs in palpatory diagnosis. Medical students will be given the opportunity to examine their own patient that can be programmed with many dysfunctions related to the lumbar spine before they start their professional lives as doctors. The robotic lumbar spine can be used to teach and test medical students in their capacity to be able to recognize normal and abnormal movement patterns of the human lumbar spine under flexion-extension, lateral bending, and axial torsion. This paper presents the dynamics and nonlinear control of the RLS. A new approach to solve for positive and nonzero cable tensions that are also continuous in time is introduced.


Url:
DOI: 10.1155/2013/985248
PubMed: 24151527
PubMed Central: 3787629


Affiliations:


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


Links to Exploration step

PMC:3787629

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">The Robotic Lumbar Spine: Dynamics and Feedback Linearization Control</title>
<author>
<name sortKey="Karadogan, Ernur" sort="Karadogan, Ernur" uniqKey="Karadogan E" first="Ernur" last="Karadogan">Ernur Karadogan</name>
<affiliation wicri:level="2">
<nlm:aff id="I1">Mechanical Engineering Department, University of Texas-Pan American, Edinburg, TX 78539, USA</nlm:aff>
<country xml:lang="fr">États-Unis</country>
<wicri:regionArea>Mechanical Engineering Department, University of Texas-Pan American, Edinburg, TX 78539</wicri:regionArea>
<placeName>
<region type="state">Texas</region>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Williams, Robert L" sort="Williams, Robert L" uniqKey="Williams R" first="Robert L." last="Williams">Robert L. Williams</name>
<affiliation wicri:level="2">
<nlm:aff id="I2">Mechanical Engineering Department, Ohio University, Athens, OH 45701, USA</nlm:aff>
<country xml:lang="fr">États-Unis</country>
<wicri:regionArea>Mechanical Engineering Department, Ohio University, Athens, OH 45701</wicri:regionArea>
<placeName>
<region type="state">Ohio</region>
</placeName>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">24151527</idno>
<idno type="pmc">3787629</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3787629</idno>
<idno type="RBID">PMC:3787629</idno>
<idno type="doi">10.1155/2013/985248</idno>
<date when="2013">2013</date>
<idno type="wicri:Area/Pmc/Corpus">001C64</idno>
<idno type="wicri:Area/Pmc/Curation">001C64</idno>
<idno type="wicri:Area/Pmc/Checkpoint">000F74</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">The Robotic Lumbar Spine: Dynamics and Feedback Linearization Control</title>
<author>
<name sortKey="Karadogan, Ernur" sort="Karadogan, Ernur" uniqKey="Karadogan E" first="Ernur" last="Karadogan">Ernur Karadogan</name>
<affiliation wicri:level="2">
<nlm:aff id="I1">Mechanical Engineering Department, University of Texas-Pan American, Edinburg, TX 78539, USA</nlm:aff>
<country xml:lang="fr">États-Unis</country>
<wicri:regionArea>Mechanical Engineering Department, University of Texas-Pan American, Edinburg, TX 78539</wicri:regionArea>
<placeName>
<region type="state">Texas</region>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Williams, Robert L" sort="Williams, Robert L" uniqKey="Williams R" first="Robert L." last="Williams">Robert L. Williams</name>
<affiliation wicri:level="2">
<nlm:aff id="I2">Mechanical Engineering Department, Ohio University, Athens, OH 45701, USA</nlm:aff>
<country xml:lang="fr">États-Unis</country>
<wicri:regionArea>Mechanical Engineering Department, Ohio University, Athens, OH 45701</wicri:regionArea>
<placeName>
<region type="state">Ohio</region>
</placeName>
</affiliation>
</author>
</analytic>
<series>
<title level="j">Computational and Mathematical Methods in Medicine</title>
<idno type="ISSN">1748-670X</idno>
<idno type="eISSN">1748-6718</idno>
<imprint>
<date when="2013">2013</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<p>The robotic lumbar spine (RLS) is a 15 degree-of-freedom, fully cable-actuated robotic lumbar spine which can mimic
<italic>in vivo</italic>
human lumbar spine movements to provide better hands-on training for medical students. The design incorporates five active lumbar vertebrae and the sacrum, with dimensions of an average adult human spine. It is actuated by 20 cables connected to electric motors. Every vertebra is connected to the neighboring vertebrae by spherical joints. Medical schools can benefit from a tool, system, or method that will help instructors train students and assess their tactile proficiency throughout their education. The robotic lumbar spine has the potential to satisfy these needs in palpatory diagnosis. Medical students will be given the opportunity to examine their own patient that can be programmed with many dysfunctions related to the lumbar spine before they start their professional lives as doctors. The robotic lumbar spine can be used to teach and test medical students in their capacity to be able to recognize normal and abnormal movement patterns of the human lumbar spine under flexion-extension, lateral bending, and axial torsion. This paper presents the dynamics and nonlinear control of the RLS. A new approach to solve for positive and nonzero cable tensions that are also continuous in time is introduced.</p>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Howell, Jn" uniqKey="Howell J">JN Howell</name>
</author>
<author>
<name sortKey="Conatser, Rr" uniqKey="Conatser R">RR Conatser</name>
</author>
<author>
<name sortKey="Williams, Rl" uniqKey="Williams R">RL Williams</name>
</author>
<author>
<name sortKey="Burns, Jm" uniqKey="Burns J">JM Burns</name>
</author>
<author>
<name sortKey="Eland, Dc" uniqKey="Eland D">DC Eland</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Mizuuchi, I" uniqKey="Mizuuchi I">I Mizuuchi</name>
</author>
<author>
<name sortKey="Inaba, M" uniqKey="Inaba M">M Inaba</name>
</author>
<author>
<name sortKey="Inoue, H" uniqKey="Inoue H">H Inoue</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Mizuuchi, I" uniqKey="Mizuuchi I">I Mizuuchi</name>
</author>
<author>
<name sortKey="Tajima, R" uniqKey="Tajima R">R Tajima</name>
</author>
<author>
<name sortKey="Yoshikai, T" uniqKey="Yoshikai T">T Yoshikai</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Roos, L" uniqKey="Roos L">L Roos</name>
</author>
<author>
<name sortKey="Guenter, F" uniqKey="Guenter F">F Guenter</name>
</author>
<author>
<name sortKey="Guignard, A" uniqKey="Guignard A">A Guignard</name>
</author>
<author>
<name sortKey="Billard, Ag" uniqKey="Billard A">AG Billard</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Panjabi, Mm" uniqKey="Panjabi M">MM Panjabi</name>
</author>
<author>
<name sortKey="Oxland, Tr" uniqKey="Oxland T">TR Oxland</name>
</author>
<author>
<name sortKey="Yamamoto, I" uniqKey="Yamamoto I">I Yamamoto</name>
</author>
<author>
<name sortKey="Crisco, Jj" uniqKey="Crisco J">JJ Crisco</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Karadogan, E" uniqKey="Karadogan E">E Karadogan</name>
</author>
<author>
<name sortKey="Williams, Rl" uniqKey="Williams R">RL Williams</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sullivan, Ja" uniqKey="Sullivan J">JA Sullivan</name>
</author>
<author>
<name sortKey="Soni, Ah" uniqKey="Soni A">AH Soni</name>
</author>
<author>
<name sortKey="Patwardhan, Ag" uniqKey="Patwardhan A">AG Patwardhan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Soni, Ah" uniqKey="Soni A">AH Soni</name>
</author>
<author>
<name sortKey="Sullivan, Ja" uniqKey="Sullivan J">JA Sullivan</name>
</author>
<author>
<name sortKey="Patwardhan, Ag" uniqKey="Patwardhan A">AG Patwardhan</name>
</author>
<author>
<name sortKey="Gudavalli, Mr" uniqKey="Gudavalli M">MR Gudavalli</name>
</author>
<author>
<name sortKey="Chitwood, J" uniqKey="Chitwood J">J Chitwood</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sharma, M" uniqKey="Sharma M">M Sharma</name>
</author>
<author>
<name sortKey="Langrana, Na" uniqKey="Langrana N">NA Langrana</name>
</author>
<author>
<name sortKey="Rodriguez, J" uniqKey="Rodriguez J">J Rodriguez</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Karadogan, E" uniqKey="Karadogan E">E Karadogan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Spong, Mw" uniqKey="Spong M">MW Spong</name>
</author>
<author>
<name sortKey="Hutchinson, S" uniqKey="Hutchinson S">S Hutchinson</name>
</author>
<author>
<name sortKey="Vidyasagar, M" uniqKey="Vidyasagar M">M Vidyasagar</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Williams, Rl" uniqKey="Williams R">RL Williams</name>
</author>
<author>
<name sortKey="Gallina, P" uniqKey="Gallina P">P Gallina</name>
</author>
<author>
<name sortKey="Vadia, J" uniqKey="Vadia J">J Vadia</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Shen, Y" uniqKey="Shen Y">Y Shen</name>
</author>
<author>
<name sortKey="Osumi, H" uniqKey="Osumi H">H Osumi</name>
</author>
<author>
<name sortKey="Arai, T" uniqKey="Arai T">T Arai</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Yu, K" uniqKey="Yu K">K Yu</name>
</author>
<author>
<name sortKey="Lee, L F" uniqKey="Lee L">L-F Lee</name>
</author>
<author>
<name sortKey="Krovi, Vn" uniqKey="Krovi V">VN Krovi</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Craig, J" uniqKey="Craig J">J Craig</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Comput Math Methods Med</journal-id>
<journal-id journal-id-type="iso-abbrev">Comput Math Methods Med</journal-id>
<journal-id journal-id-type="publisher-id">CMMM</journal-id>
<journal-title-group>
<journal-title>Computational and Mathematical Methods in Medicine</journal-title>
</journal-title-group>
<issn pub-type="ppub">1748-670X</issn>
<issn pub-type="epub">1748-6718</issn>
<publisher>
<publisher-name>Hindawi Publishing Corporation</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">24151527</article-id>
<article-id pub-id-type="pmc">3787629</article-id>
<article-id pub-id-type="doi">10.1155/2013/985248</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>The Robotic Lumbar Spine: Dynamics and Feedback Linearization Control</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Karadogan</surname>
<given-names>Ernur</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Williams</surname>
<given-names>Robert L.</given-names>
<suffix>II</suffix>
</name>
<xref ref-type="aff" rid="I2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="cor1">*</xref>
</contrib>
</contrib-group>
<aff id="I1">
<sup>1</sup>
Mechanical Engineering Department, University of Texas-Pan American, Edinburg, TX 78539, USA</aff>
<aff id="I2">
<sup>2</sup>
Mechanical Engineering Department, Ohio University, Athens, OH 45701, USA</aff>
<author-notes>
<corresp id="cor1">*Robert L. Williams II:
<email>williar4@ohio.edu</email>
</corresp>
<fn fn-type="other">
<p>Academic Editor: Zhonghua Sun</p>
</fn>
</author-notes>
<pub-date pub-type="ppub">
<year>2013</year>
</pub-date>
<pub-date pub-type="epub">
<day>16</day>
<month>9</month>
<year>2013</year>
</pub-date>
<volume>2013</volume>
<elocation-id>985248</elocation-id>
<history>
<date date-type="received">
<day>19</day>
<month>6</month>
<year>2013</year>
</date>
<date date-type="accepted">
<day>2</day>
<month>8</month>
<year>2013</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright © 2013 E. Karadogan and R. L. Williams II.</copyright-statement>
<copyright-year>2013</copyright-year>
<license license-type="open-access">
<license-p>This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<abstract>
<p>The robotic lumbar spine (RLS) is a 15 degree-of-freedom, fully cable-actuated robotic lumbar spine which can mimic
<italic>in vivo</italic>
human lumbar spine movements to provide better hands-on training for medical students. The design incorporates five active lumbar vertebrae and the sacrum, with dimensions of an average adult human spine. It is actuated by 20 cables connected to electric motors. Every vertebra is connected to the neighboring vertebrae by spherical joints. Medical schools can benefit from a tool, system, or method that will help instructors train students and assess their tactile proficiency throughout their education. The robotic lumbar spine has the potential to satisfy these needs in palpatory diagnosis. Medical students will be given the opportunity to examine their own patient that can be programmed with many dysfunctions related to the lumbar spine before they start their professional lives as doctors. The robotic lumbar spine can be used to teach and test medical students in their capacity to be able to recognize normal and abnormal movement patterns of the human lumbar spine under flexion-extension, lateral bending, and axial torsion. This paper presents the dynamics and nonlinear control of the RLS. A new approach to solve for positive and nonzero cable tensions that are also continuous in time is introduced.</p>
</abstract>
</article-meta>
</front>
<body>
<sec id="sec1">
<title>1. Introduction</title>
<p>Teaching art of palpation to medical students is a challenging task. In institutions that teach palpatory diagnosis, it is taught by using voluntary human patients who are mostly palpated by the instructor for demonstrative purposes. Meanwhile, the students usually watch the process and get to palpate only their lab partners as “patients” who are, considering the general population of medical students, relatively young and healthy (many with limited dysfunctions). It is, however, very difficult to be able to find and demonstrate a different patient for every single dysfunction that the students are taught during the lectures or in the laboratories. Therefore, it is still hard to teach and learn palpatory diagnosis for different variations of dysfunctions. The lack of a means for evaluating the transfer of practical information from the instructor to the students is another drawback that the medical schools are facing today. There exists no assessment device for instructors to objectively evaluate progress and success of the students in real-life situations.</p>
<p>The need for a “gold standard” to objectively assess the palpation accuracy is apparent. The design of such a device has the potential of becoming a standardized means for training medical students since the repeatability of many dysfunctions would be possible. Repeatability is a main concern in real-life medical education situations, because the properties of human soft tissue (stiffness, tenderness, etc.) can alter when it is touched by the examiner. The tissue properties are not the same even between the beginning and end of an examination. A legitimate method of evaluating the students would be comparing the first diagnosis of the instructor with the diagnosis of the student. However, when the student takes over the patient, he/she tries to diagnose movement patterns and/or the tissue properties that have already been changed due to the stimulation of the instructor.</p>
<p>The role of simulation in medical education is rapidly increasing. The simulations to train nurses, veterinarians, and doctors (osteopathic and allopathic) have been and are still being developed due to their effectiveness and cost-reducing advantages. These simulations can be computer based or in the form of mannequins that can simulate some functions of the real human body such as breathing and blood pressure. Computer-based haptic simulations require the utilization of a haptic interface to interact with the virtual objects inside a computer screen. That is clearly not the case when humans really interact with real objects. For instance, the VHB [
<xref ref-type="bibr" rid="B1">1</xref>
], the only simulation that is being used to improve palpatory skills of medical students, simulates somatic dysfunctions by increased stiffness of an area on the virtual back and the users “touch” the back with PHANToM haptic devices which only stimulate the proprioceptive receptors and introduces an extra layer of disturbance between the fingers and the computer-generated objects to be sensed. Therefore, a simulation system which allows the user to interact with a real object would be a better and more effective approach.</p>
<p>The robotic spine concept has been studied over the past years [
<xref ref-type="bibr" rid="B2">2</xref>
<xref ref-type="bibr" rid="B4">4</xref>
]. These studies built humanoid robots with a flexible spine which would enhance the human-like movements of the robots and increase the range of movement of the robot's torso. These humanoid robots dealt with the movement of the whole spine, rather than the relative position and stiffness of a vertebra with respect to the adjacent ones. They sufficiently accomplished flexible spine movements with less than the total number of vertebrae in a human spine. However, no research has yet been completed on the subject of developing a robotic spine with anatomically accurate vertebrae geometry and movements for tactile medical education and/or proficiency assessment. In this paper, the dynamic model of a robotic lumbar spine is derived and used in designing a nonlinear controller. A new method to solve for positive and nonzero cable tensions that are also continuous in time is introduced. Simulations to test the controller for the RLS are presented. In the RLS, individual vertebra is controlled by four cables that are attached to four motors. In this case, a cable-actuated robot is practical due to the space limitations between vertebrae. The robot will be controlled by a joystick or autonomously by preprogramming. The user will interact by touching the posterior aspect of the lumbar spine that is covered with a skin-like material. The user will try to find the type and region of the dysfunction by comparing the movement patterns at different configurations of the robotic lumbar spine. In this current form, the RLS will be capable of training users in terms of healthy and dysfunctional movements of the lumbar spine. Addition of the capability to adjust (rotational) stiffness of the vertebrae associated with normal and abnormal rotational limits is also underway. This will enable users to train on anatomically normal (abnormal) movement patterns as well as feel normal (abnormal) joint stiffness associated with a healthy (dysfunctional) lumbar spine.</p>
</sec>
<sec id="sec2">
<title>2. Construction of the Lumbar Spine Geometry</title>
<p>The geometry of the lumbar spine was constructed using dimensions of an average human spine based on published experimental data [
<xref ref-type="bibr" rid="B5">5</xref>
]. All parameters used for the reconstruction of the geometry except for the facet plane and facet plane angle (
<italic>φ</italic>
) have been previously used in the literature and measured to define the morphology of the vertebrae. We, assuming sagittal symmetry, define a facet plane as the plane that connects the centers of the four facets (left/right, superior/inferior) of a vertebra. This plane (manufactured as a plate) will allow the attachment of posterior elements with various dimensions on the same vertebral body making the system modular. The facet plane angle is defined to be the angle between the facet plane and the posterior wall of the vertebral body. In modeling, a cylindrical shape is assumed for the vertebral bodies.
<xref ref-type="fig" rid="fig1"> Figure 1</xref>
shows the facet plane angle and the approximation of the vertebral bodies as cylinders. The constructed lumbar spine geometry is shown
<xref ref-type="fig" rid="fig2">Figure 2</xref>
. A detailed explanation on the construction of the lumbar spine geometry can be found in [
<xref ref-type="bibr" rid="B6">6</xref>
].</p>
</sec>
<sec id="sec3">
<title>3. 3D Static Model of the Human Lumbar Spine</title>
<p>In order to design a device that mimics an average adult's lumbar spine, it is necessary to have anatomically correct movement patterns of each lumbar vertebra. In this study, these movement patterns were acquired by using a three-dimensional static model of the human spine. The mathematical model includes five lumbar vertebrae and the sacrum, elastic elements that connect inferior facets of one vertebra to the superior facets of the lower one and torsion springs that represent the collective torque resisting effects of the intervertebral disc and ligaments. It has been shown with several studies [
<xref ref-type="bibr" rid="B5">5</xref>
,
<xref ref-type="bibr" rid="B7">7</xref>
<xref ref-type="bibr" rid="B9">9</xref>
] that the significant motion of the vertebrae during the movement of the spine is the rotational motion. Therefore, a spherical joint is chosen to connect each vertebra to the lower one. The location of this joint is critical in order to provide anatomically correct motion for each vertebra during the movement of the entire lumbar spine. In this model, the spherical joints are located at the inferoposterior corners of the vertebral bodies since the experimental data used for validation is based on the findings from [
<xref ref-type="bibr" rid="B5">5</xref>
]. The complete details including derivation and validation of this model can be found in [
<xref ref-type="bibr" rid="B10">10</xref>
].</p>
</sec>
<sec id="sec4">
<title>4. RLS Kinematics</title>
<p>The robotic spine, shown in
<xref ref-type="fig" rid="fig3">Figure 3</xref>
, was designed based on the study by [
<xref ref-type="bibr" rid="B5">5</xref>
] since it details how lumbar spine moves in prespecified loading conditions. In that study, the upper-most vertebrae of freshly frozen cadaveric human lumbar spines with no abnormalities were exposed to external pure moments in order to induce motion, and both rotational and translational movements of each vertebra were recorded. </p>
<p>The RLS is actuated by 20 cables connected to electric motors. Every vertebra is connected to the neighboring vertebrae by spherical joints. The use of spherical joints is intentional since the rotational motion of the vertebrae is more prominent as compared to their translational motion. The location of the spherical joint for each vertebra is at the inferoposterior corner in the mid-sagittal plane of the vertebral body. These locations correspond to the origin of the coordinate frames with respect to which the angles of rotation were recorded in [
<xref ref-type="bibr" rid="B5">5</xref>
]. As discussed previously, the facet plane in
<xref ref-type="fig" rid="fig1">Figure 1</xref>
was designed to be used as the base on which posterior elements with various dimensions can be attached.</p>
<p>The cable connection points on the ground are at the corners of five trapezoids. The innermost trapezoid that includes the connection points for the fifth lumbar vertebra (L5) has posterior base length of 0.4 m, anterior base length of 0.2 m, and height of 0.15 m. The remaining four trapezoids are constructed with increasing the height of the adjacent (inner) one by 0.05 m anteriorly and 0.05 m posteriorly. This placement of the cable connections on the ground prevented cable interference during the simulations for six motion types: flexion/extension, right/left bending, and right/left axial torque [
<xref ref-type="bibr" rid="B6">6</xref>
].</p>
</sec>
<sec id="sec5">
<title>5. RLS Dynamics and Control</title>
<sec id="sec5.1">
<title>5.1. Dynamic Model</title>
<p>In this section, we will develop the dynamic equations for the robotic lumbar spine. The dynamic equations can be stated in the following general format:
<disp-formula id="EEq1">
<label>(1)</label>
<mml:math id="M1">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>q</italic>
is the vector of generalized coordinates (joint variables),
<inline-formula>
<mml:math id="M2">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
is the vector of generalized velocities,
<bold>M</bold>
is the inertia matrix as a function of
<italic>q</italic>
,
<bold>V</bold>
is the Coriolis/centripetal term as a function of
<italic>q</italic>
and
<inline-formula>
<mml:math id="M3">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
,
<bold>G</bold>
is the gravity term as a function of
<italic>q</italic>
and
<bold>τ</bold>
is the vector of generalized forces that are found by using the forces applied by the cables. Note that, for systems the links of which are actuated at the joints,
<bold>τ</bold>
is independent of
<italic>q</italic>
when they are defined to be the joint variables (angle of rotation for revolute and distance for prismatic joints). However, as shown later in the text,
<bold>τ</bold>
for the robotic lumbar spine are functions of the generalized coordinates as well. The friction is neglected during the dynamic modeling stage.</p>
<p>We will use the energy-based Lagrange equation to derive the equations of motion for the robotic spine. The Lagrange formulation does not require the knowledge of the constraint forces when all of the constraints in a system are
<italic>holonomic</italic>
[
<xref ref-type="bibr" rid="B11">11</xref>
]. In Newton-Euler formulation, however, the constraint forces between adjacent links must be included as variables. The robotic lumbar spine is composed of only rigid bodies that are connected to each other via spherical joints. That is, all constraints in the system are
<italic>holonomic</italic>
constraints. The Lagrange equation can be stated as
<disp-formula id="EEq2">
<label>(2)</label>
<mml:math id="M4">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>L</italic>
is the Lagrangian and defined as the difference between the kinetic and potential energy
<disp-formula id="EEq3">
<label>(3)</label>
<mml:math id="M5">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
Since the potential energy is not a function of the generalized velocities, the Lagrange equation for the
<italic>i</italic>
th generalized coordinate can be written as
<disp-formula id="EEq4">
<label>(4)</label>
<mml:math id="M6">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
By using the chain rule, the above equation can also be written as
<disp-formula id="EEq5">
<label>(5)</label>
<mml:math id="M7">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>n</italic>
is the total number of generalized coordinates.</p>
<p>Adapting to the general format of the dynamic equations (
<xref ref-type="disp-formula" rid="EEq1">1</xref>
),
<bold>M</bold>
(
<italic>q</italic>
),
<inline-formula>
<mml:math id="M8">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
and
<bold>G</bold>
(
<italic>q</italic>
) can be deducted from (
<xref ref-type="disp-formula" rid="EEq5">5</xref>
) as:
<disp-formula id="eq6">
<label>(6)</label>
<mml:math id="M9">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">11</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<disp-formula id="eq7">
<label>(7)</label>
<mml:math id="M10">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi>v</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow></mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow></mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>where
<italic>m</italic>
<sub>
<italic>i</italic>
</sub>
is the mass,
<sup>
<italic>B</italic>
</sup>
<bold>P</bold>
<sub>
<italic>CG</italic>
<sub>
<italic>i</italic>
</sub>
</sub>
is the augmented vector involving center of gravity coordinates of the
<italic>i</italic>
th vertebra,
<inline-formula>
<mml:math id="M11">
<mml:mi mathvariant="bold">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>-</mml:mo>
<mml:mn mathvariant="normal">9.806</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>
is the augmented (a zero is added as the last element) gravitational acceleration since
<italic>y</italic>
-axis is directed upward and [
<sub>
<italic>i</italic>
</sub>
<sup>
<italic>B</italic>
</sup>
<italic>T</italic>
] = [
<sub>1</sub>
<sup>
<italic>B</italic>
</sup>
<italic>T</italic>
][
<sub>2</sub>
<sup>1</sup>
<italic>T</italic>
] ⋯ [
<sub>
<italic>i</italic>
</sub>
<sup>
<italic>i</italic>
− 1</sup>
<italic>T</italic>
] is the 4 × 4 homogenous transformation matrix that represents
<italic>i</italic>
th vertebra coordinate system with respect to the base frame {
<italic>B</italic>
}. The transformation matrix of a frame with respect to the neighboring one is expressed as:
<disp-formula id="eq8">
<label>(8)</label>
<mml:math id="M12">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
<mml:mtext>ORG</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
<mml:mi>  </mml:mi>
<mml:mi>  </mml:mi>
<mml:mn mathvariant="normal">0</mml:mn>
<mml:mi>  </mml:mi>
<mml:mi>  </mml:mi>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
Total kinetic energy of the RLS is:
<disp-formula id="EEq6">
<label>(9)</label>
<mml:math id="M13">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>K</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>N</italic>
<sub>
<italic>v</italic>
</sub>
is the total number of vertebrae and
<sup>
<italic>i</italic>
</sup>
<italic>K</italic>
<sub>
<italic>i</italic>
</sub>
is the kinetic energy of the
<italic>i</italic>
th vertebra expressed in the local vertebral frame and defined as
<disp-formula id="EEq7">
<label>(10)</label>
<mml:math id="M14">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mi>m</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mtext></mml:mtext>
<mml:msup>
<mml:mrow></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<sup>
<italic>i</italic>
</sup>
<bold>V</bold>
<sub>
<italic>G</italic>
<sub>
<italic>i</italic>
</sub>
</sub>
is the linear velocity of the center of gravity,
<sup>
<italic>i</italic>
</sup>
<bold>ω</bold>
<sub>
<italic>i</italic>
</sub>
is the angular velocity,
<sup>
<italic>i</italic>
</sup>
<bold>H</bold>
<sub>
<italic>G</italic>
<sub>
<italic>i</italic>
</sub>
</sub>
=
<sup>
<italic>i</italic>
</sup>
<bold>I</bold>
<sub>
<italic>G</italic>
<sub>
<italic>i</italic>
</sub>
</sub>
<sup>
<italic>i</italic>
</sup>
<bold>ω</bold>
<sub>
<italic>i</italic>
</sub>
is the angular momentum of the
<italic>i</italic>
th vertebra with respect to its local frame, and
<sup>
<italic>i</italic>
</sup>
<bold>I</bold>
<sub>
<italic>G</italic>
<sub>
<italic>i</italic>
</sub>
</sub>
is the inertia tensor.</p>
<p>The right hand side of (
<xref ref-type="disp-formula" rid="EEq2">2</xref>
) is composed of the generalized cable forces and the partial derivative of the potential energy with respect to joint variables (
<italic>q</italic>
) which is actually the gravity term,
<bold>G</bold>
(
<italic>q</italic>
), in the Lagrange equation. Note that
<bold>τ</bold>
is the vector of generalized cable forces. The resulting generalized forces must be calculated for proper use of the Lagrange equation. The
<italic>k</italic>
th generalized force for the robotic lumbar spine can be written as
<disp-formula id="EEq8">
<label>(11)</label>
<mml:math id="M15">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
<mml:mmultiscripts>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow></mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mmultiscripts>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow></mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">L</mml:mi>
</mml:mrow>
<mml:mo>^</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mmultiscripts>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow></mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mprescripts></mml:mprescripts>
<mml:none></mml:none>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mmultiscripts>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>15</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<sup>
<italic>i</italic>
</sup>
<bold>P</bold>
<sub>
<italic>ij</italic>
</sub>
is the augmented position vector from the origin of the local coordinate frame of the
<italic>i</italic>
th vertebra to the connection point of the
<italic>j</italic>
th cable in {
<italic>i</italic>
},
<inline-formula>
<mml:math id="M16">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">L</mml:mi>
</mml:mrow>
<mml:mo>^</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
is the unit vector in the corresponding cable direction, and [
<sub>
<italic>i</italic>
</sub>
<sup>
<italic>B</italic>
</sup>
<italic>T</italic>
] is the previously defined 4 × 4 homogenous transformation matrix.</p>
</sec>
<sec id="sec5.2">
<title>5.2. Cable Tension Optimization</title>
<p>One of the challenges of designing a cable-actuated robot is the fact that the cables must be in tension (positive) at all times during the operation of a task. The robots with rigid links that are actuated with motors are not subject to this limitation. The RLS, being a fully cable-actuated robot, needs to be supplied with positive cable tensions. We start with the previously derived dynamics equations (independent variables are not shown for clarity):
<disp-formula id="EEq9">
<label>(12)</label>
<mml:math id="M17">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>×</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>m</italic>
is the number of degrees of freedom (=15) and
<italic>n</italic>
is the number of cables (=20). In order to solve for positive cable tensions we introduce an intermediate variable
<bold>τ</bold>
<sub>
<italic>v</italic>
</sub>
, which is the virtual input [
<xref ref-type="bibr" rid="B12">12</xref>
] to the system and defined as
<disp-formula id="EEq10">
<label>(13)</label>
<mml:math id="M18">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo minsize="0.75em" maxsize="0.75em">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>×</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mo minsize="0.75em" maxsize="0.75em">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
Therefore, the dynamics equation can be written as:
<disp-formula id="EEq11">
<label>(14)</label>
<mml:math id="M19">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
Equation (
<xref ref-type="disp-formula" rid="EEq11">14</xref>
) can be solved by:
<disp-formula id="EEq12">
<label>(15)</label>
<mml:math id="M20">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<bold>A</bold>
<sup>+</sup>
=
<bold>A</bold>
<sup>
<italic>T</italic>
</sup>
(
<bold>A</bold>
<bold>A</bold>
<sup>
<italic>T</italic>
</sup>
)
<sup>−1</sup>
is the Moore-Penrose pseudo-inverse of
<bold>A</bold>
,
<bold>I</bold>
<sub>
<italic>m</italic>
</sub>
is the (
<italic>m</italic>
×
<italic>m</italic>
) identity matrix, the first term on the right hand side is the particular solution and the second term is the homogenous solution which maps
<bold>z</bold>
(
<italic>m</italic>
× 1 vector) to the null space of
<bold>A</bold>
. The homogenous solution can take any value making the solution nonunique. This property can be utilized to search for a solution that will generate positive cable tensions that are needed to control the RLS. On the other hand, when the homogenous solution is zero, the tensions are calculated in the least-squares sense which does not guarantee a solution that will satisfy the positive cable tensions criterion. It is also imperative to obtain positive and nonzero cable tensions in order to be able to keep the robot under control during a task. Equation (
<xref ref-type="disp-formula" rid="EEq12">15</xref>
) can also be written as [
<xref ref-type="bibr" rid="B13">13</xref>
]:
<disp-formula id="EEq13">
<label>(16)</label>
<mml:math id="M21">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
<mml:mo mathvariant="bold">,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>N</italic>
(
<bold>A</bold>
)  is the (
<italic>n</italic>
×
<italic>n</italic>
<italic>m</italic>
) kernel matrix of
<bold>A</bold>
and
<bold>σ</bold>
<sub>(
<italic>n</italic>
<italic>m</italic>
×1)</sub>
= {
<italic>σ</italic>
<sub>1</sub>
,
<italic>σ</italic>
<sub>2</sub>
,…,
<italic>σ</italic>
<sub>
<italic>n</italic>
<italic>m</italic>
</sub>
}
<sup>
<italic>T</italic>
</sup>
is an arbitrary vector.</p>
<p>An optimization procedure can be employed with a proper objective function to solve (
<xref ref-type="disp-formula" rid="EEq13">16</xref>
) with positive and nonzero cable tensions. One of the optimization procedures is by using linear programming, which is formulated as [
<xref ref-type="bibr" rid="B14">14</xref>
]
<disp-formula id="eq17">
<label>(17)</label>
<mml:math id="M22">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:malignmark></mml:malignmark>
<mml:munder>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo></mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
<mml:mo mathvariant="bold">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mtext>such</mml:mtext>
<mml:mi>  </mml:mi>
<mml:mtext>that</mml:mtext>
<mml:mo></mml:mo>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
<mml:mo mathvariant="bold">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
<mml:mo></mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:mi mathvariant="bold">b</mml:mi>
<mml:mo mathvariant="bold">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<bold>f</bold>
is the (
<italic>n</italic>
<italic>m</italic>
× 1) linear objective function vector,
<bold>b</bold>
is the (
<italic>n</italic>
× 1) vector that holds minimum allowed positive tensions (lower boundary for
<bold>t</bold>
), and
<bold>σ</bold>
<sub>
<italic>l</italic>
</sub>
and
<bold>σ</bold>
<sub>
<italic>u</italic>
</sub>
are, respectively the lower and upper boundaries for the arbitrary
<bold>σ</bold>
vector in (
<xref ref-type="disp-formula" rid="EEq13">16</xref>
). This optimization procedure, when converges to a minimum solution, produces point-wise feasible positive cable tensions that are equal or higher than the limits specified in
<bold>b</bold>
. However, these feasible cable tensions are not guaranteed to be continuous in time during the task. This discontinuity is not desirable since it may cause instability during real-time control of the robot. Therefore, we introduce a new optimization scheme that will result in cable tensions that are both point-wise feasible and continuous in time. The proposed optimization scheme makes use of the previous solution to be able to choose the current solution to be as close to it as possible. This scheme which minimizes the norm of the difference between the previous and current solution can be formulated as follows:
<disp-formula id="eq18">
<label>(18)</label>
<mml:math id="M23">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:malignmark></mml:malignmark>
<mml:mrow>
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>||</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>||</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mtext>such</mml:mtext>
<mml:mi>  </mml:mi>
<mml:mtext>that</mml:mtext>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="bold">+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="bold">+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">b</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
<mml:mo></mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="bold">+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:mi mathvariant="bold">b</mml:mi>
<mml:mo mathvariant="bold">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
In order to minimize this constrained nonlinear multivariable objective function, a numerical method can be applied. In this study, the built-in MATLAB (The MathWorks, Inc.) function
<italic>fmincon</italic>
() is used for that purpose. The effect of using the previous solution on the acquisition of positive cable tensions with the above formulation is discussed after the control problem is addressed.</p>
</sec>
<sec id="sec5.3">
<title>5.3. Trajectory Control with Feedback Linearization</title>
<p>In this section, we solve the control problem for the RLS by using feedback linearization technique. Feedback linearization control, also known as computed-torque control, aims to cancel the nonlinearities of a system and reduce it to a linear system to be controlled by a linear servo law. Decomposing the controller design into model-based and servo-based portions helps solve the control problem in a more systematic way. Model-based portion contains a model of the nonlinearity and includes system parameters. Servo-based portion includes only the control law and is independent of the model-based portion and, therefore, system parameters [
<xref ref-type="bibr" rid="B15">15</xref>
]. The dynamics equation for the RLS is
<disp-formula id="EEq14">
<label>(19)</label>
<mml:math id="M24">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<bold>τ</bold>
<sub>
<italic>v</italic>
</sub>
=
<bold>A</bold>
<bold>t</bold>
is the virtual input to the system which was previously introduced as an intermediate variable. This virtual input is utilized to be able to find positive and nonzero cable tensions. The model-based portion of the controller is defined as
<disp-formula id="EEq15">
<label>(20)</label>
<mml:math id="M25">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>α</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi></mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mi>β</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<disp-formula id="EEq16">
<label>(21)</label>
<mml:math id="M26">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi>α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mi>β</mml:mi>
<mml:mo>=</mml:mo>
<mml:malignmark></mml:malignmark>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
The servo-based portion that includes a proportional-derivative control law is
<disp-formula id="EEq17">
<label>(22)</label>
<mml:math id="M27">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi></mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<inline-formula>
<mml:math id="M28">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
is the desired accelerations,
<bold>K</bold>
<sub>
<bold>p</bold>
</sub>
and
<bold>K</bold>
<sub>
<bold>d</bold>
</sub>
are, respectively, proportional and derivative control gain matrices. The control gains are both 15 × 15 and diagonal matrices which implies that the PD control law is implemented independently for each degree of freedom (i.e., angle of rotation).
<bold>e</bold>
=
<bold>q</bold>
<sub>
<bold>d</bold>
</sub>
<bold>q</bold>
is the servo error between desired and actual trajectories. The error dynamics of the proposed control law can be found by first plugging (
<xref ref-type="disp-formula" rid="EEq17">22</xref>
) into (
<xref ref-type="disp-formula" rid="EEq15">20</xref>
) and the resulting equation into the dynamics equation:
<disp-formula id="eq23">
<label>(23)</label>
<mml:math id="M29">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
Noting that
<inline-formula>
<mml:math id="M30">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:math>
</inline-formula>
above equation written in error space becomes
<disp-formula id="eq24">
<label>(24)</label>
<mml:math id="M31">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:maligngroup></mml:maligngroup>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
<mml:msub>
<mml:mrow>
<mml:mi>  </mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>  </mml:mi>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
The equation above is a second-order differential equation and the coefficients now can be chosen to shape the dynamic response of the system. It should also be noted that the left-hand side of the equation must be a Hurwitz polynomial to provide a stable closed-loop response.</p>
<p>Controller architecture for the RLS is shown in
<xref ref-type="fig" rid="fig4">Figure 4</xref>
. It is composed of a trajectory generator, PD controller, virtual to real calculation, and the forward dynamics blocks. Trajectory generator provides the desired angles (
<bold>q</bold>
<sub>
<bold>d</bold>
</sub>
) at every time step based on a quintic polynomial in order to control first and second derivatives (
<inline-formula>
<mml:math id="M32">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
,
<inline-formula>
<mml:math id="M33">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mo>¨</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
) of the desired angles at the beginning and end of a path segment or trajectory. These derivatives are generally set to be zero to be able to obtain smooth movement of the robot. PD controller, as discussed previously, is needed to control the robot to follow the trajectory with a diminishing error between actual and desired angles of rotation. Controller gains can be chosen to obtain desired dynamic response, and they affect the error dynamics, that is, how fast the robot can recover from an error at any given time during the task. Virtual to real calculation is necessary in order to acquire positive nonzero cable tensions (
<bold>t</bold>
<sub>+</sub>
). The inner workings of this block were detailed previously in the section that describes the cable tension optimization.</p>
</sec>
<sec id="sec5.4">
<title>5.4. Simulation Results</title>
<p>The simulations were run for six different motion types (flexion/extension, right/left lateral bendings and right/left torsions). Due to space considerations, however, the results for only (right) lateral bending motion are presented. The results for remaining motion types can be found in [
<xref ref-type="bibr" rid="B10">10</xref>
]. Lateral bending is one of the most involved motion types in terms of the existence of coupled movements. Coupled movement of vertebrae occurs when the motion to the lumbar spine is induced in one specific plane (in frontal plane for lateral bending) which causes vertebrae to move in more than one plane. The desired angles of rotations (
<xref ref-type="table" rid="tab1">Table 1</xref>
) for the RLS are acquired from experimental data [
<xref ref-type="bibr" rid="B5">5</xref>
] which were obtained after applying 2.5 Nm pure moment about
<italic>z</italic>
-axis of the freshly frozen lumbosacral spine specimens. The masses of the vertebrae from L5 to L1 are 0.0125, 0.0132, 0.0123, 0.0113 and 0.0100 kg, respectively. The trajectory generator starts at 0.1 sec, and simulation is run for a total of 1.5 sec. The control gains used are 5 and 6 for
<bold>K</bold>
<sub>
<bold>p</bold>
</sub>
and
<bold>K</bold>
<sub>
<bold>d</bold>
</sub>
, respectively.</p>
<p>
<xref ref-type="fig" rid="fig5">Figure 5</xref>
shows the commanded (desired) and actual paths followed by the RLS. The corresponding tracking errors are shown in
<xref ref-type="fig" rid="fig6">Figure 6</xref>
.</p>
<p>In order to test the effectiveness of the new method for solving positive continuous cable tensions, the cable tensions are solved with and without implementing the proposed continuity algorithm.
<xref ref-type="fig" rid="fig7"> Figure 7</xref>
shows the cable tensions without the continuity algorithm. Even though all tensions are solved to be positive discontinuity is apparent.
<xref ref-type="fig" rid="fig8"> Figure 8</xref>
shows the results of the simulation with the same parameters before but with the continuity algorithm. It is seen that the solved tensions are all positive and continuous in time.</p>
</sec>
</sec>
<sec id="sec6">
<title>6. Discussion</title>
<p>Conceptually, the RLS was designed to support some apparent needs that the instructors and the students of institutions that teach palpatory diagnosis are currently facing. These needs can be collected under three main items:
<list list-type="order">
<list-item>
<p>limited variation of dysfunctions that can be practiced in a lab environment,</p>
</list-item>
<list-item>
<p>repeatability issues due to the inherent characteristics of tissues to change properties due to repetitive manual manipulation,</p>
</list-item>
<list-item>
<p>lack of an objective assessment tool to evaluate the transfer of practical knowledge from the instructor to the students. </p>
</list-item>
</list>
With the RLS, there would be virtually no limit to the abnormal movement patterns to practice. These abnormal movement patterns could be programmed easily if the data are readily available, that is, if experimental data or accurate models exist. If no data are available, experience of professional experts may be utilized to generate the required data for abnormal movement patterns by trial and error until a general consensus among the experts is reached. The RLS, as any other robot, would be repeatable (to a certain degree that needs to be calculated and validated experimentally) by configuring itself correctly according to the user's input from the joystick/haptic device. As mentioned previously, there exists no assessment device for instructors to objectively evaluate progress and success of the students in real-life situations. By means of the RLS, all students can be objectively tested on identifying the normal/abnormal movement patterns of the lumbar spine. Since the RLS is also repeatable, any number of students may be tested for the same or different dysfunctions as needed. </p>
<p>The equations of motion were complex and highly nonlinear. This is expected due to the number of degrees of freedom considered (15 DOFs) and the actuation redundancy. Note that, for systems the links of which are actuated at the joints,
<bold>τ</bold>
in (
<xref ref-type="disp-formula" rid="EEq1">1</xref>
) is independent of the generalized coordinates (
<italic>q</italic>
) when they are defined to be the joint variables (angle of rotation for revolute and distance for prismatic joints). However, as shown in the text,
<bold>τ</bold>
for the robotic lumbar spine is a function of the generalized coordinates since the actuation is not performed at the spherical joints. This adds to the complexity of the equations.</p>
<p>The simulations for the control of the RLS showed that the tracking errors were less than 0.005 degrees for all degrees of freedom during the entire range of motion which implied that the designed controller performed as expected. The results of the simulations also showed that the new method proposed to solve for positive cable tensions was very effective in eliminating the spikes in the cable tensions. The results for all motion types, when the effect of the continuity algorithm was tested, were very similar to the results of the right lateral bending as presented here.</p>
<p>The RLS was designed to change configuration by a force-feedback joystick or an affordable haptic device (such as Falcon from Novint Technologies Inc.). By moving the joystick, the angles of rotations will be commanded to the RLS, therefore representing a normal lumbar spine movement. A static model of the human lumbar spine was derived to obtain these normal movement patterns of the lumbar spine for six different types of motion. It is also planned that some abnormalities consistent with known dysfunctional movement patterns (vertebral fusion, rotational resistance of vertebra about an axis, etc.) could be mimicked based on these normal movement patterns.</p>
</sec>
<sec id="sec7">
<title>7. Conclusion</title>
<p>The dynamic model and nonlinear control of a 15-degree-of-freedom, cable-actuated robotic lumbar spine (RLS) were presented. A new method was proposed that enables the solution of positive and continuous cable tensions for cable-actuated robots. The simulation results confirmed that the tracking errors during the simulated motion were small and the proposed continuity algorithm proved to be very effective in obtaining positive cable tensions that are also continuous in time.</p>
</sec>
</body>
<back>
<ref-list>
<ref id="B1">
<label>1</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Howell</surname>
<given-names>JN</given-names>
</name>
<name>
<surname>Conatser</surname>
<given-names>RR</given-names>
</name>
<name>
<surname>Williams</surname>
<given-names>RL</given-names>
</name>
<name>
<surname>Burns</surname>
<given-names>JM</given-names>
</name>
<name>
<surname>Eland</surname>
<given-names>DC</given-names>
</name>
</person-group>
<article-title>The virtual haptic back: a simulation for training in palpatory diagnosis</article-title>
<source>
<italic>BMC Medical Education</italic>
</source>
<year>2008</year>
<volume>8</volume>
<issue>article 14</issue>
<pub-id pub-id-type="other">2-s2.0-43149124215</pub-id>
</element-citation>
</ref>
<ref id="B2">
<label>2</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Mizuuchi</surname>
<given-names>I</given-names>
</name>
<name>
<surname>Inaba</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Inoue</surname>
<given-names>H</given-names>
</name>
</person-group>
<article-title>A flexible spine human-form robot—development and control of the posture of the spine</article-title>
<conf-name>Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems</conf-name>
<conf-date>November 2001</conf-date>
<publisher-loc>Maui, Hawaii, USA</publisher-loc>
<fpage>2099</fpage>
<lpage>2104</lpage>
<pub-id pub-id-type="other">2-s2.0-0035559151</pub-id>
</element-citation>
</ref>
<ref id="B3">
<label>3</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Mizuuchi</surname>
<given-names>I</given-names>
</name>
<name>
<surname>Tajima</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Yoshikai</surname>
<given-names>T</given-names>
</name>
<etal></etal>
</person-group>
<article-title>The design and control of the flexible spine of a fully tendon-driven humanoid “Kenta”</article-title>
<conf-name>Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems</conf-name>
<conf-date>October 2002</conf-date>
<publisher-loc>Lausanne, Switzerland</publisher-loc>
<fpage>2527</fpage>
<lpage>2532</lpage>
<pub-id pub-id-type="other">2-s2.0-0036453794</pub-id>
</element-citation>
</ref>
<ref id="B4">
<label>4</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Roos</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Guenter</surname>
<given-names>F</given-names>
</name>
<name>
<surname>Guignard</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Billard</surname>
<given-names>AG</given-names>
</name>
</person-group>
<article-title>Design of a biomimetic spine for the humanoid robot Robota</article-title>
<conf-name>Proceedings of the 1st IEEE/RAS-EMBS International Conference on Biomedical Robotics and Biomechatronics, 2006 (BioRob '06)</conf-name>
<conf-date>February 2006</conf-date>
<publisher-loc>Pisa, Italy</publisher-loc>
<fpage>329</fpage>
<lpage>334</lpage>
<pub-id pub-id-type="other">2-s2.0-33845588128</pub-id>
</element-citation>
</ref>
<ref id="B5">
<label>5</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Panjabi</surname>
<given-names>MM</given-names>
</name>
<name>
<surname>Oxland</surname>
<given-names>TR</given-names>
</name>
<name>
<surname>Yamamoto</surname>
<given-names>I</given-names>
</name>
<name>
<surname>Crisco</surname>
<given-names>JJ</given-names>
</name>
</person-group>
<article-title>Mechanical behavior of the human lumbar and lumbosacral spine as shown by three-dimensional load-displacement curves</article-title>
<source>
<italic>Journal of Bone and Joint Surgery A</italic>
</source>
<year>1994</year>
<volume>76</volume>
<issue>3</issue>
<fpage>413</fpage>
<lpage>424</lpage>
<pub-id pub-id-type="other">2-s2.0-0028350725</pub-id>
</element-citation>
</ref>
<ref id="B6">
<label>6</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Karadogan</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Williams</surname>
<given-names>RL</given-names>
<suffix>II</suffix>
</name>
</person-group>
<article-title>A cable-actuated robotic lumbar spine for palpatory training of medical students</article-title>
<conf-name>Proceedings of the ASME International Design Technical Conferences, 34th Mechanisms and Robotics Conference</conf-name>
<conf-date>August 2010</conf-date>
<conf-loc>Quebec, Canada</conf-loc>
<fpage>309</fpage>
<lpage>318</lpage>
<pub-id pub-id-type="other">2-s2.0-80055010246</pub-id>
</element-citation>
</ref>
<ref id="B7">
<label>7</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Sullivan</surname>
<given-names>JA</given-names>
</name>
<name>
<surname>Soni</surname>
<given-names>AH</given-names>
</name>
<name>
<surname>Patwardhan</surname>
<given-names>AG</given-names>
</name>
</person-group>
<article-title>Kinematic analysis of intervertebral motion of the human lumbar spine</article-title>
<source>
<italic>Final Report</italic>
</source>
<year>1979</year>
<publisher-name>OREF</publisher-name>
</element-citation>
</ref>
<ref id="B8">
<label>8</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Soni</surname>
<given-names>AH</given-names>
</name>
<name>
<surname>Sullivan</surname>
<given-names>JA</given-names>
<suffix>Jr.</suffix>
</name>
<name>
<surname>Patwardhan</surname>
<given-names>AG</given-names>
</name>
<name>
<surname>Gudavalli</surname>
<given-names>MR</given-names>
</name>
<name>
<surname>Chitwood</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>Kinematic analysis and simulation of vertebral motion under static load. Part I: kinematic</article-title>
<source>
<italic>Journal of Biomechanical Engineering</italic>
</source>
<year>1982</year>
<volume>102</volume>
<issue>2</issue>
<fpage>105</fpage>
<lpage>111</lpage>
<pub-id pub-id-type="other">2-s2.0-0020130891</pub-id>
<pub-id pub-id-type="pmid">7078123</pub-id>
</element-citation>
</ref>
<ref id="B9">
<label>9</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sharma</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Langrana</surname>
<given-names>NA</given-names>
</name>
<name>
<surname>Rodriguez</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>Modeling of facet articulation as a nonlinear moving contact problem: sensitivity study on lumbar facet response</article-title>
<source>
<italic>Journal of Biomechanical Engineering</italic>
</source>
<year>1998</year>
<volume>120</volume>
<issue>1</issue>
<fpage>118</fpage>
<lpage>125</lpage>
<pub-id pub-id-type="other">2-s2.0-0032006838</pub-id>
<pub-id pub-id-type="pmid">9675690</pub-id>
</element-citation>
</ref>
<ref id="B10">
<label>10</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Karadogan</surname>
<given-names>E</given-names>
</name>
</person-group>
<source>
<italic>A cable-actuated robotic lumbar spine as the haptic interface for palpatory training of medical students [Ph.D. dissertation]</italic>
</source>
<year>2011</year>
<publisher-loc>Athens, Ohio, USA</publisher-loc>
<publisher-name>Ohio University</publisher-name>
</element-citation>
</ref>
<ref id="B11">
<label>11</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Spong</surname>
<given-names>MW</given-names>
</name>
<name>
<surname>Hutchinson</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Vidyasagar</surname>
<given-names>M</given-names>
</name>
</person-group>
<source>
<italic>Robot Dynamics and Control</italic>
</source>
<year>2004</year>
<publisher-name>John Wiley & Sons</publisher-name>
</element-citation>
</ref>
<ref id="B12">
<label>12</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Williams</surname>
<given-names>RL</given-names>
<suffix>II</suffix>
</name>
<name>
<surname>Gallina</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Vadia</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>Planar translational cable-direct-driven robots</article-title>
<source>
<italic>Journal of Robotic Systems</italic>
</source>
<year>2003</year>
<volume>20</volume>
<issue>3</issue>
<fpage>107</fpage>
<lpage>120</lpage>
<pub-id pub-id-type="other">2-s2.0-0037337474</pub-id>
</element-citation>
</ref>
<ref id="B13">
<label>13</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Shen</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Osumi</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Arai</surname>
<given-names>T</given-names>
</name>
</person-group>
<article-title>Manipulability measures for multi-wire driven parallel mechanisms</article-title>
<conf-name>Proceedings of the IEEE International Conference on Industrial Technology</conf-name>
<conf-date>1994</conf-date>
<fpage>550</fpage>
<lpage>554</lpage>
</element-citation>
</ref>
<ref id="B14">
<label>14</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>L-F</given-names>
</name>
<name>
<surname>Krovi</surname>
<given-names>VN</given-names>
</name>
</person-group>
<article-title>Simultaneous trajectory tracking and stiffness control of cable actuated parallel manipulator</article-title>
<conf-name>Proceedings of the ASME International Design Engineering Technical Conferences and Computers and Information in Engineering Conference (IDETC/CIE '09)</conf-name>
<conf-date>September 2009</conf-date>
<publisher-loc>San Diego, Calif, USA</publisher-loc>
<fpage>55</fpage>
<lpage>63</lpage>
<pub-id pub-id-type="other">2-s2.0-82155184419</pub-id>
</element-citation>
</ref>
<ref id="B15">
<label>15</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Craig</surname>
<given-names>J</given-names>
</name>
</person-group>
<source>
<italic>Introduction to Robotics: Mechanics and Control</italic>
</source>
<year>1989</year>
<publisher-name>Addison-Wesley</publisher-name>
</element-citation>
</ref>
</ref-list>
</back>
<floats-group>
<fig id="fig1" orientation="portrait" position="float">
<label>Figure 1</label>
<caption>
<p>Facet plane and angle.</p>
</caption>
<graphic xlink:href="CMMM2013-985248.001"></graphic>
</fig>
<fig id="fig2" orientation="portrait" position="float">
<label>Figure 2</label>
<caption>
<p>Three-dimensional geometry of the lumbar spine [
<xref ref-type="bibr" rid="B6">6</xref>
].</p>
</caption>
<graphic xlink:href="CMMM2013-985248.002"></graphic>
</fig>
<fig id="fig3" orientation="portrait" position="float">
<label>Figure 3</label>
<caption>
<p>The robotic lumbar spine (RLS).</p>
</caption>
<graphic xlink:href="CMMM2013-985248.003"></graphic>
</fig>
<fig id="fig4" orientation="portrait" position="float">
<label>Figure 4</label>
<caption>
<p>RLS controller schematic.</p>
</caption>
<graphic xlink:href="CMMM2013-985248.004"></graphic>
</fig>
<fig id="fig5" orientation="portrait" position="float">
<label>Figure 5</label>
<caption>
<p>Desired and actual angles of rotations (right bending,
<italic>α</italic>
<sub>
<italic>d</italic>
</sub>
,
<italic>β</italic>
<sub>
<italic>d</italic>
</sub>
,
<italic>γ</italic>
<sub>
<italic>d</italic>
</sub>
: desired,
<italic>α</italic>
<sub>
<italic>a</italic>
</sub>
,
<italic>β</italic>
<sub>
<italic>a</italic>
</sub>
,
<italic>γ</italic>
<sub>
<italic>a</italic>
</sub>
: actual angles of rotation about
<italic>x</italic>
-,
<italic>y</italic>
- and
<italic>z</italic>
-axes, resp.).</p>
</caption>
<graphic xlink:href="CMMM2013-985248.005"></graphic>
</fig>
<fig id="fig6" orientation="portrait" position="float">
<label>Figure 6</label>
<caption>
<p>Tracking errors (right bending,
<italic>α</italic>
<sub>
<italic>err</italic>
</sub>
=
<italic>α</italic>
<sub>
<italic>d</italic>
</sub>
<italic>α</italic>
<sub>
<italic>a</italic>
</sub>
,
<italic>β</italic>
<sub>
<italic>err</italic>
</sub>
=
<italic>β</italic>
<sub>
<italic>d</italic>
</sub>
<italic>β</italic>
<sub>
<italic>a</italic>
</sub>
, and
<italic>γ</italic>
<sub>
<italic>err</italic>
</sub>
=
<italic>γ</italic>
<sub>
<italic>d</italic>
</sub>
<italic>γ</italic>
<sub>
<italic>a</italic>
</sub>
).</p>
</caption>
<graphic xlink:href="CMMM2013-985248.006"></graphic>
</fig>
<fig id="fig7" orientation="portrait" position="float">
<label>Figure 7</label>
<caption>
<p>Cable tensions solved without continuity algorithm (right bending).</p>
</caption>
<graphic xlink:href="CMMM2013-985248.007"></graphic>
</fig>
<fig id="fig8" orientation="portrait" position="float">
<label>Figure 8</label>
<caption>
<p>Cable tensions solved with continuity algorithm (right bending).</p>
</caption>
<graphic xlink:href="CMMM2013-985248.008"></graphic>
</fig>
<table-wrap id="tab1" orientation="portrait" position="float">
<label>Table 1</label>
<caption>
<p>Desired angles of rotation for right bending [
<xref ref-type="bibr" rid="B5">5</xref>
].</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="1" colspan="1">Motion segment</th>
<th align="center" rowspan="1" colspan="1">
<italic>α</italic>
(°)
<sup></sup>
</th>
<th align="center" rowspan="1" colspan="1">
<italic>β</italic>
(°)
<sup></sup>
</th>
<th align="center" rowspan="1" colspan="1">
<italic>γ</italic>
(°)
<sup></sup>
</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">L5-S1</td>
<td align="center" rowspan="1" colspan="1">0.50</td>
<td align="center" rowspan="1" colspan="1">1.00</td>
<td align="center" rowspan="1" colspan="1">2.60</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">L4-L5</td>
<td align="center" rowspan="1" colspan="1">1.00</td>
<td align="center" rowspan="1" colspan="1">1.00</td>
<td align="center" rowspan="1" colspan="1">3.00</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">L3-L4</td>
<td align="center" rowspan="1" colspan="1">0.75</td>
<td align="center" rowspan="1" colspan="1">0.75</td>
<td align="center" rowspan="1" colspan="1">3.10</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">L2-L3</td>
<td align="center" rowspan="1" colspan="1">0.75</td>
<td align="center" rowspan="1" colspan="1">0.50</td>
<td align="center" rowspan="1" colspan="1">3.50</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">L1-L2</td>
<td align="center" rowspan="1" colspan="1">0.25</td>
<td align="center" rowspan="1" colspan="1">0.00</td>
<td align="center" rowspan="1" colspan="1">2.75</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>
<sup></sup>
<italic>α</italic>
,
<italic>β</italic>
and
<italic>γ</italic>
are the angles of rotations about
<italic>x</italic>
-,
<italic>y</italic>
-, and
<italic>z</italic>
-axes, respectively.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</floats-group>
</pmc>
<affiliations>
<list>
<country>
<li>États-Unis</li>
</country>
<region>
<li>Ohio</li>
<li>Texas</li>
</region>
</list>
<tree>
<country name="États-Unis">
<region name="Texas">
<name sortKey="Karadogan, Ernur" sort="Karadogan, Ernur" uniqKey="Karadogan E" first="Ernur" last="Karadogan">Ernur Karadogan</name>
</region>
<name sortKey="Williams, Robert L" sort="Williams, Robert L" uniqKey="Williams R" first="Robert L." last="Williams">Robert L. Williams</name>
</country>
</tree>
</affiliations>
</record>

Pour manipuler ce document sous Unix (Dilib)

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

Ou

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

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

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    HapticV1
   |flux=    Pmc
   |étape=   Checkpoint
   |type=    RBID
   |clé=     PMC:3787629
   |texte=   The Robotic Lumbar Spine: Dynamics and Feedback Linearization Control
}}

Pour générer des pages wiki

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

Wicri

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