Software development in robotics: frameworks, tools and the OpenRDK D. Calisi.

Slides:



Advertisements
Similar presentations
Designing Reusable Frameworks for Test Automation
Advertisements

Eric Colon Royal Military Academy CoRoBA, an Open Framework to integrate Multi-Sensor Robotic Systems.
Motion planning, control and obstacle avoidance D. Calisi.
Chapter 13 Embedded Systems
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
João Frazão Rescue Project Software Architecture João Frazão.
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
The Player universal driver and the Stage and Gazebo simulators Daniele Calisi.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Ritu Varma Roshanak Roshandel Manu Prasanna
Chapter 13 Embedded Systems
The OpenRDK framework: a not-so-short tutorial Part 1: basic topics Daniele Calisi, Andrea Censi.
OpenRDK: a modular framework for robotic software development D. Calisi, A. Censi, L. Iocchi, D. Nardi.
© , Michael Aivazis DANSE Software Architecture Challenges and opportunities for the next generation of data analysis software Michael Aivazis.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
CSC230 Software Design (Engineering)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
Chapter 2 The process Process, Methods, and Tools
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
NA-MIC National Alliance for Medical Image Computing NA-MIC Software Engineering Bill Lorensen GE Research NA-MIC Engineering Core PI.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
Modular Programming. Modular Programming (1/6) Modular programming  Goes hand-in-hand with stepwise refinement and incremental development  Makes the.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Java Threads 11 Threading and Concurrent Programming in Java Introduction and Definitions D.W. Denbo Introduction and Definitions D.W. Denbo.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
“DECISION” PROJECT “DECISION” PROJECT INTEGRATION PLATFORM CORBA PROTOTYPE CAST J. BLACHON & NGUYEN G.T. INRIA Rhône-Alpes June 10th, 1999.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
25 April 2000 SEESCOASEESCOA STWW - Programma Evaluation of on-chip debugging techniques Deliverable D5.1 Michiel Ronsse.
S. Shumilov – Zürich Analytical Visualization Framework - a visual data processing and knowledge discovery system Ivan Denisovich, Serge Shumilov Department.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Prototyping Rapid software development to validate requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Programming Sensor Networks Andrew Chien CSE291 Spring 2003 May 6, 2003.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Project Paper Presentation Hanlin Wan March 15, 2011.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Windows Programming Environments
Prototyping in the software process
Mobile Operating System
Software Life Cycle “What happens in the ‘life’ of software”
Part 3 Design What does design mean in different fields?
Model-Driven Analysis Frameworks for Embedded Systems
Princess Nourah bint Abdulrahman University
CS 501: Software Engineering Fall 1999
Chapter 7 –Implementation Issues
Why Threads Are A Bad Idea (for most purposes)
Simulation And Modeling
Lecture Topics: 11/1 Hand back midterms
Presentation transcript:

Software development in robotics: frameworks, tools and the OpenRDK D. Calisi

Software development in robotics - OpenRDK Workshop - March Complexity of robotic software development (1) In robotics we can find the same problem of a complex distributed system  Complex algorithms but limited computation and memory  Requires data sharing mechanism (middleware)  Concurrent execution of processes/threads  Team of developers working in parallel Moreover, the robot is “embodied” in the real world  The world is uncertain: sensor readings, action outcomes, unexpected events, etc.  Physics cannot be delayed: strict time constraints Many problems are not resolved yet  Trial and error  Method/algorithm tuning  Fast prototyping

Software development in robotics - OpenRDK Workshop - March Complexity of robotic software development (2) A lot of work to make simple things  e.g. visualizing sensor data requires to: Connect to the sensor Understand and implement the protocol Build a GUI Different hardware devices  Different protocols and interfaces A lot of time is spent in system engineering  Socket and serial programming  How to manage the execution of the program  Debugging of common operations

Software development in robotics - OpenRDK Workshop - March Software frameworks A software framework is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality Frameworks are similar to software libraries in that they are reuseable abstractions of code wrapped in a well- defined API. Unlike libraries, however, the overall program's flow of control is not dictated by the caller, but by the framework. This inversion of control is the distinguishing feature of software frameworks [Wikipedia]software librariesAPIflow of controlinversion of control

Software development in robotics - OpenRDK Workshop - March Modularity Divide-et-impera approach  Common engineering method  A complex problem can be often subdivided in simpler sub- problems Module-level tests and debugging  Local search space for bugs The same advantages of OO programming  Abstraction and common interfaces  Code reuse  Encapsulation  Decoupling

Software development in robotics - OpenRDK Workshop - March Common components in a robotic system Motion World modeling Mission/Task Interface Vision LocalizationMapping Path/TrajectoryManipulation Coordination Planning

Software development in robotics - OpenRDK Workshop - March Software frameworks for robotics Software frameworks are useful  Promote standard design techniques  Aim at code reusability (components)  Provide ready-to-use design techniques  Provide for rapid prototyping  Allows for concurrent engineering Software frameworks for robotics  OROCOS (EURON project)  CLARAty (NASA)  OpenRTM-aist (Japanese project)  Orca, Player/Stage, MARIE, MOAST, ROS, etc. Main elements of a framework  Concurrency model  Information sharing model  Libraries and tools

Software development in robotics - OpenRDK Workshop - March Process Concurrency model Call-backs Processes Threads Call-backs features  Provide for tight execution control (real-time)  Hard to write and maintain Module // a callback is called by a scheduler void callback() { // do your work quickly // and return the control // to the scheduler } Process Processes features  Very easy to write  Max freedom of development  Robust to single module crashes  Information sharing is slow Threads features  Are easy to write  Information sharing is fast  Less robust than processes  Need facilities for concurrent data access Frameworks that use call-backs: OROCOS, (OpenRTM) Frameworks that use processes: Orca, MIRO, Player/Stage, … Frameworks that use threads: OpenRDK, (OROCOS), (OpenRTM)

Software development in robotics - OpenRDK Workshop - March Information sharing model Data ports Blackboard Services Use of third-party middleware  e.g., CORBA, ICE, OMG DDS  Ready-to-use  Different goals Developing ad-hoc middleware  It’s a complex task  Allows for application-oriented tuning Module Blackboard Frameworks that use data ports: OROCOS, OpenRTM, Orca, … Frameworks that use a blackboard: OpenRDK, MIRO

Software development in robotics - OpenRDK Workshop - March Libraries and tools Libraries reduce programming time  Frameworks include libraries for geometrical computations, control, filesystem utilities, operations on maps, images, etc.  Often external libraries are used (e.g., OpenCV, libgsl, libxml, ImageMagick, etc.) Tools speed-up development and debugging phases  Graphical tools for debugging and inspection  Simulators or connection to simulators  Logging and replaying  Profiling

Software development in robotics - OpenRDK Workshop - March A short history of OpenRDK SPQR-RDK (first commit to the CVS repository)  April, 2nd 2003 SPQR-RDK 2  September, 30th 2005 OpenRDK (SourceForge)  Februrary, 25th 2008

Software development in robotics - OpenRDK Workshop - March Questions Questions? We are on SourceForge