Isi kandungan:
- Langkah 1: Memasang Kenderaan
- Langkah 2: Pemasangan Motor
- Langkah 3: Membuat Reka Bentuk Vivado Block
- Langkah 4: Berkomunikasi dengan LiDAR
- Langkah 5: Mengisi Grid Dengan Halangan
- Langkah 6: Berkomunikasi dengan Motor
- Langkah 7: Perancangan Laluan
Video: Kenderaan Autonomi: 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Projek ini adalah robot navigasi secara autonomi yang cuba mencapai kedudukan matlamatnya sambil mengelakkan halangan dalam perjalanannya. Robot akan dilengkapi dengan sensor LiDAR yang akan digunakan untuk mengesan objek di sekitarnya. Apabila objek dikesan dan robot bergerak, peta masa nyata akan dikemas kini. Peta akan digunakan untuk menyelamatkan lokasi rintangan yang telah dikenalpasti. Dengan cara ini, robot tidak akan mencuba semula jalan yang gagal ke kedudukan gol. Ia sebaliknya akan mencuba jalan yang tidak mempunyai rintangan atau jalan yang belum diperiksa untuk halangan.
Robot akan bergerak dengan dua roda motor DC dan dua roda kastor. Motor akan dipasang pada bahagian bawah platform bulat. Motor akan dikendalikan oleh dua pemandu motor. Pemandu motor akan menerima arahan PWM dari Zynq Processor. Pengekod pada setiap motor digunakan untuk mengesan kedudukan dan orientasi kenderaan. Keseluruhan sistem akan menggunakan bateri LiPo.
Langkah 1: Memasang Kenderaan
Robot ini digerakkan oleh dua motor yang dipasang pada roda sisi dan kemudian disokong oleh dua roda kastor, satu di depan dan satu di belakang. Pelantar dan pelekap motor dibuat dari aluminium logam lembaran. Hab motor dibeli untuk memasang roda pada motor. Walau bagaimanapun, pengganding perantara khusus perlu dibuat kerana corak lubang hub berbeza dengan corak lubang roda.
Motor yang dipilih adalah motor Port Escap 12V DC dengan pengekod terbina dalam. Motor ini boleh dibeli di ebay dengan harga yang sangat berpatutan (lihat Bil Bahan). Cari kata kunci "12V Escap 16 Coreless Geared DC Motor with Encoders" di ebay untuk mencari motornya. Biasanya terdapat sebilangan besar penjual untuk dipilih. Spesifikasi dan pin motor ditunjukkan dalam rajah di bawah.
Pemasangan robot dimulakan dengan reka bentuk casis modeld CAD. Model di bawah menunjukkan pandangan atas profil bentuk 2D yang direka untuk casis.
Dicadangkan agar casis dirancang sebagai 2Dprofile sehingga dapat dihasilkan dengan mudah. Kami memotong kepingan Aluminium 12 "X12" ke dalam bentuk casis dengan menggunakan pemotong jet air. Platform casis juga dapat dipotong dengan gergaji pita.
Langkah 2: Pemasangan Motor
Langkah seterusnya adalah membuat motor dipasang. Dicadangkan agar pelekap motor dibuat dari Aluminium Lembaran Logam 90 darjah. Dengan menggunakan bahagian ini, motor boleh dipasang kantilever pada satu muka logam lembaran menggunakan kedua-duanya
Lubang motor M2 dan muka yang lain boleh dilekatkan ke platform. Lubang mesti dibor ke dalam pelekap motor supaya skru dapat digunakan untuk mengikat motor ke dudukan motor dan pelekap motor ke pelantar. Pemasangan motor dapat dilihat pada gambar di atas.
Seterusnya Pololu Motor Hub (lihat Bil Bahan) diletakkan pada batang motor dan diketatkan dengan skru set dan kunci pas Allen yang disediakan. Corak lubang hub motor Pololu tidak sepadan dengan corak lubang roda VEX jadi pengganding perantara tersuai mesti dibuat. Dicadangkan agar aluminium logam sekerap yang digunakan untuk membuat pelantar casis digunakan untuk membuat pengganding. Corak lubang dan dimensi pasangan ini ditunjukkan dalam gambar di bawah. Diameter dan bentuk luar (tidak perlu menjadi bulatan) penyambung aluminium khusus tidak penting selagi semua lubang sesuai di bahagiannya.
Langkah 3: Membuat Reka Bentuk Vivado Block
- Mulakan dengan membuat projek Vivado baru dan pilih Zybo Zynq 7000 Z010 sebagai peranti sasaran.
- Klik seterusnya buat reka bentuk blok baru, dan tambahkan IP Zynq. Klik dua kali pada Zynq IP dan import tetapan XPS yang disediakan untuk Zynq. Kemudian aktifkan UART0 dengan MIO 10..11 di bawah tab konfigurasi MIO, dan juga pastikan bahawa Pemasa 0 dan pemasa Watchdog diaktifkan.
- Tambahkan dua AXI GPIOS ke reka bentuk blok. Untuk GPIO 0 aktifkan dua saluran dan tetapkan keduanya ke semua output. Tetapkan lebar GPIO untuk saluran 1 hingga 4 bit dan untuk saluran 2 hingga 12 bit, saluran ini akan digunakan untuk mengatur arah motor dan mengirim jumlah kutu pengukuran pengekod ke pemproses. Untuk GPIO 1 tetapkan satu saluran ke semua input dengan lebar saluran 4 bit. Ini akan digunakan untuk menerima data dari pengekod. Jadikan semua port GPIO luaran.
- Seterusnya Tambah dua Pemasa AXI. Jadikan port pwm0 pada kedua pemasa di luar. Ini akan menjadi pwms yang mengawal kelajuan putaran motor.
- Akhirnya Jalankan automasi blok dan automasi sambungan. Sahkan bahawa reka bentuk blok yang anda miliki sesuai dengan yang disediakan.
Langkah 4: Berkomunikasi dengan LiDAR
LiDAR ini menggunakan protokol SCIP 2.0 untuk berkomunikasi melalui UART, fail yang dilampirkan menerangkan keseluruhan protokol.
Untuk berkomunikasi dengan LiDAR, kami akan menggunakan UART0. LiDAR mengembalikan 682 titik data yang masing-masing mewakili jarak ke objek pada sudut itu. Imbasan LiDAR berlawanan arah jam dari -30 darjah hingga 210 darjah dengan langkah 0.351 darjah.
- Semua komunikasi ke LiDAR dilakukan dengan watak ASCI, merujuk kepada protokol SCIP untuk format yang digunakan. Kita mulakan dengan menghantar arahan QT untuk menghidupkan LiDAR. Kami kemudian menghantar arahan GS beberapa kali meminta 18 titik data sekaligus ke FIFO UARTS 64 bait. Data yang dikembalikan dari LiDAR kemudian diurai dan disimpan ke dalam array global SCANdata.
- Setiap titik data yang disimpan adalah 2 bait data yang dikodkan. Menyerahkan data ini ke penyahkod akan mengembalikan jarak dalam milimeter.
Dalam fail main_av.c anda akan menemui fungsi berikut untuk berkomunikasi dengan LiDAR
sendLIDARcmd (arahan)
- Ini akan menghantar rentetan input ke LiDAR melalui UART0
recvLIDARdata ()
- Ini akan menerima data setelah arahan dihantar ke LiDAR dan menyimpan data di RECBuffer
requestDistanceData ()
- Fungsi ini akan menghantar serangkaian perintah untuk mengambil semua 682 titik data. Setelah setiap set 18 titik data diterima parseLIDARinput () dipanggil untuk mengurai data dan secara bertahap menyimpan titik data dalam SCANdata.
Langkah 5: Mengisi Grid Dengan Halangan
GRID yang disimpan adalah array 2D dengan setiap nilai indeks mewakili lokasi. Data yang disimpan dalam setiap indeks masing-masing berupa 0 atau 1, Tiada halangan dan halangan. Jarak persegi dalam milimeter yang ditunjukkan oleh setiap indeks dapat diubah dengan definisi GRID_SCALE dalam file Veh.h. Ukuran array 2D juga dapat diubah untuk memungkinkan kenderaan mengimbas kawasan yang lebih besar dengan mengubah definisi GRID_SIZE.
Setelah satu set data jarak baru diimbas dari LiDAR updateGrid () dipanggil. Ini akan berulang melalui setiap titik data yang disimpan dalam array SCANdata untuk menentukan indeks di grid mana yang mempunyai rintangan. Dengan menggunakan orientasi kenderaan semasa kita dapat menentukan sudut yang sesuai dengan setiap titik data. Untuk menentukan di mana halangan anda, maka gandakan jarak yang sesuai dengan kos / sin dari sudut. Menambah dua nilai ini ke kenderaan semasa kedudukan x dan y akan mengembalikan indeks di grid rintangan. Membahagi jarak yang dikembalikan oleh operasi ini dengan GRID_SCALE akan membolehkan kita mengubah seberapa besar jarak persegi setiap indeks.
Gambar di atas menunjukkan persekitaran semasa kenderaan dan Grid yang dihasilkan.
Langkah 6: Berkomunikasi dengan Motor
Untuk berkomunikasi dengan motor kita mulakan dengan menginisialisasi GPIO untuk mengawal adalah arah putaran motor. Kemudian menulis terus ke alamat asas PWM dalam Pemasa AXI membolehkan kita mengatur perkara seperti tempoh dan kitaran Tugas yang secara langsung mengawal laju motor berpusing di.
Langkah 7: Perancangan Laluan
Akan dilaksanakan dalam masa terdekat.
Menggunakan fungsi grid dan motor yang telah dijelaskan sebelumnya, sangat mudah untuk menerapkan algoritma seperti A *. Semasa kenderaan bergerak, ia akan terus mengimbas kawasan sekitarnya dan menentukan apakah jalan yang dilaluinya masih berlaku
Disyorkan:
Kenderaan Kesan Tanah Super FAST RC (Ekranoplan): 5 Langkah (dengan Gambar)
Kenderaan Efek Darat Super FAST RC (Ekranoplan): Anda tahu bagaimana, semasa touch-down, pesawat melayang beberapa kaki di atas tanah untuk sementara waktu sebelum roda mereka benar-benar memukul landasan? Ini bukan hanya untuk memberikan penumpang dengan lancar, tetapi juga hasil semula jadi dari kesan tanah, di mana
Gaun Bola Victoria dengan Garis Leher Boleh Laras Autonomi: 8 Langkah (dengan Gambar)
Gaun Bola Victorian Dengan Garis Leher Laras Autonomi: Ini adalah projek yang saya buat untuk Bola Musim Dingin Victoria di Cracow. Gaun bola pintar yang menyesuaikan ukuran garis lehernya berdasarkan jarak seorang lelaki yang berdiri di hadapannya
Tangki Autonomi Dengan GPS: 5 Langkah (dengan Gambar)
Autonomous Tank With GPS: DFRobot baru-baru ini menghantar saya Devastator Tank Platform kit untuk mencuba. Jadi, tentu saja, saya memutuskan untuk menjadikannya autonomi dan juga mempunyai keupayaan GPS. Robot ini akan menggunakan sensor ultrasonik untuk menavigasi, di mana ia bergerak maju sambil memeriksa
KEVIN Kenderaan Autonomi Penuh: 17 Langkah (dengan Gambar)
KEVIN Kenderaan Autonomi Penuh: Ini adalah Kevin. Ia adalah kereta yang dikendalikan radio dengan kemampuan untuk melakukan pemanduan autonomi sepenuhnya. Matlamat pertama saya adalah membuat kenderaan autonomi yang dikendalikan oleh Arduino. Oleh itu, saya membeli casis Cina yang murah. Tetapi ia mengerikan kerana saya tidak dapat melampirkan c
Robot Autonomi Dengan Banyak Keupayaan: 8 Langkah (dengan Gambar)
Robot Autonomi Dengan Banyak Keupayaan: Hai kawan-kawan, dalam arahan ini saya akan memperkenalkan versi baru arahan saya sebelumnya yang dapat melakukan tugas-tugas berikut: 1- Ia boleh bergerak secara automatik oleh pemandu motor Arduino UNO dan L298N 2- Ia boleh dilakukan pembersihan sebagai pembersih vakum 3- Ia