Isi kandungan:

Kenderaan Autonomi: 7 Langkah (dengan Gambar)
Kenderaan Autonomi: 7 Langkah (dengan Gambar)

Video: Kenderaan Autonomi: 7 Langkah (dengan Gambar)

Video: Kenderaan Autonomi: 7 Langkah (dengan Gambar)
Video: PERBEZAAN MITSUBISHI EVO 7, 8 & 9 by 199 GARAGE 2024, November
Anonim
Kenderaan Autonomi
Kenderaan Autonomi
Kenderaan Autonomi
Kenderaan Autonomi

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

Memasang Kenderaan
Memasang Kenderaan
Memasang Kenderaan
Memasang Kenderaan
Memasang Kenderaan
Memasang Kenderaan
Memasang Kenderaan
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

Pemasangan Motor
Pemasangan Motor
Pemasangan Motor
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

Membuat Reka Bentuk Vivado Block
Membuat Reka Bentuk Vivado Block
Membuat Reka Bentuk Vivado Block
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

Mengisi Grid Dengan Halangan
Mengisi Grid Dengan Halangan
Mengisi Grid Dengan Halangan
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: