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

Өөрийн яст мэлхий роботыг бүтээгээрэй! 7 алхам
Өөрийн яст мэлхий роботыг бүтээгээрэй! 7 алхам

Видео: Өөрийн яст мэлхий роботыг бүтээгээрэй! 7 алхам

Видео: Өөрийн яст мэлхий роботыг бүтээгээрэй! 7 алхам
Видео: SCP-261 Пан-мерное Торговый и эксперимент Войти 261 объявление Де + полный + 2024, Долдугаар сарын
Anonim
Өөрийн Turtlebot роботыг бүтээгээрэй!
Өөрийн Turtlebot роботыг бүтээгээрэй!
Өөрийн Turtlebot роботыг бүтээгээрэй!
Өөрийн Turtlebot роботыг бүтээгээрэй!
Өөрийн Turtlebot роботыг бүтээгээрэй!
Өөрийн Turtlebot роботыг бүтээгээрэй!

Засах:

Програм хангамж, хяналттай холбоотой нэмэлт мэдээллийг энэ линкээс авах боломжтой.

hackaday.io/project/167074-build-your-own-turtlebot-3- нуруу

Кодын шууд холбоос нь:

github.com/MattMgn/foxbot_core

Яагаад энэ төсөл вэ?

Turtlebot 3 бол электроник, робот техник, хиймэл оюун ухаанд гүн гүнзгий нэвтрэх төгс платформ юм! Онцлог шинж чанар, гүйцэтгэлийг алдагдуулахгүйгээр боломжийн бүрэлдэхүүн хэсгүүдээр өөрийн яст мэлхийг алхам алхамаар бүтээхийг танд санал болгож байна. Анхаарах зүйл бол анхны роботыг хамгийн сайн байлгах, түүний модуль, энгийн байдал, нээлттэй эх сурвалжтай олон нийтийн бие даасан навигаци, хиймэл оюун ухаанд зориулсан олон тооны багц юм.

Энэхүү төсөл нь эхлэгчдэд электроник, механик, компьютерийн шинжлэх ухааны талаархи ойлголтыг олж авах, илүү туршлагатай хүмүүст хиймэл оюун ухааны алгоритмыг турших, хөгжүүлэх хүчирхэг платформ олж авах боломж юм.

Энэ төслийн хүрээнд та юу олж мэдэх вэ?

Бүрэн нийцтэй байдлыг баталгаажуулахын тулд ямар чухал механик болон электрон эд ангиудыг анхны ботоос хадгалах ёстойг та олж мэдэх гэж байна.

Бүтээх явцыг нарийвчлан авч үзэх болно: 3D эд анги хэвлэх, угсрах, хэд хэдэн бүрэлдэхүүн хэсгүүдээс эхлээд электроникийг гагнах, нэгтгэхээс эхлээд Arduino дээр код хөрвүүлэх хүртэл. Энэхүү зааварчилгаа нь ROS -тэй танилцахын тулд 'Сайн уу дэлхийн' жишээн дээр төгсгөл болно. Хэрэв ямар нэгэн зүйл ойлгомжгүй санагдаж байвал асуулт асуугаарай.

Хангамж

Электроник:

ROS -ийг ажиллуулах 1 ширхэг дан самбар бүхий компьютер нь Raspberry Pi эсвэл Jetson Nano байж болно

1 x Arduino DUE, та UNO эсвэл MEGA ашиглаж болно

Arduino DUE-ийн тохирох 1 ширхэг прото самбарыг эндээс авах боломжтой

Кодлогчтой 2 х 12V DC мотор (100 эрг / мин сонголт)

1 x L298N мотор драйвер

2 x 5V зохицуулагч

1 x Батерей (жишээ нь 3S/4S LiPo батерей)

2 x ON/OFF унтраалга

2 x LED

2 x 470kOhm эсэргүүцэл

3 x 4 голтой JST холбогч

1 x USB кабель (SBC ба Arduino хооронд дор хаяж нэг)

Мэдрэгч:

1 x Одоогийн мэдрэгч (заавал биш)

1 x 9 Эрх чөлөөний зэрэг IMU (заавал биш)

1 x LIDAR (заавал биш)

Явах эд анги:

16 x Turtlebot модуль хавтан (үүнийг 3D хэвлэх боломжтой)

2 х 65 мм диаметртэй дугуй (6 мм өргөн сонголт)

4 х Nylon spacers 30mm (заавал биш)

20 x M3 оруулга (заавал биш)

Бусад:

Утас

М2.5 ба М3 шураг ба оруулга

3D принтер эсвэл танд эд ангиудыг хэвлэх боломжтой хүн

Багцтай гар өрөм нь ийм өрөм юм

Алхам 1: Тодорхойлолт

Тодорхойлолт
Тодорхойлолт
Тодорхойлолт
Тодорхойлолт

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

Доод давхарга: хөдөлгүүрийн бүлэг (батерей, мотор хянагч ба мотор), "доод түвшний" электрон төхөөрөмжтэй: Arduino микроконтроллер, хүчдэлийн зохицуулагч, унтраалга …

Дээд давхарга: "өндөр түвшний" электрон төхөөрөмж, тухайлбал дан самбар бүхий компьютер ба LIDAR

Эдгээр давхаргууд нь бүтцийн бат бөх байдлыг хангахын тулд хэвлэсэн эд анги, боолтоор холбодог.

Цахим схем

Схем нь жаахан замбараагүй харагдаж магадгүй юм. Энэ бол бүдүүвч зураг бөгөөд бүх утас, холбогч, прото самбарыг төлөөлдөггүй боловч үүнийг дараах байдлаар уншиж болно.

3000mAh хүчин чадалтай 3S Litihum Ion Polymer батерей нь эхний хэлхээг тэжээдэг бөгөөд энэ нь мотор хянагч самбар (L298N) болон мотор кодлогч болон Arduino -ийн анхны 5V зохицуулагчийг хоёуланг нь тэжээдэг. Энэ хэлхээг асаах/унтраах байдлыг харуулсан LED бүхий унтраалгаар идэвхжүүлдэг.

Ижил зай нь хоёр дахь хэлхээг тэжээдэг бөгөөд оролтын хүчдэлийг 5 В болгон хөрвүүлж, нэг самбар бүхий компьютерийг тэжээдэг. Энд мөн хэлхээг унтраалга болон LED -ээр идэвхжүүлдэг.

LIDAR эсвэл камер гэх мэт нэмэлт мэдрэгчийг Raspberry Pi дээр USB эсвэл CSI портоор шууд нэмж болно.

Механик дизайн

Роботын хүрээ нь 16 ижил хэсгээс бүрдэх бөгөөд 2 дөрвөлжин давхаргыг (28см өргөн) бүрдүүлсэн байна. Олон тооны нүхнүүд нь нэмэлт эд ангиудыг хүссэн газартаа суулгаж, бүрэн модульчлагдсан загварыг санал болгодог. Энэ төслийн хувьд би TurtleBot3 хавтангийн анхны хувилбарыг авахаар шийдсэн боловч дизайн нь нээлттэй эх сурвалжтай тул та тэдгээрийг 3D хэлбэрээр хэвлэх боломжтой.

Алхам 2: Мотор блокны угсралт

Мотор блокийн угсралт
Мотор блокийн угсралт
Мотор блокийн угсралт
Мотор блокийн угсралт
Мотор блокийн угсралт
Мотор блокийн угсралт

Моторын бэлтгэл

Эхний алхам бол мотор эргэх үед чичиргээ, дуу чимээнээс урьдчилан сэргийлэхийн тулд мотор бүрийн эргэн тойронд 1 мм зузаантай хөөс соронзон хальс нэмж оруулах явдал юм.

Хэвлэсэн хэсгүүд

Мотор эзэмшигчийн үр дүнд моторыг дэд хэсэг шиг хоёр хэсгээс бүрдүүлдэг. Хөдөлгүүрийг бэхэлгээнд бэхлэхийн тулд 4 эрэг хийсэн.

Эзэмшигч бүр нь M3 оруулгыг байрлуулсан хэд хэдэн цооногоос бүрдэнэ. Шаардлагатай хэмжээнээс илүү их нүх байгаа тул нэмэлт нүхийг нэмэлт хэсгийг холбоход ашиглаж болно.

3D принтерийн тохиргоо: бүх хэсгийг дараах параметрүүдээр хэвлэв

  • 0.4 мм диаметртэй цорго
  • 15% материалын дүүргэлт
  • 0.2 мм өндөртэй давхарга

Дугуй

Сонгосон дугуйнууд нь наалдамхай байдлыг нэмэгдүүлэх, гулсахгүй гулсах нөхцлийг хангахын тулд резинээр бүрсэн байна. Хавчих боолт нь хөдөлгүүрийн босоо аманд суурилуулсан дугуйг хадгалдаг. Дугуйны диаметр нь жижиг алхам ба газрын жигд бус байдлыг давах хангалттай том хэмжээтэй байх ёстой (эдгээр дугуй нь 65 мм диаметртэй).

Тогтворжилт

Нэг мотор блок хийсний дараа өмнөх үйлдлүүдийг давтаж, дараа нь M3 эрэг ашиглан давхаргад бэхлээрэй.

Алхам 3: Шилжүүлэгч ба кабелийн бэлтгэл

Шилжүүлэгч ба кабелийн бэлтгэл
Шилжүүлэгч ба кабелийн бэлтгэл
Шилжүүлэгч ба кабелийн бэлтгэл
Шилжүүлэгч ба кабелийн бэлтгэл
Шилжүүлэгч ба кабелийн бэлтгэл
Шилжүүлэгч ба кабелийн бэлтгэл

Мотор кабель бэлтгэх

Ерөнхийдөө мотор кодлогч нь нэг талдаа кодлогч ПХБ-ийн ар талыг холбосон 6 зүү холбогч, нөгөө талдаа нүцгэн утсыг багтаасан кабельтай ирдэг.

Та тэдгээрийг өөрийн самбар эсвэл Arduino дээр шууд гагнах боломжтой боловч оронд нь эмэгтэй зүү толгой ба JST-XH холбогч ашиглахыг зөвлөж байна. Тиймээс та тэдгээрийг самбар дээрээ залгаад/салгаж, угсрах ажлыг хөнгөвчлөх боломжтой.

Зөвлөмж: Та утаснуудынхаа эргэн тойронд өргөтгөдөг ханцуйвч болон холболтын ойролцоох агшилтын хоолойн хэсгийг нэмж болно, ингэснээр та "цэвэр" кабель авах болно.

Шилжүүлэгч ба LED

Хоёр цахилгаан хэлхээг идэвхжүүлэхийн тулд 2 LED бэлтгэж, кабелийг солино: эхлээд LED зүү дээр 470kOhm эсэргүүцэл гагнах, дараа нь унтраах зүү дээр LED гагнах. Энд бас резинийг нуухын тулд агшилтын хоолой ашиглаж болно. LED -ийг зөв чиглэлд гагнахдаа болгоомжтой байгаарай! Хоёр шилжүүлэгч/LED кабель авахын тулд энэ үйлдлийг давтана уу.

Чуулган

Өмнө нь хийсэн кабелийг 3D хэвлэсэн харгалзах хэсэгт угсарна. Шилжүүлэгчийг хадгалахын тулд самар ашиглана уу, LED нь цавуу шаарддаггүй, зөвхөн нүхэнд бэхлэхэд хангалттай хүч шаарддаг.

Алхам 4: Цахим самбарыг холбох

Цахим самбаруудын утас
Цахим самбаруудын утас
Цахим самбаруудын утас
Цахим самбаруудын утас
Цахим самбаруудын утас
Цахим самбаруудын утас

Самбарын зохион байгуулалт

Утасны тоог багасгахын тулд Arduino хавтангийн зохион байгуулалтанд тохирсон прото хавтанг ашигладаг. Протоколын дээд талд L298N нь Dupont эмэгтэй толгойтой (Dupont бол 'Arduino шиг' толгой) овоолсон байдаг.

L298N бэлдмэл

Анх L298N самбар нь харгалзах эрэгтэй Dupont толгойтой ирдэггүй, та самбарын доор 9 голтой эгнээ нэмэх хэрэгтэй. Та зураг дээр харж байгаа шиг одоо байгаа нүхнүүдтэй зэрэгцэн 1 мм диаметртэй өрөмдлөгийн цооног бүхий 9 цооног хийх хэрэгтэй. Дараа нь 2 эгнээний харгалзах тээглүүрийг гагнуурын материал, богино утсаар холбоно.

L298N зүү

L298N нь хурд, чиглэлийг хянах 2 сувгаас бүрдэнэ.

Эхний суваг нь IN1, IN2, хоёр дахь нь IN3 ба IN4 гэж нэрлэгддэг 2 дижитал гарцаар дамжих чиглэл

Эхний суваг нь ENA, хоёрдугаарт ENB гэж нэрлэгддэг 1 дижитал гаралтын хурд

Би Arduino-той дараах холболтыг сонгосон.

зүүн мотор: 3 -р зүү дээр IN1, 4 -р зүү дээр IN2, 2 -р зүү дээр ENA

баруун мотор: 5 -р зүү дээр IN3, 6 -р зүү дээр IN4, 7 -р зүү дээр ENB

5V зохицуулагч

L298N нь ихэвчлэн 5V -ийг хангах чадвартай байсан ч гэсэн би жижиг зохицуулагч нэмж өгдөг. Энэ нь Arduino -г VIN порт болон мотор дээрх 2 кодлогчоор тэжээдэг. L298N 5V зохицуулагчийг ашиглан та энэ алхамыг алгасаж болно.

JST холбогч ба кодлогчын холболт

JST-XH 4 холбогч эмэгтэй адаптер ашиглана уу.

  • Зохицуулагчаас 5V
  • Газар
  • хоёр дижитал оролтын порт (жишээ нь: баруун кодлогчын хувьд 34 ба 38, зүүн талд нь 26 ба 30)

Нэмэлт I2C

Та анзаарсан шиг прото самбар дээр нэмэлт 4pin JST холбогч байдаг. Энэ нь I2C төхөөрөмжийг IMU шиг холбоход хэрэглэгддэг бөгөөд та үүнийг хийж, өөрийн портыг нэмж болно.

Алхам 5: Доод давхарга дээр Motor Group ба Arduino

Мотор групп ба доод давхарга дээрх Arduino
Мотор групп ба доод давхарга дээрх Arduino
Мотор групп ба доод давхаргад Arduino
Мотор групп ба доод давхаргад Arduino
Мотор групп ба доод давхаргад Arduino
Мотор групп ба доод давхаргад Arduino

Мотор блок бэхлэх

Доод давхаргыг 8 Turtlebot -ийн хавтангаар угсарсны дараа хөдөлгүүрийн блокуудыг арчлахын тулд 4 M3 боолтыг шууд оруулгад оруулна. Дараа нь та моторын цахилгааны утсыг L298N гаралт, өмнө хийсэн кабелийг JST прото хавтангийн холбогчдод залгаж болно.

Эрчим хүчний хуваарилалт

Цахилгаан хуваарилалтыг хаалт терминалын блок ашиглан хийдэг. Саадны нэг талд XT60 эмэгтэй залгууртай кабелийг шургуулж, LiPo батерейтай холбоно. Нөгөө талаас, өмнө нь гагнаж байсан манай хоёр LED/свич кабелийг боолттой болгосон. Тиймээс хэлхээ бүрийг (Мотор ба Ардуино) өөрийн унтраалга, харгалзах ногоон LED ашиглан идэвхжүүлж болно.

Кабелийн удирдлага

Та маш олон кабелийг хурдан шийдэх хэрэгтэй болно! Эмх замбараагүй байдлыг багасгахын тулд та өмнө нь 3D хэвлэсэн 'хүснэгт' -ийг ашиглаж болно. Ширээн дээр электрон самбараа хоёр талт соронзон хальсаар арчиж, ширээний доор утаснууд чөлөөтэй урсана.

Батерейг арчлах

Роботыг жолоодохдоо батерейг салгахгүйн тулд үсний уян харимхай тууз ашиглаж болно.

Roller caster

