A CROSS-PLATFORM AI APPLICATION FOR HUMAN-ROBOT INTERACTION
Nicolò, Mantovani
Stefano, Ditrani
OUTLINE
HOW MUCH DO YOU REALLY KNOW ABOUT THE WORLD YOU LIVE IN?
HTTPS://WWW.YOUTUBE.COM/WATCH?V=9YFL83L3D8U�
VIDEO
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
WHAT IS A ROBOT?
A robot is a machine
which can sense, plan and act
Artificial Intelligence
Actuators
Sensors
Are appliances considered robots?
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
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.).
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
WHO WE ARE
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
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
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.
BACKGROUND AND TOOLS
TECHNOLOGIES
STRONG DEPENDENCIES BETWEEN
SOFTWARE COMPONENTS
CONTAINERIZATION
CONSISTENT AND ISOLATED ENVIRONMENT
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
ROBOT ARCHITECTURE
DOCKER ARCHITECTURE
AI layer �AI 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
DOCKER ARCHITECTURE
AI layer �AI 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
ROBOT LAYER
DOCKER ARCHITECTURE
AI layer �AI 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
AI LAYER – PERSON DETECTION
SINGLE SHOT MULTIBOX DETECTOR (SSD)
AI LAYER (CONT’D) – FACE DETECTION
CASCADE CLASSIFIER
DOCKER ARCHITECTURE
AI layer �AI 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
CLASSICAL
AI APPROACH
PROBLEM SOLVING
PLANS, ACTIONS AND FLUENTS
PLANS, ACTIONS AND FLUENTS
PLAN�A sequence of actions that applied to the initial state led to the goal
EXAMPLE
What: AI agent welcomes people detected
Where: in a museum
�
PLAN-ACTIONS LAYER - PNP
PLAN
1 goto_printer1;
2 sense_personhere;
2 < personhere ?
4 (not personhere) ?
5 >;
6 goto_home;
ROS String message to start plan
1
2
3
PLAN-ACTIONS LAYER - ACTIONS
Increased interoperability between a Plan Execution Monitor (PEM) and actions/fluents�
Actions
PLEXI (wrapper/proxy)
PLAN-ACTIONS LAYER - FLUENTS
Fluents:
FLOW EXECUTION
1 sense_mypersonhere;
2 < mypersonhere ?
4 (not mypersonhere) ?
5 goto_home;
6 >;
PLAN
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
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
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
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
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
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
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
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
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
DEMO
GUEST PRESENCE: OWNER BUSY STATUS
DEMO
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
DEMO
Robust conditional plan
Changes:�
ROS_MASTER_URI (to MARRtino)
ROS_IP (to the DHCP subnet laptop IP)
1 sense_mypersonhere;
2 < mypersonhere ?
4 (not mypersonhere) ?
5 >;
ONGOING WORK
CONCLUSION
THANK YOU
www.reply.com