OpenSim: опорно-руховий апарат для моделювання та моделювання для досліджень та обміну in silico

Аджай Сет

біоінженерія, Стенфордський університет, Стенфорд, Каліфорнія, США

Майкл Шерман

біоінженерія, Стенфордський університет, Стенфорд, Каліфорнія, США

Джеффрі А. Рейнболт

b Механічна, аерокосмічна та біомедична інженерія, Університет Теннессі, Ноксвілл, Теннессі, США

Скотт Л. Дельп

біоінженерія, Стенфордський університет, Стенфорд, Каліфорнія, США

c Машинобудування, Стенфордський університет, Стенфорд, Каліфорнія, США

Анотація

1. Вступ

Моделювання та моделювання опорно-рухового апарату має величезний потенціал для поліпшення догляду за пацієнтами та зменшення витрат на лікування шляхом з’ясування причинно-наслідкових зв’язків у осіб з неврологічними та опорно-руховими апаратами та передбаченням ефективних хірургічних та реабілітаційних методів лікування. Експерименти самі по собі не можуть визначити джерела ненормальних рухів, а схема лікування залишається обмеженою, оскільки важливі змінні, такі як м’язові сили, як правило, не піддаються вимірюванню. Динамічне моделювання, що приводиться в дію з допомогою м’язів, стає життєздатним підходом для визначення того, як елементи опорно-рухового апарату взаємодіють, виробляючи рух. Щоб застосувати цю нову технологію, щоб визначити, які елементи впливають на розлад руху людини (наприклад, деформації кісток, аномальне збудження м’язів або м’язова слабкість) та оцінити потенційні методи лікування, нам потрібні тривимірні симуляції з активацією м’язів, які точно відтворюють ходу та інша динаміка руху окремих пацієнтів. Крім того, технологія моделювання повинна бути масштабованою та багаторазовою для різних моделей та рухів, і ці моделі та дані повинні бути переданими, а їх результати відтворюваними.

Як національний центр NIH з фізичного моделювання біологічних структур (Simbios), наш мандат полягає у розробці та розповсюдженні набору інструментів моделювання (SimTK), щоб зменшити бар'єри для прийняття моделювання як інструменту для просування біомедичних досліджень. Зокрема, ми запровадили OpenSim [1] як ресурс спільноти, що дозволяє окремим дослідникам моделювати та моделювати нервово-м’язово-скелетну динаміку з метою розуміння ходи у непорушених та пацієнтських популяціях.

1.1. Огляд OpenSim

«OpenSim» охоплює програмну базу для вченого з питань людського руху, біомеханіка, роботолога, нейролога, хірурга-ортопеда або будь-якого ентузіаста руху людей або тварин, який хоче побудувати опорно-рухові апарати, імітувати рух та аналізувати наслідки поведінки. Ця структура включає 1) додаток для кінцевого користувача з графічним інтерфейсом користувача (GUI), 2) набір утиліт командного рядка, 3) комплект розробки програмного забезпечення (SDK), що включає інтерфейси прикладного програмування (API) та відповідні бібліотеки, 4 ) стандартизований набір форматів файлів для визначення та обміну нервово-м’язово-скелетними моделями та супутніми даними; 5) зростаючий набір моделей опорно-рухового апарату, що використовуються багаторазово, у цих форматах, розроблених та опублікованих різними дослідниками [2, 1, 3, 4]. Хоча більшість користувачів обслуговується графічним інтерфейсом OpenSim для доступу до існуючих інструментів, виконувані файли командного рядка полегшують пакетну обробку та управління даними за допомогою сторонніх програм та сценаріїв оболонки.

Розширення можливостей OpenSim програмно вимагає помірного рівня навичок програмування на C ++ та знань API OpenSim. Розширення мають дві форми: 1) “плагіни”, які розширюють існуючий набір інструментів і можуть використовуватися, наприклад, із графічного інтерфейсу OpenSim, та 2) нові програми, що використовують API OpenSim, такі як спеціальні графічні інтерфейси або додаткові утиліти командного рядка. Плагіни OpenSim полегшують розширення користувачів, коли нова функціональність потрапляє в одну з двох категорій: новий елемент моделі або метод для вилучення станів або вимірювань із моделі чи моделювання. Прикладом розширення користувача може бути програма командного рядка, яка визначає специфічні для суб'єкта параметри опорно-рухового апарату на основі експериментальних даних за допомогою нового алгоритму. Власні інструменти командного рядка OpenSim реалізовані так само; вони використовують OpenSim API для завантаження зазначеної моделі, виконання послідовності вирішувачів та звіт про результати.

