DARPA introduction Joost Westra. Introduction Darpa & Tekkotsu Project work Vision Color Calibration Tool Detection World state Thread Practical.

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Professional Toolkit V2.0 C:\Presentations - SmartCafe_Prof_V2.0 - bsc page 1 Professional Toolkit 2.0.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
CSE 451: Operating Systems Section 3 Project 0 recap, Project 1.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
1 SVN – Tool for Version Control Talal Ahmed ( ) Ali Ahsan ( ) Adil Zia Khan ( ) Farid Ullah ( )
V0.01 © 2009 Research In Motion Limited Introduction to Java Application Development for the BlackBerry Smartphone Trainer name Date.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Introduction to CVS 7/3/20151UMBC CMSC 341. Outline Introduction to Source Code Management What is CVS? CVS for Project Submission Basic commands Checkout,
Systems Analysis and Design in a Changing World, 6th Edition
Best Practices for Channel Development Al Wold Arizona State University.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
Source Code Revision Control Software CVS and Subversion (svn)
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
PIKA Technologies Inc. Analog Logger Application Sample December 2009.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
Subversion, an Open Source Version Control System An Introduction.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 Lecture 19 Configuration Management Software Engineering.
CHAPTER FOUR COMPUTER SOFTWARE.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
AIBO Navigation Jason Kettell. AIBO Sony’s Entertainment Robot.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
Version Control with SVN Images from TortoiseSVN documentation
C++ Programming Basic Learning Prepared By The Smartpath Information systems
What is Eclipse? Official Definition: Eclipse Evolution
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
CPSC 252 The Big Three Page 1 The “Big Three” Every class that has data members pointing to dynamically allocated memory must implement these three methods:
Connect. Communicate. Collaborate PerfsonarUI plug-in tutorial Nina Jeliazkova ISTF, Bulgaria.
The Software Development Process
CS5103 Software Engineering Lecture 02 More on Software Process Models.
FLORIDA PUBLIC HURRICANE LOSS MODEL V6.1 Computer Science February 2-4, Dr. Shu-Ching Chen School of Computing and Information Sciences Florida.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
Eclipse Project. Installing Visit to download a copy for your home computerhttp:// –Get Release version 3.0 (or.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
March 19th 2007 TANGO collaboration 1 POGO-7 Pascal Verdier ESRF- Hamburg - 25 th of October 2010 A Short History of Pogo A Short History of Pogo New Technology.
More Unix Naomi Altman. Directories Directory = folder mkdir - makes a new directory rmdir - removes an empty directory cd mydirectory - moves you into.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Transition to SVN server: follow up P.Hristov 24/01/2008.
T Project Review RoadMappers I2 Iteration
Starting Out with C++, 3 rd Edition 1 Chapter 13 – Introduction to Classes Procedural and Object-Oriented Programming Procedural programming is a method.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
Using Ant in Eclipse Dwight Deugo Nesa Matic
SE goes software engineering; (practically) managing the Compose
Operation System Program 4
Compilers, Make and SubVersion
SE goes software engineering; managing the Compose* project.
SE goes software engineering; (practically) managing the Compose
Plug-In Architecture Pattern
ASP.NET Core Middleware Fundamentals
Presentation transcript:

DARPA introduction Joost Westra

Introduction Darpa & Tekkotsu Project work Vision Color Calibration Tool Detection World state Thread Practical

Why Darpa? Dutch ARchitecture Project for Aibos Problems with the old (German) code Creating your own code Preventing the same problems

Why Tekkotsu? Great support Great documentation Supplied with JAVA user interface Solutions for low level control Event driven Handling concurrency in good way Not to specific

Project work People work short time (high turnover) Long term project RoboCup & other research Short startup time

Requirements Strong modular approach Future research (extendibility) Easy to understand (clarity)

No waterfall approach requirements changes frequently on a large project implementation step hindered by previous steps All testing and debugging most be done at the end

Iterative approaches Rapid prototyping 1. Identify the initial user requirements. 2. Develop a prototype. 3. Use and evaluate the prototype. 4. Revise the prototype. 5. Start again with point 3.

Iterative approaches Extreme programming Short releases Keep people happy Every member contributor to the project Extensive testing Pair programming Refactoring Milestones

Coding style Uniform Tab is 4 spaces wide Shorter and clear implementation int updateOutputs() { outputs = 1; }

Guard against multiple inclusions // IncludeGuard.h #ifndef INCLUDEGUARD_H #define INCLUDEGUARD_H // Body of header file here... #endif // INCLUDEGUARD_H

Naming Java naming conventions class: class FrenchVanilla : public IceCream { object identifier: FrenchVanilla myIceCreamCone(3); Function: void eatIceCreamCone();

Documentation Inline code documentation Review reports Small Choices made during implementation deviated from specifications Other remarks In the code Theoretical reports worthy for publication

Testing Make tests before programming Test at least daily Do not commit untested code At least make it compiling! Test code on the AIBO Unit testing

Versioning Different branches for each team Always at least one stable version Maybe different branches for tasks Don’t need maze solver for soccer Even better if module could be used and is not hindering

SVN over CVS Directory versioning True version history Renaming and copying are supported User friendly TortoiseSVN in windows

Editor Eclipse Use your own favorite editor Do not litter the SVN with project files or binary files Compiling is done in command line, no special configuration settings needed

Vision explained More practical approach Recommended by Tekkotsu site How to extend for object recognition Processing on: raw/segmented/jpeg Vision pipeline uses lazy evaluation

Color Calibration Tool Default tool very limited Mistake -> start all over No reloading off image classification Uses only U and V channels Colors change if angle changes Overlap in different colors

Color Calibration Tool Ported from software project Uses multiple images Uses Y,U,V Channels Image are classified using polygons Mistake -> delete mistake Reloading image classification Possible to add more images Automated overlap handling

Detection Generator Behavior can listen to CMVisionObject Better to create a filter Filter listens to CMVisionObject Behavior can subscribe to filter GoalDetectionGenerator

Detection Generator Prevent duplication of code (modular) Easy to make new behavior Step-by-step guide

World State Shared memory region Direct access: state->yourVariableName Event throwing Behaviors reacting to changed world state Step-by-step guide Creating and throwing new events Extending the world state Listening to events Demo behavior

World state No dynamic memory allocation No vectors ect. Can be a problem (3APL for example) No pointers If no dynamic memory, not a big problem Only accessible from default threads Communication possible true main thread

Adding an extra Thread Standard: Main, Motion, Sound Higher level (slower) reasoning Adding the thread not very difficult The communication is (was)

Adding an extra Thread Shared Queue Post Tekkotsu event Other special behavior places the message in queue Step-by-Step guide Simply starting new behavior

Practical Read documentation! Use matching ip-adress Robot safety Recommend using windows with cygwin Problems with memory card writers Installation Guide

Cygwin Cd /cygdrive/c/ Ls Tab completion rsync package needed

Basic commands and files Project\make newstick Project\make update ftpupdate Tools\mon\ControllerGUI [ip-adress] Wlan.txt Cygwin.bat

Questions?

To the lab! We are in the middle of moving (sorry)