基于视觉的协作机器人避障

协作机器人技术碰撞避免系统

摘要

本文研究了一种基于人工势场方法的实时碰撞避免算法,该算法旨在用于协作机器人应用。在此项工作中,通过视觉系统检测并获取人的运动,并在模拟工作空间中利用虚拟人与机器人进行交互以复现这些动作。随后定义椭球体,以完全包含虚拟人的多个部位以及机器人的末端执行器。虚拟人椭球体与末端执行器椭球体之间的最小距离作为避障算法的输入。文中给出了测试结果,以展示该算法的有效性。最后,分析了障碍物速度对算法确保安全避障能力的影响。

关键词 :协作机器人技术 Artificial潜力 Collision避障算法 Vision系统

1 引言

“协作机器人技术”意味着人类与机器人合作完成特定任务。这需要结合人类的适应性以及机器人特有的速度、精度、重复性和负载能力。协作机器人技术是近年来被广泛研究的课题。

许多研究项目,如ROBOT‐PARTNER[1]项目,其目标是研究协作机器人的各种问题和潜力。ROBOT‐PARTNER项目涉及操作人员与机器人在后勤支持和在线装配作业中的协作问题。此类操作的一个示例是车辆后轴上制动单元和车轮的装配,Michalos等人在[2]中对此进行了研究,其中提出的解决方案是使用一台协作机器人来举起并保持后轴的位置,同时由操作人员完成车轮和线束的装配过程。随后,机器人取放下一个车轮组件,而操作人员则完成第一个车轮组件的装配。

近年来,协作机器人技术已出现在一些工业领域,例如位于美国斯帕坦堡的宝马工厂,那里的机器人与人类操作员协作对车门进行密封,以防止噪音和水渗入[3]。当人类与机器人在同一环境中并肩工作时,确保安全至关重要。

针对人类操作员的安全问题,已开发出多种算法以避免人与机器人之间发生不期望的碰撞。其中最早的碰撞避免算法之一由科提布在[4]中提出。在[4]中首次阐述了通过人工势场进行轨迹规划方法。许多避障算法都基于通过人工势场的轨迹规划方法,例如在[5]中提出的算法。在[6, 7]中解释了“动力静危险场”,可用于控制律中以防止可能的碰撞。

所有避障算法都基于测量机器人与障碍物之间的距离。一些研究假设距离信息已经可用,而另一些研究则关注距离的计算问题。在[8]中提出了直接从机器人工作空间的图像计算距离的思想。近年来,微软KinectTM版本1被多项研究用作视觉系统。在[9]中,微软Kinect与其他传感器(如IMU传感器)结合使用,以优化移动机器人的室内导航。在[5]中,利用Kinect获取的深度数据来计算机器人与障碍物之间的距离。用于人体跟踪的替代传感器系统是可穿戴传感器[10,11],它们不像视觉系统那样存在遮挡问题,但相对而言对人类操作能力更具侵入性。

本文提出了一种避障算法。该算法旨在使机器人能够避开障碍物,通过修改规划的轨迹,同时仍能到达最终设定姿态。本文认为,可利用Kinect ver.1配合点跟踪和运动学分析算法来检测人体的实际位置和体积。在[12–15]中,作者发现这些技术可以结合使用,以识别空间中物体的运动和惯性特性。由视觉系统获取的人体运动信息随后在一个模拟工作空间中由虚拟人再现,机器人模型也在该空间中进行仿真。虚拟人的各个部分以及机器人末端执行器均被椭球体覆盖。在每一时刻,计算操作人员与机器人之间椭球体的距离。据此进行自适应轨迹规划,以避免碰撞并实现机器人目标。

本文组织如下。第2节描述了为本工作开发的仿真环境。第3节介绍了避障算法。第4节展示了为验证避障算法有效性而进行的示例测试的结果。第5节分析了该算法的性能。本文的结论在第6节中给出。

2 仿真环境

在专门为Matlab Simscape 多体TM环境开发的仿真环境中,研究了用于人机交互的避障算法。

仿真环境由两个主要模块组成:模块‘虚拟人’和模块‘机器人’,如图1所示。

示意图0

假设的仿真机器人为七轴库卡LBR iiwa 7 R800机器人。该机器人的几何和惯性数据信息属于公开记录。

而是根据机器人性能的合理假设来定义电机的特性。模拟机器人系统的逻辑在 [16]中进行了详细说明。

“虚拟人”模块展示了用于复现由视觉系统获取的操作人员运动的虚拟人模型。在作者的系统中,微软Kinect版本1能够追踪人类20个关节的运动,并实时评估所有关节的位置。为了验证Kinect是否准确追踪关节的运动,在 Kinect的RGB相机所获取的图像上叠加了骨架图。根据关节的位置向量,

示意图1

为虚拟人的每个部分定义的参考系统方向矩阵fined,被计算出来。然后从这些矩阵中获得欧拉角,这些角度值作为输入用于驱动虚拟人的每个连杆,以复制人类的动作。通过这种方式,操作人员可以在模拟工作空间中移动虚拟人并与机器人进行交互。图2中展示了再现操作人员动作的骨架图和虚拟人。

3 碰撞避免算法

在[9]中,通过人工势场进行了轨迹规划。其思想是为机器人的目标位姿设置一个吸引力场,同时为障碍物设置一个排斥力场。前者推动机器人向目标位姿移动,后者使机器人远离障碍物。通过这种方式,机器人可以沿着新的路径到达目标位姿,且不会与障碍物发生碰撞。许多碰撞避免算法都是基于人工势场方法的。

在此工作中,障碍物的位置由微软Kinect检测。计算一个排斥速度vec以避免机械臂与通用障碍物[5]之间的碰撞:

$$
V_c(P, O) = \frac{v(P, O)}{|D(P, O)|} D(P, O)
$$

距离 $ D(P,O) $ 是末端执行器上兴趣点P与障碍物上兴趣点O之间的距离。点P和O是末端执行器与障碍物之间的最小距离点。向量 $ V_c(P,O) $ 和距离 $ D(P,O) $ 方向相同。幅值 $ v(P,O) $ 由以下方式确定:

$$
v(P, O) = \frac{V_{\text{max}}}{1 + e^{\left(\frac{|D(P,O)|}{q} - 1\right)a}}
$$

其中 $ V_{\text{max}} $ 为允许的最大速度,$ q $ 为参考距离,$ a $ 为形状因子。当 $ |D(P,O)| = 0 $ 时,幅值 $ v(P,O) $ 等于 $ V_{\text{max}} $,而当 $ |D(P,O)| > q $ 时,幅值 $ v(P,O) $ 为0。幅值 $ v(P,O) $ 随距离 $ D(P,O) $ 的变化如图3所示。

修正项 $ V_c $ 随后被添加到末端执行器的规划速度中,以避开障碍物,同时仍可到达最终位姿。本研究中考虑的障碍物为人类的手臂、前臂和手。在本研究中,末端执行器和障碍物均被包含在椭球体内。覆盖末端执行器的椭球体以通过正向运动学算法测得的末端执行器端点为中心。障碍物的椭球体则根据通过微软Kinect获取的数据放置在其上方。为了确保安全体积,末端执行器和障碍物的椭球体均进行了适当的扩大处理。

如[14]所述,关节速度 $ \dot{q} $ 被计算为 $ v_e + K_e $ 的函数,其中 $ v_e $ 是与规划轨迹相关的末端执行器速度向量。

其中 $ K_e $ 是正定矩阵 $ K $ 与误差 $ e $ 的乘积,$ e $ 为末端执行器设定位姿与实际位姿之间的差值。为了集成避障算法,速度 $ v_e $ 被替换为:

$$
V_{\text{TOT}} = v_e + K_e + V_c
$$

其中 $ V_c $ 根据公式(1)计算。当 $ |D(P,O)| \leq q $ 时,排斥向量 $ V_c $ 不为零,并将其叠加到速度 $ v_e + K_e $ 上,以避免与障碍物发生碰撞。当障碍物不再构成威胁时,即当 $ |D(P,O)| > q $ 时,排斥速度 $ V_c $ 降为零,末端执行器由末端执行器速度向量 $ v_e + K_e $ 驱动,移向最终位姿。

示意图2

![图4](图4. 名义规划路径(实线),修改后的路径(虚线)以及实际设定速度 VTOT(虚线箭头)

排斥速度向量 $ V_c $(虚线箭头)以及吸引速度向量 $ v_e $ 和 $ K_e $ (实线箭头和虚线箭头)如图4所示。末端执行器在合成速度 $ V_{\text{TOT}} $(虚线箭头)的作用下,能够避开障碍物,同时仍到达设定姿态,其路径相对于名义上的规划位置有所不同。

然而,由于机器人运动能力有限,避障算法可能无法正常工作。在这种情况下,机器人将无法避开障碍物,从而发生碰撞。因此,决定当距离 $ |D(P,O)| \leq 8 \text{mm} $ 时,将速度向量 $ \dot{q} $ 设为0,以停止机器人并限制碰撞造成的损害。

4 测试

进行了测试以验证避障算法的正确性。例如,图5展示了演示测试的结果。在此试验中,末端执行器需沿特定轨迹运动(通过设定机器人的初始和终止位姿以及完成路径所需的时间来定义),同时操作人员移动虚拟人,将其手臂插入末端执行器的运动路径中。该测试的结果需表明:由所提出算法驱动的机器人是否能够避开障碍物,并仍能完成任务到达最终设定的位姿。

公式(2)的特征参数 $ V_{\text{max}}, q $ 和 $ a $ 的值为:
$$
V_{\text{max}} = 50 \, \text{m/s}, \quad q = 0.2 \, \text{m}, \quad a = 10
$$

结果表明,机器人能够避免与虚拟人手臂的碰撞,并最终到达其最终位姿。

示意图3

5 性能

为了分析该避障算法的性能,在前一段所述的同一试验中进行了两次测试,测试中操作人员手臂穿过机器人规划轨迹的速度逐渐增加。定义了两个参数来评估避障算法的能力。第一个参数是每次测试中末端执行器与障碍物之间的最小距离,记为 $ D_{\text{min}} $;第二个参数是实际最终位置与规划位置之间的误差 $ E_p $。当操作人员手臂速度分别为 0.1米/秒和0.2米/秒时,这些参数的值如图6所示。

很明显,该算法在避免碰撞和以高精度达到设定姿态方面的性能均有所下降。这一结果取决于机器人的有限动态性能,以及规划轨迹的形状和手臂侵入运动。

最小距离 Dmin,(b) 位置误差 Ep)

6 结论

本文提出了一种用于协作机器人应用的避障算法分析。该算法在仿真环境中进行了测试,其中虚拟人与机器人可以进行交互。虚拟人的动作由微软Kinect版本1检测,模拟真实人体的运动。将人体的手臂、前臂和手视为障碍物,机器人在试图沿其标称规划轨迹向目标移动时必须避开这些障碍物。障碍物和末端执行器完全由椭球体覆盖,在机器人和人体运动过程中这些椭球体不得相交。实验中测试了算法在手臂不同速度下的表现,操作人员和两个参数被定义用于研究该算法的性能。参数表明,随着障碍物速度的增加,该算法的性能下降。未来工作将涉及研究该算法的能力,考虑两个人类手臂与所有机器人连杆之间可能发生的碰撞。

### FPGA 实现视觉避障机器人设计方案 #### 方案概述 FPGA作为高度灵活的可编程逻辑器件,在机器视觉应用中展现出显著优势,尤其是在低功耗需求场景下被认为是最佳选择[^1]。对于视觉避障机器人而言,FPGA不仅提供了强大的计算资源用于图像处理和模式识别,还允许开发者定制硬件加速模块以优化性能。 #### 关键组件和技术栈 - **传感器层**: 使用摄像头获取周围环境信息,常见的接口方式包括GigE或USB,这些接口易于集成至嵌入式系统中,并可通过制造商提供的SDK方便地访问相机功能[^3]。 - **数据预处理单元 (DPU)**: 构建于FPGA内部的数据流水线负责初步过滤噪声、调整亮度对比度等操作,确保后续分析阶段获得高质量输入信号。 - **特征提取引擎**: 利用FPGA内置DSP Slice执行卷积运算或其他变换方法来抽取目标物体轮廓特征;此过程可能涉及深度神经网络模型推理任务。 - **决策控制中心**: 结合路径规划算法与即时定位映射(SLAM),形成完整的导航指令集指导机械臂动作或者底盘移动方向。值得注意的是,“大脑”部分侧重全局态势评估及长远路线策划,“小脑”则专注于局部动态响应调节两者间需保持紧密协作关系以便高效完成各项使命[^4]. #### 开发流程建议 为了加快原型验证周期并降低风险系数,推荐采用如下步骤开展项目: 1. 明确应用场景特性及其对应的软硬件边界划分原则; 2. 选取合适的开源库/框架辅助搭建基础架构(如OpenCV/OpenVX); 3. 针对特定瓶颈环节设计专用IP核提高效率降低成本开销; 4. 进行充分测试迭代直至满足预期指标为止。 ```python import cv2 as cv from realsense_camera import RealSenseCamera # 假设这是来自Intel SDK的一个Python封装类 def preprocess_image(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) blurred = cv.GaussianBlur(gray, (7, 7), 0) return blurred camera = RealSenseCamera() while True: frame = camera.get_frame() processed_img = preprocess_image(frame) # 后续加入更多复杂的图像处理逻辑... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值