>
1 引 言
1.1 机器人导航技术及虚拟现实
国内外专家在移动机器人控制方面已做了大量的研究工作,与70 年代的机器人相比,现在的机器人研究有两个特点:一是对机器人智能的定位有了更加符合实际的标准,也就是不要求机器人具有像人类一样的高智能,而只是要求机器人在某种程度上具有自主处理问题的能力;另一个特点是许多新技术及控制方法被引入到机器人研究中,给研究工作带来突破性进展。将vr 技术应用到移动机器人导航研究中是一种可行的方法:随着系统的日益复杂和运算量的日益增加,对计算设备能力的要求也日益提高,而多数轻便灵活型的机器人难以携带大量的计算设备,因此,将计算机和机器人分开,机器人把观察到的视觉信号和传感器信号按照制定的标准合成,然后传送到远方计算机上,由功能强大的远方计算机进行分解和处理,并发出控制信号给机器人的传动机构,以控制机器人行为,或者由机器人完成一些行走、避障类的低层操作,而高层操作则由远方高性能机器、或人工在虚拟环境中遥控完成。本文的仿真对象是一台半自主式移动机器人,其运动和各种服务功能的实现,可以由后方的操作者利用虚拟现实技术操纵控制,所有命令均由操纵面板上的按钮和操纵杆控制发出。
1.2 simulink及vr工具箱
simulink 是一个用来对动态系统进行建模、仿真和分析的软件包,它和matlab的无缝结合使得用户可以利用matlab丰富的资源,建立仿真模型,监控仿真过程,分析仿真结果。新出现的基于matlab的vr工具箱允许matlab/simulink使用虚拟现实的图形技术,使得用户能直接将仿真结果以虚拟现实的形式显示出来。可以说,对虚拟现实技术的支持使得matlab/simulink在系统仿真领域的应用上了一个新的台阶[1]。
1.3 机器人行驶控制系统的工作原理
(1)机器人的速度设置通过改变遥控操作面板上操纵杆的位置来实现,即操纵杆的不同位置对应着不同的速度。
(2)测量机器人的当前速度,并求取它与指定速度的差值。
(3)由系统差值信号驱动机器人产生相应的牵引力,并由此牵引力改变机器人的速度直到其速度稳定在指定速度为止。
本文首先建立并运行了机器人行驶控制系统的数学模型及仿真模型;然后使用vr工具箱实现了机器人行驶控制系统的simulink模型与虚拟世界的关联,从而利用simulink模型产生的信号数据控制和操纵虚拟世界中机器人的运动。
2 建立机器人行驶控制系统的simulink模型并进行仿真分析
2.1 机器人行驶控制系统的物理模型与数学描述
1)速度操纵杆的位置变换器
位置变换器是机器人行驶控制系统的输入部分,其目的是将操作面板上操纵杆的位置转换为相应的速度,由于该机器人的速度变化范围是0-6 km/h,故二者之间的数学关系可设为:
v=6x, x∈[0,1]
其中x为速度操纵杆的位置,v为与之对应的速度。
2)离散行驶控制器
行驶控制器是整个行驶控制系统的核心部分。简单来说,其功能是根据机器人当前速度与指定速度的差值,产生相应的牵引力。行驶控制器为一典型的pid控制器,其数学描述为:
积分环节:x(n)=x(n-1)+u(n)
微分环节:d(n)=u(n)-u(n-1)
系统输出:y(n)=pu(n)+ix(n)+dd(n)
其中u(n)为系统输入,相当于机器人当前速度与指定速度的差值。 y (n)为系统输出,相当于机器人牵引力,x(n)为系统中的状态。p、i与d为pid控制器的比例、积分与微分控制参数,其取值分别设为p=3, i=0.005, d=0.6.
3)机器人动力机构
机器人动力机构是行驶控制系统的执行机构。其功能是在牵引力的作用下改变机器人速度,使其达到指定速度。牵引力与速度之间的关系为
f=ma+bv
其中a为机器人的加速度,v为速度:a=dv/dt,f为机器人的牵引力,m=50 kg为机器人的质量,b为阻力因子设为1.
2.2 建立机器人行驶控制系统的仿真模型
按照机器人行驶控制系统的物理模型与数学描述建立系统仿真模型。在建立系统模型之前,首先给出建立模型所需的主要系统模块:
(1)math模块库中的slider gain滑动增益模块:对输入信号x的范围进行限制。
(2)discrete模块库中的unit delay单位延迟模块:用来实现行驶控制器(即pid控制器)。
(3)continuous模块库中的integrator积分器模块:用来实现机器人动力机构。
(4)subsystems模块库中的subsystem子系统模块:用来对系统不同的部分进行封装。
然后建立系统模型,并将位置变换器、行驶控制器、机器人动力机构封装到不同的子系统之中,如图1所示。
图1 机器人行驶控制系统
图1.1 位置变换器
图1.2 行驶控制器子系统
2.3 系统模块参数设置与仿真参数设置
在建立系统模型之后,按照系统的要求设置系统模块参数与仿真参数。
1)速度操纵杆的位置变换器参数
(1)slider gain模块:最小值low为0,最大值high为1,初始取值设为0.5.
(2)gain模块:增益取值为6.
2)行驶控制器参数
(1)所有unit delay模块:初始状态为0,采样时间为0.02 s.
(2)p、i、d增益模块:取值分别为3、0.005、0.6.
3)机器人动力结构参数
(1)gain模块:取值为1/m,即1/50.
(2)gain1模块:取值为b/m,即1/50.
(3)integrator模块:初始状态为0,即速度初始值为0.
4)系统仿真参数
(1)仿真时间范围:从0至100 s.
(2)求解器:由于本系统为混合系统(系统中既有连续信号,又有离散信号),必须考虑系统中连续信号与离散信号采样时间之间的匹配问题,因此选用变步长连续求解器。
其余模块参数与仿真参数均使用默认取值。
2.4 系统仿真与分析
在对系统模块参数与仿真参数设置之后,对系统进行仿真分析。分别使用两组不同的pid控制参数对系统进行仿真,其结果如图2所示。
i=0.005,d=0.6 |
p=5,i=0.002,d=2 |
图2 不同控制参数下的仿真结果
机器人行驶控制系统的目的是使机器人在较短时间内平稳地达到指定速度。从图2的仿真结果中可以看出,在行驶控制器控制参数取值为p=3、i=0.005、d=0.6时,机器人的速度并非直接达到指定的速度,而是经过一个振荡衰减过程,最后逐渐过渡到指定速度。此时行驶控制系统为典型的二阶欠阻尼控制系统。
对于pid 控制器而言,增加微分控制参数d可以减小系统超调量,缩短系统调节时间;增加积分控制参数i可以增加系统超调量,延长系统调节时间;而增加比例控制参数p 值可以缩短系统调节时间。由于行驶控制器为一离散pid控制器,所以适当增加控制器参数的p、d取值,减小i取值可以改善系统的性能,这一点可以从系统在控制参数p=5、i=0.002、d=2下的仿真结果中看出。
3 仿真结果的虚拟演示
3.1 建立虚拟现实所需的vrml文件
vrml(virtual reality modeling language虚拟现实建模语言)是一种标准的虚拟现实建模语言,可用来创建三维实体,并可对对象编程以实现交互性。在matlab的虚拟现实工具箱中就主要采用这种语言来描述虚拟现实。值得注意的是,vrml语言下描述三维空间时,其坐标轴排列顺序和常规使用的坐标系不完全一致,其规定如图3所示:
图3 vrml的空间坐标系 |
|
v-realm builder 2.0版是一个编辑vrml程序的实用可视化工具,它允许用户搭建虚拟现实所需要的场景和素材。正如其它功能强大的三维建模软件(如3ds max)一样,v-realm builder 2.0为用户提供了建模的直观接口,对象库、材质库、纹理库中的样品可直接应用到用户的虚拟场景中; v-realm builder 2.0生成的三维物体和虚拟世界可以用支持vrml的浏览器观察到。
v-realm builder 2.0的主界面如图4所示,图中已经搭建了机器人模型以及简单的场景,包括天空、地面等。将该素材保存为robot.wrl文件。
3.2 simulink下虚拟现实技术应用
上面建立的robot.wrl 文件是由v-ream builder软件直接绘制出来的静态图形,要使其“动”起来,我们同样可以用vrml语言编写程序,也可以利用matlab虚拟现实工具箱提供的一系列函数来操作*.wrl文件中描述的对象的属性;这里研究的是simulink下虚拟现实技术的应用,而且前面已经建立起机器人运动的simulink模型和相关的虚拟世界,我们将尝试把二者连接起来,利用simulink模型产生的信号数据控制和操纵虚拟世界中机器人的运动。
(1)打开先前建立的机器人运动的simulink模型,将虚拟现实工具箱库中的vr sink输出模块复制上去,并在该模块的参数对话框中输入robot.wrl文件名且选中translation(平动)选项,这样就与vrml文件建立了关联,而且给vr sink模块设置了一个输入端子:robot.translation,即仿真输出机器人在虚拟世界中的平动。点击view按钮,在浏览器中可以看到先前建立的虚拟场景。 (2)由于前面建立的simulink模型只是仿真机器人的速度变化,而物体的运动是通过位移体现出来的,因此必须在模型中插入积分器,使机器人在仿真时间段发生位置的改变。修改了的simulink模型如图6所示(子系统模型不变): |
图5 浏览器中的虚拟世界 |
图6
(3)启动仿真,在浏览器中可以观察到机器人的加速运动过程。
4 结 论
1.基于matlab的虚拟现实工具箱为能在一个三维虚拟现实环境中进行可视化操作和与动态系统(用matlab和simulink描述)进行交互提供了一种有效的解决方案,拓展了matlab和simulink处理虚拟现实图象的能力。
2. 通过对机器人行驶控制系统的计算机仿真,全面展示了simulink下虚拟现实技术的应用:分别建立起机器人运动的simulink模型和相关的虚拟世界,再把二者连接起来,利用simulink模型产生的信号数据控制和操纵虚拟世界中机器人的运动。仿真结果证明,尝试是成功的,有助于研究工作的进一步展开。
参考文献:
[1] 薛定宇,陈阳泉.基于matlab/simulink的系统仿真技术及应用[m].北京:清华大学出版社,2002.
[2] 张家祥,方凌江,毛全胜.基于matlab 6.x的系统分析与设计—虚拟现实[m].西安:西安电子科技出版社,2002.
[3] 姚俊,马松辉.simulink建模与仿真[m].西安:西安电子科技出版社,2002.