Як ми розробляємо застосунки на Flutter для біонічних протезів
Привіт! Мене звати Віталій Шейко, я Senior Project Manager у GlobalLogic. Мій основний напрям роботи пов’язаний з Healthcare-доменом, продуктами та проєктами для медицини.
В Україні стрімко розвивається MedTech. На це є дві причини: перша — це той досвід, що отримують як айтівці, так і лікарі у воєнних умовах. Україні вже прогнозують лідерство у сфері Military Tech, базуючись на сьогоднішніх розробках. Тотожний буст отримала й медична галузь, де технології стають відповіддю на виклики.
Друга — це експертиза наших фахівців. Софт від українських інженерів визнається в усьому світі. Наша команда вже представила першу у своєму роді платформу для впровадження корпоративного ШІ, першу SDV-платформу для автомобілів майбутнього. І таких «перших в індустрії» розробок українського походження чимало. В медичній галузі ми активно імплементуємо ШІ, створюємо софт для роботів-асистентів і багато іншого.
Сьогодні я хотів би детальніше поговорити про один з цих проєктів, а саме — про біонічні протези. Тривалий час GlobalLogic є партнером Allbionics: наші інженери розробляють програмне забезпечення для протезів компанії. Я розповім, яка «начинка» біонічного протеза та які застосунки відповідають за його коректну роботу.
Побудова біонічного протеза: з чим ми працюємо
Для розуміння, навіщо ми розробляли той чи інший застосунок для роботи з протезом, потрібно розібратись, з чого він складається. Якісь компоненти ми бачимо — це біонічна кінцівка і куксоприймач, який надягається на куксу. Інші частини розташовані всередині: плата, батарея та сенсори, які зчитують сигнали від мʼязів і скеровують роботу протеза.
Ми використовуємо FSR-сенсори, тобто датчики, які реагують на тиск. Вони зчитують стискання мʼязів і передають сигнали на процесор. Основна задача процесора — обробити, трактувати ці сигнали й скерувати команду на правильний рух. Схематично цей процес виглядає так:
Екосистема ПЗ для протеза: які застосунки ми розробили та які задачі вони виконують
Наша команда розробила чотири застосунки, які вже працюють у продакшені. Перший — це вебзастосунок для подачі заявок на протезування. Людина з травмою може заповнити анкету, детально розписати свою ампутацію (з фото або медичною довідкою) та попередні процедури. Далі команда Allbionics аналізує отримані дані та робить висновок щодо подальшого протезування. Так процес стає швидшим, зрозумілішим для пацієнта та більш прогнозованим для лікаря.
Наступні три застосунки — це софт, необхідний для коректної взаємодії «людина & протез». У комплексі вони працюють на єдиний результат: протез контрольований, прогнозований і виконує саме той рух, який потрібен пацієнту.
Рішення містять:
- HMI-застосунок. Це configuration-management система, яка комунікує з протезом через Bluetooth-канал. Вона аналізує, як часто та які типи сигналів йдуть від FSR-сенсорів. Задача — «підтюнити» протез під конкретного пацієнта.
ML-модель для контролю та фільтрації FSR-сигналів. Деякі з них від датчиків можуть «шуміти»: бути нечіткими, незрозумілими системі й приводити до некоректних рухів. Причиною можуть бути різні фактори — від стану мʼязів пацієнта до його емоційного стану. Модель допомагає відокремлювати актуальні сигнали від шуму, який заважає виконанню руху.- User Training App — набір тренінгових матеріалів, які має виконати користувач, щоб навчитися керувати рукою. Водночас процесор так само аналізує сигнали під час виконання вправ і адаптується до пацієнта.
Всі застосунки були написані на Flutter. Це — фреймворк на Dart з відкритим кодом, який використовується в основному для cross-platform development. Він досить поширений для мобільних застосунків: у травні 2023 року Google нарахував більше ніж 1 мільйон таких, написаних на цьому фреймворку. Він також має десктопну та веб-версії.
Чому обрали саме Flutter
- Розробка кросплатформеного рішення: це економія ресурсу інженерів для адаптації застосунків під інші версії. Зараз, наприклад, ми почали розробку мобільного застосунку, який використовує кодову базу попередніх версій. Так ми заощаджуємо на девелопменті та частково на тестуванні.
- Можливість взаємодіяти напряму з платформами: це дозволило зробити більш гнучку інтеграцією із Bluetooth. Оскільки ідея проєкту — конфігурувати щось, потрібен був застосунок, який зможе працювати локально, з потенційною інтеграцією із іншими платформами та пристроями, як-то планшети чи мобільні телефони.
- Потужне ком’юніті, яке створює різноманітні верифіковані пакети, що допомагають значно пришвидшити розробку.
Які технології були використані для кожного з застосунків
- HMI-застосунок та User Training App написані на десктоп-версії Flutter. Ми додали підтримку для Windows, але це кросплатформене рішення може застосовуватись всюди. На нижньому рівні ми використали С++/WinRT, щоб імплементувати роботу через Bluetooth, отримувати дані від FSR-сенсорів тощо.
- Для
ML-моделі ми використовували TensorFlow Lite. Інженери розробили програму, яка дозволяє аналізувати зібрані з FSR-датчиків дані під час тренувальних сесій. На руці було встановлено wrapper, який менеджив навченуML-модель вже на ній. Він зберігав певний сет даних, який, при досягненні потрібної кількості, передавався на модель, що аналізувала і повертала тип сигналу. Цей сигнал потім використовувався фірмварою, щоб виконувати дію.
Новий етап — створення мобільного застосунку
Зараз ми перейшли до наступного етапу розробки — створення мобільного застосунку. Він буде комбінувати частину функціоналу, який був в Configuration Management системі та Training Application системі. Це дасть можливість зручніше та корисніше використовувати ці дві програми — як для кінцевого користувача, так і для спеціаліста, який буде конфігурувати девайс відповідно до тих сигналів і налаштувань, які ми маємо отримати або зашити на сам протез.
Важливим моментом є те, що Back-end частина мобільного застосунку крутиться на клауді, що дає можливість збирати статистику: отримані з application-рівня дані ми обробляємо та аналізуємо. Збираємо, скільки годин використовувався протез, які найчастіші хвати застосовувалися тощо. Насамперед ця статистика ділиться на декілька варіантів: за останні шість місяців, за останні три місяці, за останній місяць, за останній тиждень і день — це все складається в графіки.
Так само всі ці дані збираються у так звану систему «досягнень», яка також доступна користувачам — скільки в загальному за день використовувався протез, скільки поспіль днів. І загалом скільки часу в тебе ця рука вже є.
Якщо в тебе вже три роки цей протез, то, відповідно, в тебе досягнуто три роки використання. Основна ідея цих досягнень в тому, щоб додати в нашу мобільну аплікацію інтерактивність, зацікавити пацієнта користуватися протезом. Додається момент гри: користувач розвиває скіли, прокачується в розумінні свого тіла та в контролі протеза.
Щодо самої розробки — ми так само використовуємо Flutter. Для Bluetooth-комунікації - пакет, який імплементує все на нативних рівнях. Для наших задач це більш ніж достатньо. Загалом ми робимо і будемо робити кросплатформений застосунок.
Надалі він може бути адаптований на різні платформи, такі як Windows, Mac, Android, iOS — скрізь, де це буде потрібно. Зараз основним фокусом для нас є мобільні пристрої, але в майбутньому зможемо з невеликими змінами портувати це на будь-яку платформу.
Висновки
Біонічний протез є комплексною системою, частину компонентів якої ми навіть не бачимо. За коректну роботу протеза відповідають сенсори, ввідні дані з яких потрібно вірно інтерпретувати й перевести в рух. Тут у гру вступає софтова частина. В нашому випадку це конфігураційна система (HMI-застосунок) та
Зараз ми ставимо собі п’ять цілей щодо покращення функціонування протезу:
- Зробити користування більш інтуїтивним.
- Покращити адаптивність протезів до потреб пацієнта завдяки ширшій імплементації
ML-моделей. Найбільший виклик для біонічних протезів — вірне зчитування сигналів. У кожного пацієнта вони можуть бути різними. Як писав вище, вони залежать від цілісності мʼязів, фізичного та психологічного стану. Крім того, сигнали можуть змінюватися з віком. Тому тут великий простір для вдосконалення. - Партнеритися з більшою кількістю організацій і стейкхолдерів для створення цілісної екосистеми протезування: від запиту пацієнта до його адаптації після протезування.
- Надалі покращувати юзабіліті та довговічність.
- Забезпечувати end-to-end support: навчання пацієнта користуванню протезом і аналіз фідбеку. User Training App — якраз крок у цьому напрямі.
І наостанок: очевидно, що біонічні протези — наступний етап еволюції в галузі протезування. Це видно й з економічних показників: до 2030 року ринок біонічних протезів сягне $2,8 млрд (з $1,5 млрд у 2023). З часом вони ставатимуть все більш розвиненими та зручними у використанні. Велику роль у цьому відіграватимуть інженери.
Тож, якщо ви бачите свій розвиток чи розглядаєте світч у MedTech — ця галузь сповнена перспектив, викликів і майбутніх інновацій, і 100% варта уваги.
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів