8 Ağustos 2011
Son zamanlarda, umutları büyük bir miktarı, insan-robot interaktif sistemleri için gelmiş. Bu yazıda, açık kaynak kodlu yazılım ile hızla etkileşimli işlevselliği olası bir kütüphane yapabilirsiniz yeni bir robotik cihaz entegrasyonu anahat. Daha sonra bir nörorehabilitasyon uygulama için bir klinik uygulama anahat.
Bu prosedürün genel amacı, bir robotu sanal ortam kütüphanesine entegre etmek ve ardından robotu inme terapisinde kullanmaktır. Bu işlem, öncelikle haptik kütüphanesini genişletmek için bir sarmalayıcı (wrapper) sınıf oluşturularak ve ardından bu sarmalayıcı sınıfın haptik kütüphanesine entegre edilmesiyle gerçekleştirilir. Bir sonraki adım, grafik kütüphanesini genişletmek için bir sarmalayıcı sınıf oluşturmak ve sarmalayıcı sınıflar tamamlandıktan sonra bu sarmalayıcı sınıfı grafik kütüphanesine entegre etmektir.
H 3D API arayüzü, inme hastalarının test edilmesi için sonlu durum makinesi kurmak amacıyla kullanılır. Entegre robot ise daha sonra inme hastalarının rehabilitasyonuna yardımcı olmak için kullanılır. Bu tekniğin temel avantajı, artık her robot için farklı bir yazılım uygulaması yazmak zorunda kalmamanızdır.
Ayrıca, bu uygulamalar laboratuvarlarının hangi robotu kullandığına bakılmaksızın dünyanın dört bir yanındaki bilim insanları tarafından çalıştırılabilir. Bu yöntem; sinir sistemimizin hata artırımından ne derece faydalanabileceği gibi rehabilitasyon, robotik ve motor kontrol alanlarındaki temel soruların yanıtlanmasına yardımcı olabilir. Bu yöntem, hem inme kaynaklı bozukluklar hakkında içgörü sağlayabilir hem de sağlıklı fonksiyonlara dair anlayışımızı geliştirebilir.
Genellikle, rehabilitasyona yeni başlayan inme hastalarının, tutacağı kavramayı öğrenmek gibi belirli engelleri aşmaları gerekir. Bu yöntemle ilgili fikrimiz ilk olarak, yerçekimi kompanzasyonuyla çalışan ve geniş bir operasyonel çalışma alanına sahip bir robota ihtiyaç duyduğumuzu fark ettiğimizde ortaya çıktı. Ayrıca, gelecekteki lisansüstü öğrencilerin aynı çalışmaları tekrarlamak zorunda kalmadan öncekilerin deneyimlerinden faydalanabilmeleri için yazılımın yeniden yazılmasını minimuma indirmek istedik.
Bu video, bir whole arm manipulation (WHAM) robotunun www.hthreedpi.org adresinde bulunan açık kaynaklı kodla entegre edilmesine yönelik talimatlar sunmaktadır. Yeni bir robotu haptik kütüphaneye entegre etmek için ilk adım, WHAM robotunun hareketini kontrol etmek için kullanılan haptik renderlama motoru HAP için bir sarmalayıcı (wrapper) sınıf yazmaktır. İşleme bir CPP ve bir başlık (header) dosyası oluşturarak başlayın.
Bu örnek için kullanılan dosya adları happy, wham, cpp ve happy wham h'dir. happy wham cpp dosyasını kaynak dizine yerleştirin. Happy slash source, ardından happy dosyasını yerleştirin.
Wham h dosyasını başlık dosyası dizinine ekleyin. Happy slash include slash happy. happy wham h dosyasının en üstüne robotun ana başlık dosyalarını ekleyin.
Dahil edilen kütüphane C dilinde, H 3D API ise C++ dilinde yazıldığından, derleyici isim karmaşasını (mangling) çözmek için extern C kullanımının gerekli olduğunu unutmayın. happy_wham.h dosyasında robot için sınıfı oluşturun ve şu dört fonksiyonu içine ekleyin: Haptics device release, haptics device, update device values ve send output. Sınıfın, happy haptics device sınıfından public olarak türetildiğinden emin olun.
Ardından, sınıf için bir başlık koruyucu (header guard) oluşturun. Daha sonra happy WHAM sınıfı altında statik cihaz çıktısını ve statik haptik cihaz kayıt özniteliklerini oluşturun. Son olarak, robotunuza özgü geri çağırmalar (callbacks) için statik üye fonksiyonlarını oluşturun.
Bir WHAM robotu için, callback fonksiyonu bull ve haptics cihazı int fonksiyonunda kullanılır. Prototipler başlık dosyasında ayarlandıktan sonra, happy wham dot cpp dosyasını açın ve uygun başlık dosyaları ile isim alanını (namespace) ekleyin. Ardından, Happy Wam cpp dosyasında yapılandırıcıyı (constructor) ve yıkıcıyı (destructor) tanımlayın.
Ardından cihazı Happy Wam cpp içerisinde kaydedin. Şimdi Happy Wam cpp'deki dört kalıtımlı fonksiyonu ve geri çağırma (callback) işlemlerini tanımlayın. Cihaz değerlerini güncelleme fonksiyonu, bilgisayara robot kolunun konumunu ve robotun çevre üzerinde ne kadar kuvvet uyguladığını bildirir.
Happy Wrapper sınıfı oluşturulduktan sonraki adım, Happy kütüphanesine bir wrap oluşturmaktır. WAM, H 3D API'nin ham formunda bağımlı olmadığı bazı kütüphanelere bağımlıdır. Bu nedenle, bu kütüphanelerin happy'ye eklenmesi gerekmektedir.
H 3D 2.1/happy/build dizinine gidin ve C make lists metin dosyasını düzenleyin. Bağımlı kütüphaneleri Set optional libs yazan satırdan sonrasına ekleyin. Bir komut konsolu açın, H 3D 2.1/happy/build dizinine gidin ve yeni robotun H 3D açık kaynak koduyla entegrasyonunu tamamlamak için sırasıyla see make dot pseudo make ve pseudo make install komutlarını yazın.
Sahneler grafiği (scene graph) için ikinci bir sarmalayıcı (wrap) sınıf yazın. API, H 3D API olarak adlandırılır. Bu örnekte, wam device adlı bir sarmalayıcı sınıf kullanılmaktadır.
H 3D AP I/source kaynak dizinine gidin ve WAM device.cpp ile wam device.cpp dosyalarını oluşturun. Tüm H 3D PI cihazları için standart kaynağı ekleyin. Ardından, Wam device.h dosyasını başlık dosyaları dizinine yerleştirin.
Wam cihazı H, tüm H 3D API cihazları için standart başlık dosyasını içermelidir. Sarmalayıcı sınıf oluşturulduğuna göre, H three DPI slash build dizinindeki C make lists metnini düzenleyerek H 3D PI kütüphanesini yeniden derleyin. Son olarak H 3D PI slash build dizininde.
H 3D API kütüphanesini CMake, pseudo make ve pseudo make install komutlarını kullanarak yeniden oluşturun. Yeni sarmalayıcı sınıflar artık bir robotla kullanım için hazırdır. Uygun sarmalayıcı sınıflar yüklendikten sonra, Barrett WHAM robotu ile kullanılan hedefe uzanma görevi için deneysel protokolü kontrol etmek amacıyla bir sonlu durum makinesi oluşturulur. Durum makinesinin durumları; deneme başlangıcı, hedef teması ve deneme sonudur.
Deneme başlangıç durumu, bir hedefin atanmasıyla başlar. Hedef konumları her deneme için rastgele belirlenebilir veya bir dosyadan ayarlanabilir. Deneme başlangıç durumu sona erer ve fırlatma durumu başlar.
Denek elini, tipik olarak 0,06 metre/saniye olan hız eşiğinin üzerinde bir hızla hedefe doğru hareket ettirdiğinde fırlatma aşaması başlar. Hastanın imleci hedefe değdiğinde fırlatma durumu sona erer ve hedef temas durumu başlar. Temas gerçekleştiğinde hedef kaybolur, hedef temas durumu sona erer ve deneme sonu durumu başlar.
Deneme sonu durumunun bitişi, veri toplama yazılımına veri dosyasının deneme sonu sınırlayıcısıyla işaretlenmesi gerektiğini bildirir. Son deneme tamamlanmadığı sürece, deneme sonu durumunun sona ermesi deneme başlangıcı durumunu etkinleştirir ve yeni bir hedef atanır. Bu bölüm, inme hastalarının rehabilitasyonunda kullanılan Phantom adlı farklı bir robotu tanıtmaktadır.
Phantom'ın sarmalayıcı sınıf kodunun uygun kütüphanelere yerleştirilmesiyle, yeni robot sanal ortama entegre edilebilir; burada sanal gerçeklik Robotik ve optik operasyon makinesi veya odası olarak adlandırılan üç boyutlu bir haptik grafik sistemi kullanılmıştır. Bu sistem, yarı gümüş ayna katmanlı bir ekran üzerinde projeksiyonla yansıtılan ve kafa takibi yapan bir render işlemi ile bilek konumunu kaydedebilen ve bir kuvvet vektörü oluşturabilen robotik bir sistemi birleştirir. Sinema kalitesinde bir dijital projeksiyon cihazı, beş fit genişliğinde bir ekranı kapsayan görüntüleri yansıtarak 110 derecelik geniş bir izleme açısı sağlar.
Kızılötesi yayıcılar, LCD panjurlu gözlükler aracılığıyla ayrı sol ve sağ göz görüntülerini senkronize eder. Görsel ekranın uygun baş merkezli perspektifle oluşturulması için baş hareketi, ascension flock of birds manyetik elementleri ile takip edilir. Bilek splintine sahip bir exo tendon eldiveni, nötr bilek ve el hizalamasına yardımcı olur.
Robot kolunun merkezi, ön kolun radiokarpal eklemin posterior kısmına yerleştirilir. Bu durum, kuvvetlerin el bileğinde etki etmesini sağlarken, elin serbestçe hareket etmesine olanak tanır. Hastanın kol ağırlığı, yay gücüyle çalışan bir Wilmington robotik ekzoskelet yerçekimi dengeli ortez kullanılarak azaltılır.
Hastanın yanında oturan terapist, ekrandaki imleci hareket ettirmek için bir takip cihazı kullanır. Hastadan, robotik kolu kullanarak imleci takip etmesi istenir. Hata artırımı, hem görsel olarak hem de robot tarafından üretilen kuvvetlerle sağlanır.
Hastanın imleci terapistin imlecinden saptığında ve anlık hata oluştuğunda, E vektörü, terapist imleci ile hastanın eli arasındaki konum farkı olarak belirlenir. Hata artırımının bir parçası olarak, hata 1,5 E faktörüyle görsel olarak büyütülür. Ek olarak, hastanın koluna 100 E değerinde bir hata artırım kuvveti uygulanır ve bu kuvvet maksimum dört Newton değerinde doyuma ulaşacak şekilde programlanmıştır.
Güvenlik nedenleriyle, hata artırımı hastanın algıladığı hataları büyüterek yeniden öğrenme sürecini geliştirir. Tedavi protokolü, hastanın ileriye ve yana doğru uzanma omuz-dirsek eşleşmesi ve gövde boyunca çapraz uzanma dahil olmak üzere birkaç spesifik hareketi uygulamasını gerektirir. Bir sonraki gösterim için üst sınıf kodu değiştirilmiş ve Barrett WHAM robotu kullanılmıştır.
Bir sonraki görevin amacı, sağlıklı deneklerin veya inme hastalarının yarı saydam yeşil kürenin içindeki sanal bir projektili yakalamasıdır. Hastanın elleri kürenin dışına çıkarsa, küre kırmızıya döner ve hastanın koluna robot tarafından hata artırıcı geri bildirim verilir. Hasta, belirlenen alan içinde projektili başarıyla yakaladığında ise küre yeşil kalır.
Bu şekil, medyan ulaşma hatasını göstermektedir. Her bir nokta, iki dakikalık stereotipik fonksiyonel hareket bloğu için ölçülen medyan hatayı temsil etmektedir. Hastalar iki haftalık süre boyunca ilerleme göstermiş olsa da, her gün her zaman iyileşme gerçekleşmemiştir.
Bu şekil, hata artırımının hareketten harekete değişkenliği seçici olarak azaltmadaki sonucuna ilişkin faydayı göstermektedir. Üstteki grafikler kontrol grubuna ait verileri, alttaki grafikler ise tedavi grubuna ait verileri göstermektedir. Her renk farklı bir deneği temsil eder.
İki yatay çizgi, görev için sınırların konumunu göstermektedir. Deneğin amacı, sanal fırlatılan nesneyi bu sınırlar içerisinde yakalamaktı. Bir noktanın konumu, ilgili deneğin temas noktasına en çok yaklaştığı yeri göstermektedir.
Yansıtılan görüntüde, ham veri ekranının üzerine bindirilmiş mavi yarı saydam histogramlar, grubun hareket dağılımını göstermektedir. Anterior eksen boyunca, inme geçiren hastalar yakalama görevinin ilk 200 denemesini gerçekleştirmiş; 201 ile 400 arasındaki denemelerde ise herhangi bir hata artırıcı geri bildirim sağlanmamıştır. Robotun hastaya sağladığı hata artırıcı geri bildirim, hastanın hedefi belirtilen sınırlar içerisinde yakalama yeteneğinde anlamlı bir iyileşme ile sonuçlanmıştır.
Bu prosedürün ardından, geleneksel rehabilitasyon yöntemleri halen uygulanabilir ancak robot sayesinde birçok tekrarlanan deneme boyunca hastanın elinin nerede olduğunu her an nicel olarak belirleyebiliriz. Bu teknik, birçok olası çözümün bulunduğu bir bölge içinde simüle edilmiş uzanma hareketlerini keşfedebileceğimiz nöral mühendislik alanındaki yeni araştırmaların önünü açmıştır. Bu videoyu izledikten sonra, seçilen bir rehabilitasyon robotu için H 3D API kütüphanesinin nasıl genişletileceği ve inme hastalarının değerlendirilmesi ile tedavisi için çeşitli haptik grafik arayüzlerin nasıl uygulanacağı konusunda bilgi sahibi olmalısınız.
Robotlarla çalışmak potansiyel olarak tehlikeli olabildiğinden, bu tür insan etkileşimlerine sahip bir robot seçilirken dikkatle değerlendirme yapılmalıdır. En güncel projemiz için daha güçlü olması ve geri sürülebilir (back drivable) olması nedeniyle Barrett WHAM'i seçtik. Geri sürülebilir olması, uygun şekilde programladığımızda neredeyse dirençsiz hissedebileceği anlamına gelir ve buna rağmen insan-makine etkileşimi için mevcut olan en güvenli seçeneklerden biridir.
Ana bilgisayarı izleyen ayrı bir bekçi bilgisayar (watchdog computer) bulunmaktadır ve herhangi bir terslik durumunda sistemi devre dışı bırakabilir; dinamik frenleme ise sistemin aktif olmadığı her an bir sönümleyici olarak çalışmasını sağlar. Birçok robot farklı şekilde performans gösterse de, işlevlerinin birçoğu örtüşmektedir. Bu nedenle, tekniklerimizin robotlar arasındaki taşınabilirliği, laboratuvarlar arasında yeni paylaşımları teşvik edebilir.
Bu çalışmada gösterilen eğitim tedavilerinin, hastalarda fonksiyonların geri kazanılmasının yanı sıra sporlarda eğitimin geliştirilmesi, teleoperasyon pilotluğu, müzik performansı, cerrahi teknikler ve tekrarlayıcı uygulama gerektiren diğer tüm görevler için teşvik edici kanıtlar sunduğu açıktır.
Bu makale, özellikle inme terapisini hedefleyen nörorehabilitasyon uygulamaları için bir robotik cihazın açık kaynaklı bir yazılımla entegrasyonunu ele almaktadır. Bu yaklaşım, etkileşimli işlevlerden oluşan bir kütüphanenin sanal bir ortamda kullanılmasına olanak tanır.
Bu çalışma, translasyonel nörobilim ve rehabilitasyon mühendisliğindeki temel bir darboğazı ele almaktadır: robotik platformlar arasındaki yazılım birlikte çalışabilirliğinin eksikliği. Tek bir kod tabanının çeşitli haptik cihazlarla arayüz kurmasını sağlayan bu yaklaşım, geliştirme maliyetlerini düşürmekte ve motor öğrenme müdahalelerinin tekrarlanabilir preklinik değerlendirmelerini desteklemektedir. Bu yetenek, laboratuvarlar arası davranışsal çıktıları standartlaştırarak, nörorehabilitasyon tedavilerinin erken evre hedef doğrulamasındaki öngörü güvenini artırmaktadır.
Bu yöntem, robotik sistemleri motor devre modülasyonu için standartlaştırılmış fenotipleme araçlarına dönüştürerek, nörorehabilitasyon ilaç geliştirme sürecindeki öncü bileşiklerin belirlenmesine doğrudan uygulanabilirlik sağlayarak keşiften preklinik aşamaya kadar olan sürekliliğe uyum sağlar.