Isi kandungan:

EyeRobot - Tebu Putih Robotik: 10 Langkah (dengan Gambar)
EyeRobot - Tebu Putih Robotik: 10 Langkah (dengan Gambar)

Video: EyeRobot - Tebu Putih Robotik: 10 Langkah (dengan Gambar)

Video: EyeRobot - Tebu Putih Robotik: 10 Langkah (dengan Gambar)
Video: UNBOXING ROBOT VIRAL YANG KATANYA BISA GAMBAR! 🤯 2024, November
Anonim
EyeRobot - Tebu Putih Robotik
EyeRobot - Tebu Putih Robotik

Abstrak: Dengan menggunakan iRobot Roomba Create, saya telah memprotaip peranti yang dinamakan eyeRobot. Ini akan membimbing pengguna buta dan cacat penglihatan melalui lingkungan yang berantakan dan padat dengan menggunakan Roomba sebagai pangkalan untuk mengahwini kesederhanaan tebu putih tradisional dengan naluri anjing penglihatan. Pengguna menunjukkan gerakan yang diinginkannya dengan menekan dan memutar pemegang secara intuitif. Robot mengambil maklumat ini dan mencari jalan yang jelas di lorong atau di seberang bilik, menggunakan sonar untuk mengarahkan pengguna ke arah yang sesuai di sekitar halangan statik dan dinamik. Pengguna kemudian mengikuti di belakang robot ketika memandu pengguna ke arah yang diinginkan oleh kekuatan yang dapat dilihat melalui pegangan. Pilihan robot ini memerlukan sedikit latihan: push to go, pull to stop, twist to turn. Pandangan jauh yang dicari oleh pengintai jarak jauh serupa dengan anjing penglihatan, dan merupakan kelebihan yang cukup besar berbanding percubaan dan kesalahan berterusan yang menandakan penggunaan tebu putih. Namun eyeRobot masih menyediakan alternatif yang jauh lebih murah daripada anjing pemandu, yang berharga lebih dari $ 12, 000 dan berguna hanya selama 5 tahun, sementara prototaipnya dibina dengan harga kurang dari $ 400. Mesin ini juga agak mudah, memerlukan beberapa sensor yang murah, pelbagai potensiometer, beberapa perkakasan, dan tentu saja, Roomba Buat.

Langkah 1: Demonstrasi Video

Demonstrasi Video
Demonstrasi Video

Versi Berkualiti Tinggi

Langkah 2: Gambaran Keseluruhan Operasi

Tinjauan Operasi
Tinjauan Operasi

Kawalan Pengguna: Pengoperasian eyeRobot dirancang sesuka hati untuk mengurangkan atau menghilangkan latihan. Untuk memulakan gerakan, pengguna hanya perlu berjalan ke depan, sensor linier di dasar tongkat akan mengambil gerakan ini dan mula menggerakkan robot ke depan. Dengan menggunakan sensor linier ini, robot kemudian dapat memadankan kelajuannya dengan kelajuan pengguna yang diinginkan. eyeRobot akan bergerak secepat pengguna mahu pergi. Untuk menunjukkan bahawa giliran diinginkan, pengguna hanya perlu memutar pegangan, dan jika giliran mungkin, robot akan bertindak balas dengan sewajarnya.

Navigasi Robot: Ketika melakukan perjalanan di tempat terbuka, eyeRobot akan berusaha untuk menempuh jalan lurus, mengesan sebarang halangan yang dapat menghalangi pengguna, dan membimbing pengguna mengelilingi objek itu dan kembali ke jalan semula. Dalam praktiknya pengguna secara semula jadi dapat mengikuti robot dengan sedikit pemikiran yang sedar. Untuk menavigasi lorong, pengguna harus berusaha mendorong robot ke salah satu dinding di kedua sisi, setelah memperoleh dinding robot akan mula mengikutinya, membimbing pengguna di lorong. Apabila persimpangan tercapai, pengguna akan merasakan robot mula berpusing, dan dapat memilih, dengan memutar pegangan, sama ada untuk menolak cabang baru atau meneruskan jalan lurus. Dengan cara ini robot sangat menyerupai tongkat putih, pengguna dapat merasakan persekitaran dengan robot dan menggunakan maklumat ini untuk navigasi global.

Langkah 3: Sensor Julat

Sensor Julat
Sensor Julat

