第一章 机器人及机器人足球
1.1 机器人
1.1.1 机器人的由来及定义
1.1.2 机器人的发展历程
1.1.3 机器人学研究内容
1.1.4 机器人的应用领域
1.2 足球机器人及机器人足球赛
1.2.1 机器人足球的起源
1.2.2 RoboCup历年世界杯
1.2.3 中国的RoboCup机器人足球活动
1.2.4 RoboCup世界杯足球比赛项目
1.3 机器人足球与人工智能
练习与思考
第二章 仿真机器人足球比赛平台
2.1 仿真2D机器人足球
2.2 仿真2D比赛过程及规则
2.2.1 Server的获取和安装
2.2.2 整场比赛的过程
2.2.3 SoccerServer控制的比赛规则
2.2.4 需要人判断的规则
2.3 SoccerServer
2.3.1 球场上的对象
2.3.2 场地和球员
2.3.3 对象的运动模型
2.3.4 球员的感知信息模型
2.3.5 球员的动作模型
2.3.6 球员的体力模型
2.3.7 异构球员
2.3.8 裁判模型
2.4 Client
2.4.1 初始化和重新连接
2.4.2 控制命令
2.4.3 感知信息
2.5 Coach
2.5.1 Coach介绍
2.5.2 训练者和在线教练的区别
练习与思考
第三章 球员智能体设计
3.1 有益的工作基础
3.1.1 CMU
3.1.2 FC Portugal
3.1.3 TsinghuAeolus
3.1.4 Karlsruhe Brainstrormers
3.1.5 UVA
3.1.6 WrightEagle
3.1.7 Helllos
3.2 球员智能体整体设计架构
3.3 球员智能体具体功能设计
3.3.1 球员智能体构建核心类
3.3.2 球员智能体构建其他辅助类
3.4 球员智能体程序控制流程
3.4.1 三线程控制结构
3.4.2 球员智能体执行例程
练习与思考
第四章 底层通信
4.1 消息解析
4.2 动作封装和发送
4.2.1 SoccerCommand类
4.2.2 动作解释发送流程
4.3 球员智能体之间的通信协议
4.3.1 通信机制及简单应用
4.3.2 高效的利用字符串
练习与思考
第五章 球员智能体的世界模型
5.1 世界模型概述
5.2 主要信息属性及获取方式
5.2.1 配置信息
5.2.2 比赛信息
5.2.3 对象信息
5.2.4 动作信息
5.2.5 属性值的获取
5.3 属性值的更新方法
5.3.1 根据自身感知信息更新WorldModel
5.3.2 根据视觉感知信息更新WorldModel
5.3.3 根据听觉感知信息更新WorldModel
5.3.4 主要更新方法(成员函数)举例
5.4 环境信息的预测方法
5.5 环境信息的高级处理方法
练习与思考
第六章 球员智能体的基本动作
6.1 原子动作
6.2 中间动作
6.2.1 带球
6.2.2 踢球
6.2.3 向某点转身体
6.2.4 移动向某点
6.3 高级动作
6.3.1 截球
6.3.2 传球
6.3.4 加速球FastKick
练习与思考
第七章 球队高级决策
7.1 机器人足球球队策略综述
7.2 UVA_Base_2003的简单决策策略
7.2.1 deMeer5策略
7.2.2 deMeer5_goalic策略
7.3 球队高级决策一般设计模式
7.3.1 进攻决策模块
7.3.2 防守决策模块
7.3.3 一般跑位策略
7.4 传球对象的选择
7.4.1 基于决策树算法
7.4.2 基于价值学习算法
7.4.3 基于Q学习算法
7.5 局部战术之2 vs 1问题
7.5.1 问题描述
7.5.2 2 vs l训练的Q学习算法描述
7.5.3 测试与评价
7.6 基于换位思考的多智能体局部协作
7.6.1 教练对队友进行建模
7.6.2 基于换位思考模型的多球员智能体协作学习
7.6.3 换位思考模型在传球中的实现
7.7 基于Advisor-Evaluator进攻模块设计
7.7.1 Shoot-Advisor模块
7.7.2 Pass-Advisor模块
7.7.3 Dribble-Advisor模块
7.7.4 Evaluator各参数的获取
练习与思考
第八章 RoboCup仿真3D入门
8.1 仿真平台的安装运行与配置环境
8.1.1 3D Server的安装
8.1.2 Server的运行
8.1.3 球队的运行
8.1.4 开发环境的配置
8.2 NAO仿真平台机器人模型简介
8.3 感应器
8.3.1 Vision Perceptor
8.3.2 Hear Perceptor
8.3.3 GameState Perceptor
8.3.4 GyroRate Perceptor
8.3.5 ForCeResiStanCe Perceptor
8.3.6 Joint Perceptor
8.4 效应器
8.4.1 Say Effector
8.4.2 Beam Effecfor
8.4.3 Joint Effector
8.4.4 Create Effector
8.4.5 Init Effector
8.5 NAO机器人的运动控制
8.5.1 NAO的关节感应器和效应器
8.5.2 关节的控制
8.5.3 舵机函数
8.5.4 动作示例
8.6 定位
8.6.1 球场简介
8.6.2 笛卡尔坐标系的定义
8.6.3 角度的定义
8.6.4 极坐标的定义
8.6.5 计算机器人的位置
8.6.6 计算机器人的身高
8.6.7 计算机器人身体的面向角度
8.6.8 计算其他物体的位置
8.6.9 局部视觉下机器人位置的计算
8.7 程序的框架结构
8.7.1 球员的创建和初始化
8.7.2 功能模块的设计
8.8 展望
练习与思考
附录1 Linux基础
1.Linux操作系统简介
1.1 Linux的历史
1.2 Linux的特点
2.Linux常用命令
2.1 登录和退出
2.2 Linux系统的外壳
2.3 外壳常用命令
3.Linux下的文件类型与权限管理
3.1 文件类型说明
3.2 文件权限
3.3 修改文件权限
4.Linux下的编辑器
4.1 vi编辑器简介
4.2 vi常用的移动命令
4.3 屏幕滚动命令
5.Linux下的集成开发环境
5.1 KDevelop
5.2 Anjuta
5.3 NetBeans
附录2 机器人足球赛程序设计实验指导书
实验1 机器人足球比赛编程预备知识
实验2 Demeer5基本动作1
实验3 Demeer5基本动作2
实验4 复杂的动作决策
实验5 特殊比赛模式的设计
实验6 数据采集及个体技术训练
实验7 机器人足球队的完整设计
参考文献