أغسطس 8, 2011
مؤخرا ، قد تأتي على قدر هائل من التوقعات المتاحة للنظم البشرية الروبوت التفاعلي. نحن في هذه الورقة الخطوط العريضة للتكامل جهاز روبوت جديد مع برمجيات المصدر المفتوح التي يمكن أن تجعل من الممكن إجراء سريعا من وظائف المكتبة التفاعلية. نحن مخطط ثم التطبيق السريري للتطبيق neurorehabilitation.
الهدف العام من هذا الإجراء هو دمج روبوت في مكتبة بيئة افتراضية ومن ثم استخدام الروبوت في العلاج من السكتة الدماغية. يتم تحقيق ذلك أولاً عن طريق إنشاء فئة غلاف (wrapper class) لتوسيع مكتبة اللمس (haptics library)، ثم دمج فئة الغلاف هذه في مكتبة اللمس. والخطوة التالية هي إنشاء فئة غلاف لتوسيع مكتبة الرسوميات (graphics library)، ومن ثم دمج فئة الغلاف هذه في مكتبة الرسوميات بمجرد اكتمال فئات الغلاف.
تُستخدم واجهة H 3D API لإعداد آلة حالة محدودة (finite state machine) لاختبار مرضى السكتة الدماغية. ثم يُستخدم الروبوت المتكامل للمساعدة في إعادة تأهيل هؤلاء المرضى. وتكمن الميزة الرئيسية لهذه التقنية في عدم الحاجة بعد الآن إلى كتابة تطبيق برمجِي مختلف لكل روبوت.
علاوة على ذلك، يمكن للعلماء في جميع أنحاء العالم تشغيل هذه التطبيقات بغض النظر عن نوع الروبوت المستخدم في مختبراتهم. ويمكن لهذه الطريقة أن تساعد في الإجابة على أسئلة رئيسية في مجالات التأهيل، والروبوتات، والتحكم الحركي، مثل مدى الاستفادة التي قد يجنيها جهازنا العصبي من تعزيز الخطأ. كما يمكن لهذه الطريقة أن توفر رؤى حول اعتلالات السكتة الدماغية، بالإضافة إلى تعميق فهمنا للوظائف الصحية.
بشكل عام، يحتاج مرضى السكتة الدماغية الذين يبدؤون التأهيل الروبوتي إلى التغلب على عقبات معينة، مثل تعلم كيفية الإمساك بالمقبض. لقد خطرت لنا فكرة هذه الطريقة لأول مرة عندما أدركنا حاجتنا إلى روبوت يتمتع بنطاق عمل تشغيلي واسع مع تعويض الجاذبية. كما أردنا تقليل إعادة كتابة البرمجيات لكي يتمكن طلاب الدراسات العليا في المستقبل من الاستفادة مما أنجزه من سبقهم دون تكرار العمل ذاته.
يقدم هذا الفيديو تعليمات حول دمج روبوت معالجة الذراع الكاملة (WHAM) مع الكود مفتوح المصدر المتاح على الموقع www.hthreedpi.org. لدمج روبوت جديد في مكتبة اللمس (haptics library)، تتمثل الخطوة الأولى في كتابة فئة غلاف (wrapper class) لـ HAP، وهو محرك صيرورة اللمس المستخدم للتحكم في حركة روبوت WHAM. ابدأ بإنشاء ملف CPP وملف ترويسة (header file).
أسماء الملفات المستخدمة في هذا المثال هي happy وwham وcpp وhappy wham h. ضع ملف happy wham cpp في دليل المصدر. Happy slash source، ثم ضع happy.
انقل الملف wham.h إلى دليل ملفات الترويسة. happy/include/happy. وفي الجزء العلوي من ملف wham.h، قم بتضمين ملفات الترويسة الرئيسية الخاصة بالروبوت.
لاحظ أن استخدام extern C مطلوب لحل مشكلة تشويه الأسماء (mangling) التي يقوم بها المترجم، وذلك لأن المكتبة المضمنة مكتوبة بلغة C بينما واجهة برمجة تطبيقات H 3D مكتوبة بلغة c plus plus. في ملف happy wham h، قم بإنشاء الفئة (class) الخاصة بالروبوت وقم بتضمين الدوال الأربعة التالية فيها: Haptics device release، و haptics device، و update device values، و send output. تأكد من أن الفئة ترث علنياً (publicly) من فئة happy haptics device.
بعد ذلك، قم بإنشاء واقٍ للترويسة (header guard) للفئة. ثم أنشئ سمات إخراج الجهاز الساكنة وسمات تسجيل جهاز اللمس الساكنة تحت فئة happy WHAM. بعد ذلك، قم بإنشاء الدوال الأعضاء الساكنة لعمليات الاستدعاء (callbacks) الخاصة بالروبوت الخاص بك.
بالنسبة لروبوت WHAM، تُستخدم دالة الاستدعاء (callback function) في دالة جهاز bull and it haptics. والآن، بعد تعيين النماذج الأولية في ملف الرأس (header file)، افتح ملف happy wham dot cpp، وقم بتضمين ملفات الرأس ومجال الأسماء (namespace) المناسبين. بعد ذلك، قم بتعريف المشيّد (constructor) والمفكك (destructor) في ملف Happy Wam cpp.
بعد ذلك، قم بتسجيل الجهاز في Happy Wam cpp. الآن، حدد الدوال الموروثة الأربعة واستدعاءات الرد (callbacks) في happy Wam cpp. تقوم دالة تحديث قيم الجهاز (update device values) بإبلاغ الكمبيوتر بموقع ذراع الروبوت ومقدار القوة التي يولدها الروبوت على البيئة المحيطة.
بعد إنشاء فئة Happy Wrapper، تتمثل الخطوة التالية في بناء تغليف (wrap) داخل مكتبة Happy. يعتمد WAM على بعض المكتبات التي لا تعتمد عليها H 3D API في شكلها الخام؛ لذا، يجب إضافة هذه المكتبات إلى happy.
انتقل إلى المسار H 3D 2.1/happy/build وقم بتحرير ملف C make lists text. أضف المكتبات التابعة بعد السطر الذي ينص على Set optional libs. افتح وحدة تحكم الأوامر وانتقل إلى H 3D 2.1/happy/build ثم اكتب بالتسلسل: see make dot pseudo make و pseudo make install لإتمام دمج الروبوت الجديد مع الكود المصدري المفتوح لـ H 3D.
قم بكتابة فئة غلاف ثانية لمخطط المشهد (scene graph). واجهة برمجة التطبيقات تسمى H 3D API. يستخدم هذا المثال فئة غلاف تسمى wam device.
انتقل إلى دليل المصدر، H 3D AP I slash source، وأنشئ ملف CPP الخاص بجهاز WAM وملف wam device.Cpp. أضف المصدر القياسي لجميع أجهزة H 3D PI. بعد ذلك، ضع Wam device H في دليل ملفات الرأس (header file directory).
يجب أن يحتوي ملف الجهاز H على ملف الرأس القياسي لجميع أجهزة H 3D API. الآن وبعد إنشاء فئة الغلاف، قم بإعادة بناء مكتبة H 3D PI عن طريق تحرير نص C make lists في الدليل H three DPI slash build. وأخيراً في الدليل H 3D PI slash build.
أعد بناء مكتبة H 3D API باستخدام الأوامر CMake و pseudo make و pseudo make install. أصبحت فئات الغلاف (wrapper classes) الجديدة الآن جاهزة للاستخدام مع الروبوت. وبمجرد تثبيت فئات الغلاف المناسبة، يتم إنشاء آلة حالة محدودة (finite state machine) للتحكم في البروتوكول التجريبي لمهمة الوصول المستهدفة المستخدمة مع روبوت Barrett WHAM. وتتمثل حالات آلة الحالة في: بدء التجربة، والاتصال بالهدف، ونهاية التجربة.
تبدأ حالة بداية التجربة بتخصيص الهدف. يمكن تحديد مواقع الأهداف عشوائياً لكل تجربة أو يمكن تحديدها من ملف. تنتهي حالة بداية التجربة وتبدأ حالة الإطلاق.
بمجرد أن تنطلق يد الخاضع للاختبار نحو الهدف متجاوزة عتبة السرعة، والتي تكون عادةً 0.06 meters per second. تنتهي حالة الانطلاق وتبدأ حالة ملامسة الهدف عندما يلمس مؤشر المريض الهدف. وبمجرد حدوث الملامسة، يختفي الهدف وتنتهي حالة ملامسة الهدف وتبدأ حالة نهاية التجربة.
تُعطي حالة نهاية التجربة إشارة لبرنامج جمع البيانات لوضع محدد لعلامة نهاية التجربة في ملف البيانات. وما لم تكن التجربة النهائية قد اكتملت، فإن انتهاء حالة نهاية التجربة يُفعل حالة بدء التجربة ويتم تعيين هدف جديد. يوضح هذا القسم روبوتاً مختلفاً يسمى phantom يُستخدم في إعادة تأهيل مرضى السكتة الدماغية.
من خلال استبدال رمز فئة غلاف النموذج الوهمي (phantom's wrap class code) في المكتبات المناسبة، يمكن دمج الروبوت الجديد في البيئة الافتراضية؛ حيث يتم استخدام نظام رسوميات لمسية ثلاثي الأبعاد يسمى آلة أو غرفة العمليات الروبوتية والبصرية للواقع الافتراضي (virtual reality Robotic and optical operations machine or room). يجمع هذا النظام بين عرض رندرة ستيريو مسقط يتم تتبعه عبر الرأس على شاشة تراكبية بمرآة شبه فضية، ونظام روبوتي يمكنه تسجيل وضعية المعصم وتوليد متجه قوة. ويعرض جهاز عرض رقمي بجودة سينمائية الصور التي تمتد عبر شاشة بعرض خمسة أقدام، مما ينتج عنه زاوية رؤية واسعة تبلغ 110 درجة.
تعمل باعثات الأشعة تحت الحمراء على مزامنة الصور المنفصلة للعينين اليمنى واليسرى من خلال نظارات LCD ذات الغالق. ويتم تتبع حركة الرأس باستخدام عناصر مغناطيسية من مجموعة ascension flock of birds بحيث يتم عرض العرض المرئي من منظور يتمركز حول الرأس بشكل مناسب. كما يساعد قفاز exo tendon المزود بجبيرة للمعصم في الحفاظ على محاذاة محايدة للمعصم واليد.
يتم وضع مركز مقبض الروبوت على الساعد خلف المفصل الكعبري الرسغي. يتيح ذلك للقوى أن تؤثر عند الرسغ، مع السماح بحرية الحركة في اليد. يتم تخفيف وزن ذراع المريض باستخدام جهاز تقويم عضلي خارجي روبوتي من نوع Wilmington متوازن الجاذبية ويعمل بنظام الزنبرك.
يستخدم المعالج الجالس بجانب المريض جهاز تتبع لتحريك مؤشر عبر الشاشة. وأمام الشاشة، يُطلب من المريض استخدام المقبض الروبوتي لملاحقة المؤشر. يتم توفير تعزيز الخطأ بصرياً وعن طريق القوى التي يولدها الروبوت.
عندما ينحرف مؤشر المريض عن مؤشر المعالج ويحدث خطأ لحظي، يتم تحديد المتجه E باعتباره الفرق في الموضع بين مؤشر المعالج ويد المريض. يتم تضخيم الخطأ بصرياً بمعامل 1.5 E كجزء من تعزيز الخطأ. بالإضافة إلى ذلك، يتم تطبيق قوة تعزيز للخطأ قدرها 100 E على ذراع المريض، وهي مبرمجة لتصل إلى حالة التشبع عند حد أقصى قدره أربعة Newtons.
لأسباب تتعلق بالسلامة، يعمل تضخيم الخطأ على تكبير الأخطاء التي يدركها المريض، مما يعزز عملية إعادة التعلم. يتطلب بروتوكول العلاج من المريض ممارسة عدة حركات محددة، بما في ذلك مد الذراع للأمام وللجانب مع اقتران الكتف والمرفق، والمد القطري عبر الجسم. في العرض التوضيحي التالي، يتم استبدال رمز الفئة العلوية واستخدام روبوت Barrett WHAM.
الهدف من هذه المهمة التالية هو أن يقوم الأشخاص الأصحاء أو مرضى السكتة الدماغية بالتقاط مقذوف افتراضي داخل الكرة الخضراء شبه الشفافة. إذا انحرفت يد المريض خارج الكرة، تتحول الكرة إلى اللون الأحمر ويتلقى ذراع المريض تغذية راجعة لتعزيز الخطأ من الروبوت. وعندما ينجح المريض في التقاط المقذوف داخل المساحة المحددة، تظل الكرة خضراء.
يوضح هذا الشكل متوسط خطأ الوصول. تمثل كل نقطة متوسط الخطأ المقاس خلال كتلة زمنية مدتها دقيقتان من الحركات الوظيفية النمطية. وبينما يظهر المرضى تقدماً على مدار فترة الأسبوعين، لم يكن هناك تحسن دائم في كل يوم.
يظهر هذا الشكل الفائدة الناتجة عن تعزيز الخطأ في تقليل التباين بين الحركات بشكل انتقائي. توضح المخططات العلوية البيانات الخاصة بمجموعة الضبط، بينما توضح المخططات السفلية البيانات الخاصة بمجموعة العلاج. يمثل كل لون شخصاً مختلفاً.
يعرض الخطان الأفقيان موقع حدود المهمة. وكان هدف المشارك هو التقاط المقذوف الافتراضي ضمن هذه الحدود. ويوضح موقع النقطة المكان الذي وصل فيه مشارك معين إلى أقرب نقطة تماس.
في المقذوف، تعرض المخططات التكرارية الزرقاء شبه الشفافة المتراكبة فوق عرض البيانات الخام توزيع الحركة للمجموعة. وعلى طول المحور الأمامي، أجرى مرضى السكتة الدماغية 600 محاولة من مهمة الإمساك؛ ففي أول 200 محاولة، ولمدة 200 محاولة نهائية، لم يتم تقديم تغذية راجعة لتعزيز الخطأ في المحاولات من 201 إلى 400. وقد قدم الروبوت تغذية راجعة لتعزيز الخطأ للمريض، مما أدى إلى تحسن ملحوظ في قدرة المريض على الإمساك بالهدف ضمن الحدود المحددة.
بعد اتباع هذا الإجراء، لا يزال من الممكن تنفيذ طرق التأهيل التقليدية، ولكن باستخدام الروبوت يمكننا تحديد موقع يد المريض كمياً في جميع الأوقات عبر العديد من التجارب المتكررة. وقد مهدت هذه التقنية الطريق لأبحاث جديدة في مجال الهندسة العصبية، حيث يمكننا استكشاف عملية الوصول المحاكات داخل منطقة ما بحيث تتوفر حلول متعددة ممكنة. بعد مشاهدة هذا الفيديو، يجب أن تكون لديك معرفة بكيفية التوسع في استخدام مكتبة H 3D API لروبوت تأهيل من اختيارك، وتطبيق مجموعة متنوعة من واجهات الرسوميات اللمسية لتقييم وعلاج مرضى السكتة الدماغية.
بما أن العمل مع الروبوتات قد ينطوي على مخاطر محتملة، فيجب إيلاء عناية دقيقة عند اختيار روبوت يتضمن مثل هذه التفاعلات البشرية. لقد اخترنا Barrett WHAM لمشروعنا الأحدث لأنه أكثر قوة وقابلية للقيادة الخلفية (back drivable). وتعني القابلية للقيادة الخلفية إمكانية الشعور بمقاومة شبه منعدمة إذا قمنا ببرمجته على ذلك، ومع ذلك، فإنه يعد أحد أكثر الخيارات أماناً المتاحة للتفاعل بين الإنسان والآلة.
هناك جهاز كمبيوتر مراقبة منفصل يقوم بمتابعة الكمبيوتر الرئيسي ويمكنه تعطيل النظام في حال حدوث أي خلل، بينما يضمن الكبح الديناميكي عمل النظام كمخمد كلما كان غير نشط. وعلى الرغم من أن العديد من الروبوتات تعمل بشكل مختلف، إلا أن العديد من وظائفها تتداخل. لذا، فإن إمكانية نقل تقنياتنا بين الروبوتات قد تعزز مشاركة جديدة بين المختبرات.
من الواضح أن علاجات التدريب مثل تلك التي تم استعراضها في هذه الدراسة تقدم أدلة مشجعة على استعادة الوظائف لدى المرضى، بالإضافة إلى تعزيز التدريب في الرياضات، وقيادة التشغيل عن بُعد، والأداء الموسيقي، والتقنيات الجراحية، وأي مهمة أخرى تتطلب ممارسة تكرارية.
تناقش هذه المقالة دمج جهاز روبوتي مع برمجيات مفتوحة المصدر لتطبيقات إعادة التأهيل العصبي، وتحديداً استهداف علاج السكتة الدماغية. ويسمح هذا النهج باستخدام مكتبة من الوظائف التفاعلية في بيئة افتراضية.
يتناول هذا العمل عقبة رئيسية في العلوم العصبية الانتقالية وهندسة التأهيل، وهي الافتقار إلى التوافق البرمجي بين المنصات الروبوتية. ومن خلال تمكين قاعدة برمجية واحدة من الواجهة مع أجهزة لمسية متنوعة، يقلل هذا النهج من الأعباء الإضافية للتطوير ويدعم التقييم قبل السريري القابل للتكرار لتدخلات التعلم الحركي. وتعزز هذه القدرة الثقة التنبؤية في التحقق من الأهداف في المراحل المبكرة لعلاجات التأهيل العصبي من خلال توحيد القراءات السلوكية عبر المختبرات.
تندرج هذه الطريقة ضمن التسلسل الممتد من مرحلة الاكتشاف إلى المرحلة قبل السريرية من خلال تحويل الأنظمة الروبوتية إلى أدوات تقييم نمطي قياسية لتعديل الدوائر الحركية، مع إمكانية تطبيقها المباشر في تحديد المركبات الواعدة في تطوير أدوية إعادة التأهيل العصبي.