Mundarija:

Roomba MATLAB loyihasi: 5 qadam
Roomba MATLAB loyihasi: 5 qadam

Video: Roomba MATLAB loyihasi: 5 qadam

Video: Roomba MATLAB loyihasi: 5 qadam
Video: Roomba Control (ROS & MATLAB) 2024, Noyabr
Anonim
Roomba MATLAB loyihasi
Roomba MATLAB loyihasi

NASA Mars sayyorasi uchun hozirgi rejasi - bu ma'lumot yig'uvchi bo'lish va Mars atrofida aylanib yurish, erga qaytarish uchun tuproq namunalarini to'plash, shunda olimlar sayyorada avvalgi hayot shakllari bor yoki yo'qligini ko'rishlari mumkin. Bundan tashqari, rover tasvirlarni olimlarga qaytarib yuboradi, shunda ular roverni boshqarishda va undagi muammolarni tuzatishda yordam beradi.

Loyihamiz bo'yicha bizning guruhimizning g'oyasi shundaki, rover 2020 yilda Yerdan chiqib ketadigan NASA roveri bilan bir xilda ishlaydi, lekin u erning geografiyasini ham xaritaga kiritadi. Roomba jarliklarni sezishi va yiqilishidan oldin o'zini to'xtata olishi, so'ngra yiqilib shikastlanmasligi uchun zaxiralashi, burilishi va yo'nalishini o'zgartirishi mumkin edi. Bizning loyihamizga kiritilgan boshqa g'oyamiz - bu xonaning o'zi ko'radigan joylarni chizib bera olishi va har safar tsikl tugagandan va uning yo'nalishi tugagandan so'ng uning uchastkasini ko'rsatishi.

Bu ko'rsatma, o'z xonasi uchun bir xil turdagi kod yaratmoqchi bo'lganlar uchun.

1 -qadam: 1 -qadam: Kerakli materiallar

1 -qadam: kerakli materiallar
1 -qadam: kerakli materiallar
1 -qadam: kerakli materiallar
1 -qadam: kerakli materiallar

Sizga kerak bo'ladi:

  1. Xona xonasi
  2. MATLAB
  3. Bu fayl Roomba -ni ishga tushirish uchun
  4. Yassi sirt
  5. "Qoya" vazifasini bajaradigan stol usti

2 -qadam: 2 -qadam: Roomba uchun kodni o'rnatish/olish

2 -qadam: Roomba uchun kodni o'rnatish/olish
2 -qadam: Roomba uchun kodni o'rnatish/olish

Fayllarni kiritgandan so'ng sizning ekraningiz shunday bo'ladi.

3 -qadam: 3 -qadam: Cliff sensorlar/LED chiroqlarini o'rnatish

Bu kod sizning xonangizga aynan qaysi burchakka burilish kerakligini aytadi, batareya haqidagi ma'lumotni tekshiradi, xonangizga qanchalik tez yurish kerakligini aytadi va odamni kameraning kamerasi orqali tekshiradi. Agar u odamni aniqlasa va jarlikdan tushishdan oldin o'zini to'xtatsa, u ham signal beradi.

% ni sinab ko'ring rob.setLEDDigits ('') x = 0; y = 0; teta = 0; to'siq = ; tsikl = 1; AngCorr = @(x) x + 3.059.*X.^0.4205; Rob.getBatteryInfo.percent> 15 rob.setLEDDigits (') rob.setDriveVelocity (0.1) %burilish burchaklarini to'g'rilash funktsiyasi AA_checkperson (rob) rob.beep end %AA_cliffcheck bo'lsa robff sensorini tekshiring.) rob.stop rob.setLEDDigits ('Cliff') pauza (0,5) to'siq (tsikl) = 2; AA_cliffbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) oxiri

4 -qadam: 4 -qadam: to'siqlarni tekshirish

Bu kod xonadagi narsalarni tekshirishga imkon beradi va zarba sezgichining o'zini shikastlamasdan oldin to'xtab qolishini tekshiradi.

%AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Wall') pauza (0,5) to'siq (tsikl) = 1 bo'lsa, yorug'lik sezgichini tekshiring; %Wall AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') pauza (0.5) bo'lsa, Bump Sensor-ni tekshiring. to'siq (tsikl) = 1; %Devor AA_wallbeep (rob) %Zaxiralash va burish rob.moveDistance (-. 15) rob.turnAngle (30) end %Agar hech qanday to'siq bo'lmasa (to'siq) = 0; elseif uzunlik (to'siq) <tsikl to'siq (tsikl) = 0; oxiri

5 -qadam: 5 -qadam: chizma

5 -qadam: chizish
5 -qadam: chizish

Bu kod sizning mehmonxonangizga safarda nimalar bilan duch kelishini aytib beradi. Roomba to'xtatilgandan so'ng, bunday fitna paydo bo'ladi.

%Manzilni oling d = rob.getDistance; agar sikl == 1 teta (tsikl) = 0; x (tsikl) = d.*cosd (teta (tsikl)); % y umumiy masofa x y (tsikl) = d.*sind (teta (tsikl)); % umumiy masofa y boshqa teta (tsikl) = teta (tsikl-1) + rob.getAngle; x (tsikl) = d.*cosd (teta (tsikl)) + x (tsikl-1); x umumiy masofa % y (tsikl) = d.*sind (teta (tsikl)).*d + y (tsikl-1); %umumiy masofa y oxirigacha %buzilish holati rob.getButtons.clean break end %Artish tsikli aylanishi = tsikl + 1; tugatish rob.stop i = 1 uchun: to'siq bo'lsa (i) == 1 %Devor chizig'i (x (i), y (i), 'Marker', 'kvadrat', 'MarkerEdgeColor', 'r') boshqa to'siq bo'lsa (i) == 2 %Cliff uchastkasi (x (i), y (i), 'Marker', 'o', 'MarkerEdgeColor', 'k') oxirgi matn (.9, 0.9, sprintf ('Kvadrat = devor) nCircle = Cliff '),' Birliklar ',' normallashtirilgan ') % Xafagarchilik signalini ushlab turing, haqiqiy rob.beep pauza qiling (3), agar rob.getButtons. toza uzilish oxiri % tutish % rob.stop % ox

Tavsiya: