种群随机化遗传算法在仿生机械手姿态的应用研究

2022-09-15 08:42孙建召赵进超
机床与液压 2022年15期
关键词:手势遗传算法种群

孙建召,赵进超

(1.河南经贸职业学院计算机工程学院,河南郑州 450000;2.郑州轻工业大学计算机与通信工程学院,河南郑州 450000)

0 前言

人机交互(Human-Robot Interaction,HRI)已成为一个重要的研究领域,由于其出色的性能,基于视觉的手势感应技术已经吸引了许多人机交互专家的关注。

近年来,许多专家高度重视基于视觉技术的手势感应技术。在人机交互领域,专家们已经提出并成功应用了许多方法,例如粒子群优化和遗传算法。然而,在关注更细微的姿势变化同时,减少机器人的误差和能量消耗十分重要且具有挑战性。KILIBOZ和GÜDÜKBAY提出一种基于轨迹的实时检测和识别的动态手势方法,通过建立快速学习手势感应的机制,将手势表示为定向运动的有序序列,提出的手势识别方法具有一定的自适应性,具有用户适应性。杨超等人针对水下机器人姿态稳定性控制问题,提出基于径向基函数(RBF)神经网络的水下机器人姿态自适应区域控制方法,该方法能够降低机器人稳态误差,通过实验验证了所提方法的有效性。李振浩等为实现仿生机械手抓取的目的,通过建立目标函数构建了适应度函数,利用遗传算法对仿生机械手的结构尺寸进行了优化。易星等人针对具有初始误差的机械手轨迹跟踪误差控制问题,提出了模糊自适应迭代学习方法,应用于机械手控制,并与传统算法的控制效果相比,结果验证了所提方法的有效性。陈莹等人针对人机交互手势识别,提出利用离散函数方法,通过归一化手势图像实现手势跟踪和识别。LI等采用BP神经网络和蚁群算法实现了机械手的轨迹控制,该算法通过实验得到了验证,相对于传统算法,它在角位移拟合方面具有更好的性能。TAROKH和ZHANG介绍了一种用于冗余和非冗余机械手实时运动跟踪的遗传算法,将遗传算子应用于一组适当生成的构型,末端执行器可以准确地跟踪所需的工作空间轨迹。杜钊君等利用遗传算法对移动机械臂的时间-冲击最优、运行时间等参数进行了优化,实现了机械臂轨迹的准确跟踪。DATTA等提出了一种多目标遗传算法,用于找到机器人夹具的最优连杆尺寸和关节角度。此外,许多研究人员利用遗传算法的优势解决非线性问题,这表明它在工程应用中有重要作用。遗传算法已被证明能够同时评估参数空间中的多个点并收敛于全局解。

人机交互的发展逐渐呈现出多模态感知与平滑交互的特征,本文作者提出一种种群随机多目标遗传算法(Population Randomization Multi-Object Genetic Algorithm,PRMOGA)。同时,考虑人机交互机械手姿态识别优化中的终端误差、跟踪误差和能耗的影响,对获取的手势进行特征点识别,根据识别的特征点建立人手臂手势的运动学模型。在关节角度的优化中,为更好地设计机器人姿态的自适应种群随机多目标遗传算法,采用基于并行选择的群随机化方法,通过关节信息实现机器人平滑地适应人的手势。为验证所提算法的有效性,通过六自由度机械手进行交互实验。用户使用由Kinect传感器、机械臂和计算机组成的交互系统,实现手势的执行场景。结果表明:所提出的方法不仅可以降低能耗,而且在保证机械手臂跟踪效果的同时,将终端误差降低到3 mm以下。对比分析其他算法,所算法具有能量消耗少、轨迹误差小的优势,可有效提高机械臂姿态适应性。

1 种群随机化多目标遗传算法模型

以某六自由度机械手为实例分析种群随机化的多目标遗传算法问题。六自由度机械手运动学简图如图1所示,表1所示为其相关参数。手臂动作简化为3个关节的动作,在遗传算法中的染色体数目为3,关节角的范围为[-π/2,π/2],每个染色体由18位二进制数组成,每个个体的染色体总数为54个,机械臂末端位置的坐标为(,)。

图1 人体手臂姿势的运动学模型(a)及机械臂(b)

表1 手臂姿态运动学模型参数

种群随机多目标遗传算法的实施步骤如下:

步骤2,确定3个子目标函数、和;

步骤3,通过传统遗传算法对关节旋转角进行编码,获得个体,=(,,);

步骤4,使用3个子目标函数,计算每个种群中的个体适应度,并在下一代种群中保留最高适应度;

步骤5,选择个体和,并使用遗传交叉突变产生后代种群;

步骤6,判断个体在种群中的适应度是否趋同,如果是,则获得最终的Pareto最优解;否则,执行步骤4。

在并行选择方法中,根据子目标函数的数量,将一个种群中的所有个体分为几个子群体。每个子群体都独立分配给一个子目标函数,通过子目标函数选择优秀个体。为维持种群的多样性,每形成一个新的子群时,将所有生成的子群合并为一个完整的种群,然后使用随机矩阵对新种群进行随机排序。最后,应用交叉和变异操作,通过迭代直到达到预设的生成次数,以确定问题的最终Pareto最优解(′,′,′)。同时,在每一代中选择最佳个体作为最佳解决方案,并在不交叉和变异操作的情况下,将它传递到下一代。

个体的3个染色体可以表示为

(1)

其中:表示染色体序列数;关节角的分辨率为(,up-,low)/(2-1)。机械臂由电池供电,能耗是主要限制因素。在实际应用中,关节之间的连接方式不同,所以即使关节旋转相同角度,所消耗的能量也会有所不同。在确保所需的关节角度可以使机械臂到达所需位置(,)的前提下,机械臂消耗的能量应为最低。在机械臂运动的过程中,势能随、和的变化而变化。

目标函数表示关节势能的变化,公式为

(2)

其中:、和分别表示3个关节的重力。目标函数用于描述机械臂末端的预期位置和理论位置之间的误差,该误差可由式(3)得出:

(3)

其中:(,)表示遗传训练计算机采集的人手臂末端的实际位置坐标;(,)表示机械臂末端的位置:

(4)

为使该方法收敛更快,使用惩罚函数。为机械臂当前关节端和机械臂预期端的阈值。在实验过程中,令=10,则:

(5)

此外,将机械臂与人手臂偏差用作目标函数,以使得机械臂能够更好地模仿人手臂,并在消耗尽可能少能量的同时,使机械臂末端准确地到达最终位置。系统消耗最少能量的3个角度分别为′、′和′。能量消耗函数定义为

(6)

利用子目标函数分别选出优良个体,所有生成的子群都合并为一个完整的种群,且新形成的种群是成行排列的矩阵。在新形成的矩阵中选择每一行的第一个元素,形成新的矩阵。通过随机排列,可以获得所需的随机矩阵,取出新一代的行,并根据随机矩阵中指定的行逐行重新排列,最终得到随机排序的新种群。

2 种群随机化多目标遗传算法的实验

2.1 实验设定

手势适应系统包括用户、用于获取手势数据的Kinect传感器、用于处理手势信息的数据处理机、用于遗传训练的计算机和具有6个自由度的机械臂。机械臂手势自适应系统如图2所示。

图2 机械手臂自适应系统

Kinect传感器用于获取人体手臂关节的3D坐标。在数据处理机中,将3D坐标转换为关节的旋转角度,公式如下:

(7)

机械臂关节旋转角度在数据处理机中被转换为角度指令,为加快通过8位串行端口的传输,将角度命令的范围设置为0°~255°。角度指令直接配置在计时器中,并且通过控制计时器的中断生成控制信号。旋转角度与脉冲宽度调制(PWM)波的占空比成正比,因此所需的角度指令可表示为

(8)

在指令传输和数据处理过程中,STM32用于接收来自遗传训练计算机的角度指令,遗传训练计算机通过串行端口获取角度指令,并设置角度与计时器中断时间相匹配。根据角度指令生成控制信号,并使用机械手臂关节的相应转向机构旋转手臂。转向器由7.4 V、3 000 mA锂电池供电,旋转范围为0°~180°。控制端口输入的控制信号决定旋转角度,以将机械臂末端旋转到遗传训练计算机发出的指令所要求的位置。

由此,得到安装在关节机械手中ADXL345传感器的三轴加速度数据并计算三轴角度的变化。通过中值算法进行初始过滤后,将数据反馈到数据处理机,并计算出误差(),该值表示角度指令和转向齿轮旋转位置之间的误差,然后将它作为比例积分微分(PID)输入。在传感器的反馈值稳定后,调整比例、积分、微分和其他3个参数,并通过PID算法获得相应的补偿值()。补偿值作为下一个角度指令添加到原始角度指令中,然后发送到遗传训练计算机,直到补偿值变为0为止。PID算法的控制规律可以表示为

(9)

其中:表示PID系统的比例系数;表示积分时间;表示微分时间;()表示输入系统的偏差信号;()表示输出信号。

2.2 仿真实验

PRMOGA模型的基本参数如下:种群大小为75,种群最大代数为50,变量数为3,二进制数为18,种群差距(交叉概率)为0.9、变异概率为0.013。机械手臂的期望位置是平面上的随机点,根据给定角度(′,′,′),通过公式(4)计算(,)。在实验中,将(′,′,′)设置为(1.451 6,1.189 8,-1.074 1)rad。

经过50次迭代计算后,机械臂关节角度的逆解有18种组合,如图3所示。考虑到种群融合后遗传算法的不足,计算量大,且需要较高的能耗,文中研究选择每一代中最优的个体,然后直接将它放到下一代中,通过计算每个个体的适应度值,将最适合的个体传递给数据处理机,以弧度表示的最终结果为

图3 3个关节的最优角度

(′,′,′)=(1450 1,1190 4,1061 1)rad

为证明该算法的有效性,对角度数据进行测试,结果如表2所示。其中,表示优化的能量与原始能量之比;表示最终位置误差;表示轨迹误差。

表2 多目标遗传算法角度数据的验证结果

如表2所示,采用多目标遗传算法的轨迹误差小,能耗得到了降低,机械臂的最终误差满足在执行复杂动作过程中的位置误差要求。所提出的算法在跟踪手臂运动轨迹的同时,能够降低能耗和终端位置误差。

另外,种群随机多目标遗传算法中的目标函数设计不仅考虑到输出误差,而且还考虑了机械手的质量和人手臂的关节角度。在所提出的方法中,随着迭代次数的增加,目标函数、和的解(最小值)和平均值减小,表明总体在不断进化,大大提高了系统控制精度以及响应速度。在实验过程中,通过不断调整3个关节的角度,能够最大程度地减少机械臂的能耗。在人机交互系统的实际应用中,该方法具有实时性好、能耗低的优点。

3 算法的对比分析

文中实验通过人手势的水平和垂直移动获取手势数据,在手势更改期间,数据处理机从Kinect传感器获取手势数据,并将所有关节的角度数据发送到遗传训练计算机。同时,角度传感器将机械臂的实际角度反馈到遗传训练计算机。种群随机多目标遗传算法过程中的反馈角度数据和单个数据用于补偿下一个动作,通过择优选出最优个体,以便机械臂能够跟随人手臂的运动,从而改善手势的适应性。为证明所提算法的优势,选择PSO、SOGA和TMOGA作为比较算法。对于PSO和SOGA,将目标函数设置为

=++

(10)

其中:、和表示组合目标函数的权重。人机交互环境、能耗(用于节省能源)、终端错误(确保触摸)和手势跟踪功能(用于舒适)对于通信具有重要影响,因此权重均设置为0.33。同样,将和设置为10和100,以确保、和的结果具有相同的数量级。在另一个比较中使用TMOGA,此处的子目标函数为和。在简单遗传算法中,将目标函数设置为

(11)

其中:表示关节势能和角度偏差(或手臂模仿函数)的变化之和;函数与所提出的种群随机多目标遗传算法中使用的相同,但是2种算法的处理过程存在一定差异。TMOGA中使用并行选择方法,根据子目标函数的数量将所有个体均等地分为几个子群体,每个子群都分配有一个子目标函数,每个子目标函数用于独立地选择相应子群中的优良个体,然后形成一个新的子群体,并将所有生成的子群体直接合并成一个完整的种群,但总体序列保持不变。因为角度解仅适用于它们所属的函数,不适用于其他函数。

在每一代个体中,都选择4种不同算法中的最佳个体,然后进行比较,结果如图4所示。可以看出:种群随机多目标遗传算法(PRMOGA)获得的角度值最接近其初始值。

图4 各算法的角度比较

此外,还比较了4种算法的角度方差,如图5所示。可以看出:PRMOGA的方差最小。

图5 各算法的角度方差比较

利用4种算法计算每一代的最佳角度,分别放入相同的能耗函数、终端位置函数和模仿函数,如图6所示。可以看出:PRMOGA的能耗和终端位置误差最小,模仿效果最佳。

图6 各算法的能耗、终端位置误差、模仿误差

4种算法的计算结果如表3所示。可知:相对于其他方法,PRMOGA的能耗、终端误差和轨迹误差都最小;在计算时间方面,尽管所提出的算法的计算时间最长,但仍处于亚秒级,实时跟踪的准确性在可接受的范围内。对比几种方法的测试结果,可以看出PRMOGA在人机交互环境中具有较强的实用性。

表3 不同算法的计算结果比较

为进一步验证所提方法的性能,对比文献[12]中提出的CHG-EP方法和文献[13]中提出的自适应梯度多目标PSO方法(AGMOPSO),结果如表4所示。可以看出:与CHG-EP方法相比,PRMOGA方法消耗的能量明显较少;与AGMOPSO方法相比,PRMOGA方法具有较小的终端误差和轨迹误差。尽管PRMOGA在计算时间上的优势不是很明显,但与其他2种方法相比,PRMOGA在轨迹误差、终端误差和能耗方面表现良好。在现有的手势自适应研究中,很少有研究考虑到跟踪误差、终端误差和能量消耗。相比之下,文中所提出的PRMOGA方法综合考虑了这3个方面的影响,在应用中更具有优势。

表4 文献[12-13]中方法与文中方法的结果比较

4 结论

为使机械臂适应人手臂的动作,提出一种种群随机多目标遗传算法(PRMOGA)以优化机械臂的3个转向关节的运动。该方法通过设置目标函数,综合考虑了人机交互中能耗(用于节能)、终端误差(确保触摸)和姿势轨迹(用于舒适)的影响,不仅解决了时间和误差问题,而且还解决了传统遗传算法过早收敛的问题。利用该方法可以快速搜索机械臂关节3个角度的解空间,通过随机更改种群每一代,确保了种群的多样性。在每一代种群中,都采用最优个体的方法解决人机交互系统中的能耗和误差问题。对比分析了所提算法和其他算法。结果表明:所提出的方法不仅可以降低能耗,而且可保证追踪机械手臂的跟踪效果;所提出的算法具有能量消耗少、轨迹误差小的优势,能够有效提高机械臂姿态适应的准确性。

猜你喜欢
手势遗传算法种群
山西省发现刺五加种群分布
挑战!神秘手势
基于遗传算法对广义神经网络的优化
基于遗传算法对广义神经网络的优化
基于遗传算法的临床路径模式提取的应用研究
基于遗传算法的临床路径模式提取的应用研究
由种群增长率反向分析种群数量的变化
遗传算法在校园听力考试广播系统施工优化中的应用
物流配送车辆路径的免疫遗传算法探讨
胜利的手势