Үнэндээ галзуу дугуй биш, харин доод давхаргад 4 боолтоор бэхлэгдсэн энгийн хагас бөмбөрцөг. Энэ нь роботын тогтвортой байдлыг хангахад хангалттай юм.

Алхам 6: Нэг самбар бүхий компьютер ба дээд давхарга дээрх мэдрэгч

Дээд давхарт ганц самбар бүхий компьютер ба мэдрэгч
Дээд давхарт ганц самбар бүхий компьютер ба мэдрэгч
Дээд давхарт байрлах ганц самбар бүхий компьютер ба мэдрэгч
Дээд давхарт байрлах ганц самбар бүхий компьютер ба мэдрэгч
Дээд давхарт байрлах ганц самбар бүхий компьютер ба мэдрэгч
Дээд давхарт байрлах ганц самбар бүхий компьютер ба мэдрэгч

Аль нэг самбартай компьютер сонгох вэ?

Алдарт Raspberry Pi -ийг танд танилцуулах шаардлагагүй, түүний хэрэглээний тохиолдлын тоо роботын салбараас хамаагүй их байна. Гэхдээ Raspberry Pi -ийн хувьд та үүнийг үл тоомсорлож магадгүй илүү хүчтэй өрсөлдөгч бий. Үнэндээ Nvidia-ийн Jetson Nano нь процессороос гадна хүчирхэг 128 цөмт график картыг суулгасан болно. Энэхүү график картыг зураг боловсруулах, мэдрэлийн сүлжээний дүгнэлт гэх мэт тооцооллын өндөр үнэтэй ажлыг түргэсгэх зорилгоор боловсруулсан болно.

Энэ төслийн хувьд би Jetson Nano -ийг сонгосон бөгөөд та хавсаргасан файлуудын дундаас харгалзах 3D хэсгийг олох боломжтой, гэхдээ хэрэв та Raspberry Pi -тэй хамт явахыг хүсвэл энд хэвлэх боломжтой олон тохиолдол байдаг.

5V зохицуулагч

Та роботыг авчрахаар шийдсэн самбараас үл хамааран танд 5V зохицуулагч хэрэгтэй болно. Хамгийн сүүлийн үеийн Raspberry Pi 4 нь хамгийн ихдээ 1.25A шаарддаг боловч Jetson Nano нь 3А хүртэл стресс шаарддаг тул ирээдүйн эд ангиудыг (мэдрэгч, гэрэл, stepper …) тэжээлийн нөөцтэй болгохын тулд Pololu 5V 6A -ийг сонгосон боловч хямд 5V 2A хийх ёстой. ажил. Жетсон нь 5.5 мм -ийн тогтмол гүйдэлтэй баррель ба Пи микро USB ашиглан харгалзах кабелийг аваад зохицуулагчийн гаралт руу гагнана.

LIDAR -ийн зохион байгуулалт

Энд ашигласан LIDAR бол LDS-01 бөгөөд RPLidar A1/A2/A3, YDLidar X4/G4 эсвэл бүр Hokuyo LIDARs гэх мэт бусад 2D LIDAR-ийг ашиглаж болно. Цорын ганц шаардлага бол үүнийг USB -ээр залгаж, бүтцийн дээгүүр байрлуулах ёстой. Хэрэв LIDAR нь сайн төвлөрөөгүй бол SLAM алгоритмаар бүтээсэн газрын зураг нь хананы тооцоолсон байрлал, саад тотгорыг бодит байрлалаас нь өөрчилж магадгүй юм. Түүнчлэн роботын аливаа саад тотгор лазер туяаг гаталж байвал энэ нь алсын хараа, хүрээгээ багасгах болно.

LIDAR холбох

LIDAR нь хэлбэрээ дагадаг 3D хэвлэсэн хэсэг дээр суурилагдсан бөгөөд хэсэг нь өөрөө тэгш өнцөгт хавтан дээр байрладаг (үнэндээ зурган дээрх фанераар хийгдсэн боловч 3D хэвлэх боломжтой). Дараа нь адаптерийн нэг хэсэг нь чуулга нь дээд яст мэлхийн хавтан дээр нейлон тусгаарлагчаар бэхлэх боломжийг олгодог.

Нэмэлт мэдрэгч эсвэл LIDAR -ийг орлуулах камер

Хэрэв та LIDAR -д хэт их мөнгө зарцуулахыг хүсэхгүй байгаа бол (ойролцоогоор 100 долларын үнэтэй) камер хайж үзээрэй: зөвхөн нэг нүдтэй RGB камераар ажилладаг SLAM алгоритмууд байдаг. SBC хоёулаа USB эсвэл CSI камерыг хүлээн авдаг.

Камер нь танд компьютерийн алсын хараа, объект илрүүлэх скриптүүдийг ажиллуулах боломжийг олгоно.

Чуулган

Роботыг хаахаас өмнө кабелийг дээд хавтан дээрх том нүхээр дамжуулна.

  • 5V зохицуулагчаас таны SBC руу холбогдох кабель
  • USB кабель нь Arduino DUE програмчлалын портоос (DC баррельтэй хамгийн ойр) таны SBC -ийн USB порт руу орно.

Дараа нь дээд хавтанг хэдэн арван эрэг шургаар байрлуулна. Таны робот програмчлагдахад бэлэн боллоо, ЗА ГАРАА!

Алхам 7: Үүнийг хөдөлгөе

Arduino -г эмхэтгэх

Өөрийн дуртай Arduino IDE -ийг нээгээд, өөрийн_turtlebot_core гэж нэрлэгддэг төслийн хавтсыг импортлоод дараа нь өөрийн самбар болон холбогдох портыг сонгоод энэ гайхалтай хичээлийг үзнэ үү.

Үндсэн тохиргоог тохируулна уу

Төсөл нь хоёр файлаас бүрдэх бөгөөд нэгийг нь таны роботод тохируулах шаардлагатай. Тиймээс own_turtlebot_config.h -ийг нээж, ямар шугамууд бидний анхаарал шаарддаг болохыг олж мэдье.

#тодорхойлох ARDUINO_DUE // ** ТӨЛБӨР АШИГЛАХГҮЙ БОЛ ЭНЭ МӨРДӨӨ СЭТГЭГДЭХИЙГ **

Мөрийг тайлбарлахгүй бол зөвхөн Arduino DUE -тэй ашиглах ёстой.

#RATE_CONTROLLER_KP 130.0 -ийг тодорхойлно уу.

#RATE_CONTROLLER_KD 5000000000000.0 -ийг тодорхойлох ** ** ЭНЭ ҮНЭГЭЭР тааруулах ** #RATE_CONTROLLER_KI 0.00005 // ** ЭНЭ ҮНЭГЭЭР тааруулах **

Эдгээр 3 параметр нь хүссэн хурдыг хадгалахын тулд PID -ийн ашигладаг ханш хянагчийн ашигт тохирч байна. Зайны хүчдэл, роботын масс, дугуйны диаметр, моторын механик араа зэргээс хамааран тэдгээрийн утгыг өөрчлөх шаардлагатай болно. PID бол сонгодог хянагч бөгөөд та энд дэлгэрэнгүй мэдээлэл өгөхгүй, гэхдээ энэ линк нь танд тохируулах хангалттай оролтыг өгөх ёстой.

/ * Зүүг тодорхойлох */

// мотор A (баруун) const байт motorRightEncoderPinA = 38; // ** PIN NB ОРУУЛАХ ** const байт motorRightEncoderPinB = 34; // ** ТАНЫ ПИН НЭГЭЭР ӨӨРЧЛӨХ ** const байт enMotorRight = 2; // ** ТАНЫ ПИН НБИЙГ ӨӨРЧЛӨХ ** const байт in1MotorRight = 4; // ** ТАНЫ ПИН НБИЙГ ӨӨРЧЛӨХ ** const byte in2MotorRight = 3; // ** ТАНЫ ПИН ТУХАЙ ТӨЛӨӨЛӨХ ** // мотор В (зүүн талд) const байт motorLeftEncoderPinA = 26; // ** PIN NB ОРУУЛАХ ** const байт motorLeftEncoderPinB = 30; // ** ТАНЫ ПИН НЭГЭЭР ӨӨРЧЛӨХ ** const байт enMotorLeft = 7; // ** ТАНЫ ПИН НБИЙГ ӨӨРЧЛӨХ ** const байт in1MotorLeft = 6; // ** ТАНЫ ПИН НБИЙГ ӨӨРЧЛӨХ ** const byte in2MotorLeft = 5; // ** ПИН кодоо өөрчлөх замаар өөрчлөх **

Энэ блок нь L298N ба Arduino хоёрын хоорондох холболтыг тодорхойлдог бөгөөд зүү дугаарыг өөртэйгээ тааруулан өөрчилнө үү. Тохиргооны файлыг хийж дууссаны дараа кодыг эмхэтгэн байршуулна уу!

ROS -ийг суулгаж тохируулна уу

Хэрэв та энэ алхамыг хийсний дараа заавар нь TurtleBot3 -ийн маш сайн гарын авлагад заасантай яг ижил байвал та үүнийг сайтар дагаж мөрдөх хэрэгтэй.

Сайн байна TurtleBot 3 одоо таных болсон бөгөөд та одоо байгаа бүх багц, хичээлүүдийг ROS ашиглан ажиллуулж болно.

За, гэхдээ ROS гэж юу вэ?

ROS гэдэг нь роботын үйлдлийн системийн товчлол бөгөөд энэ нь эхэндээ нэлээд төвөгтэй мэт санагдаж болох ч энэ нь техник хангамж (мэдрэгч ба идэвхжүүлэгч) болон програм хангамж (навигацийн алгоритм, хяналт, компьютерийн алсын хараа …) хоорондын харилцааны хэлбэрийг төсөөлөөд үз дээ. Жишээлбэл, та одоо байгаа LIDAR -ийг өөр загвараар хялбархан сольж болно, учир нь LIDAR бүр ижил LaserScan мессежийг нийтэлдэг. ROS нь робот техникийг өргөн ашигладаг.

Эхний жишээг ажиллуулна уу

ROS -ийн 'Сайн байна уу' гэсэн үг нь таны роботыг алсын компьютерээр дамжуулан ажиллуулах явдал юм. Таны хийхийг хүсч байгаа зүйл бол хөдөлгүүрийг эргүүлэхийн тулд хурдны командыг илгээх явдал юм.

  • алсын компьютер дээр ажилладаг turtlebot_teleop зангилаа нь Twist мессежийг багтаасан "/cmd_vel" сэдвийг нийтэлдэг.
  • Энэ мессежийг ROS мессежийн сүлжээгээр дамжуулан SBC рүү дамжуулдаг
  • цуваа зангилаа нь "/cmd_vel" -ийг Arduino дээр хүлээн авах боломжийг олгодог
  • Arduino нь мессежийг уншиж, мотор тус бүрийн өнцгийн хурдыг роботын хүссэн шугаман ба өнцгийн хурдтай тохируулна.

Энэ үйлдэл нь энгийн бөгөөд дээр дурдсан командын мөрүүдийг ажиллуулснаар хүрч болно! Хэрэв та илүү дэлгэрэнгүй мэдээлэл авахыг хүсвэл видеог үзээрэй.

[SBC]

roscore

[SBC]

rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200

[Алсын компьютер]

экспортлох TURTLEBOT3_MODEL = $ {TB3_MODEL}

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Цааш явахын тулд

Албан ёсны бүх жишээг туршиж үзэхээсээ өмнө та энэ тушаалтай тулгарах бүртээ гарын авлагад байгаа хамгийн сүүлийн зүйлийг мэдэх хэрэгтэй.

roslaunch turtlebot3_bringup turtlebot3_robot.launch

Та энэ тушаалыг өөрийн SBC дээр ажиллуулах хэрэгтэй.

rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200

Хэрэв танд LIDAR байгаа бол холбогдох командыг өөрийн SBC дээр ажиллуулбал миний хувьд LDS01 -ийг доорх мөрөөр ажиллуулна.

roslaunch hls_lfcd_lds_driver hlds_laser.launch

Ингээд л та өөрийн яст мэлхийг бүтээжээ:) Та ROS -ийн гайхалтай чадварыг нээж, алсын хараа, машин сурах алгоритмыг кодчлоход бэлэн байна.

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