Satura rādītājs:
- 1. darbība: transportlīdzekļa salikšana
- 2. solis: Motoru montāža
- 3. darbība: Vivado bloka dizaina izveide
- 4. darbība. Saziņa ar LiDAR
- 5. solis: režģa aizpildīšana ar šķēršļiem
- 6. darbība. Saziņa ar motoriem
- 7. solis: ceļa plānošana
Video: Autonomais transportlīdzeklis: 7 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šis projekts ir autonomi orientējošs robots, kurš cenšas sasniegt savu mērķi, vienlaikus izvairoties no šķēršļiem. Robots tiks aprīkots ar LiDAR sensoru, kas tiks izmantots, lai noteiktu apkārtnē esošos objektus. Kad objekti tiek atklāti un robots pārvietojas, tiks atjaunināta reālā laika karte. Karte tiks izmantota, lai saglabātu identificēto šķēršļu atrašanās vietas. Tādā veidā robots atkārtoti nemēģinās neveiksmīgu ceļu uz mērķa pozīciju. Tā vietā tā mēģinās ceļus, kuriem vai nu nav šķēršļu, vai ceļus, kas vēl nav pārbaudīti attiecībā uz šķēršļiem.
Robots kustēsies ar diviem līdzstrāvas motoriem un diviem ritentiņiem. Motori tiks piestiprināti apaļas platformas apakšai. Motorus vadīs divi motoru vadītāji. Motora draiveri saņems PWM komandas no Zynq procesora. Katra motora kodētāji tiek izmantoti, lai izsekotu transportlīdzekļa stāvoklim un orientācijai. Visa sistēma tiks darbināta ar LiPo akumulatoru.
1. darbība: transportlīdzekļa salikšana
Robotu darbina divi motori, kas piestiprināti pie sānu riteņiem, un to papildus atbalsta divi ritentiņi - viens priekšpusē un otrs aizmugurē. Platforma un motora stiprinājumi tika izgatavoti no alumīnija lokšņu metāla. Riteņu piestiprināšanai pie motora tika iegādāts motora rumbas. Tomēr bija jāizgatavo pielāgots starpposma savienojums, jo rumbas caurumu raksts atšķīrās no riteņa caurumu raksta.
Izvēlētais motors bija Port Escap 12V līdzstrāvas motors ar iebūvētiem kodētājiem. Šo motoru var iegādāties ebay par ļoti saprātīgu cenu (skat. Materiālu sarakstu). Meklējiet atslēgvārdus “12V Escap 16 Coreless Geared DC Motor with Encoders” ebay, lai atrastu motoru. Parasti ir diezgan daudz pārdevēju, no kuriem izvēlēties. Motoru specifikācijas un kontakti ir parādīti zemāk esošajās diagrammās.
Robota montāža sākās ar šasijas CAD modeli. Zemāk redzamais modelis parāda šasijai paredzētā 2D formas profila augšējo skatu.
Šasiju ieteicams veidot kā 2D profilu, lai to varētu viegli izgatavot. Izmantojot ūdens strūklas griezēju, mēs izgriezām 12”X12” alumīnija loksni šasijas formā. Šasijas platformu varēja sagriezt arī ar lentzāģi.
2. solis: Motoru montāža
Nākamais solis ir motora stiprinājumu izgatavošana. Motoru stiprinājumus ieteicams izgatavot no 90 grādu lokšņu metāla alumīnija. Izmantojot šo daļu, motoru var piestiprināt konsolei uz vienas lokšņu metāla virsmas, izmantojot abas
Motora M2 caurumus un otru virsmu var pieskrūvēt pie platformas. Motora stiprinājumā ir jāizurbj caurumi, lai ar skrūvēm varētu piestiprināt motoru pie motora stiprinājuma un motora stiprinājumu uz platformas. Motora stiprinājumu var redzēt attēlā iepriekš.
Tālāk uz motora vārpstas tiek novietots Pololu motora rumbas skats (skatiet materiālu sarakstu) un pievelciet ar komplektā esošo skrūvi un sešstūra atslēgu. Pololu motora rumbas caurumu raksts neatbilst VEX riteņa caurumu modelim, tāpēc ir jāizveido pielāgots starpposma savienojums. Ieteicams savienotāja izgatavošanai izmantot metāllūžņus no alumīnija, ko izmantoja šasijas platformas izgatavošanai. Šī pāra caurumu modelis un izmēri ir parādīti attēlā zemāk. Pielāgota alumīnija savienojuma ārējam diametram un formai (nav jābūt aplim) nav nozīmes, ja vien uz detaļas ir visi caurumi.
3. darbība: Vivado bloka dizaina izveide
- Sāciet, izveidojot jaunu Vivado projektu un kā mērķa ierīci izvēlieties Zybo Zynq 7000 Z010.
- Pēc tam noklikšķiniet uz izveidot jaunu bloku dizainu un pievienojiet Zynq IP. Veiciet dubultklikšķi uz Zynq IP un importējiet Zynq nodrošinātos XPS iestatījumus. Pēc tam cilnē MIO konfigurācijas iespējojiet UART0 ar MIO 10..11, kā arī pārliecinieties, vai ir iespējots taimeris 0 un Watchdog taimeris.
- Pievienojiet bloka dizainam divus AXI GPIOS. GPIO 0 iespējojiet divkanālu un iestatiet abas uz visām izejām. Iestatiet GPIO platumu kanālam no 1 līdz 4 bitiem un kanālam no 2 līdz 12 bitiem, šie kanāli tiks izmantoti, lai iestatītu motora virzienu un nosūtītu kodētāja izmērīto ērču daudzumu uz procesoru. GPIO 1 iestatiet tikai vienu kanālu visām ieejām ar kanāla platumu 4 biti. Tas tiks izmantots, lai saņemtu datus no kodētājiem. Padariet visus GPIO portus ārējus.
- Nākamais Pievienojiet divus AXI taimerus. Padariet abu taimeru pwm0 portus ārējus. Tie būs pwms, kas kontrolē motoru rotācijas ātrumu.
- Visbeidzot palaidiet bloku automatizāciju un savienojumu automatizāciju. Pārbaudiet, vai jūsu bloka dizains atbilst norādītajam.
4. darbība. Saziņa ar LiDAR
Šis LiDAR izmanto SCIP 2.0 protokolu, lai sazinātos, izmantojot UART, pievienotais fails apraksta visu protokolu.
Lai sazinātos ar LiDAR, mēs izmantosim UART0. LiDAR atgriež 682 datu punktus, kas katrs attēlo attālumu līdz objektam šajā leņķī. LiDAR skenē pretēji pulksteņrādītāja virzienam no -30 grādiem līdz 210 grādiem ar 0,351 grādu soli.
- Visa saziņa ar LiDAR tiek veikta ar ASCI rakstzīmēm, skatiet SCIP protokolu izmantotajam formātam. Mēs sākam, nosūtot komandu QT, lai ieslēgtu LiDAR. Pēc tam mēs vairākas reizes nosūtām GS komandu, pieprasot 18 datu punktus vienlaikus uz ft UARTS 64 baitu FIFO. Pēc tam no LiDAR atgrieztie dati tiek parsēti un saglabāti SCANdata globālajā masīvā.
- Katrs uzglabātais datu punkts ir 2 baiti kodētu datu. Ievadot šos datus dekodētājā, tiks atgriezts attālums milimetros.
Failā main_av.c jūs atradīsit šādas funkcijas, lai sazinātos ar LiDAR
sendLIDARcmd (komanda)
- Tas ievades virkni nosūtīs LiDAR caur UART0
recvLIDARdata ()
- Tas saņems datus pēc komandas nosūtīšanas uz LiDAR un saglabās datus RECBuffer
requestDistanceData ()
- Šī funkcija nosūtīs virkni komandu, lai izgūtu visus 682 datu punktus. Pēc katras 18 datu punktu kopas saņemšanas tiek izsaukta parseLIDARinput (), lai parsētu datus un pakāpeniski saglabātu datu punktus SCANdata.
5. solis: režģa aizpildīšana ar šķēršļiem
Saglabātais GRID ir 2D masīvs, un katra indeksa vērtība apzīmē atrašanās vietu. Katrā rādītājā saglabātie dati ir attiecīgi 0 vai 1, bez šķēršļiem un šķēršļiem. Katra indeksa attēloto kvadrātveida attālumu milimetros var mainīt ar GRID_SCALE definīciju failā vehicle.h. 2D masīva lielumu var arī mainīt, lai transportlīdzeklis varētu skenēt lielāku laukumu, mainot GRID_SIZE definīciju.
Pēc tam, kad no LiDAR tiek skenēta jauna attāluma datu kopa, tiek izsaukts updateGrid (). Tas atkārtos katru datu punktu, kas saglabāts SCANdata masīvā, lai noteiktu, kuriem tīkla indeksiem ir šķēršļi. Izmantojot transportlīdzekļa pašreizējo orientāciju, mēs varam noteikt leņķi, kas atbilst katram datu punktam. Lai noteiktu, kur atrodas šķērslis, vienkārši reiziniet atbilstošo attālumu ar leņķa cos/sin. Pievienojot šīs divas vērtības transportlīdzekļu pašreizējai x un y pozīcijai, tiks parādīts rādītājs šķēršļa režģī. Sadalot ar šo darbību atgriezto attālumu ar GRID_SCALE, varēsim mainīt katra indeksa kvadrātveida attālumu.
Iepriekš redzamajos attēlos redzama transportlīdzekļu pašreizējā vide un no tā izrietošais režģis.
6. darbība. Saziņa ar motoriem
Lai sazinātos ar motoriem, mēs sākam GPIO inicializēšanu, lai vadītu motoru. Pēc tam rakstīšana tieši uz PWM bāzes adresi AXI taimerī ļauj mums iestatīt tādas lietas kā periodu un darba ciklu, kas tieši kontrolē ātrumu, kurā motors griežas.
7. solis: ceļa plānošana
Jāīsteno tuvākajā laikā.
Izmantojot iepriekš aprakstīto režģa un motora funkcionalitāti, ir ļoti viegli ieviest tādus algoritmus kā A*. Kad transportlīdzeklis pārvietojas, tas turpinās skenēt apkārtni un noteikt, vai ceļš, pa kuru tas atrodas, joprojām ir derīgs
Ieteicams:
Super FAST RC zemes efekta transportlīdzeklis (Ekranoplan): 5 soļi (ar attēliem)
Super FAST RC Ground Effect Vehicle (Ekranoplan): Vai jūs zināt, kā nolaišanās laikā lidmašīnas kādu laiku lidinās dažas pēdas virs zemes, pirms to riteņi faktiski sasniegs skrejceļu? Tas ne tikai nodrošina pasažieriem vienmērīgu nosēšanos, bet arī ir dabisks zemes efekta rezultāts, kurā
GorillaBot 3D drukātais Arduino autonomais sprints četrkājainais robots: 9 soļi (ar attēliem)
GorillaBot 3D drukātais Arduino autonomais sprints četrkājainais robots: Katru gadu Tulūzā (Francija) notiek Tulūzas robotu sacensības #TRR2021 Sacensības sastāv no 10 metru autonoma sprinta divkājainajiem un četrkājainajiem robotiem. Pašreizējais rekords, ko apkopoju četrkājainajiem, ir 42 sekundes 10 metru sprints. Tātad ar to m
Autonomais fiksēto spārnu piegādes drons (3D drukāts): 7 soļi (ar attēliem)
Autonomais fiksēto spārnu piegādes drons (3D drukāts): bezpilota lidaparātu tehnoloģija ir ļoti attīstījusies, jo mums tā ir daudz pieejamāka nekā iepriekš. Šodien mēs varam ļoti viegli izveidot bezpilota lidaparātu un būt autonomi, un to var kontrolēt no jebkuras vietas pasaulē. Drone Technology var mainīt mūsu ikdienas dzīvi. Piegāde
DIY pašbalansējošs viena riteņa transportlīdzeklis: 8 soļi (ar attēliem)
DIY pašbalansējošs viena riteņa transportlīdzeklis: interesē dažas pašizlīdzinošu produktu tendences, piemēram, segway un solowheel. Jā, jūs varat doties jebkurā vietā, braucot ar riteni, nenogurdinot. bet tas ir lieliski, ja to var iegūt pats. Nu, būvēsim to
KEVIN: Pilns autonomais transportlīdzeklis: 17 soļi (ar attēliem)
KEVIN Pilnībā autonomais transportlīdzeklis: Tas ir Kevins. Tā ir radio vadāma automašīna ar spēju veikt pilnu autonomu piedziņu. Mans pirmais mērķis bija padarīt autonomu transportlīdzekli kontrolējamu Arduino. Tāpēc es nopirku lētu ķīniešu šasiju. Bet tas bija briesmīgi, jo es nevarēju pievienot nevienu c