Mục lục:

EyeRobot - Robotic White Cane: 10 bước (có hình ảnh)
EyeRobot - Robotic White Cane: 10 bước (có hình ảnh)

Video: EyeRobot - Robotic White Cane: 10 bước (có hình ảnh)

Video: EyeRobot - Robotic White Cane: 10 bước (có hình ảnh)
Video: [E-LEARNING] TOPIC 1: AI – ROBOTICS LÀ GÌ? 🤖Full 2024, Tháng bảy
Anonim
EyeRobot - Robotic White Cane
EyeRobot - Robotic White Cane

Tóm tắt: Sử dụng iRobot Roomba Create, tôi đã tạo nguyên mẫu một thiết bị có tên là eyeRobot. Nó sẽ hướng dẫn người dùng khiếm thị và người khiếm thị vượt qua môi trường đông đúc và lộn xộn bằng cách sử dụng Roomba làm cơ sở để kết hợp sự đơn giản của cây gậy trắng truyền thống với bản năng của một con chó mắt. Người dùng chỉ ra chuyển động mong muốn của mình bằng cách ấn và vặn tay cầm một cách trực quan. Robot lấy thông tin này và tìm một con đường rõ ràng xuống hành lang hoặc qua một căn phòng, sử dụng sóng siêu âm để hướng người dùng theo hướng phù hợp xung quanh các chướng ngại vật tĩnh và động. Sau đó, người dùng đi theo phía sau robot khi nó hướng dẫn người dùng theo hướng mong muốn bằng lực đáng chú ý được cảm nhận qua tay cầm. Tùy chọn robot này yêu cầu đào tạo ít: đẩy để đi, kéo để dừng, vặn để quay. Tầm nhìn xa mà máy đo khoảng cách cung cấp tương tự như một con chó có mắt nhìn, và là một lợi thế đáng kể so với việc thử và sai liên tục đánh dấu việc sử dụng cây gậy trắng. Tuy nhiên, eyeRobot vẫn cung cấp một giải pháp thay thế rẻ hơn nhiều so với chó dẫn đường, có giá hơn 12.000 đô la và chỉ hữu ích trong 5 năm, trong khi nguyên mẫu được chế tạo với giá dưới 400 đô la. Nó cũng là một chiếc máy tương đối đơn giản, yêu cầu một vài cảm biến rẻ tiền, nhiều chiết áp khác nhau, một số phần cứng và tất nhiên, một Roomba Create.

Bước 1: Trình diễn Video

Trình diễn video
Trình diễn video

Phiên bản chất lượng cao

Bước 2: Tổng quan về hoạt động

Tổng quan về hoạt động
Tổng quan về hoạt động

Kiểm soát người dùng: Hoạt động của eyeRobot được thiết kế trực quan nhất có thể để giảm thiểu hoặc loại bỏ đáng kể việc đào tạo. Để bắt đầu chuyển động, người dùng chỉ cần bắt đầu đi về phía trước, một cảm biến tuyến tính ở chân gậy sẽ nhận chuyển động này và bắt đầu di chuyển robot về phía trước. Sử dụng cảm biến tuyến tính này, robot sau đó có thể điều chỉnh tốc độ của nó với tốc độ mong muốn của người dùng. eyeRobot sẽ di chuyển nhanh như người dùng muốn. Để chỉ ra rằng muốn rẽ, người dùng chỉ cần vặn tay cầm và nếu có thể rẽ, robot sẽ phản hồi tương ứng.

Điều hướng robot: Khi di chuyển trong không gian mở, eyeRobot sẽ cố gắng giữ một con đường thẳng, phát hiện bất kỳ chướng ngại vật nào có thể cản trở người dùng và hướng dẫn người dùng xung quanh đối tượng đó và quay lại con đường ban đầu. Trong thực tế, người dùng có thể tự nhiên đi theo phía sau robot mà không cần suy nghĩ tỉnh táo. người dùng ở hành lang. Khi đến một giao lộ, người dùng sẽ cảm thấy rô-bốt bắt đầu quay đầu và có thể chọn, bằng cách vặn tay cầm, quay xuống nhánh rẽ mới hay tiếp tục đi trên một con đường thẳng. Theo cách này, robot rất giống cây gậy trắng, người dùng có thể cảm nhận môi trường với robot và sử dụng thông tin này để điều hướng toàn cầu.

Bước 3: Cảm biến phạm vi

Cảm biến phạm vi
Cảm biến phạm vi

Siêu âm: EyeRobot mang 4 máy đo khoảng cách siêu âm (MaxSonar EZ1). Các cảm biến siêu âm được đặt theo hình vòng cung ở phía trước của rô bốt để cung cấp thông tin về các đối tượng ở phía trước và các bên của rô bốt. Chúng thông báo cho robot về phạm vi của đối tượng và giúp nó tìm thấy một con đường rộng mở xung quanh đối tượng đó và quay trở lại con đường ban đầu của nó.

Máy đo khoảng cách IR: EyeRobot cũng mang hai cảm biến IR (GP2Y0A02YK). Máy đo khoảng cách IR được đặt quay mặt ra ngoài 90 độ về bên phải và bên trái để hỗ trợ robot theo sát tường. Họ cũng có thể cảnh báo robot về các vật thể quá gần các bên mà người dùng có thể bước vào.

Bước 4: Cảm biến vị trí mía

Cảm biến vị trí mía
Cảm biến vị trí mía

Cảm biến tuyến tính: Để eyeRobot khớp với tốc độ của người dùng, eyeRobot sẽ cảm nhận được liệu người dùng đang đẩy hay làm chậm chuyển động về phía trước của nó. Điều này đạt được bằng cách trượt đế của cây mía dọc theo một rãnh, vì một chiết áp cảm nhận được vị trí của cây mía. EyeRobot sử dụng đầu vào này để điều chỉnh tốc độ của robot. Ý tưởng về eyeRobot thích ứng với tốc độ của người dùng thông qua cảm biến tuyến tính thực sự được lấy cảm hứng từ chiếc máy cắt cỏ gia đình. Gắn với khối dẫn hướng là một chiết áp trượt đọc vị trí của khối dẫn hướng và báo cho bộ xử lý. Để cho phép thanh quay so với robot, có một thanh chạy lên xuyên qua một khối gỗ, tạo thành một ổ trục quay. Vòng bi này sau đó được gắn vào một bản lề để gậy có thể điều chỉnh theo chiều cao của người sử dụng.

Twist Sensor: Cảm biến xoắn cho phép người dùng vặn tay cầm để quay robot. Một chiết áp được gắn vào đầu của một trục gỗ và núm vặn được lắp vào và dán vào phần trên của tay cầm. Các dây dẫn chạy xuống chốt và cung cấp thông tin xoắn vào bộ xử lý.

Bước 5: Bộ xử lý

Bộ xử lý
Bộ xử lý

Bộ xử lý: Robot được điều khiển bởi Zbasic ZX-24a trên Bo mạch chủ nâng cao Robodyssey II. Bộ xử lý được chọn vì tốc độ, dễ sử dụng, chi phí hợp lý và 8 đầu vào Analog. Nó được kết nối với một breadboard tạo mẫu lớn để cho phép thay đổi nhanh chóng và dễ dàng. Tất cả nguồn điện cho robot đều đến từ nguồn điện trên bo mạch chủ. Zbasic giao tiếp với roomba thông qua cổng khoang hàng hóa và có toàn quyền kiểm soát các cảm biến và động cơ của Roomba.

Bước 6: Tổng quan về mã

Tổng quan về mã
Tổng quan về mã

Tránh chướng ngại vật: Để tránh chướng ngại vật, eyeRobot sử dụng một phương pháp trong đó các đối tượng ở gần rô bốt tác động một lực ảo lên rô bốt di chuyển nó ra khỏi đối tượng. Nói cách khác, các vật thể đẩy robot ra khỏi chính chúng. Trong cách triển khai của tôi, lực ảo do một đối tượng tác động tỷ lệ nghịch với bình phương khoảng cách, do đó, lực đẩy tăng lên khi đối tượng càng gần và tạo ra một đường cong phản ứng phi tuyến: PushForce = ResponseMagosystemConstant / Khoảng cách2Các lực đẩy đến từ mỗi cảm biến được cộng lại với nhau; cảm biến ở bên trái đẩy sang phải và ngược lại, để lấy véc tơ cho hành trình của robot. Tốc độ bánh xe sau đó được thay đổi để rô bốt quay về phía vectơ này. Để đảm bảo rằng các vật thể chết trước mặt robot không có biểu hiện "không phản hồi" (do lực của cả hai bên cân bằng), các vật thể ở phía trước chết sẽ đẩy robot về phía thoáng hơn. Khi rô bốt đã vượt qua đối tượng, nó sẽ sử dụng bộ mã hóa của Roomba để sửa thay đổi và quay trở lại vectơ ban đầu.

Tường theo sau: Nguyên tắc của tường sau là duy trì một khoảng cách mong muốn và góc song song với tường. Các vấn đề phát sinh khi quay rô-bốt so với tường vì cảm biến đơn cho kết quả đọc phạm vi vô ích. Việc đọc phạm vi được tác động bởi góc của rô-bốt với tường nhiều như khoảng cách thực đến tường. Để xác định góc và do đó loại bỏ biến này, rô bốt phải có hai điểm tham chiếu có thể được so sánh để có được góc rô bốt. Vì eyeRobot chỉ có một mặt đối diện với máy đo khoảng cách IR, để đạt được hai điểm này, nó phải so sánh khoảng cách với máy đo khoảng cách theo thời gian khi rô bốt di chuyển. Sau đó, nó xác định góc của nó từ sự khác biệt giữa hai lần đọc khi robot di chuyển dọc theo bức tường. Sau đó, nó sử dụng thông tin này để sửa chữa cho việc định vị không đúng. Robot chuyển sang chế độ đi theo tường bất cứ khi nào nó có tường bên cạnh trong một khoảng thời gian nhất định và thoát ra khỏi nó bất cứ khi nào có chướng ngại vật trên đường đi của nó, điều này đẩy nó ra khỏi đường đi của nó hoặc nếu người dùng sử dụng tay cầm vặn để đưa robot cách xa bức tường.

Bước 7: Danh sách bộ phận

Danh sách các bộ phận
Danh sách các bộ phận

Bộ phận yêu cầu: 1x) Roomba create1x) Tấm lớn acrylic2x) Máy đo khoảng cách sắc nét GP2Y0A02YK IR4x) Máy đo khoảng cách siêu âm Maxsonar EZ11x) Bộ vi xử lý ZX-24a1x) Bo mạch chủ Robodyssey nâng cao II1x) Chiết áp trượt1x) Chiết áp quay đơn1x) Bảng mạch tuyến tính1)) Hàn Bản lề, chốt, vít, đai ốc, giá đỡ và dây điện

Bước 8: Tạo động lực và Cải thiện

Động lực và Cải tiến
Động lực và Cải tiến

Động lực: Robot này được thiết kế để lấp đầy khoảng cách rõ ràng giữa con chó dẫn đường có năng lực nhưng đắt tiền và cây gậy trắng rẻ tiền nhưng hạn chế. Trong quá trình phát triển Robotic White Cane có thể bán được trên thị trường và có khả năng hơn, Roomba Create là phương tiện hoàn hảo để thiết kế một nguyên mẫu nhanh chóng để xem liệu khái niệm có hoạt động hay không. Ngoài ra, các giải thưởng sẽ hỗ trợ kinh tế cho khoản chi phí đáng kể để chế tạo một robot có khả năng hơn.

Cải tiến: Số lượng tôi học được khi chế tạo rô bốt này là rất đáng kể và ở đây tôi sẽ cố gắng trình bày những gì tôi đã học được khi chuyển sang nỗ lực chế tạo rô bốt thế hệ thứ hai: 1) Tránh chướng ngại vật - Tôi đã học được rất nhiều về chướng ngại vật trong thời gian thực sự tránh né. Trong quá trình chế tạo con robot này, tôi đã trải qua hai mã tránh chướng ngại vật hoàn toàn khác nhau, bắt đầu với ý tưởng lực đối tượng ban đầu, sau đó chuyển sang nguyên tắc tìm và tìm vectơ mở nhất, rồi chuyển trở lại ý tưởng lực đối tượng với chìa khóa nhận ra rằng phản hồi đối tượng phải là phi tuyến tính. Trong tương lai, tôi sẽ sửa chữa sai lầm của mình là không thực hiện bất kỳ nghiên cứu trực tuyến nào về các phương pháp đã sử dụng trước đây trước khi bắt tay vào dự án của mình, vì bây giờ tôi đang học một tìm kiếm nhanh trên Google sẽ mang lại rất nhiều bài báo tuyệt vời về chủ đề này. cảm biến - Bắt đầu dự án này, tôi nghĩ rằng lựa chọn duy nhất của tôi cho cảm biến tuyến tính là sử dụng một nồi trượt và một số loại ổ trục tuyến tính. Bây giờ tôi nhận ra rằng một lựa chọn đơn giản hơn nhiều là chỉ cần gắn đầu thanh vào một cần điều khiển, sao cho việc đẩy thanh về phía trước cũng sẽ đẩy cần điều khiển về phía trước. Ngoài ra, một khớp nối phổ thông đơn giản sẽ cho phép chuyển động xoắn của thanh thành trục xoắn của nhiều cần điều khiển hiện đại. Việc triển khai này sẽ đơn giản hơn nhiều so với cách mà tôi hiện đang sử dụng.3) Bánh xe quay tự do - Mặc dù điều này là không thể với Roomba, nhưng giờ đây có vẻ như một robot có bánh xe quay tự do sẽ là lý tưởng cho nhiệm vụ này. Một robot lăn một cách thụ động sẽ không cần động cơ và pin nhỏ hơn, do đó nhẹ hơn. Ngoài ra, hệ thống này không yêu cầu cảm biến tuyến tính để phát hiện người dùng đẩy, robot sẽ chỉ lăn với tốc độ của người dùng. Robot có thể quay bằng cách lái các bánh xe như một chiếc ô tô và nếu người dùng cần dừng lại thì có thể thêm phanh. Đối với eyeRobot thế hệ tiếp theo, tôi chắc chắn sẽ sử dụng cách tiếp cận rất khác này. để đạt được các điểm tham chiếu khác nhau. Hai cảm biến có khoảng cách giữa chúng sẽ đơn giản hóa việc bám theo tường hơn rất nhiều. Nó sẽ làm cho mã điều hướng mạnh mẽ hơn nhiều với một mảng sonar hoàn chỉnh hơn (nhưng tất nhiên các cảm biến tốn kém chi phí, thứ mà tôi không có vào thời điểm đó).

Bước 9: Kết luận

Phần kết luận
Phần kết luận

Kết luận: iRobot đã chứng minh một nền tảng tạo mẫu lý tưởng để thử nghiệm khái niệm Robotic White Cane. Từ kết quả của nguyên mẫu này, rõ ràng là một robot loại này thực sự khả thi. Tôi hy vọng sẽ phát triển một robot thế hệ thứ hai từ những bài học mà tôi đã học được từ việc sử dụng Roomba Create. Trong các phiên bản tương lai của eyeRobot, tôi hình dung ra một thiết bị có khả năng làm được nhiều việc hơn là chỉ dẫn đường cho một người trên hành lang, mà là một robot có thể được đưa vào tay người mù để sử dụng trong cuộc sống hàng ngày. Với robot này, người dùng chỉ cần nói điểm đến của họ và robot sẽ hướng dẫn họ đến đó mà không cần nỗ lực có ý thức từ người dùng. Robot này sẽ đủ nhẹ và nhỏ gọn để có thể dễ dàng mang lên cầu thang và cất trong tủ quần áo. Robot này sẽ có thể thực hiện điều hướng toàn cầu ngoài cục bộ, có thể hướng dẫn người dùng từ điểm bắt đầu đến điểm đến mà người dùng không có kiến thức hoặc kinh nghiệm trước đó. Khả năng này sẽ vượt xa ngay cả chó dẫn đường, với GPS và các cảm biến tiên tiến hơn cho phép người mù tự do điều hướng thế giới, Nathaniel Barshay, (Stephen Barshay nhập vào) (Đặc biệt cảm ơn Jack Hitt về Roomba Create)

Bước 10: Xây dựng và mã

Xây dựng và Quy phạm
Xây dựng và Quy phạm

Một vài từ không liên quan về cấu tạo: Sàn tàu được làm bằng một miếng acrylic cắt theo hình tròn với lỗ hở ở phía sau để cho phép tiếp cận thiết bị điện tử và sau đó được vặn vào các lỗ gắn bên cạnh khoang hàng hóa. Bảng tạo mẫu được vặn vào lỗ vít ở dưới cùng của vịnh. Zbasic được gắn với giá đỡ L với các vít giống như boong. Mỗi sonar được vặn vào một miếng acrylic, lần lượt được gắn vào giá đỡ L gắn trên boong (giá đỡ L được uốn cong về phía sau 10 độ để có tầm nhìn tốt hơn). Đường ray cho cảm biến tuyến tính được vặn ngay vào boong và nồi trượt được gắn với giá đỡ L bên cạnh nó. Có thể tìm thấy mô tả kỹ thuật hơn về cấu tạo của cảm biến tuyến tính và thanh điều khiển ở bước 4.

Mã: Tôi đã đính kèm phiên bản đầy đủ của mã rô bốt. Trong hơn một giờ, tôi đã cố gắng xóa nó khỏi ba hoặc bốn thế hệ mã có trong tệp, bây giờ sẽ đủ dễ dàng để làm theo. Nếu bạn có ZBasic IDE, nó sẽ dễ dàng xem, nếu không sử dụng notepad bắt đầu với tệp main.bas và chuyển qua các tệp.bas khác.

Đề xuất: