Мазмуну:

Roomba Scout Explorer: 8 кадам
Roomba Scout Explorer: 8 кадам

Video: Roomba Scout Explorer: 8 кадам

Video: Roomba Scout Explorer: 8 кадам
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Июль
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Көпчүлүк күткөн жана катуу изилденген америкалык долбоорлордун бири катары, Марс роверинин долбоорлору кызыл планетанын кургактыктарын жана беттерин изилдөө жана чечмелөө үчүн жогорку технологиялуу автономдуу системалардын тынымсыз өнүгүшүндө адамдын жетишкендиктери болуп калды. жер. Марстын миссияларына таазим кылуу боюнча дагы жеке долбоордун бир бөлүгү катары, биздин максатыбыз белгилүү бир убакыт аралыгында автономдуу түрдө иштей ала турган жана анын тегерегиндеги кээ бир критерийлерге жараша жооп бере турган Roomba роботун түзүү болчу.

Уникалдуулукка келсек, биз роботтун келип чыгышынын ар бир жолун көрсөткөн диаграмма түзүүгө басым жасадык. Мындан тышкары, робот панорамалык стильде өзүнүн айланасындагы объекттердин санын эсептей алат.

1 -кадам: жабдуулар

-Roomba w/ Тиркелүүчү Камера (белгилүү бир ат менен)

-Туташкан сервер

-Интернет байланышы бар Windows 10 / Mac

-Жарык платформа

-Кара кабат

-Монохроматикалык дизайндагы ар кандай адашкан объекттер

2 -кадам: MATLAB орнотуу

MATLAB орнотуу
MATLAB орнотуу

Roomba үчүн тапшырмаларды жана функцияларды түзүү үчүн, roomba буйруктарын камтыган конкреттүү коддорго жана инструменттерге ээ болушуңуз керек.

MATLAB 2016a жана андан ары жүктөлгөндө, бул робот файлдарын камтыган папканы түзүңүз жана төмөнкү MATLAB файлын папкага салыңыз жана калган Roomba файлдарын орнотуу үчүн иштетиңиз.

Андан кийин, Учурдагы Папка терезесинде оң баскыч менен чыкылдатып, чычканды "Жол кошуу" үстүнө алып барып, "Учурдагы Папканы" чыкылдатыңыз. Эми, бул файлдардын ар бири Roomba активдештирүү үчүн колдонула турган жолду түзүү керек.

Эми, Roomba орнотуу үчүн буйрук терезесиндеги төмөнкү буйрукту колдонуңуз:

r = Roomba (#).

# Белгиси - көрсөтүлгөн Roomba "саны"; Бирок, эгер сиз жөн гана Roomba симуляторун кааласаңыз, жөн гана төмөнкү буйрукту териңиз:

r = roomba (0).

Симуляция кыймыл үлгүлөрүн текшерүү үчүн сунушталат.

Эгер сиз Roomba кайсы буйруктарды аткара аларын билгиңиз келсе, буйрук терезесине төмөнкүлөрдү териңиз:

doc roomba.

Көбүрөөк маалымат алуу үчүн төмөнкү вебсайтка баш багыңыз:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

3 -кадам: Функция: Кыймыл

Функция: Кыймыл
Функция: Кыймыл
Функция: Кыймыл
Функция: Кыймыл

Кыймылга келсек, Roomba кириштерде берилген убакыт ичинде автоматтык түрдө жылышы керек. Роботтун кыймылынын максаты - сенсорлору (бамперлер, жарык бамперлери жана аска сенсорлору) ар кандай тоскоолдуктар болгондо туура реакция кылуу. Бул бөлүк бардык Roomba командаларынын негизи катары иштейт, анткени кийинчерээк кодго көбүрөөк мүмкүнчүлүктөр кошулат. Кээ бир спецификация керек болчу:

-Зыянды азайтуу үчүн робот ылдамдыгын төмөн ылдамдыкка чейин азайтышы керек.

-Жарга же дубалга жакындаганда робот тескери жылат жана бурулушун сокку болгон жерге жараша өзгөртөт.

-Бир аз убакыт өткөндөн кийин, roomba акыры токтойт жана айлананы сүрөткө тартып алат

Колдонулган баалуулуктар симуляторго карата болгонуна көңүл буруңуз; бурулуш бурчтары бурулуш ылдамдыгы жана робот сенсорунун алдын ала орнотуулары сыяктуу баалуулуктар жабдуулардын катасы үчүн туруктуулукту жана эсепке алууну камсыз кылуу үчүн чыныгы роботту колдонууда өзгөртүлүшү керек.

4 -кадам: Функция: Сүрөт иштетүү

Функция: Сүрөт иштетүү
Функция: Сүрөт иштетүү

Сураныч боюнча, бизге роботтун камерасы тарабынан кабыл алынган сүрөттүн (же бир нече сүрөттөрдүн) маалыматтарын өзгөртүү тапшырылды, ага биз бөлмөдө сүрөттө көргөн нерселердин санын "саноону" чечтик.

Биз MATLABтын ак фонго карама -каршы келген карарган нерселердин чектерин чийүү техникасына баш ийдик. Бирок, бул функция камерада кабыл алынган ар кандай формалар жана түстөр болгондуктан, ачык аймакта кыйынчылыктарга дуушар болот, натыйжада адаттагыдан көп сандар пайда болот.

Бул функция симулятордо иштей албайт, анткени камера жок; аракет кылынса, ката пайда болот (:,:, 3) матрицаны гана колдонууга болот.

5 -кадам: Функция: Картага түшүрүү

Функциясы: Картага түшүрүү
Функциясы: Картага түшүрүү
Функциясы: Картага түшүрүү
Функциясы: Картага түшүрүү
Функция: Картага түшүрүү
Функция: Картага түшүрүү
Функциясы: Картага түшүрүү
Функциясы: Картага түшүрүү

Биз роботтун болушун каалаган дагы бир кошумча өзгөчөлүк, анын айлана -чөйрө менен түздөн -түз байланышта болгонун, анын жайгашкан жерин картага түшүрүү болчу. Ошентип, төмөнкү код картаны ачууну жана роботтун бампер сенсорлору басылган ар бир жерди деталдуу координат системасын орнотууну көздөйт. Бул үч бөлүктүн өзүнчө сыноо үчүн эң узун бөлүгү болуп чыкты, бирок акыркы сценарийге колдонулганда бир топ жөнөкөй болуп чыкты.

Функциянын иштөө убактысына чек кошуу үчүн, while циклиндеги n <20 чеги тестирлөө максатында колдонулган.

Эсиңизде болсун, бирок коддун татаалдыгынан улам, код сегментинин узак убакыт бою иштеши менен каталар көп болот; мурунку сыноолордон, он ката олуттуу каталар кетерден мурун упайлардын саны болуп көрүнөт.

6 -кадам: Жанаша жайгашуу

Жанаша жайгашуу
Жанаша жайгашуу
Жанаша жайгашуу
Жанаша жайгашуу
Жанаша жайгашуу
Жанаша жайгашуу
Жанаша жайгашуу
Жанаша жайгашуу

Мунун баары бир файлга жайгаштырыла тургандыктан, биз мурунку эки кадамдын ар бирин субфункция катары колдонуп, функция түздүк. Акыркы реквизит "recec" деп аталган redux функциясына төмөнкүдөй өзгөртүү менен киргизилген. MATLAB чаташтырбоо үчүн, "эсептегич" жана "rombplot3" скрипттери тиешелүүлүгүнө жараша "CountR" жана "plotr" орнотулган функциялары деп өзгөртүлгөн.

Мурунку сценарийлерден айырмаланып акыркы вариантта бир нече өзгөртүүлөрдү киргизүү керек болчу:

-Чыгуу дайыма кызыл тегерек менен белгиленет

-Roomba бамперлеринен токтогон сайын, жайгашкан жери кара тегерек менен белгиленет

-Ар бир жолу бөлмө анын жардыргыч сенсорлорунан токтогондо, жайгашкан жери көк тегерек менен белгиленет

-Ар дайым бөлмө аймакты иликтөөнү токтоткондо, жер жашыл тегерек менен белгиленет

-Сүрөттөр убакыттын штампынын кесепетинен натыйжаларга кийлигише тургандыктан, үстүңкү бөлүгүн алып салуу үчүн өзгөртүлгөн

-Чек аралар көп сандагы объекттер катары эсептелбейт

-Бир нече өзгөрмөлөр өзгөртүлдү, андыктан чаташтырбоо үчүн жогорудагы версияларды маалымдама үчүн колдонуңуз.

7 -кадам: Тестирлөө

Тестирлөө
Тестирлөө

Ар бир жеке компонент үчүн тесттер кээде аралашып кеткендиктен, кээ бир алдын ала коюлган маанилерди өзгөртүү зарыл болгон. Роботтун мүмкүнчүлүктөрүн жабык аймакта сынап көргүбүз келген тематикалык фон бир топ караңгы полго коюлган тактайдан турду. Сиз объекттерди аймактын айланасына чачырата аласыз; аларды роботтун кыймылдуу аймагынан алысыраак нерселерге урунуучу нерселер катары аткарууга мажбур кылыңыз.

Өзүнүн жөнгө салынган убактысын жана базалык ылдамдыгын белгилегенден кийин, бөлмө кыймылдын шайкеш жүрүм -турумун көрсөттү, ар бир "аскадан" же артка чегингенден кийин артка чегинди, ошондой эле жакын жерде бир нерсени байкаганда жайлады. Каалаган үч метр аралыкка жеткенде, робот ар бир 45 градустук аймактын сүрөттөрүн тартып, аймакты токтотууга жана баалоого киришмек жана убакыт берсе, алдыга жылмак. Бирок, анын кезеги талап кылынгандан чоңураак болуп чыкты, башкача айтканда координат маалыматтары көмүскөдө калат.

Ал токтогон сайын координаттар системасындагы абалынын болжолдуу аймагына жаңы чекит коюлду; ошентсе да, бөлмө башталган баштапкы багыт картанын дизайнында негизги ролду ойной тургандыгы белгиленген. Эгерде компастын өзгөчөлүгүн ишке ашыруу мүмкүн болсо, ал картанын дизайнынын чечүүчү бөлүгү катары колдонулмак.

Функциянын толук иштеши үчүн керектүү болгон убакыт ар дайым талап кылынган убакыттан жогору болот, бул анын калыбына келтирүүлөрүнүн биринин ортосунда токтой албасын эске алуу менен мааниге ээ. Тилекке каршы, сүрөттү эсептөөнүн бул версиясынын көйгөйлөрү бар, айрыкча монохроматикалык же жарыктуулугу ар башка аймактарда; анткени ал эки көлөкөнү айырмалоого аракет кылат, ал каалабаган нерселерди кабыл алууга умтулат, демек, ал ар дайым акылга сыйбас сандарга чейин саналат.

8 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

Бул тапшырма кубаныч тартуулаган абдан укмуштуу жана чыгармачыл чыгарма болсо да, мен жеке байкоолорума караганда, роботтун кодунда да, жүрүм -турумунда да көйгөйлүү боло турган көптөгөн каталарды көрө алдым.

Убакыт циклинде убакыт көрсөтмөсүн колдонуунун чектелиши убакыттын жалпы суммасы каалагандан узагыраак болушуна алып келет; панорама техникасы жана сүрөт иштетүү процесси, чынында, жай компьютер менен иштесе же мурда колдонулбаса, көпкө созулушу мүмкүн. Мындан тышкары, биздин презентацияда колдонулган roomba симуляторго салыштырмалуу, айрыкча кыймылда, көптөгөн каталар менен иш кылган. Тилекке каршы, колдонулган робот түз айдап, каалагандан чоңураак бурулуштарды жасагандыктан, солго бир аз таянуу тенденциясына ээ болгон. Ушул жана башка көптөгөн себептерден улам, бул каталардын ордун толтуруу үчүн, анын бурулуш бурчтары үчүн өзгөртүүлөрдү киргизүү сунушталат.

Ошого карабастан, бул чыныгы роботтун жүрүм -турумуна түздөн -түз таасир этүү үчүн коддорду жана буйруктарды колдонуу үчүн кызыктуу үйрөнүү тажрыйбасы катары иштеген, бирок интеллектуалдык стимулдаштыруучу долбоор.

Сунушталууда: