一、概念
机器人的力控制是指在机器人应用领域中利用力传感器作为反馈装置,将力反馈信号与位置控制(或速度控制)输入信号相结合,通过相关的力/位混合算法,实现力/位混合控制的技术。是机器人技术发展的主要方向之一,为机器人增加了触觉,一般与机器人视觉技术项结合,共同组成机器人的视觉和触觉。
二、背景
目前的工业领域,机器人在环境变化时可以通过视觉系统的反馈使得位置控制具备一定的适应能力。
但在面对一些与环境存在力作用的任务时,比如装配、打磨,单纯的位置控制会由于位置误差而引起过大的作用力,从而会伤害零件或机器人。在这类运动受限环境中运动往往需要更精确控制施加在末端执行器的力,引入力矩/力作为闭环反馈必不可少。
三、反馈方式
3.1 力/力矩传感器(Force Torque Sensor)
直接使用商用的六维力/力矩传感器,比如说典型的 ATI 或者 Robotiq 公司。而在人型机器人之中,通常将力/力矩传感器安装在脚掌与踝关节、机械手与腕关节之间,测量末端执行器(机械手或者脚掌)与外界环境交互的受力情况。
四、标定
通常在机械臂腕部与末端夹持器之间安装六维力传感器,用于机器人在装配过程中的力反馈控制。六维力传感器能够测量三维空间中任何坐标系下的三维力和三维力矩。 在机械臂处于静态时,机械臂腕部六维力传感器测出的力与力矩数据由三部分组成:
- 传感器自身系统误差
- 传感器与末端夹持器自身重力作用
- 末端夹持器所受外部接触力
若要得到装配轴在装配过程中所受外部接触力,需要消除六维力传感器系统自身误差以及装配轴重力作用两方面的影响。因此,我们需要通过标定剔除这些干扰因素的影响,以便更精确地获取与环境的接触力信息。标定方法可分为静态标定与动态标定。
4.1 静态标定
让机器人运动到几个姿态并停止,根据稳定时力矩传感器的数值与最小二乘法来标定负载参数及传感器自身参数。这种方式忽略了运动惯性的影响。
4.2 动态标定
考虑负载运动速度等对力矩传感器的影响。这种处理方式与机器人的动力学参数辨识类似,让机器人数个轴连续地运动,采集力矩传感器的数值与关节角度,完成对负载及零漂的辨识。
五、应用
我们在机械臂末端安装一个 6 维力传感器,机械臂在运动过程中,力传感器把机械臂末端受力数据通过 RS485 返回给上位机,软件通过分析获取到的 6 维(Fx,Fy,Fz,Mx,My,Mz)力数据控制机械臂伺服运动。
- Fx:x 方向力值,Fy:y 方向力值,Fz:z 方向力值
- Mx:x 轴力矩,My:y 轴力矩,Mz:z 轴力矩
- 力的单位一般为 Kg,力矩的单位一般为 Kg·m
5.1 通信参数
以坤维力传感器为例,下图是传感器通信参数:
传感器输出每帧数据为 28 个字节,以十六进制写作形式如下:
0x49AAB0751CC19B3FEDC0AE5CF040D4B52DBE5F55993E7C1AB0BB0D0A
其中: 0x49 为命令编码;0xAA 为固定标识,每帧数据均为 0xAA;此后每 4 个字节为一个分量的数据,传输顺 序为每分量低字节在前,每字节 MSB 在前;数据分量的传输顺序和单位是:Fx(Kg),Fy(Kg),Fz(Kg), Mx(Kg•m),My(Kg•m),Mz(Kg•m);数据最后以 0D 和 0A 结尾;每分量为一组 4 字节单浮点(Float) 类型数据,上位机将接收到的数据按顺序排列后直接定义为 Float 类型,即可得到实际受力或者力矩。
5.2 控制流程
机器人结合视觉系统和坤维力传感器控制流程:
- 视觉系统通过计算获得目标位姿 pose1;
- 上位机控制机械臂以 MoveL 或 MoveJ 方式运动到 pose1,记录下此时力传感器六维力数据 F1;
- 控制机械臂朝某一方向进行伺服运动(总长度 x mm)。每次运动 dx mm 并获取力传感器六维力数据 Fi,计算力的变化ΔF(ΔF = Fi – F1);
- 当力的变化满足我们设定的六维力数据阈值 F_thresh(ΔF >= F_thresh),立刻控制机械臂做出相应动作;