09-06-2021, 03:11
你好,
我发布了一个版本来展示我如何使用RoboDK的机器人,这个版本是最终版本。对于那些尝试使用RoboDK连接Robot的人,特别是初学者来说,这将是有帮助的。
ROBODK - FANUC ROBOT(R-30iB控制器)连接:
PC和机器人设置-
1.将网线插入R-30ib控制器(位于门的右下方)
2.设置IP为PC和机器人(在同一网段)
2.1选择MENU->SETUP->HOST COMM设置IP地址为ROBOT (IP地址前没有空格),选择NEXT->INIT->YES->ROBOT完成设置
2.2选择MENU->SETUP->HOST COMM->PING检查IP地址是否正确设置
2.3将IP地址设置为以太网卡的PC网络设置
软件设置-
一个。机器人-
1.必须安装用户套接字消息(R648)吗
菜单->STATUS->VERSIONID->CONFIG要检查
2.$Karel_ENB必须设置为1
MENU-> system_变量检查,如果0设置为1并重新启动
3.将FANUC的ROBODK驱动程序上传到机器人
3.1司机://www.x7093.com/doc/en/Robots-Fanuc-R...Fanuc.html
3.2使用正确版本的驱动程序(否则机器人不会遵循你的代码)
3.3上传RDK_S3。PC, GO_MJ, GO_ML, GO_MC, GO_PROG to robot
-将usb插入FANUC的Teach吊坠
-MENU->FILE->FILE->UTIL->SET DEVICE->USB on TP->ENTER
-选择“*”显示所有文件
-选择所有驱动程序,并将LOAD->YES加载到Robot
4.初始机器人驱动程序(根据RoboDK网站://www.x7093.com/doc/en/Robots-Fanuc-R...Fanuc.html)
4.1按照以下步骤进行:
一个。 选择菜单-(下)系统类型变量.
b。 选择HOSTS_CFG美元(按住shift键同时选择向下键可以帮助你更快地向下滚动)
c。 选择3号
d。 集SERVER_PORT美元到2000年
e。 (美元HOSTS_CFG SERVER_PORT美元[3]= 2000)
f。 选择Menu-Setup
g。 选择【类型】主机通讯
h。 选择[显示]服务器
我。 选择“S3”进入.
j。 集协议名称来SM
k。 在端口名称,当有多个端口时:“端口”设置为P3(或对应端口)。
l 设置不活动超时来9999
m。 “启动状态”设置为(选择)开始
n。 设置“当前状态”为开始:
为此,选择[行动]——把,然后[行动]实体法
o。 启动程序DRIVERRDK_S3:
选择选择纽扣从教学吊坠。
向下滚动到DRIVERRDK_S3程序
选择Enter(来自teach挂坠的按钮)
选择Shift-Reset和Shift-Forward启动程序,
亡灵按钮应该一直按下
p。设置完成后,“忙”和“运行”信号将变为黄色
B。PC -
1.打开RoboDK->文件->打开在线库,选择机器人模型。
2.文件->打开->下载的机器人文件
3.连接机器人:
3.1鼠标右键单击树中的机器人名称,并选择连接到机器人
3.2输入IP地址(例如192.168.1.10)
3.3默认端口2000
3.4如果设置正确,将得到绿色信号“ready”
4.添加python程序:
4.1程序->添加python程序
4.2右键单击“Prog1”->编辑python脚本开始python编程,有三种方法来运行python代码:
-编辑器中的F5:执行python代码并显示消息窗口(仅在此模式下)。当窗口打开时,运行机器人不工作
-右击“Prog1”->运行python脚本:模拟python代码并在RoboDK屏幕上绘制轨迹
-右击“Prog1”->run on robot:执行python代码到robot
示教器:
1. 手动和自动:
1.1 在自动模式下,不需要按DEADMAN来运行程序:
- 将R-30ib调至AUTO
- 的左上角开关 教吊坠关闭
- 按年代 对TP进行shift +RESET以消除FAULT信号
- 选择程序 TP (SELECT->程序名称(RDK_S3.PC)->ENTER)
- 按R-30ib的CYCLE START键,绿色信号ON, TP的“busy”和“run”信号由黄转绿
- 如果不工作,试试 FCTN->ABORT ALL->返回选择程序步骤
1.2 手动运行程序:
- 把R-30 ib, T1
- 将TP的左上角开关打开
- 选择项目 (SELECT->程序名称(RDKS_3.PC)->ENTER)
- 新闻 亡灵(一直在T1/T2模式下)
- 按SHIFT+RESET使FAULT消失
- SHIFT+FWD运行所选程序
- 如果不工作,试试 FCTN->ABORT ALL->返回选择程序步骤
1.3 手动移动机器人
- 按下DEADMAN(一直按下)
- SHIFT +重置
- 新闻 EADMAN+SHIFT和(X,Y,Z,rX,rY, rZ) 移动机器人
2. 改变机器人速度:
2.1 按TP右下角“+%”,“-%”改变速度,TP屏幕右上方显示速度
3. 回零毒药:
- FCTN - >中止
- 选择- >家- >输入
- 运行程序(如上所述)
- 选择- > RDRIVERS_3 - >输入
- 运行程序(如上所述)
I / O -
1. 菜单- > I / O
2. 类型(F1) , 选择I/O类型: 数字输入,机器人输入
3. 在s下DI是不可变的 模拟=间 U ( unmulate),如果模拟需要,将U改为S
4. 在使用FANUC机器人I/O之前,需要设置参数:
- 配置(F2)
- CRMA15/16输出:[109-120]Rack = 48, SLOT=1, START =1(正常情况下)
- PLC) [1-100](视需要而定),机架= 92,SLOT=1 START =1(正常)
- 需要重启才能制作 Stat . =激活
5. 数字I / O:
5.1 CRMA15/16:
- 连接器位于R-30ib门的底部,电线可以从网上或代理商购买
- 线路:
做的事:(见附件)
迪::(见附件)
5.2 PLC -
需要具备PLC和机器人之间的PLC协议设置知识
6. 机器人I/O (EE接口):
(由于 torayeff//www.x7093.com/forum/Thread-Robot-I-O-control)
6.1 要使用这个,必须在机器人中编写两个程序:
- 使用TP构建两个程序: 罗[1 ]= ON和RO[1]=OFF 提前:
选择- >创建> - >输入- > next - >本月- > I / O - > RO[] =…- >输入RO = 1,选择开/关
PYTHON -
1. 获取机器人位置:Joint_org = robot.关节()
2. 移动机器人( X=前/后,Y=左/右,Z=上/下)all in length(mm)-
def moverobot1 (x_offset y_offset z_offset):
target_ref = robot.Pose()
pos_ref = target_ref.Pos ()
Robot_x = pos_ref[0]+x_offset
Robot_y = pos_ref[0]+y_offset
Robot_z = pos_ref[0]+z_offset
target_i = Mat(target_ref)
target_i.setPose ([robot_x、robot_y robot_z])
robot.MoveL (target_i)
3. 工具坐标控制:rX=第4轴(左/右), rY=向前/向后,rZ我将使用RELTOOL,这里不使用,值将始终为0)
Def moverobotj(a_value, b_value, 0):
target = robot.Pose()
xyzabc = Pose_2_Fanuc(目标)
X yz,a bc = xyzabc
Xyzabc2 = [x,y,z,a+a_value,b+b_value,c+c_value]
target2 = Fanuc_2_Pose(xyzabc2)
robot.MoveJ (target2)
4. RELTOOL是一个单独转动第6轴而不影响第4轴和第5轴的函数 s (//www.x7093.com/forum/Thread-control-...seperately)
Cvalue_ang = 30 ( 例如。)
target2 = robot.Pose()
target2 = RelTool (target2, 0, 0, 0, rz = cvalue_ang)
robot.MoveJ (target2)
5. 深度学习:
5.1 我使用YOLO4 + OPENCV来检测物体
5.2 如何定位-
- 计算物体中心到弹出窗口中心的距离,
- 设置大的移动速度和范围,使机器人更快地移动到目标
- 设定更小的移动速度和范围,使机器人精确地移动到目标
- 必须有两个类来计算物体的方向,机器人才会转向正确的方向。
5.3 物体角度计算:
- 如果物体的角度是-25度,右边是-15度,
- 若物体顺时针旋转40度
- 朝向会改变角度:
计算转90度= -15-(-25)= 10度
每个度引起物体的度变化= 10/90 = 0.11
转40度= 40*0.11 = 4.4
新向角= -25-4.4 = -29.4
考虑右边角的变化也会影响朝向度:
-15 + 25 - (-15) / 90 * 40 = -32.78
最新rY = -29.4-(-17.78) = -19.33
- 当物体被平放时,它有15度的偏移,
- 如果angD < = 15:
- 偏移值= 0
- Xoffset = 60
- Yoffset = 15
- Aang_diff = bvalue_ang-avalue_ang
- Bang_diff = - valuue_ang -bvalue_ang
- angD + = offsetvalue
- cvalue_ang = angD-15
- valuue_ang -(aang_diff/-90)*angD)
- bvalue_ang = (bvalue_ang-(bang_diff/-90)*angD)
- valuue_ang2 = valuue_ang1 -(bvalue_ang1-bvalue_ang)
- Bvalue_ang2 = bvalue_ang1+(valuue_ang1 - valuue_ang)
- 其他:
- Xoffset = 60
- yoffset = 30
- 偏移值= 0
- Aang_diff = -bvalue_ang-avalue_ang
- Bang_diff = valuue_ang -bvalue_ang
- angD - = offsetvalue
- 如果angD > = 15:
- cvalue_ang = angD-15
- 其他:
- cvalue_ang = angD-0
- avalue_ang1 = (avalue_ang-(aang_diff/90)*angD)
- bvalue_ang = (bvalue_ang-(bang_diff/90)*angD)
- valuue_ang2 = valuue_ang1 +(bvalue_ang1-bvalue_ang)
- Bvalue_ang2 = bvalue_ang1-(avalue_ang1-avalue_ang)
- moverobotj (avalue_ang2 bvalue_ang2 0)
-
- target2 = robot.Pose()
- target2 = RelTool (target2, 0, 0, 0, rz = cvalue_ang)
- robot.MoveJ (target2)
- Avalue_rad = (avalue_ang2)*(math.pi/180)
- Bvalue_rad = (bvalue_ang2)*(math.pi/180)
- Arm_length = 220
- Math_x_offset = (math.sin(bvalue_rad)*arm_length)
- Math_y_offset = -(math.sin(avalue_rad)*arm_length)
- moverobot1 (math_x_offset + xoffset math_y_offset-yoffset 0)
6. I / O
6.1 国际扶轮 、 RO:使用RobkDK命令机器人。 RI (x, 0/1) 、 罗[ x, 0/1]控制机器人数字I/O (x = I/O数,0/1:0 =关,1 =开)
6.2 ROBOT I/O:使用RoboDK命令 机器人。robolink.INSTRUCTION_CALL_PROGRAM RunInstruction (' RO_OFF '), ' RO_OFF '是Robot中的程序名
7. 在机器人上运行 和加密 :
7.1 使用命令 RDK。 通过python代码在机器人上运行setRunMode(RUNMODE_RUN_ROBOT)。
7.2 为了确保用户不会更改python代码,请使用RoboDK的插件函数(//www.x7093.com/forum/Thread-encrypti...ython-prog)
- 保存 P ython代码 作为.py文件
- 下添加子文件夹 C: \ ROBODK \ pps
- 将.py文件放入子文件夹
- 选择 工具->插件->加载插件->应用程序加载器
- 程序将出现在RoboDK的工具栏中
- 结合命令' runmode_run_robot ',方便用户使用
我发布了一个版本来展示我如何使用RoboDK的机器人,这个版本是最终版本。对于那些尝试使用RoboDK连接Robot的人,特别是初学者来说,这将是有帮助的。
ROBODK - FANUC ROBOT(R-30iB控制器)连接:
PC和机器人设置-
1.将网线插入R-30ib控制器(位于门的右下方)
2.设置IP为PC和机器人(在同一网段)
2.1选择MENU->SETUP->HOST COMM设置IP地址为ROBOT (IP地址前没有空格),选择NEXT->INIT->YES->ROBOT完成设置
2.2选择MENU->SETUP->HOST COMM->PING检查IP地址是否正确设置
2.3将IP地址设置为以太网卡的PC网络设置
软件设置-
一个。机器人-
1.必须安装用户套接字消息(R648)吗
菜单->STATUS->VERSIONID->CONFIG要检查
2.$Karel_ENB必须设置为1
MENU-> system_变量检查,如果0设置为1并重新启动
3.将FANUC的ROBODK驱动程序上传到机器人
3.1司机://www.x7093.com/doc/en/Robots-Fanuc-R...Fanuc.html
3.2使用正确版本的驱动程序(否则机器人不会遵循你的代码)
3.3上传RDK_S3。PC, GO_MJ, GO_ML, GO_MC, GO_PROG to robot
-将usb插入FANUC的Teach吊坠
-MENU->FILE->FILE->UTIL->SET DEVICE->USB on TP->ENTER
-选择“*”显示所有文件
-选择所有驱动程序,并将LOAD->YES加载到Robot
4.初始机器人驱动程序(根据RoboDK网站://www.x7093.com/doc/en/Robots-Fanuc-R...Fanuc.html)
4.1按照以下步骤进行:
一个。 选择菜单-(下)系统类型变量.
b。 选择HOSTS_CFG美元(按住shift键同时选择向下键可以帮助你更快地向下滚动)
c。 选择3号
d。 集SERVER_PORT美元到2000年
e。 (美元HOSTS_CFG SERVER_PORT美元[3]= 2000)
f。 选择Menu-Setup
g。 选择【类型】主机通讯
h。 选择[显示]服务器
我。 选择“S3”进入.
j。 集协议名称来SM
k。 在端口名称,当有多个端口时:“端口”设置为P3(或对应端口)。
l 设置不活动超时来9999
m。 “启动状态”设置为(选择)开始
n。 设置“当前状态”为开始:
为此,选择[行动]——把,然后[行动]实体法
o。 启动程序DRIVERRDK_S3:
选择选择纽扣从教学吊坠。
向下滚动到DRIVERRDK_S3程序
选择Enter(来自teach挂坠的按钮)
选择Shift-Reset和Shift-Forward启动程序,
亡灵按钮应该一直按下
p。设置完成后,“忙”和“运行”信号将变为黄色
B。PC -
1.打开RoboDK->文件->打开在线库,选择机器人模型。
2.文件->打开->下载的机器人文件
3.连接机器人:
3.1鼠标右键单击树中的机器人名称,并选择连接到机器人
3.2输入IP地址(例如192.168.1.10)
3.3默认端口2000
3.4如果设置正确,将得到绿色信号“ready”
4.添加python程序:
4.1程序->添加python程序
4.2右键单击“Prog1”->编辑python脚本开始python编程,有三种方法来运行python代码:
-编辑器中的F5:执行python代码并显示消息窗口(仅在此模式下)。当窗口打开时,运行机器人不工作
-右击“Prog1”->运行python脚本:模拟python代码并在RoboDK屏幕上绘制轨迹
-右击“Prog1”->run on robot:执行python代码到robot
示教器:
1. 手动和自动:
1.1 在自动模式下,不需要按DEADMAN来运行程序:
- 将R-30ib调至AUTO
- 的左上角开关 教吊坠关闭
- 按年代 对TP进行shift +RESET以消除FAULT信号
- 选择程序 TP (SELECT->程序名称(RDK_S3.PC)->ENTER)
- 按R-30ib的CYCLE START键,绿色信号ON, TP的“busy”和“run”信号由黄转绿
- 如果不工作,试试 FCTN->ABORT ALL->返回选择程序步骤
1.2 手动运行程序:
- 把R-30 ib, T1
- 将TP的左上角开关打开
- 选择项目 (SELECT->程序名称(RDKS_3.PC)->ENTER)
- 新闻 亡灵(一直在T1/T2模式下)
- 按SHIFT+RESET使FAULT消失
- SHIFT+FWD运行所选程序
- 如果不工作,试试 FCTN->ABORT ALL->返回选择程序步骤
1.3 手动移动机器人
- 按下DEADMAN(一直按下)
- SHIFT +重置
- 新闻 EADMAN+SHIFT和(X,Y,Z,rX,rY, rZ) 移动机器人
2. 改变机器人速度:
2.1 按TP右下角“+%”,“-%”改变速度,TP屏幕右上方显示速度
3. 回零毒药:
- FCTN - >中止
- 选择- >家- >输入
- 运行程序(如上所述)
- 选择- > RDRIVERS_3 - >输入
- 运行程序(如上所述)
I / O -
1. 菜单- > I / O
2. 类型(F1) , 选择I/O类型: 数字输入,机器人输入
3. 在s下DI是不可变的 模拟=间 U ( unmulate),如果模拟需要,将U改为S
4. 在使用FANUC机器人I/O之前,需要设置参数:
- 配置(F2)
- CRMA15/16输出:[109-120]Rack = 48, SLOT=1, START =1(正常情况下)
- PLC) [1-100](视需要而定),机架= 92,SLOT=1 START =1(正常)
- 需要重启才能制作 Stat . =激活
5. 数字I / O:
5.1 CRMA15/16:
- 连接器位于R-30ib门的底部,电线可以从网上或代理商购买
- 线路:
做的事:(见附件)
迪::(见附件)
5.2 PLC -
需要具备PLC和机器人之间的PLC协议设置知识
6. 机器人I/O (EE接口):
(由于 torayeff//www.x7093.com/forum/Thread-Robot-I-O-control)
6.1 要使用这个,必须在机器人中编写两个程序:
- 使用TP构建两个程序: 罗[1 ]= ON和RO[1]=OFF 提前:
选择- >创建> - >输入- > next - >本月- > I / O - > RO[] =…- >输入RO = 1,选择开/关
PYTHON -
1. 获取机器人位置:Joint_org = robot.关节()
2. 移动机器人( X=前/后,Y=左/右,Z=上/下)all in length(mm)-
def moverobot1 (x_offset y_offset z_offset):
target_ref = robot.Pose()
pos_ref = target_ref.Pos ()
Robot_x = pos_ref[0]+x_offset
Robot_y = pos_ref[0]+y_offset
Robot_z = pos_ref[0]+z_offset
target_i = Mat(target_ref)
target_i.setPose ([robot_x、robot_y robot_z])
robot.MoveL (target_i)
3. 工具坐标控制:rX=第4轴(左/右), rY=向前/向后,rZ我将使用RELTOOL,这里不使用,值将始终为0)
Def moverobotj(a_value, b_value, 0):
target = robot.Pose()
xyzabc = Pose_2_Fanuc(目标)
X yz,a bc = xyzabc
Xyzabc2 = [x,y,z,a+a_value,b+b_value,c+c_value]
target2 = Fanuc_2_Pose(xyzabc2)
robot.MoveJ (target2)
4. RELTOOL是一个单独转动第6轴而不影响第4轴和第5轴的函数 s (//www.x7093.com/forum/Thread-control-...seperately)
Cvalue_ang = 30 ( 例如。)
target2 = robot.Pose()
target2 = RelTool (target2, 0, 0, 0, rz = cvalue_ang)
robot.MoveJ (target2)
5. 深度学习:
5.1 我使用YOLO4 + OPENCV来检测物体
5.2 如何定位-
- 计算物体中心到弹出窗口中心的距离,
- 设置大的移动速度和范围,使机器人更快地移动到目标
- 设定更小的移动速度和范围,使机器人精确地移动到目标
- 必须有两个类来计算物体的方向,机器人才会转向正确的方向。
5.3 物体角度计算:
- 如果物体的角度是-25度,右边是-15度,
- 若物体顺时针旋转40度
- 朝向会改变角度:
计算转90度= -15-(-25)= 10度
每个度引起物体的度变化= 10/90 = 0.11
转40度= 40*0.11 = 4.4
新向角= -25-4.4 = -29.4
考虑右边角的变化也会影响朝向度:
-15 + 25 - (-15) / 90 * 40 = -32.78
最新rY = -29.4-(-17.78) = -19.33
- 当物体被平放时,它有15度的偏移,
- 如果angD < = 15:
- 偏移值= 0
- Xoffset = 60
- Yoffset = 15
- Aang_diff = bvalue_ang-avalue_ang
- Bang_diff = - valuue_ang -bvalue_ang
- angD + = offsetvalue
- cvalue_ang = angD-15
- valuue_ang -(aang_diff/-90)*angD)
- bvalue_ang = (bvalue_ang-(bang_diff/-90)*angD)
- valuue_ang2 = valuue_ang1 -(bvalue_ang1-bvalue_ang)
- Bvalue_ang2 = bvalue_ang1+(valuue_ang1 - valuue_ang)
- 其他:
- Xoffset = 60
- yoffset = 30
- 偏移值= 0
- Aang_diff = -bvalue_ang-avalue_ang
- Bang_diff = valuue_ang -bvalue_ang
- angD - = offsetvalue
- 如果angD > = 15:
- cvalue_ang = angD-15
- 其他:
- cvalue_ang = angD-0
- avalue_ang1 = (avalue_ang-(aang_diff/90)*angD)
- bvalue_ang = (bvalue_ang-(bang_diff/90)*angD)
- valuue_ang2 = valuue_ang1 +(bvalue_ang1-bvalue_ang)
- Bvalue_ang2 = bvalue_ang1-(avalue_ang1-avalue_ang)
- moverobotj (avalue_ang2 bvalue_ang2 0)
-
- target2 = robot.Pose()
- target2 = RelTool (target2, 0, 0, 0, rz = cvalue_ang)
- robot.MoveJ (target2)
- Avalue_rad = (avalue_ang2)*(math.pi/180)
- Bvalue_rad = (bvalue_ang2)*(math.pi/180)
- Arm_length = 220
- Math_x_offset = (math.sin(bvalue_rad)*arm_length)
- Math_y_offset = -(math.sin(avalue_rad)*arm_length)
- moverobot1 (math_x_offset + xoffset math_y_offset-yoffset 0)
6. I / O
6.1 国际扶轮 、 RO:使用RobkDK命令机器人。 RI (x, 0/1) 、 罗[ x, 0/1]控制机器人数字I/O (x = I/O数,0/1:0 =关,1 =开)
6.2 ROBOT I/O:使用RoboDK命令 机器人。robolink.INSTRUCTION_CALL_PROGRAM RunInstruction (' RO_OFF '), ' RO_OFF '是Robot中的程序名
7. 在机器人上运行 和加密 :
7.1 使用命令 RDK。 通过python代码在机器人上运行setRunMode(RUNMODE_RUN_ROBOT)。
7.2 为了确保用户不会更改python代码,请使用RoboDK的插件函数(//www.x7093.com/forum/Thread-encrypti...ython-prog)
- 保存 P ython代码 作为.py文件
- 下添加子文件夹 C: \ ROBODK \ pps
- 将.py文件放入子文件夹
- 选择 工具->插件->加载插件->应用程序加载器
- 程序将出现在RoboDK的工具栏中
- 结合命令' runmode_run_robot ',方便用户使用