1 of 48

A CROSS-PLATFORM AI APPLICATION FOR HUMAN-ROBOT INTERACTION

Nicolò, Mantovani

Stefano, Ditrani

2 of 48

OUTLINE

  1. Introduction
  2. Background and tools
  3. Architecture
  4. Demo
  5. Conclusion

3 of 48

HOW MUCH DO YOU REALLY KNOW ABOUT THE WORLD YOU LIVE IN?

4 of 48

HTTPS://WWW.YOUTUBE.COM/WATCH?V=9YFL83L3D8U�

VIDEO

5 of 48

INDUSTRIAL VS COLLABORATIVE ROBOTS�

1953 First Teleoperation

experiments

1961 Fondation of Unimation and puma Robot

‘90 New architectures of robots

2000 New generation of Robots

80 Robots used in Production and Automation industrial

6 of 48

WHAT IS A ROBOT?

A robot is a machine

which can sense, plan and act

Artificial Intelligence

Actuators

Sensors

Are appliances considered robots?

7 of 48

FROM PERSONAL COMPUTERS TO PERSONAL ROBOTS

Human Robot Interaction

How Do Robots Interact With Humans?

COGNITIVE HUMAN ROBOT INTERACTION

National Museum Of Korea – Robot Guide

Amazon Robot

PHYSICAL HUMAN ROBOT INTERACTION

WEARABLE AND TELEROBOTICS

8 of 48

Field dedicated to design robotic systems for use by or with humans.

HRI

NOWADAYS

Working together to accomplish a common goal.

From industrial to social robots (healthcare system, education, entertainment and commercial purposes, etc.).

9 of 48

ROBOTICS MARKET

Source: International Federation of Robotics

$50 ml

GLOBAL MARKET FOR

INDUSTRIAL ROBOTS IN 2021

$8.7 ml

GLOBAL MARKET FOR

SERVICE ROBOTICS IN 2021

INCREMENTAL GROWTH GLOBAL MARKET FOR

AI ROBOTS 2021 - 2026

$13.3 ml

TOP GLOBAL SALES OF SERVICE ROBOTS FOR PROFESSIONAL USE 2020

10 of 48

WHO WE ARE

11 of 48

Integrating multiple AI components for Human-Robot Interaction tasks

ROS-BASED PLATFORM: designed for robot using

ROS as communication layer

MODULAR & FLEXIBLE: The system is designed to run on any machine having Docker installed

12 of 48

An Open Teleconference Toolkit for Robotics

MULTI-PLATFORM: designed according to the

model-View-Controller Pattern

OPEN & EXTENSIBLE: The system is designed to be extensible to new voice inputs and to any new services offered by the robot it operates with

13 of 48

NEW GOAL

A flexible and modular robot architecture platform for Human Robot Interaction applications to easily support multiple robot platforms.

Robotics and AI components all together.

14 of 48

BACKGROUND AND TOOLS

15 of 48

TECHNOLOGIES

STRONG DEPENDENCIES BETWEEN

SOFTWARE COMPONENTS

16 of 48

CONTAINERIZATION

CONSISTENT AND ISOLATED ENVIRONMENT

17 of 48

ROBOT OPERATING SYSTEM (ROS)

COMPUTATION GRAPH LEVEL

COMMUNICATION IN ROS

OPEN-SOURCE FRAMEWORK FOR DEVELOPING

AND

USING ROBOTIC SOFTWARE

Nodes: running processes meant to be executable code (single device or distributed)

Topics: named buses over which nodes exchanges data (many-to-many publisher-subscriber pattern)

Messages: data structure exchanged by nodes (customized or primitives)

Master: core of the network and nodes tracker

18 of 48

ROBOT ARCHITECTURE

19 of 48

DOCKER ARCHITECTURE

AI layerAI modules responsible for processing incoming images from the robot camera (according to the different pipelines)

Robot layer �Core of the robot functionalities (i.e., interfaces that communicate with sensors and actuators)

Plan-actions layer�It contains actions and fluents implementation as well as the framework for executing and monitoring plans

20 of 48

DOCKER ARCHITECTURE

AI layerAI modules responsible for processing incoming images from the robot camera (according to the different pipelines)

Robot layer �Core of the robot functionalities (i.e., interfaces that communicate with sensors and actuators)

Plan-actions layer�It contains actions and fluents implementation as well as the framework for executing and monitoring plans

21 of 48

ROBOT LAYER

22 of 48

DOCKER ARCHITECTURE

AI layerAI modules responsible for processing incoming images from the robot camera (according to the different pipelines)

