仿人机器人三维实时仿真系统的研究与实现_甘志刚

2007年6月 甘志刚,

等:仿人机器人三维实时仿真系统的研究与实现 Jun., 2007

执行速度,采用了数据缓存(控制指令队列)技术来协调二者之间的速度差异。视景仿真服务器端软件结构图如图3所

仿人机器人三维实时仿真系统的研究与实现_甘志刚

示,软件界面见图1(b)。

(b) 用OpenGL构造的三维仿真系统 图1 仿人形机器人实体和三维实时仿真系统

在3DS MAX中建立模型后,还需要导入到仿真环境中。本文将机器人各个关节部件的3D模型导出为3DS文件,再通过CLoad3DS类读入到仿真服务器端程序中。为了加快三维模型的显示速度,全部三维模型均采用显示列表(Display List)的方式显示。

图3 视景仿真服务器端软件结构图

2.2 视景仿真客户端软件设计

客户端软件由作业描述语言开发包和消息转发程序组成。为了使用户能够方便地开发出机器人控制程序,系统为用户提供了作业描述语言开发包(DLL函数库)。为了使得用户基于作业描述语言开发包开发的机器人控制程序可以从仿真环境快速地移植到机器人实体上运行,本文采用了分层设计思想,将作业描述语言开发包分成四个层次,如图4所示。上层函数可以调用下层函数来完成相应功能,反之则不行。

2 三维实时仿真系统软件架构

2.1 软件结构示意图与流程

三维实时仿真系统由视景仿真服务器端和客户端组成,采用TCP/IP协议进行通信,如图2所示。

仿人机器人三维实时仿真系统的研究与实现_甘志刚

仿真平台服务器端

图4 作业描述语言开发包层次图

图2 仿人形机器人仿真环境

由于开发包中不包含TCP/IP消息处理功能,因此客户端提供了消息转发程序,专门用来负责开发包和仿真服务器之间的消息通信,程序界面如图5所示。

客户端由作业描述语言开发包(DLL函数库)和消息转发程序组成。用户通过作业描述语言开发包编写机器人的控制程序,然后在仿真环境的客户端执行。此时控制指令通过消息转发程序转换成TCP/IP消息包,发送到视景仿真服务器端。服务器端的消息处理模块接收消息后,将其还原成机器人控制指令,并添加到控制指令队列中。动作解释和执行模块周期性地查询控制指令队列。当其中有控制指令时,则通过指令—函数映射表找到对应的执行函数,立即执行该函数。执行效果由三维场景生成模块渲染输出。受力分析模块依据经典物理学原理,实时地检查机器人的受力情况,并将结果以旋转矩阵的方式输入到三维场景生成模块中,生成仿人形机器人平衡或失稳时的情景。由于人的眼睛存在视觉暂留现象,服务器端仿真动画的速度不能过快,而客户端的消息发送速度却远快于仿真动画的速度。为了不影响客户端的

图5 客户端的消息转发程序

2.3 三维场景的全方位观测技术

仿人形机器人仿真过程中,任意地改变观测距离和观测视角非常重要。为此,仿真系统提供了平移、远近和三维旋

2445

仿人机器人三维实时仿真系统的研究与实现_甘志刚

仿人机器人三维实时仿真系统的研究与实现_甘志刚

仿人机器人三维实时仿真系统的研究与实现_甘志刚

仿人机器人三维实时仿真系统的研究与实现_甘志刚相关文档

最新文档

返回顶部