- OptiGap, esnek yapıları nedeniyle geleneksel sensörlerin takılmasının zor olduğu soft robotikte, sensörün hangi noktadan büküldüğünü belirlemek için geliştirilmiş bir sistemdir
- Esnek bir optik boru içinde oluşturulan hava boşluğu, bükülmeye bağlı olarak ışık iletim miktarını değiştirir ve bu fark konuma göre sinyal deseni olarak kullanılır
- Fikir, şeffaf 1,75 mm TPU 3D yazıcı filamentini bir mezuraya yapıştırıp büken bir deneyle başladı; Raspberry Pi, VL53L0X, ZeroMQ ve Python GUI ile gerçek zamanlı değişimler gözlemlendi
- Başlangıçta 3 adet TPU filament ve 3:1 fiber optik kuplör kullanıldı; daha sonra 500 mikron PMMA optik fiber, fotodiyot, IR LED ve STM32 tabanlı daha küçük ve basit bir yapıya evrildi
- Nihai sistem, STM32 üzerinde Naive Bayes sınıflandırıcısı ve iki aşamalı filtreleme ile bükülme konumunu sınıflandırır; EneGate entegrasyonu, küçük PCB, gerçek soft robot doğrulaması ve ticarileştirme çalışmalarına kadar uzanır
OptiGap’in rolü
- OptiGap, halata benzeyen bir sensör büküldüğünde hangi noktanın büküldüğünü belirleyen bir sistemdir
- Bu işlev, bükülme konumu tespiti, yani bend localization kapsamına girer
- Başlıca uygulama alanı soft robotiktir
- Soft robotik, esnek veya yumuşak yapılarla çalıştığı için geleneksel sensörleri kullanmanın zor olduğu durumlar çoktur
- OptiGap adı “optical” ve “gap” sözcüklerinin birleşimidir
- Esnek optik boru içindeki hava boşluğu, bükülme konumu tespiti için gerekli kod desenini oluşturur
Tesadüfi bir keşifle başlayan deney
- Çıkış noktası, ışığın optik boru, yani optik kablo üzerinden iletilme biçimini bükülme algılama sensörü olarak kullanmaya yönelik bir deneydi
- Şeffaf 1,75 mm TPU 3D yazıcı filamentini bir mezuraya yapıştırarak yapılan deney sırasında, elektrik bandı yapıştırılmış nokta büküldüğünde ışık iletiminin büyük ölçüde azaldığı görüldü
- Elektrik bandının yapışkan kalıntısının filamenti gerdiği ve bunun sonucunda ışık iletiminin azaldığı varsayımı kuruldu
- Daha uzun bir TPU parçası mezuraya yapıştırıldıktan sonra farklı noktalar bükülerek optik iletimdeki değişimler gözlemlendi
- Gerçek zamanlı doğrulama için basit bir ölçüm ve görselleştirme sistemi kuruldu
- Bu doğrulama, OptiGap’in geliştirilmesine yol açan belirleyici an oldu
Konum bilgisini hava boşluklarıyla kodlama
- Işığın zayıfladığı konum kontrol edilebilirse, sensör içinde bükülme konumu bilgisi kodlanabilir
- Elektrik bandı yöntemi pratik olmadığı için daha kararlı ve tutarlı bir zayıflatma yapısına ihtiyaç vardı
- Çözüm, filamenti kestikten sonra silikon kılıfla yeniden bağlamak ve arada küçük bir hava boşluğu bırakmaktı
- Hava boşluğu, iki optik boru uç yüzeyinin göreli hareketinden veya dönmesinden yararlanır
- Bir optik boru yüzeyi diğeriyle hizadan saparsa boşluğu aşarak iletilen ışığın oranı değişir
- Bükülme açısı büyüdükçe boşluktan dışarı kaçan ışık miktarı artar
- Bu şekilde değişen optik sinyal şiddeti, bilinen desenlerle ilişkilendirilerek sensör sinyali olarak kullanılır
Birden fazla hava boşluğu ve Inverse Gray Code
- Sonraki adım, tek bir TPU optik boru boyunca birden fazla hava boşluğu oluşturmak ve büküldüğündeki zayıflama desenini ölçmekti
- Her hava boşluğunda optik şiddet azaldı; bükülme açısı büyüdükçe azalma daha belirgin hale geldi
- Bu deney, hava boşluğu desenleriyle bükülme konumunu kodlama ve mikrodenetleyicideki Naive Bayes sınıflandırıcısıyla konumu çözme şeklindeki nihai hipoteze yol açtı
- OptiGap kavramı mutlak doğrusal enkodere benzer
- Doğrusal enkoder, konuma özgü kodları okuyarak doğrusal hareketi ölçer
- Mutlak enkoder, yer değiştirmeyi tanımlamak için her konumda benzersiz bir kod üretir
- OptiGap, paralel optik borulara yerleştirilmiş bükülmeye duyarlı hava boşluğu desenleriyle mutlak konumu kodlar ve tek bir optik fiber sensör gibi çalışır
-
Inverse Gray Code seçimi
- Mutlak enkoderler genellikle Gray code kullanır
- Gray code, ardışık iki değerin yalnızca bir bit farklı olduğu ikili koddur
- OptiGap’te ayırt etmeyi kolaylaştırmak için ardışık değerlerin mümkün olduğunca çok bitte farklı olması gerekir
- Bu gereksinime uygun olarak Inverse Gray code kullanılır
- Inverse Gray code, ardışık iki değerin en fazla
n-1bitte farklı olduğu ikili koddur - Kod dizisinde
1bulunan her konumda filament kesilerek hava boşluğu oluşturulur - Bu yöntem istenen bit sayısına ölçeklenebilir
- Prototip, 3 bit ile 8 konumu ifade eder
Prototip üretimi ve küçültme
- İlk OptiGap prototipi, farklı hava boşluğu desenlerine sahip 3 adet şeffaf TPU 3D yazıcı filamentinden üretildi
- 3 hattaki ışığı tek bir fiber optik kabloda birleştirmek için ticari bir 3:1 fiber optik kuplör kullanıldı
- Bu prototip, OptiGap hipotezini ve çalışma teorisini doğrulayan son aşamaydı
-
PMMA optik fiberle boyutu küçültme
- İlk prototip, 3D yazıcı filamentinin boyutu nedeniyle büyük ve hacimliydi
- PMMA plastik optik fiber daha küçük ve esnek bir alternatif olarak değerlendirildi
- Industrial Fiber Optics, Inc.’in kılıfsız PMMA optik fiber ürünlerinden 500, 750 ve 1000 mikron olanları sensör hattı olarak test edildi
- Üç tür de yeterli esneklik gösterdi; genel olarak 500 mikron optik fiber en uygun seçenekti
-
Optik alıcı-verici karmaşıklığını azaltma
- Karmaşık VL53L0X ToF sensörü yerine fotodiyot ve IR LED düzeni kullanıldı
- Bu değişiklik sistem karmaşıklığını azalttı ve modülerliği artırdı
- Sensör verilerinin mikrodenetleyici tarafından okunabilir hale gelmesi de ilk prototipe kıyasla önemli bir iyileştirmeydi
- Daha sonra STM32 mikrodenetleyici ile fotodiyot ve IR LED düzeni temelinde bir demo sistem üretildi
STM32 üzerinde çalışan gerçek zamanlı sınıflandırma
- Nihai geliştirme aşamasında, sensör verilerinden bükülme konumunu çözmek için STM32 mikrodenetleyiciye Naive Bayes sınıflandırıcısı entegre edildi
- Naive Bayes sınıflandırıcısının seçilmesinin üç nedeni vardı
- if ifadelerinden veya arama tablolarından daha verimlidir
- Yeni verileri veya daha önce görülmemiş verileri işleyebilir
- Birden çok giriş değişkeni arasındaki ilişkileri dikkate alarak doğruluğu artırma olasılığı vardır
- Sınıflandırıcı, Bayes teoremini uygulayan olasılıksal bir modeldir
- Bu sistemde sınıf, bükülme konumunu ifade eder
- Ölçüm değerinin hangi sınıfa ait olduğunu belirleyerek çalışır
- Uygulamada Arm CMSIS-DSP library kullanıldı
-
Sensör verisi uydurma
- Sınıflandırıcı entegrasyonu için her hava boşluğu deseninin sensör verileri Gauss dağılımına uyduruldu
- Hızlı etiketleme ve uydurma için Python GUI geliştirildi
- scikit-learn’ün GNB’si, yani Gaussian Naive Bayes kullanıldı
- Daha sonra daha genel ve karmaşık veri uydurmayı mümkün kılmak için UI iyileştirildi
- Her sınıfın olasılığı hesaplandıktan sonra mikrodenetleyicide kullanılacak bir header dosyası olarak kaydedildi
-
Sensör verisi filtreleme
- Sınıflandırıcı doğruluğunu artırmak için STM32 üzerinde iki aşamalı filtreleme uygulandı
- İlk aşama temel hareketli ortalama filtresidir
- İkinci aşama Kalman filtresidir
- Filtreleme, giriş sinyaline kıyasla gürültüyü azaltmak için kullanılır
Demo, entegrasyon ve sonraki adımlar
- OptiGap demosu, montaj sürecini ve nihai sensör sisteminin çalışmasını içerir
- Demo öğeleri; TPU filament tabanlı montaj, OptiGap sensörü üzerinden ışık zayıflaması, sensör verisi uydurma, PMMA optik fiber ve TPU filament kullanarak segment sınıflandırması ve su altında çalışma şeklindedir
- OptiGap, EneGate adlı modüler bir aktüasyon ve algılama sistemine de entegre edildi
- Bu entegrasyon özel PCB tasarımı ve sistem entegrasyonunu içerir; ayrıntılar çevrimiçi yayımlanan tezde ele alınır
- EneGate sisteminin PCB’sine bağlanmak üzere küçük bir optik PCB sürümü de prototip olarak üretildi
- OptiGap gerçek soft robot sistemlerinde de doğrulandı
- Tüm ayrıntılar RoboSoft makalesi “Embedded Optical Waveguide Sensors for Dynamic Behavior Monitoring in Twisted-Beam Structures” içinde ele alınacak
- Bu araştırma ticarileştirme çalışmalarına da uzanıyor
1 yorum
Hacker News yorumları
Çok güzel bir araştırma ve belgelemesi de son derece özenli
Başta kavramsal olarak zaman domeni yansıtma ölçümüne çok benzediğini yazacaktım; ama Cindy Harnett danışmanı gibi göründüğüne göre bunu zaten biliyor olmalı :)
Gerçekten harika. Malzemeleri daha öz farkındalıklı ya da denetlenebilir hâle getirme fikrini seviyorum; tam bilimkurgu gibi
Önceki işimdeki araştırmada bununla çok az da olsa kesişen bir şey yapmıştım; bu yüzden bunun ana sayfaya çıktığını görmek ayrıca sevindirdi. Bizim yaptığımız iş, karmaşık değerli sinir ağlarıyla bir optik fiberin iletim matrisini öğrenmekti. Optikte bu daha önce Maxwell denklemlerini yayarak yapılıyordu; biz ise gerçek fiziğin tek bir karmaşık matris çarpımına indirgenebildiği çok basit bir yapıyla en iyi performansı birkaç mertebe geçmiştik. Buradaki araştırmayla bağlantı noktası, fiber bükülürse yeni bir matrisi yeniden öğrenmek gerekmesi. Girdi/çıktı ölçümlerinden birkaçını alıp fiberin spline biçimini modelleyebilmek için parametreleştirilmiş bir karakterizasyon öğrenmek de mümkün olabilir. Ama biz o noktaya gelemedik
İlgilenen olursa makaleler burada
CS odaklı makale: https://papers.nips.cc/paper_files/paper/2018/hash/148510031...
Fizik odaklı makale: https://www.nature.com/articles/s41467-019-10057-8
Gerçekten çok iyi. Biraz iyileştirmeyle çok yüksek doğrulukta seri üretim de mümkün görünüyor
Kullanım alanları da bol. Uzay dolduran eğriler kullanılırsa robotlara maliyet etkin biçimde dokunma duyusu kazandıracak 2D/3D sensörler yapılabilir gibi. Esnek bir tüp gibi bir şeyin etrafına sarılırsa yön duyarlılığıyla propriyosepsiyon için de kullanılabilir. Sıcaklık farkı gibi hava aralığını etkileyen diğer etkenleri de algılayıp konumlarını belirleyebilmesi oldukça olası görünüyor
“Harika bir danışman sayesinde” kısmı kilit nokta. Berbat bir deneyimle iyi bir deneyimi ayıran fark tam da burada
Harika bir yazı. Açıklama çok netti; kavramı gösteren GIF’ler ve görsellerin kullanımı da tam yerindeydi
Bu alanı sınırlı anlayan bir yazılım mühendisi olmaktan öte değilim, ama okurken çok keyif aldım ve çok şey öğrendim. Elinize sağlık; doktoranız da kutlu olsun
Tam olarak aynı şey değil ama çeşitli akustik algılama işleri için fiber optik kablo kullanan DAS’ı akla getiriyor. Temelde jeofon/hidrofon alternatifine benzer bir yaklaşım
Deniz altı fiberlerinin çeşitli gözetim işleri için kullanıldığı epey makale de vardı. Luna Innovations bunu gerinim algılama gibi endüstriyel uygulamalarda kullanıyor; Schlumberger’in de çekili streamer’larla ilgili birkaç fiber optik algılama patentine sahip olduğunu biliyorum. Ancak yumuşak robotikte kullanıldığını görmedim
Ama bu fikir o kadar temelden basit ki, daha zeki insanlar çoğunlukla yanından geçip gitmiş gibi
Gerçekten şaşırtıcı bir fikir ve harika bir çalışma
Sensör verilerinde oldukça büyük ölü bölgeler var gibi görünüyor; sensörler arasındaki mesafe azaltılırsa bu kolayca düzeltilemez mi?
Bükülme yönünü algılamak da yararlı olur mu? Tüpü Mercedes logosu gibi bölüp tek bir dış tüpün içine 3 sensör seti koyarsanız mümkün gibi
Birden fazla yerde bükülmeyi algılamanın bir yolu da var mı? Mevcut yapılandırmada değerleri fiilen OR’lamış oluyorsunuz; bu da hatalı okumalara yol açacak gibi. İyi bir çözüm olup olmadığını merak ediyorum
Sonuçta mesele, bir okumadan bir sonrakine değişen göreli deltayı eşleştirmeye dönüşüyor. Ancak tüm eklemler çok bükülürse bir noktada ışığın sona kadar ulaşmaması gibi bir tuzak var. Bunu hafifletmenin yolları da var ama yorum zaten çok uzadı
Golf sopasının sensörün üzerinden geçerken ne kadar yakın olduğunu, ne kadar hızlı olduğunu ve swing yayının nasıl olduğunu doğru algılayabilecek bir sensör arıyordum
Topa vurmaya gerek bırakmayan bir golf launch monitor yapıp kapalı alanda simülasyon golf oynatmak istiyorum. Oturma odasında TV’den Masters’ı izlerken onunla birlikte oynamak, ama golf topuyla TV’yi parçalamamak gibi
Bu sensörden birini ya da birkaçını bir arada kullanmanın uygun olup olmayacağını merak ediyorum
Yukarıda söylendiği gibi yüksek hızlı kamera ve Kinect tarzı iskelet çıkarma teknolojisini birlikte kullanmak çok daha iyi olur bence. PlayStation Eye ve mevcut açık kaynak teknolojilerle garajda bile yapılabilir gibi
Bu, ilk Nintendo Power Glove’da kullanılan teknolojiyle aynı değil mi? https://www.youtube.com/watch?v=3g8JiGjRQNE
Tüpe ışık verip o ışığı ölçerek tuş girişlerini tetikliyordu. Yani parmağı ya da eli bükünce hareket gerçekleşiyordu. Sonraki nesillerde mekanizmayı değiştirdiler
Sensör iki veya daha fazla konumda bükülürse ne olduğunu anlamıyorum
Başlarda ToF sensöründen söz edildiği için bükülmeden gelen yansımaya bakıp o mesafeyi de ölçtüğünü sanmıştım; ama gerçekte öyle değil gibi. Sensörü iki noktadan bükerseniz iki bükülmeden kaynaklanan logaritmik zayıflamaların toplamını elde ediyorsunuz gibi görünüyor. Bükülmenin “şiddetinin” zayıflamayı sürekli olarak değiştirdiğini varsayarsak, keyfi iki bükülme kombinasyonunu ayırt etmek için boşluk konumu sayısı kadar lif gerekir gibi.
Yanlış mı okudum, yoksa bunun yalnızca tek bir bükülme olduğu bilinen durumlarda kullanılması mı amaçlanmış merak ediyorum
“Realtime Machine Learning on a Microcontroller” bölümüne göre dalga biçimini gerçek konuma çeviren mekanizma Bayesçi model tabanlı görünüyor