Mục lục:

Sử dụng Sonar, Lidar và Computer Vision trên Vi điều khiển để hỗ trợ người khiếm thị: 16 bước
Sử dụng Sonar, Lidar và Computer Vision trên Vi điều khiển để hỗ trợ người khiếm thị: 16 bước

Video: Sử dụng Sonar, Lidar và Computer Vision trên Vi điều khiển để hỗ trợ người khiếm thị: 16 bước

Video: Sử dụng Sonar, Lidar và Computer Vision trên Vi điều khiển để hỗ trợ người khiếm thị: 16 bước
Video: Webinar: Giải Pháp Điều Khiển Cho Hệ Thống Tự Động Hoá Trên Nền Tảng PC 2024, Tháng bảy
Anonim
Sử dụng Sonar, Lidar và Computer Vision trên Vi điều khiển để hỗ trợ người khiếm thị
Sử dụng Sonar, Lidar và Computer Vision trên Vi điều khiển để hỗ trợ người khiếm thị

Tôi muốn tạo ra một 'cây gậy' thông minh có thể giúp những người khiếm thị nhiều hơn các giải pháp hiện có. Cây gậy sẽ có thể thông báo cho người dùng về các vật thể ở phía trước hoặc ở hai bên bằng cách tạo ra tiếng ồn trong tai nghe loại âm thanh vòm. Cây gậy cũng sẽ có một camera nhỏ và LIDAR (Phát hiện và đo sáng) để nó có thể nhận ra các đồ vật và người trong phòng và thông báo cho người dùng bằng cách sử dụng tai nghe. Vì lý do an toàn, tai nghe sẽ không chặn tất cả tiếng ồn vì sẽ có một micrô có thể lọc tất cả những âm thanh không cần thiết và giữ cho tiếng còi xe và tiếng người nói chuyện. Cuối cùng, hệ thống sẽ có một GPS để nó có thể chỉ đường và chỉ cho người dùng nơi để đi.

Hãy bình chọn cho tôi trong các cuộc thi Vi điều khiển và Thể dục ngoài trời nhé!

Bước 1: Tổng quan về dự án

Tổng quan về dự án
Tổng quan về dự án
Tổng quan về dự án
Tổng quan về dự án
Tổng quan về dự án
Tổng quan về dự án

Theo World Access for the Blind, vận động cơ thể là một trong những thách thức lớn nhất đối với người mù. Đi du lịch hoặc đơn giản là đi bộ xuống một con phố đông đúc có thể rất khó khăn. Theo truyền thống, giải pháp duy nhất là sử dụng "cây gậy trắng" thường được biết đến, chủ yếu được sử dụng để quét môi trường xung quanh bằng cách va vào các chướng ngại vật ở gần người dùng. Giải pháp tốt hơn sẽ là một thiết bị có thể thay thế trợ lý thị giác bằng cách cung cấp thông tin về vị trí của chướng ngại vật để người mù có thể đi ra ngoài trong môi trường không xác định và cảm thấy an toàn. Trong dự án này, một thiết bị nhỏ hoạt động bằng pin đáp ứng các tiêu chí này đã được phát triển. Thiết bị có thể phát hiện kích thước và vị trí của đối tượng bằng các cảm biến đo vị trí của đối tượng liên quan đến người dùng, chuyển tiếp thông tin đó đến bộ vi điều khiển, sau đó chuyển đổi thành âm thanh để cung cấp thông tin cho người dùng. Thiết bị được chế tạo bằng cách sử dụng LIDAR thương mại (Phát hiện và đo khoảng cách ánh sáng), SONAR (Điều hướng và đo khoảng cách bằng âm thanh), và các công nghệ thị giác máy tính được liên kết với bộ vi điều khiển và được lập trình để cung cấp đầu ra thông tin âm thanh cần thiết bằng tai nghe hoặc tai nghe. Công nghệ phát hiện được nhúng trong một “cây gậy trắng” để cho những người khác biết tình trạng của người dùng và cung cấp thêm sự an toàn.

Bước 2: Nghiên cứu cơ sở

Nghiên cứu cơ sở
Nghiên cứu cơ sở
Nghiên cứu cơ sở
Nghiên cứu cơ sở
Nghiên cứu cơ sở
Nghiên cứu cơ sở
Nghiên cứu cơ sở
Nghiên cứu cơ sở

Năm 2017, Tổ chức Y tế Thế giới báo cáo rằng có 285 triệu người khiếm thị trên toàn thế giới, trong đó 39 triệu người mù hoàn toàn. Hầu hết mọi người không nghĩ về những vấn đề mà người khiếm thị phải đối mặt hàng ngày. Theo World Access for the Blind, vận động cơ thể là một trong những thách thức lớn nhất đối với người mù. Đi du lịch hoặc đơn giản là đi bộ xuống một con phố đông đúc có thể rất khó khăn. Do đó, nhiều người khiếm thị thích mang theo một người bạn hoặc thành viên trong gia đình bị khiếm thị để giúp định hướng trong môi trường mới. Theo truyền thống, giải pháp duy nhất là sử dụng "cây gậy trắng" thường được biết đến, chủ yếu được sử dụng để quét môi trường xung quanh bằng cách va vào các chướng ngại vật ở gần người dùng. Giải pháp tốt hơn sẽ là một thiết bị có thể thay thế trợ lý thị giác bằng cách cung cấp thông tin về vị trí của chướng ngại vật để người mù có thể đi ra ngoài trong môi trường không xác định và cảm thấy an toàn. NavCog, sự hợp tác giữa IBM và Đại học Carnegie Mellon, đã cố gắng giải quyết vấn đề bằng cách tạo ra một hệ thống sử dụng đèn hiệu Bluetooth và điện thoại thông minh để trợ giúp hướng dẫn. Tuy nhiên, giải pháp này cồng kềnh và được chứng minh là rất tốn kém cho việc triển khai quy mô lớn. Giải pháp của tôi giải quyết vấn đề này bằng cách loại bỏ mọi nhu cầu về thiết bị bên ngoài và bằng cách sử dụng giọng nói để hướng dẫn người dùng trong suốt cả ngày (Hình 3). Lợi thế của việc nhúng công nghệ vào “cây gậy trắng” là nó báo hiệu phần còn lại của thế giới về tình trạng của người dùng, điều này gây ra sự thay đổi trong hành vi của những người xung quanh.

Bước 3: Yêu cầu thiết kế

Yêu cầu thiết kế
Yêu cầu thiết kế

Sau khi nghiên cứu các công nghệ có sẵn, tôi đã thảo luận các giải pháp khả thi với các chuyên gia thị lực về cách tiếp cận tốt nhất để giúp người khiếm thị điều hướng môi trường của họ. Bảng dưới đây liệt kê các tính năng quan trọng nhất cần có để ai đó chuyển sang thiết bị của tôi.

Sự miêu tả yếu tố:

  • Tính toán - Hệ thống cần xử lý nhanh thông tin trao đổi giữa người dùng và cảm biến. Ví dụ, hệ thống cần có khả năng thông báo cho người sử dụng các chướng ngại vật phía trước cách xa ít nhất 2m.
  • Phạm vi phủ sóng - Hệ thống cần cung cấp các dịch vụ của mình trong nhà và ngoài trời để cải thiện chất lượng cuộc sống của người khiếm thị.
  • Thời gian - Hệ thống sẽ hoạt động tốt vào ban ngày cũng như ban đêm.
  • Phạm vi - Phạm vi là khoảng cách giữa người dùng và đối tượng được hệ thống phát hiện. Phạm vi tối thiểu lý tưởng là 0,5 m, trong khi phạm vi tối đa là hơn 5 m. Khoảng cách xa hơn sẽ tốt hơn nhưng khó tính toán hơn.
  • Loại đối tượng - Hệ thống sẽ phát hiện sự xuất hiện đột ngột của các đối tượng. Hệ thống phải có thể phân biệt được sự khác biệt giữa vật thể chuyển động và vật thể tĩnh.

Bước 4: Thiết kế Kỹ thuật và Lựa chọn Thiết bị

Thiết kế Kỹ thuật và Lựa chọn Thiết bị
Thiết kế Kỹ thuật và Lựa chọn Thiết bị
Thiết kế Kỹ thuật và Lựa chọn Thiết bị
Thiết kế Kỹ thuật và Lựa chọn Thiết bị
Thiết kế Kỹ thuật và Lựa chọn Thiết bị
Thiết kế Kỹ thuật và Lựa chọn Thiết bị

Sau khi xem xét nhiều thành phần khác nhau, tôi quyết định chọn các bộ phận từ các danh mục khác nhau bên dưới.

