第一章 简介
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
让机械手回零脉冲位置,看机械手是否回到原点位置,如果回到原点位置说明原点校准成功。
第三章 工具坐标系校准
- 在机器人管理界面单击“工具”打开工具坐标向导画面
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