Presentation is loading. Please wait.

Presentation is loading. Please wait.

The TeamBots Environment

Similar presentations


Presentation on theme: "The TeamBots Environment"— Presentation transcript:

1 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

2 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

3 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

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

5 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

6 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

7 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

8 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

9 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

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

11 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

12 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

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

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

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

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

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

18 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

19 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

20 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

21 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

22 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

23 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

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

25 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

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

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

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

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

30 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

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

32 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

33 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

34 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

35 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

36 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

37 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


Download ppt "The TeamBots Environment"

Similar presentations


Ads by Google