技术干货

协作机器人碰撞检测到底咋实现的?关节电流法准不准

魏广志
魏广志
2026/06/09 08:56

最近在做一个上下料的小项目,UR10e从传送带抓件放到机床上,整体节拍要求高一点,TCP跑得快。大部分时候没问题,但偶尔感觉停机那一瞬间有滞后,撞上去人或者工件才知道停。试过把电流阈值调低,结果正常加减速的时候也误触发几次,头大。

想问下各位大佬,协作机器人那个碰撞检测底层到底是咋判断的?是不是就是看关节电流突变量?还是说有的厂家做了外部传感器融合?电流阈值一般设多少合适,有没有公式或者经验值能套的?比如额定电流的百分比这种。

35 3

全部回复 (3)

5066052159
5066052159#1

UR那边的检测说白了就是关节扭矩观测器,不光是看电流。它内部有个动力学模型,根据当前位姿、速度、加速度算出理论扭矩,再跟实际扭矩做残差,残差超阈值才触发保护。所以光调电流阈值没用,而且阈值太敏感在奇异点附近或者急停的时候本来就会误报。停机滞后主要看响应时间,UR10e标称碰撞停止时间大概在50ms左右,但这是从检测触发到完全停止,实际应用里加上通信和控制器处理,能做到100ms内停住就不错了。你要是节拍紧TCP快跑,可以把监测周期调短一点,比如5ms一个周期,响应会好一些,但CPU占用会涨。还有一招是直接给末端挂个力矩传感器,六维的那种,加在法兰跟夹爪之间,触发阈值能做到±5N以内,比纯电流残差法靠谱多了。

2026/06/10 01:10
难得糊涂
难得糊涂#2

我之前用Aubo的协作机做过类似场景,原理差不多但它有个外接的电流环接口开放出来了,可以在控制器里直接读每个关节的实时扭矩值,自己写滤波算法。我当时的做法是滑动窗口50ms做均值滤波,再设动态阈值,基线值用前1秒的均值×1.3倍,误触发基本没了。响应时间实测从触发到发出停止指令大概30ms,加上机械制动完全停住70ms左右。你说的那种撞上去才知道停,很可能是阈值设得太保守了,UR默认出厂的安全阈值是按ISO/TS 15066来的,那个是按人体碰撞力的上限反推的,150N左右,够用但确实不灵敏。如果应用场景是金属件不怕撞,可以走风险评估把阈值放宽。

2026/06/10 22:47
程德发
程德发#3

你们项目节拍到底多少秒一个循环?如果超过8秒我说的方法都不适用,因为协作出机不太适合做高速高节拍任务,电机本身扭矩密度就比工业机器人低,加减速性能有限,强行拉高节拍会牺牲很多安全裕量。

2026/06/11 14:04