| 修订时间 | 修订内容 | 修订人 |
|---|---|---|
| 2025.5.24 | 初始版本,详细描述了多个机械臂力控应用场景的实施方案和参数设置,包括触摸屏功能检测、座椅熨烫、发动机减速器装配、USB插拔、马桶盖装配、智能音箱功能检测和充电枪插拔等内容。 | 周哲 |
导读:本文档系统地介绍了多种机械臂力控应用场景的具体实施方案和参数设置,提供了详尽的操作指南和问题解决方案,为相关工程实践提供参考。
1.1. 一、触摸屏功能检测
1. 需求分析
功能需求:机械臂携带书写笔,在触摸屏上绘制直线或圆等图案,绘制速度50mm/s;
安全性要求:书写笔与触摸屏之间的最大力不超过1.5N,保证不损伤屏幕;
- 力控精度要求:在实现图案绘制的同时保证屏幕安全性,需要笔和屏之间的力保持在1±0.5N。
Notice:触摸屏来料角度(倾斜30-60°之间)不一致。
2. 方案
方案分析:
如果单纯通过示教点后机械臂走运动控制,存在问题:
- 示教困难:1)示教过程中可能造成屏幕损伤;2)示教位置精度取决于人眼睛,示教位置误差通常>1mm;3)姿态示教复杂,需要结合多个准确的示教点才能确定屏幕所在的平面,从而计算姿态,姿态精度受示教位置精度的影响。
- 机械臂运动过程中位置跟踪误差(50mm/s的直线和圆弧运动中,运动方向跟踪误差能够达到0.5mm,垂直屏幕方向误差0.1mm),机械臂跟踪误差+示教轨迹误差耦合作用,笔与屏幕之间的实际距离偏差会达到2mm以上,造成的力将远远大于1.5N。
- 笔和屏幕之间的力没有进行控制和约束,安全风险大。
因此,选择示教标定屏幕面+力控的方案。
方案实施过程:
- 示教标定
- 通过示教三个位置点,确定屏幕所在的平面;(该标定步骤,来料时做一次即可)。
- 直线绘制位置终点由用户设置,圆弧绘制半径特征由用户设置,姿态根据屏幕所在平面确定。
- 力控绘制图案:拆分为两个阶段,第一阶段为接近,第二阶段为绘制。
- 接近阶段:末端沿TCP-Z方向靠近屏幕,接触后达到力平衡状态,退出条件为达到目标力且力平衡。
- 绘制阶段:在第一阶段基础上,沿着X/Y方向绘制直线或圆,运动过程中维持力平衡,直到绘制完毕,退出条件,运动队列清空。
视频如下:
力控参数设置:
力控参考坐标系:坐标系姿态x-y平面是屏幕面,z轴垂直于屏幕;坐标系原点任意。可以是动坐标系或者固定坐标系。
力控方向:Z轴开力控,其他轴不开;enable = {false, false, true, false, false, false}
目标力:Z轴目标力2N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0.0, 2.0, 0.0, 0.0, 0.0}。
参考轨迹:绘制阶段参考轨迹是用户设置的直线/圆弧;接近阶段可以不设置参考轨迹,完全靠力引导方式完成,或者设置参考轨迹(MoveL),加快接近速度。
导纳参数:M = {20,20,20,10,10,10};D = {0,0,300,0,0,0};K = {0,0,0,0,0,0};
潜在问题及解决方法:
接近阶段力过大
- 有参考轨迹,可能是设置的参考轨迹目标点离屏幕太近,导致瞬间速度过大。可往目标平面上方移动参考轨迹目标点位置;
- 无参考轨迹,可能是阻尼设置太小导致速度过快。可适当增大阻尼
接近阶段接触后回弹
- 阻尼设置太小,导致接触时力调整过程出现震荡。可适当增大阻尼。
- 绘制阶段力控精度不达标
- 力波动的均值不等于1N。需要检查扣除工具影响后的外力估计精度。
- 力波动幅度大于0.5N,由笔头变形和机械臂运动误差导致力干扰大。可适当调整阻尼(绘制和接近阶段的导纳参数可以取不同的值)。
1.2. 二、座椅熨烫
1. 需求分析
功能需求:机械臂携带熨烫机(本身带有缓冲装置),贴合座椅表面熨烫,速度200-300mm/s;
力控精度要求:垂直于熨烫平面的力保持在30*(1±40%)N(力控精度要求不高,期望力30N可能根据工艺会发生变化)。
2. 方案
方案分析
通常来料位置存在偏差,需要示教运动轨迹,这个过程很繁琐。如果省略示教环节,直接默认座椅位置不变,由于座椅表面不平整,侧边与正面靠背连接处姿态误差较大,来料位置较小的偏差可能导致期望和默认轨迹的姿态偏差大,如果要在曲率变化大的部分做到贴合,对力响应速度的要求很高。
可实施的方案:将整体座椅表面划分为多个平面处理,上侧枕头、左/右侧护腰、正面靠背,每个平面上分别做恒力控制,减小姿态误差。
视频如下:
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:Z轴开力控,其他轴不开;enable = {false, false, true, false, false, false}
目标力:Z轴目标力30N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0.0, 30, 0.0, 0.0, 0.0}。
参考轨迹:参考轨迹是用户默认的运动轨迹(可以是事先示教好的,一个型号的座椅示教一次)。
导纳参数:M = {20,20,20,10,10,10},D = {0,0,2000,0,0,0},K = {0,0,0,0,0,0}。
问题及解决方案:
- 运动过程中不能有停滞
- 参考轨迹段与段之间根据运动距离设置对应交融半径。
- 缝合线贴合熨烫
- 需要将旋转方向力控打开,是更高级的应用。
1.3. 三、发动机减速器装配
1. 需求分析
功能需求:机械臂携带齿轮下探装配进入减速器槽,节拍30s;
力控精度要求:接触力不能大于15N,保证减速器质量。
2. 方案
方案分析
将装配过程分为三个阶段:
- 靠近阶段:末端沿TCP-Z方向靠近减速器槽,接触后达到力平衡状态,退出条件为达到目标力且力平衡。
- 对齿阶段:通过Z方向目标力引导的方式促使齿轮朝向减速器槽方向施加一定的压力,同时转动齿轮组,退出条件为Z方向有位移。
插入阶段:
(插入方案一)不设置参考轨迹,通过z方向力引导方式,使得齿轮沿着Z方向柔顺插入,退出条件为到达目标力且平衡。
(插入方案二)设置目标点(TCPZ位移+六关节旋转),给直线参考轨迹,参考轨迹为边旋转边下压,退出条件为力控达到稳态或位移了设定的距离。
视频如下:
参数设置:
力控参考坐标系:1)力控开始时刻的TCP;2)力控输出的指令TCP;3)实际TCP。
靠近阶段:
参考轨迹:不设置
M = {20,20,20,10,10,10},D = {0,0,1000,0,0,0},K = {0,0,0,0,0,0}
enable = {false, false, true, false, false, false},goal_force = {0, 0.0, 5, 0.0, 0.0, 0.0}
对齿阶段:
参考轨迹:在第一阶段的结束位置做第六轴旋转运动对齿
M = {20,20,20,10,10,10},D = {0,0,2000,0,0,0},K = {0,0,0,0,0,0}
enable = {false, false, true, false, false, false},goal_force = {0, 0.0, 8, 0.0, 0.0, 0.0}
插入阶段:
参考轨迹:不设置
M = {20,20,20,10,10,10}, D = {2000,2000,2000,1000,1000,1000}, K = {0,0,0,0,0,0},
enable = {true, true, true, true, true, false}, goal_force = {0, 0.0, 20, 0.0, 0.0, 0.0}
问题及解决方案:
- 第一阶段速度过慢,需要加快节拍
- 示教点设置到接触点上几毫米处,减小运动距离。
- 设置参考轨迹,参考轨迹处设置速度、加速度。
- 第三阶段插入时卡住
- 在第一阶段接触时加入Rx、Ry方向力控方向,接触时调整对齐角度,适用于接触平面较大且能自适应调整角度。
- 角度误差较小时,增加目标力即可解决。
- 角度误差较大时,增加力控开启方向X、Y、Z、Rx、Ry,X/Y方向校准位置,Rx/Ry方向校准角度。
- 可以将一段插入分成多段校准。
1.4. 四、USB插拔
1. 需求分析
- 功能需求:机械臂夹住夹持U盘装配,节拍10s;
- 安全性要求:装配过程力不能大于20N,保证U盘装配质量。
2. 方案
该项目有导向槽,对初始位置误差容忍度高,只要保证机械臂运动过程中有一定的柔性,就能插入成功。
实施过程
将过程分为三个阶段:靠近,搜孔(该项目有导槽,无需搜孔操作),插入(退出条件达到目标力/移动超过设定长度)
导槽插入阶段:通过导槽插入修正U盘Rx、Ry方向。
插入阶段:正常开启X、Y、Z方向力控,现场情况验证后发现USB接口物理结构误差,需要将USB口朝下旋转,Rx给一个负方向力有助于插到底。

视频如下:
参数设置:
力控参考坐标系:实际TCP或者力控输出的指定TCP。
参考轨迹:不设置参考轨迹,全程力控驱动。
力控方向:
导槽阶段,TCP-Z,Rx、Ry开力控,其他轴不开;enable = {false, false, true, true, true, false}
插入阶段,TCP-X,TCP-Y,TCP-Z,Rx开力控,其他轴不开;enable = {true, true, true, true, false, false}
目标力:
导槽阶段,TCP-Z,方向目标力1N,其他轴建议设置为0;goal_force = {0, 0, 1,0, 0, 0}
插入阶段,TCP-Z,Rx方向目标力0.5N,其他轴建议设置为0;goal_force = {0, 0, 5, 0.5, 0, 0}、
导纳参数:
导槽阶段,M = {20,20,20,10,10,10},D = {0,0,1000,1000,1000,0},K = {0,0,0,0,0,0}
插入阶段,M = {20,20,20,10,10,10},D = {1000,1000,1500,1500,0,0},K = {0,0,0,0,0,0}
问题及解决方案:
- 根据末端夹爪夹取方式不同,力控开启方向可能需要从Z方向换成X/Y方向。
- 末端工装较重,且形状不规则,力控误差较大
- 开启力控前获取传感器读数作为传感器偏置(getTcpForceSensors()、setTcpForceOffset())
1.5. 五、马桶盖装配
1. 需求分析
马桶盖装配包含多个装配部件,如防水盖、旋钮、铰链、驱动板等装配工艺。
现阶段为前期验证阶段,不考虑节拍与目标力。
2. 方案
1、防水盖装配:分为三个阶段,接近、下压、到位判断。
- 接近阶段:末端到达预入位后,给TCP-X和TCP-Y方向设置目标力,使其接触到定位障碍物后停止。
- 下压阶段:设置TCP-Z方向力使其下压,直到接触到目标位置。
- 到位判断:分别给TCP-Y正负方向设置目标力,根据往返运动位移差判断是否装配成功。
视频如下:
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:
接近阶段,TCP-X,TCP-Y开力控,其他轴不开;enable = {true, true, false, false, false, false}
下压阶段,TCP-X,TCP-Y,TCP-Z开力控,其他轴不开;enable = {true, true, true, false, false, false}
目标力:
接近阶段,TCP-X,TCP-Y方向目标力2N,其他轴目标力不生效,建议设置为0;goal_force = {2, 2, 0, 0, 0, 0}
下压阶段,TCP-X,TCP-Y方向目标力0N,TCP-Z方向目标力5N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 5, 0, 0, 0}
参考轨迹:不设置参考轨迹。
导纳参数:
接近阶段,M = {20,20,20,10,10,10},D = {500,500,0,0,0,0},K = {0,0,0,0,0,0}。
下压阶段,M = {20,20,20,10,10,10},D = {500,500,800,0,0,0},K = {0,0,0,0,0,0}。
2、旋钮装配:分为四个阶段完成旋钮装配,接近、外圈圆环对齐搜孔、内圈圆柱对齐搜孔、按压。
- 接近阶段:设置TCP-Z方向力使旋钮贴近槽,到达目标力后退出力控。
- 外圈圆环对齐搜孔:此阶段采用螺旋线搜孔,使旋钮外圈圆环对齐,对齐成功后TCP-Z方向受力减小,退出力控。
- 内圈圆柱对齐搜孔:6关节旋转360°,同时TCP-Z方向施加目标力,使旋钮中心半圆柱与槽上的半圆柱对齐,通过搜孔前后的位移判断是否搜孔成功。
- 按压:TCP-Z方向施加目标力,使旋钮的卡扣卡进马桶槽中。
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:
外圈圆环对齐搜孔,TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
内圈圆柱对齐搜孔,TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
目标力:
外圈圆环对齐搜孔,TCP-Z方向目标力8N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 8, 0, 0, 0}
内圈圆柱对齐搜孔,TCP-Z方向目标力5N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 5, 0, 0, 0}
参考轨迹:
外圈圆环对齐搜孔,螺旋搜孔,步长0.001m,螺旋平面为TCP平面,旋转2圈。 内圈圆柱对齐搜孔,在上一阶段基础上,第六关节旋转360°。
导纳参数:
外圈圆环对齐搜孔,M = {20,20,20,10,10,10},D = {500,500,0,0,0,0},K = {0,0,0,0,0,0}。
内圈圆柱对齐搜孔,M = {20,20,20,10,10,10},D = {500,500,800,0,0,0},K = {0,0,0,0,0,0}。
3、铰链装配:分为四个阶段,铰链旋入、铰链下压、对槽、到位判断。
- 铰链旋入:示教一段参考轨迹,参考轨迹的一个点位是装配初始位,铰链一端对准孔洞,另一个点位为一端旋入到位状态,铰链旋入过程中,铰链会根据孔洞形状调整姿态。Z方向到达目标力25N退出力控。
- 铰链下压:将机械臂沿着工具Z+方向和X+方向移动,下压第一阶段铰链凸角处完全进入孔洞,并在下按完成后停止,第二阶段完成铰链对其凹槽。TCP-Z方向力突然变小后表示铰链按压进孔洞,退出力控。
- 对槽阶段:给铰链一个持续1S的TCP-Y+的力,使其贴近凹槽右臂,再向左移动2mm,确保其对准凹槽。此时给一个Z方向的里使其下压,完成装配。
- 到位判断:向Y轴的正负方向依次施加一个力,并判断前后的位移差,若小于阈值,则判断为插入成功,反之则插入失败。
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:
铰链旋入,TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
铰链下压,TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
目标力:
铰链旋入,TCP-Z方向目标力8N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 8, 0, 0, 0}
铰链下压,TCP-Z方向目标力5N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 5, 0, 0, 0}
参考轨迹:
铰链旋入,参考轨迹的一个点位是装配初始位,铰链一端对准孔洞,另一个点位为一端旋入到位状态,铰链凸角处完全进入孔洞的前置状态。 铰链下压,无参考轨迹。
导纳参数:
铰链旋入,M = {20,20,20,10,10,10},D = {0,0,1000,0,0,0},K = {0,0,0,0,0,0}。
铰链下压,M = {20,20,20,10,10,10},D = {0,0,1000,0,0,0},K = {0,0,0,0,0,0}。
4、驱动板装配:分为四个阶段,位置确认、下压、插槽、到位判断。
- 位置确认:到达示教点之后,向TCP-X轴与RZ方向同时施加一个目标力,作为定位确认以及姿态矫正。
- 下压:在TCP-Z方向施加目标力,使其自然下落到底部。
- 插槽:向TCP-X方向施加目标力,使驱动板进入插槽。
- 到位判断:向TCP-Y的正负方向依次施加目标力,并判断前后的位移差,若小于阈值,则判断为插入成功,反之则插入失败。
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:
位置确认,TCP-X、Rz开力控,其他轴不开;enable = {true, false, false, false, false, true}
下压,TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
插槽,TCP-X开力控,其他轴不开;enable = {true, false, false, false, false, false}
目标力:
位置确认,TCP-X方向目标力2N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 2, 0, 0, 0}
下压,TCP-Z方向目标力5N,其他轴目标力不生效,建议设置为0;goal_force = {0, 0, 5, 0, 0, 0}
插槽,TCP-X方向目标力8N,其他轴目标力不生效,建议设置为0;goal_force = {8, 0, 0, 0, 0, 0}
参考轨迹:
位置确认,无参考轨迹。
下压,无参考轨迹。
插槽,无参考轨迹。
导纳参数:
位置确认,M = {20,20,20,10,10,10},D = {1000,0,0,0,0,500},K = {0,0,0,0,0,0}。
下压,M = {20,20,20,10,10,10},D = {0,0,1000,0,0,0},K = {0,0,0,0,0,0}。
插槽,M = {20,20,20,10,10,10},D = {1000,0,0,0,0,0},K = {0,0,0,0,0,0}。
1.6. 六、智能音箱功能检测
1. 需求分析
功能需求:要求实现双击按钮功能
力控精度需求:针对音箱,电子屏等精密部件双击,接触力不超过5N
2. 方案
双击按钮要求在要求时间内连续按压两次,即在规定时间内,两次触发电平变化。
实施过程:
双击间隔时间根据现场情况不同,不应超过0.5s,要求力控在0.5s内完成接触、离开、接触,为避免耗时,需要在一个力控阶段内完成所有过程。
首先根据现场不同设备验证按压力与非按压力大小,设置按压力,达到目标力(按压力)后修改目标力为非按压力,退回到目标力(非按压力)后再改为按压力,达到目标力(按压力)后退回,工程结束。
视频如下:
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
目标力:
TCP-Z方向目标力6N;goal_force = {0, 0, 6, 0, 0, 0}
TCP-Z方向目标力1N;goal_force = {0, 0, 1, 0, 0, 0}
TCP-Z方向目标力6N;goal_force = {0, 0, 6, 0, 0, 0}
参考轨迹: 无参考轨迹。
导纳参数:M = {20,20,20,10,10,10},D = {0,0,1000,0,0,0},K = {0,0,0,0,0,0}。
1.7. 七、充电枪插拔
1. 需求分析
功能需求:将充电枪插进汽车充电口。
2. 方案
实施过程:整个插拔阶段分为3个阶段,靠近、搜孔、插拔。
搜孔:圆形锯齿轨迹
插拔:
(插入方案一)不设置参考轨迹,通过z方向力引导方式,使得充电枪沿着Z方向柔顺插入,退出条件为到达目标力且平衡。
(插入方案二)设置目标点(TCPZ位移+六关节旋转),给直线参考轨迹,参考轨迹为边旋转边下压,退出条件为力控达到稳态或位移了设定的距离,可设置多段轨迹。
(插入方案三)给多段参考轨迹,每段参考轨迹分别沿着Rx,Ry正负方向摆动,同时沿着TCP-Z方向前进。退出条件为达到目标力或位移了设定的距离。
视频如下:
力控参数设置:
力控参考坐标系:实际TCP或者力控输出的指令TCP。
力控方向:
搜孔:TCP-Z开力控,其他轴不开;enable = {false, false, true, false, false, false}
插拔:除Rz方向外,其他方向都开启力控;enable = {true, true, true, true, true, false}
目标力:
搜孔:TCP-Z方向目标力40N;goal_force = {0, 0, 40, 0, 0, 0}
插拔:goal_force = {0, 0, 0, 0, 0, 0}
参考轨迹:
搜孔:圆形锯齿轨迹
插拔:分段摆动轨迹,前一阶段沿Rx+,Ry+摆动,后一阶段沿Rx-,Ry-摆动,退出条件达到目标力或位移足够的距离
导纳参数:
搜孔:M = {20,20,20,10,10,10},D = {1000.0, 1000.0, 2500.0, 100.0, 100.0, 50},K = {6000.0, 6000.0, 1000.0, 0.0, 0.0, 0.0}。
插拔:M = {20,20,20,10,10,10},D = {600.0, 600.0, 3500.0, 200.0, 200.0, 200.0},K = {10.0, 10.0, 4000.0, 200.0, 200.0, 200.0}。