- OptiGap là một hệ thống được phát triển để xác định điểm nào đã bị uốn cong trong robot mềm, nơi khó gắn các cảm biến truyền thống do cấu trúc linh hoạt
- Khe hở không khí được tạo bên trong ống dẫn quang linh hoạt làm thay đổi lượng ánh sáng truyền qua theo độ uốn, và sự khác biệt này được dùng như mẫu tín hiệu theo vị trí
- Ý tưởng bắt đầu từ một thí nghiệm gắn sợi nhựa TPU 1.75mm trong suốt của máy in 3D lên thước cuộn rồi bẻ cong, và quan sát biến đổi theo thời gian thực bằng Raspberry Pi, VL53L0X, ZeroMQ và Python GUI
- Ban đầu, hệ thống dùng 3 sợi nhựa TPU và bộ ghép sợi quang 3:1, nhưng sau đó được phát triển thành cấu trúc nhỏ gọn và đơn giản hơn dựa trên sợi quang PMMA 500 micron cùng photodiode, IR LED và STM32
- Hệ thống cuối cùng phân loại vị trí uốn trên STM32 bằng bộ phân loại Naive Bayes và lọc hai giai đoạn, sau đó tiếp tục được tích hợp vào EneGate, thu nhỏ PCB, kiểm chứng trên robot mềm thực tế và hướng tới thương mại hóa
Vai trò của OptiGap
- OptiGap là một hệ thống xác định điểm nào bị uốn cong khi một cảm biến dạng dây bị bẻ cong
- Chức năng này tương ứng với phát hiện vị trí uốn, tức bend localization
- Lĩnh vực ứng dụng chính là robot mềm
- Robot mềm xử lý các cấu trúc linh hoạt hoặc mềm dẻo, nên trong nhiều trường hợp khó sử dụng cảm biến truyền thống
- Tên OptiGap là sự kết hợp của “optical” và “gap”
- Nó tạo ra các mẫu mã cần thiết cho việc phát hiện vị trí uốn bằng khe hở không khí bên trong một ống dẫn quang linh hoạt
Thí nghiệm bắt đầu từ một phát hiện tình cờ
- Điểm khởi đầu là một thí nghiệm nhằm tận dụng cách ánh sáng truyền qua ống dẫn quang, tức cáp quang, như một cảm biến phát hiện độ uốn
- Trong lúc thử nghiệm bằng cách gắn sợi nhựa TPU 1.75mm trong suốt của máy in 3D lên thước cuộn, khi bẻ cong tại điểm có dán băng keo điện thì lượng ánh sáng truyền qua giảm mạnh
- Một giả thuyết được đặt ra là phần keo dính còn lại của băng điện làm kéo giãn sợi nhựa, từ đó làm giảm truyền ánh sáng
- Sau đó, một đoạn TPU dài hơn được gắn lên thước cuộn và bẻ ở nhiều vị trí để quan sát sự thay đổi trong truyền quang
- Một hệ thống đo lường và trực quan hóa đơn giản được dựng lên để kiểm chứng theo thời gian thực
- Việc kiểm chứng này trở thành thời điểm quyết định dẫn tới sự phát triển của OptiGap
Mã hóa thông tin vị trí bằng khe hở không khí
- Nếu có thể kiểm soát vị trí mà ánh sáng suy yếu, thì có thể mã hóa thông tin vị trí uốn bên trong cảm biến
- Cách dùng băng điện không thực tế, nên cần một cấu trúc suy hao ổn định và nhất quán hơn
- Giải pháp là cắt sợi nhựa rồi nối lại bằng ống bọc silicone, đồng thời chừa một khe hở không khí nhỏ ở giữa
- Khe hở không khí tận dụng sự dịch chuyển tương đối hoặc xoay của hai đầu ống dẫn quang
- Khi bề mặt đầu của một ống dẫn quang bị lệch so với đầu còn lại, tỷ lệ ánh sáng truyền qua khe sẽ thay đổi
- Góc uốn càng lớn thì càng nhiều ánh sáng thoát ra tại khe
- Cường độ tín hiệu quang thay đổi theo cách này được liên kết với các mẫu đã biết và dùng làm tín hiệu cảm biến
Nhiều khe hở không khí và Inverse Gray Code
- Bước tiếp theo là tạo nhiều khe hở không khí dọc theo một ống dẫn quang TPU duy nhất và đo mẫu suy hao khi bị uốn
- Cường độ ánh sáng giảm tại từng khe hở không khí, và độ giảm càng rõ khi góc uốn tăng lên
- Thí nghiệm này dẫn tới giả thuyết cuối cùng rằng có thể mã hóa vị trí uốn bằng mẫu khe hở không khí, rồi giải mã vị trí bằng bộ phân loại Naive Bayes trên vi điều khiển
- Khái niệm của OptiGap tương tự bộ mã hóa tuyến tính tuyệt đối
- Bộ mã hóa tuyến tính đo chuyển động tuyến tính bằng cách đọc mã theo từng vị trí
- Bộ mã hóa tuyệt đối xuất ra một mã duy nhất cho mỗi vị trí để nhận diện độ dịch chuyển
- OptiGap mã hóa vị trí tuyệt đối bằng các mẫu khe hở không khí nhạy với độ uốn được bố trí trên các ống dẫn quang song song, và hoạt động như một cảm biến sợi quang đơn
-
Lựa chọn Inverse Gray Code
- Bộ mã hóa tuyệt đối thường dùng Gray code
- Gray code là mã nhị phân mà hai giá trị liên tiếp chỉ khác nhau một bit
- Trong OptiGap, các giá trị liên tiếp cần khác nhau ở càng nhiều bit càng tốt để dễ phân biệt
- Để đáp ứng yêu cầu này, hệ thống dùng Inverse Gray code
- Inverse Gray code là mã nhị phân mà hai giá trị liên tiếp khác nhau tối đa ở
n-1bit - Tại mỗi vị trí có
1trong chuỗi mã, sợi nhựa được cắt để tạo khe hở không khí - Cách này có thể mở rộng với số bit tùy ý
- Nguyên mẫu dùng 3 bit để biểu diễn 8 vị trí
Chế tạo nguyên mẫu và thu nhỏ
- Nguyên mẫu OptiGap đầu tiên được tạo từ 3 sợi nhựa TPU trong suốt của máy in 3D với các mẫu khe hở không khí khác nhau
- Để gộp ánh sáng từ 3 sợi thành một cáp sợi quang, hệ thống dùng bộ ghép sợi quang 3:1 thương mại
- Nguyên mẫu này là bước cuối cùng để kiểm chứng giả thuyết và nguyên lý hoạt động của OptiGap
-
Giảm kích thước bằng sợi quang PMMA
- Nguyên mẫu ban đầu lớn và cồng kềnh do kích thước của sợi nhựa máy in 3D
- Sợi quang nhựa PMMA được đánh giá là một lựa chọn thay thế nhỏ hơn và linh hoạt hơn
- Các sản phẩm sợi quang PMMA không vỏ bọc 500, 750 và 1000 micron của Industrial Fiber Optics, Inc. đã được thử làm các sợi cảm biến
- Cả ba loại đều cho thấy đủ độ linh hoạt, và nhìn chung sợi quang 500 micron là phù hợp nhất
-
Giảm độ phức tạp của bộ thu phát quang
- Thay cho cảm biến ToF VL53L0X phức tạp, hệ thống dùng cấu hình photodiode và IR LED
- Thay đổi này giúp giảm độ phức tạp của hệ thống và tăng tính mô-đun
- Việc có thể đọc dữ liệu cảm biến bằng vi điều khiển cũng là một cải tiến quan trọng so với nguyên mẫu ban đầu
- Sau đó, một hệ thống demo được chế tạo dựa trên vi điều khiển STM32 cùng cấu hình photodiode và IR LED
Phân loại thời gian thực chạy trên STM32
- Ở giai đoạn phát triển cuối cùng, bộ phân loại Naive Bayes được tích hợp vào vi điều khiển STM32 để giải mã vị trí uốn từ dữ liệu cảm biến
- Có ba lý do để chọn bộ phân loại Naive Bayes
- Hiệu quả hơn so với các câu lệnh if hoặc bảng tra cứu
- Có thể xử lý dữ liệu mới hoặc dữ liệu chưa từng thấy trước đó
- Có khả năng tăng độ chính xác bằng cách xét mối quan hệ giữa nhiều biến đầu vào
- Bộ phân loại là một mô hình xác suất áp dụng định lý Bayes
- Trong hệ thống này, lớp phân loại nghĩa là vị trí uốn
- Nó hoạt động bằng cách xác định phép đo thuộc về lớp nào
- Việc triển khai sử dụng Arm CMSIS-DSP library
-
Khớp dữ liệu cảm biến
- Để tích hợp bộ phân loại, dữ liệu cảm biến của từng mẫu khe hở không khí được khớp với phân phối Gaussian
- Một Python GUI được phát triển để gắn nhãn và khớp dữ liệu nhanh chóng
- Sử dụng GNB của scikit-learn, tức Gaussian Naive Bayes
- Sau đó UI được cải thiện để có thể khớp dữ liệu tổng quát và phức tạp hơn
- Xác suất của từng lớp sau khi tính toán được lưu thành các tệp header để sử dụng trên vi điều khiển
-
Lọc dữ liệu cảm biến
- Để tăng độ chính xác của bộ phân loại, lọc hai giai đoạn được triển khai trên STM32
- Giai đoạn đầu là bộ lọc trung bình trượt cơ bản
- Giai đoạn thứ hai là bộ lọc Kalman
- Việc lọc được dùng để giảm nhiễu so với tín hiệu đầu vào
Demo, tích hợp và các bước tiếp theo
- Demo của OptiGap bao gồm quá trình lắp ráp và cách hệ thống cảm biến cuối cùng hoạt động
- Các hạng mục demo gồm lắp ráp dựa trên sợi nhựa TPU, suy hao ánh sáng thông qua cảm biến OptiGap, khớp dữ liệu cảm biến, phân loại phân đoạn bằng sợi quang PMMA và sợi nhựa TPU, cùng hoạt động dưới nước
- OptiGap cũng được tích hợp vào hệ thống truyền động và cảm biến mô-đun có tên EneGate
- Việc tích hợp này bao gồm thiết kế PCB tùy chỉnh và tích hợp hệ thống; nội dung chi tiết được đề cập trong luận văn công khai trực tuyến
- Một phiên bản PCB quang học cỡ nhỏ để kết nối với PCB của hệ thống EneGate cũng đã được tạo nguyên mẫu
- OptiGap cũng đã được kiểm chứng trên các hệ thống robot mềm thực tế
- Toàn bộ chi tiết sẽ được trình bày trong bài báo RoboSoft “Embedded Optical Waveguide Sensors for Dynamic Behavior Monitoring in Twisted-Beam Structures”
- Nghiên cứu này cũng đang tiếp tục hướng tới thương mại hóa
1 bình luận
Ý kiến Hacker News
Một nghiên cứu tuyệt đẹp và tài liệu cũng được ghi chép cực kỳ kỹ lưỡng
Ban đầu tôi định viết rằng về mặt khái niệm nó rất giống với phép đo phản xạ miền thời gian, nhưng có vẻ Cindy Harnett là giáo sư hướng dẫn nên chắc hẳn bà ấy đã biết rồi :)
Thật sự rất hay. Tôi thích ý tưởng làm cho vật liệu trở nên tự nhận thức hơn hoặc có thể kiểm tra được, rất đậm chất sci-fi
Trong nghiên cứu trước công việc hiện tại, tôi cũng từng làm một việc có liên quan rất nhẹ đến hướng này, nên càng vui hơn khi thấy nó lên trang chủ. Việc chúng tôi làm là huấn luyện ma trận truyền của sợi quang bằng mạng nơ-ron giá trị phức. Trước đây trong quang học người ta làm theo cách lan truyền phương trình Maxwell, nhưng chúng tôi đã vượt qua hiệu năng tiên tiến nhất khi đó đến vài bậc độ lớn bằng một cấu trúc cực kỳ đơn giản mà vật lý thực tế quy về chỉ là một phép nhân ma trận phức duy nhất. Điểm kết nối với nghiên cứu này là nếu sợi quang bị uốn cong thì phải học lại ma trận mới. Có thể cũng sẽ khả thi nếu học một đặc trưng hóa có tham số để chỉ cần vài phép đo đầu vào/đầu ra là có thể mô hình hóa dạng spline của sợi quang. Nhưng chúng tôi chưa đi xa đến mức đó
Nếu quan tâm thì bài báo ở đây
Bài thiên về CS: https://papers.nips.cc/paper_files/paper/2018/hash/148510031...
Bài thiên về vật lý: https://www.nature.com/articles/s41467-019-10057-8
Thật sự xuất sắc. Chỉ cần tinh chỉnh thêm một chút là có vẻ có thể sản xuất hàng loạt với độ chính xác rất cao
Ứng dụng cũng rất phong phú. Nếu dùng đường cong lấp đầy không gian thì có thể làm cảm biến 2D/3D để mang lại xúc giác cho robot với chi phí hiệu quả. Nếu quấn quanh thứ gì đó như ống mềm thì có thể dùng cho cảm nhận bản thể nhờ có độ nhạy theo hướng. Có vẻ cũng rất có khả năng phát hiện và định vị các yếu tố khác ảnh hưởng đến khe hở không khí, như chênh lệch nhiệt độ
Phần “nhờ một giáo sư hướng dẫn tuyệt vời” mới là mấu chốt. Chính điều đó tạo nên khác biệt giữa một trải nghiệm tồi tệ và một trải nghiệm tốt đẹp
Bài viết rất hay. Phần giải thích cực kỳ rõ ràng, và việc dùng GIF và hình minh họa để thể hiện khái niệm là vừa vặn hoàn hảo
Tôi chỉ là một kỹ sư phần mềm với hiểu biết hạn chế trong lĩnh vực này, nhưng đã rất thích thú suốt lúc đọc và học được rất nhiều. Làm rất tốt, và chúc mừng bạn nhận bằng tiến sĩ
Không hoàn toàn giống hệt, nhưng nó làm tôi nhớ đến DAS dùng cáp quang cho nhiều tác vụ cảm biến âm thanh. Về cơ bản đây là một kiểu thay thế cho geophone/hydrophone
Cũng đã có khá nhiều bài báo về việc dùng cáp quang dưới biển cho các tác vụ giám sát khác nhau. Luna Innovations cũng dùng nó cho các ứng dụng công nghiệp như cảm biến biến dạng, và theo tôi biết thì Schlumberger cũng có nhiều bằng sáng chế về cảm biến cáp quang liên quan đến streamer kéo. Nhưng tôi chưa từng thấy dùng nó cho robot mềm
Nhưng ý tưởng này đơn giản đến mức rất nền tảng, nên có vẻ những người thông minh hơn lại phần lớn đã bỏ qua nó
Một ý tưởng thật đáng kinh ngạc và một công trình rất tuyệt vời
Có vẻ dữ liệu cảm biến có vùng chết khá lớn; chẳng phải chỉ cần giảm khoảng cách giữa các cảm biến là có thể sửa khá dễ sao?
Liệu phát hiện hướng uốn cong có hữu ích không? Có vẻ có thể làm được nếu chia ống như logo Mercedes và đặt 3 bộ cảm biến trong một ống ngoài duy nhất
Có cách nào phát hiện nhiều điểm uốn cong không? Trong cấu hình hiện tại, có vẻ như các giá trị bị OR với nhau nên dễ dẫn đến đọc sai. Tôi tò mò không biết có giải pháp hay nào không
Rốt cuộc nó trở thành bài toán ghép các delta tương đối đã thay đổi từ lần đọc này sang lần đọc tiếp theo. Tuy nhiên có một cạm bẫy là nếu mọi khớp đều uốn nhiều thì đến một lúc nào đó ánh sáng sẽ không còn đi tới được đầu cuối nữa. Có cách để giảm nhẹ điều này, nhưng bình luận này đã quá dài rồi
Tôi đang tìm một cảm biến có thể phát hiện chính xác đầu gậy golf đi gần cảm biến đến mức nào, nhanh ra sao, và cung swing như thế nào
Ý tưởng là tạo ra một máy theo dõi phóng bóng golf mà không cần thật sự đánh bóng, để có thể chơi golf mô phỏng trong nhà. Kiểu như ngồi phòng khách xem Masters trên TV và cùng chơi, nhưng không đập nát TV bằng bóng golf
Tôi tự hỏi một cảm biến kiểu này, hoặc nhiều cái ghép lại, có phù hợp không
Như đã nói trước đó, tôi nghĩ dùng camera tốc độ cao cùng công nghệ trích xuất khung xương kiểu Kinect sẽ tốt hơn nhiều. Có lẽ có thể tự làm trong garage chỉ với PlayStation Eye và công nghệ mã nguồn mở sẵn có
Chẳng phải đây là cùng công nghệ với chiếc Nintendo Power Glove đầu tiên sao? https://www.youtube.com/watch?v=3g8JiGjRQNE
Người ta đưa ánh sáng vào ống rồi đo ánh sáng đó để kích hoạt thao tác nhấn phím. Vì vậy khi bạn gập ngón tay hoặc bàn tay thì hành động sẽ xảy ra. Các thế hệ sau đã đổi cơ chế
Tôi không hiểu chuyện gì xảy ra khi cảm biến bị uốn ở nhiều hơn một vị trí
Ban đầu họ nhắc đến cảm biến ToF nên tôi tưởng họ nhìn phản xạ từ chỗ uốn và đo luôn khoảng cách tới đó, nhưng có vẻ thực ra không phải vậy. Nếu bẻ cong cảm biến ở hai chỗ, có vẻ bạn chỉ nhận được tổng suy hao log sinh ra từ hai lần uốn. Nếu giả sử “cường độ” của độ uốn làm suy hao thay đổi liên tục, thì để phân biệt mọi tổ hợp hai lần uốn bất kỳ có vẻ sẽ cần số lượng sợi bằng với số vị trí khoảng cách.
Tôi không rõ là mình đã đọc sai hay là nó được thiết kế để dùng trong trường hợp biết trước chỉ có một lần uốn
Theo phần “Realtime Machine Learning on a Microcontroller”, cơ chế chuyển dạng sóng thành vị trí thực tế có vẻ dựa trên mô hình Bayes