Материали към лекции

Table of Contents

Lecture 1 – Introduction

  1. The Most Awesome Robots 2015 – https://www.youtube.com/watch/S5AnWzjHtWA
  2. iRobot Roomba® Vacuum Cleaning Robot – http://www.irobot.com/For-the-Home/Vacuum-Cleaning/Roomba.aspx
  3. Raspberry Pi Robotics #2: Zumo Robot – https://www.youtube.com/watch?v=AZSiqj0NZgU
  4. Make: The Latest In Hobby Robotics 05 – http://makezine.com/2011/04/12/the-latest-in-hobby-robotics-05/
  5. E3 2009: Project Natal Milo demo – https://www.youtube.com/watch?v=CPIbGnBQcJY
  6. Microsoft demos the „brains“ behind its new Kinect sensor: skeletal tracking – https://www.youtube.com/watch?v=bdviGrPaQDQ

Lecture 2 – Intelligent Agents

Stages and perspectives in development of agent technology. Distinctive Features and Applications

  • Distinctive Features: Autonomy, Intelligence, Learning/Adaptation, Reactivity, Pro-activity, Communication/Social Ability, Cooperativity, Mobility, Long-term Persistence, Personalization).
  • Types of Agent Applications – Interface/Task/Information/Collaborative/Mobile/Reactive/Hterogenious/Social/Emotional Agents and Avatars.
  1. Intelligent Agents – presentation by Trayan Iliev, IPT, 2015 (.PDF, in Bulgarian).
  2. Intelligent Agents – Distinctive Features and Applications by Trayan Iliev (unpublished paper, .PDF, full version), © IPT – Intellectual Products & Technologies, 2006.
  3. Подход на интелигентните агенти при моделиране на знания и системи (.PDF, in Bulgarian, short version)

Intelligent Agents – Rational agents- AIMA. Different types of agent architectures – table-based, simple reflex, internal state, goal-driven, utility-driven. Agent environments – types and characteristics. Pseudo-code examples

  1. Chapter 02: „Intelligent Agents“ form „Artificial Intelligence: A Modern Approach“ (AIMA) by Stuart Russell and Peter Norvig, 1-st ed.
  2. Chapter 02 (AIMA, 1-st ed.): „Intelligent Agents“ – Stuart Russell’s (Berkeley) course slides in pdf format – PAGE (Perceptions, Actions, Goals, Environment) internal (glassbox) description of IAs, different types of environments and agent architectures.
  3. Chapter 02 (AIMA, 3-rd ed.): „Intelligent Agents“ – Stuart Russell’s (Berkeley) course slides in pdf format – PEAS (Performance Measure, Environment, Actuators, Sensors) external (blackbox) description of IAs, different types of environments and agent architectures.

Planning robots – STRIPS

  1. STRIPS (Stanford Research Institute Problem Solver) is an automated planner developed by Fikes and Nilsson, 1971 in Wikipedia
  2. Chapter 11: „Planning“ form „Artificial Intelligence: A Modern Approach“ by Stuart Russell and Peter Norvig, 2-nd ed.

Reactive Agents – Subsumption Architecture (Brooks, 1986)

  1. Subsumption architecture article in Wikipedia
  2. Brooks, R. A. (1986). A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation, RA-2(1):14-23
  3. A robust layered control system for a mobile robot. A.I. Memo 864, MIT, 1985 (extended version of the paper).
  4. Brooks, R.A. (1990). „Elephants Don’t Play Chess“. Designing Autonomous Agents: Theory and Practice from Biology to Engineering and Back (MIT Press). ISBN 978-0-262-63135-8. Retrieved 2013-11-23

Additional Materials

  1. Additional materials: Presentations, sample Java™ code, and other resources from „Artificial Intelligence: A Modern Approach“ by Stuart Russell and Peter Norvig (http://aima.cs.berkeley.edu/, http://aima.cs.berkeley.edu/instructors.html)
  2. Chapter 07: „Logical Agents“ form „Artificial Intelligence: A Modern Approach“ by Stuart Russell and Peter Norvig, 2-nd ed.

Lectures 3 – 5 – Small Robots Platforms: Lego® Mindstorms® EV3, Raspberry Pi™, Arduino.

Programming Lego® robots in Java®: leJOS – Wifi configuration, using sensors, motors, tools. Accessing EV3 using SSH. Sample programs.

  1. Lego® Mindstorms® official webpage
  3. LeJOS – Java for Lego® Mindstorms® for EV3 download page
  4. LeJOS – Java for Lego® Mindstorms® EV3 Wiki
  5. leJOS EV3 Eclipse plugin download page + Plugin installation tutorial (from menu Help / “Install New Software…”).
  6. IPT LeJaRo Demos – Motor and Audio Demos

Opensource Hardware and Software: Arduino – GPIO, Sensors and Effectors. Communication Protocols (UART, Serial, USB, SPI, I2C). Using Arduino IDE.

Arduino – Installation and Development
  1. Arduino official website
  2. Arduino boards, shields and kits
  3. Download the Arduino Software opensource IDE
  4. Arduino Examples Page
Arduino In Bulgarian
  1. Bulgarian Arduino tutorials, examples, blogs
  2. Книжка туториал „Запознанство с Ардуино“
  3. Наръчник „Ардуино книжка за програмиране“ Наръчник „Ардуино книжка за програмиране“
  4. Ардуино Игрище – примерни схеми и програми за използване на Ардуино в комбинация с различни софтуерни и хардуерни компоненти
Arduino GPIO, SPI and I2C Tutorials
  1. GPIO, SPI and I2C from Userspace, the True Linux Way – presentation by Baruch Siach
  2. Serial Programming WikiBook (including serial programming in Java)
  3. General-purpose input/output (GPIO) in Wikipedia
  4. I²C (Inter-Integrated Circuit) in Wikipedia
  5. Serial Peripheral Interface (SPI) in Wikipedia
Arduino Components
  1. OLIMEX – Bulgarian open hardware Arduino/robotic components development company homepage
  2. Robotev – Arduino/Pi/robotic components homepage

Raspberry Pi™ 2 Model B – an IoT & Robotics Platform with Higher Computational Capabilities. Installing Raspbian. Integration of Different Hardware Modules – LCD, Ultarsound and Infrared Distance Sensors, Motor Drivers, Compass/Gyroscope/Accelerometer. Raspberry Pi – Arduino Integration.

  1. The Pi4J project: Connecting Java to Raspberry Pi
  2. Pin Numbering – Raspberry Pi 2 Model B, Diagram with Broadcom pin numbers
  3. Simple GPIO Control using Pi4J
  4. Raspberry PI 2 B first time Setup (1/2 Hr Process to full GUI and WIFI) – YouTube video
  5. Raspberry Pi™: Basic examples to help you get started with some of the software available in Raspbian
  6. GPIO: Models A+, B+ and Raspberry Pi 2
  7. Raspberry Pi – How to use the GPIO RaspberryPi IV Beginners – – YouTube video
  8. Adafruit’s Raspberry Pi Lesson 4. GPIO Setup
  9. RPi Low-level peripherals
  10. RPi BCM2835 GPIOs functions
  11. RPi GPIO Interface Circuits
  12. RPi Serial Connection
  13. RPi SPI
  14. Gordons Projects – Projects, Fun and Games from Gordon @ Drogon
  15. The GPIO utility from Gordon
  16. Wiring Pi – GPIO Interface library for the Raspberry Pi: Pins from Gordon
  17. Physical Python – Part 1 – tutorial by Quick2Wire
  18. Raspberry Pi and Arduino linked via I2C – tutorial by Quick2Wire
  19. Enabling The I2C Interface On The Raspberry Pi
  20. usb4java: A Java library to access USB devices

Lecture 6 – Internet of Things (IoT). ESP 8266 WiFi SOC. IoT Architectures and Communication Protocols – MQTT, CoAP, AMQP. Device Configuration Protocols – OMA-DM, LWM2M.

  1. What exactly is the „Internet of Things“?
  2. Internet of Things (IoT) – We Are at the Tip of An Iceberg
  3. Internet of Things and its applications – Introduction
  4. Internet of Things – Examples
  5. Standards Drive the Internet of Things
  6. IoT Standards: The Next Generation
  7. IoT protocols landscape
  8. Understanding the Internet of Things Protocols
  9. Internet of Things (IoT) protocols COAP MQTT OSCON2014
  10. Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
  11. Hands on with CoAP and Californium
  12. End-to-end IoT solutions with Java and the Eclipse IoT stack
  13. OMA Lightweight M2M Tutorial
  14. OMA LwM2M Workshop – Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
  15. Hands on with lightweight m2m and Eclipse Leshan
  16. IoT architecture
  17. A reference architecture for the internet of things
  18. A Reference Architecture for IoT
  19. IoT Cloud architecture
  20. ESP8266 and IOT
  21. NodeMCU ESP8266 workshop 1
  22. Build WiFi gadgets using esp8266
  23. SemIoT (Semantic technologies for Internet of Things) – Project Overview

Lecture 7 – Domain Driven Design (DDD) and Reactive IoT & Robot Programming using Spring Reactor, RxJava, RxJS Libraries.

  1. Reactive Java Robotics and IoT – IPT Presentation @ Voxxed Days 2016
  2. IPT High Performance Reactive Programming with JAVA 8 and JavaScript
  3. Programming Multithreaded Applications in Java™ – presentation by Trayan Iliev, IPT, 2015 [PDF, in Bulgarian]
  4. Thinking in Java – 4-th ed. source code from concurrency chapter by Bruce Eckel, MindView.com

Lecture 8 – Human-Computer Interaction (HCI) for Embedded Devices. Design and Development of Easy To Use GUIs for Embedded Devices & Robots with Java Swing/FX.

  1. Introduction to IoT UX
  2. Principles of User Interface Design – Niall Murphy, Embedded Systems Programming, Dec 2000, [PDF]
  3. GUI Programming with Java™ Swing – presentation by Trayan Iliev, IPT, 2015 [PDF, in Bulgarian]
  4. Thinking in Java – 4-th ed. source code from GUI chapter by Bruce Eckel, MindView.com

Lecture 9 – Development of Web Applications for Monitoring and Control of IoT Devices and Robots using Angular 2 & RxJS.

  1. Web Programming with Angular 2, REST and WebSocket – presentation by Trayan Iliev, IPT, 2016 [PDF]


Lecture 10 – Actor Model for building reactive (event-driven, scalable, resilient and adaptive) applications. Akka toolkit for building massively concurrent, distributed, and robust event-driven applications

  • Actors – references, state, behavior, subordinate actors, supervision, interruption. One-For-One Strategy and All-For-One control strategies. Task delegation. Actor references, paths and addresses. Actor lifecycle – DeathWatch.
  • Message passing and receiving – tell, ask, reply. Message routers. Mailboxes.
  • Swapping dynamic behaviors – become and unbecome (State pattern). Finite state machines implementation using actors. Data persistence – processor, view, streams, channel, journal, snapshot store, event sourcing.
  1. Akka framework homepage
  2. Introducing Akka – presentation by Jonas Bonér, Typesafe Inc.
  3. Introducing Akka – Simpler Scalability, Fault-Tolerance, Concurrency & Remoting Through Actors DZone tutorial by Jonas Bonér, Typesafe Inc.
  4. Akka Pi calculation example with added dynamic behaviors – become/unbecome.


Lecture 11 – Computer Vision and Navigation (optional – not included in exam and test)

  1. Ch. 24: Perception form „Artificial Intelligence: A Modern Approach“ 2nd ed. [Russel, S., Norvig, P.]


Lecture 12 – Robot Planning and Object Manipulation

  1. Ch.11: Planning form „Artificial Intelligence: A Modern Approach“ 2nd ed. [Russel, S., Norvig, P.]
  2. Ch.12 Presentation: Planning and Acting in the Real World form „Artificial Intelligence: A Modern Approach“ 2nd ed. [Russel, Norvig]
  3. TDT4136 Logic and Reasoning Systems: Chapter 10 & 11 – Planning [Solbakken, L.]


Lecture 13 – Learning and Adaptive Agents

Presentations from „Artificial Intelligence: A Modern Approach“ by Stuart Russell and Peter Norvig (http://aima.cs.berkeley.edu/, http://aima.cs.berkeley.edu/instructors.html)

  • Stuart Russell’s (Berkeley) course slides in pdf format:
  1. Ch.18: Learning from Examples
  2. Ch.20a: Learning Probabilistic Models
  3. Ch.20b: Neural Networks


Lecture 14 – FIPA standards for Multi-Agent Systems (MAS). Belief–Desire–Intention (BDI) Model of Agent Practical Reasoning. Agent Communication Languages (ACLs)

  1. Agent Communication Languages – Finin & Labrou, University of Maryland Baltimore County, 1999
  2. FIPA Communicative Acts (CA) presentation by SEC (.PPT)
  3. Agent Based Software Development presentation by Michael Luck, Ronald Ashri and Mark d’Inverno (.PPT)
  4. FIPA Abstract Architecture presentation at London FIPA meeting, January 24-29, 2000, from: TC-A members (.PPT)
  5. FIPA Agents and Platform presentation by M. Cossentino, ICAR – C.N.R. Palermo (.PPT)
  6. FIPA IEEE Standardization Activities – AgentLink.org (.PPT)
  7. Specifying Protocols for Multi-Agent Systems Interaction – Poslad, In ACM Transactions on Autonomous and Adaptive Systems, 2007, Volume 2, Number 4 (.PDF)
  8. FIPA page in Wikipedia (includes links to different FIPA-compliant implementation platforms)
  9. Java Agent DEvelopment Framework (JADE) page in Wikipedia
  10. Introduction of Java Agent Development Environment (JADE) presentation by Po-Cheng Huang (.PPT)


Lecture 15 – Knowledge Representation Using Ontologies. W3C Semantic Web Project. Resource Description Framework (RDF). Web Ontology Language (OWL). Protégé

  1. W3C Semantic Web Technologies – RDF and OWL presentation by Trayan Iliev, IPT – Intellectual Products & Technologies, 2007 (.PDF, in Bulgarian)
  2. Ontology Development 101: A Guide to Creating Your First Ontology by Natalya F. Noy and Deborah L. McGuinness, Stanford University, CA (.PDF)
  3. Protégé – a Java based Ontology development environment provided by Stanford University (supports OWL, RDF, RDFS W3C Semantic Web standards).


Discussion – Agent Perspectives

  1. Agentlink Roadmap: www.agentlink.org