Სარჩევი:

Roomba Parking Pal: 6 ნაბიჯი
Roomba Parking Pal: 6 ნაბიჯი

ვიდეო: Roomba Parking Pal: 6 ნაბიჯი

ვიდეო: Roomba Parking Pal: 6 ნაბიჯი
ვიდეო: পাঁচজন নবীর মৃত্যুর ঘটনা শুনে চোখে পানি চলে এলো | মিজানুর রহমান আজহারী | Mizanur Rahman Azhari | Waz 2024, ნოემბერი
Anonim
Roomba პარკინგი Pal
Roomba პარკინგი Pal

ეს პროექტი იყენებს iRobot პროგრამირებადი ოთახის შექმნას, MATLAB r2018a და MATLAB მობილურს. ამ სამი საშუალების გამოყენების და კოდირების ცოდნისას, ჩვენ დავპროგრამეთ iRobot Create ფერების ინტერპრეტაციისთვის და ბორტ სენსორების გამოყენებით ამოცანების შესასრულებლად. ეს პროექტები დამოკიდებულია Raspberry Pi და MATLAB კომუნიკაციაზე ამ ამოცანების შესასრულებლად.

ნაბიჯი 1: მასალები

მასალები
მასალები
მასალები
მასალები

1. iRobot შექმენით რობოტი

2. MATLAB r2018a

3. ჟოლო პი

4. კამერის მოდული

5. სამგანზომილებიანი დაბეჭდილი კამერის სტაბილიზატორის სტენდი

6. სმარტფონი დაყენებული MATLAB მობილურით

7. ლეპტოპი/კომპიუტერი დაყენებული MATLAB

ნაბიჯი 2: კავშირი

ეს ნაბიჯი არის Raspberry Pi რობოტთან დაკავშირება, მეორე რობოტი თქვენს კომპიუტერთან და სმარტფონის კომპიუტერთან დაკავშირება.

ამ პროცესის უმარტივესი ნაწილია Raspberry Pi- ს თქვენს რობოტთან დაკავშირება, რადგან Raspberry Pi დამონტაჟებულია რობოტის თავზე. რობოტიდან არის კაბელი, რაც თქვენ მხოლოდ უნდა შეაერთოთ Raspberry Pi- ს გვერდით.

შემდეგი ნაბიჯი არის რობოტის კომპიუტერთან დაკავშირება, რათა თქვენ შეძლოთ რობოტის შესრულება ბრძანებების შესასრულებლად. პირველი რაც თქვენ უნდა გააკეთოთ არის თქვენი კომპიუტერის დაკავშირება უკაბელო ქსელთან, რომელსაც ქმნის თქვენი roomba. ახლა, გირჩევთ გამოიყენოთ Mathlab– ში Set Path ხატი ბილიკის დასაყენებლად, რათა MATLAB– დან გამოიყენოთ Roomba ინსტრუმენტების ყუთში არსებული ფუნქციები. რობოტთან მუშაობის დაწყებისას და დამთავრებისას, თქვენ უნდა შეასრულოთ რობოტი "ორი თითით სალამი", რაც იმას ნიშნავს, რომ თქვენ აჭერთ დოკის და წერტილის ღილაკებს ათი წამის განმავლობაში, სანამ შუქი არ ჩაქრება, რომელიც მიუთითებს გათავისუფლებას. თქვენ წარმატებული იყავით ამ მძიმე გადატვირთვისას, თუ გესმით რობოტი თამაშობს მოკლე მასშტაბით. შემდეგ თქვენ უნდა დაუკავშირდეთ roomba– ს კოდის გამოყენებით, როგორიცაა „r = roomba (x)“, სადაც 'x' არის ნომერი, რომელიც მითითებულია თქვენს რობოტზე.

დაბოლოს, თქვენ უნდა ჩამოტვირთოთ MATLAB მობილური ნებისმიერ მობილურ მოწყობილობაზე, რომელსაც გამოიყენებთ ამ პროექტისთვის და ეს პროგრამა ხელმისაწვდომია როგორც Android, ასევე Apple მოწყობილობებზე. მას შემდეგ, რაც პროგრამა დაინსტალირდება, თქვენ მოგიწევთ შესვლა თქვენი სერთიფიკატების გამოყენებით. შემდეგ თქვენ უნდა დაუკავშიროთ ეს მოწყობილობა თქვენს კომპიუტერს, ჩანართის გამოყენებით "მეტი" -> შემდეგ დააწკაპუნეთ "პარამეტრები" -> შემდეგ დააწკაპუნეთ "კომპიუტერის დამატებაზე" ამან უნდა აჩვენოს ეკრანზე ნაჩვენები სურათები ზემოთ. ამის ნახვის შემდეგ შემდეგი ნაბიჯი, რომელიც თქვენ უნდა გაიაროთ, არის მხოლოდ ინფორმაციის შევსება და ჩახშობა, რასაც ის მოითხოვს. წარმატებული დაკავშირების შემდეგ, თქვენ შეძლებთ დარეკოთ თქვენს კომპიუტერში განსაზღვრულ ფუნქციებზე თქვენი რობოტის გასაკონტროლებლად.

ნაბიჯი 3: ლოგიკურად ქმნის MATLAB კოდს სენსორების გამოსაყენებლად

ლოგიკურად ქმნის MATLAB კოდს სენსორების გამოსაყენებლად
ლოგიკურად ქმნის MATLAB კოდს სენსორების გამოსაყენებლად

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

შექმნილია r2018a MATLAB– ში, ეს კოდი იყენებს სტანდარტულ ინსტრუმენტთა ყუთებს, iRobot Create ინსტრუმენტების ყუთს, ასევე MATLAB მობილური ინსტრუმენტების ყუთს. ამ მაგალითში გამოყენებული roomba არის მითითებული როგორც 26 და r = roomba (26) საჭიროა მხოლოდ ერთხელ გაშვება ოთახის ოთახთან სრულად დასაკავშირებლად.

კოდი:

ფუნქცია parkassist (x) თუ x == 1

r = roomba (26) % უკავშირდება roomba- ს

მართალია

r.setDriveVelocity (.05,.05) % ადგენს roomba– ს უფრო ნელ სიჩქარეს

bump = r.getBumpers % იღებს მონაცემებს bump სენსორებიდან

cliff = r.getCliffSensors % იღებს მონაცემებს კლდის სენსორებიდან

light = r.getLightBumpers % იღებს მონაცემებს სინათლის დარტყმის სენსორებიდან

img = r.getImage;% კითხულობს რობოტის კამერას

red_mean = საშუალო (საშუალო (img (:,,, 1))) % კითხულობს წითელი პიქსელების საშუალო რაოდენობას

green_mean = საშუალო (საშუალო (img (:,,, 2))) % კითხულობს მწვანე პიქსელების საშუალო რაოდენობას

blue_mean = საშუალო (საშუალო (img (:,,, 3))) % კითხულობს ლურჯი პიქსელების საშუალო რაოდენობას

თუ bump.front == 1 %კითხულობს წინა დარტყმის სენსორებს

r.stop %აჩერებს roomba

msgbox ('Path Obscured!', 'Parking Assistant Message') % აჩვენებს შეტყობინებას, რომელშიც ნათქვამია, რომ ბილიკი დაფარულია შესვენება % ამთავრებს მარყუჟს

elseif green_mean> 150

r.stop %აჩერებს roomba

cont = questdlg ("გაგრძელება?", "გზა დასრულებულია") %აჩვენებს კითხვების ყუთს გაგრძელების მოთხოვნით

თუ გაგრძელდება == 'დიახ'

parkassist (1) %გადატვირთავს კოდს

სხვა

დასასრული

შესვენება % ამთავრებს მარყუჟს

elseif red_mean> 140

r.turnAngle (45) %აბრუნებს ოთახს 45 გრადუსით

r.timeStart %იწყებს დროის მრიცხველს

მართალია

r.setDriveVelocity (.05,.05) %ადგენს ოთახის სიჩქარეს

დრო = r.timeGet %მიანიჭებს დროს ცვლადს

bump = r.getBumpers % იღებს მონაცემებს bump სენსორებიდან

cliff = r.getCliffSensors % იღებს მონაცემებს კლდის სენსორებიდან

light = r.getLightBumpers % იღებს მონაცემებს სინათლის დარტყმის სენსორებიდან

img = r.getImage;% კითხულობს რობოტის კამერას

red_mean = საშუალო (საშუალო (img (:,,, 1))) % კითხულობს წითელი პიქსელების საშუალო რაოდენობას

green_mean = საშუალო (საშუალო (img (:,,, 2))) % კითხულობს მწვანე პიქსელების საშუალო რაოდენობას

blue_mean = საშუალო (საშუალო (img (:,,, 3))) % კითხულობს ლურჯი პიქსელების საშუალო რაოდენობას

თუ blue_mean> 120

r.move დისტანცია (-0.01) % მოძრაობს ოთახის უკან უკან მითითებული მანძილის სიმღერა თამაში (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % უკრავს მზარდ მუსიკალურ მასშტაბებს

msgbox ('Water Found!', 'Parking Assistant Message') % აჩვენებს შეტყობინებას, რომელშიც ნათქვამია, რომ წყალი ნაპოვნია r.turnAngle (-80) % ბრუნავს ოთახს 80 გრადუსით

შესვენება % მთავრდება მიმდინარე მარყუჟი

elseif light.right წინა> 25 || light.leftFront> 25 %კითხულობს სინათლის დარტყმის სენსორებს

r.moveDistance (-0.01) % გადააქვს ოთახის უკან მითითებული მანძილი

r.turnAngle (-35) % ბრუნავს ოთახს 35 გრადუსით

შესვენება %მთავრდება მიმდინარე მარყუჟი

elseif cliff.right წინა <2500 && cliff.left წინა <2500 %კითხულობს ორივე კლდის სენსორს

r.moveDistance (-0.1) % გადააქვს ოთახის უკან მითითებული მანძილი

r.turnAngle (-80) %ბრუნავს ოთახს 80 გრადუსით

შესვენება % მთავრდება მიმდინარე მარყუჟი

სხვა დროს> = 3

r.stop %აჩერებს roomba

Contin = questdlg ("სადგური თავისუფალია, განაგრძო?", "პარკინგის ასისტენტის შეტყობინება") %ითხოვს გაგრძელდეს თუ არა ოთახის მგზავრობა თუ გაგრძელდება == "დიახ"

r.turnAngle (-90) % ბრუნავს ოთახს 90 გრადუსით

parkassist (1) %გადატვირთავს ფუნქციას

სხვა

r.stop % აჩერებს ოთახს

დასასრული

სხვა

დასასრული

დასასრული

elseif cliff.right წინა <2500 && cliff.left წინა <2500 %კითხულობს ორივე კლდის სენსორს

r.moveDistance (-0.1) %გადააქვს ოთახის უკან მითითებული მანძილი

r.turnAngle (-90) %ბრუნავს ოთახს 90 გრადუსით

elseif cliff.rightFront <2500 %კითხულობს მარჯვენა კლდის სენსორს

r.turnAngle (-5) %ოდნავ აქცევს ოთახს კლდის სენსორის საპირისპირო მიმართულებით

elseif cliff.left წინა <2500 %კითხულობს მარცხენა კლდის სენსორს

r.turnAngle (5) %ოდნავ აქცევს ოთახს კლდის სენსორის საპირისპირო მიმართულებით

სხვა

დასასრული

დასასრული

დასასრული

ნაბიჯი 4: კოდისა და რობოტის ტესტირება

კოდისა და რობოტის ტესტირება
კოდისა და რობოტის ტესტირება
კოდისა და რობოტის ტესტირება
კოდისა და რობოტის ტესტირება
კოდისა და რობოტის ტესტირება
კოდისა და რობოტის ტესტირება

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

ნაბიჯი 5: შეცდომის აღიარება

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

ნაბიჯი 6: დასკვნა

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

გირჩევთ: