Практическа роботика и умни „неща“


ФМИ на СУ „Св. Климент Охридски“

Изборен курс, сряда, 9-13 часа, зала 122

Преподавател: Траян Илиев

Практическа роботика и умни „неща“

LeJaRo02

Fig.1. Curiosity robot in action

Интелигентните устройства са навсякъде около нас – автомобилите и домовете стават „умни“, дрехите включват „интелигентни материи“ и незабележимо вградена електроника (wearable electronics), почти всички електроуреди и предмети на бита придобиват способности за комуникация помежду си и с отдалечени услуги „в облака“ (cloud computing). Често взаимодействието става с гласови команди (Amazon Alexa). В крайна сметка цялата тази информация и възможност за контрол стават достъпни за нас през удобен вграден, мобилен или гласов интерфейс от всяко място, по всяко време (consumer application dashboards).

Fig.2. IPTPI mobile control app

Fig.2. IPTPI mobile control app

С помощта на множество практически проекти, курсът запознава с бързо-развиващата се област на „Интернет на нещата“ (Internet of Things – IoT), обслужващата и социална роботика (service and social robotics). Акцентът е върху придобиване на реален опит при реализация на вградени и мрежово свързани устройства и малки роботи (Arduino, Raspberry Pi 2/3/Zero, ESP 8266, Lego, сензори, актуатори и др.) и най-вече върху начина, по който тези устройства комуникират помежду си и със заобикалящия ги свят (социална способност).

IPTPI RPi2 Java Robot

Fig.3. IPTPI RPi2 Java Robot

За да реализираме на практика тези проекти се нуждаем от рамка за моделиране на взаимодействието между устройствата, разглеждани като интелигентни агенти (Intelligent Agents – IA) в рамките на една многоагентна система (Multi-Agent System – MAS). Разглеждат се основните характеристики на интелигентните агенти – автономност, способност за реагиране, проактивност, способност за самообучение (адаптивност), социална способност (езици за комуникация между агенти – ACLs), рационалност, мобилност, както и различни парадигми и архитектури за реализация – йерархична (базирана на планиране), реактивна (Subsumption Architecture), и хибридна. Включено е запознаване с Belief-Desire-Intention (BDI) модел на практически разсъждения като основа за моделиране на света, комуникация и автономно вземане на решения от агентите. Знанията се представят и реферират с помощта на онтологии и Semantic Web W3C стандарти (RDF/RDFS, OWL).

Fig.3. AlphaBot in action

Fig.4. AlphaBot in action

Курсът изгражда цялостна картина на необходимите технологии започвайки от хардуерния слой (практически проекти с Arduino, Raspberry Pi и ESP 8266 + най-различни сензори и актуатори: ултразвукови и инфрачервени за дистанция, оптично масиви за следене на линия, камери, енкодери, двигатели и драйвери, серво- механизми за хващане на предмети и движение на камерата, сензорни TFT екрани и други), през обработката на събитийни потоци в реално време с помощта на микро-контролери и серийна USB (UART), I2C, SPI, комуникация,  софтуерни библиотеки от ниско ниво (Java: LeJOS, Pi4J), до горните слоеве на приложението за реактивна обработка на събития реализирани със Spring Reactor, Akka, Eclipse IoT (Kura, Paho, Californium) платформи.

Fig.4. Building custom game controller

Fig.5. Building custom game controller

Следващите нива в IoT/ Service Robotics архитектурата включват механизми и протоколи за комуникация – Constrained Application Protocol (CoAP), MQ Telemetry Transport (MQTT), HTTP, уеб услуги (REpresentational State Transfer – REST APIs),  „облачни технологии“ (Docker, Kubernetes, Apache Brooklyn, Ansible), бази от данни в реално време (Prometheus, Graphite, InfluxDB, RethinkDB).

Fig.5: LeJaRo - the ultimate Lego® Java™* Robot

Fig.6: LeJaRo – the ultimate Lego® Java™* Robot

Включени са също така и технологии за изграждане на вградени (Java Swing, JavaFX) и мобилни (Angular + TypeScript + Material Design / Ionic) уеб интерфейси и интерактивни „табла за управление“ (dashboards), както и технологии за визуализация и анализ на събития в реално време (Grafana).Целта е освен практическите проекти реализирани по време на упражнения, участниците да сформират екипи за реализиране на собствени роботи/ IoT много-агентни системи и/или компоненти за тях, които да бъдат демонстрирани в края на курса. Дългосрочната цел е сформиране на екип за участие в национални и международни състезания от типа на RoboCup (http://www.robocup.org/), където роботи изпълняват задачи с различна степен на сложност – играят футбол, спасяват хора при бедствия и аварии, кооперират се с хора за изпълнение на задачи у дома, в промишлеността и логистиката.

Информация за някои от роботите, които ще сглобяваме и програмираме по време на курса можете да намерите на адрес: http://robolearn.org/. Кодът е достъпен в GitHub: https://github.com/iproduct/course-social-robotics

 


Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) License.