logo资料库

B-Human10 Code Release .pdf

第1页 / 共127页
第2页 / 共127页
第3页 / 共127页
第4页 / 共127页
第5页 / 共127页
第6页 / 共127页
第7页 / 共127页
第8页 / 共127页
资料共127页,剩余部分请下载后查看
1 Introduction
1.1 About us
1.2 About the Document
1.3 Changes Since 2009
2 Getting Started
2.1 Unpacking
2.2 Components and Configurations
2.3 Compiling using Visual Studio 2008
2.3.1 Required Software
2.3.2 Compiling
2.4 Compiling on Linux
2.4.1 Required Software
2.4.2 Compiling
2.5 Configuration Files
2.6 Setting Up the Nao
2.6.1 Requirements
2.6.2 Creating Robot Configuration
2.6.3 Wireless Configuration
2.6.4 Setup
2.7 Copying the Compiled Code
2.7.1 Using copyfiles
2.7.2 Using teamDeploy
2.8 Working with the Nao
2.9 Starting SimRobot
3 Architecture
3.1 Binding
3.2 Processes
3.3 Modules and Representations
3.3.1 Blackboard
3.3.2 Module Definition
3.3.3 Configuring Providers
3.3.4 Pseudo-Module default
3.4 Streams
3.4.1 Streams Available
3.4.2 Streaming Data
3.4.3 Making Classes Streamable
3.5 Communication
3.5.1 Message Queues
3.5.2 Inter-process Communication
3.5.3 Debug Communication
3.5.4 Team Communication
3.6 Debugging Support
3.6.1 Debug Requests
3.6.2 Debug Images
3.6.3 Debug Drawings
3.6.4 Plots
3.6.5 Modify
3.6.6 Stopwatches
4 Cognition
4.1 Perception
4.1.1 Definition of Coordinate Systems
4.1.1.1 Camera Matrix
4.1.1.2 Image Coordinate System
4.1.2 BodyContourProvider
4.1.3 Image Processing
4.1.3.1 Segmentation and Region-Building
4.1.3.2 Region Classification
4.1.3.3 Detecting Lines
4.1.3.4 Detecting the Goal
4.1.3.5 Detecting the Ball
4.1.3.6 Detecting Other Robots
4.2 Modeling
4.2.1 Self-Localization
4.2.2 Robot Pose Validation
4.2.3 Ball Tracking
4.2.4 Ground Truth
4.2.5 Obstacle Model
4.2.6 Robot Tracking
4.2.7 Largest Free Part of the Opponent Goal
5 Motion
5.1 Sensing
5.1.1 Joint Data Filtering
5.1.2 Ground Contact Recognition
5.1.3 Robot Model Generation
5.1.4 Inertia Sensor Data Calibration
5.1.5 Inertia Sensor Data Filtering
5.1.6 Torso Matrix
5.1.7 Detecting a Fall
5.2 Motion Control
5.2.1 Motion Selection
5.2.2 Head Motions
5.2.3 Walking
5.2.3.1 Inverse Kinematic
5.2.4 Special Actions
5.2.5 Motion Combination
6 Behavior Control
6.1 XABSL
6.2 Setting Up a New Behavior
6.3 Behavior Used at RoboCup 2010
6.3.1 Button Interface
6.3.2 Body Control
6.3.3 Head Control
6.3.4 Kick Pose Provider
6.3.5 Tactics
6.3.6 Role Selector
6.3.7 Different Roles
6.3.7.1 Striker
6.3.7.2 Supporter
6.3.7.3 Defender
6.3.7.4 Keeper
6.3.8 Penalty Control
6.3.9 Display Control
6.3.9.1 Right Eye
6.3.9.2 Left Eye
6.3.9.3 Torso (Chest Button)
6.3.9.4 Feet
6.3.9.5 Ears
7 Challenges
7.1 Dribble Challenge
7.2 Passing Challenge
7.3 Open Challenge
8 SimRobot
8.1 Introduction
8.2 Scene View
8.3 Information Views
8.3.1 Image Views
8.3.2 Color Space Views
8.3.3 Field Views
8.3.4 Xabsl View
8.3.5 Sensor Data View
8.3.6 Joint Data View
8.3.7 Plot Views
8.3.8 Timing View
8.3.9 Module Views
8.3.10 Kick View
8.4 Scene Description Files
8.5 Console Commands
8.5.1 Initialization Commands
8.5.2 Global Commands
8.5.3 Robot Commands
8.5.4 Input Selection Dialog
8.6 Examples
8.6.1 Recording a Log File
8.6.2 Replaying a Log File
8.6.3 Remote Control
9 Acknowledgements
Bibliography
Team Report and Code Release 2010 Thomas R¨ofer1, Tim Laue1, Judith M¨uller1, Armin Burchardt2, Erik Damrose2, Alexander Fabisch2, Fynn Feldpausch2, Katharina Gillmann2, Colin Graf2, Thijs Jeffry de Haas2, Alexander H¨artl2, Daniel Honsel2, Philipp Kastner2, Tobias Kastner2, Benjamin Markowsky2, Michael Mester2, Jonas Peter2, Ole Jan Lars Riemann2, Martin Ring2, Wiebke Sauerland2, Andr´e Schreck2, Ingo Sieverdingbeck2, Felix Wenk2, Jan-Hendrik Worch2 1 Deutsches Forschungszentrum f¨ur K¨unstliche Intelligenz, Enrique-Schmidt-Str. 5, 28359 Bremen, Germany 2 Universit¨at Bremen, Fachbereich 3, Postfach 330440, 28334 Bremen, Germany Revision: October 1, 2010
Contents 1 Introduction 1.1 About us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 About the Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Changes Since 2009 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Getting Started 2.1 Unpacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Components and Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Compiling using Visual Studio 2008 . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Required Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Compiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Compiling on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Required Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Compiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Setting Up the Nao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.2 Creating Robot Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.3 Wireless Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.4 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 Copying the Compiled Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1 Using copyfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.2 Using teamDeploy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8 Working with the Nao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9 Starting SimRobot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Architecture 3.1 Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Modules and Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 7 8 9 11 11 12 13 13 13 13 13 14 14 17 17 17 17 18 18 18 19 20 21 22 22 23 24
CONTENTS B-Human 2010 3.3.1 Blackboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Module Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Configuring Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4 Pseudo-Module default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Streams Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Streaming Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.3 Making Classes Streamable . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Message Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2 Inter-process Communication . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.3 Debug Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.4 Team Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Debugging Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1 Debug Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.2 Debug Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.3 Debug Drawings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.4 Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.5 Modify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.6 Stopwatches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Cognition 4.1 Perception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Definition of Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . 4.1.1.1 Camera Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1.2 Image Coordinate System . . . . . . . . . . . . . . . . . . . . . . 4.1.2 BodyContourProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3 Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3.1 Segmentation and Region-Building . . . . . . . . . . . . . . . . . 4.1.3.2 Region Classification . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3.3 Detecting Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3.4 Detecting the Goal . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3.5 Detecting the Ball . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3.6 Detecting Other Robots . . . . . . . . . . . . . . . . . . . . . . . 4.2 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Self-Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Robot Pose Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Ball Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 24 26 26 26 27 28 29 30 30 31 32 32 33 33 33 35 36 36 37 38 38 38 39 41 41 42 43 45 47 49 50 51 52 52 53 54 3
B-Human 2010 CONTENTS 4.2.4 Ground Truth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.5 Obstacle Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.6 Robot Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.7 Largest Free Part of the Opponent Goal . . . . . . . . . . . . . . . . . . . 5 Motion 5.1 Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Joint Data Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Ground Contact Recognition . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Robot Model Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.4 Inertia Sensor Data Calibration . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Inertia Sensor Data Filtering . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.6 Torso Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.7 Detecting a Fall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Motion Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Head Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3 Walking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3.1 Inverse Kinematic . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4 Special Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.5 Motion Combination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Behavior Control 6.1 XABSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Setting Up a New Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Behavior Used at RoboCup 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Button Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2 Body Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.3 Head Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4 Kick Pose Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.5 Tactics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.6 Role Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.7 Different Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.7.1 Striker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.7.2 Supporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.7.3 Defender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.7.4 Keeper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.8 Penalty Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 56 57 59 60 61 61 61 62 62 63 63 64 65 66 66 66 68 71 72 74 75 78 80 80 81 81 83 83 84 86 86 90 92 93 94 4
CONTENTS B-Human 2010 6.3.9 Display Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.9.1 Right Eye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.9.2 Left Eye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.9.3 Torso (Chest Button) . . . . . . . . . . . . . . . . . . . . . . . . 6.3.9.4 Feet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.9.5 Ears . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Challenges 7.1 Dribble Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Passing Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Open Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 SimRobot 95 95 95 95 95 95 97 97 98 99 101 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 8.2 Scene View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 8.3 Information Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 8.3.1 Image Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8.3.2 Color Space Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.3.3 Field Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 8.3.4 Xabsl View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 8.3.5 Sensor Data View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 8.3.6 Joint Data View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 8.3.7 Plot Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 8.3.8 Timing View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8.3.9 Module Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8.3.10 Kick View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8.4 Scene Description Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 8.5 Console Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8.5.1 Initialization Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8.5.2 Global Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.5.3 Robot Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.5.4 Input Selection Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 8.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 8.6.1 Recording a Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 8.6.2 Replaying a Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 8.6.3 Remote Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9 Acknowledgements 123 5
B-Human 2010 Bibliography CONTENTS 125 6
Chapter 1 Introduction 1.1 About us B-Human is a joint RoboCup team of the Universit¨at Bremen and the German Research Center for Artificial Intelligence (DFKI). The team was founded in 2006 and it consists of numerous undergraduate students as well as of researchers of these two institutions. The latter have already been active in a number of RoboCup teams, such as the GermanTeam and the Bremen Byters (both Four-Legged League), B-Human in the Humanoid Kid-Size League, the BreDoBrothers (both in the Humanoid League and the Standard Platform League), and B-Smart (Small-Size League). The senior team members have also been part of a number of other successes, such as winning the RoboCup World Championship three times with the GermanTeam (2004, 2005, and 2008), winning the RoboCup German Open also three times (2007 and 2008 with the GermanTeam, 2008 with B-Smart), and winning the Four-Legged League Technical Challenge twice (2003 and 2007 with the GermanTeam). In parallel to these activities, B-Human started as a part of the joint team BreDoBrothers that has been a cooperation of the Technische Universit¨at Dortmund and the Universit¨at Bremen. The team participated in the Humanoid League in RoboCup 2006. The software was based on previous works of the GermanTeam [12]. This team was split into two single Humanoid teams, because of difficulties in developing and maintaining a robust robot platform across two locations. The DoH!Bots from Dortmund as well as B-Human from Bremen participated in RoboCup 2007; B-Human reached the quarter finals and was undefeated during round robin. In addition to the participation in the Humanoid League at the RoboCup 2008, B-Human also attended a new cooperation with the Technische Universit¨at Dortmund. Hence, B-Human took part in the Two- Legged Competition of the Standard Platform League as part of the team BreDoBrothers, who reached the quarter finals. After the RoboCup 2008, we concentrated our work exclusively on the Two-Legged SPL. By integrating all the students of the Humanoid League team B-Human, the BreDoBrothers would have had more than thirty members. Therefore we decided to end the cooperation by mutual agreement to facilitate a better workflow and work-sharing. In 2009, we participated in the RoboCup German Open Standard Platform League and won the competition. We scored 27 goals and received none in five matches against different teams. Furthermore, B-Human took part in the RoboCup World Championship and won the compe- tition, achieving a goal ratio of 64:1. In addition, we could also win first place in the technical challenge, shared with Nao Team HTWK from Leipzig. We repeated our successes in 2010 and won the German Open with a goal ratio of 54:2 as well 7
B-Human 2010 1.2. ABOUT THE DOCUMENT Figure 1.1: The majority of the team members at the German Open 2010 awards ceremony. as the RoboCup with an overall goal ratio of 65:3. The current team consists of the following persons: Students. Alexander Fabisch, Arne Humann, Benjamin Markowsky, Carsten K¨onemann, Daniel Honsel, Emil Huseynli, Felix Wenk, Fynn Feldpausch, Jonas Peter, Martin Ring, Max Trocha, Michael Mester, Ole Jan Lars Riemann, Philipp Kastner, Bastian Reich, Thomas Liebschwager, Tobias Kastner, Wiebke Sauerland. Senior Students. Alexander H¨artl, Armin Burchardt, Colin Graf, Ingo Sieverdingbeck, Katha- rina Gillmann, Thijs Jeffry de Haas. Researchers. Tim Laue, Judith M¨uller. Senior Researcher. Thomas R¨ofer (team leader). 1.2 About the Document As we wanted to revive the tradition of an annual code release two years ago, it is obligatory for us to continue with it this year. This document, which is partially based on last year’s code release [23], gives a survey about the evolved system we used at RoboCup 2010. The changes made to code which was used at RoboCup 2009 are shortly enumerated in 1.3. Chapter 2 starts with a short introduction to the software required, as well as an explanation of how to run the Nao with our software. Chapter 3 gives an introduction to the software framework. Chapter 4 deals with the cognition system and will give an overview of our perception and modeling components. In Chapter 5, we describe our walking approach and how to create special motion patterns. Chapter 6 gives an overview about the behavior which was used at the 8
分享到:
收藏