8b76a3426cac17d648e4d64b7a6a52c1.ppt
- Количество слайдов: 37
The Team. Bots Environment Tucker Balch The Borg Lab Georgia Institute of Technology
Why Team. Bots? 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 Team. Bots? • Team. Bots is a Java-based collection of applications and libraries designed to support robotics research: – TBSim: configurable simulation tool – TBHard: robot executive – Robo. Comm: communications package – Clay: library for programming behaviorbased controllers (maybe Clay is an architecture) Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002
Team. Bots Software Architecture: Design Robot Controller API Simulation Tucker Balch Georgia Institute of Technology Hardware 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 er Timing is unpredictable due to GC Work arounds: – Speed: • Use JITs, native compilers – GC • GC at regular intervals • 10% to 20% performance hit Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002
Example Team. Bots Simulations • • Robo. Cup 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 1. Read in and parse description file: – Two types of objects • • Objects without control systems Objects with control systems (robots) 2. For each object: object. init() 3. For each control system: cs. init() 4. While not done – For each object: object. take. Step() – For each control system: cs. take. Step() Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002
TBSim Implementation Control Systems Robot 1 Control System Robot 2 Control System Simulated World simulated robot hardware Tucker Balch Georgia Institute of Technology simulated obstacle simulated robot hardware simulated obstacle Mobile Robot Programming 10 May 2002
Description File Syntax bounds – 5 5 5 – 5 // timestep 100 // timeout 60000 // trials 10 graphics on seed 993 windowsize 500 // object Obstacle 0 4 0 robot Nomad 150 forage Tucker Balch Georgia Institute of Technology meters milliseconds pixels 1 x 0000 FF x 000000 4 0 1 0 x 000000 x. FF 0000 2 Mobile Robot Programming 10 May 2002
Team. Bots 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 Nomad 150 forage desoto. cc. gatech. edu 3 600 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 Tucker Balch Georgia Institute of Technology Hardware Mobile Robot Programming 10 May 2002
Robot API Hierarchy: Design Simple extends Nomad 150 implements Nomad 150 Sim Nomad 150 Hard extends Nomad 150 Comm implements Nomad 150 Comm. Sim Tucker Balch Georgia Institute of Technology implements Nomad 150 Comm. Hard Mobile Robot Programming 10 May 2002
Robot API Hierarchy: Code public interface Nomad 150 Comm extends Nomad 150, Transciever {} public class Nomad 150 Comm. Sim extends Nomad 150 Sim implements Nomad 150 Comm, Simulated. Object {} Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002
Inter-Robot Communication: Robo. Comm • 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 string. Message( "hello!")); if (r. has. More. Elements()) new_message = r. get. Next. Element(); 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 Tucker Balch Georgia Institute of Technology detect_obstacles 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 Static. Weighted. Sum_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 Tucker Balch Georgia Institute of Technology detect_obstacles Mobile Robot Programming 10 May 2002
Communication as Sensing detect_ball = new v_Detect. Red_r(abstract_robot); team_ball_obs = va_Comm. Red_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 Tucker Balch Georgia Institute of Technology team_ball_obs 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 Team. Bots • 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: Soccer. Bots Tucker Balch Georgia Institute of Technology Mobile Robot Programming 10 May 2002
Obtaining Team. Bots • 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 • Team. Bots 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
8b76a3426cac17d648e4d64b7a6a52c1.ppt