Robotics Simulation (Skynet) Andrew Townsend Advisor: Professor Grant Braught.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

1 jNIK IT tool for electronic audit papers 17th meeting of the INTOSAI Working Group on IT Audit (WGITA) SAI POLAND (the Supreme Chamber of Control)
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Tutorial 6 Creating a Web Form
Seeking prime numbers quickly through parallel-computing Daniel J. Wright.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
The Last Procedure Before First Functional Prototype Grant Boomer, Brett Papineau, Tanis Lopez, Archana Shrestha CS 383.
CS 275Tidwell Course NotesPage 110 Chapter 7: Getting Input From Users Designing interactive forms, in which the user is expected to supply information.
15.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 15: Configuring a Windows.
Visual jMUD Oscar Chen CS491. Important Note The IMAGES used in this presentation and demonstration of Visual jMUD are COPYRIGHT by their respective holders.
Software Engineering COMP 201
Technical Architectures
Programming Languages WHY MORE? Wasn’t ONE ENOUGH? Introduction to CS260.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
MS DB Proposal Scott Canaan B. Thomas Golisano College of Computing & Information Sciences.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Input Validation For Free Text Fields ADD Project Members: Hagar Offer & Ran Mor Academic Advisor: Dr Gera Weiss Technical Advisors: Raffi Lipkin & Nadav.
Application architectures
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Programming Languages Structure
Introduction What is this ? What is this ? This project is a part of a scientific research in machine learning, whose objective is to develop a system,
V Project Overview The Mars Ground Control Group is responsible for handling communications to and from a rover in a test area simulating a Martian or.
Chapter 6: An Introduction to System Software and Virtual Machines
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
Batch VIP — A backend system of video processing VIEW Technologies The Chinese University of Hong Kong.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
ABSTRACT Zirous Inc. is a growing company and they need a new way to track who their employees working on various different projects. To solve the issue.
Slide 1 System Software Software The term that we use for all the programs and data that we use with a computer system. Two types of software: Program.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
A 2-D, multi-player tank game developed in PLT Scheme ~ ~ ~ Ben VandenBos, Tim Reeves, Justin Hall, and John Ericksen ~ ~ ~ Senior Project - CS496 Spring.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Robinson_CIS_285_2005 HTML FORMS CIS 285 Winter_2005 Instructor: Mary Robinson.
A Spring 2005 CS 426 Senior Project By Group 15 John Studebaker, Justin Gerthoffer, David Colborne CSE Dept., University of Nevada, Reno Advisors (CSE.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
 Whether using paper forms or forms on the web, forms are used for gathering information. User enter information into designated areas, or fields. Forms.

Chapter 1 Computer Systems. Why study Computer Architecture? Examples Web Browsing - how does the browser access pages from a server? How can we create.
Software Architecture
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
IS 325 Notes for Wednesday August 28, Data is the Core of the Enterprise.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
The Second Life of a Sensor: Integrating Real-World Experience in Virtual Worlds using Mobile Phones Mirco Musolesi, Emiliano Miluzzo, Nicholas D. Lane,
Construction Planning and Prerequisite
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
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.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
Chapter – 8 Software Tools.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
Project Dow: Extending EclipseTrader Emmanuel Sotelo Fall 2008.
Slide 6-1 Chapter 6 Terms System Software Considerations Introduction to Information Systems Judith C. Simon.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Robot Intelligence Technology Lab. Evolutionary Robotics Chapter 3. How to Evolve Robots Chi-Ho Lee.
6. (supplemental) User Interface Design. User Interface Design System users often judge a system by its interface rather than its functionality A poorly.
Development Environment
GUI Design and Coding PPT By :Dr. R. Mall.
POOL/RLS Experience Current CMS Data Challenges shows clear problems wrt to the use of RLS Partially due to the normal “learning curve” on all sides in.
Intelligent Low-Altitude Air Traffic Management System Group 30
Presentation transcript:

Robotics Simulation (Skynet) Andrew Townsend Advisor: Professor Grant Braught

Introduction Robotics is a quickly emerging field in today’s array of technology Robots are expensive, and each robot’s method of control is different Used in Dickinson College’s Artificial Life class dLife – universal robotics controller Problem to be solved: How can multiple students do coursework for the Artificial Life class at the same time?

Three Critical Goals for the Solution Accurate modeling of Hemisson and AIBO robots Multiple simultaneous users controlling multiple robots at once Solution must integrate with the existing dLife package

Proposed Solution Simulation provides a cheap alternative software solution to this problem. Many Robotics simulators already exist Not all simulate multiple robots or accept multiple users None of them integrate with dLife.

Robotics Simulator’s Role Integrate transparently with dLife such that the process of using a virtual robot is the same as using a physical robot Provide support for multiple users using multiple robots in the same ‘space’ Accurate modeling of a robot’s expected actions, to provide an effective alternative for Artificial Life students.

Background Several robotics simulators already exist Some of these include Pyro, Gazebo, Stage, Simulator Bob, and SIMpact

Background.Pyro Pyro is one of the most similar applications to dLife. Concentrates on providing a single language to communicate with a robot so that the user does not have to learn a new language for each kind of robot Integrates with another simulator called Stage..

Background.Stage Closest to this project Integrates with client packages, such as Pyro Focuses on representing a world and the simulated robot’s interactions with that world

Architecture Similar to the Pyro/Stage methodology Client / Server Architecture Communication should not be limited to the local machine Use Socket-based communication.

Architecture.Client (dLife) The client of a robotics simulation represents a user’s input to the robot dLife already provides a unified interface to abstract the user’s control of the robot and relevant sensor readings, regardless of what kind of robot it is dLife must simply be extended to allow for socket based communication, rather than using serial communication. Other than connection mechanisms, all other processes should be essentially identical to dLife’s interaction with a physical robot

Architecture.Server Most obvious choice is to use Java Server must be able to simulate the robots while still accepting new connections. Threaded connection listening! Server has two main roles: Server must be able to accept some form of predefined world, and display it to the user. Server must also be capable of modeling a robot’s actions in that world.

The World is what you make of it Clearly a simulator is useless if you can’t see what the robot is doing Worlds are created from reading input from text files. World Files assume ‘real world’ dimensions, in this case meters, and translate from there. Axis flip

The World File Each World File contains basic information such as the dimensions of the world and coloring. Also allows for a SCALE statement for perspective purposes Each world file can contain an unlimited number (barring system resources) of objects that reside in the world

The World File: Objectivity Objects are currently limited to circles, rectangles, and lines Objects are defined in the World File by their size, position, and coloring. Currently objects are impassable objects as far as the robot is concerned, but moveable objects are a possibility for the future.

The World File: Syntax Checking Upon loading a given World File, the server checks the file against the expected format and reports errors intelligently. Erroneous data is reported to the user and discarded.

Robot Modeling.Representation Each kind of robot should be drawn in the same way, with slight variations to indicate which robot is which. Currently, only the Hemisson robot is implemented, and is represented by a circle of the user’s choice in color, with a line pointing in the direction the robot is facing. Server handshake: ‘Hemisson [x] [y] [direction] [color]’

Robot Modeling.Implementation As each robot is meant to be independent of each other, robots are implemented as versions of the robotThread class. Thread is associated with the socket connection, real-time communication. All processes associated with that particular robot are handled exclusively in that thread. Makes it easy to keep each kind of robot’s appearances, capabilities, and actions separate while still keeping it easy to add new kinds of robots to the mix. Timing is everything

Skynet v.1b DEMONSTRATION

Status World representation is essentially complete dLife integration is complete except for one thing… Robot representation is defined and almost entirely complete, but problems with directional values (rounding errors and conversion issues) Collision algorithm only partially works Only forward/backward movement is fully supported, although command parsing is implemented

Challenges GUIs. Keeping real world measurements separate from internal ‘backend’ measurements. Directional values are more elusive than they should be. Writing code in such a way that test cases would work (more threading!) Collision detection algorithm

Future Work Mostly revolve around the “HemissonThread” class Independent and different wheel speeds Fix directional value calculations Empirical testing for accurate modeling – tweak timer accordingly Fix dLife dialog box. Finishing collision detection algorithm Add support for scripting? Bring the noise Implementation of simAIBOs!

Thank you! Questions?