The OpenRDK framework: a not-so-short tutorial Part 1: basic topics Daniele Calisi, Andrea Censi.

Slides:



Advertisements
Similar presentations
An Object/Relational Mapping tool Free and open source Simplifies storage of object data in a relational database Removes the need to write and maintain.
Advertisements

Water Rights Accounting. New Accounting Model New Technology: 1979 versus 2011 – Faster processors – Faster graphics – Larger, faster, memory – Larger,
Distributed Logging in Java with Constrained Resource Usage Sunil Brown Varghese, Daniel Andresen Dept. of Computing and Information Sciences Kansas State.
Web Visualization Technology Horner APG Ver 1.0.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Software development in robotics: frameworks, tools and the OpenRDK D. Calisi.
1 實驗五:媒介存取協定模擬 教師: 助教:. 2 Outline  Background  Transmission Protocols  ALOHA  CSMA/CD  CSMA/CA  Network Devices  Hub  Switch  Access Point (AP)
Two main requirements: 1. Implementation Inspection policies (scheduling algorithms) that will extand the current AutoSched software : Taking to account.
The Player universal driver and the Stage and Gazebo simulators Daniele Calisi.
1 Network Packet Generator Characterization presentation Supervisor: Mony Orbach Presenting: Eugeney Ryzhyk, Igor Brevdo.
The OpenRDK framework: a not-so-short tutorial Part 2: advanced topics Daniele Calisi, Andrea Censi.
A New Soar Debugger in Java Douglas Pearson ThreePenny Software
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
OpenRDK: a modular framework for robotic software development D. Calisi, A. Censi, L. Iocchi, D. Nardi.
Guide To UNIX Using Linux Third Edition
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Functional Simulation Overview1 OpenTV PC Simulator.
Building Workflow Apps Through the Web Nathan Van Gheem -- Wildcard Corp. T. Kim Nguyen -- U. of Wisconsin Oshkosh.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
RMG Study Group Session I: Git, Sphinx, webRMG Connie Gao 9/20/
Introducing Dreamweaver MX 2004
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
DEVSView: A DEVS Visualization Tool Wilson Venhola.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Robotic software development and interoperability using the OpenRDK framework Daniele Calisi, Andrea Censi.
An Introduction to Software Architecture
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Network Analysis with Python
© 2013 IBM Corporation Get started on IBM Linux on Power SDK November 2013.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Capabilities of Software. Object Linking & Embedding (OLE) OLE allows information to be shared between different programs For example, a spreadsheet created.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
A XML 1 An XML Driven Graphical User Interface and Application Management Toolkit Matthias Clausen (DESY & SLAC) Piotr Bartkiewicz (DESY & FPNT/AGH) Alexei.
ReNeW Reference Net Workshop Presenter Yao Sun. The ReNeW Features  High-level Petri Nets (Support Predicate)  Place/Transition Nets  Petri Nets with.
Page 1 Printing & Terminal Services Lecture 8 Hassan Shuja 11/16/2004.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Linux Operations and Administration
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
34 Copyright © 2007, Oracle. All rights reserved. Module 34: Siebel Business Services Siebel 8.0 Essentials.
Hyperion Artifact Life Cycle Management Agenda  Overview  Demo  Tips & Tricks  Takeaways  Queries.
EPICS and LabVIEW Tony Vento, National Instruments
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
THE EYESWEB PLATFORM - GDE The EyesWeb XMI multimodal platform GDE 5 March 2015.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Wednesday NI Vision Sessions
Review of PARK Reflectometry Group 10/31/2007. Outline Goal Hardware target Software infrastructure PARK organization Use cases Park Components. GUI /
Written by : Oren Frenkel Intel Confidential ® C CD SDS.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Amazon Web Services (aws)
3D Slicer module programming
CCNA Routing and Switching Routing and Switching Essentials v6.0
Chapter 10: Device Discovery, Management, and Maintenance
CCNA Routing and Switching Routing and Switching Essentials v6.0
Module 3 Building a web app.
Ch > 28.4.
CANalytics TM CAN Interface Software BY.
Chapter 10: Device Discovery, Management, and Maintenance
An Introduction to Software Architecture
Recitation on AdFisher
Network Analysis using Python
Presentation transcript:

The OpenRDK framework: a not-so-short tutorial Part 1: basic topics Daniele Calisi, Andrea Censi

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March OpenRDK summary Goals  Ease of development fast prototyping concurrent engineering  Ease of debugging (graphical) inspection tools common module structure  Modularity code reuse loosely coupling  Lightweightness and efficiency General information  Written in C++, supports C++ modules  Works on Linux, MacOsX, Windows (Cygwin)  It is Open Source ( )

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March OpenRDK main features and concepts RAgent (Process) Module (Thread) Module (Thread) Module (Thread) Module (Thread) Repository (Blackboard)‏ Properties: rdk://agent2/localizer/odometry (pose) rdk://agent2/localizer/laserScan (scan) rdk://agent2/localizer/estimatedPose (pose) rdk://agent2/navigator/maxSpeed (double) rdk://agent2/mapper/map (map) rdk://agent2/navigator/userInfo (string) … Repository (Blackboard)

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Repository, properties and URLs URL are globally unique Published property roles  Input/Output  Parameters  Debug information, etc. “Subdirectories” Types  Integers, strings, floating- point numbers, etc.  Images, maps  User defined types rdk://agent1/hwInterface/speed rdk://agent1/hwInterface/odometryPose rdk://agent1/hwInterface/robotSerialPort rdk://agent1/hwInterface/currentSpeed … rdk://agent2/localizer/laserScan rdk://agent2/localizer/estimatedPose rdk://agent2/mapper/map rdk://agent2/navigator/maxSpeed rdk://agent2/navigator/speed …

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Configuration and object persistence Specify the initial configuration of each agent: the configuration file  XML format  Contains the list of modules to be instantiated  Contains property (initial) values  Contains connections among modules Can be used to  Load initial module parameters  Save and load module states  Load static inputs (e.g., pre-built maps) Currently it is created in two steps  Add/remove modules using a console (i.e. non graphical) tool  Set property values editing the file by hand

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March An example hwInterface agent1 localizer agent2 mappernavigator repository speed laserScan odometry laserScan odometry estimatedPose robotPose laserScan map robotPose map targetPose speed

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Property links Connect modules Suggested policy  A module creates its own properties during the initialization  A module reads from and writes to its own properties Property links  Connect inputs and outputs of different modules  Are stored in the configuration file  Similar to UNIX symbolic links  Can refer to remote repositories rdk://agent2/localizer/odometry rdk://agent2/localizer/laserScan rdk://agent2/localizer/estimatedPose rdk://agent2/mapper/robotPose rdk://agent2/mapper/laserScan rdk://agent2/mapper/map rdk://agent2/navigator/map rdk://agent2/navigator/robotPose rdk://agent2/navigator/targetPose rdk://agent2/navigator/speed rdk://agent1/hwInterface/laserScan rdk://agent1/hwInterface/odometry

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Property sharing A module, through links, can access remote properties Repository actions:  Requests properties  Publishes them locally Options:  When to send updates  Network protocol Data reconstruction layer  E.g. maps, images, etc. rdk://agent1/hwInterface/laserScan rdk://agent1/hwInterface/odometry rdk://agent2/localizer/odometry rdk://agent2/localizer/laserScan rdk://agent2/localizer/estimatedPose rdk://agent1/hwInterface/laserScan rdk://agent1/hwInterface/odometry Property sharing ON_CHANGE/PERIODIC TCP/UDP …

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March The example revised hwInterface agent1 localizer agent2 mappernavigator repository speed laserScan odometry robotPose laserScan robotPose map targetPose laserScan odometry estimatedPosemap speed

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March The example revised hwInterface agent1 localizer agent2 mapper navigator robotPose targetPose estimatedPose map robotPose odometry laserScan speed

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Tools: RConsole RConsole implementation  Is itself an RAgent  Uses property sharing Can be used for  Remote inspection  Debugging  Parameter tuning  Preliminary GUI building for specific applications

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Case study: concurrent engineering Example: developing the localizer, mapper and navigator modules Three students are assigned one module each Hardware and simulator interface modules are already available First step: interface design (inputs/outputs) hwInterface/speed (in) hwInterface/laserScan (out, queue) hwInterface/odometry (out, queue) localizer/odometry (in, queue) localizer/laserScan (in, queue) localizer/estimatedPose (out, queue) mapper/robotPose (in, queue) mapper/laserScan (in, queue) mapper/map (out) navigator/robotPose (in) navigator/targetPose (in) navigator/map (in) navigator/speed (out)

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Case study: the localizer module Using logging/replaying during development  Save a log of a single run and then replay it  Use well-known logs databases (e.g., RAWSEEDS) localizer/odometry (in, queue) localizer/laserScan (in, queue) localizer/estimatedPose (out, queue) hwInterface/speed (in) hwInterface/laserScan (out, queue) hwInterface/odometry (out, queue) logWriter/odometry (in, queue) logWriter/laserScan (in, queue) logWriter/fileName (param) logReader/fileName (param) logReader/odometry (out, queue) logReader/laserScan (out, queue) LOG RESULT LOG

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March usarsimClient/speed (in) usarsimClient/laserScan (out, queue) usarsimClient/odometry (out, queue) Case study: the mapper module Using odometry instead of estimated pose Using simulator (e.g., Stage, USARSim, etc.) hwInterface/speed (in) hwInterface/laserScan (out, queue) hwInterface/odometry (out, queue) localizer/odometry (in, queue) localizer/laserScan (in, queue) localizer/estimatedPose (out, queue) mapper/robotPose (in, queue) mapper/laserScan (in, queue) mapper/map (out)

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Case study: the navigator module As before  Use odometry, simulator clients Pre-built map from configuration file RConsole for target poses input hwInterface/speed (in) hwInterface/laserScan (out, queue) hwInterface/odometry (out, queue) localizer/odometry (in, queue) localizer/laserScan (in, queue) localizer/estimatedPose (out, queue) mapper/robotPose (in, queue) mapper/laserScan (in, queue) mapper/map (out) navigator/robotPose (in) navigator/targetPose (in) navigator/map (in) navigator/speed (out) MAP (configuration file) usarsimClient/speed (in) usarsimClient/laserScan (out, queue) usarsimClient/odometry (out, queue)

The OpenRDK framework - tutorial part 1 - OpenRDK Workshop - March Questions Questions? We are on SourceForge: Credits : Prof. Daniele Nardi Developers: Daniele Calisi, Andrea Censi Early contributors: A. Farinelli, G. Grisetti, L. Iocchi Current contributors: F. Giannone, L. Iocchi, M. Leonetti, L. Marchetti, D. Nardi, P. de la Puente, G. Randelli, M. Sbarigia, A. Valero, R. Vicario Calisi is the one to blame