Агуулгын хүснэгт:

Автономит тээврийн хэрэгсэл: 7 алхам (зурагтай)
Автономит тээврийн хэрэгсэл: 7 алхам (зурагтай)

Видео: Автономит тээврийн хэрэгсэл: 7 алхам (зурагтай)

Видео: Автономит тээврийн хэрэгсэл: 7 алхам (зурагтай)
Видео: 50 необычных, но невероятных автомобилей с 2002 по 2022 год 2024, Арваннэгдүгээр
Anonim
Автономит тээврийн хэрэгсэл
Автономит тээврийн хэрэгсэл
Автономит тээврийн хэрэгсэл
Автономит тээврийн хэрэгсэл

Энэхүү төсөл нь бие даан жолоодож буй робот бөгөөд зорилгодоо хүрэхийн тулд саад бэрхшээлээс зайлсхийх зорилготой юм. Энэхүү робот нь LiDAR мэдрэгчээр тоноглогдсон бөгөөд түүнийг хүрээлэн буй орчны объектуудыг илрүүлэхэд ашиглах болно. Объектуудыг илрүүлж, робот эргэн тойрон хөдөлж байх үед бодит цагийн газрын зургийг шинэчлэх болно. Тодорхойлсон саад бэрхшээлүүдийн байршлыг аврахын тулд газрын зургийг ашиглах болно. Ингэснээр робот зорилтот байрлал руу амжилтгүй болсон замыг дахин оролдохгүй. Энэ нь саад тотгоргүй эсвэл саад тотгорыг хараахан шалгаагүй замыг оролдох болно.

Робот нь тогтмол гүйдлийн хөдөлгүүртэй хоёр дугуй, хоёр дугуйгаар хөдөлнө. Моторууд нь дугуй тавцангийн ёроолд бэхлэгдэх болно. Хөдөлгүүрийг хоёр мотор жолооч удирдана. Мотор драйверууд Zynq процессороос ХОУХШ -ийн командыг хүлээн авах болно. Мотор тус бүрийн кодчилогчийг тээврийн хэрэгслийн байршил, чиглэлийг хянахад ашигладаг. Бүх системийг LiPo батерейгаар тэжээх болно.

Алхам 1: Тээврийн хэрэгслийг угсрах

Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах
Тээврийн хэрэгслийг угсрах

Робот нь хажуугийн дугуйнд бэхлэгдсэн хоёр мотороор тэжээгддэг бөгөөд урд болон хойд хэсэгт хоёр дугуйгаар бэхлэгддэг. Платформ ба моторын бэхэлгээг хөнгөн цагаан хөнгөн цагаан материалаар хийсэн. Дугуйг хөдөлгүүрт холбохын тулд моторын төв худалдаж авсан. Гэсэн хэдий ч зангилааны нүхний загвар нь дугуйны нүхний загвараас өөр байсан тул захиалгат завсрын холбогч хийх шаардлагатай байв.

Сонгосон мотор нь 12V DC Port Escap кодтой, тогтмол мотор юм. Энэ моторыг ebay дээрээс маш боломжийн үнээр худалдаж авах боломжтой (Билл материалыг үзнэ үү). Моторыг олохын тулд ebay дээрээс "12V Escap 16 Coreless Geared DC Motor Encoders" гэсэн түлхүүр үгийг хайна уу. Ихэвчлэн сонгоход хангалттай хэмжээний худалдагч байдаг. Хөдөлгүүрийн техникийн үзүүлэлтүүд ба холболтыг доорх диаграммд харуулав.

Роботыг угсрах нь явах эд ангиудын CAD горимоор эхэлжээ. Доорх загвар нь явах эд ангиудад зориулагдсан 2D хэлбэрийн профайлын дээд талын зургийг харуулав.

Явах эд ангиудыг хялбархан үйлдвэрлэхийн тулд 2Dprofile хэлбэрээр зохион бүтээхийг санал болгож байна. Бид 12 "X12" хэмжээтэй хөнгөн цагаан хуудсыг усан тийрэлтэт таслагч ашиглан явах эд анги хэлбэртэй болгон хайчилж авав. Явах эд ангийн тавцанг туузан хөрөө ашиглан огтлох боломжтой.

Алхам 2: Мотор суурилуулах

Мотор суурилуулах
Мотор суурилуулах
Мотор суурилуулах
Мотор суурилуулах

Дараагийн алхам бол моторыг бэхлэх явдал юм. Моторын бэхэлгээг 90 градусын металл хөнгөн цагаанаар хийсэн байхыг зөвлөж байна. Энэ хэсгийг ашигласнаар моторыг металлын нэг нүүрэн талд консолоор бэхлэх боломжтой

Мотор болон бусад нүүрний М2 нүхийг тавцан дээр боолтоор бэхлэх боломжтой. Хөдөлгүүрийн бэхэлгээнд нүх өрөмдөх ёстой бөгөөд ингэснээр боолтыг ашиглан хөдөлгүүрийг хөдөлгүүрийн бэхэлгээ, моторын тавцан дээр бэхлэх боломжтой болно. Хөдөлгүүрийн бэхэлгээг дээрх зураг дээрээс харж болно.

Дараа нь Pololu Motor Hub (Материалын хүснэгтийг үзнэ үү) хөдөлгүүрийн гол дээр байрлуулж, тогтоосон шураг болон Аллен түлхүүрээр чангална. Pololu хөдөлгүүрийн зангилааны нүхний загвар нь VEX дугуйны нүхний загвартай тохирохгүй байгаа тул завсрын холбогчийг тусгайлан хийх ёстой. Явах эд ангиудын тавцан хийхэд ашигладаг хөнгөн цагаан төмрийн хаягдлыг холбогч хийхэд ашиглахыг зөвлөж байна. Энэ хосуудын нүхний хэв маяг, хэмжээсийг доорх зурагт үзүүлэв. Гаалийн хөнгөн цагаан холбогчийн гаднах диаметр ба хэлбэр (тойрог байх шаардлагагүй) нь бүх нүхнүүд хэсэг дээр таарч байвал хамаагүй юм.

Алхам 3: Vivado блок дизайныг бий болгох

Vivado блок дизайныг бий болгох
Vivado блок дизайныг бий болгох
Vivado блок дизайныг бий болгох
Vivado блок дизайныг бий болгох

- Шинэ Vivado төсөл үүсгэж эхлээд Zybo Zynq 7000 Z010 -ийг зорилтот төхөөрөмж болгон сонгоорой.

- Дараа нь шинэ блокны дизайн үүсгэх дээр дарж Zynq IP -ийг нэмнэ үү. Zynq IP дээр давхар товшоод Zynq -д өгсөн XPS тохиргоог импортлоорой. Дараа нь MIO тохиргоо табын дор UART0 -ийг MIO 10..11 -ээр идэвхжүүлээд Timer 0 болон Watchdog таймер идэвхжсэн эсэхийг шалгаарай.

- Блокны загварт хоёр AXI GPIOS нэмнэ. GPIO 0 -ийн хувьд хоёр сувгийг идэвхжүүлж, хоёуланг нь бүх гаралтанд тохируулна уу. GPIO -ийн өргөнийг 1 -ээс 4 бит, сувгийн 2 -оос 12 битийн хувьд тохируулахын тулд эдгээр сувгийг хөдөлгүүрийн чиглэлийг тохируулах, кодлогчын хэмжүүрийн хачигны хэмжээг процессор руу илгээхэд ашиглана. GPIO 1 -ийн хувьд 4 битийн сувгийн өргөн бүхий бүх оролтод зөвхөн нэг суваг тохируулна. Үүнийг кодлогчдоос өгөгдөл хүлээн авахад ашиглах болно. Бүх GPIO портуудыг гадаад болгох.

- Дараа нь хоёр AXI таймер нэмнэ үү. Хоёр таймер дээрх pwm0 портуудыг гадаад болгох. Эдгээр нь хөдөлгүүрийн эргэх хурдыг хянадаг pwms байх болно.

- Эцэст нь блок автоматжуулалт, холболтын автоматжуулалтыг ажиллуулна уу. Танд байгаа блокны загвар нь өгсөн загвартай нийцэж байгаа эсэхийг шалгаарай.

Алхам 4: LiDAR -тай харилцах

Энэхүү LiDAR нь UART -ээр харилцахдаа SCIP 2.0 протоколыг ашигладаг бөгөөд хавсаргасан файл нь протоколыг бүхэлд нь тайлбарласан болно.

LiDAR -тай холбогдохын тулд бид UART0 -ийг ашиглах болно. LiDAR нь тухайн өнцөгт байгаа объект хүртэлх зайг харуулсан 682 өгөгдлийн цэгийг буцаана. LiDAR нь цагийн зүүний эсрэг -30 хэмээс 210 градус хүртэл 0.351 градусын алхамаар сканнерддаг.

- LiDAR -тай бүх харилцаа холбоо ASCI тэмдэгтээр хийгддэг бөгөөд ашигласан форматыг SCIP протоколоос үзнэ үү. Бид LiDAR -ийг асаахын тулд QT командыг илгээж эхэлдэг. Дараа нь бид GS тушаалыг UARTS 64 байтын FIFO -д ft -ээр оруулахын тулд 18 өгөгдлийн цэгийг хүссэн хэд хэдэн удаа илгээдэг. LiDAR -аас буцаасан өгөгдлийг дараа нь SCANdata глобал массивт задлан шинжилж хадгална.

- Хадгалагдсан өгөгдлийн цэг бүр нь 2 байт кодлогдсон өгөгдөл юм. Энэ өгөгдлийг декодер руу дамжуулснаар зайг миллиметрээр буцаана.

Main_av.c файлд та LiDAR -тай холбогдох дараах функцуудыг олох болно

sendLIDARcmd (тушаал)

- Энэ нь оролтын мөрийг UART0 -ээр дамжуулан LiDAR руу илгээх болно

recvLIDARdata ()

- LiDAR руу командыг илгээж өгөгдлийг RECBuffer -д хадгалсны дараа энэ нь өгөгдлийг хүлээн авах болно

requestDistanceData ()

- Энэ функц нь бүх 682 өгөгдлийн цэгийг авах хэд хэдэн тушаалыг илгээнэ. 18 өгөгдлийн цэг бүрийг хүлээн авсны дараа өгөгдлийг задлан шинжилж өгөгдлийн цэгүүдийг үе шаттайгаар хадгалахын тулд parseLIDARinput () дууддаг.

Алхам 5: Саад бэрхшээлтэй сүлжээг хүн амаар дүүргэх

Саад тотгор бүхий хүн амын сүлжээ
Саад тотгор бүхий хүн амын сүлжээ
Саад тотгор бүхий хүн амын сүлжээ
Саад тотгор бүхий хүн амын сүлжээ

Хадгалагдсан GRID бол 2D массив бөгөөд индексийн утга бүр нь байршлыг илэрхийлдэг. Индекс бүрт хадгалагдсан өгөгдөл нь 0 эсвэл 1 байна, ямар ч саад бэрхшээл, саад байхгүй. Индекс бүрийг илэрхийлдэг миллиметр квадрат зайг transport.h файл дахь GRID_SCALE тодорхойлолтоор өөрчилж болно. 2D массивын хэмжээг мөн өөрчилж, GRID_SIZE тодорхойлолтыг өөрчилснөөр тээврийн хэрэгслийг том талбайг сканнердах боломжтой болно.

Зайн өгөгдлийн шинэ багцыг LiDAR -аас скан хийсний дараа updateGrid () гэж нэрлэдэг. Энэ нь SCANdata массивт хадгалагдсан өгөгдлийн цэг бүрийг давтаж, сүлжээнд байгаа ямар индексүүд саад болж байгааг тодорхойлох болно. Тээврийн хэрэгслийн одоогийн чиглэлийг ашиглан мэдээллийн цэг бүрт харгалзах өнцгийг тодорхойлж болно. Саад бэрхшээл хаана байгааг тодорхойлохын тулд харгалзах зайг өнцгийн cos/sin -ээр үржүүлэхэд л хангалттай. Эдгээр хоёр утгыг тээврийн хэрэгслийн одоогийн x ба y байрлалд нэмснээр индексийг саадны сүлжээнд буцаана. Энэ үйлдлээр буцааж өгсөн зайг GRID_SCALE -д хуваах нь индекс бүрийн квадрат зай хэр том болохыг өөрчлөх боломжийг бидэнд олгоно.

Дээрх зургууд нь тээврийн хэрэгслийн одоогийн орчин, үүнээс үүдэлтэй сүлжээг харуулж байна.

Алхам 6: Мотортой харилцах

Хөдөлгүүрийг удирдахын тулд GPIO -ийг эхлүүлэх замаар эхлүүлсэн мотортой холбоо тогтоохын тулд хөдөлгүүрийн эргэх чиглэлийг зааж өгсөн болно. Дараа нь AXI таймер дахь ХОУХШ -ийн үндсэн хаягаар шууд бичих нь цаг хугацаа, үүргийн мөчлөг гэх мэт зүйлийг тохируулах боломжийг олгодог. мотор эргэх хурд.

Алхам 7: Зам төлөвлөлт

Ойрын хугацаанд хэрэгжих болно.

Өмнө тайлбарласан сүлжээ болон моторын функцийг ашиглан A*гэх мэт алгоритмыг хэрэгжүүлэхэд маш хялбар байдаг. Тээврийн хэрэгсэл хөдөлж байхдаа эргэн тойрныхоо газрыг үргэлжлүүлэн судалж, явж буй зам нь хүчинтэй эсэхийг тодорхойлох болно

Зөвлөмж болгож буй: