随着世界人口老龄化的加快以及各种事故疾病等原因导致的残疾人数量的增加, 老年人和残疾人对于性能优越轮椅的需求变得越来越大[1]. 国内外对于轮椅的研究较多, 包括康复轮椅、爬楼轮椅、多功能智能轮椅等[2]. 轮椅的使用范围, 一般都是在户内比较狭小的空间内进行的, 因此设计出一款行走灵活、使用方便的轮椅变得十分必要.
本文所设计实现的全方位轮椅, 能很好的满足这种要求. 使用四个全向轮组合而成的轮椅不仅能实现前后移动, 还能实现横移、原地打转以及斜线移动[3]. 由于使用者的性格爱好以及自身条件的差异, 使得他们对全方位轮椅的使用要求也不尽相同.
VRML是基于Internet的三维虚拟场景描绘标准, 强调多用户之间的相互感知, 在情景创投、协同工作、交互性方面具有明显的优势[4,5]. 因此, 将虚拟现实建模语言(VRML)应用进来, 不但实现了客户对轮椅实时定制的需求, 还可以使异地的设计者, 通过网络实现异地协作, 并可以进行在线仿真.
1 全方位轮椅的运动分析全向轮有多种形式, 根据辊子轴线与轮子轴线所成的角度分为Mecanum轮、连续切换轮和锥滚轮[6]. Mecanum轮又称瑞典轮, 是一种相对比较成熟的全方位轮, 由轮辐和固定在外周的许多小辊子构成, 轮子和辊子之间的夹角通常为45°. 连续切换轮和锥滚轮本质上来说是Mecanum轮的一种特殊情况, 即轮子轴线与辊子轴线夹角为90°的情况, 但是为了保证轮子与地面接触的连续性, 连续切换轮有采用大小辊子交替装配的形式, 锥滚轮采用相同圆弧锥辊的形式, 如图1所示.
文中先分析单个轮子的运动在一般情况下对全方位轮椅运动的影响, 然后再根据两种轮子的自身特点和组合方式, 对全方位轮椅进行运动分析.
如图2所示: 设o点是轮椅的质心, 并在此点出建立车体坐标系xoy, o’点是轮子的中心, 并在此点处建立轮心坐标系x’o’y’. 设辊子的滑动速度与轮子端面的夹角为β. 轮心坐标系x’与车体坐标系x轴的夹角为α、v1和v2是轮椅在x轴和y轴的速度分量. 轮心到轮椅质心o的距离分别为s1和s2. 轮椅的转动角速度为φ’. 则根据速度的分解与合成公式可得:
$\begin{array}{l} {v_1} = \sigma \cos (\alpha + \beta ) + r\theta '\cos \alpha - l\varphi '\sin \gamma \\ {v_2} = \sigma \sin (\alpha + \beta ) + r\theta '\sin \alpha + l\varphi '\cos \gamma \end{array}$ | (1) |
其中:
$\begin{array}{l} \sin \gamma = {s_2}/l\\ \cos \gamma = {s_1}/l \end{array}$ | (2) |
将式(2)带入式(1)求出解:
$\theta ' = {a_1}{v_1} + {a_1}v{}_2 + {a_3}\varphi '$ | (3) |
以及:
$\left\{\begin{array}{l} {a_1} = \sin (\alpha + \beta )/r\sin \beta \\ {a_2} = - \cos (\alpha + \beta )/r\sin \beta \\ {a_3} = {a_2}{s_1} - {a_1}{s_2} \end{array}\right.$ | (4) |
平面运动有三个自由度, 前后、左右以及原地旋转, 轮椅要实现全方位运动, 必须要有三个独立驱动的全向轮. 三轮机构稳定性差, 五轮、六轮及以上机构冗余[7], 综上所示, 采用四轮的轮椅机构, 如图3所示.
对于轮1由图可知
${\theta '_1} = \frac{1}{r}\left[ {{v_1} - {v_2} - ({s_1} + {s_2})\varphi '} \right]$ | (5) |
同理可得其他3个轮子的角速度的取值, 写成矩阵形式为:
$\left( \begin{array}{l} {{\theta '}_1}\\ {{\theta '}_2}\\ {{\theta '}_3}\\ {{\theta '}_4} \end{array} \right) = \frac{1}{r}\left( {\begin{array}{*{20}{c}} 1 & { - 1} & { - ({s_1} + {s_2})}\\ 1 & { - 1} & {{s_1} + {s_2}}\\ 1 & { - 1} & { - ({s_1} + {s_2})}\\ 1 & 1 & {{s_1} + {s_2}} \end{array}} \right)\left( \begin{array}{l} {v_1}\\ {v_2}\\ {\varphi '} \end{array} \right)$ | (6) |
由式(6)可知, 通过协调轮椅四个Mecanum轮的转动速度, 轮椅整体便能按照预期的线路进行运动.
当轮椅使用连续切换轮及锥滚轮时, 四个轮子的排布方式如图4所示, 对于轮1由图可知:
${\theta '_1} = \frac{{\sqrt 2 }}{{2r}}\left[ {{v_1} - {v_2} - ({s_1} + {s_2})\varphi '} \right]$ | (7) |
同理可得其他3个轮子的角速度, 写成矩阵形式如下:
$\left( \begin{array}{l} {{\theta '}_1}\\ {{\theta '}_2}\\ {{\theta '}_3}\\ {{\theta '}_4} \end{array} \right) = \frac{{\sqrt 2 }}{{2r}}\left( {\begin{array}{*{20}{c}} 1 & { - 1} & { - ({s_1} + {s_2})}\\ 1 & { - 1} & {{s_1} + {s_2}}\\ 1 & { - 1} & { - ({s_1} + {s_2})}\\ 1 & 1 & {{s_1} + {s_2}} \end{array}} \right)\left( \begin{array}{l} {v_1}\\ {v_2}\\ {\varphi '} \end{array} \right)$ | (8) |
由式(8)可知, 通过协调轮椅四个连续切换轮的转动速度, 轮椅整体便能按照预期的线路进行运动.
2 VRML定制与仿真系统的整体设计VRML自身具有三维造型功能, 但是造型能力较差, 只能创建比较简单的模型, 对于像全方位轮椅这样复杂的模型需要专用的三维建模软件如Pro/E等进行建模. 将全方位轮椅的装配体在Pro/E里保存为wrl格式文件导出便可以得到初级VRML文件. 为了后面的定制以及运动仿真编程的方便, 需要对初级VRML文件进行一定的优化处理, 这些优化处理包括: 实例重用即DEF定义和USE引用; 删除格式转化过程中的不必要的面片、节点、视点等; 文件的整体化以及节点的重命名[8]. 经过这些处理后的VRML文件体积将会大大减小. 在编辑器VRMLpad里使用各种传感器节点再结合编程语言javascript, 完成交互定制系统和运动仿真系统的编程. 为了满足客户的网络浏览要求, 可以用网页制作软件Dreamweaver等将VRML文件和网页进行整合后上传至网络服务器[9]. 系统的整体实现过程如图5所示.
3 定制交互的实现
本系统中的实时定制主要通过点击相应的按钮实现座椅颜色外观的改变以及轮椅的轮子形式的实时替换. 场景中的节点由域和事件组成, 其中域的取值决定了节点所创建的造型或场景环境的当前状态, 事件则为节点提供了接收外界信息或向外界发送信息的能力. 节点通过事件入口(eventIn)接受来自其他节点的信息改变自己的原有域值, 通过事件出口(eventOut)发送自己的信息以改变其他节点的域值. 只用VRML自带的节点还不能顺利完成实时定制的要求, 必须将JavaScript语言应用进去, 利用JavaScript编写一定的函数, 然后通过路由将VRML自带的各种传感器节点中的出事件、入事件等将函数与传感器节点联系起来[10]. 以轮子形式的实时替换为例, 用到的VRML传感器节点有Touchsensor节点、Timesensor节点以及switch节点等. 在建模过程中, 分别建立了mecanum轮、连续切换轮和锥滚轮三种形式的全向轮, 把三种形式轮子分别设定为Switch节点的场景造型子节点列表, 通过改变whichChoice域的域值可以切换三个场景子节点的显示[11]. 使用javascript编写函数通过Touchsensor的出事件作为输入, 改变whichChoice的值从而来改变模型中显示的轮子形式. 三种不同参数下的轮椅外观如图6所示.
4 运动仿真的实现
在系统中可以对轮椅进行直走、横走、斜走、原地打转等四种运动形式的仿真. 客户只需要点击相应的仿真按钮就可以实时观看到轮椅运动的效果. 这里用到的传感器节点有Touchsencor节点、Timesensor节点、PositionInterpolator节点、以及Collision节点等. 由于全方位轮子的特殊性, 在仿真过程中不但要分别设置轮子与辊子的转动, 还要考虑二者的协调性. 因为只有与地面接触的辊子才是转动的, 而每个辊子何时与地面接触又与轮子的转动相关联. 因此用碰撞节点实时检测轮子上的各个辊子与地面的接触情况, 当检测到辊子地面接触时, 此辊子转动, 否则不转动[12]. 具体的控制流程图如图7所示.
5 结论
本文介绍了基于VRML的全方位轮椅实时定时与运动仿真系统, 详细介绍了整个系统的实现过程, 从三维模型的建立到最后完成实时定制及运动仿真功能的实现. VRML技术结合运动轮椅的应用, 对于教学研究或者是定制性应用开发都有实际意义和技术参考价值. 同时, 该系统在定制的实时性、实用性等方面的性能还需进一步的验证及优化.
[1] |
赵兴平. 基于单通道脑机接口的智能轮椅控制及人机交互研究[硕士学位论文]. 哈尔滨: 哈尔滨工业大学, 2017.
|
[2] |
李雪莲. 老年智能轮椅设计研究. 机械设计, 2014, 31(4): 100-104. |
[3] |
周卫华, 王班, 郭吉丰. 四轮移动机器人直线运动下的力矩优化控制. 计算机集成制造系统, 2016, 22(3): 800-805. |
[4] |
许爱军. VRML协同虚拟现实系统的研究与应用. 计算机技术与发展, 2016, 26(6): 115-118, 122. |
[5] |
石敏, 王俊铮, 魏家辉. 真实感三维虚拟场景构建与漫游方法. 系统仿真学报, 2014, 26(9): 1969-19740, 1979. |
[6] |
赵冬斌, 易建强. 全方位移动机器人导论. 北京: 科学出版社, 2010.
|
[7] |
周卫华, 王班, 黄善均, 等. 单排连续切换全向轮移动机器人的布局方式与运动的稳定性分析. 中国机械工程, 2014, 25(7): 888-894. DOI:10.3969/j.issn.1004-132X.2014.07.008 |
[8] |
胡光军. 三维虚拟校园自动漫游系统的设计与实现[硕士学位论文]. 济南: 山东大学, 2013.
|
[9] |
赵冶. 基于OpenGL结合VRML的六自由度机械臂模拟仿真[硕士学位论文]. 合肥: 合肥工业大学, 2017.
|
[10] |
Gorai P, Gao DF, Ortiz B, et al. TE Design Lab: A virtual laboratory for thermoelectric material design. Computational Materials Science, 2016, 112: 368-376. DOI:10.1016/j.commatsci.2015.11.006 |
[11] |
刘怡, 张洪定, 崔欣. 虚拟现实 VRML程序设计. 天津: 南开大学出版社, 2007.
|
[12] |
刘维平. 液压挖掘机工装控制远程虚拟实验教学系统研发[硕士学位论文]. 黑龙江: 哈尔滨工业大学, 2017.
|