Мазмұны:
- 1 -қадам: Жабдық
- 2 -қадам: MATLAB орнату
- 3 -қадам: функция: қозғалыс
- 4 -қадам: Функция: кескінді өңдеу
- 5 -қадам: Функция: Картаға түсіру
- 6 -қадам: қатар қою
- 7 -қадам: тестілеу
- 8 -қадам: Қорытынды
Бейне: Roomba Scout Explorer: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Америкалықтардың көптен күткен және мұқият зерттелген жобаларының бірі ретінде Марс роверінің жобалары қызыл планетаның құрлықтары мен беттерін зерттеу мен түсіндіру үшін жоғары технологиялы автономды жүйелердің үнемі дамып келе жатқан өндірісіндегі адамдардың жетістіктеріне айналды. жер. Марс миссиясының құрметіне арналған жеке жобаның бөлігі ретінде біздің мақсатымыз - белгілі бір уақыт кезеңінде автономды түрде әрекет ететін және оған жақын жерде белгілі бір критерийлерге сәйкес әрекет ететін Roomba роботы құру.
Бірегейлікке келетін болсақ, біз роботтың шығу тегін көрсететін әрбір жолды көрсететін диаграмма құруға назар аудардық. Сонымен қатар, робот панорамалық стильде жақын маңдағы объектілердің санын есептей алады.
1 -қадам: Жабдық
-Roomba қосылатын камерамен (белгілі бір аты белгілі)
-Қосылған сервер
-Интернетке қосылған Windows 10 / Mac
-Жарқын платформа
-Қараңғы еден
-Монохроматикалық дизайндағы кез келген қаңғыбас объектілер
2 -қадам: MATLAB орнату
Roomba үшін тапсырмалар мен функциялар жасау үшін сізде Roomba командалары бар арнайы кодтар мен құралдар жиынтығы болуы керек.
MATLAB 2016a және одан әрі жүктелген кезде осы робот файлдары бар қалтаны жасаңыз және төмендегі MATLAB файлын қалтаға салыңыз және қалған Roomba файлдарын орнату үшін оны іске қосыңыз.
Осыдан кейін Ағымдағы қалта терезесінде тінтуірдің оң жақ түймешігімен шертіңіз, тышқанды «Жол қосу» үстіне апарыңыз және «Ағымдағы қалта» түймесін басыңыз. Енді осы файлдардың әрқайсысы бөлмені белсендіру үшін пайдаланылатын жолды орнату керек.
Енді бөлме терезесін орнату үшін пәрмен терезесінде төмендегі пәрменді қолданыңыз:
r = Roomba (#).
# Символы - көрсетілген бөлменің «нөмірі»; алайда, егер сіз жай ғана бөлме тренажерын алғыңыз келсе, келесі пәрменді теріңіз:
r = Roomba (0).
Модельдеу қозғалыс үлгілерін тексеру үшін ұсынылады.
Егер сіз Roomba қандай командаларды орындай алатынын білгіңіз келсе, пәрмен терезесіне келесіні теріңіз:
құжат бөлмесі.
Қосымша ақпарат алу үшін келесі веб -сайтқа кіріңіз:
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
3 -қадам: функция: қозғалыс
Қозғалысқа келетін болсақ, кіреберісте берілген уақыт ішінде бөлмені автоматты түрде жылжыту керек. Робот қозғалысының мақсаты - әр түрлі кедергілер болған кезде оның датчиктері (бамперлер, жарық бамперлері мен жартасты датчиктер) өзгергенде дұрыс әрекет ету. Бұл бөлік барлық Roomba командаларының негізі болады, себебі кейінірек кодқа қосымша мүмкіндіктер қосылады. Кейбір ерекшеліктер қажет болды:
-Зақымдануды азайту үшін робот жылдамдықты төмен жылдамдыққа дейін төмендетуі керек.
-Қияға немесе қабырғаға жақындағанда робот кері бағытта қозғалады және соққы нүктесіне байланысты бұрышын өзгертеді.
-Біраз уақыттан кейін автокөлік тоқтап, айналаны суретке түсіреді
Қолданылатын мәндер тренажерге қатысты екенін ескеріңіз; жабдықтың қателігі үшін тұрақтылық пен есепке алуды қамтамасыз ету үшін нақты роботты пайдалану кезінде бұрылу бұрыштары мен робот сенсорының алдын ала орнатылуы сияқты мәндерді өзгерту керек.
4 -қадам: Функция: кескінді өңдеу
Сұраныс бойынша бізге роботтың камерасына түскен кескіннің (немесе бірнеше суреттің) деректерін өзгерту тапсырылды, оған біз бөлменің суретте көретін заттардың санын «санауды» шештік.
Біз MATLAB -тың ақ фонға қарама -қарсы түске боялған объектілердің шекарасын салу әдістемесін ұстандық. Дегенмен, бұл функция ашық алаңда қиындықтар туғызады, себебі камера әр түрлі пішіндер мен түстерді қабылдайды, нәтижесінде бұл көрсеткіштер өте жоғары болады.
Бұл функция симуляторда жұмыс істей алмайтынын ескеріңіз, себебі камера жоқ; егер әрекет етілсе, тек (:,:, 3) матрицаны қолдануға болатынын мәлімдейтін қате пайда болады.
5 -қадам: Функция: Картаға түсіру
Біз роботтың болғанын қалайтын тағы бір ерекшелігі - ол ортамен тікелей қарым -қатынаста болғандықтан, оның орналасқан жерін картадан шығару. Осылайша, төмендегі код картаны ашуға және роботтың бамперлік сенсорлары басылған әрбір орынды нақтылайтын координат жүйесін құруға тырысады. Бұл жеке тексеруге арналған үш бөліктің ең ұзын бөлігі болды, бірақ соңғы сценарийге қолданған кезде бұл әлдеқайда қарапайым болды.
Функцияның жұмыс уақытының ұзақтығына шектеу қосу үшін while цикліндегі n <20 шегі тестілеу мақсатында пайдаланылды.
Есіңізде болсын, кодтың күрделілігіне байланысты код сегменті ұзақ уақыт жұмыс істеген кезде қателер көп болады; Алдыңғы сынақтардан он қате пайда болғанға дейінгі нүктелер саны сияқты көрінеді.
6 -қадам: қатар қою
Осының бәрі бір файлға орналастырылатындықтан, біз алдыңғы екі қадамның әрқайсысын қосалқы функция ретінде пайдаланып функция құрдық. Соңғы реквизит redux функциясының келесі өзгертулерімен жасалды, ол «recon» деп аталады. MATLAB -ті шатастырмау үшін «есептегіш» және «rombplot3» сценарийлері сәйкесінше «CountR» және «plotr» ендірілген функциялары болып өзгертілді.
Алдыңғы сценарийлерге қарағанда соңғы нұсқада бірнеше өзгерістер енгізілуі керек еді:
-Шығу орны әрқашан қызыл шеңбермен белгіленеді
-Бөлме бамперлерінен тоқтаған сайын, орналасуы қара шеңбермен белгіленеді
-Бөлме сенсорларынан тоқтаған сайын, орналасуы көк шеңбермен белгіленеді
-Бөлме аймақты зерттеуді тоқтатқан сайын оның орналасқан жері жасыл шеңбермен белгіленеді
-Уақыт белгісі нәтижеге кедергі келтіруі мүмкін болғандықтан, суреттер жоғарғы бөлігін алып тастау үшін өзгертіледі
-Сатып алу санының жоғары болуына байланысты шекара объект ретінде саналмайды
-Бірнеше айнымалылар өзгертілді, сондықтан шатастырмау үшін сілтеме үшін жоғарыдағы нұсқаларды қолданыңыз.
7 -қадам: тестілеу
Әрбір жеке компонентке арналған тесттер біршама аралас болды, сондықтан алдын ала орнатылған мәндерді өзгерту қажет болды. Біз жабық жерде роботтың мүмкіндіктерін тексергіміз келген тақырыптық фон әлдеқайда қараңғы еденге қойылған тақтадан тұрды. Сіз заттарды айналаға шашырата аласыз; оларды роботтың қозғалатын аймағына соғылатын немесе алыстататын объектілер ретінде әрекет етуге мәжбүр етіңіз.
Реттелетін уақыт пен негізгі жылдамдықты орнатқаннан кейін, бөлменің қозғалысының сәйкес мінез -құлқын көрсетті, ол әрбір «жартастан» немесе оған еніп бара жатқан объектіден тоқтап, шегініп кетті, сонымен қатар жақын жерде бірдеңені анықтаған кезде баяулады. Қажетті үш метрлік қашықтыққа жеткеннен кейін робот әр 45 градустық аймақты суретке түсіріп, аймақты тоқтатып, бағалауды жалғастырады, ал егер уақыт болса, әрі қарай жалғастырады. Алайда, оның бұрылыстары сұралғаннан үлкен болды, яғни координаталық деректер жасырылады.
Ол тоқтаған сайын координаттар жүйесіндегі орналасуының жуықталған аймағына жаңа нүкте қойылады; алайда, бөлменің бастапқы бағыты картаның дизайнында шешуші рөл атқаратыны атап өтілді. Егер компас функциясын іске асыру мүмкін болса, ол карта дизайнының шешуші бөлігі ретінде қолданылған болар еді.
Функция толық жұмыс істеуге кететін нақты уақыт әрқашан сұралған уақыттан жоғары болады, бұл оның қалпына келуінің бірінде тоқтап қалуға болмайтынын ескереді. Өкінішке орай, кескіндерді санаудың бұл нұсқасында, әсіресе монохроматикалық немесе жарықтығы әр түрлі аймақтарда, өз проблемалары бар; өйткені ол екі реңкті ажыратуға тырысады, ол қажет емес заттарды қабылдауға бейім, демек ол әрқашан есеңгірейтін жоғары сандарға дейін есептеледі.
8 -қадам: Қорытынды
Бұл тапсырма жеңілдік қуаныш әкелген өте қызықты және шығармашылық жұмыс болса да, мен жеке бақылауларым бойынша роботтың кодында да, мінез -құлқында да көптеген қателіктерді көре алдым.
Уақыт циклінде уақыт сипаттамасын қолданудың шектелуі уақыттың жалпы көлемінің қалағаннан ұзағырақ болуына әкеледі; панорама техникасы мен кескінді өңдеу процесі баяу компьютермен жұмыс жасаса немесе бұрын қолданылмаса, ұзаққа созылуы мүмкін. Сонымен қатар, біздің презентацияда қолданылған бөлме бөлмесі тренажермен салыстырғанда, әсіресе қозғалыста көптеген қателіктермен әрекет етті. Өкінішке орай, қолданылған роботта оңға бұрылып, қалағаннан үлкен бұрылыстар жасаған кезде, солға қарай қисайу үрдісі болды. Осы себепті және басқа да көптеген қателіктердің орнын толтыру үшін оның бұрылу бұрыштарына өзгерістер енгізу ұсынылады.
Соған қарамастан, бұл нақты роботтың мінез -құлқына тікелей әсер ету үшін кодтар мен пәрмендерді қолдану үшін қызықты оқу тәжірибесі ретінде әрекет еткен ұзақ, бірақ интеллектуалды ынталандырушы жоба.
Ұсынылған:
Roomba Bot Bulider: 5 қадам (суреттермен)
Roomba Bot Bulider: Bot Builder - бұл бөлме бөлмесі, ол " ұстаушылармен " алдыңғы жағына бекітілген заттар заттарды айналдыра алады. Ондағы код GUI терезесімен бірінші қозғалысты жазуға арналған, оны тінтуірдің бір рет басуымен басқаруға болады. Кейін
MATLAB басқарылатын Roomba: 5 қадам
MATLAB басқарылатын Roomba: Бұл жобаның мақсаты - MATLAB, сонымен қатар өзгертілген iRobot бағдарламаланатын роботы. Біздің топ iRobot -тың көптеген функцияларын қолданатын MATLAB сценарийін құру үшін кодтау дағдыларымызды біріктірді, соның ішінде жартасты сенсорлар, бампер сенсоры
Roomba Explorer: 4 қадам
Roomba Explorer: MATLAB және iRobot -тың Create2 роботын қолдану арқылы бұл жоба белгісіз жердің әр түрлі аймақтарын зерттейді. Біз қауіпті рельефте маневр жасау үшін роботтағы сенсорларды қолдандық. Raspberry Pi -ден фотосуреттер мен бейнелер алу арқылы
Internet Explorer үшін пернелер тіркесімі !!: 4 қадам
Internet Explorer шолғышының пернелер тіркесімі !!: Бұл нұсқаулықта сізге Internet explorer үшін пайдалы бірнеше пернелер тіркесімі көрсетіледі, менің каналыма жазылыңыз, рахмет
Bus Pirate 3EEPROM Explorer тақтасы: 5 қадам
Bus Pirate 3EEPROM Explorer тақтасы: Егер сізде бір күндік автобус қарақшыларының бірі болса, онымен не істейсіз? 3EEPROM зерттеуші тақтасының көмегімен 1 сымды, I2C және SPI EEPROM туралы біліңіз (біз оны THR-EE-PROM деп атаймыз) .EEPROM-бұл деректерді үздіксіз қуатсыз сақтайтын жад микросхемасының түрі