1 / 37

The TeamBots Environment

The TeamBots Environment. Tucker Balch The Borg Lab Georgia Institute of Technology. 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

nelia
Download Presentation

The TeamBots Environment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The TeamBots Environment Tucker Balch The Borg Lab Georgia Institute of Technology

  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

  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

  4. Robot Controller API Simulation Hardware TeamBots Software Architecture: Design Tucker Balch Georgia Institute of Technology

  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

  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

  7. Robot Controller API Simulation Example TeamBots Simulations • RoboCup small size soccer • Nomad 150 • Probotics Cye vehicle • Outdoor vehicles Tucker Balch Georgia Institute of Technology

  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

  9. simulated obstacle simulated robot hardware simulated obstacle simulated obstacle simulated obstacle Robot 1 Control System simulated robot hardware Robot 2 Control System TBSim Implementation Control Systems Simulated World Tucker Balch Georgia Institute of Technology

  10. 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

  11. Robot Controller API Hardware 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) Tucker Balch Georgia Institute of Technology

  12. TBHard java TBHard Nomad150 forage desoto.cc.gatech.edu 3 600 0 0 0 Tucker Balch Georgia Institute of Technology

  13. Nomad 150 • Balch, AI Magazine, 1997. • Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology

  14. Nomad 150 • Balch, AI Magazine, 1997. • Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology

  15. Nomad 150 • Balch, AI Magazine, 1997. • Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology

  16. Nomad 150 • Balch, AI Magazine, 1997. • Balch, Autonomous Robots, 2000. Tucker Balch Georgia Institute of Technology

  17. Probotics’ Cye Tucker Balch Georgia Institute of Technology

  18. Robot Controller API Simulation Hardware How Robot APIs are Defined • Make use of Java features • Inheritance • Interfaces Tucker Balch Georgia Institute of Technology

  19. Simple implements implements Nomad150 Nomad150Comm Nomad150CommSim Nomad150Hard Nomad150Sim Nomad150CommHard implements implements Robot API Hierarchy: Design extends extends Tucker Balch Georgia Institute of Technology

  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

  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

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

  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

  24. Clay: Execution Hierarchy Hardware/Simulation Tucker Balch Georgia Institute of Technology

  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

  26. Motor Schemas: Move to Goal Tucker Balch Georgia Institute of Technology

  27. Motor Schemas: Avoid Obstacle Tucker Balch Georgia Institute of Technology

  28. Motor Schemas: Avoid Obstacle + Move to Goal Tucker Balch Georgia Institute of Technology

  29. Example: Behaviors for Pushing Tucker Balch Georgia Institute of Technology

  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

  31. Methods of Composition • Weighted sum • Winner take all • Perceptual sequencing • Learning Tucker Balch Georgia Institute of Technology

  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

  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

  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

  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

  36. Obtaining TeamBots • www.teambots.org • Free for non-commercial use • New release due June 1 Tucker Balch Georgia Institute of Technology

  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

More Related