力控应用手册
1 前言
本手册面向工业自动化领域的设计、调试、运维及选型技术人员,系统梳理力控应用的核心知识体系。内容兼顾理论基础与实操落地,覆盖技术原理、硬件选型、配置调试、故障排查及场景适配,既满足新手快速入门需求,也可为资深工程师提供精准参考。
2 安全信息
由于力控系统涉及机器人运动、力传感器操作等潜在风险,用户在使用之前必须仔细阅读、理解并遵守本手册的说明。集成商必须确保部署的力控系统符合相应法律法规与行业标准,严格执行风险评估,并采取必要措施降低风险。同时,用户必须遵守集成商指定的安全规范。
AUBO 提醒用户
在部署、使用力控系统时,必须注意设备与操作安全,力控系统的使用者需对自身及现场安全负责。AUBO 不对因违规操作、未遵守安全规范导致的安全问题负责。
3 力控基础理论
3.1 力控技术简介
力控技术是工业机器人与环境实现 “柔性交互” 的核心技术,通过力 / 力矩传感器采集接触力信号,结合控制算法实时调整机器人运动轨迹 / 姿态,使末端执行器在接触作业中保持可控的接触力。
3.1.1 力控技术分类
| 类型 | 核心特征 | 典型应用场景 |
|---|---|---|
| 主动力控 | 实时采集力信号并主动调整运动,闭环控制接触力 | 打磨、装配、插拔、熨烫 |
| 被动力控 | 依靠机械结构(如弹簧、阻尼器)被动缓冲接触力,无实时算法调整 | 简易抓取、低精度贴合 |
| 混合力控 | 主动力控 + 被动力控结合,核心方向主动控力,非核心方向被动缓冲 | 高精度齿轮啮合、防水盖安装 |
3.1.2 核心应用场景拆解
装配类:齿轮啮合、U 盘插拔、防水盖安装(核心需求:精准对位 + 可控接触力,避免零件损伤)。
表面作业类:打磨、熨烫、触摸屏绘制(核心需求:恒力贴合 + 轨迹跟随,保证作业均匀性)。
检测类:工件尺寸检测、接触力标定(核心需求:力控精度 ±0.5 N 内,保证检测重复性)。
3.2 力控基本原理
力控的本质是 “力 - 位置” 的闭环调节,核心逻辑为:采集实际力 > 计算力偏差 > 转化为位置或速度修正量 > 驱动机器人运动。
力控的基本原理包括:
| 控制模式 | 原理流程 | 关键优势 | 适用环境 |
|---|---|---|---|
| 力反馈控制 | 1. 力传感器采集实时力 2. 计算偏差 3. 控制器根据 4. 驱动机器人移动 | 控力精度高(±0.1~0.5 N) | 刚性 / 半刚性环境 |
| 阻抗控制 | 将机器人末端等效为 “质量 - 阻尼 - 刚度” 弹簧系统,通过调整 | 抗环境扰动能力强 | 柔性环境(如布料、橡胶) |
| 力 / 位置混合控制 | 笛卡尔坐标系中,部分轴控制力(如 Z 轴)、部分轴控制位置(如 X/Y 轴)。 | 兼顾轨迹精度与力控柔性 | 平面恒力作业(如触摸屏绘制) |
说明:
:力传感器采集到的末端实际接触力。 :控制器设定的目标力指令。 :目标力与实际力之间的偏差值。 :控制器根据力偏差计算出的末端位置修正量。 柔顺控制算法:控制器基于导纳模型公式
计算得到位置修正量 。
3.3 力控策略
3.3.1 控制策略选型对比表
| 控制策略 | 核心逻辑 | 调优难度 | 控力精度 | 适用场景 | 典型参数配置(Z 轴) |
|---|---|---|---|---|---|
| 位置控制模式 | 以位置调整间接控力 | 低 | ±1~2 N | 刚性环境、低精度作业(如简易按压) | |
| 力控模式 | 直接闭环调节力输出,位置随力自适应 | 中 | ±0.5~1 N | 柔性环境、恒力作业(如布料熨烫) | |
| 阻抗控制模式 | 调整 | 高 | ±0.1~0.5 N | 高精度作业(如触摸屏绘制、齿轮啮合) | |
| 混合控制模式 | X/Y 轴位置控制,Z 轴力控 | 中 | ±0.5 N | 平面恒力轨迹作业(如画直线 / 圆) | X/Y: Z: |
3.3.2 策略切换实操规则
刚性环境 > 柔性环境:降低
(刚度)、提高 (阻尼),避免机器人 “硬碰硬” 导致力超调。 低精度 > 高精度:降低
(质量)、细化力偏差阈值(如从 ±1 N 降至 ±0.2 N)。 单点作业 > 轨迹作业:启用混合控制,保证轨迹轴(X/Y)精度,控力轴(Z)柔性。
3.4 力控参数调优
3.4.1 核心参数的工程化定义
| 参数 | 工程化定义 | 调优敏感方向 |
|---|---|---|
| 决定机器人末端 “惯性大小”, | 高速作业:减小 高精度作业:适度增大 | |
| 决定机器人末端 “运动阻力”, | 力超调大:增大 响应慢:减小 | |
| 决定机器人末端 “回位力度”, | 需浮动作业: 需精准回位:增大 | |
| 目标力 | 需结合作业场景设定,需预留 “安全余量”(如触摸屏最大力 1.5 N,目标力设 1 N) | 易碎件:降低目标力 刚性件:适度提高 |
3.4.2 参数调优实操步骤
基础参数初始化
质量
:6 维初始值 {20,20,20,10,10,10}(通用基线,适配多数轻载作业)。阻尼
:6 维初始值 {500,500,500,100,100,100}(避免初始力超调)。刚度
:控力轴设 0,位置轴设 1000(先保证位置稳定,再调力)。 目标力:按作业需求的 70% 设定(如需求 10 N,先设 7 N,避免初始力冲击)。
阻尼
调优(优先消除力超调) 运行作业程序,观察力曲线:
力超调>20%(如目标 10 N,峰值 12 N+): 每次增大 D 的 10%,直至超调 ≤ 10%。
力响应滞后 > 500 ms: 每次减小 D 的 5%,直至响应时间 ≤ 300 ms。
质量
调优(优化动态响应) 若轨迹误差 > 0.5 mm:减小
(每次减 10%),直至轨迹误差 ≤ 0.2 mm。 若力波动>±0.5 N:增大
(每次加 10%),直至波动 ≤ ±0.2 N。
刚度
调优(适配作业场景) 浮动作业:
=0,确保末端可随外力移动(如搜孔)。 回位作业:逐步增大
(每次加 200),直至回位精度 ≤ 0.1 mm(如点按后复位)。 柔性接触:
保持 0,避免 “弹簧效应” 损伤工件(如布料熨烫)。
目标力校准
- 逐步提升目标力至需求值(每次加 1 N),观察力稳定性,若出现超调则回调
。
- 逐步提升目标力至需求值(每次加 1 N),观察力稳定性,若出现超调则回调
3.5 力控效果与应用
根据不同的参数设置,力控可以实现以下效果:
拖动效果:当
为 0 时,不设置目标力,机械臂会处于一个拖动效果,即给末端施加外力,机械臂会朝着力的方向移动,不会回到原位。 弹簧效果:当
不为 0 时,不设置目标力,会出现弹簧效果,K 越大,弹簧越硬,即越远离当前位置,所需的力就越大,撤去外力后,机械臂会回到原位。 力引导效果:当
为 0,且设置了 和目标力的情况下,会出现力引导的情况,即不受外力作用下,机械臂持续运动,速度与力成正比,与阻尼成反比,直到受到反方向的力与目标力达成平衡。 带目标力的弹簧效果:当
不为 0,且设置了 和目标力的情况下,机械臂会下落一段距离,后停止并保持弹簧状态。对抗下落所需的力等于设置的目标力。
4 力传感器选型及安装
4.1 力传感器类型
力传感器是力控系统的核心组件,主要分为以下类型:
内置力传感器:集成在机器人末端中的力传感器,用于检测末端接触力。
外置力传感器:安装在机器人末端执行器上的力传感器,用于检测末端接触力。
外接力传感器:连接控制柜(485/USB 转 485),用于检测接触力,需配置驱动参数并部署对应插件。
常见的力传感器技术参数包括:
| 参数 | 说明 | 典型值 |
|---|---|---|
| 测量范围 | 传感器能够测量的力/力矩范围 | ±100 N / ±10 Nm |
| 分辨率 | 传感器能够检测的最小力/力矩变化 | 0.1 N / 0.01 Nm |
| 采样频率 | 传感器数据更新的频率 | 1000 Hz |
| 精度 | 传感器测量值与真实值的偏差 | ±0.5% |
4.1.1 传感器型号
支持的传感器型号:

4.2 力传感器安装
4.2.1 内置力传感器
部署:
内置力传感器:结构简单无需部署,上电即可使用。
配置:
力传感器配置相关操作,请参见 4.3.1 内置及外置力传感器配置。
4.2.2 外置力传感器
ARCS 系统前期确认
在传感器安装前,需完成系统版本、硬件接口、传感器型号的确认,避免因兼容问题导致接入失败。
系统版本与协议确认
- ARCS 系统版本 ≥ v0.31.1
硬件接口确认
确认机械臂末端是否具备通信接口:
末端具备 RS485 接口:直接通过末端接口接入传感器。
末端无对应接口:参考 4.2.3 外接传感器安装完成安装步骤。
外置传感器机械安装
警告:
- 请务必在机械臂处在断电状态下进行接线操作,以防短路损坏传感器或机械臂接口。
- 接线前需检查机械臂末端、传感器表面是否存在损坏、异物附着,确保安装面平整无毛刺。
传感器末端接线机械臂末端 4 Pin 引脚的航插口。


传感器供电:在工具 I/O 配置页中,将 VCC、DO 端子的输出电压设置为 DC24V:

ARCS 配置与使用流程
确认 ARCS 系统版本 ≥ v0.31.1(如版本过低请先升级系统)。
完成传感器机械安装。
在工具 I/O 配置页中完成 24V 供电配置,确认传感器通信正常(传感器在线)。
调用初始化 API 选择传感器型号。
完成传感器校准后即可使用。
说明:
力传感器配置相关操作,请参见 4.3.1 内置及外置力传感器配置。
4.2.3 外接力传感器
外接力传感器需连接至控制柜,并修改对应配置文件完成安装配置。
外接力传感器机械安装
警告:
- 请务必在控制柜断电状态下进行接线操作,以防短路损坏传感器或控制器接口。
- 控制柜与机械臂末端完成连接后,需确认 RS485 转接头的固定螺丝拧紧到位、无松动,避免出现接触不良问题。
传感器 USB 转 485 接口在控制柜的接线方式:

序号 说明 接线方式 1 传感器电源正极 可接外接电源或控制柜 IO 板上的 DC24V 电源 2 传感器电源负极 可接外接电源或控制柜 IO 板上的 GND 3 RS485 通信 + 接 USB 转 485 模块的 T/R+ 4 RS485 通信 - 接 USB 转 485 模块的 T/R- 5 屏蔽线 接 USB 转 485 模块的 GND 6 USB 转 485 的 USB 端 接控制柜的 USB 接口 说明:
GND:电源地/信号地,是电路的参考 0 电位点。
T/R+/-:USB 转 485 模块的差分信号收发端(T/R+ 为信号正,T/R- 为信号负)。
RS485+/-:力传感器侧的 RS485 通信差分信号端(RS485+ 接 T/R+,RS485- 接 T/R-)。
屏蔽线:通信电缆的金属防护层,用于减少电磁干扰,确保信号传输的稳定性。
配置文件修改:
将以下配置文件新增添加至
/root/arcs_ws/config/aubo_control.conf末尾。鑫精诚配置信息
toml[[Sensor]] location = "extensions/xinjingcheng_ftsensor/xinjingcheng_ftsensor.so" bundle = "xinjingcheng_ftsensor" alias = "xinjingcheng_ftsensor" enable = true [Sensor.options] manufactory = "XinJingcheng" port = "/dev/ttyUSB0" baudrate = 115200 stop_bits = 1.0 parity = "none" enable_notch_filter = false宇立配置信息
toml# 配置 yuli_ftsensor [[Sensor]] location = "extensions/yuli_ftsensor/yuli_ftsensor.so" bundle = "yuli_ftsensor" alias = "yuli_ftsensor" enable = true [Sensor.options] manufactory = "YuLi" port = "/dev/ttyUSB0" baudrate = 230400 stop_bits = 1.0 parity = "even" enable_notch_filter = falseATI 配置信息
toml[[Sensor]] alias = 'ati_ftsensor1' bundle = 'ati_ftsensor' enable = true location = 'extensions/ati_ftsensor/ati_ftsensor.so' [Sensor.options] address="127.0.0.1" #传感器的 IP port=40000 #传感器的端口坤维配置信息
toml# 配置 kw_ftsensor1 [[Sensor]] location = "extensions/kw_ftsensor/kw_ftsensor.so" bundle = "kw_ftsensor" alias = "kw_ftsensor1" enable = true [Sensor.options] manufactory = "KunWei" port = "/dev/ttyUSB0" baudrate = 460800 stop_bits = 1.0 parity = "none" enable_notch_filter = false说明:
坤维传感器配置为出厂预设,无需手动配置。本配置仅用于故障排查时,核对默认参数的正确性。
力控插件部署及调试请参考4.3.3 外接力传感器配置。
4.3 力传感器配置
4.3.1 内置力传感器
目前 AUBO iS(FT) 系列机械臂已搭载自研的内置力传感器,支持通过 AUBO 示教器完成相关连接与配置。

在 AUBO 示教器左侧导航栏依次单击“配置 > 一般 > 工具I/O”进入传感器调试界面。
内置传感器无需额外连接配置,上电后系统将自动识别传感器类型,自动展示对应传感器调试页面。
六维力(内置):即内置的六维力传感器。
状态:显示传感器当前的通信与工作情况。常见的状态包括【正常】或【故障】。
型号:显示内置力传感器的硬件型号。
量程:显示传感器在六个自由度(
、 、 、 、 、 )上能够准确感知的最大负荷范围。 : 轴向力的最大量程(如 200 N)。 : 径向力的最大量程(如 100 N)。 : 各轴向翻转力矩及扭转力矩的最大量程(如 5 Nm)。
一维力(内置):即内置的一维力传感器。
状态: 显示传感器当前的连接情况。当显示【已连接】时,表示系统已成功识别硬件并可以进行数据采集。
量程:显示传感器在单轴方向上的最大测量范围。
: 有效测量方向的力的最大量程(如 200 N)。该数值定义了传感器在主受力方向上能感知的最大压力或拉力。
内置力传感器配置完成后,即可对【零点校准】及【传感器调试】功能进行配置。
说明:
内置力传感器与外置力传感器的【零点校准】及【传感器调试】功能配置步骤一致,参考 4.3.2 配置流程即可。
4.3.2 外置力传感器
安装于机器人末端执行器上的外置力传感器可通过 AUBO 示教器直接完成配置。
在 AUBO 示教器左侧导航栏依次单击“配置 > 一般 > 工具I/O > 工具485”进入外置传感器调试界面。
在【类型】下拉框中选择【六维力传感器】,并依次在【品牌】和【型号】下拉框中选定目标传感器的对应品牌与型号。
【安装偏移】用于补偿传感器坐标系与法兰坐标系的偏移,配置完成后单击右上角按钮激活传感器。
说明:
【安装偏移】一般为 0,目前只有宇立传感器需要设置【安装偏移】为 45°。

六维力传感器工具激活状态与功能说明
激活成功后,界面显示如下:

激活状态灯:未激活为灰色,激活成功为绿色,激活失败为红色。
激活成功后显示出【零点校正】和【传感器调试】功能按钮。
零点校正:
【零点校正】主页显示上次校正后的偏置,如需重新校准可以单击右下角的【重新校准】按钮,进入校正界面,重新校准分为手动校准和自动校准功能。
自动校准:通过自主运动到预设的三个位姿实现,使用时需要注意干涉。
手动校准:需要根据提示示教三个位姿,并开始校准流程。

传感器调试:
传感器调试界面主要用于查看传感器数据曲线,同时拥有记录数据,回放数据,选择数据类型,数据坐标系和设置显示数据时间的功能。

4.3.3 外接力传感器
与控制柜连接的外接力传感器需使用力控插件来进行配置。
4.3.3.1 力控插件安装
前置准备:ARCS 上位机版本需为
0.29.2-beta.15及以上。部署步骤:联系 AUBO 技术人员获取插件压缩包,解压后在终端进入解压目录,执行
sh install.传感器类型命令(例如:sh install.kunwei),即可一键完成插件部署与配置。支持的传感器类型:坤维、鑫精诚、宇立、ATI。
当看到图中的提示信息,即代表安装完成。
说明
首次切换到新的 ARCS 版本后需要重新部署。

4.3.3.2 力控插件部署
打开 AUBO 示教器,单击右上角“设置 > 系统 > 插件 > 新增”,选择对应版本的插件压缩包,单击【选择】进行添加。
添加插件后,勾选力控插件,单击【重启】,即可完成插件的启用。

重启完成后,可在插件列表中查看力控插件。

4.3.3.3 力控插件界面
传感器配置界面

传感器配置界面如上图所示。
【传感器品牌】:用于选择使用的传感器品牌,目前支持内置传感器、坤维、宇立和鑫精诚传感器,选择完传感器之后,传感器就会立即请求数据。
可勾选复选框,来显示或隐藏相应数据。
【实时】:勾选【实时】,即可在下方图表处显示力数据。
【保存】:
在不勾选实时的情况下,单击【保存】,保存的数据为开始请求起的所有数据。
在勾选实时的情况下,单击【保存】,按钮状态变更为停止,此时开始保存数据,再次单击【停止】,停止保存,保存的数据为两次单击之间的数据。
文件保存在
/root/arcs_ws/extensions/force_control目录下,文件中前六组数据为使用的 TCP 的位姿,后六组数据为 x、y、z 方向上的力和力矩大小。说明
文件保存路径和图表显示长度支持修改,需要至
/root/arcs_ws/program/default.ins文件中进行修改,配置参数与上述步骤一致。图表实时显示除去偏置和负载的基于 Base 坐标系的力数据。支持显示 Fx、Fy、Fz、Mx、My、Mz 六组数据,分别表示 x、y、z 方向上的力和力矩大小。
示教界面
使用力控插件的相应功能前需要先在“配置>一般>工具中心点”处添加 TCP。单击【添加】,然后输入工具中心点相对于法兰中心的偏移值,并将此 TCP 设置为【默认】,如图所示。

然后进行传感器的标定,单击【标定】即可自动进行标定。
说明
在标定前务必保证传感器配置界面能正常读取力数据,且需要保证在标定过程中机械臂没有干涉,不会受到碰撞等影响。标定结束后,参数框会显示偏置、质量和质心数据,根据需要重新设置负载参数。

标定位姿界面
进行标定有三组默认的位姿,分别为 TCP 的 X 轴正方向朝下、TCP 的 Y 轴正方向朝下和 TCP 的 Z 轴正方向朝下,分别对应三组图片。
单击示教界面的三组图片,可移动至标定位姿界面。
双击示教界面的三组图片,可自行设置标定位姿,移动至想要的位姿,单击【确认】即可修改完成,自动保存。
4.3.3.4 力控插件程序节点

在程序节点中添加力控条件,单击“编程 > 插件 > ForceControl”,即可添加力控条件,此条件分为力控条件配置和正常/异常退出力控条件后的流程实现。
说明
正常/异常退出力控条件后都必须添加流程,程序停止后也应加入脚本 fcDisable(),避免异常退出后力控未关闭。
基础配置界面

可自定义修改节点名称。
选择参考坐标系,一般选择用户坐标系或者工具坐标系作为参考坐标系。
力控开启方向,如果不需要该方向力,可取消勾选。
可设置目标力与对应速度限制。
在“配置 > 插件 > 力控 > 传感器”配置界面可以査看实时的力控数据,如下所示,参考坐标系为上图步骤 2 设置的坐标系。

高级配置界面

高级配置界面能对六个方向上的阈值、阻尼和刚度参数进行配置,某个方向的参数能否修改,取决于示教界面相应方向的复选框是否勾选。
阈值:在此界面修改暂无作用,需要到
/root/arcs_ws/config/aubo_control.conf文件中进行修改。阻尼:描述推动机器人有多少阻力。阻力不会随机器人与参考点的距离而增加,而通常随机器人的速度而增加。
刚度:描述机器人尝试返回参考点的力度。值越高,弹簧效果越强。将该值设置为零不会产生弹簧效应,并且机器人将沿所选方向浮动。
停止条件界面
停止条件界面分为正常退出条件和异常退出条件。

在正常退出条件中,可供选择的有目标力和稳态两种情况,满足条件即可退出力控条件,并进入力控正常退出流程。
选择目标力,即代表六个方向上满足目标力设置的阈值大小。
选择稳态,即代表机械臂运动队列为空,且保持相对静止。
在异常退出条件中,可供选择的有超时一种情况,满足条件即可退出力控条件,并进入力控异常退出流程。选择超时,即代表开启力控后间隔设置时间还未退出力控。
5 力控编程节点
5.1 力控程序节点
在开始力控程序节点前,可针对机器人手臂作业目标,单击程序信息卡片右上角的调配按钮来对【刚度】、【阻尼】、【环境刚度】参数进行配置。

| 参数 | 说明 | 适用场景 |
|---|---|---|
| 刚度 | 力控虚拟弹簧系数,控制机器人维持目标位置的 “软硬程度”。值越大越 “硬”,抗偏移能力越强;值越小越 “软”,越易被外力推动。 | 高刚度(0.7~1.0):精密压装、硬装配、定位焊接。 中低刚度(0.1~0.6):打磨、抛光、曲面跟踪、拖动示教。 |
| 阻尼 | 力控虚拟减震系数,抑制振动与振荡,提升稳定性。值越大运动越平稳但响应偏慢;值越小响应越快但易抖动。 | 高阻尼(0.6~1.0):配合高刚度,用于压装、铆接。 中阻尼(0.3~0.7):通用打磨、抛光、装配。 低阻尼(0.1~0.3):配合低刚度,用于轻松拖动示教。 |
| 环境刚度 | 算法对工件 / 环境硬度的预估参数,用于调整力控模型。值越大代表接触的工件越硬。 | 高环境刚度(0.7~1.0):金属、玻璃、陶瓷等硬质工件的打磨 / 压装。 中低环境刚度(0.0~0.6):塑料、橡胶等软质工件,或无接触拖动示教、测试。 |
5.1.1 基础力控
5.1.1.1 恒力控制
力或扭矩值可以设置为柔性轴,机器人手臂调节自身位置以达到所选的力,实现恒力条件下 TCP 在曲面上滚动、推动或拉动工件等。

控制模式:坐标系
坐标系选型:
基座:
说明:以机器人底座为原点的固定坐标系,不随手臂运动改变。恒力方向相对于地面固定不变。
适用场景:力方向需始终垂直/平行于地面的作业,如地面工件打磨、垂直压合、上下料。
工具:
说明:以末端工具中心点(TCP)为原点的坐标系,随工具姿态实时变化。恒力方向与工具自身绑定,随工具运动、旋转。
适用场景:力方向需随工具姿态调整的作业,如曲面打磨、插销装配。
参数调配:
勾选目标柔性轴后,可对以下参数进行配置:
柔性轴:选择需要开启恒力控制的轴(X/Y/Z/RX/RY/RZ),勾选后该轴进入柔顺控制模式。
力:设置目标轴需要保持的恒力/扭矩值,线性轴的单位为 N,旋转轴的单位为 Nm。
线性轴:数据类型为
float(保留 2 位小数),取值范围为[0, 传感器最大量程];若未配置传感器量程,系统默认上限为 2000 N,默认值为 0。旋转轴:数据类型为
float(保留 2 位小数),取值范围为[0, 传感器最大量程];若未配置传感器量程,系统默认上限为 100 Nm,默认值为 0。
速度限制:设置目标轴的最大运动速度,防止恒力控制下出现失控运动。
线性轴:数据类型为
int,单位为 mm/s,取值范围为[1, 末端速度限值],默认值为 150 mm/s。旋转轴:数据类型为
int,单位为 °/s,取值范围为[1, 360],默认值为 60 °/s。
配置完成后可单击【图例】来查看。

5.1.2 力控装配
通过力控技术实现精确的装配操作,支持通过不同子节点实现多种装配模式,包括:力控搜孔、力控柔性插拔等。
在对应装配模式配置完成后,可通过添加停止条件,在触发(超时、力超限或逻辑成立)时立即停止动作并跳转程序,从而起到保护硬件和优化逻辑的效果。