Giá của các bộ phận đã chọn:

  • Zungle Panther: $ 149,99
  • LiDAR Lite V3: $ 149,99
  • LV-MaxSonar-EZ1: $ 29,95
  • Cảm biến siêu âm - HC-SR04: $ 3,95
  • Raspberry Pi 3: $ 39,95
  • Arduino: $ 24,95
  • Kinect: $ 32,44
  • Floureon 11.1v 3s 1500mAh: $ 19,99
  • LM2596HV: $ 9,64

Bước 5: Lựa chọn thiết bị: Phương pháp tương tác

Lựa chọn thiết bị: Phương pháp tương tác
Lựa chọn thiết bị: Phương pháp tương tác
Lựa chọn thiết bị: Phương pháp tương tác
Lựa chọn thiết bị: Phương pháp tương tác

Tôi quyết định sử dụng điều khiển bằng giọng nói làm phương pháp để tương tác với thiết bị vì có nhiều nút trên gậy có thể là một thách thức đối với người khiếm thị, đặc biệt nếu một số chức năng yêu cầu kết hợp các nút. Với điều khiển bằng giọng nói, người dùng có thể sử dụng các lệnh đặt trước để giao tiếp với cây gậy giúp giảm các lỗi tiềm ẩn.

Thiết bị: Ưu điểm --- Nhược điểm:

  • Các nút: Không có lỗi lệnh khi nhấn nút phải --- Có thể khó đảm bảo nhấn đúng các nút
  • Điều khiển bằng giọng nói: Dễ dàng vì người dùng có thể sử dụng các lệnh đặt trước --- Phát âm không chính xác có thể gây ra lỗi

Bước 6: Lựa chọn thiết bị: Vi điều khiển

Lựa chọn thiết bị: Vi điều khiển
Lựa chọn thiết bị: Vi điều khiển
Lựa chọn thiết bị: Vi điều khiển
Lựa chọn thiết bị: Vi điều khiển
Lựa chọn thiết bị: Vi điều khiển
Lựa chọn thiết bị: Vi điều khiển

Thiết bị sử dụng Raspberry Pi vì giá thành rẻ và đủ sức mạnh xử lý để tính toán bản đồ độ sâu. Intel Joule lẽ ra sẽ là lựa chọn ưu tiên nhưng giá của nó sẽ làm tăng gấp đôi chi phí của hệ thống, đây không phải là lý tưởng mà thiết bị này được phát triển để cung cấp tùy chọn chi phí thấp hơn cho người dùng. Arduino được sử dụng trong hệ thống vì nó có thể dễ dàng lấy thông tin từ các cảm biến. BeagleBone và Intel Edison không được sử dụng vì tỷ lệ giá trên hiệu suất thấp, điều này không tốt cho hệ thống giá rẻ này.

Bộ vi điều khiển: Ưu điểm --- Nhược điểm:

  • Raspberry Pi: Có đủ sức mạnh xử lý để tìm chướng ngại vật và được tích hợp WiFi / Bluetooth --- Không có nhiều tùy chọn để nhận dữ liệu từ cảm biến
  • Arduino: Dễ dàng nhận dữ liệu từ các cảm biến nhỏ. I E. LIDAR, Ultrasonic, SONAR, v.v. --- Không đủ sức mạnh xử lý để tìm chướng ngại vật
  • Intel Edison: Có thể xử lý chướng ngại vật một cách nhanh chóng với bộ xử lý nhanh --- Yêu cầu các phần của nhà phát triển bổ sung để hoạt động cho hệ thống
  • Intel Joule: Có tốc độ xử lý gấp đôi bất kỳ bộ vi điều khiển nào trên thị trường tiêu dùng cho đến nay --- Chi phí rất cao cho hệ thống này và khó tương tác với GPIO để tương tác cảm biến
  • BeagleBone Black: Nhỏ gọn và tương thích với các cảm biến được sử dụng trong dự án bằng cách sử dụng Đầu ra Đầu vào Mục đích Chung (GPIO) --- Không đủ sức mạnh xử lý để tìm kiếm các đối tượng một cách hiệu quả

Bước 7: Lựa chọn thiết bị: Cảm biến

Lựa chọn thiết bị: Cảm biến
Lựa chọn thiết bị: Cảm biến
Lựa chọn thiết bị: Cảm biến
Lựa chọn thiết bị: Cảm biến
Lựa chọn thiết bị: Cảm biến
Lựa chọn thiết bị: Cảm biến

Sự kết hợp của một số cảm biến được sử dụng để có được độ chính xác cao về vị trí. Kinect là cảm biến chính vì số lượng diện tích nó có thể quét các chướng ngại vật cùng một lúc. LIDAR là viết tắt của LIght Detection and Ranging, là một phương pháp viễn thám sử dụng ánh sáng ở dạng xung laser để đo nhanh khoảng cách từ vị trí của cảm biến đến các đối tượng; cảm biến đó được sử dụng vì nó có thể theo dõi một khu vực cách xa tới 40 mét (m) và vì nó có thể quét ở nhiều góc độ khác nhau, nó có thể phát hiện xem có bất kỳ bước nào đang đi lên hoặc đi xuống hay không. Các cảm biến SOund Navigation And Ranging (SONAR) và Ultrasonic được sử dụng để theo dõi dự phòng trong trường hợp Kinect bỏ lỡ cột hoặc va đập trên mặt đất có thể gây nguy hiểm cho người dùng. Cảm biến 9 độ tự do được sử dụng để theo dõi hướng người dùng đang đối mặt để thiết bị có thể lưu trữ thông tin để chỉ đạo độ chính xác cao hơn vào lần tới khi người đó đi bộ ở cùng một địa điểm.

Cảm biến: Ưu điểm --- Nhược điểm:

  • Kinect V1: Có thể theo dõi các đối tượng 3D với --- Chỉ một camera để phát hiện môi trường xung quanh
  • Kinect V2: Có 3 camera hồng ngoại và một camera Red, Green, Blue, Depth (RGB-D) để phát hiện đối tượng 3D chính xác cao --- Có thể nóng lên và có thể cần quạt làm mát và lớn hơn các cảm biến khác
  • LIDAR: Chùm tia có thể theo dõi các vị trí cách xa tới 40 m --- Cần được định vị về phía đối tượng và chỉ có thể nhìn theo hướng đó
  • SONAR: Chùm tia có thể theo dõi cách xa 5 m nhưng trong phạm vi xa --- Các vật thể nhỏ như lông vũ có thể kích hoạt cảm biến
  • Siêu âm: Có phạm vi lên đến 3 m và rất rẻ --- Khoảng cách đôi khi có thể không chính xác
  • Cảm biến 9 độ tự do: Tốt cho việc cảm nhận hướng và tốc độ của người dùng --- Nếu có bất kỳ điều gì gây trở ngại cho cảm biến, các phép tính khoảng cách có thể được tính toán không chính xác

Bước 8: Lựa chọn thiết bị: Phần mềm

Lựa chọn thiết bị: Phần mềm
Lựa chọn thiết bị: Phần mềm
Lựa chọn thiết bị: Phần mềm
Lựa chọn thiết bị: Phần mềm
Lựa chọn thiết bị: Phần mềm
Lựa chọn thiết bị: Phần mềm

Phần mềm được chọn cho một số nguyên mẫu đầu tiên được xây dựng với cảm biến Kinect V1 là Freenect nhưng nó không chính xác lắm. Khi chuyển sang Kinect V2 và Freenect2, kết quả theo dõi đã được cải thiện đáng kể do theo dõi được cải thiện vì V2 có một camera HD và 3 camera hồng ngoại thay vì một camera đơn trên Kinect V1. Khi tôi đang sử dụng OpenNi2 với Kinect V1, các chức năng bị hạn chế và tôi không thể kiểm soát một số chức năng của thiết bị.

Phần mềm: Ưu điểm --- Nhược điểm:

  • Freenect: Có mức kiểm soát thấp hơn để kiểm soát mọi thứ --- Chỉ hỗ trợ Kinect V1
  • OpenNi2: Có thể dễ dàng tạo dữ liệu đám mây điểm từ luồng thông tin từ Kinect --- Chỉ hỗ trợ Kinect V1 và không hỗ trợ điều khiển mức thấp
  • Freenect2: Có mức kiểm soát thấp hơn cho thanh cảm biến --- Chỉ hoạt động với Kinect V2
  • ROS: Hệ điều hành lý tưởng để lập trình các chức năng của camera --- Cần được cài đặt trên thẻ SD nhanh để phần mềm hoạt động

Bước 9: Lựa chọn thiết bị: Các bộ phận khác

Lựa chọn thiết bị: Các bộ phận khác
Lựa chọn thiết bị: Các bộ phận khác
Lựa chọn thiết bị: Các bộ phận khác
Lựa chọn thiết bị: Các bộ phận khác

Pin Lithium Ion được lựa chọn do nhẹ, có dung lượng điện cao và có thể sạc lại. Biến thể 18650 của pin lithium ion có hình trụ và hoàn toàn phù hợp với nguyên mẫu cây mía. Cây mía nguyên mẫu đầu tiên được làm bằng ống PVC vì nó rỗng và giảm trọng lượng của cây mía.

Bước 10: Phát triển hệ thống: Tạo phần cứng Phần 1

Phát triển hệ thống: Tạo phần cứng Phần 1
Phát triển hệ thống: Tạo phần cứng Phần 1
Phát triển hệ thống: Tạo phần cứng Phần 1
Phát triển hệ thống: Tạo phần cứng Phần 1
Phát triển hệ thống: Tạo phần cứng Phần 1
Phát triển hệ thống: Tạo phần cứng Phần 1

Đầu tiên, chúng ta phải tháo rời Kinect để làm cho nó nhẹ hơn và sao cho nó sẽ vừa với bên trong cây gậy. Tôi bắt đầu bằng cách loại bỏ tất cả các vỏ bên ngoài khỏi Kinect vì nhựa được sử dụng nặng rất nhiều. Sau đó tôi phải cắt cáp để có thể tháo phần đế. Tôi lấy dây từ đầu kết nối như trong hình và hàn chúng vào cáp usb có dây tín hiệu và hai kết nối còn lại là dành cho nguồn điện đầu vào 12V. Vì tôi muốn quạt bên trong cây gậy hoạt động hết công suất để làm mát tất cả các thành phần khác, tôi đã cắt đầu nối của quạt khỏi Kinect và nối dây 5V từ Raspberry Pi. Tôi cũng đã tạo một bộ điều hợp nhỏ cho dây LiDAR để nó có thể kết nối trực tiếp vào Raspberry Pi mà không cần bất kỳ hệ thống nào khác ở giữa.

Tôi vô tình hàn dây trắng với dây đen nên đừng nhìn hình ảnh để biết sơ đồ đấu dây

Bước 11: Phát triển hệ thống: Tạo phần cứng Phần 2

Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2
Phát triển hệ thống: Tạo phần cứng Phần 2

Tôi đã tạo một bộ điều chỉnh để cung cấp năng lượng cho tất cả các thiết bị yêu cầu 5V như Raspberry Pi. Tôi đã điều chỉnh bộ điều chỉnh bằng cách đặt một đồng hồ trên đầu ra và điều chỉnh điện trở để bộ điều chỉnh cung cấp 5,05V. Tôi đặt nó cao hơn 5V một chút vì theo thời gian, điện áp của pin đi xuống và ảnh hưởng một chút đến điện áp đầu ra. Tôi cũng đã tạo một bộ chuyển đổi cho phép tôi cấp nguồn cho tối đa 5 thiết bị yêu cầu nguồn 12V từ pin.

Bước 12: Phát triển Hệ thống: Lập trình Hệ thống Phần 1

Phát triển hệ thống: Lập trình hệ thống Phần 1
Phát triển hệ thống: Lập trình hệ thống Phần 1
Phát triển hệ thống: Lập trình hệ thống Phần 1
Phát triển hệ thống: Lập trình hệ thống Phần 1
Phát triển hệ thống: Lập trình hệ thống Phần 1
Phát triển hệ thống: Lập trình hệ thống Phần 1

Một trong những phần thách thức nhất của hệ thống này là lập trình. Khi lần đầu tiên tôi có Kinect để chơi với nó, tôi đã cài đặt một chương trình có tên là Bản đồ RTAB lấy luồng dữ liệu từ Kinect và chuyển đổi nó thành một đám mây điểm. Với đám mây điểm, nó tạo ra một hình ảnh 3D có thể xoay để xem độ sâu của vị trí tất cả các đối tượng. Sau khi chơi với nó một lúc và điều chỉnh tất cả các cài đặt, tôi quyết định cài đặt một số phần mềm trên Raspberry Pi để cho phép tôi xem luồng dữ liệu từ Kinect. Hai hình ảnh cuối cùng ở trên cho thấy những gì Raspberry Pi có thể tạo ra với tốc độ khoảng 15-20 khung hình / giây.

Đề xuất: