Daftar Isi:

Hawking Bot: 5 Langkah
Hawking Bot: 5 Langkah

Video: Hawking Bot: 5 Langkah

Video: Hawking Bot: 5 Langkah
Video: Stephen Hawking's Famous Speech. 2024, Juli
Anonim
Image
Image
Bangun Bot Hawking Anda
Bangun Bot Hawking Anda

Bot Hawking adalah Proyek Lego MINDSTORMS EV3 yang terinspirasi oleh mendiang Stephen Hawking. Stephen Hawking memiliki selera humor yang bagus, jadi saya yakin dia akan menyetujui proyek ini. Bot Hawking dapat menavigasi jalannya di sekitar rintangan dan merespons gerakan dan kemudian mengucapkan salah satu gigitan suara terkenal Stephen Hawking dan bergerak ke arah objek yang bergerak. Ia menggunakan sensor ultrasonik yang memindai lingkungannya dengan gerakan kepala menyapu.

Langkah 1: Bangun Bot Hawking Anda

Semua bagian yang diperlukan ada dalam set dasar EV3 Lego MINDSTORMS kecuali sensor ultrasonik (matanya) yang harus dibeli secara terpisah.

Langkah 2:

Gambar
Gambar

Kode untuk Bot Hawking semuanya ditulis dalam python 3. File gambar yang dapat di-boot untuk menjalankan python dalam lingkungan Debian Linux di Bot Hawking dapat diunduh dari situs web ev3dev. Kode untuk menjalankan Bot Hawking dapat diunduh dari sini. Semua kode terkandung dalam file kelas sehingga Anda dapat menggunakan metode yang ada atau bahkan memodifikasinya jika Anda mau.

Silakan tonton video ini dengan instruksi mendetail tentang cara mengatur Debian Linux dan Python3 di robot Anda. Meskipun ini khusus untuk pengaturan Mac, masih berguna untuk mendapatkan pemahaman umum tentang prosesnya. Ini sedang dalam proses. Sensor ultrasonik terkadang tidak dapat diandalkan dan ini membutuhkan kode yang lebih cerdas untuk mendeteksi 'pencilan'. Saya ingin melihat kontribusi dari orang lain untuk membuat kode lebih efisien dan tidak rawan kesalahan.

Langkah 3: Buat Suara Hawking Anda Sendiri

Oke sekarang Anda ingin mengutip beberapa kutipan terkenal atau sekedar ucapan sederhana dari Prof Hawking. Ada banyak video di mana Anda dapat mendengarnya berbicara dan kemudian ada ceramahnya yang merupakan harta karun kebijaksanaan dan gigitan suara yang bermanfaat.

Anda memerlukan program seperti Audacity yang bekerja pada banyak platform untuk memilih dan memotong suara favorit Anda.

Simpan soundbite Anda sebagai file mono wav seperti SH6, SH7, …SH11, SH12 dan seterusnya.

Di bawah ini Anda menemukan beberapa contoh yang telah saya buat sesuai dengan metode di atas.

Langkah 4: Tips dan Trik

Tips dan Trik
Tips dan Trik
Tips dan Trik
Tips dan Trik

Bot Hawking dilengkapi dengan modul pemeriksaan mandiri untuk memastikan semua kabel terhubung dan daya baterai mencukupi. Koneksi yang longgar, hilang atau bahkan rusak dapat terjadi dengan mudah. Jadi modul ini sangat berguna. Metode 'checkConnection' hanya memeriksa apakah ada sambungan listrik. Anda masih harus memastikan motor terhubung ke port yang benar.

Gerakan kepala menggesek sangat penting bagi Hawking Bot untuk memindai medannya dan menemukan jalur terpanjang yang tidak terhalang di depan. Kabel membutuhkan ruang yang cukup untuk mengakomodasi gerakan kepala; oleh karena itu disarankan untuk mengikatnya bersama-sama seperti yang ditunjukkan pada foto.

Bot Hawking bekerja paling baik dengan rintangan besar dan pada permukaan yang rata dan halus. Karpet lebih menantang untuk motor dan Anda mungkin harus menyesuaikan pengaturan untuk menyesuaikan perilaku untuk permukaan yang berbeda.

Bot Hawking sama sekali tidak sempurna dan ini adalah prototipe yang akan mendapat manfaat dari perbaikan lebih lanjut. Kode sepenuhnya dikomentari dan seharusnya mudah bagi Anda untuk mengetahui apa yang dilakukan berbagai metode. Berbagai bit telah dikomentari dengan #, jika Anda menghapus # di depan 'cetak', program yang sedang berjalan akan menunjukkan kepada Anda berbagai pembacaan dan perhitungan sensor.

Langkah 5: Peningkatan yang Disarankan, Pembaruan & Ide Masa Depan

Sekarang Anda telah berhasil membangun robot Anda, Anda ingin membawanya ke tingkat berikutnya. Anda dapat meningkatkan metode MotionDetector. Saat ini sering sekali salah membaca. Anda dapat melihat pembacaan yang sebenarnya dengan menghapus komentar disA dan disB (di bagian bawah blok metode). Pembacaan yang salah biasanya menonjol dari pembacaan lain sehingga Anda dapat menulis algoritme untuk menghentikan robot merespons pembacaan yang salah.

Mungkin Anda ingin mengambil kendali penuh dari robot dan mengontrol berbagai fungsinya dari jarak jauh. Anda dapat melakukan ini melalui Bluetooth dan menulis program Android untuk berkomunikasi dengan robot. Namun, pendekatan yang jauh lebih mudah adalah menemukan tempat bagi sensor inframerah untuk mengendalikan Hawking Bot.

Bagaimana dengan membuat robot belajar tentang lingkungannya? Ini dapat dicapai dengan pendekatan k-nearest neighbor atau mungkin jaringan saraf. Bata EV3 memiliki kekuatan pemrosesan yang terbatas meskipun mendukung Numpy. Alternatifnya adalah BrickPi yang memungkinkan Anda menjalankan perpustakaan AI seperti Tensorflow tetapi tujuan dari panduan ini adalah menggunakan kit Lego EV3 MINDSTORMS tanpa perlu membeli banyak bagian tambahan yang mahal selain sensor ultrasonik.

Namun, pendekatan pembelajaran k-nearest neighbor re-infocement harus bekerja pada bata EV3 dan ini adalah algoritma yang disarankan. Saya serahkan kepada Anda untuk menemukan implementasi yang berfungsi atau menemukan masalah:

Pembelajaran penguatan untuk Hawkings Bot

Idenya adalah bahwa 7 pembacaan USS dikodekan ke dalam vektor dan 10 gerakan kepala terakhir digunakan untuk membuat vektor berurutan dari 70 entri. Pembacaan pertama tidak lengkap sehingga akan diisi dengan angka nol. Setiap entri berisi nilai jarak dari USS. Ini adalah vektor keadaan s. Sistem ini memungkinkan untuk 1000 entri. Setelah itu entri tertua akan diganti dan entri usia untuk setiap pasangan s-r akan dikurangi satu.

Bot tidak boleh lebih dekat dari 10 cm ke objek. Ini menciptakan imbalan negatif. Untuk kesederhanaan; tindakan baik dihargai dengan 1 dan tindakan buruk dengan 0. Secara efektif ini menciptakan probabilitas untuk penghargaan untuk setiap kombinasi tindakan-keadaan. Kami akan menggunakan hadiah diskon dan kebijakan serakah epsilon.

Ini menciptakan 3 tabel status besar – hadiah (s-r) untuk ketiga tindakan kanan, lurus ke depan dan kiri – dimungkinkan untuk memiliki kecepatan cepat dan lambat untuk setiap tindakan. Kami kemudian akan memiliki 6 tindakan dan 6 tabel pencarian s-r.

Setiap kali keadaan baru s dicatat, itu dibandingkan dengan tabel, jarak Euclidean (atau ukuran serupa) digunakan untuk menemukan tetangga terdekat. Ini tidak akan diberi peringkat melainkan ambang batas t diatur untuk menerima status sebagai sangat mirip, menimpa status yang ada dan memperbarui untuk hadiah tertinggi dan melakukan tindakan terkait a. Jika tidak serupa (d>t) masukkan pasangan s-r baru untuk setiap aksi a. Jika ada dasi antara tindakan untuk untuk s-r (mereka semua memiliki hadiah yang sama) pilih secara acak tetapi ini tidak umum dan dapat dihilangkan.

t harus ditentukan secara eksperimental, jika t terlalu kecil, keadaan serupa akan diabaikan dan setiap keadaan dianggap unik. Nilai t yang terlalu besar berarti bahwa keadaan yang agak berbeda digabungkan menjadi satu yang dapat mempengaruhi kemampuan untuk memilih tindakan yang baik. Dimungkinkan untuk menggunakan metode statistik untuk menentukan t terbaik.

Tabelnya terlihat seperti ini: Entry No – State vector – reward for action 1 – reward for action 2 – reward for action 3.

Saya kira implementasi yang sebenarnya akan rumit tetapi harus sepadan dengan usaha. Semoga beruntung!

Direkomendasikan: