1 / 36

HCR 软件需求和构架

HCR 软件需求和构架. 讨论稿 nonstop2050@hotmail.com 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 – 项目基本目标. 尝试机器人开源合作模式 创建一个可扩展的机器人机械、硬件平台;使广大机器人爱好者有一个学习平台

Download Presentation

HCR 软件需求和构架

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HCR软件需求和构架 讨论稿 nonstop2050@hotmail.com 2008-09-03 V0.03

  2. HCR – 家用监护机器人 • 互联网个人兴趣开源项目 • HCR项目QQ群号:65524419 • 发起贴 http://bbs.roboticfan.com/topic.aspx?topicid=6046 • 项目状况 http://bbs.roboticfan.com/board.aspx?boardid=62

  3. HCR – 项目基本目标 • 尝试机器人开源合作模式 • 创建一个可扩展的机器人机械、硬件平台;使广大机器人爱好者有一个学习平台 • 实现HCR定义的功能 • 某种意义上,1,2比3还重要。 • 但是3是项目成功的具体目标

  4. HCR – 功能定义 Phase 1 • 主人通过HCR可查看家中的情况(视音频)。 • 主人可下达特定任务:如360度巡视。 • 可扩展家庭防盗,门禁,娱乐。 • 1)自动壁障:能够自动避开障碍物 • 2)互联网控制:能够通过Internet进行远程控制,并加装有摄像头 • 3)自动充电:在电量不足的情况下,自动寻找坞站,进行充电

  5. HCR – 功能定义 后续扩充部分 • 1、有接触式避障和非接触式避障功能。这是室内巡航的基本条件。 • 2、有边沿检测功能,不能掉到楼梯底下。 • 3、有接受警戒线信号的功能,有些危险地方划定警戒线,不能入内。 • 4、有失控保护功能。防止失控,如电机飞车到处乱跑,撞伤东西。 • 5、有电池管理功能。防止过充过放引起电池损坏、起火等。 • 这些是基本的安全保障功能,非常重要。 • 6、有交互功能,能有简单的语音交互,动作交互,没有交互在家庭中就不可能用起来。 • 7、有无线功能。它不能拖着线跑,也不能在地上到处跑,我们要控制它就得追上它,把它的开关关掉。要能够无线控制,我们随时能够获取它的控制权,在危险条件下随时中断机器人的作业。 • 8、有视觉,这是最基本的家庭监控功能。 • 9、能够接入以太网,能够在远程进行控制。 • 10、有动作执行机构,只有两个轮子一个摄像头起不到什么作用。至少要有一双简单的机械手和一个可转动的头部。 • 11、有气体、温度传感器,能够对气体、火源进行监控。 • 12、有一定的娱乐功能,比如能够识别人脸并记住,下次遇见的时候能说一些比较有趣的话。

  6. HCR使用场景 – 实用性 Internet 随时查看 录像 放音 通话 Mobile Network Internet HCR

  7. HCR使用场景 – 学习性 交流平台 算法库 机械平台 软件开放平台 运动平台 HCR 硬件平台

  8. HCR Phase1软件功能需求 • 支持远程控制运动 • 支持远程视音频监控 • 支持自主巡航;自主避障 • 支持自动充电

  9. HCR软件系统需求 • 室内定位算法 • 支持无线数据连接 • 导航功能(自动充电返回;门窗监控) • 通用开发平台(XP Embedded,VC++) • 考虑可移植性

  10. HCR软件性能需求 - TBC • 移动性 • 响应时间 • TBC • 视频分辨率 • 320×240

  11. HCR – 工作状态 被控态(远程操控) • 待机态: • 自主巡航 • 等待命令 • 被控态: • 主人通过远程PC或手机控制HCR运动和功能 • 自主任务态: • 由系统触发或主人下达命令 • HCR自主完成特定任务;如自动充电。 主人远程操控 待机态(巡航) 远程操控释放 下达命令 内部触发(如低电) 命令完成 主人强制中断 任务完成 自主任务态

  12. HCR系统框图 - erobot

  13. HCR功能模块简化映射 – 模型1 MiniPC/XP Embedded RS232,自定义协议 RS232,标准协议;AT USB,标准协议;涉及驱动使用 USB/PCMCIA,标准协议 总线TBD 运动控制板 机体控制板 传感器采集板 GPRS模块 摄像头 WiFi 卡 电机 机械臂 云台 红外 超声波

  14. HCR功能模块简化映射 – 模型2 MiniPC/XP Embedded RS232,自定义协议 RS232,标准协议;AT USB/PCMCIA,标准协议 WiFi摄像头和主控完全独立,有自己的内部IP地址,视频服务器,可单独访问(WEB),简化系统复杂性。 实用性集成在远程控制客户端完成 总线TBD 运动控制板 机体控制板 传感器采集板 GPRS模块 WiFi 卡 电机 机械臂 云台 红外 超声波 独立WiFi摄像头

  15. HCR软件构架 - 系统模型2 远程控制客户端PC 守护进程 TCP/IP; 存储;声音; Web Server System Manager 待机子系统(巡航) 被控子系统 (远程控制) 测试 控制单元 仿真接口单元 自主任务子系统:充电等 远程控制客户端Windows Mobile 逻辑层 控制层 接口层 传感响应与执行层 运动控制:避障 定位,SLAM GPRS控制 … 运动执行接口 机体控制执行 传感器数据采集 … 测试客户端 TCP/IP On WiFi 总线;RS232;TTL… 运动响应:紧急处理;停止 电机 控制 传感器控制 机体控制 机体响应 功能单元 功能单元间通信 CPU HCR 电机控制板 传感器控制板 机体控制板

  16. HCR软件构架 – 功能单元/FU • FU完成特定功能可运行程序组。此功能可能是底层的,也可能是高层的 • FU有统一构架 • FU是可能是跨进程的,跨CPU的 • FU之间是通过消息通信的 • FU是有优先级的 • 考虑未来移植性和跨平台性,FU通信使用最基本的消息机制,而不使用高级的跨平台通信机制 • 同上,FU构架使用标准C++,保证X86, ARM平台编译器均适用 • 上位机开发使用VC++,但核心部分不会使用任何MFC或平台相关特性;测试或UI部分需要界面部分作为独立FU,不考虑移植性 功能单元 Function Unit 取消息 处理消息

  17. HCR软件构架 – 功能单元/FU 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; ...... } 功能单元 Function Unit 取消息 处理消息

  18. FU – FU管理器 • FU管理器是系统的调度核心 • FU管理器提供统计分析功能;可以给出性能数据 • 消息管理器是FU管理器的一部分

  19. FU – 跨CPU消息处理机制 • 跨CPU的消息机制相对简单 • 由CPU内消息管理器发送至特定CPU(根据消息头) • 在测试或调试模式下,消息管理器可能会COPY一份消息到测试模块 • 跨CPU消息只提供消息队列机制:SendMessage同PostMessage

  20. FU – CPU内消息处理机制 • CPU内部消息使用内存处理 • 提供直接处理机制(SendMessage)和队列处理机制PostMessage • 直接处理机制: • 用于取得数据等操作,效率等同函数级调用 • 跨平台移植时,有可能会定义SendMessage和PostMessage相同 • 队列处理机制 • 标准消息处理方法

  21. HCR软件构架 – 子系统SubSys • 子系统符合功能单元(FU)构架 • 但是子系统中可能附加更复杂的功能,例如: • 图形编程语言编译/解释 • Web功能的集成 • 声音图像的处理 • 待补充

  22. SubSys – 待机子系统 • 完成巡航的上层逻辑控制以完成地图的绘制 • 等待远端控制或自主任务

  23. SubSys – 自主任务子系统 • 需完成多自主任务框架 • Phase1仅实现自动充电功能 • 根据定位信息实现导航 • 导航算法在此实现

  24. SubSys – 被控子系统 • 此子系统涉及较多外延技术,但并不涉及太多Robot相关技术 • 定义,实习远程网络控制协议 • 根据远程操控命令控制HCR运动

  25. 定位 – 实现方法的选择 1)充电站可见 红外+超声波定位 2)充电站不可见 航迹推算: 编码器+加速度传感器

  26. 定位 – 算法 • 每次启动以充电座为坐标系 • 充电座加红外和超声波传感器 • 超出范围使用航迹推算法 • 需细化

  27. 定位 – 误差补偿方法 • 待补充

  28. 导航 – 算法,地图描述 导航和定位结合主要使用在自动充电功能中: 从一个充电座不可见的位置返回到充电座自动充电 考虑栅格法描述地图

  29. 测试 – 测试模块构架 基于消息的收发,可以实现特定FU或子系统的测试

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

  31. HCR软件构架 – 通用算法库 形成通用算法库 远程控制客户端PC 守护进程 TCP/IP; 存储;声音; Web Server System Manager 待机子系统(巡航) 被控子系统 (远程控制) 测试 控制单元 仿真接口单元 自主任务子系统:充电等 远程控制客户端Windows Mobile 逻辑层 控制层 接口层 传感响应与执行层 运动控制:避障 定位,SLAM GPRS控制 … 运动执行接口 机体控制执行 传感器数据采集 … 测试客户端 TCP/IP On WiFi 总线;RS232;TTL… 运动响应:紧急处理;停止 电机 控制 传感器控制 机体控制 机体响应 功能单元 功能单元间通信 CPU 电机控制板 传感器控制板 机体控制板 HCR

  32. HCR软件构架 – 人员,工具 系统:1+人 运动控制:1+人 定位:1+人 接口层:1人 3个子系统:3人 控制板嵌入式软件:TBC PC远程控制软件:TBC 手机远程控制软件:TBC 测试系统:1人 开发工具 上位机:MS VC++ 控制板:ADS? 仿真:TBD 版本管理:SVN/CVS

  33. HCR几个问题的讨论 – 定位 充电站可见 1)充电站可见 红外+超声波定位 2)充电站不可见 航迹推算: 编码器+加速度传感器 HCR HCR (X1,Y1) 充电坞站 (X2,Y2) 充电站不可见

  34. HCR几个问题的讨论 –大脑和神经系统 • 运动控制系统的实现 • 上位机运动控制和传感响应运动的分工? • 性能问题 • 硬件相关 • 上位机和各个控制板连接使用总线还是单独连接 • 性能问题?

  35. 更改记录 • 2008.08.28 V0.02 • 参考云淡和大笨龙的建议,调整软件整体构架映射,覆盖总线机制 • 2008-09-03 V0.03 • 细化部分软件描述

  36. 期待您的补充! MSN: nonstop2050@hotmail.com

More Related