Სარჩევი:

შექმენით თქვენი საკუთარი კუს რობოტი!: 7 ნაბიჯი
შექმენით თქვენი საკუთარი კუს რობოტი!: 7 ნაბიჯი

ვიდეო: შექმენით თქვენი საკუთარი კუს რობოტი!: 7 ნაბიჯი

ვიდეო: შექმენით თქვენი საკუთარი კუს რობოტი!: 7 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ივლისი
Anonim
შექმენით თქვენი საკუთარი კუს რობოტი!
შექმენით თქვენი საკუთარი კუს რობოტი!
შექმენით თქვენი საკუთარი კუს რობოტი!
შექმენით თქვენი საკუთარი კუს რობოტი!
შექმენით თქვენი საკუთარი კუს რობოტი!
შექმენით თქვენი საკუთარი კუს რობოტი!

რედაქტირება:

პროგრამული უზრუნველყოფისა და კონტროლის შესახებ დამატებითი ინფორმაცია შეგიძლიათ იხილოთ ამ ბმულზე:

hackaday.io/project/167074-build-your-own-turtlebot-3-backbone

კოდის პირდაპირი ბმული არის:

github.com/MattMgn/foxbot_core

რატომ ეს პროექტი?

Turtlebot 3 არის სრულყოფილი პლატფორმა ელექტრონიკაში, რობოტექნიკაში და ხელოვნური ინტელექტისთვისაც კი! მე გირჩევთ ააწყოთ თქვენი საკუთარი turtlebot ეტაპობრივად ხელმისაწვდომი კომპონენტებით, თვისებების და შესრულების გარეშე. ერთი რამის გათვალისწინებით: საუკეთესო რობოტის დაცვა, მისი მოდულურობა, სიმარტივე და პაკეტების უზარმაზარი რაოდენობა ავტონომიური ნავიგაციისთვის და AI ღია კოდის საზოგადოებიდან.

ეს პროექტი არის შესაძლებლობა დამწყებთათვის შეიძინონ ელექტრონიკის, მექანიკისა და კომპიუტერული მეცნიერებების ცნებები და უფრო გამოცდილთ მიიღონ მძლავრი პლატფორმა ხელოვნური ინტელექტის ალგორითმების შესამოწმებლად და შესაქმნელად.

რას აღმოაჩენთ ამ პროექტში?

თქვენ აპირებთ აღმოაჩინოთ რომელი ძირითადი მექანიკური და ელექტრონული ნაწილები უნდა იყოს დაცული ორიგინალური ბოტიდან სრული თავსებადობის უზრუნველსაყოფად.

მშენებლობის მთელი პროცესი იქნება დეტალური: 3D ნაწილების დაბეჭდვიდან, აწყობიდან და რამდენიმე კომპონენტიდან, ელექტრონიკის შედუღება და ინტეგრირება Arduino– ს კოდის შედგენამდე. ეს ინსტრუქცია დასრულდება "გამარჯობა მსოფლიოს" მაგალითზე, რათა გაეცნოთ ROS- ს. თუ რამე გაურკვეველი გეჩვენებათ, მოგერიდებათ დასვით შეკითხვა!

მარაგები

ელექტრონიკა:

1 x ერთი დაფის კომპიუტერი ROS– ის გასაშვებად, შეიძლება იყოს Raspberry Pi ან Jetson Nano, მაგალითად

1 x Arduino DUE, ასევე შეგიძლიათ გამოიყენოთ UNO ან MEGA

1 x პროტო დაფა, რომელიც შეესაბამება Arduino DUE pin-out, ხელმისაწვდომია აქ

2 x 12V DC ძრავები კოდირებით (100 RPM ვარიანტი)

1 x L298N ძრავის მძღოლი

2 x 5V რეგულატორი

1 x ბატარეა (მაგალითად, 3S/4S LiPo ბატარეა)

2 x ჩართვა/გამორთვა კონცენტრატორები

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 x ბორბლები 65 მმ დიამეტრით (6 მმ სიგანის ვარიანტი)

4 x ნეილონის გამყოფი 30 მმ (სურვილისამებრ)

20 x M3 ჩანართები (სურვილისამებრ)

სხვები:

მავთულები

M2.5 და M3 ხრახნები და ჩანართები

3D პრინტერი ან ვინმე, ვისაც შეუძლია ნაწილების ბეჭდვა თქვენთვის

ხელის საბურღი კომპლექტი საბურღი ბიტი მსგავსი

ნაბიჯი 1: აღწერა

აღწერა
აღწერა
აღწერა
აღწერა

ეს რობოტი არის მარტივი დიფერენციალური დისკი, რომელიც იყენებს 2 ბორბალს პირდაპირ მათ ძრავაზე და როლიკერს, რომელიც უკანა ნაწილშია მოთავსებული რობოტის გადავარდნის თავიდან ასაცილებლად. რობოტი იყოფა ორ ფენად:

ქვედა ფენა: ძრავის ჯგუფთან (ბატარეა, ძრავის კონტროლერი და ძრავები) და "დაბალი დონის" ელექტრონიკა: არდუინოს მიკროკონტროლერი, ძაბვის მარეგულირებელი, კონცენტრატორები …

ზედა ფენა: "მაღალი დონის" ელექტრონული სახელწოდებით ერთჯერადი დაფის კომპიუტერი და LIDAR

ეს ფენები დაკავშირებულია დაბეჭდილ ნაწილებთან და ხრახნებთან, რათა უზრუნველყოს სტრუქტურის სიმტკიცე.

ელექტრონული სქემატური

სქემატურად შეიძლება ცოტა არეული ჩანდეს. ეს არის სქემატური ნახაზი და ის არ წარმოადგენს ყველა მავთულს, კონექტორს და პროტო დაფას, მაგრამ ის შეიძლება წაიკითხოთ შემდეგნაირად:

3S Litihum Ion პოლიმერული ბატარეა 3000mAh სიმძლავრით აძლიერებს პირველ წრეს, ის აძლიერებს როგორც ძრავის კონტროლერის დაფას (L298N), ასევე პირველ 5V რეგულატორს საავტომობილო კოდირებისა და არდუინოსთვის. ეს წრე ჩართულია გადამრთველის საშუალებით LED- ით, რომელიც მიუთითებს მის ON/OFF მდგომარეობაზე.

იგივე ბატარეა ააქტიურებს მეორე წრეს, შეყვანის ძაბვა გარდაიქმნება 5V- ზე, რათა უზრუნველყოს ერთი დაფის კომპიუტერი. აქ ასევე, ჩართულია ჩართვა გადამრთველისა და 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 პინიან კონექტორს, რომელიც აკავშირებს კოდირების PCB- ის უკანა ნაწილს, ხოლო მეორე მხარეს შიშველ მავთულს.

თქვენ გაქვთ შესაძლებლობა პირდაპირ შეაერთოთ ისინი თქვენს პროტო დაფაზე ან თუნდაც თქვენს Arduino– ზე, მაგრამ მე გირჩევთ გამოიყენოთ სამაგიეროდ ქალის სათაურები და JST-XH კონექტორები. ამრიგად, თქვენ შეგიძლიათ შეაერთოთ/გამორთოთ ისინი თქვენს პროტო დაფაზე და გაადვილოთ შეკრება.

რჩევები: თქვენ შეგიძლიათ დაამატოთ გაფართოებადი სამაჯური თქვენს მავთულხლართებზე და შემაერთებელი მილის ნაჭრები კონექტორებთან ახლოს, ამით თქვენ მიიღებთ "სუფთა" კაბელს.

გადამრთველი და LED

ორი დენის სქემის გასააქტიურებლად მოამზადეთ 2 LED და გადამრთველი კაბელი: თავდაპირველად შეაერთეთ 470kOhm რეზისტორი ერთ -ერთ LED პინზე, შემდეგ შეაერთეთ LED ერთ გადამრთველ პინზე. აქ ასევე, თქვენ შეგიძლიათ გამოიყენოთ შეკუმშული მილის ნაჭერი, რომ დამალოთ რეზისტორი შიგნით. ფრთხილად შეაერთეთ LED სწორი მიმართულებით! გაიმეორეთ ეს ოპერაცია ორი გადართვის/led კაბელის მისაღებად.

შეკრება

შეაგროვეთ ადრე დამზადებული კაბელები შესაბამის 3D დაბეჭდილ ნაწილზე. გამოიყენეთ თხილეული გადართვის შესანარჩუნებლად, LED- ები არ საჭიროებს წებოს, უბრალოდ საკმარისი ძალა დააკონკრეტეთ იგი ხვრელში.

ნაბიჯი 4: ელექტრონული დაფების გაყვანილობა

ელექტრონული დაფების გაყვანილობა
ელექტრონული დაფების გაყვანილობა
ელექტრონული დაფების გაყვანილობა
ელექტრონული დაფების გაყვანილობა
ელექტრონული დაფების გაყვანილობა
ელექტრონული დაფების გაყვანილობა

დაფების განლაგება

მავთულხლართების რაოდენობის შესამცირებლად გამოიყენება არტოინოს დაფის განლაგების პროტო დაფა. პროტო დაფის თავზე, L298N არის დაწყობილი Dupont– ის ქალი თავით (Dupont არის „Arduino like“სათაურები).

L298N პრეპარატი

თავდაპირველად, L298N დაფას არ გააჩნია შესაბამისი მამრობითი დიუპონის სათაური, თქვენ უნდა დაამატოთ 9 ქინძისთავები მწკრივის ქვემოთ. თქვენ უნდა გააცნობიეროთ 9 ხვრელი 1 მმ დიამეტრის ბურღვით არსებული ხვრელების პარალელურად, როგორც სურათზე ხედავთ. შემდეგ დააკავშირეთ 2 რიგის შესაბამისი ქინძისთავები შედუღების მასალებით და მოკლე მავთულხლართებით.

L298N pin-out

L298N შედგება 2 არხისგან, რომელიც იძლევა სიჩქარისა და მიმართულების კონტროლს:

მიმართულება 2 ციფრული გამომავალი საშუალებით, სახელწოდებით IN1, IN2 პირველი არხისთვის და IN3 და IN4 მეორეისთვის

სიჩქარე 1 ციფრული გამომავალი საშუალებით, რომელსაც ეწოდება ENA პირველი არხისთვის და ENB მეორე არხისთვის

არდუინოსთან ერთად შევარჩიე შემდეგი პინი:

მარცხენა ძრავა: IN1 პინზე 3, IN2 პინზე 4, ENA პინზე 2

მარჯვენა ძრავა: IN3 პინზე 5, IN4 პინზე 6, ENB პინ 7 -ზე

5V რეგულატორი

მაშინაც კი, თუ l298N ჩვეულებრივ შეუძლია უზრუნველყოს 5V, მე მაინც დავამატებ მცირე რეგულატორს. ის არდუინოს აძლიერებს VIN პორტის საშუალებით და ძრავზე არსებულ 2 კოდირებას. თქვენ შეგიძლიათ გამოტოვოთ ეს ნაბიჯი უშუალოდ ჩაშენებული L298N 5V რეგულატორის გამოყენებით.

JST კონექტორები და Encoder pin-out

გამოიყენეთ 4 ქინძისთავის ქალი JST-XH კონექტორი გადამყვანები, თითოეული კონექტორი შემდეგ უკავშირდება:

  • 5V მარეგულირებელიდან
  • მიწა
  • ორი ციფრული შეყვანის პორტი (მაგალითად: 34 და 38 მარჯვენა კოდირებისთვის და 26 და 30 მარცხენაზე)

დამატებითი I2C

როგორც თქვენ ალბათ შენიშნეთ, პროტო დაფაზე არის დამატებითი 4 პინიანი JST კონექტორი. იგი გამოიყენება I2C მოწყობილობის დასაკავშირებლად IMU– ს მსგავსად, შეგიძლიათ იგივე გააკეთოთ და დაამატოთ საკუთარი პორტიც კი.

ნაბიჯი 5: Motor Group და Arduino ქვედა ფენაზე

Motor Group და Arduino ქვედა ფენაზე
Motor Group და Arduino ქვედა ფენაზე
Motor Group და Arduino ქვედა ფენაზე
Motor Group და Arduino ქვედა ფენაზე
Motor Group და Arduino ქვედა ფენაზე
Motor Group და Arduino ქვედა ფენაზე

საავტომობილო ბლოკების ფიქსაცია

მას შემდეგ, რაც ქვედა ფენა შეიკრიბება 8 Turtlebot– ის ფირფიტებით, უბრალოდ გამოიყენეთ 4 M3 ხრახნი უშუალოდ ჩანართებში საავტომობილო ბლოკების შესანარჩუნებლად. შემდეგ შეგიძლიათ შეაერთოთ საავტომობილო დენის მავთულები L298N გამოსასვლელებთან და ადრე გაკეთებული კაბელები პროტო დაფის JST კონექტორებთან.

დენის განაწილება

ენერგიის განაწილება უბრალოდ ხორციელდება ბარიერის ტერმინალის ბლოკით. ბარიერის ერთ მხარეს, კაბელი XT60 მდედრობითი დანამატით ხრახნიან LiPo ბატარეასთან დასაკავშირებლად. მეორე მხრივ, ჩვენი ორი LED/გადართვის კაბელი, რომელიც ადრე იყო შეკრული, ხრახნიანია. ამრიგად, თითოეული წრე (Motor და Arduino) შეიძლება ჩართული იყოს საკუთარი გადამრთველით და შესაბამისი მწვანე LED- ით.

საკაბელო მენეჯმენტი

სწრაფად მოგიწევთ გაუმკლავდეთ უამრავ კაბელს! არეული ასპექტის შესამცირებლად შეგიძლიათ გამოიყენოთ ადრე დაბეჭდილი "მაგიდა". მაგიდაზე, შეინახეთ ელექტრონული დაფები ორმაგი ცალმხრივი ლენტით და მაგიდის ქვეშ დაუშვით მავთულები თავისუფლად.

ბატარეის შენარჩუნება

რობოტის მართვისას ბატარეის ამოღების თავიდან ასაცილებლად, შეგიძლიათ უბრალოდ გამოიყენოთ თმის ელასტიური ბენდი.

როლიკერი

ეს ნამდვილად არ არის როლიკერი, არამედ მარტივი ნახევარ სფერო, რომელიც დაფიქსირებულია 4 ხრახნით ქვედა ფენაზე. საკმარისია რობოტის სტაბილურობის უზრუნველსაყოფად.

ნაბიჯი 6: ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე

ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე
ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე
ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე
ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე
ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე
ერთი დაფის კომპიუტერი და სენსორები ზედა ფენაზე

რომელი ერთი დაფის კომპიუტერი აირჩიოს?

მე არ მჭირდება წარმოგიდგინოთ ცნობილი Raspberry Pi, მისი გამოყენების შემთხვევები დიდწილად აღემატება რობოტიკის სფეროს. მაგრამ არსებობს ბევრად უფრო ძლიერი გამომწვევი Raspberry Pi– სთვის, რომლის იგნორირებაც შეგიძლიათ. მართლაც, Nvidia– ს Jetson Nano– მ თავისი პროცესორის გარდა გააჩნია მძლავრი 128 ბირთვიანი გრაფიკული ბარათი. ეს კონკრეტული გრაფიკული ბარათი შემუშავებულია ისეთი გამოთვლითი ძვირადღირებული ამოცანების დასაჩქარებლად, როგორიცაა გამოსახულების დამუშავება ან ნერვული ქსელის დასკვნა.

ამ პროექტისთვის მე ავირჩიე Jetson Nano და თქვენ შეგიძლიათ იპოვოთ შესაბამისი 3D ნაწილი თანდართულ ფაილებს შორის, მაგრამ თუ გსურთ Raspberry Pi– სთან ერთად წასვლა, აქ ბევრი დასაბეჭდი შემთხვევაა.

5V რეგულატორი

რა დაფაზეც გადაწყვიტეთ რობოტის შემოტანა, თქვენ გჭირდებათ 5V რეგულატორი. უახლესი Raspberry Pi 4 მოითხოვს 1.25A მაქსიმუმ, მაგრამ Jetson Nano მოითხოვს 3A- მდე სტრესზე, ასე რომ მე ავირჩიე Pololu 5V 6A– ს ძალაუფლების რეზერვი მომავალი კომპონენტებისთვის (სენსორები, განათება, საფეხურები …), მაგრამ ნებისმიერი იაფი 5V 2A უნდა გააკეთოს სამუშაო. Jetson იყენებს 5.5 მმ DC ლულს და Pi მიკრო USB, აიღეთ შესაბამისი კაბელი და შეაერთეთ იგი მარეგულირებელ გამოსავალზე.

LIDAR განლაგება

აქ გამოყენებული LIDAR არის LDS-01, არის სხვა 2D LIDAR, რომელიც შეიძლება გამოყენებულ იქნას როგორც RPLidar A1/A2/A3, YDLidar X4/G4 ან თუნდაც Hokuyo LIDAR. ერთადერთი მოთხოვნა ის არის, რომ ის უნდა იყოს ჩართული USB საშუალებით და განთავსდეს სტრუქტურის ზემოთ. მართლაც, თუ LIDAR არ არის კარგად ორიენტირებული, SLAM ალგორითმის მიერ შექმნილმა რუქამ შეიძლება გადაინაცვლოს კედლების სავარაუდო მდებარეობა და დაბრკოლებები მათი რეალური პოზიციიდან. ასევე თუ რობოტის რაიმე დაბრკოლება გადალახავს ლაზერის სხივს, ის შეამცირებს დიაპაზონს და ხედვის არეს.

LIDAR სამონტაჟო

LIDAR დამონტაჟებულია 3D ბეჭდვით ნაწილზე, რომელიც მის ფორმას მიჰყვება, ნაწილი კი მართკუთხა ფირფიტაზეა (რეალურად პლაივუდზე სურათზე, მაგრამ ასევე შესაძლებელია 3D დაბეჭდვა). შემდეგ ადაპტერის ნაწილი საშუალებას აძლევს ანსამბლს დაფიქსირდეს ზედა turtlebot ფირფიტაზე ნეილონის შუასადებით.

კამერა, როგორც დამატებითი სენსორი ან LIDAR ჩანაცვლება

თუ არ გსურთ ძალიან ბევრი ფულის დახარჯვა LIDAR– ში (რომლის ღირებულებაა დაახლოებით 100 $), გადადით კამერაზე: ასევე არსებობს SLAM ალგორითმები, რომლებიც მუშაობს მხოლოდ მონოკულარული RGB კამერით. ორივე SBC იღებს USB ან CSI კამერას.

უფრო მეტიც, კამერა საშუალებას მოგცემთ გაუშვათ კომპიუტერის ხედვისა და ობიექტების გამოვლენის სკრიპტები!

შეკრება

რობოტის დახურვამდე გაიარეთ კაბელები ზედა ფირფიტის უფრო დიდ ხვრელებში:

  • შესაბამისი კაბელი 5V რეგულატორიდან თქვენს SBC- მდე
  • USB კაბელი Arduino DUE პროგრამის პორტიდან (უახლოესი DC ლულა) თქვენი SBC USB პორტამდე

შემდეგ დაიჭირეთ ზედა ფირფიტა ათეული ხრახნით. თქვენი რობოტი ახლა მზადაა დასაპროგრამებლად, კარგი!

ნაბიჯი 7: იმოძრავეთ

შეადგინეთ არდუინო

გახსენით თქვენი საყვარელი Arduino IDE და შემოიტანეთ პროექტის საქაღალდე სახელწოდებით own_turtlebot_core, შემდეგ შეარჩიეთ დაფა და შესაბამისი პორტი, შეგიძლიათ მიმართოთ ამ შესანიშნავ გაკვეთილს.

შეცვალეთ ძირითადი პარამეტრები

პროექტი შედგება ორი ფაილისგან და ერთი უნდა იყოს ადაპტირებული თქვენს რობოტზე. მოდით გავხსნათ own_turtlebot_config.h და აღმოვაჩინოთ რომელი ხაზები მოითხოვს ჩვენს ყურადღებას:

#განსაზღვრეთ ARDUINO_DUE // ** კომენტარი გააკეთეთ ამ ხაზზე, თუ თქვენ არ იყენებთ ამის გამო **

უნდა იქნას გამოყენებული მხოლოდ Arduino DUE– ით, თუ არა ხაზზე კომენტარის გაკეთება.

#განსაზღვრეთ RATE_CONTROLLER_KP 130.0 // ** შეაფასეთ ეს ღირებულება **

#განსაზღვრეთ RATE_CONTROLLER_KD 5000000000000.0 // ** TUNE THIS VALUE ** #განსაზღვრეთ RATE_CONTROLLER_KI 0.00005 // ** TUNE THIS VALUE **

ეს 3 პარამეტრი შეესაბამება PID– ის მიერ გამოყენებული სიჩქარის კონტროლერის მიღწევებს სასურველი სიჩქარის შესანარჩუნებლად. ბატარეის ძაბვის, რობოტის მასის, ბორბლის დიამეტრისა და თქვენი ძრავის მექანიკური მექანიზმიდან გამომდინარე, თქვენ დაგჭირდებათ მათი მნიშვნელობების ადაპტირება. PID არის კლასიკური კონტროლერი და თქვენ არ იქნებით დეტალურად აქ, მაგრამ ამ ბმულმა უნდა მოგცეთ საკმარისი საშუალებები თქვენი საკუთარი პარამეტრების შესაცვლელად.

/ * განსაზღვრეთ ქინძისთავები */

// ძრავა A (მარჯვნივ) const byte motorRightEncoderPinA = 38; // ** შეცვალეთ თქვენი PIN NB ** const byte motorRightEncoderPinB = 34; // ** შეცვალეთ თქვენი პინით NB ** const byte enMotorRight = 2; // ** შეცვალეთ თქვენი პინით NB ** const byte in1MotorRight = 4; // ** შეცვალეთ თქვენი პინით NB ** const byte in2MotorRight = 3; // ** შეცვალეთ თქვენი PIN NB ** // ძრავა B (მარცხნივ) const byte motorLeftEncoderPinA = 26; // ** შეცვალეთ თქვენი PIN NB ** const byte motorLeftEncoderPinB = 30; // ** შეცვალეთ თქვენი PIN- ით NB ** const byte enMotorLeft = 7; // ** შეცვალეთ თქვენი PIN- ით NB ** const byte in1MotorLeft = 6; // ** შეცვალეთ თქვენი პინით NB ** const byte in2MotorLeft = 5; // ** შეცვალეთ თქვენი PIN NB **

ეს ბლოკი განსაზღვრავს pinout- ს L298N- სა და Arduino- ს შორის, უბრალოდ შეცვალეთ პინის ნომერი, რომელიც შეესაბამება თქვენსას. როდესაც დაასრულებთ კონფიგურაციის ფაილს, შეადგინეთ და ატვირთეთ კოდი!

დააინსტალირეთ და დააკონფიგურირეთ ROS

მას შემდეგ რაც მიაღწევთ ამ ნაბიჯს, ინსტრუქციები ზუსტად იგივეა, რაც აღწერილია შესანიშნავი TurtleBot3- ის სახელმძღვანელოში, თქვენ უნდა დაიცვათ სკრუპულოზურად

კარგად გაკეთებული TurtleBot 3 ახლა თქვენია და თქვენ შეგიძლიათ გაუშვათ ყველა არსებული პაკეტი და გაკვეთილი ROS– ით.

კარგი, მაგრამ რა არის ROS?

ROS ნიშნავს რობოტების ოპერაციულ სისტემას, ის შეიძლება თავიდან საკმაოდ რთული ჩანდეს, მაგრამ ეს ასე არ არის, უბრალოდ წარმოიდგინეთ ტექნიკის (სენსორების და გამტარებლების) და პროგრამული უზრუნველყოფის (ნავიგაციის, კონტროლის, კომპიუტერული ხედვის ალგორითმები) კომუნიკაციის გზა. მაგალითად, თქვენ შეგიძლიათ მარტივად შეცვალოთ თქვენი ამჟამინდელი LIDAR სხვა მოდელთან კონფიგურაციის გარეშე, რადგან თითოეული LIDAR აქვეყნებს ერთსა და იმავე LaserScan შეტყობინებას. ROS ფართოდ გამოიყენება რობოტიკაში, გაუშვით თქვენი პირველი მაგალითი

ROS– ის „გამარჯობა მსოფლიო“ექვივალენტია დისტანციური კომპიუტერის საშუალებით თქვენი რობოტის ტელეოპერაცია. რისი გაკეთებაც გსურთ, არის სიჩქარის ბრძანებების გაგზავნა ძრავების ბრუნვის მიზნით, ბრძანებები მიჰყვება ამ მილს:

  • turtlebot_teleop კვანძი, რომელიც მუშაობს დისტანციურ კომპიუტერზე, აქვეყნებს "/cmd_vel" თემას Twist შეტყობინების ჩათვლით
  • ეს შეტყობინება გადაეგზავნება ROS შეტყობინებების ქსელის მეშვეობით SBC- ს
  • სერიული კვანძი საშუალებას გაძლევთ მიიღოთ "/cmd_vel" არდუინოზე
  • Arduino კითხულობს შეტყობინებას და ადგენს კუთხის სიჩქარეს თითოეულ ძრავაზე რობოტის სასურველ ხაზოვან და კუთხურ სიჩქარეზე

ეს ოპერაცია მარტივია და მისი მიღწევა შესაძლებელია ზემოთ ჩამოთვლილი ბრძანებების ხაზების გაშვებით! თუ გსურთ უფრო დეტალური ინფორმაცია, უბრალოდ უყურეთ ვიდეოს.

[SBC]

როსკორი

[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– ის ფანტასტიკური შესაძლებლობები და დაარეგისტრიროთ ხედვა და მანქანური სწავლების ალგორითმები.

გირჩევთ: