软件的初始化 - 移动机器人3D仿真软件的设计

来源:微型机与应用2011年第4期 作者:刘润丹, 王 华,2011年06月03日 11:50
[导读] (1)软件的初始化 软件的初始化工作主要包括:从配置文件读入移动机器人的数量、软件运行时所需文件的路径和绘制窗口大小等参数;导入虚拟场景所需的
(1)软件的初始化

  软件的初始化工作主要包括:从配置文件读入移动机器人的数量、软件运行时所需文件的路径和绘制窗口大小等参数;导入虚拟场景所需的素材,如声音、纹理和3ds模型等,本文采用lib3ds库来读取3ds文件[6];初始化ODBC 接口,获取ODBC 环境句柄,实现进程与数据库的数据交互;初始化游戏手柄和UDP通信网络;初始化ODE环境,创建动力学环境和碰撞检测空间,创建移动机器人和仿真场景。

  (2)物体运动参数的接收

  在仿真循环中,利用UDP协议实现本地进程与其他进程之间的通信,该软件也可以从键盘、游戏手柄和网络数据库读入机器人的动作指令。

  (3)物体碰撞检测

  本文将与物理引擎有关的操作函数封装成动态链接库,通过使用动态链接库技术,软件可以实现模块化,即由相对独立的组件来组成整个软件。这简化了软件项目的管理,而且能够节省内存,也有助于资源共享和代码更新移植。

  ODE 的碰撞检测引擎需要给定两个物体的形状信息。在每一仿真循环中,调用dSpaceCollide函数获取可能发生接触的物体,再由该函数指定的碰撞回调函数nearCallback将接触点信息传给用户。由此,用户可根据自身需要建立物体间的碰撞连接点,每个连接点都有相应的dContactGeom 结构,该结构保存着碰撞点的位置和两个物体互相进入对方的深度。为了提高仿真速度,软件使用较少的关节和较少的接触面,如果条件允许,也可以使用无摩擦或者粘性接触面。下面给出碰撞回调函数中关于接触面的参数设置:

  surface.mu=3.0; //库仑摩擦力系数

  surface.mu2=0.0; //库仑摩擦力系数2

  surface.slip1=0.05; //摩擦力1方向的滑动摩擦力

  surface.slip2=0.05; //摩擦力2方向的滑动摩擦力

  surface.bounce=0.9; //反弹系数

  surface.bounce_vel=1.0; //反弹所需要的最小碰撞速度

  surface.soft_erp=0.2; //接触点法线方向“柔软”参数

  surface.soft_cfm=1e-4; //接触点法线方向"柔软"参数

  (4)三维图形绘制

  在仿真软件中,与绘制图形有关的操作函数都被封装成动态链接库,该动态链接库只向仿真软件提供若干个接口,如在绘制机器人时,只需根据机器人的不同部位,设定相应的绘制参数,然后轮流调用dsDrawCylinder、dsDrawBox两个函数即可实现,dsDrawCylinder函数的输入参数分别为物体位置、朝向、长度和半径,而dsDrawBox函数的输入参数为位置、朝向和尺寸;在绘制从x文件和3ds文件导入的三维模型时,只需调用dsDrawTriangleD函数即可。

  4 仿真实例

  本文在VS2008平台上开发仿真软件,ODE版本为0.9,OpenGL版本为1.0,软件为控制台程序。

  在检验路径规划算法或避障算法时,可先创建一个虚拟足球场,再设定机器人初始位置的绝对坐标为(-9.0,-5.0),目的地绝对坐标为(5.5,5.0),并在路径的中间布置8个或更多的障碍物,障碍物直径为50 cm,其位置参数可以人为指定,也可以随机产生,然后在虚拟场景的二维地图上,以宏观鸟瞰的远程视野,对避障算法的仿真结果进行观察、比较和分析,仿真效果如图4所示。若需了解算法运行的细节,可以直接观察3D环境的仿真过程,或通过分析记录下的仿真数据来比较算法的优劣。而在检验多机器人协作算法时,可同时利用三维环境和二维全局地图来对算法性能进行比较,以由多个移动机器人组成的足球队为例,移动机器人需按照协作算法来实现站位[7]。

  

 

  此外,在采用PID控制算法对机器人位置进行控制时,有比例增益、微分增益和积分增益三个参数需要整定测试[8],此时,可以利用仿真软件对参数进行步估计。实验方法是:先设定初始位置和目的地位置,然后让机器人以最快速度向目的地移动,当到达目的地后,就停止不动。在机器人移动过程中,记录下机器人在每一仿真步骤中的位姿(x,y,θ)T,并将位姿数据归一化,以便能够将三维的向量绘制在同一坐标系下,同时记录机器人走完设定路径所需的时间。图5(a)为采用比例控制算法的机器人位姿变化轨迹,机器人走完该路径所需时间为16.239 s,图5(b)为采用比例-微分控制算法的变化轨迹,所需时间为14.026 s。从图5的结果可看出,采用比例控制算法的系统输出无超调,而采用比例-微分控制算法的系统,其控制目标会出现微小超调,但机器人的响应速度明显提高,尤其是机器人朝向角的控制,能够更加快速准确地跟随给定值。

  

 

  在移动机器人控制技术和多机器人协作技术的研究中,为了能够对算法参数进行有效检验和测试,本文利用ODE、OpengGL和VS2008开发出移动机器人仿真软件。该软件采用ODE生成动力学世界和模拟物体碰撞,充分利用了ODE的快速性和精确性,仿真软件还采用高效的图形接口OpenGL来绘制图形,提高软件的图形处理能力,改善图形显示效果。仿真实例证明,该软件具有较好的扩展性和实用性。

上一页123

本文导航

相关阅读

发表评论
技术交流、积极发言! 发表评请遵守相关规定。

0 条评论

推荐阅读

每月人物

正面迎战智慧家庭:从称体重到“称”健康,芯海智慧测量全包了!

正面迎战智慧家庭:从称体重到“称”健康,芯海智慧测量全包
随着科技的发展,人们对生活质量的追求越来越高,传统的家庭生活方式已经无法满足现代人的家居生活,智慧家庭的新型生活理念成为很多人梦寐以求的...

依托AI平台,涂鸦智能开启全屋智能2.0时代!

依托AI平台,涂鸦智能开启全屋智能2.0时代!
随着物联网技术的突飞猛进,生活中越来越多的家庭设备将会联上网络,变得“智慧”起来,智慧家庭的概念成了这几年媒体、企业、用户关注的焦点,而...

每周排行

  • 型 号
  • 产品描述