RoboCup Software 2009

From GT RoboJackets

Jump to: navigation, search

Contents

Overview

RoboCup Software encompasses all parts of the system that run on a host machine (not the robots). The entire software system is composed of both the components we play soccer and compete with as well as a sort of SDK that allows new components to be written quickly for idea and system testing.

Systems

This describes the various software components. This is not necessarily a development organization, only a logical one.

Standalone

These are standalone systems that can be run without being integrated into a parent framework or environment.

Simulator 
Soccer Simulator. Simulates a game environment as well as the vision and radio components
Vision  
Global Vision used to identify and locate robots.
Referee 
SSL Referee
Radio 
Radio communication with on-field robots
Log Player 
GUI frontend for the logging module. Playback of logged data

Modules

Modules are components that cannot be run immediately on their own and require a framework to support their needs.

World Modeling 
Develops models of the world based on available information from multiple systems
Soccer 
Plays and Behaviors. Play selection and behavior definitions.
Motion 
Low level robot planning and motion control
Logger 
data logging module

Frameworks

Frameworks are the glue for modules. They define how modules can share data with other modules as well as how a typical module can operate. Frameworks also provide common code which various modules can use.

Architecture

Development

  • We develop on linux systems, usually running on the latest stable release of a ubuntu flavor. Although parts of the system can be compiled and run in different OSs the final version must run in linux.
  • Runtime components are written in C++, but helper applications can be in any other language a developer is proficient in.
  • We use subversion for our source code control

more information available from the full guide here

Hardware

  • The competition computer is a 2.4 GHz Core 2 Quad Core with 2 GB of RAM. It runs the latest stable version of Kubuntu. The system must be able to run on this computer.
  • Personal development can be done on any machine you own.

Identification

There are three forms of identification

Shell 
A unique number is assigned to each shell [0...15]
Assembly/Board 
An entire robot is composed of the electronics and the mechanical base. This assembly takes the ID of the board under which it is controlled
Player 
Software only number for the player [0...4]
  • Vision maps from Image -> Shell
  • World Model maps from Shell -> Player
  • Radio maps from Player -> Assembly/Board

Calibration

  • Calibration is identified by the Assembly/Board that was calibrated.
  • Invalidated when any part of the Assembly/Board are changed or disassembled.
    • This includes swapping electronics, as kicking/chipping calibration may be wrong after that

Plans

  • Parameter extraction and estimation
  • Ability to switch which side of field
  • Burn-in tests/stress
  • World model/Data filtering/prediction
    • Probabilistic sensing
  • Integration/communication
  • Timing/Profiling of how our system works
  • Motion control
    • Analysis of Current Position Controller
  • Calibration
  • SW test for hardware performance
  • Use tech challenges as a springboard

Tasks

List of small project based tasks to be completed

  • Write new Referee program
  • (not yet) Convert XML Packet creator to python
  • Develop a control loop debugging app and possible auto-tune procedure

Fixes

  • (Stop and Halt) should cause new play selection
  • Rework STP architecture, skills = tactics
Personal tools