APP下载

基于Kinect的机械臂车系统的目标抓取

2017-12-11张博玮

科技视界 2017年25期
关键词:机械臂

张博玮

【摘 要】设计和制造一个模块化的机械手臂,模仿人的手臂动作。整个系统由控制、软件、通信和手动/工具子系统组成。机械臂系统利用Kinect技术将手臂运动采样信号发送到机械手臂。一个开发的图形用户界面(GUI)使用c++快速工具包(FLTK)库输出用户的主要骨骼跟踪数据。在采样阶段,Kinect捕捉到的人体关节的实时数据将显示在窗口上。该数據进一步处理,定义了脉冲宽度调制(PWM)信号,用于在机械臂上驱动多个伺服电机。这些伺服电机中有五个集成在机械臂上。运动是由这些伺服电机的旋转方向决定的。机器人手臂的模块化是通过整合Myo手势控制器实现的,这样用户就可以控制机械手臂,根据不同的场景来选择和替换工具。当一个特定的手势被执行时,机器人手臂将执行自动的动作,包括分离当前的工具并获取下一个工具。此外,所有的数据和指令都通过wi - fi无线传输。这个概念机器人的证明为那些在危险情况下工作的人创造了一个更好的用户界面,同时还能捕捉人类的视角和互动。

【关键词】Kinect;机械臂;MYO

0 引言

机器人臂车是一个概念系统的证明,它被设计和构造,以创造一个更好的用户界面,通过无线模仿一个用户来控制机器人。它不只是在机械臂的末端有一只手,而是由一个夹子组成,可以在各种应用中使用不同的物体。这个项目的主要焦点是一辆炸弹巡逻车,因为它是无线和移动的特征。这个机器人的目的是为紧急情况创造一个更好的用户界面,在这种情况下,人类的感觉和控制是至关重要的,而没有一个人在场。这种机器人与传统机器人之间的不同之处在于,它可以通过模拟的方式进行无线控制,仅仅基于用户的动作,同时还可以使用多种工具的可用性。这将用户的自然运动与机器的能力结合起来,这样问题就可以通过一个人的直接的视角来解决。最后,从接口处理的所有数据将通过wi-fi发送,以建立一个大型的移动范围的操作。这个概念结合了ARM的机动性和机器的可用性。

1 系统组成

该系统的主要组件包括微软Kinect、MYO臂带控制器、Raspberry Pi2、Lynxmotion机械臂、两个外部电源,以及3D打印手。这个项目的主要目的之一是使机器人手臂控制无线从Kinect数据和用户界面。用户的动作和手势被Kinect和MYO捕获,并被发送到笔记本电脑。这些数据被处理并发送到树莓Pi2中,而树莓Pi2则驱动产生控制移动的马达来复制用户的手臂。

1.1 系统规范

接下来的子系统集成需要每个子系统的以下规范。

a.控制规范

为了正确地将用户运动转化为机器人运动,臂控系统的位置必须具有特定的位置边界。这是为了使每一个动作看起来与用户同步时看起来比较相似。当手臂被设置为一个特定的位置,显示的输出数据必须小于±10°角输入精度。输出数据也应小于±3英寸为每个位置的径向。与此相结合的是,主要外部供应的总功耗小于55瓦超过2.5小时。

b.软件规范

为了正确解释用户运动,软件系统必须能够解释每个位置精度小于±10°角输入。输出数据也应小于±3英寸为每个位置的径向。此外,在软件设计中包含的图形用户界面,在整个采样和模拟阶段,必须对整个系统提供一个简单的控制。

c.通信规范

系统各部件之间的通信必须快速而安全。从树莓Pi到计算机(最大的数据包发送)的总最大比特传输速率估计为13.06mb,最大时间估计为0.045s,假设在设备之间传输是即时的,而不考虑中断。对于范围来说,机器人扩展和笔记本电脑之间的通信必须被高度考虑。这个范围取决于路由器的无线范围。然而,对于这个应用,范围估计至少有10米范围。

d.手/工具规范

Myo臂章应该能够读取用户的手势和滚动的方向数据。为了关闭和打开手指,步进电机应该能够以正确的方向和角度旋转,作为用户的输入。电机每步旋转1.8度。指尖上的力传感器应该能够探测和显示施加了多少力。步进电机不断旋转,直到力的值达到设计值。而手腕上的伺服电机应该能够以正确的方向和角度连续旋转,作为用户的滚动数据。

2 Kinect抽样算法

Kinect采样算法负责将Kinect的原始数据转换为pwm数据,这些数据可以用来驱动机器人手臂上的伺服马达。该算法在结构上嵌入到用户界面的编码中。该算法的最新版本设计为面向任务的逆运动学技术。采用该算法生成的角度表示,用于驱动机械臂的伺服电机。由于该算法是以任务为导向的,伺服电机的角度表示并不一定等于或接近于人臂下肢与下肢之间的真实角度。这表明,在计算中,只有末端执行器的位置,而不是人类手臂的实际配置。

伺服电机1改变旋转机械臂的方向向量x-y平面,并在x-y平面方向向量的定义范围是0°~180°。二维矢量由腕点x-y坐标和肘点x-y坐标的差来定义。在方向矢量定义后,可以用下面所示的数学公式找到角度:

Angle=57.2arctan(YX)

如果超过90°角,使用公式如下所示:

Angle=180-57.2arctan(YX)

在测试中,算法生成的末端执行器位置将与人类手臂的末端执行器位置进行比较,以确定算法是否达到了理想的精度。为了验证准确性,必须设计一种定量的测试方法。此外,由于Kinect传感器的精度有限,从Kinect中提取的坐标数据也会不断变化。如果对机器人手臂提供的不稳定的数据值引起的神经过敏,将开发一个滤波器功能来过滤掉小的数据变化,这样就可以实现稳定的机器人运动。通过对Kinect的后数据进行分析,确定最优滤波器的功能特征。此外,从Kinect产生的坐标数据也在公制单位中,因此,用矢量分析可以实现映射到另一个的过程。最后的结果是,两个帧中的端点的坐标数据可以进行比较,因为它们被转换成相同的度量单位。

3 手/工具系统

手/工具系统连接到手臂的其余部分,设计用来模拟用户手势和手腕动作的动作。该系统由Myo臂带、步进电机、力传感器和伺服电机四个主要组成部分组成。Myo臂带读取和发送手势数据到笔记本电脑和笔记本电脑将这些数据发送到树莓pi,然后树莓pi通过一个步进马达驱动器将这些手势数据发送到步进电机。力传感器读取在指尖上施加的力,并将数据发送到树莓pi中,通过模拟到数字转换器。Myo臂章也读取滚动的方向数据,并以同样的方式发送方向数据伺服电机。

第一部分是手动控制。手由步进电机控制,步进电机由Myo臂带读取的手势数据控制。现在步进电机控制完成,它可以旋转,在预期的方向和角度。第二部分是力传感器。力传感器安装在指尖上,它能够探测到应用于指尖的力量的价值。这些值可以在Rapsberry pi上读取和显示。手系统尚未完成的部分是实现力传感器与步进电机之间的中断。力传感器读取的值应该用来决定手能举起工具的范围。步进电机应该一直旋转,直到力传感器探测到设计范围内的力为止。第三部分是手腕控制。现在这个系统能够模拟滚动臂的运动。手腕上有两个伺服马达:一个是用来模拟滚动的,另一个是用来模拟音高的。伺服电机可以从Myo臂带读出定向数据,并在预期的方向和角度旋转。未完成的部分是由myo的EMG数据控制另一个伺服电机,实现俯仰运动。

4 结论

通过构建一套实验系统对本系统的研究内容进行验证,结果表明基于Kinect的机器臂车系统可以较理想地完成自主抓取任务。endprint

猜你喜欢

机械臂
一种六自由度机械臂的控制系统设计
书画手臂的模型设计
六自由度机械臂控制系统设计
人机交互课程创新实验
基于S7?300 PLC不规则空间曲线自动焊接系统设计