1. 项目概述
在工业自动化和协作机器人领域,实现机械臂的柔顺拖动是一项关键技术。传统方案通常依赖昂贵的末端力传感器(FTS),但本文将分享一种无需FTS的导纳控制实现方案。这个方案基于ROS 2 Admittance Controller,通过关节力矩反馈实现6轴机械臂的柔顺拖动控制。
我最近在一个工业自动化项目中成功实现了这套方案,机械臂配备了0.5kg的末端工具,采用CSP(Cyclic Synchronous Position)位置控制模式。实测表明,这套方案不仅能实现与FTS方案相当的拖动效果,还能节省约30%的硬件成本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件配置与核心参数
2.1 硬件平台配置
我们的测试平台采用6轴协作机械臂,具体配置如下:
- 驱动器模式:CSP位置控制模式
- 反馈信号:关节位置、关节速度和关节力矩
- 末端负载:0.5kg工具(无FTS)
- 控制周期:4ms(250Hz)
2.2 导纳控制核心参数
导纳控制的核心在于三个关键参数的设置:
虚拟质量参数(mass)
cpp复制[0.15, 0.12, 0.10, 0.08, 0.06, 0.05] kg·m²
这个参数决定了拖动时的"惯性感"。较大的质量值会让机械臂移动更平稳但响应变慢,较小的值则更灵敏但容易抖动。
阻尼参数(damping_ratio)
cpp复制[0.7, 0.7, 0.7, 0.7, 0.7, 0.7]
阻尼比设置为0.7(临界阻尼附近),确保系统既不会过阻尼(响应迟缓)也不会欠阻尼(产生振荡)。
刚度参数(stiffness)
cpp复制[35.0, 35.0, 30.0, 30.0, 25.0, 25.0] N·m/rad
刚度参数影响拖动的"柔顺度"。我们采用从基座到末端递减的设置,这样既保证了基座的稳定性,又确保了末端操作的灵活性。
3. 无FTS的外力估计方法
3.1 外力推导原理
在没有FTS的情况下,我们通过关节力矩反馈来估计外力。核心公式是:
code复制有效力矩 = 实测关节力矩 - 重力补偿力矩
在代码中体现为:
cpp复制Eigen::VectorXd delta_T = T_act - T_g;