Бібліотеки OpenSim написані на C ++ і доступ до них здійснюється через об'єктно-орієнтований API. Модульна конструкція допомагає зосередити програміста повсякденних плагінів на створенні єдиного класу чи методу без необхідності освоювати внутрішню роботу OpenSim API. Ця конструкція обговорюється в розділі 3 нижче. API і бібліотеки OpenSim, в свою чергу, побудовані на Simbody, також частині SimTK, який надає розширений API для складання та управління базовою багатотіловою системою та виконання обчислень багатодинамічної динаміки та інших числових операцій. Сімбоді описаний у супровідній роботі у цій справі [5]. Програмісти OpenSim API також мають повний доступ до API Simbody.

1.2. Можливості OpenSim

OpenSim дозволяє створювати скелетно-м’язові моделі, візуалізувати їх рух та набір інструментів для вилучення значущої інформації. Ці інструменти включають зворотну кінематику для розв’язування внутрішніх координат з доступних просторових позицій маркера, що відповідають відомим орієнтирам на жорстких сегментах; зворотна динаміка для визначення набору узагальнених сил, необхідних для узгодження розрахункових прискорень; статична оптимізація [6, 7] для розкладання чистих узагальнених сил серед зайвих виконавчих механізмів (м’язів); і пряма динаміка для формування траєкторій станів шляхом інтеграції динамічних рівнянь системи у відповідь на вхідні елементи керування та зовнішні сили. Надаються спеціалізовані інструменти для створення симуляцій для конкретного пацієнта. Сюди входять масштабування існуючої моделі з урахуванням специфічних для пацієнта вимірювань [8] та визначення динамічних активацій м’язів, які змушують модель відстежувати експериментальні дані [9].

Моделі OpenSim складаються з декількох елементів (компонентів), які мають обчислювальні аналоги в базовій системі багатотіл Simbody. Сюди входять: кістки (тверді тіла), суглоби (мобілізатори, обмежувачі та сили), контактні елементи (жорсткі обмеження та відповідні сили), а також зв’язки та м’язові приводи (сили). Представлення нервових команд, що походять з центральної нервової системи, які контролюють м’язову активність і, отже, генерацію м’язової сили є центральним для нервово-м’язово-скелетного моделювання. Отже, OpenSim також пропонує елемент контролера, який може складатися з визначених користувачем функцій, канонічного управління зворотним зв'язком, оптимального управління, а також спрощених сурогатних моделей для оцінки управління прямим подаванням.

2. Моделювання кінематики, динаміки та контролю опорно-рухового апарату людини

Рух у тварин і людини є результатом каскаду неврологічних та м’язових фізіологічних процесів, які призводять до дії сил на кістки, що генерують сили реакції та прискорюють суглоби. Динаміка багатотіл відіграє ключову роль, забезпечуючи фізичну основу для перетворення фізіологічних сил у рух відповідно до законів руху Ньютона. Домінуючими силами, що рухають кісткову систему, є мускульно-суглобові сили. М’язові сили виникають внаслідок взаємодії білків, які змушують м’язові волокна скорочуватися у відповідь на електричний стан м’язових волокон. Електричний стан м’яза (його активація) модулюється за допомогою нервових входів центральної нервової системи (ЦНС), також відомих як збудження м’язів [10]. Як вчені з питань руху, ми зацікавлені в розумінні контролю динаміки опорно-рухового апарату для створення скоординованого руху. Таким чином, контролер у канонічній моделі (рис. 1) забезпечує концептуальну основу для тестування моделей ЦНС щодо генерації руху.

opensim

