Isi kandungan:

Bot Hawking: 5 Langkah
Bot Hawking: 5 Langkah

Video: Bot Hawking: 5 Langkah

Video: Bot Hawking: 5 Langkah
Video: This is Elon Musk 🧠. IQ 999+ 2024, November
Anonim
Image
Image
Bina Bot Penjelajahan Anda
Bina Bot Penjelajahan Anda

The Hawking Bot adalah Projek Lego MINDSTORMS EV3 yang diilhamkan oleh mendiang Stephen Hawking. Stephen Hawking mempunyai selera humor yang baik, jadi saya yakin dia akan menyetujui projek ini. Bot Hawking dapat menavigasi jalan rintangan dan bertindak balas terhadap pergerakan dan kemudian mengucapkan salah satu gigitan suara terkenal Stephen Hawking dan bergerak ke arah objek yang bergerak. Ia menggunakan sensor ultrasonik yang mengimbas persekitarannya dengan gerakan menyapu kepala.

Langkah 1: Bina Bot Penjelajahan Anda

Semua bahagian yang diperlukan ada dalam set EVD Lego MINDSTORMS asas kecuali sensor ultrasonik (matanya) yang harus dibeli secara berasingan.

Langkah 2:

Imej
Imej

Kod untuk Bot Hawking semuanya ditulis dalam python 3. Fail gambar bootable untuk menjalankan python dalam persekitaran Debian Linux di Bot Hawking boleh dimuat turun dari laman web ev3dev. Kod untuk menjalankan Bot Hawking boleh dimuat turun dari sini. Semua kod terdapat dalam fail kelas sehingga anda dapat menggunakan kaedah yang ada atau bahkan mengubahnya jika anda mahu.

Sila tonton video ini dengan arahan terperinci mengenai cara mengatur Debian Linux dan Python3 pada robot anda. Walaupun ini khusus untuk penyediaan Mac, ia tetap berguna untuk mendapatkan pemahaman umum mengenai proses tersebut. Ini sedang dijalankan. Sensor ultrasonik kadangkala tidak boleh dipercayai dan ini memerlukan kod yang lebih pintar untuk mengesan 'outliers'. Saya ingin melihat sumbangan daripada orang lain untuk menjadikan kod lebih cekap dan kurang ralat.

Langkah 3: Buat Bunyi Suara Hawking Sendiri

OK sekarang anda ingin mendapatkan beberapa petikan terkenal atau hanya beberapa ucapan sederhana dari Prof Hawking. Terdapat banyak video di mana anda dapat mendengarnya bercakap dan kemudian ada ceramahnya yang merupakan harta karun kebijaksanaan dan gigitan suara yang berguna.

Anda memerlukan program seperti Audacity yang berfungsi di banyak platform untuk memilih dan memotong nada suara kegemaran anda.

Simpan gigitan suara anda sebagai fail mono wav seperti SH6, SH7,… SH11, SH12 dan sebagainya.

Di bawah ini anda dapati beberapa contoh yang telah saya buat mengikut kaedah di atas.

Langkah 4: Petua dan Trik

Petua dan cara
Petua dan cara
Petua dan cara
Petua dan cara

Hawking Bot dilengkapi dengan modul pemeriksaan diri untuk memastikan semua kabel disambungkan dan kuasa bateri mencukupi. Sambungan yang longgar, hilang atau bahkan rosak boleh berlaku dengan mudah. Jadi modul ini sangat berguna. Kaedah 'checkConnection' hanya memeriksa jika ada sambungan elektrik. Anda mesti memastikan motor disambungkan ke port yang betul.

Pergerakan kepala leret adalah mustahak bagi Bot Hawking untuk mengimbas kawasannya dan mencari jalan terpanjang yang tidak terhalang di hadapan. Kabel memerlukan ruang yang cukup untuk menampung pergerakan kepala; Oleh itu, disarankan untuk mengikatnya seperti yang ditunjukkan pada gambar.

Bot Hawking berfungsi paling baik dengan rintangan besar dan pada permukaan yang rata dan licin. Permaidani lebih mencabar bagi motor dan anda mungkin perlu menyesuaikan tetapan untuk menyesuaikan tingkah laku untuk permukaan yang berbeza.

Hawking Bot sama sekali tidak sempurna dan ini adalah prototaip yang akan mendapat manfaat daripada peningkatan selanjutnya. Kod tersebut dikomentari sepenuhnya dan mudah bagi anda untuk mengetahui apa yang dilakukan oleh pelbagai kaedah. Berbagai bit telah dikomentari dengan #, jika anda menghapus # di depan 'cetak' program yang sedang berjalan akan menunjukkan kepada anda pelbagai bacaan dan pengiraan sensor.

Langkah 5: Penambahbaikan, Kemas kini & Idea Masa Depan yang Disarankan

Setelah berjaya membina robot anda, anda ingin membawanya ke tahap seterusnya. Anda boleh meningkatkan kaedah MotionDetector. Sekarang ini sering kali salah membaca. Anda dapat melihat bacaan sebenar dengan melepaskan disA dan disB (di bahagian bawah blok kaedah). Pembacaan yang salah biasanya menonjol daripada bacaan lain sehingga anda dapat menulis algoritma untuk menghentikan robot menanggapi pembacaan yang salah.

Mungkin anda mahu mengawal robot sepenuhnya dan hanya mengawal jarak jauh dari pelbagai fungsinya. Anda boleh melakukan ini melalui Bluetooth dan menulis program Android untuk berkomunikasi dengan robot. Namun, pendekatan yang lebih mudah adalah dengan mencari tempat bagi sensor inframerah untuk mengendalikan Hawking Bot.

Bagaimana dengan robot untuk belajar mengenai persekitarannya? Ini dapat dicapai dengan pendekatan jiran terdekat-k atau mungkin rangkaian saraf. Bata EV3 mempunyai daya pemprosesan yang terhad walaupun ia menyokong Numpy. Alternatifnya ialah BrickPi yang membolehkan anda menjalankan perpustakaan AI seperti Tensorflow tetapi tujuan panduan ini adalah menggunakan kit Lego EV3 MINDSTORMS tanpa perlu membeli banyak kepingan tambahan yang mahal selain sensor ultrasonik.

Walau bagaimanapun, pendekatan pembelajaran re-infocement jiran terdekat harus menggunakan bata EV3 dan ini adalah algoritma yang dicadangkan. Saya menyerahkan kepada anda untuk mencari jalan keluar atau mencari masalah:

Pembelajaran pengukuhan untuk Hawkings Bot

Ideanya adalah bahawa 7 bacaan USS dikodkan menjadi vektor dan 10 sapuan kepala terakhir digunakan untuk membuat vektor berurutan sebanyak 70 entri. Bacaan pertama tidak lengkap sehingga akan diisi dengan sifar. Setiap entri mengandungi nilai jarak dari USS. Ini adalah vektor keadaan s. Sistem ini membolehkan 1000 penyertaan. Selepas itu entri tertua akan diganti dan catatan umur untuk setiap pasangan s-r akan dikurangkan satu.

Bot tidak boleh lebih dekat dari 10 cm ke objek. Ini menimbulkan ganjaran negatif. Untuk kesederhanaan; tindakan yang baik dibalas dengan yang 1 dan yang buruk dengan 0. Berkesan ini mewujudkan kebarangkalian untuk ganjaran bagi setiap gabungan keadaan-tindakan. Kami akan menggunakan ganjaran dan polisi tamak epsilon.

Ini menghasilkan 3 jadual keadaan besar - ke belakang (s-r) untuk ketiga-tiga tindakan kanan, lurus ke depan dan kiri - mungkin ada kelajuan yang cepat dan perlahan untuk setiap tindakan. Kami kemudian mempunyai 6 tindakan dan 6 jadual s-r.

Setiap kali keadaan baru dicatatkan, dibandingkan dengan jadual, jarak Euclidean (atau ukuran serupa) digunakan untuk mencari jiran terdekat. Ini tidak akan diberi peringkat tetapi ambang t ditetapkan untuk menerima keadaan sebagai sangat serupa, menimpa keadaan yang ada dan mengemas kini untuk ganjaran tertinggi dan melakukan tindakan yang berkaitan a. Sekiranya tidak serupa (d> t) masukkan pasangan s-r baru untuk setiap tindakan a. Sekiranya terdapat hubungan antara tindakan untuk s-r (semuanya mempunyai ganjaran yang sama) pilih secara rawak tetapi ini tidak biasa dan boleh dihilangkan.

t harus ditentukan secara eksperimen, jika t terlalu kecil keadaan serupa akan diabaikan dan setiap keadaan dilihat unik. Terlalu besar t bermaksud keadaan yang agak tidak sama disatukan yang boleh mempengaruhi kemampuan memilih tindakan yang baik. Mungkin menggunakan kaedah statistik untuk menentukan t terbaik.

Jadual kelihatan seperti ini: No Entri - Nyatakan vektor - ganjaran untuk tindakan 1 - ganjaran untuk tindakan 2 - ganjaran untuk tindakan 3.

Saya rasa pelaksanaan sebenarnya akan menjadi sukar tetapi perlu dilakukan. Semoga berjaya!

Disyorkan: