EC3.5与EC3.6力控功能使用


使用末端工具I/O端口

  1. 固件升级:机械臂末端工具IO版本需要更新至v8.2.727及以上的版本
  2. sensor介绍
  • a. 目前sensor若使用机器人末端I/O,sensor只支持坤为KWR75B传感器(fx ,fy, fz最大均为200N),sensor介绍见https://www.kunweitech.com/proinfo/58.html。 sensor与机器人进行RS-485通讯
  • b. 机器人末端针脚定义如下:

3. 安装

    a. 若使用EC3.5版本,sensor必须按照如下方式安装,即sensor的Y+ 与机器人法兰盘的X- 一致 

    b. 若使用EC3.6版本,则建议sensor的x+与法兰盘的x+保持一致即可。

4. 示教器设置:

    a. 进入下图 “力控模式配置”,选择数据源为“内部数据源”

    b. 以下内容仅针对EC3.6版本!!!!!

            i. EC3.6版本可以设置sensor安装方式,若采用EC3.5方式(sensor的Y+与法兰盘的x- 一致),则需要进入下图的传感器设置,设置rz(单位rad)

            ii. 使用坤为sensor,数据单位选择 kg!!! 否则读数会小10倍


5. sensor初次标定与末端负载计算

    a. sensor外 不安装负载

    b. 选择要使用的tool,例如 点击 工具0,并将负载设置为0,再点击 负载计算

    c. 机器人手动模式,伺服上使能,点击 传感器标定,此时机器人自动运行8个点,并出现 传感器 标定完成。此步骤主要对sensor处于不同位置,可能的输出不为0(或者零飘)进行补偿。

    d. 标定结束后,机器人不上伺服!!,此时点击 传感器数据 按钮,可以看到FX,FY,FZ,MX,MY,MZ等数据,且数据和小于1. 注意此时的FX,FY,FZ,MX,MY,MZ均为机器人法兰盘坐标系方向!!! 可以手动对sensor施力,并再次点击 传感器标定 按钮,读取当前示数,检测标定结果和输出是否正确。

    e. 若sensor不安装负载,仅做力控测试,则可直接进入JBI编程环节

    f. 若sensor外还有工具(例如磨头等),安装工具负载,并按照下图示例移动到4个不同姿态,点击 记录点。 机器人记录此时机器人位置和当前sensor读数。全部记录完毕,点击 计算,得到负载重量和重心。根据需要将测得数据填入对应tool的负载。此时伺服不上电,点击 传感器标定,读数和小于1 表示负载辨识ok。

6. jbi代码


MOVL V=100MM/S CR=0.0MM ACC=50 DEC=50
//移动到起点
STARTFORCEMODE Mode=0 ConstV=[0,0,0,0,0,0] ConstV=[0,0,1,0,0,0] ConstV=[0.000,0.000,-5.000,0.000,0.000,0.000] ConstV=[100,100,100,5.730,5.730,5.730]
//开启力控,Mode=3表示基于当前tool坐标系,Mode=0.表示基于base坐标系
//后面4个参数入下图的坐标,掩码,力,和速度
// 坐标表示基于当前参考点的偏移
// 掩码表示哪个方向进行力控,例如Mode=0表示基于base坐标系,掩码只有z为1,表示仅在z方向进行力控
// 力表示需要设置的力(根据参考方向,例如当前基于base,所以设z方向为-5N,即向下)
// 速度表示各个方向可能由于力控需要调整轨迹的最大速度
MOVL V=10MM/S CR=0.0MM ACC=50 DEC=50
ENDFORCEMODE
//结束力控
MOVL V=100MM/S CR=0.0MM ACC=50 DEC=50
END

此时可以测试力控效果,如果跟踪效果较差,可以在修改控制器rbctrl下force_mode_parameter.xml文件,其中PIDPara1中的第4个参数(默认为0.2)表示灵敏度。数据越大,机器人基于力控反应越灵敏(一般不建议超过2)。可以修改文件。机器人每次重新运行startforce语句时,会读取该参数

通过LUA获取力sensor数据

  1. 编写相关lua,注意示教器设置界面的sensor单位!! (仅针对EC3.6,EC3.5外部数据均认为是kg)
ret = stop_push_force()
sleep(0.2)
ret = start_push_force()
while true
   local torque = {fx/10/9.8,fy/10/9.8,fz/10/9.8,tx/100/9.8,ty/100/9.8,tz/100/9.8}
    ret = push_external_force(index,torque)

2. 在示教器 传感器界面选择数据源为LUA数据源,并设置采样时间间隔,以及容差(即超过采样间隔*容差的时间机器人没有收到sensor数据,会报错!!!)

3. 若要切换数据源为其他 数据源,需要在LUA端先运行 以下停止push数据指令,否则无法修改数据源

ret = stop_push_force()

机器人收到sensor数据后,sensor 标定等操作同前文!!

若sensor使用SDK数据,则选择SDK数据,并从SDK获取sensor数据

点击显示全文
赞同0
发表评论
分享

手机扫码分享
0
844
收藏
举报
收起
登录
  • 密码登录
  • 验证码登录
还没有账号,立即注册
还没有账号,立即注册
注册
已有账号,立即登录
选择发帖板块
举报
请选择举报理由
举报
举报说明