Robot layer �Core of the robot functionalities (i.e., interfaces that communicate with sensors and actuators)

Plan-actions layer�It contains actions and fluents implementation as well as the framework for executing and monitoring plans

23 of 48

AI LAYER – PERSON DETECTION

  • Base network (VGG-16 based)�strong performance in high quality image classification�
  • Auxiliary network�Layers that decrease in size progressively and allow predictions of detections at mutliple scales

  • Weighted loss

  • Fixed priors and IoU (intersection over union)

  • Technologies

SINGLE SHOT MULTIBOX DETECTOR (SSD)

24 of 48

AI LAYER (CONT’D) – FACE DETECTION

 

CASCADE CLASSIFIER

25 of 48

DOCKER ARCHITECTURE

AI layerAI modules responsible for processing incoming images from the robot camera (according to the different pipelines)

Robot layer �Core of the robot functionalities (i.e., interfaces that communicate with sensors and actuators)

Plan-actions layer�It contains actions and fluents implementation as well as the framework for executing and monitoring plans

26 of 48

CLASSICAL

AI APPROACH

PROBLEM SOLVING

PLANS, ACTIONS AND FLUENTS

  • Problem to solve

  • Language: STRIPS, SAS+, PDDL (de facto standard)

  • Planner: algorithm used for solving the search, both informed (BFS, A*) and uninformed (BDS, DFS, IDFS, etc.)

  • Solution: plan

27 of 48

PLANS, ACTIONS AND FLUENTS

PLANA sequence of actions that applied to the initial state led to the goal

 

EXAMPLE

What: AI agent welcomes people detected

Where: in a museum

  1. Sense people;
  2. Welcome people;

 

28 of 48

PLAN-ACTIONS LAYER - PNP

PLAN

1 goto_printer1;

2 sense_personhere;

2 < personhere ?

  1. say_hello :

4 (not personhere) ?

5 >;

6 goto_home;

ROS String message to start plan

1

2

3

29 of 48

PLAN-ACTIONS LAYER - ACTIONS

Increased interoperability between a Plan Execution Monitor (PEM) and actions/fluents�

Actions

  • Start (PEM to PLEXI)
  • Interrupt (PEM to PLEXI)
  • Resume (PEM to PLEXI)
  • End (PLEXI to PEM)

PLEXI (wrapper/proxy)

30 of 48

PLAN-ACTIONS LAYER - FLUENTS

Fluents:

  • getValue (PEM to PLEXI)
  • setValue (PLEXI to PEM)

31 of 48

FLOW EXECUTION

1 sense_mypersonhere;

2 < mypersonhere ?

  1. welcome :

4 (not mypersonhere) ?

5 goto_home;

6 >;

PLAN

32 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

33 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

34 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

35 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

36 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

37 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

38 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

39 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

40 of 48

FLOW EXECUTION

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

VISION

Plan init

PEM publisher a ROS String message to start the action

PNP

NAO module actions starts

NAO-BASED

ROS-BASED

PEM publisher a ROS String message to start the action

ACTIONS

Alerted whenever it should grab images and send to AI layer

PERSON DETECTION

Fuent value set according to the response

PNP

PEM reads fluent value and resume plan execution

Plan end

keep plan execution

ACTIONS

41 of 48

DEMO

42 of 48

GUEST PRESENCE: OWNER BUSY STATUS

43 of 48

DEMO

44 of 48

ROBUST CONDITIONAL PLAN

ROBOT SETTINGS

1 sense_mypersonhere;

2 < mypersonhere ?

welcome :

4 (not mypersonhere) ?

5 >;

1 waitforperson;

2 say_busy;

ROS_MASTER_URI (to MARRtino)

ROS_IP (to DHCP subnet laptop IP)

NAO_URI

ROS-BASED

NAO-BASED

45 of 48

DEMO

  • My laptop
        • Petri Net Plans (PNP)
        • Actions

  • MARRtino (robot)
        • Robot
        • Vision
        • Navigation
        • Speech

  • Third part
        • Person Detection
        • Face Detection
        • Face Expression Recognition

Robust conditional plan

Changes:�

ROS_MASTER_URI (to MARRtino)

ROS_IP (to the DHCP subnet laptop IP)

1 sense_mypersonhere;

2 < mypersonhere ?

  1. welcome :

4 (not mypersonhere) ?

5 >;

46 of 48

ONGOING WORK

47 of 48

CONCLUSION

  • Extend the current architecture to cross-platform
  • Implement new use cases for NAO (new tasks)
  • Integrating new AI modules
  • Update current AI components with state-of-the-art model

48 of 48

THANK YOU

www.reply.com