Ultrasonik: EyeRobot membawa 4 pengintai jarak jauh (MaxSonar EZ1). Sensor ultrasonik diposisikan di busur di bahagian depan robot untuk memberikan maklumat mengenai objek di hadapan dan ke sisi robot. Mereka memberitahu robot mengenai jarak objek dan membantunya mencari jalan terbuka di sekitar objek itu dan kembali ke jalan asalnya.

IR Rangefinder: The EyeRobot juga membawa dua sensor IR (GP2Y0A02YK). Pencari jarak jauh IR diposisikan menghadap 90 darjah ke kanan dan kiri untuk membantu robot di dinding mengikuti. Mereka juga dapat memberi amaran kepada robot objek yang terlalu dekat dengan sisinya sehingga pengguna dapat masuk.

Langkah 4: Sensor Kedudukan Tebu

Sensor Kedudukan Tebu
Sensor Kedudukan Tebu

Linear Sensor: Agar eyeRobot sepadan dengan kelajuannya dengan pengguna, eyeRobot merasakan sama ada pengguna mendorong atau melambat gerakan ke hadapannya. Ini dicapai dengan menggeser pangkal tebu di sepanjang trek, kerana potensiometer merasakan kedudukan tebu. EyeRobot menggunakan input ini untuk mengatur kelajuan robot. Idea mata Robot yang menyesuaikan diri dengan kelajuan pengguna melalui sensor linear sebenarnya diilhamkan oleh mesin pemotong rumput keluarga. Pangkalan tebu disambungkan ke blok panduan yang bergerak di sepanjang rel. Dilampirkan ke blok panduan adalah potensiometer slaid yang membaca kedudukan blok panduan dan melaporkannya kepada pemproses. Untuk membolehkan tongkat berputar relatif dengan robot, ada batang yang bergerak melalui blok kayu, membentuk galas berputar. Galas ini kemudian dilekatkan pada engsel untuk membolehkan tongkat menyesuaikan diri dengan ketinggian pengguna.

Twist Sensor: Sensor putar membolehkan pengguna memusingkan pegangan untuk menghidupkan robot. Potensiometer dilekatkan pada hujung satu batang kayu dan kenop dimasukkan dan dilekatkan pada bahagian atas pemegang. Kabel berjalan ke bawah dowel dan memasukkan maklumat kelainan ke pemproses.

Langkah 5: Pemproses

Pemproses
Pemproses

Pemproses: Robot dikendalikan oleh Zbasic ZX-24a yang duduk di atas Robodyssey Advanced Motherboard II. Pemproses dipilih kerana kelajuan, kemudahan penggunaan, kos berpatutan, dan 8 input Analog. Ia disambungkan ke papan roti prototaip besar untuk memungkinkan perubahan cepat dan mudah. Semua kuasa untuk robot berasal dari bekalan kuasa pada papan induk. Zbasic berkomunikasi dengan roomba melalui pelabuhan kargo, dan mempunyai kawalan penuh terhadap sensor dan motor Roomba.

Langkah 6: Gambaran Keseluruhan Kod

Gambaran Keseluruhan Kod
Gambaran Keseluruhan Kod

Penghindaran halangan: Untuk mengelakkan halangan, EyeRobot menggunakan kaedah di mana objek berhampiran robot menggunakan kekuatan maya pada robot yang menjauhkannya dari objek. Dengan kata lain, objek menjauhkan robot dari diri mereka sendiri. Dalam pelaksanaan saya, daya maya yang diberikan oleh objek berbanding terbalik dengan jarak kuadrat, jadi kekuatan tolakan meningkat ketika objek semakin dekat dan membuat lengkung tindak balas tidak linear: PushForce = ResponseMagnitudeConstant / Jarak2Tekanan yang datang dari setiap sensor ditambahkan bersama; sensor di sebelah kiri tekan ke kanan, dan sebaliknya, untuk mendapatkan vektor perjalanan robot. Kelajuan roda kemudian diubah sehingga robot berpusing ke arah vektor ini. Untuk memastikan bahawa objek mati di hadapan robot tidak menunjukkan "tidak ada tindak balas" (kerana daya di kedua-dua belah pihak seimbang), objek ke depan mati mendorong robot ke sisi yang lebih terbuka. Apabila robot telah melewati objek itu, ia kemudian menggunakan pengekod Roomba untuk membetulkan perubahan dan kembali ke vektor asal.

Mengikuti Dinding: Prinsip berikut dinding adalah menjaga jarak dan sudut selari yang diinginkan ke dinding. Masalah timbul apabila robot dipusingkan ke dinding kerana sensor tunggal menghasilkan bacaan jarak yang tidak berguna. Pembacaan jarak jauh dipengaruhi oleh sudut robot ke dinding dan jarak sebenar ke dinding. Untuk menentukan sudut dan dengan demikian menghilangkan pemboleh ubah ini, robot mesti mempunyai dua titik rujukan yang dapat dibandingkan untuk mendapatkan sudut robot. Kerana eyeRobot hanya memiliki satu sisi menghadap pengintai jarak jauh, untuk mencapai kedua titik ini, ia mesti membandingkan jarak dari pengintai jarak jauh dari masa ke masa ketika robot bergerak. Ia kemudian menentukan sudut dari perbezaan antara dua bacaan ketika robot bergerak di sepanjang dinding. Ia kemudian menggunakan maklumat ini untuk membetulkan kedudukan yang tidak betul. Robot memasuki mod mengikuti dinding setiap kali ia mempunyai dinding di sampingnya untuk jangka waktu tertentu dan keluar setiap kali ada halangan di jalannya, yang mendorongnya keluar dari jalannya, atau jika pengguna menggunakan pegangan putar untuk membawa robot jauh dari dinding.

Langkah 7: Senarai Bahagian

Senarai Bahagian
Senarai Bahagian

Bahagian yang Diperlukan: 1x) Roomba create1x) Lembaran besar akrilik2x) Pencari jarak jauh IR22 Sharp GP2Y0A02YK IR4x) Pencari jarak ultrasonik Maxsonar EZ11x) Mikroprosesor ZX-24a1x) Robodyssey Advanced Motherboard II1x) Slide potentiometer1x) Slide potentiometer Engsel, dowel, skru, mur, pendakap dan wayar

Langkah 8: Motivasi dan Penambahbaikan

Motivasi dan Penambahbaikan
Motivasi dan Penambahbaikan

Motivasi: Robot ini dirancang untuk mengisi jurang yang jelas antara anjing pemandu yang mampu tetapi mahal dan tongkat putih yang murah tetapi terhad. Dalam pengembangan Robot Putih Tebal yang dapat dipasarkan dan lebih berkemampuan, Roomba Create adalah kenderaan yang tepat untuk merancang prototaip cepat untuk melihat apakah konsep itu berfungsi. Sebagai tambahan, hadiah akan memberikan sokongan ekonomi untuk perbelanjaan yang besar untuk membina robot yang lebih berkemampuan.

Penambahbaikan: Jumlah yang saya pelajari membina robot ini sangat besar dan di sini saya akan berusaha untuk menjelaskan apa yang telah saya pelajari semasa saya berusaha untuk membina robot generasi kedua: 1) Penghindaran Halangan - Saya telah belajar banyak mengenai halangan masa nyata penghindaran. Dalam proses membina robot ini, saya telah melalui dua kod penghindaran halangan yang sama sekali berbeza, bermula dengan idea kekuatan objek asal, kemudian beralih ke prinsip mencari dan mencari vektor yang paling terbuka, dan kemudian kembali ke idea kekuatan objek dengan kesedaran utama bahawa tindak balas objek harus tidak linear. Pada masa akan datang, saya akan membetulkan kesilapan saya kerana tidak membuat penyelidikan dalam talian mengenai kaedah yang digunakan sebelumnya sebelum memulakan projek saya, kerana sekarang saya belajar carian Google yang cepat akan menghasilkan banyak makalah hebat mengenai perkara ini. sensor - Memulakan projek ini, saya fikir satu-satunya pilihan untuk sensor linear adalah menggunakan slaid pot dan semacam galas linear. Saya sekarang menyedari bahawa pilihan yang lebih mudah adalah dengan hanya memasang bahagian atas batang ke kayu bedik, sehingga mendorong tongkat ke depan juga akan mendorong kayu bedik ke depan. Di samping itu, sambungan universal yang sederhana akan membolehkan kepingan tongkat diterjemahkan ke dalam paksi putaran banyak kayu bedik moden. Pelaksanaan ini akan jauh lebih sederhana daripada yang saya gunakan sekarang.3) Roda putar bebas - Walaupun ini tidak mungkin dilakukan oleh Roomba, kini nampak jelas bahawa robot dengan roda putar bebas akan sangat sesuai untuk tugas ini. Robot yang bergerak secara pasif tidak memerlukan motor dan bateri yang lebih kecil dan dengan itu lebih ringan. Selain itu, sistem ini tidak memerlukan sensor linier untuk mengesan dorongan pengguna, robot hanya akan berputar pada kecepatan pengguna. Robot dapat dipusingkan dengan mengarahkan roda seperti kereta, dan jika pengguna perlu dihentikan, brek dapat ditambahkan. Untuk eyeRobot generasi akan datang, saya pasti akan menggunakan pendekatan yang sangat berbeza ini.4) Dua sensor jarak untuk mengikuti dinding - Seperti yang telah dibincangkan, masalah-masalah yang timbul sebelum ini muncul ketika cuba mengikuti dinding hanya dengan satu sensor menghadap sebelah, oleh itu perlu untuk menggerakkan robot antara bacaan untuk mencapai titik rujukan yang berbeza. Dua sensor dengan jarak di antara mereka akan mempermudah pengekalan dinding. 5) Lebih banyak sensor - Walaupun ini memerlukan lebih banyak wang, sukar untuk membuat kod robot ini dengan begitu sedikit tingkap di dunia di luar pemproses. Ini akan menjadikan kod navigasi jauh lebih kuat dengan array sonar yang lebih lengkap (tetapi tentu saja sensor memerlukan wang, yang saya tidak ada pada masa itu).

Langkah 9: Kesimpulannya

Kesimpulannya
Kesimpulannya

Kesimpulan: iRobot membuktikan platform prototaip yang ideal untuk bereksperimen dengan konsep Robot White Cane. Dari hasil prototaip ini dapat dilihat bahawa robot jenis ini memang boleh dilaksanakan. Saya berharap dapat mengembangkan robot generasi kedua dari pelajaran yang telah saya pelajari daripada menggunakan Roomba Create. Dalam versi EyeRobot yang akan datang, saya membayangkan sebuah peranti yang mampu melakukan lebih daripada sekadar memandu seseorang ke lorong, dan bukannya robot yang dapat diletakkan di tangan orang buta untuk digunakan dalam kehidupan seharian. Dengan robot ini, pengguna hanya akan menyatakan tujuan mereka dan robot akan membimbing mereka ke sana tanpa usaha sedar dari pengguna. Robot ini cukup ringan dan padat sehingga mudah dibawa naik tangga, dan tersimpan di dalam almari. Robot ini dapat melakukan navigasi global selain tempatan, dapat membimbing pengguna dari awal ke destinasi tanpa pengetahuan atau pengalaman pengguna sebelumnya. Keupayaan ini akan melampaui anjing pemandu, dengan GPS dan sensor yang lebih maju yang membolehkan orang buta menavigasi dunia dengan bebas, Nathaniel Barshay, (Dimasukkan oleh Stephen Barshay) (Terima kasih khas kepada Jack Hitt untuk Roomba Buat)

Langkah 10: Pembinaan dan Kod

Pembinaan dan Kod
Pembinaan dan Kod

Beberapa perkataan luar biasa mengenai pembinaan: Dek yang dibuat oleh sepotong akrilik yang dipotong dalam bulatan dengan bukaan di bahagian belakang untuk membolehkan akses elektronik, dan kemudian dimasukkan ke lubang pemasangan di sebelah teluk kargo. Papan prototaip disekat ke lubang skru di bahagian bawah teluk. Zbasic dipasang dengan pendakap L dengan skru yang sama dengan geladak. Setiap sonar disisipkan ke dalam sepotong akrilik, yang kemudiannya dipasang pada pendakap L yang dilekatkan di geladak (pendakap L dibengkokkan ke belakang 10 darjah untuk memberikan pandangan yang lebih baik). Trek untuk sensor linier disekat tepat ke geladak dan periuk slaid dipasang dengan kurungan L di sebelahnya. Penerangan yang lebih teknikal mengenai pembinaan sensor linier dan batang kawalan boleh didapati di langkah 4.

Kod: Saya telah melampirkan versi penuh kod robot. Selama satu jam saya telah berusaha membersihkannya dari kod tiga atau empat generasi yang ada di dalam fail, sudah cukup mudah untuk diikuti sekarang. Sekiranya anda mempunyai ZBasic IDE, senang dilihat, jika tidak menggunakan notepad bermula dengan file main.bas dan melalui fail.bas yang lain.

Disyorkan: