OpenSim, опорно-руховий апарат для моделювання та моделювання для досліджень в області кремнію
Аджай Сет
біоінженерія, Стенфордський університет, Стенфорд, Каліфорнія, США
Майкл Шерман
біоінженерія, Стенфордський університет, Стенфорд, Каліфорнія, США
Джеффрі А. Рейнболт
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 також пропонує елемент контролера, який може складатися з визначених користувачем функцій, канонічного управління зворотним зв'язком, оптимального управління, а також спрощених сурогатних моделей для оцінки управління прямим подаванням.