超时:设置动作执行时限。数据类型为
float(保留 2 位小数),单位s,范围[1.00, 1000.00],默认 5.00(必选)。最大力限制:设置搜索时最大允许力值。数据类型为
float(保留 2 位小数),单位 N,范围[1.00, 最大量程],默认 200.00。表达式:自定义逻辑。 结果为
True时,立即停止当前动作并跳转执行。
5.1.2.1 搜孔
在圆形或矩形区域内沿着表面上越来越密集的轨迹进行搜索,同时保持一定的接触力,直到入孔深度达到 5 mm。

搜索轨迹
螺旋线:
搜索半径:控制螺旋线向外扩散的范围,数据类型为
int,单位为 mm,取值范围为[1, 1000],默认 10。开始密度:设置开始搜索时基础图形的重复次数。取值范围
[1,10],默认值 3。方向:定义搜索路径的旋转方向,可选顺时针或逆时针。
摆线(Z 字形)
矩形边长:定义 Z 字型搜索路径的矩形区域长度。数据类型为
int,单位为 mm,取值范围[5, 1000],默认值 20。起始位置:设置摆线开始搜索时的初始角度。取值范围为
[-180, 180]。开始密度:设置开始搜索时基础图形的重复次数。取值范围
[1,10],默认值 3。
搜索平面:以
轴水平向右, 轴水平向前, 轴垂直向上的坐标系为准。 平面(
):以 轴 与 轴组合而成的水平面。 侧面(
):以 轴 与 轴组合而成的侧平面。 截面(
):以 轴 与 轴组合而成的横截面。
辅助参数
接触力:设置搜索任务中的目标接触力大小。数据类型为
float(保留 2 位小数),单位为 N,取值范围为[5.0, 最大量程],默认值为 10.0。说明:
最大量程说明:优先使用传感器量程;若传感器量程未知,则按公式
机械臂额定负载 * 1.2 * 9.8 * 4计算缺省量程并取整数位。速度系数:调节搜索运动的速度比例。数据类型为
float(保留 1 位小数),取值范围为[0.1, 5],默认值为 1.0。
5.1.2.2 柔性插拔
控制机器人沿预先设定的插拔方向移动,直到到达目标位置。

轨迹调整:
轨迹调整模块用于定义柔性插拔过程中的运动补偿策略,包含螺旋线、侧摆、自动适应三种模式,用于解决孔位偏差、卡滞等装配问题。
自动适应
插入速度:定义柔性插拔过程中的轴向插入速度,数据类型为
int,单位为 mm/s,取值范围为[1, 工具速度上限],默认值 10。最大距离:限制自动适应插拔轨迹的最大轴向移动距离,数据类型为
int,单位为 mm,取值范围为[1, 1000],默认值 100。引导力:设置自动适应插拔过程中的引导力大小,数据类型为
float(保留 2 位小数),单位为 N,取值范围为[0, 最大量程],默认值 0。
螺旋线
开始半径:螺旋路径的起始半径,数据类型为
int,单位为 mm,取值范围为[1, 1000],默认值 10。停止半径:螺旋路径的终止半径,数据类型为
int,单位为 mm,取值范围为[1, 1000],默认值 10。方向:定义柔性插拔螺旋路径的旋转方向,可选顺时针或逆时针。
速度系数:控制螺旋路径的推进速度,数据类型为
float(保留 1 位小数),取值范围为[0.1, 10.0],默认值 1.0。最大距离:限制螺旋路径的最大扩散距离,数据类型为
int,单位为 mm,取值范围为[1, 1000],默认值 100。引导力:设置柔性插拔过程中的引导力大小,数据类型为
float(保留 2 位小数),单位为 N,取值范围为 [0, 最大量程],默认值 0。
侧摆
最大距离:限制侧摆路径的最大移动距离,数据类型为
int,单位为 mm,取值范围为[1, 1000],默认值 100。引导力:设置侧摆过程中的引导力大小,数据类型为
float(保留 2 位小数),单位为 N,取值范围为[0, 最大量程],默认值 0。方向:定义侧摆运动的轴向,可选值为
RX、RY,默认值RX。交替模式暂不支持,不显示该选项。角度:定义侧摆运动的摆动角度,数据类型为
int,单位为 °,取值范围为[1, 30],默认值 5。速度系数:控制侧摆运动的推进速度,数据类型为
float(保留 1 位小数),取值范围为[0.1, 10.0],默认值 1.0。
运动方向
用于定义柔性插拔运动的基础运动参数,包括运动方向的解析基准与工具的运动速度、加速度表现,是整个柔性工艺的基础运动配置。
- 工具中心点(TCP):
- 使用激活的工具中心点:采用示教器中已激活的 TCP 作为运动参考点。
- 忽略激活的工具中心点:不使用当前激活的 TCP,强制以机器人末端法兰中心作为运动控制的参考点。
- 用户自定义工具中心点:以用户新构建的自定义 TCP 坐标作为柔性插拔的专用参考点,独立于系统激活的 TCP。
- 坐标系:
- 基座:以机器人基座为原点的全局坐标系,所有运动指令均基于基座坐标系解析,运动方向不受机器人姿态影响。
- 工具:以当前激活或已自定义的 TCP 为原点的局部坐标系,运动方向随工具姿态同步变化。
- 用户自定义坐标系:以用户新构建的自定义坐标系为运动参考基准。
- 工具速度:定义工具的运动速度,数据类型为
int,单位为 mm/s,取值范围为[1, 工具速度上限],默认值 10。 - 工具加速度:定义工具的运动加速度,数据类型为
float(保留 2 位小数),单位为 mm/s²,取值范围为[0.01, 工具速度上限],默认值为直线运动节点默认值。
- 工具中心点(TCP):
5.2 力控装配接口
5.2.1 接口总览
| 功能分类 | 接口名称 | 简要描述 |
|---|---|---|
| 力传感器 | zeroTcpForce restoreTcpForce | 力偏置清零 恢复 |
| 柔顺抓取 | fcGraspComp fcWaitGraspCompFinish | 抓取不确定位置物体 等待抓取完成 |
| 接触检测 | fcContact | 基于力阈值的接触探测 |
| 对齐 | fcAlign | 柔顺对齐运动 |
| 搜孔 | fcSearchHole | 在平面内进行孔位搜索(含啮合轨迹) |
| 入孔检查 | fcCheckInHole | 判断是否进入孔内 |
| 柔性插入 | fcInsertComp | 具有力控约束的插入动作 |
5.2.2 详细接口与参数说明
5.2.2.1 zeroTcpForce - 末端力清零
接口定义
ret = zeroTcpForce(time)功能说明:
对末端六维力传感器在指定时间窗口内进行均值滤波,并将结果设为偏置,实现力清零。
请求参数
参数名 类型 Required 单位 说明 示例 timenumber Yes s 采样时长,取平均用时窗口;建议 >= 0.5 s 1.0返回参数
返回值 含义 AUBO_OK(0)清零成功 FORCE_ZERO_FAILED(-104)清零失败(通信异常/传感器异常/参数非法) 调用约束
在静止(末端无外力扰动)条件下执行,避免运动期间清零导致误差。
在清零期间建议机器人不接触外界。
5.2.2.2 restoreTcpForce - 力偏置恢复
接口定义
ret = restoreTcpForce()功能说明
恢复清零前存储的原始偏置参数,通常搭配末端力清零接口,在结束力控动作后使用。
返回参数
返回值 含义 AUBO_OK(0)恢复成功 FORCE_RESTORE_FAILED(-105)恢复失败(无数据)
5.2.2.3 fcGraspComp - 柔顺抓取
接口定义
ret = fcGraspComp(params)功能说明
用于抓取位置存在不确定性的工件,通过柔顺轴方向的力阈判断抓取成功。
请求参数
参数名 类型 Required 单位 取值/范围 说明 示例 featuretable[6] Optional — — 抓取坐标系定义(基座/工具/用户);格式 {x,y,z,rx,ry,rz},一般{0,0,0,0,0,0}表示 基坐标,通过 getTcpPose() 获取当前 pose 表示工具坐标系{0,0,0,0,0,0}soft_axistable[6] Yes — 每项 0/1 指定一个或多个柔顺轴(在 feature 坐标系下的索引);例如 {1,0,0,0,0,0}表示沿 X{1,1,0,0,0,0}soft_force_thresholdtable[6] Yes N >=0 各柔顺轴上的力阈值;当轴上受力小于该阈值时判定抓取成功 {2,2,0,0,0,0}speed_limitnumber Optional m/s >0 柔顺轴方向最大速度(TCP) 0.1max_distance_limitnumber Yes m >0 柔顺轴允许最大位移 0.05grasp_timeoutnumber Optional s >0 操作超时 5.0返回参数
返回值 含义 AUBO_OK(0)成功进入柔顺抓取模式 AUBO_INVL_ARGUMENT(-5)参数错误或初始化失败 调用示例
local fc = require('aubo.force_control') params = { feature = {0,0,0,0,0,0}, soft_axis = {1,0,0,0,0,0}, soft_force_threshold = {2,2,0,0,0,0}, speed_limit = 0.05, max_distance_limit = 0.02, grasp_timeout = 3.0 } ret = fc.fcGraspComp(params)
5.2.2.4 fcWaitGraspCompFinish - 等待柔顺抓取完成
接口定义
ret = fcWaitGraspCompFinish(timeout)功能说明
在规定时间内等待
fcGraspComp触发完成事件。通常与fcGraspComp成对使用。请求参数
参数名 类型 Required 单位 说明 示例 timeoutnumber Yes s 最大等待时间 5返回参数
返回值 含义 AUBO_OK(0)抓取动作已完成 AUBO_TIMEOUT(-4)超时未完成 GRASPCOMP_DISTANCE_EXCEEDED(-451)超出最大距离限制
5.2.2.5 fcContact - 接触
接口定义
ret = fcContact(params)功能说明
机械臂沿接触轴方向进行接触探测,触发接触条件后立即停止。
请求参数
参数名 类型 Required 单位 取值/范围 说明 featuretable[6] Optional — — 接触坐标系定义,格式 {x,y,z,rx,ry,rz}compliancetable[6] Yes — 各轴是否参与力控(0/1) 力控方向,例如 {0,0,1,0,0,0}表示仅 Z 轴wrenchtable[6] Yes N / Nm 目标力/力矩阈值 当检测力达到该阈值视为接触,例如 {0,0,10,0,0,0}env_stifftable[6] Optional — [0.0~1.0] 环境刚度估计,用于力控制算法 damp_scaletable[6] Optional — [0.1~1.0] 阻尼比例 stiff_scaletable[6] Optional — [0.0~1.0] 刚度比例 speed_limitsnumber Optional m/s >0 接触方向上的速度限制 distancenumber Optional m >0 最大位移限制(超过则返回超距) timeoutnumber Yes s >0 操作超时 返回参数
返回值 含义 AUBO_OK(0)成功达到接触条件 CONTACT_DISTANCE_EXCEEDED(-201)超出最大允许位移(distance) AUBO_TIMEOUT(-4)超时未接触(timeout) 调用示例
local fc = require('aubo.force_control') params = { feature = {0,0,0,0,0,0}, compliance = {0,0,1,0,0,0}, wrench = {0,0,10,0,0,0}, env_stiff = {0,0,0.8,0,0,0}, damp_scale = {0.5,0.5,0.5,0.5,0.5,0.5}, stiff_scale = {0.5,0.5,0.5,0.5,0.5,0.5}, speed_limits = 0.02, distance = 0.1, timeout = 8 } ret = fc.fcContact(params)
5.2.2.6 fcSearchHole - 搜孔
接口定义
ret = fcSearchHole(params)功能说明
在指定平面上执行搜索轨迹进行轴孔探寻。
请求参数
参数名 类型 Required 单位 取值/范围 说明 search_planeSpiralPlane Optional — xy(1)/xz(2)/yz(3) 搜索平面,默认 TCP 坐标系 xy 平面 search_rangenumber Yes m >0 搜索半径或范围 search_timenumber Yes s >0 搜索总时长上限 guide_traj_typeGuideTrajType Optional — SPIRA/MESHING/WEAVE 主动引导轨迹类型 search_max_forcenumber Optional N >5 搜索过程允许的最大力 search_guide_forcenumber Optional N — 搜索方向的引导力 speed_scalenumber Optional — [0.1~5] 全局速度比例 search_damp_scaletable[6] Optional — [0.1~1] 阻尼调整 search_stiff_scaletable[6] Optional — [0.1~1] 刚度调整 push_distancenumber Optional m >0 推进距离 返回参数
返回值 含义 AUBO_OK(0)搜孔成功 SEARCH_FORCE_EXCEEDED(-251)力超限,搜索中受力超过 search_max_forceAUBO_TIMEOUT(-4)搜孔超时( search_time)SEARCH_RANGE_EXCEEDED(-252)超出搜索范围 调用示例
local fc = require('aubo.force_control') params = { search_plane = SearchPlane.xy, search_range = 0.02, search_time = 15, guide_traj_type = GuideTrajType.WEAVE, search_max_force = 50, search_guide_force = 10, speed_scale = 1.0 } ret = fc.fcSearchHole(params)
5.2.2.7 fcCheckInHole - 入孔检查
接口定义
inside = fcCheckInHole(params)功能说明
沿指定检测轴进行柔顺探测,判断工件是否进入孔内;返回布尔值表示检测结果。
请求参数
参数名 类型 Required 单位 说明 check_axistable[3] Yes — 检测轴向量(工具坐标系),例如 {1,0,0};最多支持两个方向check_rangenumber Yes m 检测位移范围 check_forcenumber Yes N 搜索轴方向上的受力阈值,超过视为在孔内 check_speednumber Yes m/s 搜索速度(TCP) 返回参数
返回值 含义 true已进入孔内 false未进入孔(超出范围或未达到力阈) 调用示例
local fc = require('aubo.force_control') params = { check_axis = {1,0,0}, check_range = 0.02, check_force = 5.0, check_speed = 0.01 } inside = fc.fcCheckInHole(params)
5.2.2.8 fcInsertComp - 柔性插拔
接口定义
ret = fcInsertComp(params)功能说明
机器人按照柔性约束方式执行插入动作,支持不同引导轨迹(螺旋/摆动/直线),并在到达深度或遇到故障时退出。
请求参数
参数名 类型 Required 单位 说明 insert_selectInsertSelect Optional — 插入方向,相对于工具坐标系: x(1)/y(2)/z(3)(默认 z) insert_max_speednumber Optional m/s 插入速度上限 insert_timenumber Optional s 操作超时 guide_traj_typeGuideTrajType Optional — SPIRAL/WEAVE/LINE insert_max_forcenumber Optional N 插入过程最大允许力 insert_max_depthnumber Optional m 插入最大深度 insert_guide_forcenumber Optional N 引导力大小 speed_scalenumber Optional — 速度比例 [0.1~5] insert_damp_scaletable[6] Optional — 阻尼比例 [0.1~1] insert_stiff_scaletable[6] Optional — 刚度比例 [0.0~1] 返回参数
返回值 含义 AUBO_OK(0)插入成功(达到深度或判定完成) INSERT_FORCE_EXCEEDED(-351)受力超限( insert_max_force)AUBO_TIMEOUT(-4)超时或未达到条件 调用示例
local fc = require('aubo.force_control') params = { insert_select = InsertSelect.z, insert_max_speed = 0.02, insert_time = 12, guide_traj_type = GuideTrajType.SPIRAL, insert_max_force = 20, insert_max_depth = 0.05, insert_guide_force = 2.0, speed_scale = 1.0 } ret = fc.fcInsertComp(params)
5.2.2.9 fcAlign - 对齐
接口定义
ret = fcAlign(params)功能说明
通过柔顺运动调整位置与姿态,使被对齐物体与接触面实现高精度对齐。
请求参数
参数名 类型 Required 单位 说明 align_axistable[6] Yes — 柔顺轴,工具坐标系可包含位置与角度轴标志,例如 {0,0,0,1,1,0}表示绕 RX/RY 调整contact_axistable[3] Yes — 接触轴(工具坐标系主轴),例如 {0,0,1}contact_forcenumber Yes N 接触轴的目标力,用于维持接触 align_speednumber Optional deg/s 对齐过程中最大角速度 max_limit_forcenumber Optional N 对齐过程中最大允许受力 max_align_anglenumber Optional deg 最大允许对齐角度偏移 judgment_levelnumber Optional — 判定等级 [0.1~1.0](高等级更严格) 返回参数
返回值 含义 AUBO_OK(0)对齐成功 ALIGN_ANGLE_EXCEEDED(-401)对齐角度超出最大范围 ALIGN_FORCE_EXCEEDED(-402)力超出最大限制 调用示例
local fc = require('aubo.force_control') params = { align_axis = {0,0,0,1,1,0}, contact_axis = {0,0,1}, contact_force = 10, align_speed = 0.02, max_limit_force = 30, max_align_angle = 10, judgment_level = 0.8 } ret = fc.fcAlign(params)
5.2.3 错误码
5.2.3.1 错误码定义
错误码说明:
FcErrorCode = {
AUBO_OK = 0,
-- 通用错误(-1 ~ -99)
AUBO_BAD_STATE = -1,
AUBO_QUEUE_FULL = -2,
AUBO_BUSY = -3,
AUBO_TIMEOUT = -4,
AUBO_INVL_ARGUMENT = -5,
AUBO_NOT_IMPLETEMENT = -6,
AUBO_NO_ACCESS = -7,
AUBO_CONN_REFUSED = -8,
AUBO_CONN_RESET = -9,
AUBO_INPROGRESS = -10,
AUBO_EIO = -11,
AUBO_NOBUFFS = -12,
AUBO_REQUEST_IGNORE = -13,
AUBO_ALGORITHM_PLAN_FAILED = -14,
AUBO_VERSION_INCOMPAT = -15,
AUBO_DIMENSION_ERR = -16,
AUBO_SINGULAR_ERR = -17,
AUBO_POS_BOUND_ERR = -18,
AUBO_INIT_POS_ERR = -19,
AUBO_ELP_SETTING_ERR = -20,
-- 力控模块错误(-100 ~ -199)
FORCE_EXCEEDED = -101,
FORCE_CONTROL_INIT_FAIL = -102,
FORCE_CONTROL_RUNTIME_ERR = -103,
FORCE_ZERO_FAILED = -104,
FORCE_RESTORE_FAILED = -105,
-- 接触模块错误(-200 ~ -249)
CONTACT_DISTANCE_EXCEEDED = -201,
-- 搜孔模块错误(-250 ~ -299)
SEARCH_FORCE_EXCEEDED = -251,
SEARCH_RANGE_EXCEEDED = -252,
ENGAGEMENT_FAILED = -254,
-- 入孔检查(-300 ~ -349)
CHECK_NOT_IN_HOLE = -301,
CHECK_RANGE_EXCEEDED = -302,
-- 插入模块错误(-350 ~ -399)
INSERT_FORCE_EXCEEDED = -351,
INSERT_DEPTH_EXCEEDED = -352,
-- 对齐模块错误(-400 ~ -449)
ALIGN_ANGLE_EXCEEDED = -401,
ALIGN_FORCE_EXCEEDED = -402,
-- 柔顺抓取模块错误(-450 ~ -499)
GRASPCOMP_DISTANCE_EXCEEDED = -451,
}说明:
所有成功返回值统一为:
FcErrorCode.AUBO_OK (0)。所有失败返回值将使用上述错误码范围。
boolean 返回的接口(如入孔检查)将保持
true/false。
5.2.3.2 接口错误码对应示例
| 接口 | 可能返回错误码 | 说明 |
|---|---|---|
| zeroTcpForce | FORCE_ZERO_FAILED | 清零失败 |
| fcContact | AUBO_TIMEOUT/ CONTACT_DISTANCE_EXCEEDED | 接触超时/ 超距 |
| fcSearchHole | SEARCH_FORCE_EXCEEDED / AUBO_TIMEOUT / SEARCH_RANGE_EXCEEDED | 搜孔过大力/超时/超出范围 |
| fcInsertComp | INSERT_FORCE_EXCEEDED / AUBO_TIMEOUT | 插入过大力/超时 |
| fcAlign | ALIGN_FORCE_EXCEEDED / ALIGN_ANGLE_EXCEEDED | 对齐过大力/超出范围 |
说明:
所有调用前检查参数有效性(类型、范围)。
在出现力超限或异常返回时立即调用安全停机/急停或切换至安全轨迹。
对可能导致碰撞的操作(如
fcContact、fcInsertComp)先做低速试运行并记录日志。
6 力控应用实施方案
6.1 触摸屏功能检测
需求分析
功能需求:机械臂携带书写笔,在触摸屏上绘制直线或圆等图案,绘制速度 50 mm/s。
安全性要求:书写笔与触摸屏之间的最大力不超过 1.5 N,保证不损伤屏幕。
力控精度要求:在实现图案绘制的同时保证屏幕安全性,需要笔和屏之间的力保持在 1 ± 0.5 N。
提示
触摸屏来料角度(倾斜 30-60° 之间)不一致。
方案
总体思路:机械臂携带书写笔,在触摸屏上绘制直线或圆等图案,通过力控实现笔与屏幕之间的力保持在 1 ± 0.5 N,同时保证绘制速度 50 mm/s。
主要步骤:
机械臂从起始位置移动到触摸屏上方安全高度。
机械臂以较低速度接近触摸屏,当笔接触屏幕并达到目标力时,开始绘制图案。
机械臂按照预设轨迹在触摸屏上绘制直线或圆等图案,保持笔与屏幕之间的力在 1±0.5 N。
绘制完成后,机械臂抬笔并返回起始位置。
触摸屏功能检测视频示例:
力控参数设置
力控参考坐标系:坐标系姿态 x-y 平面是屏幕面,z 轴垂直于屏幕,坐标系原点任意。可以是动坐标系或者固定坐标系。
力控方向:Z 轴开力控,其他轴不开。
enable = {false, false, true, false, false, false}目标力:Z 轴目标力 2 N,其他轴目标力不生效,建议设置为 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}
相关问题请参见力控实施相关问题。
6.2 布料熨烫
需求分析
功能需求:机械臂携带熨斗,在布料表面按照预设轨迹移动,实现布料熨烫功能。
力控要求:熨斗与布料之间的力保持在 30 ± 5 N,保证熨烫效果的同时避免损伤布料。
运动速度要求:熨烫过程中机械臂移动速度保持在 100 mm/s,确保熨烫均匀。
方案
总体思路:机械臂携带熨斗,在布料表面按照预设轨迹移动,通过力控实现熨斗与布料之间的力保持在 30 ± 5 N,同时保证移动速度 100 mm/s。
主要步骤:
机械臂从起始位置移动到布料上方安全高度。
机械臂以较低速度接近布料,当熨斗接触布料并达到目标力时,开始熨烫。
机械臂按照预设轨迹在布料表面移动,保持熨斗与布料之间的力在 30±5 N。
熨烫完成后,机械臂抬升熨斗并返回起始位置。
布料熨烫视频示例:
力控参数设置
力控参考坐标系:实际 TCP 或者力控输出的指令 TCP。
力控方向:Z 轴开力控,其他轴不开。
enable = {false, false, true, false, false, false}目标力:Z 轴目标力 30 N,其他轴目标力不生效,建议设置为 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}
相关问题请参见力控实施相关问题。
6.3 齿轮啮合
需求分析
功能需求:机械臂携带齿轮,与固定齿轮实现精确啮合。
力控要求:齿轮啮合过程中,力保持在 5 ± 1 N,避免齿轮损伤。
精度要求:齿轮啮合精度达到 0.1 mm,确保齿轮正常运转。
方案
总体思路:机械臂携带齿轮,通过力控实现与固定齿轮的精确啮合,保证啮合过程中的力在 5 ± 1 N,同时确保啮合精度。
主要步骤:
机械臂从起始位置移动到固定齿轮上方安全高度。
机械臂以较低速度接近固定齿轮,当齿轮接触并达到目标力时,开始啮合。
机械臂通过力控调整姿态,实现齿轮的精确啮合。
啮合完成后,机械臂保持姿态,完成齿轮啮合操作。
齿轮啮合视频示例:
力控参数设置
力控参考坐标系:TCP 坐标系,确保坐标系原点在齿轮中心。
力控方向:根据齿轮啮合方向确定,一般为 X 或 Y 轴。
目标力:根据齿轮大小和材质确定,一般为 5 ± 1 N。
参考轨迹:齿轮啮合轨迹,需要保证轨迹与固定齿轮齿槽对齐。
导纳参数:
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}
6.4 U 盘自动插拔
需求分析
功能需求:机械臂携带 U 盘,实现与电脑 USB 接口的自动插拔。
力控要求:插拔过程中,力保持在 10 ± 2 N,避免 USB 接口损伤。
精度要求:USB 接口对准精度达到 0.5 mm,确保 U 盘正确插入。
方案
总体思路:机械臂携带 U 盘,通过力控实现与电脑 USB 接口的自动插拔,保证插拔过程中的力在 10 ± 2 N,同时确保接口对准精度。
主要步骤:
机械臂从起始位置移动到电脑 USB 接口前方安全位置。
机械臂以较低速度接近 USB 接口,当 U 盘接触接口并达到目标力时,开始插入。
机械臂通过力控调整姿态,实现 U 盘的精确插入。
插入完成后,机械臂保持姿态,完成 U 盘插入操作。
拔出时,机械臂以较低速度拔出 U 盘,保持力在 10 ± 2 N。
U 盘自动插拔视频示例:
力控参数设置:
力控参考坐标系:TCP 坐标系,确保坐标系原点在 U 盘中心。
力控方向:
导槽插入阶段:通过导槽插入修正 U 盘 Rx、Ry 方向。
插入阶段:正常开启 X、Y、Z 方向力控,现场情况验证后发现 USB 接口物理结构误差,需要将 USB 口朝下旋转,Rx 给一个负方向力有助于插到底。
目标力:
导槽阶段,TCP-Z,方向目标力 1 N,其他轴建议设置为 0。
插入阶段,TCP-Z,Rx 方向目标力 0.5 N,其他轴建议设置为 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}
6.5 防水盖安装
需求分析
功能需求:机械臂携带防水盖,实现与设备的精确安装。
力控要求:安装过程中,力保持在 8 ± 2 N,避免防水盖损伤。
精度要求:防水盖安装精度达到 0.2 mm,确保防水效果。
方案
总体思路:机械臂携带防水盖,通过力控实现与设备的精确安装,保证安装过程中的力在 8 ± 2 N,同时确保安装精度。
主要步骤:
机械臂从起始位置移动到设备上方安全高度。
机械臂以较低速度接近设备,当防水盖接触设备并达到目标力时,开始安装。
机械臂通过力控调整姿态,实现防水盖的精确安装。
安装完成后,机械臂保持姿态,完成防水盖安装操作。
防水盖安装视频示例:
力控参数设置
力控参考坐标系:TCP 坐标系,确保坐标系原点在防水盖中心。
力控方向:
接近阶段,TCP-X、TCP-Y 开力控,其他轴不开。
下压阶段,TCP-X、TCP-Y、TCP-Z 开力控,其他轴不开。
目标力:
接近阶段,TCP-X、TCP-Y 方向目标力 2 N,其他轴目标力不生效,建议设置为 0。
下压阶段,TCP-X、TCP-Y 方向目标力 0 N,TCP-Z 方向目标力 5 N,其他轴目标力不生效,建议设置为 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}
6.6 旋钮安装
需求分析
功能需求:机械臂携带旋钮,实现与设备的精确安装。
力控要求:安装过程中,力保持在 10 ± 2 N,避免旋钮损伤。
精度要求:旋钮安装精度达到 0.1 mm,确保旋钮正常操作。
方案
总体思路:机械臂携带旋钮,通过力控实现与设备的精确安装,保证安装过程中的力在 10 ± 2 N,同时确保安装精度。
主要步骤:
机械臂从起始位置移动到设备上方安全高度。
机械臂以较低速度接近设备,当旋钮接触设备并达到目标力时,开始安装。
机械臂通过力控调整姿态,实现旋钮的精确安装。
安装完成后,机械臂保持姿态,完成旋钮安装操作。
旋钮安装视频示例:
力控参数设置
力控参考坐标系:TCP 坐标系,确保坐标系原点在旋钮中心。
力控方向:
外圈圆环对齐搜孔,TCP-Z 开力控,其他轴不开。
内圈圆柱对齐搜孔,TCP-Z 开力控,其他轴不开。
目标力:
外圈圆环对齐搜孔,TCP-Z 方向目标力 8 N,其他轴目标力不生效,建议设置为 0。
内圈圆柱对齐搜孔,TCP-Z 方向目标力 5 N,其他轴目标力不生效,建议设置为 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}
6.7 铰链安装
需求分析
功能需求:机械臂携带铰链,实现与设备的精确安装。
力控要求:安装过程中,力保持在 8 ± 2 N,避免铰链损伤。
精度要求:铰链安装精度达到 0.1 mm,确保铰链正常操作。
方案
总体思路:机械臂携带铰链,通过力控实现与设备的精确安装,保证安装过程中的力在 8 ± 2 N,同时确保安装精度。
主要步骤:
机械臂从起始位置移动到设备上方安全高度。
机械臂以较低速度接近设备,当铰链接触设备并达到目标力时,开始安装。
机械臂通过力控调整姿态,实现铰链的精确安装。
安装完成后,机械臂保持姿态,完成铰链安装操作。
铰链安装视频示例:
力控参数设置
力控参考坐标系:TCP 坐标系,确保坐标系原点在铰链中心。
力控方向:
铰链旋入,TCP-Z 开力控,其他轴不开。
铰链下压,TCP-Z 开力控,其他轴不开。
目标力:
铰链旋入,TCP-Z 方向目标力 8 N,其他轴目标力不生效,建议设置为 0。
铰链下压,TCP-Z 方向目标力 5 N,其他轴目标力不生效,建议设置为 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}
6.8 驱动板安装
需求分析
功能需求:机械臂携带驱动板,实现与设备的精确安装。
力控要求:安装过程中,力保持在 5 ± 1 N,避免驱动板损伤。
精度要求:驱动板安装精度达到 0.1 mm,确保驱动板正常工作。
方案
总体思路:机械臂携带驱动板,通过力控实现与设备的精确安装,保证安装过程中的力在 5 ± 1 N,同时确保安装精度。
主要步骤:
机械臂从起始位置移动到设备上方安全高度。
机械臂以较低速度接近设备,当驱动板接触设备并达到目标力时,开始安装。
机械臂通过力控调整姿态,实现驱动板的精确安装。
安装完成后,机械臂保持姿态,完成驱动板安装操作。
驱动板安装视频示例:
力控参数设置:
力控参考坐标系:TCP 坐标系,确保坐标系原点在驱动板中心。
力控方向:
位置确认:TCP-X、Rz 开力控,其他轴不开。
下压:TCP-Z 开力控,其他轴不开。
插槽:TCP-X 开力控,其他轴不开。
目标力:
位置确认:TCP-X 方向目标力 2 N,其他轴目标力不生效,建议设置为 0。
下压:TCP-Z 方向目标力 5 N,其他轴目标力不生效,建议设置为 0。
插槽:TCP-X 方向目标力 8 N,其他轴目标力不生效,建议设置为 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}
6.9 多段力控
需求分析
功能需求:机械臂实现多段力控,适应不同的操作需求。
力控要求:不同阶段的力保持在设定值,误差不超过 0.5 N。
精度要求:多段力控切换精度达到 0.1 s,确保操作流畅。
方案
总体思路:机械臂通过多段力控,实现不同操作阶段的力控,保证各阶段的力在设定值,同时确保力控切换的流畅性。
主要步骤:
机械臂从起始位置移动到操作位置。
机械臂按照预设的多段力控参数,依次执行不同的操作阶段。
每个阶段结束后,机械臂自动切换到下一段力控参数。
所有阶段完成后,机械臂返回起始位置。
多段力控视频示例:
力控参数设置
力控参考坐标系:TCP 坐标系,确保坐标系原点在操作工具中心。
力控方向:TCP-Z 开力控,其他轴不开。
enable = {false, false, true, false, false, false}目标力:
第一段:TCP-Z 方向目标力 6 N。
第二段:TCP-Z 方向目标力 1 N。
第三段:TCP-Z 方向目标力 6 N。
参考轨迹:根据操作需求设定的多段轨迹,确保轨迹与操作表面平行。
导纳参数:
M = {20, 20, 20, 10, 10, 10} D = {0, 0, 1000, 0, 0, 0} K = {0, 0, 0, 0, 0, 0}
6.10 充电接口插拔
需求分析
功能需求:机械臂携带充电接口,实现与设备的自动插拔。
力控要求:插拔过程中,力保持在 15 ± 3 N,避免充电接口损伤。
精度要求:充电接口对准精度达到 0.5 mm,确保充电正常。
方案
总体思路:机械臂携带充电接口,通过力控实现与设备的自动插拔,保证插拔过程中的力在 15 ± 3 N,同时确保接口对准精度。
主要步骤:
机械臂从起始位置移动到设备充电接口前方安全位置。
机械臂以较低速度接近充电接口,当接口接触并达到目标力时,开始插入。
机械臂通过力控调整姿态,实现充电接口的精确插入。
插入完成后,机械臂保持姿态,完成充电接口插入操作。
拔出时,机械臂以较低速度拔出充电接口,保持力在 15 ± 3 N。
充电接口插拔视频示例:
力控参数设置
力控参考坐标系:TCP 坐标系,确保坐标系原点在充电接口中心。
力控方向:
搜孔:TCP-Z 开力控,其他轴不开。
插拔:除 Rz 方向外,其他方向都开启力控。
目标力:
搜孔:TCP-Z 方向目标力 40 N。
插拔:各方向目标力根据实际情况设定。
导纳参数:
导纳参数(搜孔):
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}
相关问题请参见力控实施相关问题。
7 常见问题
7.1 力传感器相关
问题:传感器激活失败如何处理?
原因:
传感器硬件连接松动(如 485 串口接触不良、电源线脱落)。
传感器品牌/型号选择错误(示教器配置与实际传感器不匹配)。
ARCS 系统版本过低(不兼容当前传感器驱动)。
传感器驱动插件未正确部署。
解决方案:
检查传感器物理连接:重新插拔 485 串口/电源线,确认无松动。
核对示教器配置:在“配置 > 一般 > 工具I/O > 工具485”中,确认品牌/型号与实际传感器一致。
升级 ARCS 系统至
v0.31.1及以上版本。外接力传感器需重新部署传感器驱动插件:参考 4.3.3 节 重新执行插件安装脚本,检查
/root/arcs_ws/config/aubo_control.conf配置是否正确。
问题:传感器零点校正偏差大如何处理(如何提高校正精度)?
原因:
校正过程中机械臂受外力干扰(如碰撞、触碰)。
标定位姿选择不当(未按 TCP 轴正方向朝下的要求示教)。
负载参数未正确配置(TCP 偏移/负载质量设置错误)。
传感器本身存在漂移(未定期校准)。
解决方案:
校正前确保机械臂无外力干扰,周边无障碍物。
严格按要求示教标定位姿:TCP 的 X/Y/Z 轴正方向分别朝下,三个位姿无重叠、无干涉。
重新配置负载参数:在“配置 > 插件 > 力控 > 标定”中,核对偏置、质量、质心数据,确保与实际负载一致。
定期校准传感器:每 3 个月执行一次传感器出厂级校准,避免漂移。
7.2 力控插件部署相关
问题:插件版本兼容问题
原因:
力控插件版本与 ARCS 系统版本不匹配(如低版本插件部署在高版本 ARCS 上)。
传感器插件与力控插件版本冲突。
解决方案:
向 AUBO 技术人员获取与当前 ARCS 版本匹配的力控插件。
部署插件前先卸载旧版本:执行
sh uninstall.sh后再安装新版本。确保传感器插件与力控插件版本同步(如坤维传感器插件 v1.1 匹配力控插件 v1.2)。
问题:插件部署后示教器无显示
原因:
插件未勾选启用(部署后未重启示教器)。
插件安装路径错误(未解压到
/root/arcs_ws/extensions/目录)。示教器缓存未清理(旧配置覆盖新插件)。
解决方案:
在“设置 > 系统 > 插件”中勾选力控插件,单击【重启】生效。
检查插件安装路径:确认
force_control.so存在于/root/arcs_ws/extensions/force_control/目录。清理示教器缓存:执行
rm -rf /root/arcs_ws/cache/*后重启示教器。
问题:通信失败,传感器离线,数据无更新。
原因:
24V 供电未接通或电压异常。
RS-485 线序(A/B)接反。
通信线路断路。
解决方案:
检查 24V 电源指示灯(如有)或测量 V+ 与 GND 间电压。
交换 A、B 接线测试。
检查接线端子是否松动,线缆是否完好。
问题:数据漂移超出正常范围,零点不稳定。
原因:
环境温度变化过大,传感器未充分预热。
存在安装应力,传感器固定不垂直。
传感器未完成零点校准。
解决方案:
将传感器置于稳定温度环境,工作 30 分钟后再评估数据稳定性。
重新安装传感器,确保同轴度,消除安装应力。
在"配置" > "一般" > "工具I/O" 页面完成传感器零点校准。
问题:力控功能无法开启(ARCS 系统)。
原因:
ARCS 系统版本过低,非原生支持版本。
传感器非官方支持型号。
解决方案:
升级 ARCS 系统至 v0.31.1 及以上。
确认传感器型号为官方支持列表,非支持型号更换适配型号。
7.3 力控参数调优相关
问题:力超调过大(目标力 10 N,峰值达 12 N+)
原因:
阻尼系数(
)过小(末端运动阻力不足,惯性导致力冲顶)。 目标力设置过高/接近速度过快(机械臂惯性无法及时抵消)。
质量系数(
)过大(末端“惯性”大,力响应滞后)。
解决方案:
优先增大阻尼系数(
):每次增加 10%,直至超调 ≤ 10%(如 Z 轴 从 1000 调至 1200)。 降低接近速度:力控阶段速度 ≤ 50 mm/s,避免惯性冲击。
适度减小质量系数(
):每次减 10%,优化力响应速度(如 从 20 调至 18)。 分步设置目标力:先设为需求值的 70%,接触后再提升至目标值(如先 7 N,稳定后调至 10 N)。
问题:力波动大(±0.5 N 以上)
原因:
质量系数(
)过小(末端“惯性”不足,易受环境扰动)。 坐标系选择错误(未使用 TCP 坐标系,力值换算偏差)。
环境振动(如工作台未固定)。
解决方案:
增大质量系数(
):每次加 10%,直至波动 ≤ ±0.2 N。 切换力控参考坐标系为 TCP(确保力值计算基于末端工具)。
固定工作台,增加减振垫,减少环境振动干扰。
7.4 力控应用相关
问题:触摸屏功能检测,接近阶段力过大如何处理?
原因:接近速度过快,机械臂惯性导致力超过安全阈值。
解决方案:降低接近速度,设置合理的接近轨迹,使用力引导方式接近。
问题:触摸屏功能,在绘制过程中力波动大怎么解决?
原因:导纳参数设置不合理,机械臂刚性过高。
解决方案:调整导纳参数,增加阻尼系数,降低刚性系数。
问题:触摸屏功能,屏幕角度变化导致力控不稳定如何解决?
原因:坐标系姿态与屏幕实际姿态不匹配。
解决方案:使用视觉系统实时检测屏幕角度,动态调整坐标系姿态。
问题:机械臂携带熨斗做布料熨烫功能过程不同布料厚度需要不同的力,那我怎么处理?
解决方案:根据布料厚度调整目标力,使用视觉系统检测布料厚度。
问题:实现充电接口插拔时,接口对准困难如何解决?
原因:充电接口位置精度要求高,机械臂定位误差较大。
解决方案:使用视觉系统辅助定位,提高机械臂定位精度。
问题:实现充电接口插拔时,插拔力过大如何处理?
原因:机械臂惯性导致力超过安全阈值。
解决方案:降低插拔速度,设置合理的力控参数。
问题:实现充电接口插拔时,接口损伤是什么原因?
原因:插拔过程中力过大或姿态不正确。
解决方案:优化力控参数,确保插拔过程中的力在安全范围内。
8 总结与注意事项
8.1 核心总结
力控作业的核心是“力-位置”闭环调节,优先通过阻尼(
)优化力超调,通过质量( )优化响应速度,控力轴刚度( )建议设为 0。 传感器校准、TCP 标定是力控精度的基础,需严格按规范执行,避免因基础配置错误导致力控失效。
不同应用场景的力控核心差异在于“力控方向+目标力+导纳参数”,需结合场景特性调整(如恒力作业仅开 Z 轴力控,对准作业开多轴力控)。
8.2 注意事项
安全优先:力控作业前需划定安全区域,设置力阈值急停,避免人员/设备损伤。
参数调优:遵循“先阻尼、再质量、最后刚度”的顺序,每次调整仅改一个参数,避免多参数叠加导致问题定位困难。
定期维护:每 3 个月校准传感器零点,每 6 个月检查插件版本与 ARCS 系统兼容性,确保长期稳定运行。
