11.2-LV面向对象编程视频学习及周五与老师交流总结

视频学习-Pure Data Flow-类的创建

创建类

  • 创建类的用于数据访问的VI
    • 读取权限,静态或动态访问器
  • 类属性-连线外观

创建Xcontrol

  • 保存,命名
  • 修改VI

使用操作者框架

 

计算机生成了可选文字: 型 说 明 符 V 丨 引 用 句 柄 〔 仅 用 于 型  丨 引 用  sin loop.Vl  开 始 异 步 调 用  关 鬲 引 用

 

  • 怎样指定异步调用的VI呢?在打开VI引用的“类型说明符引用句柄”端口创建常量
  • 然后打开资源管理器,找到想要异步调用的VI鼠标将此VI拖动到上一步创建的常量处

总结

  • 这是一个XControl控件的制作,在制作过程中使用了ACTOR操作者框架,在制作过程中创建了操作者类,消息类及队列,SIN函数创建了一个队列,并调用一个异步线程SIN_LOOP100SIN(X)写入消息队列中。
    • 注意:这个异步线程SIN_LOOP.Vi可以看作是重写了的操作者核心函数的一个线程,另一个线程是执行一个父方法。
  • 异步线程每隔50毫秒向消息队列写入一个消息,写完之后结束操作者,释放队列。
  • XControl开始执行的时候,它读取一个队列名字,初始化一个队列,这个队列里面存储的元素是操作者的待入队列
    • 注意:这个带名字,手动创建的队列是队列的队列。至于在操作者框架中,队列的队列的功能是什么,目前还不太清楚。
  • 整个操作者的动能是,核心函数发送消息到队列,DO函数将接受到的消息里的值赋给Wave Form chart的引用的值,从而改变了XControl中控件的值,达到了显示的目的。

与老师交流总结-操作者框架的通用解决框架(专业术语参考Hassan Gomaa.软件建模与设计.机械工业出版社)

  • 为每个边界对象创建一个操作者类,操作者作为真实世界外部对象的代理对象
  • 子操作者负责显示所代理的外部对象的信息
  • 子操作者不一定表示人机交互对象或代理对象,也可以表示实体对象(实体对象存储数据)或算法对象(算法对象存储算法逻辑)
  • 子操作者负责输出由其他子操作者发送过来的信息
  • 注意:
    • 子操作者负责人机交互,信息产生和接受,1)能够接受消息并反馈消息2)能够接受消息并通过人机交互界面3)能够接受消息并输出到外部对象
    • 主操作者负责信息决策及消息转发,能够快速将子操作者发送过来的信息转发给特定子操作者,并能够在转发消息之前确定是否马上转发该消息,或者修改消息内容。(本来是执行向前5M的命令,现在变成AB发送这个命令,但请你现在不要这么做,有一个消息确认位
    • 由上一条可以得到几个指导性意见:
      • 需要一个全局环境子操作者,甚至多个环境信息实体对象,用来存储数据或分析数据
      • 消息内容应该合理设置,如设置确认位(用作使能位),消息类型位(用来确定主操作者应该需要哪些额外的环境决策信息)(例如,手柄操作,发出消息类型为“基本移动”类消息,消息经过主操作者时,主操作者应该向环境模型操作者发问,询问目标机器人是否能够执行这一基本命令)(高层命令应该在主操作者中决策,底层命令如自我保护,急停等应该在机器人中用行为或事件表示)
      • 主操作者应该能够进行科学决策。
      • 其实并不一定是主操作者进行所有决策,决策也可以交到子操作者,比如P机器人在遇到障碍时拒绝执行向前移动的信息。

最终规划

  • 我要做的事,一方面是软件建模与设计,另一方面是机器人控制系统的核心部分设计,即决策模块。
  • 主要参考文献:
    • 人工智能机器人学导论
    • 软件建模与设计
    • 应该要上网查文献

用例建模

  • 用例名称:手柄控制P机器人
  • 概述:人通过控制手柄来实现机器人基本动作,控制中心要根据地图信息(全局环境模型)的使能来决定是否发送这条信息
  • 参与者:客户
  • 前置条件:建立连接,手动定义所有参数,如P机器人最大速度,急停障碍距离。
  • 主序列:
    1. 客户提出手动控制P机器人
      1. 手柄操作者,按一个按钮,切换控制模式,此时在P机器人上也应该切换模式,转为手动控制模式
      2. 手柄操作者每隔一定时间发送一个手柄状态消息(用轮询还是事件结构?)
    2. 客户操作手柄,客户可以看到实时图像
      1. 消息通过主操作者发送到P操作者
    3. 并发操作:机器人接受到消息时候能够动作,并更新环境模型(矩阵),并环境模型更新地图,机器人移动过程中能够急停
      1. 机器人接受到消息能够调用DLL动作
      2. 定时发送坐标消息到环境模型子操作者,环境更新
      3. 环境模型操作者发送消息到地图操作者,地图更新
    4. 系统向用户显示环境信息,地图信息,图像信息
      1. 环境信息由环境模型操作者负责
      2. 地图信息由地图操作者负责
      3. 图像信息由P机器人操作者负责
  • 可替代序列
    • 所有错误暂时不处理
    • 所有异常暂时不传递错误消息
  • 后置条件:向事件中心注册,机器人开始手动动作?
  • 用例分析
    • 操作者:手柄操作者,地图操作者,模型信息操作者,机器人操作者
    • 机器人操作者要能够做:设置机器人的所有参数,进行状态切换,在界面上显示需要的所有信息,能够向操作者发送指定的状态信息,能够使用行为进行急停。
      • 机器人操作者需要确定某一件事,是运行前指定还是运行时指定,是通过控件指定还是对话框指定。

 


posted @ 2019-07-25 08:04  哈骑士  阅读(296)  评论(0编辑  收藏  举报