温州中学自主足球机器人系统 1
概要设计说明书
一、引言
1. 编写目的
为了引导系统详细设计、控制工程进度计划,特编写此文档。此文档供参与设计和构建的小组成员阅读,同时也供所有项目参与者参考。
2. 背景
1) 本项目名为:温州中学自主足球机器人系统。
2) 本项目由王盛业提出,由项目团队研发,供代表我校参赛的选手使用,在机器
人上运行。
3. 定义
机器人指符合比赛规则的、在正常情况下无人工操作情况下能够完成寻球、射门、防守等动作的,以电能为主要能源的小车模型。
4. 参考资料
参考资料包括往年的设计方案及程序、机器人厂商提供的方案、往年比赛视频记录,以及一切可以获取的关于足球机器人设计的资料及经验。
二、总体设计
1. 需求规定
1) 系统功能
a) 进攻足球机器人应当能够较为精确地定位自身和足球的位置,判断所处环
境周边的障碍情况,尽量减少碰撞,在保证己方被进球风险较小的情况下,
获得对球的控制,将球送往对方的球门。
b) 防守足球机器人一般情况在留在己方球门附近,发现对方的靠近,分析进
球风险,予以拦截足球或对抗对方机器人。防守机器人应当在有力时机及
时转变为进攻模式,组成双进攻阵型,及时出击。
c) 上位机应接收无线信号,将各参数显示在计算机屏幕上。并对可能出现的
危险情况及时提出警告和处理意见。能够在用户授权的情况下以保护系统
为理由,紧急停止系统运行。能够在用户的操作下指令机器人完成特定动
作。
2) 系统性能
a) 运算能力
系统基于Atmel公司生产的AVR系列8位单片机。考虑到主控软件较复
杂,应采用具有较大程序内存的型号。为了防止主控运算负荷过重,应设置辅
助单片机,根据功能需要选择体积较小的型号。
b) 数据精度
对于足球定位、障碍测定,在目标物体较远的情况下,应达到300mm左
右的误差精度,在目标物体较近的情况下,应达到50mm左右的误差精度。
c) 时间特性要求
传感器的数据刷新间隔应当小于50ms。无线通讯延时不应超过500ms。
d) 可靠性
机器人机械结构应当能承受超过20g的加速度。其软硬件系统在5g的加
速度下不应发生错误。在意外错误下,机器人应当自我复位并重新开始运行。
温州中学自主足球机器人系统 2
e) 灵活性
机器人在遇到障碍的时候,应当能够准确地绕开。应当能够计算合适的路线并按照路线运行。系统应具有良好的设计与外部接口,方便以后的扩展。 f) 故障处理要求
在遭遇故障时应当向操作者报警。当部件遭遇严重危险情况时,在用户授权的情况下,应当强制停止系统运行。
g) 动力能力
系统的对抗能力应当超过原有系统(即杭州纳英特公司提供的产品)。
2. 运行环境
1) 外部设备
a) USB JTAG仿真器,用于在构建时期向AVR单片机下载和仿真程序的运
行。
b) USB AVR ISP下载器,用于在AVR单片机JTAG非使能时向AVR单片机
下载程序、修改熔丝位。
c) 电池充电器,用于补充电池能量。
d) 个人便携式计算机,用于修改与调整程序。
2) 支持软件
a) AVR Studio软件,用于AVR单片机程序的编写与下载、仿真。 b) WinAVR软件,用于编译AVR C++文件。
c) GNU C++和Code::Blocks和wxWidgets、Visual C#、Visual Basic或Java
J2SE其中的一个,用于开发上位机软件。
3. 基本设计概念和处理流程
温州中学自主足球机器人系统 3
4. 结构
温州中学自主足球机器人系统 4
6. 人工处理过程
1) 系统的启动、关闭、检修。 2) 传感器的校正。 7. 尚未解决的问题
1) 电机、驱动板的选型。 2) 传感器的选型。 3) 可扩展接口。 4) 数据传输协议。
三、接口设计
1. 用户接口
1) 详细的参数设置在上位机上进行,启动、停机、标定等操作在机器人上进行。 2) 上位机提供图形用户界面,以便于操作。机器人上的按键操作不宜过多。 2. 外部接口
1) 引出SPI、I2C接口,方便后期扩展。 3. 内部接口
1) 各分立单片机间通过SPI接口(序列周边接口)或I2C/TWI接口(面向字节的
二线接口)连接,考虑到数据传输速度,应当以SPI接口为主。
2) 单片机与其余模块也通过SPI接口或I2C/TWI接口连接,但与温度芯片
DS18B20通讯时使用1-Wire接口。
四、系统出错处理设计
1. 出错信息
1) 单片机意外重新启动。 2) 部分模块无响应。 3) 无线通讯中断。 4) 没有发现光源。 5) 电源电压低。 6) 电流过大。 7) 部件过热。
温州中学自主足球机器人系统 5
2. 补救措施
1) 后备技术
a) 单片机将运行参数周期性写入EEPROM中,防止突然的意外重启。 b) 提供2台备份机器人。 2) 降效技术
a) 某传感器错误,则忽略对应传感器返回的数值,或根据其他传感器的数值
推算。
b) 若无线通讯模块失效,则屏蔽该模块。
c) 提供直冲模式,在主控失效的情况下,机器人应能以最大功率前进。 d) 若严重过热,则限制最大功率。 3) 恢复及再启动技术
a) 所有单片机启动内置看门狗程序,防止程序跑飞或严重错误时不能恢复。
3. 系统维护设计
1) 系统中的技术监控模块即可以帮助调试和故障排除。
五、测试方案
1. 寻光模块的测试
1) 测试模块是否能返回最可能的光源位置。 2) 取一个标准发光足球,在模块周围固定的不同地方放置,看是否与标定过后的
标准值相符。
2. 避障模块的测试
1) 测试模块是否能精确的判断周边的障碍离他的距离。 2) 重视有偏角的情况。
3) 用一块木板、一台机器人分别测试。放在对应传感器附近,观察返回值与标定
后的标准值的差别。
3. 方位模块的测试
1) 在某固定位置标定。
2) 按一定的速度,如低速、中速、高速分别移动机器人,观察数值偏差。 4. 技术监控模块的测试
1) 用万用表对数值进行复校,观察数据偏差。 5. 无线通讯模块的测试
1) 向上位机、协作机发送特定数据,计算误码率和丢包率。 2) 从上位机、协作机接收特定数据,计算误码率和丢包率。 3) 混合发送接收,计算误码率和丢包率。
六、项目时间进度
第二篇:概要设计文档
概要设计说明书
题目:p2p系统 Napster
组长: 李雨生 3005218065
成员: 李雨生 3005218065
王尽宇 3005218077 张亮 3005218084 鲁帅 3005218068
裴嵩 3005218071
张棘勇 3004218145
助教: 施文娟 杨文燕 指导教师: 王庆节 许林英 杨海琛
开始时间: 20xx年8月1日
结束时间: 20xx年9月30日
编号:TJ2004-RJXY-No-3
目 录
概要设计说明书(Architectural Design Specification) ............................................................... 1
1.引言 ............................................................................................................................................... 1
1.1编写目的 ............................................................................................................................. 1
1.2项目背景 ............................................................................................................................. 1
1.3参考资料 ............................................................................................................................. 1
2.任务概述........................................................................................................................................ 1
2.1目标 ..................................................................................................................................... 1
2.2运行环境 ............................................................................................................................. 2
3.总体设计........................................................................................................................................ 2
3.1处理流程 ............................................................................................................................. 2
3.2总体结构和模块外部设计 ................................................................................................. 4
3.3功能分配 : ....................................................................................................................... 5
4.接口设计........................................................................................................................................ 6
4.1外部接口 ............................................................................................................................. 6
4.2内部接口 ............................................................................................................................. 6
5.数据结构设计 ................................................................................................................................ 6
5.1逻辑结构设计 ..................................................................................................................... 6
5.2物理结构设计 ..................................................................................................................... 7
5.3数据结构与程序的关系 ..................................................................................................... 7
6.运行设计........................................................................................................................................ 7
6.1运行模块的组合 ................................................................................................................. 7
6.2运行控制 ............................................................................................................................. 7
7.出错处理设计 ................................................................................................................................ 8
7.1出错输出信息 ..................................................................................................................... 8
7.2出错处理对策 ..................................................................................................................... 8
8.安全保密设计 ................................................................................................................................ 8
8.1安全设计: ......................................................................................................................... 8
8.2保密设计 ............................................................................................................................. 8
概要设计说明书(Architectural Design Specification)
1.引言
1.1编写目的
对系统的初步设计做一个总结。小组人员可根据模块划分分配工作继续详细系统设计。测试人员可根据该文档产生初步的测试计划书。
1.2项目背景
本次工程为天津大学软件学院2005级本科生实习,我们通过理解Napster的原理,回顾课堂学到的知识与查阅相关资料,利用C#语言编写出P2P系统,来解决下载MP3文件与聊天的问题,用以巩固以前学习的知识与提高自己的编程水平,深刻理解整个软件工程的流程与各个阶段的任务。
1.3参考资料
系统的设计,编码和维护文档将遵照《计算机软件开发规范》来编写
2.任务概述
2.1目标
开发一款具有Napster原理的P2P系统软件,包括客户机和服务器软件,面向广大喜爱音乐的个人用户,使其能方便快捷的搜索和下载喜欢的音乐。
1
2.2运行环境
满足以下条件的个人电脑或者组织网络服务器: ? 用户电脑应使用windows操作系统 ? 网络支持TCP/IP,速度不低于10kbps
3.总体设计
3.1处理流程
连接处理活动图, UI处理活动图
图1 连接处理活动图
2
图2 客户注册时序图
图3 登录时序图(搜索时序图类似)
3
图4 下载歌曲时序图
3.2总体结构和模块外部设计
3.2.1逻辑架构
图5逻辑架构图
4
注释:Thread1是服务器持续运行的一个监听请求处理线程,负责与所有的客户端通信。 Thread2是客户端一个持续运行的监听处理线程,当它接受到别的客户端的下载请求
时,则创建一个用来传输文件的线程Thread3,负责上传文件。
3.2.2 类图:
图6 类图
3.3功能分配 :
整个软件可划分为2大模块 :连接模块 和 数据管理模块 1.连接模块: 1.1主要功能:
处理远程用户的连接请求; 用户验证;
5
搜索文件;
传输文件;
1.2涉及的类:
ServerForm1,ClientForm1,TcpListener,Thread,TcpClient,NetworkStream,nth
2.数据管理模块:
该模块继续划分: 用户帐户管理,上传文件管理
2.1 用户帐户管理
2.1.1 主要功能
查看用户信息;
2.1.2 涉及的类
TcpClient,NetworkStream, SqlConnection, SqlCommand, SqlDataReader
2.2 上传文件管理
2.2.1 主要功能
查看音乐文件信息;
即使更新文件信息;
2.2.2 涉及的类
TcpClient,NetworkStream, SqlConnection, SqlCommand, SqlDataReader
4.接口设计
4.1外部接口
1.1 用户界面示意图:
1.2 硬件接口:标准接口
1.3 软件接口:通信接口
4.2内部接口
5.数据结构设计
5.1逻辑结构设计
? 服务器信息:class Thread
? 连接处理:class TcpClient
? 图形界面:class ServerForm1,ClientForm1
? 帐户信息:没有单独的类,保存在数据库表项中
6
5.2物理结构设计
数据存储于Windows的文件系统中。
5.3数据结构与程序的关系
服务器信息:用户界面的服务器配置栏。
帐户信息:用户界面的帐户管理栏。
在线用户信息:查询到的IP地址。
6.运行设计
6.1运行模块的组合
程序运行时内存中将会存在2种线程和3个数据对象
2种线程:
第一类线程是监听线程,服务器和客户端都只有一个,主要负责监听别人的请求; 第二类线程是传输文件线程,只存在于客户端中,每个客户端存在0个至若干个,主要负责把指定目录下的文件传输给其它用户。
3种数据对象:
Byte字节流,用于传输给别的服务器或客户端;
String,用于得到别的服务器或者客户端发来的信息;
Filestream,用于保存传输来的文件。
6.2运行控制
ServerForm1 控制Server监听线程的启动和终止。
ClientForm1控制Client监听线程的开启和终止。
有文件传输要求的时候,客户端自动开启一个线程,进行文件传输,这个线程是由请求响应开启的,当传输文件结束时候会自动关闭线程。
服务器维护数据库中客户信息和客户登陆表的信息,通过与客户端通信来达到修改数据库的操作。
7
7.出错处理设计
7.1出错输出信息
出错信息将由系统通过对话框自动提示。
7.2出错处理对策
2.1 Server出错
解决方法:Form1可检测Server线程的状态,并在其出错的时候重启它。
2.2 Connection 出错
解决方法:可能的话,向远程用户发送出错信息。
2.3 server配置文件被破坏
解决方法:创建默认配置文件
2.4 硬盘上的用户数据被破坏
解决方法:关闭当前服务,通知管理员数据被破坏,服务已被禁止。要求管理员修复数据(或者清除数据),然后重启。
8.安全保密设计
8.1安全设计:
根据优先级的不同和实际进度,最终可能有部分功能无法实现。 ? 服务器连接上限
? 账号连接上限
? IP连接上限
? X分钟内Y次连接,禁止该IP Z分钟
? 帐户权限设置
通过一系列权限设置,一定程度上防止了恶意攻击,并提高了服务器的无错误持续运转时间。
8.2保密设计
帐户信息文件均通过加密存储在本地硬盘,防止了帐户信息的泄漏。
8