Mundarija:

Avtonom mashina: 7 qadam (rasmlar bilan)
Avtonom mashina: 7 qadam (rasmlar bilan)

Video: Avtonom mashina: 7 qadam (rasmlar bilan)

Video: Avtonom mashina: 7 qadam (rasmlar bilan)
Video: Davlat raqam belgisini o‘zgacha usulda yashirgan haydovchi qo‘lga tushdi 2024, Noyabr
Anonim
Avtonom avtomobil
Avtonom avtomobil
Avtonom avtomobil
Avtonom avtomobil

Bu loyiha avtonom boshqariladigan robot bo'lib, u yo'lda to'siqlardan qochib, o'z maqsadiga erishishga harakat qiladi. Robot LiDAR sensori bilan jihozlanadi, u atrofdagi narsalarni aniqlash uchun ishlatiladi. Ob'ektlar aniqlanganda va robot harakatlanayotganda real vaqt xaritasi yangilanadi. Xarita aniqlangan to'siqlarning joylarini saqlash uchun ishlatiladi. Shunday qilib, robot maqsad pozitsiyasiga muvaffaqiyatsiz yo'lni qaytadan urmaydi. Buning o'rniga u hech qanday to'siqsiz yo'llarni yoki hali to'siqlar tekshirilmagan yo'llarni sinab ko'radi.

Robot doimiy dvigatel bilan boshqariladigan ikkita g'ildirak va ikkita g'ildirak g'ildiragi bilan harakatlanadi. Dvigatellar dumaloq platformaning pastki qismiga o'rnatiladi. Dvigatellarni ikkita haydovchi boshqaradi. Dvigatel haydovchilari PWM buyruqlarini Zynq protsessoridan oladi. Har bir dvigateldagi enkoderlarning barchasi transport vositalarining joylashuvi va yo'nalishini kuzatish uchun ishlatiladi. Butun tizim LiPo batareyasi bilan ta'minlanadi.

1 -qadam: Avtomobilni yig'ish

Avtomobilni yig'ish
Avtomobilni yig'ish
Avtomobilni yig'ish
Avtomobilni yig'ish
Avtomobilni yig'ish
Avtomobilni yig'ish
Avtomobilni yig'ish
Avtomobilni yig'ish

Robot yon g'ildiraklarga biriktirilgan ikkita dvigatel bilan ishlaydi, so'ngra old va orqa tomondan ikkita g'ildirak g'ildiragi bilan quvvatlanadi. Platforma va dvigatellar alyuminiydan yasalgan. G'ildiraklarni dvigatelga ulash uchun dvigatel uyasi sotib olindi. Biroq, maxsus oraliq biriktirgich qilish kerak edi, chunki uyaning teshik shakli g'ildirakning teshik naqshidan farq qilardi.

Tanlangan dvigatel o'rnatilgan 12 V DC Port Escap enkoderli dvigatel edi. Bu dvigatelni ebayda juda maqbul narxga sotib olish mumkin (qarang: Materiallar ro'yxati). Dvigatelni topish uchun ebayda "12V Escap 16 yadrosiz tishli dvigatel kodlovchi bilan qidiring" kalit so'zlarini qidiring. Odatda tanlash uchun adolatli miqdordagi sotuvchilar bor. Dvigatellarning texnik xususiyatlari va ulagichlari quyidagi diagrammada ko'rsatilgan.

Robotni yig'ish shassi dizaynining SAPR rejimidan boshlandi. Quyidagi model shassi uchun mo'ljallangan 2D shakli profilining yuqori ko'rinishini ko'rsatadi.

Shassi oson ishlab chiqarilishi uchun 2Dprofile sifatida ishlab chiqilishi tavsiya etiladi. Biz 12 dyuymli X12 dyuymli alyuminiy varag'ini shassi shakliga suv jeti yordamida kesib tashladik. Shassi platformasi, shuningdek, arra bilan kesilishi mumkin.

2 -qadam: motorlarni o'rnatish

O'rnatish motorlari
O'rnatish motorlari
O'rnatish motorlari
O'rnatish motorlari

Keyingi qadam - motorni o'rnatish. Dvigatelni 90 gradusli alyuminiy plastinkadan yasash tavsiya etiladi. Ushbu qismdan foydalanib, dvigatelni ikkita metall plitaning bir yuziga konsol bilan mahkamlash mumkin

Dvigatel va boshqa yuzning M2 teshiklari platformaga mahkamlanadi. Dvigatel moslamasiga teshiklarni burish kerak, shunda vintlar yordamida dvigatelni dvigatelga va dvigatelni platformaga mahkamlash mumkin. Dvigatel moslamasini yuqoridagi rasmda ko'rish mumkin.

Keyinchalik, Pololu dvigatel uyasi (materiallar ro'yxatiga qarang) dvigatel miliga joylashtiriladi va vint va Allen kaliti bilan mahkamlanadi. Pololu dvigatel uyasining teshik shakli VEX g'ildiragining teshik modeliga mos kelmaydi, shuning uchun maxsus oraliq biriktirgich tayyorlanishi kerak. Shassi platformasini ishlab chiqarish uchun ishlatiladigan alyuminiy plastmassadan yasalgan plastmassa biriktirgichni ishlab chiqarish uchun ishlatiladi. Bu juftlikning teshik shakli va o'lchamlari quyidagi rasmda ko'rsatilgan. Maxsus alyuminiy biriktirgichning tashqi diametri va shakli (aylana bo'lishi shart emas) barcha teshiklar qismga to'g'ri kelganda muhim emas.

3 -qadam: Vivado blok dizaynini yaratish

Vivado blok dizaynini yaratish
Vivado blok dizaynini yaratish
Vivado blok dizaynini yaratish
Vivado blok dizaynini yaratish

- Yangi Vivado loyihasini yaratish bilan boshlang va maqsadli qurilma sifatida Zybo Zynq 7000 Z010 ni tanlang.

- Keyin yangi blok dizaynini yaratish -ni bosing va Zynq IP -ni qo'shing. Zynq IP -ni ikki marta bosing va Zynq uchun taqdim etilgan XPS sozlamalarini import qiling. Keyin MIO konfiguratsiyasi yorlig'i ostidagi UART0 ni MIO 10..11 bilan yoqing, shuningdek Timer 0 va Watchdog taymerining yoqilganligiga ishonch hosil qiling.

- Blok dizayniga ikkita AXI GPIOS qo'shing. GPIO 0 uchun ikkita kanalni yoqing va ikkalasini ham barcha chiqishlarga o'rnating. GPIO kengligini 1 -kanaldan 4 -bitgacha va 2 -kanaldan 12 -bitga o'rnating, bu kanallar dvigatel yo'nalishini belgilash va kodlovchi o'lchovlarini protsessorga yuborish uchun ishlatiladi. GPIO 1 uchun 4 bitli kanal kengligi bo'lgan barcha kirishlar uchun bitta kanalni o'rnating. Bu kodlovchilardan ma'lumotlarni olish uchun ishlatiladi. Barcha GPIO portlarini tashqi qilib qo'ying.

- Keyin ikkita AXI taymerini qo'shing. Ikkala taymerda ham pwm0 portlarini tashqi qilib qo'ying. Bu dvigatellarning aylanish tezligini boshqaradigan pwms bo'ladi.

- Nihoyat, blokni avtomatlashtirish va ulanishni avtomatlashtirishni ishga tushiring. Sizda mavjud bo'lgan blok dizayni sizga mos kelishini tekshiring.

4 -qadam: LiDAR bilan aloqa

Bu LiDAR UART orqali muloqot qilish uchun SCIP 2.0 protokolidan foydalanadi, unga biriktirilgan fayl butun protokolni tavsiflaydi.

LiDAR bilan bog'lanish uchun biz UART0 dan foydalanamiz. LiDAR har bir ob'ektga bu burchakdagi masofani ifodalovchi 682 ma'lumot nuqtasini qaytaradi. LiDAR 0.351 darajali qadam bilan soat yo'nalishi bo'yicha -30 darajadan 210 gradusgacha skanerlaydi.

- LiDAR bilan barcha aloqa ASCI belgilar bilan amalga oshiriladi, ishlatilgan format uchun SCIP protokoliga qarang. Biz LiDAR -ni yoqish uchun QT buyrug'ini yuborishdan boshlaymiz. Keyin biz GS buyrug'ini UARTS 64 baytli FIFO -da bir vaqtning o'zida bir vaqtning o'zida 18 ta ma'lumotlar punktini so'rab yuboramiz. LiDAR -dan qaytarilgan ma'lumotlar keyinchalik tahlil qilinadi va SCANdata global massivida saqlanadi.

- Saqlangan har bir ma'lumot nuqtasi 2 bayt kodlangan ma'lumotdir. Bu ma'lumotni dekoderga o'tkazilsa, millimetrdagi masofa qaytadi.

Main_av.c faylida siz LiDAR bilan bog'lanish uchun quyidagi funktsiyalarni topasiz

sendLIDARcmd (buyruq)

- Bu UART0 orqali LiDARga kirish qatorini yuboradi

recvLIDARdata ()

- Bu LiDAR -ga buyruq yuborilgandan keyin ma'lumotlarni oladi va ma'lumotlarni RECBuffer -da saqlaydi

requestDistanceData ()

- Bu funktsiya barcha 682 ma'lumotlar nuqtalarini olish uchun bir qator buyruqlar yuboradi. Har bir 18 ta ma'lumot punktlari qabul qilingandan so'ng, ma'lumotlarni tahlil qilish va bosqichma -bosqich SCANdata -da saqlash uchun parseLIDARinput () chaqiriladi.

5 -qadam: Tarmoqni to'siqlar bilan to'ldirish

To'siqlar bilan to'rni to'ldirish
To'siqlar bilan to'rni to'ldirish
To'siqlar bilan to'rni to'ldirish
To'siqlar bilan to'rni to'ldirish

Saqlanadigan GRID - bu har bir indeks qiymati joylashuvni ifodalovchi 2D qator. Har bir indeksda saqlanadigan ma'lumotlar mos ravishda 0 yoki 1, hech qanday to'siq va to'siq yo'q. Har bir indeks ko'rsatadigan millimetrdagi kvadrat masofani transport.h faylidagi GRID_SCALE ta'rifi bilan o'zgartirish mumkin. GRID_SIZE ta'rifini o'zgartirib, mashinaning katta maydonini skanerlashi uchun 2D massivining o'lchamini ham o'zgartirish mumkin.

Ma'lumotlar skanerdan o'tkazilgandan so'ng, LiDAR updateGrid () chaqiriladi. Bu SCANdata massivida saqlangan har bir ma'lumot nuqtasi orqali tarmoqdagi qaysi indekslarning to'siqlari borligini aniqlashga yordam beradi. Avtotransportning hozirgi yo'nalishini ishlatib, biz har bir ma'lumot nuqtasiga mos keladigan burchakni aniqlashimiz mumkin. To'siq qaerda ekanligini aniqlash uchun mos keladigan masofani burchakning cos/sin ga ko'paytiring. Hozirgi x va y pozitsiyalariga ushbu ikkita qiymat qo'shilsa, to'siq panjarasidagi indeks qaytariladi. GRID_SCALE tomonidan qaytarilgan masofani ajratish bizga har bir indeksning kvadrat masofasi qanchalik katta ekanligini o'zgartirish imkonini beradi.

Yuqoridagi rasmlar avtomobillarning hozirgi muhitini va natijada paydo bo'lgan Gridni ko'rsatadi.

6 -qadam: motorlar bilan aloqa

Dvigatellar bilan muloqot qilish uchun biz GPIO -ni ishga tushirishni boshlaymiz, bu dvigatelning aylanish yo'nalishi edi. Keyin to'g'ridan -to'g'ri AXI taymeridagi PWM -larning asosiy manziliga yozish bizga davr va vazifa tsikli kabi narsalarni belgilashga imkon beradi. dvigatelning aylanish tezligi.

7 -qadam: Yo'lni rejalashtirish

Yaqin kelajakda amalga oshirilishi kerak.

Yuqorida tasvirlangan tarmoq va motor funksiyalaridan foydalanib, A*kabi algoritmlarni amalga oshirish juda oson. Avtomobil harakatlanayotganda, u atrofni ko'zdan kechirishni davom ettiradi va uning yo'lining to'g'riligini aniqlaydi

Tavsiya: