Epson C4校准和Python通讯流程

第一章 简介

1.1 机器人型号

Eson C4

1.2.目的

使用Epon C4机械臂,通过python进行指令控制,在通讯之前,进行了原点和工具坐标系的校准

1.3.流程

C4 机械臂的机械原点校准
C4 机械臂的工具坐标系校准
C4 机械臂的通讯

第二章 机械原点校准

2.1.原点校准-硬件操作

2.1.1.原点校准密钥位置

在这里插入图片描述

2.1.2.机械臂原点位置

在这里插入图片描述

2.1.3.机械臂原点校准

调整各关节位置,使各关节的U型槽对准,保证原点校准秘钥可以在2.1.2所示的各轴U型槽里自由移动,机械手原点姿势如下图所示
在这里插入图片描述

2.2.原点校准-软件操作

打开EPSON软件,连接控制器,先在“工具” → “机器人管理器” → “控制面板”里将 Motor Off。然后在“工具” → “命令窗口”或单击工具图标“ → ”进入命令输入状态。然后在命令窗口依次输入以下指令,复位编码器脉冲值,输完后敲一下回车键。
EncReset 1,2,3,4,5,6
先在“工具” → “控制器” → “重置控制器”。 等待控制器重置完成后打开命令窗口,输入
CalPls 0,0,0,0,0,0
(注意复位编码器脉冲后不要移动机械手,保持机械手在原点位置)。然后执行以下指令
calib 1,2,3,4,5,6
移动机械手各关节位置,然后在命令窗口执行
pulse 0,0,0,0,0,0
让机械手回零脉冲位置,看机械手是否回到原点位置,如果回到原点位置说明原点校准成功。

第三章 工具坐标系校准

  1. 在机器人管理界面单击“工具”打开工具坐标向导画面
    在这里插入图片描述

2)单击“工具向导”进入下图画面,选择“3D工具”
在这里插入图片描述

3)单击“下一个”,选择工具坐标编号(明确工具编号)及工具点个数(3-5个点:任意)
在这里插入图片描述

4)单击“下一个”,进入下图画面
在这里插入图片描述

5)单击“示教”,进入下图画面,确保U=0,V=0,W=-180,用针尖对准Mark 点
在这里插入图片描述

6)单击“示教”,进入下图画面
在这里插入图片描述

7)单击“示教”,进入下图画面,示教“3D工具”第二点需要确保U=0,V=-45,W=-180,用针尖对准Mark点,示教“2D工具”第二个点需要确保U=180,V=0,W=-180,用针尖对准Mark点。
在这里插入图片描述

8)单击“示教”,进入下图画面,如果提示定义成功说明工具坐标已经示教好
在这里插入图片描述

9)单击“示教”,进入下图画面,示教“3D工具”第3点需要确保U=0,V=0,W=-135,用针尖对准Mark点
在这里插入图片描述

10)单击“示教”,进入下图画面,选择3点法示教“3D工具”时进入左下图所示画面,如果提示定义成功说明工具坐标已经示教好,否则需要重新示教。选择4点或5点法示教“3D工具”时进入右下图所示画面
在这里插入图片描述

11)在“步进示教”界面,选择已标定的工具坐标系编号(第三步所选择的编号),确认以后,将机器人末端,绕针尖旋转,查看末端与针尖位置是否相对不变(如有较大变化,则标定失误或选择的工具坐标编号不正确)。
在这里插入图片描述

第四章 C4 机械臂远程以太网控制

4.1.远程以太网配置

设置-系统配置-控制器-配置,设置IP地址(电脑和机器人同网段)、控制设备(远程以太网)。
在这里插入图片描述

4.2.远程控制

设置ip端口、终端、超时、密码,都可按下图配置。
当前密码设置为123,设置好以后,点击应用,然后关闭
等待机器人应用
在这里插入图片描述

4.3.远程以太网启动

点击 运行-运行窗口-激活远程ETH
在这里插入图片描述

4.4.远程控制指令

远程控制指令格式, 需在每条指令前加”$”
命令名称 命令格式 返回数据
登录 $Login,123 #Login,0
登出 $Logout #Logout,0
打开电机 $SetMotorsOn, 1 #SetMotorsOn,0
关闭电机 $SetMotorsOff, 1 #SetmotorOff,0
移动点 $Execute,“move XY(0, 450, 260, 90, 0, 180)” #Execute,0
查询当前位置 $Execute,“print Here” #Execute,“X:-459.199 Y: -20.518 Z:169.012 U: 69.099 V: 26.050 W: -138.026”
高功率模式 $Execute,“Power High” #Execute,0
获取各关节角度 $Execute,“print agl(1),agl(2),agl(3),agl(4),agl(5),agl(6)” #Execute," -4.43419 -39.3106 27.8265 -16.9832 0.00139732 0.107336\r\n"
设置惯性离心率 $Execute,“Inertia 0.0002,0” #Execute,0
设置机械臂负载 $Execute,“Weight 0,6” #Execute,0

4.5.远程控制错误代码

在这里插入图片描述

4.6.Python通讯控制代码

使用socket库

# 使用socket库
import socket
import time

# SOCK_STREAM指socket传输层使用TCP协议
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientSocket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
# 机械臂远程以太网定义的IP地址和端口
clientSocket.connect(("192.168.0.1", 5000))

# 登录
Login = "$Login,123"
clientSocket.send((str(Login).encode()) + b"\r\n")
Logindata = clientSocket.recv(1024)

# 关闭电机
SetMotorsoff = "$SetMotorsOff, 1"
clientSocket.send((str(SetMotorsoff).encode()) + b"\r\n")
SetMotorsoffdata = clientSocket.recv(1024)
time.sleep(5)

# 获取各关节角度
aixs = '$Execute,"print agl(1),agl(2),agl(3),agl(4),agl(5),agl(6)"'
clientSocket.send((str(aixs).encode()) + b"\r\n")
aixsdata = clientSocket.recv(1024)
print(aixsdata)
time.sleep(5)
# 打开电机
SetMotorsOn = "$SetMotorsOn, 1"
clientSocket.send((str(SetMotorsOn).encode()) + b"\r\n")
SetMotorsOndata = clientSocket.recv(1024)


# 高功率模式
Power = '$Execute,"Power High"'
clientSocket.send((str(Power).encode()) + b"\r\n")
Powerdata = clientSocket.recv(1024)

print(1)
# 循环接收消息
while 1:
    # 读取当前位置数据
    sendData = '$Execute,"print RealPos"'
    clientSocket.send((str(sendData).encode()) + b"\r\n")
    recvdata = clientSocket.recv(1024)
    print(recvdata)
    moveData = '$Execute,"Go XY(-359.849,  470.889, 371.857,36.890, 24.031,  -103.472)/R /A /NF /J6F0 /J4F0"'
    clientSocket.send((str(moveData).encode()) + b"\r\n")
    moveDatar = clientSocket.recv(1024)
    time.sleep(3)
    moveData1 = '$Execute,"Go XY(-379.849,  470.889, 371.857,36.890, 24.031,  -103.472)/R /A /NF /J6F0 /J4F0"'
    clientSocket.send((str(moveData1).encode()) + b"\r\n")
    moveDatar1 = clientSocket.recv(1024)
    time.sleep(3)
    if not recvdata:
        break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值