Канонічна блок-схема динамічного опорно-рухового апарату. Входи - це збудження м’язів або, загальніше, елементи управління виконавчим механізмом, а виходи - траєкторії для узагальнених координат, q та швидкостей, u, а також м’язових станів, z, як функція часу, t. Основними джерелами динаміки системи є м’язово-судинні виконавчі механізми та динаміка скелетних багатотіл. Контролери також можуть вводити динаміку для імітації затримки передачі сигналу та інших фізіологічних особливостей поведінки.

2.1. Біологічні суглоби

Біологічні суглоби на відміну від інженерних суглобів людини недостатньо обслуговуються завдяки набору революційних, повзункових, універсальних, площинних та кульових і гніздових шарнірів, доступних у механічних тренажерах. Оскільки кожен біологічний шар є унікальним, то модельєр, який використовує засоби автоматизованого проектування промислових машин, стикається з непотрібними припущеннями та спрощеннями, або жертвуючи продуктивністю.

Візьмемо для прикладу лопатково-грудний суглоб плеча. Це було описано еліпсоїдною грудною поверхнею, на якій лопатка (лопатка) обертається і перекладається [11]. Він може бути змодельований 6 узагальненими координатами та 3 рівняннями обмежень для 3 ступенів свободи (dof) або 9 узагальненими координатами та 5 обмеженнями для плечового комплексу 4 dof [12]. Внутрішнє координатне спільне представлення в Simbody, що називається мобілізатором, може задавати будь-який безперервний колектор дозволеного руху, параметризований від 1 до 6 узагальнених координат [13]. Ми можемо використати універсальність мобілізатора для визначення з’єднань, які краще відповідають потребам біомеханічних моделей, таких як EllipsoidJoint.

Параметр EllipsoidJoint визначає відносний рух рухомого тіла щодо батьківського тіла таким чином, що суглобова рама на рухомому тілі простежує поверхню еліпсоїда, прикріпленого до батьківського. Рух поверхні параметризується двома координатами обертання (аналогічно широті та довготі на глобусі), а третє обертання - навколо осі Z рухомого тіла, яка, як визначено, залишається нормальною до поверхні еліпсоїда (рис. 2а) . EllipsoidJoint додає 3 звичайних диференціальних рівняння на відміну від звичайних 9 диференціальних алгебраїчних рівнянь. Ми продемонстрували, що EllipsoidJoint працює порівняно з мобілізатором "куля-гніздо" і вирішується в 10 разів швидше, ніж рівномірно обмежена система, що генерує ідентичний рух [13].

(a) Модель внутрішньої координати 3-dof лопаточно-грудного суглоба, змодельована еліпсоїдним мобілізатором. Лопатка (синя) - це дитяче тіло, суглобове походження якого перекладається на поверхні еліпсоїда (затіненого), закріпленого в тілі грудної клітки (зелене) і здатне обертатися навколо своєї осі z, яка залишається нормальною до поверхні еліпсоїда. (b) Колектор допустимих рухів (червона крива) призначеного користувачем суглоба, що використовується для моделювання коліна, включає плоскі (x, y) зміщення гомілки щодо стегнової кістки як функцію кута згинання коліна, θ (розгинання позитивне) з положенням коліна, представленим при 0, 60 та 120 ° згинання коліна.

Спеціальні суглоби в OpenSim дозволяють експериментальні дані, що описують зв’язані трансляції площинного коліна (рис. 2b) [2], змоделювати як 1-dof суглоб без обмежень. Зі збільшенням даних для опису зв’язаних рухів у здорових суглобах нижніх кінцівок ці дані можуть бути включені як диференційовані сплайни у ​​визначення спеціального суглоба, щоб забезпечити стереотипну кінематику для суглобів людини. Спеціальні шляхи, отримані за допомогою технології візуалізації, можуть бути використані для визначення суглобів пацієнта [14]. Розробка мобілізаторів для забезпечення користувальницьких колекторів та їх властивість бути оборотними (для опису батьківського руху в дочірньому тілі) докладно описана [13].

У суглобах OpenSim (як основні мобілізатори) надають dofs, тоді як обмеження відповідають за їх видалення. Як результат, обмеження в першу чергу слугують двом цілям. По-перше, обмеження необхідні для закриття циклу в дереві багатотіл. Кожне тіло (за винятком землі) має єдиний “внутрішній” мобілізатор, який дає можливість його дофам щодо батьківського, формуючи деревоподібний графік зв’язку. Будь-яке додаткове підключення, яке утворює цикл у графіку підключення, повинно здійснюватися через обмеження. Доступні такі обмеження, як зварювання, точка-точка, відстань, точка-на-лінії, точка-на-площині та фіксована орієнтація.

Другий випадок - поєднати руху між суглобами. Наприклад, хребет складається з 24 суглобових хребців, при цьому кожен хребцевий суглоб сприяє згинанню/розгинанню хребта. У цьому випадку може бути застосовано обмеження для розподілу загального згинання хребта на дробові обертання (згинання) по всіх окремих хребцях [4].

2.2. Взаємодія з навколишнім середовищем (контакт та обмеження)

За допомогою OpenSim можливе декілька підходів до моделювання зовнішніх сил. В одному випадку виміряні сили та дані центру тиску можуть бути застосовані до зазначених тіл, при цьому вектори сили та точки прикладання визначаються як функції часу.

У разі відсутності експериментальних даних або спроб передбачити нові рухи, контакт із навколишнім середовищем (наприклад, землею) повинен бути змодельований. OpenSim реалізує дві рецептури сили контакту з використанням Simbody, які докладно описані у супровідній роботі [5]. Перший - HuntCrossleyForce [15], який базується на теорії контактів Герца [16]. Цей метод аналітично обчислює деформації з теорії лінійної пружності і в даний час обмежений площинами, сферами та геометріями еліпсоїдів. Другий - модель пружного фундаменту [17], яка використовує сітку для представлення довільних поверхонь, що контактують, але обчислює деформації та зусилля, використовуючи спрощену пружну модель пружинних пружин.

Третій варіант - моделювати взаємодію з навколишнім середовищем за допомогою обмежень. OpenSim забезпечує обмеження по поверхні, яке складається з чотирьох рівнянь обмеження: відсутність проникнення на поверхню; два обмеження ковзання точки контакту на поверхні та обмеження повороту щодо нормалі поверхні в експериментально виміряній точці контакту [18].

2.3. Пасивні структури та фізіологічні приводи

Сили в OpenSim включають пружини, заслінки, втулки та зв’язки, які обчислюють силу як функцію позицій та швидкостей від держави. Приводи є силами і можуть залежати від стану, але на відміну від пасивних сил, привід повинен залежати від величини управління, як струм двигуна.

OpenSim пропонує безліч моделей м’язів на основі формулювання м’язової динаміки, описаної Заяком [10], яку ми узагальнюємо тут. По суті, м’язи - це м’язово-судинні виконавчі механізми з послідовно скорочуваним м’язовим волокном та м’яким сухожиллям. Динаміка скорочення м’язів, яку спостерігає Хілл [19], пов’язуючи м’язову силу з активацією, довжиною м’язових волокон та скорочувальною швидкістю, узагальнено до моделі динаміки скорочення цілого м’яза (рис. 4).

(а) Схема елементів м’язово-сухожильного приводу як єдиного м’яза послідовно з еластичним сухожиллям. F - це скалярна сила або напруга, а L - довжина з надрядковими знаками, що стосуються м'язів, М, сухожиль, Т або повного м'язово-сухожильного приводу, МТ. Кут пеннації, α, являє собою середню орієнтацію м’язових волокон у м’язі щодо лінії дії і змінюється як функція L M для підтримки постійної м’язової ширини, w. Феноменологічні криві описують здатність генерувати силу скорочувального елемента м’яза (CE, червоним кольором) та пасивного еластичного елемента (PE, зелений) як функцію нормалізованої довжини м’язового волокна (b) та швидкості скорочення (c). Довжина волокна нормується на оптимальну довжину волокна, тобто довжину, при якій м’яз може генерувати свою максимальну активну силу ізометрично (нульова швидкість), а його швидкість нормується на оптимальну довжину волокна та максимальну швидкість вкорочення, Vmax.

Ми формулюємо м’язово-сухожильні динамічні рівняння, спочатку припускаючи, що м’язові, ФМ і сухожилля, ФТ, сили в рівновазі постійно (1), а активація м’язів, а та довжина м’язових волокон, ЛМ, є двома змінними стану приводу.