The TeamBots Environment

Slides:



Advertisements
Similar presentations
The eCos real-time operating system an open source tool to create embedded kernels and applications.
Advertisements

Android architecture overview
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Lab#1 (14/3/1431h) Introduction To java programming cs425
Embedded System Lab Kim Jong Hwi Chonbuk National University Introduction to Intelligent Robots.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
The road to reliable, autonomous distributed systems
AuRA: Principles and Practice in Review
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
Behavior-Based Formation Control for Multi-robot Teams Tucker Balch, and Ronald C. Arkin.
Reasons to study concepts of PL
Chapter 13 Embedded Systems
Motor Schema Based Navigation for a Mobile Robot: An Approach to Programming by Behavior Ronald C. Arkin Reviewed By: Chris Miles.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Introduction to the JDK Java for Computational Finance
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Fuzzy control of a mobile robot Implementation using a MATLAB-based rapid prototyping system.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Introduction to Behavior- Based Robotics Based on the book Behavior- Based Robotics by Ronald C. Arkin.
Multiple Autonomous Ground/Air Robot Coordination Exploration of AI techniques for implementing incremental learning. Development of a robot controller.
SALSA: Language and Architecture for Widely Distributed Actor Systems. Carlos Varela, Abe Stephens, Department of.
Introduction to Interactive Media Interactive Media Tools: Software.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
CS 4630: Intelligent Robotics and Perception Case Study: Motor Schema-based Design Chapter 5 Tucker Balch.
C# Versus Java Author: Eaddy, Marc Source: Software Tools for the Professional Programmer. Dr. Dobb's Journal. Feb2001, Vol. 26 Issue 2, p74 Hong Lu CS699A.
Boundary Assertion in Behavior-Based Robotics Stephen Cohorn - Dept. of Math, Physics & Engineering, Tarleton State University Mentor: Dr. Mircea Agapie.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
Evolving the goal priorities of autonomous agents Adam Campbell* Advisor: Dr. Annie S. Wu* Collaborator: Dr. Randall Shumaker** School of Electrical Engineering.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
Modeling Big Data Execution speed limited by: –Model complexity –Software Efficiency –Spatial and temporal extent and resolution –Data size & access speed.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
Software Design 1.1 CPS 108, Spring 2006 l Object oriented programming and design, we'll use Java and C++  Language independent concepts including design.
Java Example Presentation of a Language. Background Conception: Java began as a language for embedded processors in consumer electronics, such as VCR,
SurveyBOT Final Report Chris Johnson Miguel Lopez Jeremy Coffeen July 24, 2003 Georgia Institute of Technology School of Electrical and Computer Engineering.
MARS 2020 Kick-Off Meeting 13 November 2002 Georgia Tech.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
By SPEC INFOTECH. A programming language reigning the IT industry Marking its presence around the globe Striking Features which make Java supreme: Simplistic.
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
CST 1101 Problem Solving Using Computers
Modeling Big Data Execution speed limited by: Model complexity
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Chapter 1 Reasons to study concepts of PLs Programming Domains
C# and the .NET Framework
课程名 编译原理 Compiling Techniques
1.1 Reasons to study concepts of PLs
Introduction Enosis Learning.
CMPE419 Mobile Application Development
Introduction Enosis Learning.
A BRIEF INTRODUCTION TO UNIX OPERATING SYSTEM
CS 4630: Intelligent Robotics and Perception
Java History, Editions, Version Features
Chap 1. Getting Started Objectives
Chap 4. Programming Fundamentals
Reasons To Study Programming Languages
CMPE419 Mobile Application Development
Presentation transcript:

The TeamBots Environment Tucker Balch The Borg Lab Georgia Institute of Technology Wonderful to be here! This is work led by me in collaboration with my graduate students at CMU I am going to focus on work begun over the last year that I plan to continue in the future General -- collaborations

Why TeamBots? Why “Environment?” Robotics researchers need more than a language, we need a flexible, manageable environment that provides: Consistent APIs to robot hardware Simulation Communication Graphical tools Code reuse Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

What is TeamBots? TeamBots is a Java-based collection of applications and libraries designed to support robotics research: TBSim: configurable simulation tool TBHard: robot executive RoboComm: communications package Clay: library for programming behavior-based controllers (maybe Clay is an architecture) Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

TeamBots Software Architecture: Design Robot Controller API Simulation Hardware Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Java: The Good Syntax supports layered control system configuration (more on that later) Rich set of libraries (threads, GUI tools, communications) Portable Automated documentation Hard to shoot yourself in the foot Strongly typed Object oriented No pointers Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Java: The Bad Religion & Hype Java is slow Timing is unpredictable due to GC Work arounds: Speed: Use JITs, native compilers GC GC at regular intervals 10% to 20% performance hit er Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Example TeamBots Simulations RoboCup small size soccer Nomad 150 Probotics Cye vehicle Outdoor vehicles Robot Controller API Simulation Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

How TBSim Works Read in and parse description file: Two types of objects Objects without control systems Objects with control systems (robots) For each object: object.init() For each control system: cs.init() While not done For each object: object.takeStep() For each control system: cs.takeStep() Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

