software engineering challenges for adaptive robotic...
TRANSCRIPT
2013 IEEE International Conference on Robotics and Automation
Software Engineering Challenges for Adaptive Robotic Ecologies
Mauro Dragone, David Swords, G.M.P. O'Hare
2013 IEEE International Conference on Robotics and Automation
RUBICONRobotic UBIquitous COgnitive Network
2.5M, 3 years STREPFunded by FP7 (#269914)
ICT-2009.2.1: Cognitive Systems
and Robotics.
2013 IEEE International Conference on Robotics and Automation
Robotic Ecologies
Many specialized, pervasive, simple “robotic” devicesRobots, sensors, appliances, ...=> Complex services achieved through cooperationIntrinsically modular and expandable (just add new devices...)Extend the type of application that can be realistically envisaged
2013 IEEE International Conference on Robotics and Automation
GOAL: Self-Sustaining Learning for Robotic Ecologies
Reduce need for Reprogramming Configuration Maintenance Supervision
Increase Adaptability Flexibility Robustness Open new application areas
Over time, the ecology adapts tochanges to its environments and touser's needs and improves the wayIt carries out its services
2013 IEEE International Conference on Robotics and Automation
Self-Sustaining Learning Each node of the ecology contributes to a
cooperative self-learning dynamic.
RUBICON uses:• Statistical and computational (neuroscience) learning methods• Recurrent Neural Networks (RNN)• Reservoir Computing (RC) models• Novelty Detection as a Driver for Self-Organisation and Continuous Learning
2013 IEEE International Conference on Robotics and Automation
Control & Software Requirements(the focus of this presentation)
- Coordination: find, execute and monitor cooperative strategies- Provide a base-line “structure” to the learning system- Enable the use of existing functional components- Support highly heterogeneous and distributed systems- Deal with both action and configuration - Deal with resource and temporal and spatial constraints and ...- Work in computational constrained environments- Work in open & dynamic environments
2013 IEEE International Conference on Robotics and Automation
RUBICON Architecture
ConfigurationPlanner
Proxy 1 Proxy n Agent 1
Coordination Level
Proxy/Agent Service Level
Agent m... ...Learning
Layer
CognitiveLayer
IE-802-15.4 KNX
Peis Middleware
goals
feedback
events
2013 IEEE International Conference on Robotics and Automation
PEIS MiddlewarePhysically Embedded Intelligent Systems
Dynamic addition and removal of PEISSmooth integration of robots, sensors, tagged objects, human interfaces...Configuration, dynamic connection and communication between PEISs
using a tuplespace abstraction
http://aass.oru.se/~peis/
2013 IEEE International Conference on Robotics and Automation
Proxies
Proxy Peis components
“represents” and provides
access to less computational
capable components,
e.g. ZigBee Networks,
RFID tags, KNX devices
=> E.g. used to handle
multiple networks
WSAN node
Peis proxy
Sink WSN node
2013 IEEE International Conference on Robotics and Automation
WSANs Proxy
Gateway
TinyOS Network
1*
Proxy-i
...
join/update sense!/actuate!
motes.*
New sensors can join (and be represented in the tuplespace) or leave the RUBICON at running time
2013 IEEE International Conference on Robotics and Automation
Re-configuration of a Peis-component system
A Peis-component has meta-tuples that can be used (set by an external configurator) to define (at run-time) its collaborations.
M. Broxvall, M. Gritti, A. Saffiotti, B.S. Seo, Y.J. Cho. PEIS Ecology: Integrating Robots into Smart Environments. Proc. of the IEEE Int. Conf. on Robotics and Automation (ICRA). Orlando, Florida, May 2006
2013 IEEE International Conference on Robotics and Automation
Configuration PlannerConstraint-Based Representation
Sensors, actuators and human modeled as state variables
2013 IEEE International Conference on Robotics and Automation
Configuration Planner
Architecture of the Configuration Solver: multiple reasoners acton the same temporal network. Each modification is checked through a temporal consistency check
M. Di Rocco, F. Pecora, P. Kumar, and A. Saffiotti. Configuration Planning with Multiple Dynamic Goals. In Proceedings of the AAAI Spring Symposium on Designing Intelligent Robots, Stanford, California, March 2013.
2013 IEEE International Conference on Robotics and Automation
Integration with Functional Robotic Components (ROS)
If everything was a Peis component it would be easy!
Re-use existing, off-the shelf functional components is essential to make our approach feasible.
Functional components come in different languages and with theirown software frameworks (even not component-based, as ROS)
2013 IEEE International Conference on Robotics and Automation
Integration with Functional Robotic Components (ROS): Options
Options enabled by our tools:
1) Create Peis wrappers to ROS components, possibly using generic Peis/ROS bridge → ROS component becomes Peis-enabled
2) Apply Proxy-design pattern with Self-OSGi agent system to control ROS sub-systems Wrapper/proxies to (existing) functional components generated at run-time (alternative to approaches such as Genome-3, BRIDE...)
2013 IEEE International Conference on Robotics and Automation
Integration with Functional Robotic Components (ROS): 1- Wrappers & Bridge
Hybrid PEIS/ROS Components - Good for configuration - but bad for closed-loop control- difficult to apply if nodes are tied to ROS- adds significant overheads to prepare wrappers
Peis
ROS Node+ =
ROS links (e.g. topics, services ...)Peis (for configuration & to bridge across different nodes of the peer-to-peer network)
Configurator
2013 IEEE International Conference on Robotics and Automation
Integration with Functional Robotic Components (ROS): 2 - Self-OSGi
Approach: use an existing component framework to project a common component model across heterogeneous components. Reduce the gap between mainstream software frameworks used in our domain (e.g. universAAL)
OSGiOpenServiceGateway
2013 IEEE International Conference on Robotics and Automation
Self-OSGi Proxy (GoalManager)
• Decouples the component plan requesting a service goal from the component plan providing it• Monitors performances of components (e.g. to trigger component replacement and to give feedback to learning systems)• Functional components can be external to OSGi (e.g. ROS, Peis,...)
2013 IEEE International Conference on Robotics and Automation
Self-OSGi XML Declarative Model
- Dependencies of functional components (their required and provided interfaces) are described declaratively (in XML)- Self-OSGi checks these depedencies without the need for code generation (monitors are instantiated at run-time, by reading the XML, and by re-using the links of the underyling framework, e.g. ROS topics)
amcl
range
<?xml version="1.0" encoding="UTF-8"?><scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" ... name="Amcl"> <implementation class="ucd.selfosgi.ros.ComponentMonitor"/> <property name="?agent" type="String" value="agent to be localized"/> <property name="_process.cmd" type="String" value="roslaunch selfosgi_test_ros_package amcl.launch robot:=?agent"/> <property name="topic.amcl_pose" type="String" value="[?agent/amcl_pose,geometry_msgs/PoseWithCovarianceStamped]"/> <service> <provide interface="ucd.selfosgi.ext.ExternalInterface"/> </service> </scr:component>
2013 IEEE International Conference on Robotics and Automation
Self-OSGi Monitor Example
- Self-OSGi takes care of monitoring the dependencies of the functional component it proxies, and offers an homegeneous API to the system configurator, which can more easily control component wiring, component parameters, and component life-cycle.
amcl range laserGoalMgr
locationestimate
range
range
2013 IEEE International Conference on Robotics and Automation
RUBICON Architecture
ConfigurationPlanner
Proxy 1 Proxy n Agent 1
Coordination Level
Proxy/Agent Service Level
Agent m... ...Learning
Layer
CognitiveLayer
IE-802-15.4 KNX
Peis Middleware
goals
feedback
events
2013 IEEE International Conference on Robotics and Automation
Conclusions and Future Work
Our software integration approach addresses fast re-use of off-the-shelf heterogeneous components and the application of a consistent component model geared toward system adaptation.
To date, we had only evaluated / benchmarked our single layers
Future work will try to evaluate the fully integrated architecture (including the learning methods not discussed in this presentation)
2013 IEEE International Conference on Robotics and Automation
References (fp7rubicon.eu)[1] G. Amato, M. Broxvall, S. Chessa, M. Dragone, C. Gennaro, R. Lopez, L. Maguire, T. M. McGinnity, A. Micheli, A. Renteria, G. M.P. O.Hare, F. Pecora, Robotic UBIquitous COgnitive Network, In: Ambient Intelligence - Software and Applications - 3rd International Symposium on Ambient Intelligence (ISAmI), Salamanca, Spain, 28-30th March, 2012, Series: Advances in Intelligent and SoftComputing, Vol. 153, pp. 191-195. Springer. DOI: 10.1007/978-3-642-28783-1_23.
[2] M. Broxvall, B.S. Seo, W.K.: The peis kernel: A middleware for ubiquitous robotics. In: Proc. of the IROS-07Workshop on Ubiquitous Robotic Space Design and Applications, San Diego, California (2007)
[3] Mathias Broxvall, Marco Gritti, Alessandro Saffiotti, BeomSu Seo, Young-Jo Cho: PEIS Ecology: IntegratingRobots into Smart Environments. ICRA 2006: 212-218
[4] M. Di Rocco, F. Pecora, P. Kumar, and A. Saffiotti. Configuration Planning with Multiple Dynamic Goals. In Proceedings of the AAAI Spring Symposium on Designing Intelligent Robots, Stanford, California, March 2013.
[5] M. Dragone, A BDI model for component & service-based systems: Self -OSGi, In: 10th International Conferenceon Practical Applications of Agents and Multi-Agent Systems (PAAMS), Salamanca, Spain, 28-30th March, 2012.
[6] M. Dragone, D. Swords, S. Abdel Naby, G.M.P. O'Hare and M. Broxvall. A Programming Framework for MultiAgent Coordination of Robotic Ecologies, Tenth International Workshop on Programming Multi-Agent Systems,ProMAS 2012.