误碰撞原因分析及解决办法

误碰撞总结可在 TR#10197 查看,以下分析也均基于该TR

[TOC]

1.误碰撞原因初步分析

  • 出现碰撞后,首先需要对日志和CSV进行初步分析,确认系统和负载等设置没问题
  • 可以对日志进行检索关键词: “发生碰撞!当前碰撞检测阈值为“ 来确认碰撞发生的位置,该条信息 左边对应的时间为诊断文件的时间戳,后续分析的诊断文件也是该诊断文件

1)确认系统是带有实时核心的系统

1)确认系统是带有实时核心的系统

可以在导出的日志包中的 /system/X.Org 中查看

如下图,第一个结尾是rtxx,代表带有实时内核的系统。第二个结尾是generic,代表不带有实时内核的系统

如果是X86+非实时系统,可以参考文档 安装系统 对系统进行升级

如果是ARM+非实时系统,请联系 软件部贾存虎 进行处理

3

4

2)确认网卡驱动

对于X86的控制柜+REATEK网卡,系统是2204时,网卡驱动需要确认是否为r8168,如果是r8169,需要参考网卡驱动 进行升级。

如果是intel的网卡,驱动为igb,不需要进行升级网卡驱动

可以在导出的日志包中的 /system/dmesg 中查看

2

3)确认负载参数正确

下载触发碰撞时的CSV,将数据拉到第一个 PS ,确认负载参数设置,参考标准负载参数文档

可以在导出的日志包中的 /log/.trace 中查看

5

4)确认负载螺丝和底座螺丝是否松动

负载螺丝松动或者机械臂底座螺丝松动,在跑工程时会导致机械臂晃动,从而触发误碰撞

5)确认机械臂模型没有出现问题

如果出现类似与下图所示机械臂模型问题,请联系 算法部刘赛男 确认模型和DH误差

1

6)确认摩擦参数和力矩常数

从CSV确认力矩常数和摩擦参数是否存在为0的情况,若存在,请参照进行处理

8

7)确认周期问题

上述 1-6 确认没有问题后,查看日志,看触发碰撞前,是否出现 RTLINK slave period abnormalPeriod delay exceed 20% xxxx > 6000. CycleTime is xxxxsjoint1 cmd not update

如有出现以上三种字样,请联系 软件部贾存虎 进行处理

8)确认外力矩与碰撞阈值之间的大小关系

碰撞是算法端将外力矩和阈值进行对比进行判断的,如果触发碰撞时,日志显示外力矩的绝对值小于阈值绝对值,需要联系 算法部钟一辰 处理

正常例子:

6

错误例子:

7

9)确认交融半径问题

moveJoint 或者 moveLine 时交融半径设置为0时不报碰撞,交融半径大于0时误报碰撞,请联系 算法部赵锦强 处理

10)上电刹车报碰撞

若出现标题问题,查看日志触发碰撞时是否有大电流,若存在大电流,请联系生产或者工艺排查关节硬件问题

2.通过诊断文件对误碰撞原因进行深度分析

  • 通过观察诊断文件中触发碰撞关节的 电流、速度(差分速度)、加速度、路点 等信息,几乎可以确认误碰撞问题所在

1)数据提取方法

  • 此处假设关节3触发碰撞
1.查看关节最大电流限制

诊断文件中 “ Joints max curr “描述的是关节最大电流限制( 0.29.5-rc.15、0.31.0-rc.16、0.32.0-alpha.102 及以上版本带有此输出)

10

2.提取路点、速度、加速度等信息

在诊断文件中新建工作表,将 SafetyMode、q3、qd3、qdd3、current3、voltage3、target_q3、plan_q3 共8列复制到新的工作表中,并冻结 tiltle 窗口(选中title下面的第一行数据,然后在视图--->冻结窗口中点击冻结窗格)

同时需要确保所有数据不为0,若存在q、qd、qdd某个参数的一列全部为0的情况,请联系硬件部滕超 处理

9

2)数据分析

数据使用范围:SafetyMode的第一个PS上面的NOR

12

1.确认target_q和plan_q保持一致

在旁边的表格处输入 target_q - plan_q ,计算PS前300个周期即可,需要保证全部小于1E-06,如下图所示

若存在 target_q - plan_q > 1E-06 的数据,则表示target_q和plan_q没有保持一致,该问题可以说明 下发的点存在重复点

存在该问题请联系 软件部贾存虎 处理

2.确认跟踪精度

在旁边的表格处输入 (target_q - q) / PI() * 180 ,计算PS前300个周期即可,需要保证全部小于10,如下图所示

跟踪精度可以说明机械臂对目标点的跟踪能力,当电流没有饱和时,出现了跟踪精度的问题,需要联系 硬件部张世亮 开启速度前馈后测试

13

3.对q和target_q做速度差分

由于只看 q和target_q 的曲线不能很清晰的表明是否存在跳点或者重复点,亦或者其他问题,所以需要对 q和target_q 进行差分处理

假设target_q在H列,在旁边的表格处输入 (target_q - last_target_q) / 0.005 ,若target_q是H20,则 last_target_q就是H19。q作与target_q相同的处理,计算PS前300个周期即可,target_q差分速度的曲线趋势与q差分速度的曲线趋势需要保持相同,如下图所示

若q差分速度的曲线趋势与target_q差分速度的曲线趋势不同,不光滑或者有突变,则表示有跳点或者重复点,亦或者存在周期问题。首先需要排查是否存在周期问题。若不存在周期问题且target_q和plan_q保持一致,此类问题需要抓取以太网报文和CAN报文去进一步确认关节问题还是上位机问题,抓取报文后联系 软件部贾存虎 处理

14

4.确认电流、加速度和电压是否稳定

选用 qdd、current、voltage 三列插入曲线,由于是否发生突变需要对比之前周期的电流、加速度和电压,所以至少需要1500个周期的数据,如下图所示

在一般情况下,3中的q差分出来的速度曲线是光滑无突变,则该曲线也不会产生突变。若电流和加速度存在突变,需要和3得到的曲线一起分析确认是否是周期异常、跳点重复点、亦或者需要抓包文来确认是否是关节问题。

15

5.确认电流是否饱和

此问题仅在3、4的曲线趋势是正常的情况下确认

将诊断文件中 Joints max curr碰撞前后的电流进行对比,可以看到电流是否饱和

若电流饱和且曲线趋势正常,则需要降低程序中的加速度和速度跑程序,并联系 软件部贾存虎 确认 aubo_description 中速度和加速度限制是否正确

若电流没有饱和且曲线趋势正常,则表明阈值存在问题, 请参照 阈值抓取流程 处理

results matching ""

    No results matching ""