hcr 软件需求和构架

36
讨讨讨 [email protected] 2008-09-03 V0.03

Upload: danielle-green

Post on 30-Dec-2015

247 views

Category:

Documents


0 download

DESCRIPTION

HCR 软件需求和构架. 讨论稿 [email protected] 2008-09-03 V0.03. HCR – 家用监护机器人. 互联网个人兴趣开源项目 HCR 项目 QQ 群号: 65524419 发起贴 http://bbs.roboticfan.com/topic.aspx?topicid=6046 项目状况 http://bbs.roboticfan.com/board.aspx?boardid=62. HCR – 项目基本目标. 尝试机器人开源合作模式 创建一个可扩展的机器人机械、硬件平台;使广大机器人爱好者有一个学习平台 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: HCR 软件需求和构架

讨论稿[email protected]

2008-09-03 V0.03

Page 2: HCR 软件需求和构架

互联网个人兴趣开源项目 HCR项目 QQ群号: 65524419

发起贴http://bbs.roboticfan.com/topic.aspx?topicid=6046 项目状况http://bbs.roboticfan.com/board.aspx?boardid=62

Page 3: HCR 软件需求和构架

1. 尝试机器人开源合作模式2. 创建一个可扩展的机器人机械、硬件平台;使广大机器人爱好者有一个学习平台

3. 实现 HCR定义的功能

某种意义上, 1 , 2 比 3 还重要。 但是 3 是项目成功的具体目标

Page 4: HCR 软件需求和构架

主人通过 HCR可查看家中的情况(视音频)。 主人可下达特定任务:如 360度巡视。 可扩展家庭防盗,门禁,娱乐。

1 )自动壁障:能够自动避开障碍物 2 )互联网控制:能够通过 Internet进行远程控制,并加装有摄像头

3 )自动充电:在电量不足的情况下,自动寻找坞站,进行充电

Page 5: HCR 软件需求和构架

1 、有接触式避障和非接触式避障功能。这是室内巡航的基本条件。 2 、有边沿检测功能,不能掉到楼梯底下。 3 、有接受警戒线信号的功能,有些危险地方划定警戒线,不能入内。 4 、有失控保护功能。防止失控,如电机飞车到处乱跑,撞伤东西。 5 、有电池管理功能。防止过充过放引起电池损坏、起火等。 这些是基本的安全保障功能,非常重要。 6 、有交互功能,能有简单的语音交互,动作交互,没有交互在家庭中就不可能用起来。

7 、有无线功能。它不能拖着线跑,也不能在地上到处跑,我们要控制它就得追上它,把它的开关关掉。要能够无线控制,我们随时能够获取它的控制权,在危险条件下随时中断机器人的作业。

8 、有视觉,这是最基本的家庭监控功能。 9 、能够接入以太网,能够在远程进行控制。 10、有动作执行机构,只有两个轮子一个摄像头起不到什么作用。至少要有一双简单的机械手和一个可转动的头部。

11、有气体、温度传感器,能够对气体、火源进行监控。 12、有一定的娱乐功能,比如能够识别人脸并记住,下次遇见的时候能说一些比较有趣的话。

Page 6: HCR 软件需求和构架

HCRHCRInterne

t

Internet

Mobile Networ

k

随时查看随时查看录像录像放音放音通话通话

Page 7: HCR 软件需求和构架

HCRHCR

机械平台机械平台

运动平台运动平台

硬件平台硬件平台

软件开放平台

软件开放平台

算法库算法库

交流平台交流平台

Page 8: HCR 软件需求和构架

支持远程控制运动 支持远程视音频监控 支持自主巡航;自主避障 支持自动充电

Page 9: HCR 软件需求和构架

室内定位算法 支持无线数据连接 导航功能(自动充电返回;门窗监控)

通用开发平台( XP Embedded, VC++) 考虑可移植性

Page 10: HCR 软件需求和构架

移动性 响应时间

TBC

视频分辨率 320×240

Page 11: HCR 软件需求和构架

待机态(巡航 )

待机态(巡航 )

自主任务态

自主任务态

被控态(远程操控 )

被控态(远程操控 )

主人远程操控

远程操控释放

内部触发(如

低电)

任务

完成

下达

命令

命令

完成

待机态:• 自主巡航• 等待命令

被控态:• 主人通过远程 PC 或手机控制 HCR运动和功能

自主任务态:• 由系统触发

或主人下达命令

• HCR自主完成特定任务;如自动充电。

主人

强制中断

Page 12: HCR 软件需求和构架
Page 13: HCR 软件需求和构架

MiniPC/XP Embedded

运动控制板

机体控制板

传感器采集板

GPRS模块 摄像头 WiFi 卡

电机 机械臂云台

红外超声波

RS232,自定义协议RS232,标准协议; ATUSB,标准协议;涉及驱动使用USB/PCMCIA,标准协议

总线 TBD

Page 14: HCR 软件需求和构架

MiniPC/XP Embedded

运动控制板

机体控制板

传感器采集板

GPRS模块 WiFi 卡

电机 机械臂云台

红外超声波

RS232,自定义协议RS232,标准协议; ATUSB/PCMCIA,标准协议

独立WiFi摄像头

WiFi摄像头和主控完全独立,有自己的内部IP地址,视频服务器,可单独访问 (WEB),简化系统复杂性。

实用性集成在远程控制客户端完成

WiFi摄像头和主控完全独立,有自己的内部IP地址,视频服务器,可单独访问 (WEB),简化系统复杂性。

实用性集成在远程控制客户端完成

总线 TBD

Page 15: HCR 软件需求和构架

System ManagerSystem Manager

运动执行接口运动执行接口 传感器数据采集传感器数据采集机体控制执行机体控制执行

定位, SLAM定位, SLAM运动控制:避障运动控制:避障

自主任务子系统:充电等

自主任务子系统:充电等

待机子系统(巡航)

待机子系统(巡航)

被控子系统(远程控制)被控子系统(远程控制)

GPRS控制GPRS控制

……

……

逻辑层

控制层

接口层

传感响应与执行层

守护进程

守护进程

远程控制客户端 PC

远程控制客户端

Windows Mobile

测试客户端测试客

户端

测试控制单元

测试控制单元

传感器控制传感器控制

电机控制电机控制

仿真接口单元

仿真接口单元

运动响应:紧急处理;停止

运动响应:紧急处理;停止

总线; RS232; TTL…TCP/IPOn WiFi

TCP/IP;存储;声音;

Web Server

TCP/IP;存储;声音;

Web Server

功能单元功能单元

CPU

机体控制机体控制

电机控制板 传感器控制板 机体控制板

机体响应机体响应

HCRHCR功能单元间通信

Page 16: HCR 软件需求和构架

功能单元Function

Unit

功能单元Function

Unit

FU 完成特定功能可运行程序组。此功能可能是底层的,也可能是高层的FU有统一构架FU是可能是跨进程的,跨 CPU的FU 之间是通过消息通信的FU是有优先级的

考虑未来移植性和跨平台性, FU通信使用最基本的消息机制,而不使用高级的跨平台通信机制

同上, FU构架使用标准 C++,保证 X86, ARM平台编译器均适用

上位机开发使用 VC++,但核心部分不会使用任何MFC 或平台相关特性;测试或 UI部分需要界面部分作为独立 FU,不考虑移植性

取消息取消息

处理消息处理消息

Page 17: HCR 软件需求和构架

功能单元Function

Unit

功能单元Function

Unit

取消息取消息

处理消息处理消息

struct FUMsgHead{ U16 wSenderCPU_ID; U16 wSenderFU_ID; U16 wRecverCPU_ID; U16 wRecverFU_ID; U16 wMsgID; U16 wMsgLength;}

class CFU{private: virtual void SendMessage(FUMSG * pFUMSG); virtual void PostMessage(FUMSG * pFUMSG); public: int m_priority; void Run(); void ProcessMessage(); ...... }

class CFUManager{public: FUList *pFUList; ......

}

Page 18: HCR 软件需求和构架

FU管理器是系统的调度核心FU管理器提供统计分析功能;可以给出性能数据

消息管理器是 FU管理器的一部分

Page 19: HCR 软件需求和构架

跨 CPU的消息机制相对简单由 CPU内消息管理器发送至特定 CPU(根据消息头)在测试或调试模式下,消息管理器可能会 COPY一份消息到测试模块

跨 CPU 消息只提供消息队列机制: SendMessage同 PostMessage

Page 20: HCR 软件需求和构架

CPU内部消息使用内存处理

提供直接处理机制( SendMessage)和队列处理机制 PostMessage

直接处理机制:用于取得数据等操作,效率等同函数级调用跨平台移植时,有可能会定义 SendMessage和 PostMessage 相同

队列处理机制标准消息处理方法

Page 21: HCR 软件需求和构架

子系统符合功能单元( FU)构架

但是子系统中可能附加更复杂的功能,例如:1. 图形编程语言编译 / 解释2. Web功能的集成3. 声音图像的处理

待补充

Page 22: HCR 软件需求和构架

完成巡航的上层逻辑控制以完成地图的绘制 等待远端控制或自主任务

Page 23: HCR 软件需求和构架

需完成多自主任务框架

Phase1 仅实现自动充电功能 根据定位信息实现导航 导航算法在此实现

Page 24: HCR 软件需求和构架

此子系统涉及较多外延技术,但并不涉及太多 Robot 相关技术

定义,实习远程网络控制协议 根据远程操控命令控制 HCR 运动

Page 25: HCR 软件需求和构架

1 )充电站可见红外 + 超声波定位

2 )充电站不可见航迹推算:编码器 + 加速度传感器

Page 26: HCR 软件需求和构架

每次启动以充电座为坐标系 充电座加红外和超声波传感器

超出范围使用航迹推算法

需细化

Page 27: HCR 软件需求和构架

待补充

Page 28: HCR 软件需求和构架

导航和定位结合主要使用在自动充电功能中:从一个充电座不可见的位置返回到充电座自动充电

考虑栅格法描述地图

Page 29: HCR 软件需求和构架

基于消息的收发,可以实现特定 FU 或子系统的测试

Page 30: HCR 软件需求和构架

模拟实现部分 FU 后,可以由软件系统仿真 HCR的工作情况

Page 31: HCR 软件需求和构架

System ManagerSystem Manager

运动执行接口运动执行接口 传感器数据采集传感器数据采集机体控制执行机体控制执行

定位, SLAM定位, SLAM运动控制:避障运动控制:避障

自主任务子系统:充电等

自主任务子系统:充电等 待机子系统

(巡航)

待机子系统(巡航) 被控子系统

(远程控制)

被控子系统(远程控制)

GPRS控制GPRS控制

……

……

逻辑层

控制层

接口层

传感响应与执行层

守护进程

守护进程

远程控制客户端 PC

远程控制客户端Windows

Mobile

测试客户端

测试客户端

测试控制单元

测试控制单元

传感器控制

传感器控制电机

控制

电机控制

仿真接口单元

仿真接口单元

运动响应:紧急处理;停止

运动响应:紧急处理;停止

总线; RS232; TTL…TCP/IPOn WiFi

TCP/IP;存储;声音;Web Server

TCP/IP;存储;声音;Web Server

功能单元功能单元

CPU

机体控制

机体控制

电机控制板 传感器控制板 机体控制板

机体响应

机体响应

HCRHCR功能单元间通信

形成通用算法库

形成通用算法库

Page 32: HCR 软件需求和构架

系统: 1+人运动控制: 1+人定位: 1+人接口层: 1 人3 个子系统: 3 人控制板嵌入式软件: TBC

PC远程控制软件: TBC手机远程控制软件: TBC

测试系统: 1 人

开发工具 上位机:MS VC++ 控制板: ADS ?仿真: TBD

版本管理: SVN/CVS

System Manager

运动执行接口 传感器数据采集机体控制执行

定位,SLAM运动控制:避障

自主任务子系统:充电等

待机子系统(巡航)

被控子系统(远程控制)

GPRS控制

逻辑层

控制层

接口层

传感响应与执行层

守护进程

远程控制客户端PC

远程控制客户端

Windows Mobile

测试客户端

测试控制单元

传感器控制

电机控制

仿真接口单元

运动响应:紧急处理;停止

总线;RS232;TTL…TCP/ IPOn WiFi

TCP/ IP;存储;声音;Web Server

功能单元

CPU

机体控制

电机控制板 传感器控制板 机体控制板

机体响应

HCR功能单元间通信

Page 33: HCR 软件需求和构架

HCR

充电坞站

(( X1,Y1)X1,Y1)

HCR(( X2,Y2)X2,Y2)

充电站可见

充电站不可见

1 )充电站可见红外 + 超声波定位

2 )充电站不可见航迹推算:编码器 + 加速度传感器

Page 34: HCR 软件需求和构架

运动控制系统的实现上位机运动控制和传感响应运动的分工? 性能问题

硬件相关上位机和各个控制板连接使用总线还是单独连接 性能问题?

Page 35: HCR 软件需求和构架

2008.08.28 V0.02参考云淡和大笨龙的建议,调整软件整体构架映射,覆盖总线机制

2008-09-03 V0.03细化部分软件描述

Page 36: HCR 软件需求和构架

期待您的补充 !

MSN: [email protected]