11.23-操作者框架与语音识别和语义规划集成

远景

  • 除了使用‘模型操作者’进行规划外,还专门构建一个‘算法操作者’进行算法选择及计算。
    • 在这里,一个操作者即一个类,在进行静态及动态建模中使用COMET建模方法
  • 随着消息通信机制的日益复杂,应该使用多层嵌套操作者框架,参考蒸发冷却器的项目设计。
  • 除了操作者及消息使用OO方法进行设计之外,其他所有程序都要使用OO进行设计,此时需要深刻理解软件建模,面向对象系统分析的技术。

操作者框架程序损坏问题(应用程序引用无效错误)

  • 原因不明,表现为stopcore.vi等很多VI的类的数据簇结构无法解绑
    • 可能原因是,同时打开多个包含操作者框架的项目文件,造成多写者问题
  • 解决方法暂时为将备份的操作者框架Actor文件夹覆盖已损坏的文件夹

P3AT操作者远程化改造

修改主操作者

  • 修改主调端的‘启动根操作者’
    • 修改主调操作者的数据簇和成员函数
    • 修改主调操作者的启动函数‘loadapp.vi
  • 添加主调操作者的消息函数
    • connected.vi
    • 连接成功消息,不适用框架消息制作器,直接新建类,更改类继承机制
    • 如果找不到应该继承的connected message.lvcalss 类,先尝试在某vi中放入一个nested endpoint.lvclass 对象常量,让项目自动包含一些库。
  • 修改核心函数actor core.vi
    • 事件结构

修改P3AT本地操作者

  • 改名为‘Remote Endpoint P3AT Actor
  • 修改操作者类簇结构和成员函数
  • 修改消息类和消息函数
  • 修改核心函数
  • 修改事件结构

添加操作者启动器

  • 可以了,接下来对远程操作者的使用跟本地操作者使用是一样的了。
  • 程序结束时提示TCP连接错误,是因为另一端的嵌套操作者没有正常结束,给另一端的操作者发送normal stop.vi 即可
  • 窗口全部结束后,关闭项目时仍然提示有在运行的程序,是因为另一端的根操作者没有正常结束,这个问题在实际情况下不会存在,因为那个时候会在另一端的程序中再执行一次停止。

AF框架规范化

  • 不需要的消息删除
  • 事件用events簇包裹,数据用data簇包裹,控制用control簇包裹,信号用signal簇包裹,命名要规范。
  • 初始化的东西放在 pre ini.vi
  • 事先进行需求分析,使用OOP方法对软件进行建模,标准化。
  • 使用UML图和COMET技术进行理论化描述
    • 需要学习EA工具

下一步工作

  • 进行仿真工作
    • 手柄进行操作,地图中的机器人模拟动作
    • 即先撇开真机器人,对其余的模块进行测试工作。
  • 修改地图中的机器人图标为一个箭头。
  • 对手柄命令进行模拟的运动执行。

猜你喜欢

转载自www.cnblogs.com/lizhensheng/p/11241971.html