触摸虚拟世界(下)

讲师风采
李建
北京工商大学材料与机械工程学院讲师
讲师简介:
李建,博士,北京工商大学材料与机械工程学院讲师。研究方向:虚拟现实技术、先进传动与控制。
视频简介:
虚拟现实中的“现实”是泛指在物理意义上或功能意义上存在于世界上的任何事物或环境,它可以是实际上可实现的,也可以是实际上难以实现的或根本无法实现的。而“虚拟”是指用计算机生成的意思。因此,虚拟现实是指用计算机生成的一种特殊环境,人可以通过使用各种特殊装置将自己“投射”到这个环境中,并操作、控制环境,实现特殊的目的,即人是这种环境的主宰。
发布评论
全部评论
段落信息
李建:上面讲的是立体场景创建出来了,下面就要讲力觉设备怎么实现,怎么来实现我这个力。这个是我跟我师兄两个人一起来做的一套力觉的设备。首先是一个立方体的框架,这个框架的大小你可以选择大,可以选择小。为了适应我们的大屏幕,我们把这个框架定在了2米多到3米的大小,人基本上可以处在这个框架里面的。可以看A、C、H和F这四个位置,我们分别布置了这样一套设备,这套设备包括了电机、编码器和一个绳轮。而从这个绳轮上,每一个绳轮上都有一个细绳,这四个电机的绳合成到一点,而这一端是绑在我们手指上的,也就是与我们手指是接触的。这就是我们的力觉设备。它与我们传统的那些设备是有一点差别的,首先它是空间变大了,可以在我们的大屏幕之前使用;另外,我们用的移动的附件是绳,它的惯量是比较小的,而且绳我们选的细绳,如果选的比较合适的话,它不会像这些机械构件一样影响我们的视线,所以它的透明度比较高。这是它的设备的控制原理。 力觉是怎么来实现的,分别有这么三个步骤。首先,因为我们的手指是我们系统末端是连接在一块儿的。我们手在空间移动的时候,我们的系统就可以检测我们各个绳长度的变化。通过长度的变化我们就可以计算出我们手在空间的位置。这个位置如果与我们的虚拟物体发生了碰撞的话,这里用了碰撞检测。碰撞之后我们就根据我们需要的模型来计算我们需要多大的碰撞力,然后把这个力分解到各个绳上之后,通过不同的电机输出给我们的操作者。这样在我们与虚拟物体发生碰撞的时候,同时会感觉到一个力在里边。 这组公式是如何计算我们手指的位置。因为这八个电机的布置点是我们自己人为设定的,是已知的,而我们所需要知道的就是每根绳的长度。而长度我们的初始长度,假设初始点在这个位置,初始长度是知道的,所以我们只要拿编码器记录我们每一次绳移动了多少距离,就可以通过这个公式来最终算出我们这个手在空间的位置坐标。在计算的时候我们就发现有一个问题是什么呢?因为我们的绳在绳轮上缠起来,它是不是那个半径是在绳轮上越缠越大,就跟大家缠线一样,越缠越大,半径是变化的。所以如果我们直接用这个方程作解的话,就会造成我们的位置会有很大的误差。怎么解决这个问题呢?我们首先想到了,我们把绳用细一点,就是它缠好多圈之后,那个绳轮上,那个半径不怎么发生变化,这是可以解决的办法。 但是即使解成了这样之后,由于有力的作用,绳还会有变形,也会有误差在里边。这个误差既然我们消除不了,我们就想法在这个误差基础上怎么样把我们的精度提高一点。这就涉及到数学上优化的算法,我们用了一个迭代法,因为最开始的时候它的误差,我们起始点的准确位置是知道的,然后我们通过我们的迭代法每移动一次之后,在里面累加一个,首先把最精确的点找出来,通过这种方法我们就可以实时跟踪我们手指的位置。这是我们通过迭代法给出那个轨迹。大家可以看到这个,最终的跟踪精度还是比较高的。假如我们在60厘米,60厘米大概就是我们手的长度,在这个范围内的话,我们的精度也就在十几个毫米上下,这是我们这个长度,大概也就在六七个毫米这样了。这样结合刚才我们讲到的,10毫米往下基本上就可以感觉到它是重合的,所以这个值是我们比较需要的一个理想的值。 刚才说到了我们最终需要的是一个合力,而提供这个力的是四根线绳。所以这里面就涉及到怎么样把这个合力分解到我们几根绳上。这几个图是给出了,通过不同分解形式,有的时候可能会用到三根绳,有的时候可能只要一根绳就是我们所需要的方向,有可能是两根绳,它的分解形式是不一样的。 刚才说了,我们这个空间比较大,我们设定的框架的边长在两米多、三米左右,它是不是真的这么大呢?在实际操作过程中发现了并不是这么大。因为大家可以想像,在我们四面体之外的时候,我们系统所能提供的力的方向是受限的。所以说我们设定我们这个系统它其实它的工作空间只有这个四面体这么大。只有在这个四面体空间内的时候,我们才能保证各个方向的力我们都能够模拟出来。再具体细分的话,我们就是分解成不同的级别,所谓指的级别就是我在哪个空间内最大可以提供多大的力。当然这个力也是我们电机的拉力和我们绳能承受的力来限制的。就是假设我们电机的拉力是一定的,然后我们通过不同的我们需要的达到的级别,可以求助我们不同的空间。在0.8级是什么意思?假如我们电机可以提供10牛顿的力,0.8级的意思就是我们提供8牛顿的力所在的空间是这么小。所以这个系统现在还有点问题在里边。如果你电机设的太小的话,我们最终提供的合力的空间还是比较小的。所以就需要我们大家选一点力矩比较大的电机。

全文文稿

收藏说明: