Intelligent devices are all around us - automobils and homes are becoming "intelligent", clothes include "intelligent fabrics" and seamlessly embedded wearable electronics, all types of appliances and everyday "things" are becoming connected, able to communicate with each other, and with the cloud-based services. Ofthen the interaction happens using voice commands (Amazon Alexa). All this information and control capabilities become available to us using convinient embedded, mobile, voice or virtual reality interfaces from every place, whenever needed (consumer application dashboards).
Using multiple practical learning by doing projects the course provides introduction to the rapidly growing areas of Service Robotics and Internet of Things (IoT, smart things). The emphasis is on achievement of first-hand experience by building and programing educational robots and connected "things" using technologies such as C++, Python, Java, Arduino, Raspberry Pi 3/Zero, Lego, ESP 8266/32, WiFi, Bluetooth, MQTT, sensors, actuators, etc.
To implement these projects in practice we need a framework for modelling the interaction between devices, seen as Intelligent Agents (IA) in a Multi-Agent System (MAS). Different distinguishing features of IAs are considered, such as autonomy, re-activity and pro-activity, adaptivity (learning), social ability (Agent Communication Languages - ACLs), rationality, mobility, as well as different kinds of agent implementation architectures - hierarchical (based on planning), reactive (Subsumption Architecture), and hibrid. Belief-Desire-Intention (BDI) model of practical reasoning is introduced as a basis for robots' world modelling, communication, and autonomous decision making. The knowledge is represented and referred using ontologies and Semantic Web W3C standards (RDF/RDFS, OWL).
The course tries to present a holistic picture of the necessary technologies starting with the hardware layer(practical projects with Arduino, Raspberry Pi and ESP 32 + different sensors and actuators: ultrasound and infrared distance sensors, optical arrays for line following, cameras, encoders, motors and drivers, servo-mechanisms for grasping things and camera movement (2D gimbal), sensor TFT screens, etc. The next layers includes the real-time enent streams processing using micro-contrlllers, communication protocols (UART, I2C, SPI, etc.), software libraries (WireingPi, LeJOS, Pi4J), up to higher application levels for reactive event processing implemented with Spring Reactor, Akka, Eclipse IoT (Kura, Paho, Californium) platforms.