Ajay Seth

și Bioinginerie, Universitatea Stanford, Stanford, CA, SUA

Michael Sherman

și Bioinginerie, Universitatea Stanford, Stanford, CA, SUA

Jeffrey A. Reinbolt

b Inginerie mecanică, aerospațială și biomedicală, Universitatea din Tennessee, Knoxville, TN, SUA

Scott L. Delp

și Bioinginerie, Universitatea Stanford, Stanford, CA, SUA

c Inginerie mecanică, Universitatea Stanford, Stanford, CA, SUA

Abstract

1. Introducere

Modelarea și simularea musculo-scheletului are un potențial extraordinar de a îmbunătăți îngrijirea pacientului și de a reduce costurile tratamentului prin elucidarea relațiilor de cauză și efect la persoanele cu tulburări neurologice și musculo-scheletice și prin prezicerea tratamentelor chirurgicale și de reabilitare eficiente. Experimentele singure nu pot identifica sursele de mișcare anormală, iar proiectarea tratamentelor rămâne limitată, deoarece variabile importante, cum ar fi forțele musculare, nu sunt în general măsurabile. Simulările dinamice acționate de mușchi devin o abordare viabilă pentru a determina modul în care elementele sistemului musculo-scheletic interacționează pentru a produce mișcare. Pentru a aplica această tehnologie emergentă, pentru a identifica ce elemente afectează tulburarea de mișcare a unui individ (de exemplu, deformări osoase, excitații musculare anormale sau slăbiciune musculară) și pentru a evalua tratamente potențiale, avem nevoie de simulări tridimensionale, acționate de mușchi, care să reproducă cu exactitate mersul și alte dinamici de mișcare ale pacienților individuali. În plus, tehnologia de simulare trebuie să fie scalabilă și reutilizabilă pentru o varietate de modele și mișcări, iar aceste modele și date ar trebui să fie transferabile și rezultatele lor reproductibile.

În calitate de centru național NIH pentru simularea structurilor biologice bazată pe fizică (Simbios), mandatul nostru este de a dezvolta și disemina un kit de instrumente de simulare (SimTK) pentru a reduce barierele în calea adoptării simulării ca instrument pentru avansarea cercetării biomedicale. În special, am introdus OpenSim [1] ca resursă comunitară pentru a permite anchetatorilor individuali să modeleze și să simuleze dinamica neuromusculoscheletală în scopul înțelegerii mersului în populațiile neafectate și de pacienți.

1.1. Prezentare generală OpenSim

OpenSim cuprinde un cadru software pentru omul de știință, biomecanist, robotic, neurolog, chirurg ortoped sau orice entuziast de mișcare umană sau animală care dorește să construiască modele musculo-scheletice, să simuleze mișcarea și să analizeze comportamentele rezultate. Acest cadru include 1) o aplicație pentru utilizatorul final cu o interfață grafică pentru utilizator (GUI), 2) un set de utilitare din linia de comandă, 3) un kit de dezvoltare software (SDK) care include interfețe de programare a aplicațiilor (API) și biblioteci corespunzătoare, 4 ) un set standardizat de formate de fișiere pentru definirea și partajarea modelelor neuromusculoscheletice și a datelor conexe și 5) un set în creștere de modele musculo-scheletice reutilizabile în aceste formate, dezvoltat și publicat de diverși cercetători [2, 1, 3, 4]. Deși majoritatea utilizatorilor sunt deserviți de OpenSim GUI pentru acces la instrumentele existente, executabilele din linia de comandă facilitează procesarea în lot și gestionarea datelor prin programe terțe și scripturi shell.

Extinderea capacităților programului OpenSim necesită un nivel modest de abilități de programare C ++ și cunoștințe despre API-ul OpenSim. Extensiile iau două forme: 1) „pluginuri” care extind setul de instrumente existente și pot fi utilizate, de exemplu, din cadrul OpenSim GUI și 2) noi programe care utilizează OpenSim API, cum ar fi GUI-uri cu destinație specială sau utilitare suplimentare din linia de comandă. Pluginurile OpenSim fac extensiile utilizatorului ușoare atunci când funcționalitatea nouă se încadrează în una din cele două categorii: un nou element de model sau o metodă de extragere a stărilor sau măsurătorilor dintr-un model sau simulare. Un exemplu de extensie de utilizator ar putea fi un program de linie de comandă care determină parametrii modelului musculo-scheletic specific subiectului din datele experimentale utilizând un algoritm nou. Instrumentele din linia de comandă OpenSim sunt implementate în același mod; utilizează API-ul OpenSim pentru a încărca un model specificat, pentru a executa o secvență de rezolvatori și pentru a raporta rezultatele.

Bibliotecile OpenSim sunt scrise în C ++ și accesate printr-un API orientat obiect. Un design modular ajută la menținerea programatorului de pluginuri casual concentrat pe crearea unei singure clase sau metode fără a fi nevoie să stăpânească funcționarea interioară din spatele API-ului OpenSim. Acest design este discutat în secțiunea 3 de mai jos. API-ul și bibliotecile OpenSim sunt la rândul lor construite pe Simbody, care face parte, de asemenea, din SimTK, care oferă un API extins pentru asamblarea și gestionarea sistemului multicorp subiacent și efectuarea calculelor dinamicii multicorpului și a altor operații numerice. Simbody este descris într-o lucrare însoțitoare în aceste proceduri [5]. Programatorii OpenSim API au acces complet și la API-ul Simbody.

1.2. Capabilitățile OpenSim

OpenSim permite construirea de modele musculo-scheletice, vizualizarea mișcării acestora și un set de instrumente pentru extragerea informațiilor semnificative. Aceste instrumente includ cinematică inversă, pentru a rezolva coordonatele interne din pozițiile disponibile ale markerului spațial, corespunzătoare reperelor cunoscute pe segmente rigide; dinamica inversă pentru a determina setul de forțe generalizate necesare pentru a se potrivi cu accelerațiile estimate; optimizare statică [6, 7] pentru a descompune forțele nete generalizate printre actuatori redundanți (mușchi); și dinamica directă pentru a genera traiectorii ale stărilor prin integrarea ecuațiilor dinamice ale sistemului ca răspuns la controalele de intrare și forțele externe. Sunt furnizate instrumente specializate pentru generarea de simulări specifice pacientului. Acestea includ scalarea unui model existent pentru a se potrivi măsurătorilor specifice pacientului [8] și determinarea activărilor musculare dinamice care determină modelul să urmărească datele experimentale [9].

Modelele OpenSim sunt alcătuite din mai multe elemente (componente) care au echivalenți de calcul în sistemul de bază multicorp Simbody. Acestea includ: oase (corpuri rigide), articulații (mobilizatoare, constrângeri și forțe), elemente de contact (constrângeri rigide și forțe conforme), precum și ligamente și dispozitive de acționare musculară (forțe). Reprezentarea comenzilor neuronale provenite din sistemul nervos central care controlează activitatea musculară și astfel generarea forței musculare este centrală pentru simularea neuromusculoscheletală. Prin urmare, OpenSim oferă, de asemenea, un element de control care poate consta în funcții definite de utilizator, control de feedback canonic, control optim, precum și modele surogate simplificate pentru estimarea controlului avansului de alimentare.

2. Modelarea cinematicii, dinamicii și controlului sistemului musculo-scheletic uman

Mișcarea la animale și oameni este rezultatul unei cascade de procese fiziologice neurologice și musculare care duc la forțe pe oase care generează forțe de reacție și accelerează articulațiile. Dinamica multicorp joacă un rol cheie, oferind o bază fizică pentru transformarea forțelor fiziologice în mișcare în conformitate cu legile mișcării lui Newton. Forțele dominante care conduc sistemul osos sunt forțele musclulotendinoase. Forțele musculare apar din interacțiunile proteice care determină contractarea fibrelor musculare ca răspuns la starea electrică a fibrelor musculare. Starea electrică a unui mușchi (activarea acestuia) este modulată de intrările neuronale din sistemul nervos central (SNC) cunoscute și sub numele de excitații musculare [10]. Ca oameni de știință în mișcare, suntem interesați să înțelegem controlul dinamicii musculo-scheletice pentru a produce mișcare coordonată. Astfel, controlerul din modelul canonic (Fig. 1) oferă un cadru conceptual pentru testarea modelelor CNS în ceea ce privește generarea de mișcare.

cadru

O diagramă bloc canonică a sistemului musculo-scheletic dinamic. Intrările sunt excitația musculară sau, mai general, comenzile actuatorului, iar ieșirile sunt traiectorii pentru coordonate generalizate, q și viteze, u, precum și stări musculare, z, în funcție de timp, t. Sursele primare ale dinamicii sistemului sunt actuatorii musculotendinoși și dinamica scheletului multicorp. Controlerele pot introduce, de asemenea, dinamici pentru a simula întârzierea transmiterii semnalului și alte comportamente fiziologice.

2.1. Articulațiile biologice

Îmbinările biologice sunt diferite de articulațiile umane și sunt deservite de setul de articulații revolute, glisante, universale, plane și cu bilă disponibile în simulatoarele mecanice. Deoarece fiecare articulație biologică este unică, modelatorul care folosește instrumente de proiectare asistate de computer pentru mașini industriale se confruntă cu presupuneri și simplificări inutile sau sacrificând performanțele.

Luați, de exemplu, articulația scapulotoracică a umărului. A fost descris de o suprafață toracică elipsoidă pe care scapula (omoplatul) se rotește și se traduce [11]. Poate fi modelat prin 6 coordonate generalizate și 3 ecuații de constrângere, pentru 3 grade de libertate (dof), sau 9 coordonate generalizate și 5 constrângeri pentru un complex de 4 umeri dof [12]. Reprezentarea comună a coordonatelor interne în Simbody, denumită mobilizator, poate specifica orice distribuitor continuu de mișcare permisă parametrizat de la 1 la 6 coordonate generalizate [13]. Putem exploata generalitatea unui mobilizator pentru a defini articulații care să servească mai bine nevoile modelatorilor biomecanici, cum ar fi o ElipsoidJoint.

Un EllipsoidJoint parametrează mișcarea relativă a unui corp mobil în raport cu un corp părinte astfel încât cadrul articular al corpului mobil să urmărească suprafața unui elipsoid fixat pe părinte. Mișcarea suprafeței este parametrizată de 2 coordonate de rotație (analog cu latitudinea și longitudinea pe un glob) și o a 3-a rotație este în jurul axei Z a corpului mobil, care este definită ca să rămână normală față de suprafața elipsoidului (Fig. 2a) . EllipsoidJoint adaugă 3 ecuații diferențiale obișnuite opuse celor 9 ecuații algebrice diferențiale convenționale. Am demonstrat că un EllipsoidJoint funcționează comparabil cu un mobilizator cu bilă și este de 10 ori mai rapid de rezolvat decât sistemul constrâns echivalent care generează mișcare identică [13].

(a) Un model de coordonate interne 3-dof al articulației scapulo-toracice modelat cu un mobilizator elipsoid. Scapula (albastru) este corpul copilului, care are originea articulației, care se traduce pe suprafața unui elipsoid (umbrit) fixat în corpul toracelui (verde) și este capabil să se rotească în jurul axei sale z, care rămâne normal față de suprafața elipsoidului. (b) Colectorul de mișcare admisibilă (curba roșie) a unei articulații personalizate specificate de utilizator utilizate pentru modelarea genunchiului include deplasările plane (x, y) ale tibiei în raport cu femurul în funcție de unghiul de flexie a genunchiului, θ (extensia este pozitivă) cu poziția genunchiului prezentată la 0, 60 și 120 ° de flexie a genunchiului.

Articulațiile personalizate din OpenSim permit ca datele experimentale care descriu traducerile cuplate ale unui genunchi plan (Fig. 2b) [2] să fie modelate ca o articulație 1-dof fără constrângeri. Odată cu creșterea datelor pentru a descrie mișcarea cuplată în articulațiile extremităților inferioare sănătoase, aceste date pot fi încorporate ca spline diferențiate în definiția unei articulații personalizate pentru a oferi cinematică stereotipă pentru articulațiile umane. Căile personalizate obținute din tehnologia imagistică pot fi utilizate pentru a defini articulațiile specifice pacientului [14]. Formularea mobilizatorilor pentru a permite varietăți definite de utilizator și proprietatea lor de a fi reversibile (pentru a descrie mișcarea părintelui în corpul copilului) este descrisă în detaliu de [13].

În OpenSim, articulațiile (ca mobilizatoare de bază) oferă dof, în timp ce constrângerile sunt responsabile pentru îndepărtarea acestora. Ca urmare, constrângerile servesc în primul rând la două scopuri. În primul rând, constrângerile sunt necesare pentru închiderea buclei în arborele multicorp. Fiecare corp (cu excepția solului) are un singur mobilizator „interior” care îi permite dofurile sale față de un părinte, formând un grafic de conectivitate structurat în copac. Orice conexiune suplimentară care formează o buclă în graficul de conectivitate trebuie realizată printr-o constrângere. Sunt disponibile constrângeri precum sudură, punct-la-punct, distanță, punct-pe-linie, punct-pe-plan și orientare fixă.

Al doilea caz este de a cupla mișcarea între articulații. De exemplu, coloana vertebrală este alcătuită din 24 de vertebre articulate, fiecare articulație vertebrală contribuind la flexia/extensia coloanei vertebrale. În acest caz, se poate aplica o constrângere pentru a distribui flexia totală a coloanei vertebrale către rotațiile fracționate (flexia) pe toate vertebrele individuale [4].

2.2. Interacțiunea cu mediul (contact și constrângeri)

Mai multe abordări pentru modelarea forțelor externe sunt posibile cu OpenSim. Într-un caz, forțele măsurate și datele centrului de presiune pot fi aplicate corpurilor specificate, cu vectorii de forță și punct de aplicare prescriși ca funcții ale timpului.

În absența datelor experimentale sau pentru a încerca să prezică noi mișcări, trebuie modelat contactul cu mediul (de ex. Solul). OpenSim implementează două formulări de forță de contact folosind Simbody care sunt descrise în detaliu într-o lucrare însoțitoare [5]. Primul este HuntCrossleyForce [15], care se bazează pe teoria contactului Hertz [16]. Această metodă calculează analitic deformările din teoria elasticității liniare și este limitată în prezent la planuri, sfere și geometrii elipsoide. Al doilea este modelul de fundație elastică [17], care folosește o plasă pentru a reprezenta suprafețe arbitrare în contact, dar calculează deformațiile și forțele folosind un model elastic simplificat al arcului arcurilor.

A treia opțiune este modelarea interacțiunii cu mediul prin constrângeri. OpenSim oferă o constrângere de rulare pe suprafață constând din patru ecuații de constrângere: fără penetrare de suprafață; două constrângeri fără alunecare ale punctului de contact pe suprafață și o constrângere fără răsucire în jurul suprafeței normale la punctul de contact măsurat experimental [18].

2.3. Structuri pasive și actuatori fiziologici

Forțele din OpenSim includ arcuri, amortizoare, bucșe și ligamente, toate care calculează forța în funcție de poziții și viteze de la stat. Actuatoarele sunt forțe și pot fi dependente de stare, dar spre deosebire de forțele pasive, un actuator trebuie să fie dependent de o valoare de control, cum ar fi curentul la un motor.

OpenSim furnizează mai multe modele musculare bazate pe formulări ale dinamicii musculare descrise de Zajac [10], pe care le rezumăm aici. Mușchii sunt, de fapt, actuatori musculotendinoși cu o fibră musculară contractilă și un tendon conform în serie. Dinamica contractilă musculară observată de Hill [19], care leagă forța musculară de activare, lungimea fibrelor musculare și viteza contractilă sunt generalizate la un model de dinamică a contracției musculare întregi (Fig. 4).

(a) Schema elementelor unui actuator musculotendinos ca un singur mușchi în serie cu un tendon elastic. F, este forța sau tensiunea scalară, iar L este lungimea cu superscripturi referitoare la mușchi, M, tendon, T sau actuatorul complet musculotendinos, MT. Unghiul de penație, α, reprezintă orientarea medie a fibrelor musculare dintr-un mușchi în raport cu linia de acțiune și se modifică în funcție de L M pentru a menține o lățime musculară constantă, w. Curbele fenomenologice descriu capacitatea generatoare de forță a elementului contractil al mușchiului (CE, în roșu) și a elementului elastic pasiv (PE, verde) în funcție de lungimea normalizată a fibrelor musculare (b) și viteza de scurtare (c). Lungimea fibrelor este normalizată de lungimea optimă a fibrei, care este lungimea la care mușchiul își poate genera forța activă maximă izometric (viteza zero) și viteza sa este normalizată de lungimea optimă a fibrei și o rată maximă de scurtare, Vmax.

Formulăm ecuațiile dinamice musculotendinoase presupunând mai întâi că forțele musculare, FM și tendinoase, FT sunt în echilibru tot timpul (1) și că activarea musculară, a și lungimea fibrelor musculare, LM, sunt cele două variabile de stare a actuatorului.