TBSim Implementation Control Systems Simulated World Robot 1 Control System Robot 2 Control System simulated obstacle Simulated World simulated obstacle simulated robot hardware simulated obstacle simulated robot hardware simulated obstacle Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Description File Syntax bounds –5 5 5 –5 // meters timestep 100 // milliseconds timeout 60000 // milliseconds trials 10 graphics on seed 993 windowsize 500 500 // pixels object Obstacle 0 4 0 1 x0000FF x000000 4 robot Nomad150 forage 0 1 0 x000000 xFF0000 2 Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

TeamBots Hardware Support Nomad 150 (Balch & Arkin, Georgia Tech) ISR Pebbles (Ram, Georgia Tech) Probotics’ Cye (Balch & Veloso, CMU) Amigobot (Luke, UMD) RWI ATRV (Koenig & Balch, Georgia Tech) Robot Controller API Hardware Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

TBHard java TBHard Nomad150 forage desoto.cc.gatech.edu 3 600 0 0 0 Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Nomad 150 Balch, AI Magazine, 1997. Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Nomad 150 Balch, AI Magazine, 1997. Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Nomad 150 Balch, AI Magazine, 1997. Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Nomad 150 Balch, AI Magazine, 1997. Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Probotics’ Cye Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

How Robot APIs are Defined Make use of Java features Inheritance Interfaces Robot Controller API Simulation Hardware Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Robot API Hierarchy: Design Simple extends Nomad150 Nomad150Hard Nomad150Sim implements extends Nomad150Comm Nomad150CommSim Nomad150CommHard implements Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Robot API Hierarchy: Code public interface Nomad150Comm extends Nomad150, Transciever {} public class Nomad150CommSim extends Nomad150Sim implements Nomad150Comm, SimulatedObject Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Inter-Robot Communication: RoboComm Simple API to TCP/IP Unicast Broadcast Multicast Implemented in simulation and on mobile robots Uses Java serialization for marshaling and unmarshaling Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Inter-Robot Communication t.unicast(2, new stringMessage( "hello!")); if (r.hasMoreElements()) new_message = r.getNextElement(); Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Clay: An Architecture for Robot Control Uses features of Java syntax to embed perceptual processes within action and selection processes Allows specification of flexible hierarchies Run time execution is efficient because only the necessary portions of the configuration are executed Includes library of perceptual and motor schemas Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Clay: Execution Hierarchy Hardware/Simulation Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Building Blocks: Motor Schemas Multiple independent processes each generate a vector combined by weighted summation Computationally simple and fast Enables design by composition. (Arkin 1989) Related to artificial potential fields Khatib (85), Krogh (84), Payton (89), Singh (98) Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Motor Schemas: Move to Goal Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Motor Schemas: Avoid Obstacle Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Motor Schemas: Avoid Obstacle + Move to Goal Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Example: Behaviors for Pushing Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Specification at Initialization Time detect_home = new v_Goal_r(abstract_robot,0,0); move_to_home = new v_Attraction_v(detect_home); detect_obstacles = new va_Obstacles_r( abstract_robot); avoid_obstacles = new v_Avoid_va(2.0, 1.0, detect_obstacles); swirl_obstacles = new v_Swirl_va(2.0, 1.0, detect_obstacles, detect_goal); move_to_home swirl_obstacles avoid_obstacles detect_home detect_obstacles Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Methods of Composition Weighted sum Winner take all Perceptual sequencing Learning Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Example: Combining by Weighted Sum avoid_n_swirl = new StaticWeightedSum_va(); avoid_n_swirl.embedded[0] = avoid_obstacles; avoid_n_swirl.weights[0] = 0.5; avoid_n_swirl.embedded[1]= swirl_obstacles; avoid_n_swirl.weights[1] = 0.5; avoid_n_swirl.embedded[2] = move_to_home; avoid_n_swirl.weights[2] = 1.0; steering_configuration = avoid_n_swirl; avoid_n_swirl move_to_home swirl_obstacles avoid_obstacles detect_home detect_obstacles Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Communication as Sensing detect_ball = new v_DetectRed_r(abstract_robot); team_ball_obs = va_CommRed_r(abstract_robot); ball_observations = v_Combine_vav(team_ball_obs, detect_ball); fused_ball_obs = v_Fuse_va(ball_observations); fused_ball_observaions ball_observations detect_ball team_ball_obs Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Comments on Clay/Java Nodes (schemas) are naturally embedded, combined and selected using Java syntax Java provides type checking at configuration time For node configuration For robot/control system matching Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Research & Education Using TeamBots Robot formations (Balch & Hybinette) Learning behaviors for soccer & foraging (Balch) Cooperative observation and localization (Stroupe & Balch) Learning behaviors for herding (Potter, des Jardins) Pheromone-based behavior (Payton) Robot soccer (Balch, Kitano) Education: SoccerBots Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Obtaining TeamBots www.teambots.org Free for non-commercial use New release due June 1 Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002

Summary TeamBots architecture leverages OO/Java features to provide: Rapid prototyping in simulation Using well-defined API to robot hardware Behavior specification using Clay (or not) Easy to use robot-robot communication Tested control systems run directly on robots Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002