线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
初学者连接到发那科机器人
# 1
你好,
我发布了一个版本来展示我是如何与RoboDK一起工作的机器人,这个版本是最终版本。并将有助于那些谁试图使用RoboDK连接机器人使用在线编程,特别是对初学者。


ROBODK - FANUC ROBOT(R-30iB控制器)连接:

PC和机器人设置
1.将以太网线插入R-30ib控制器(位于门的右下方)
2.设置IP为PC和Robot(在同一网段)
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)吗
MENU->STATUS->VERSIONID->要检查的配置
2.$Karel_ENB必须设置为1吗
MENU-> system_variables检查,如果0设置为1并重新启动
3.上传FANUC的ROBODK DRIVERS到机器人
3.1司机://m.sinclairbody.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 Pendant
-菜单->FILE->FILE->UTIL->SET DEVICE->USB on TP->ENTER
-选择“*”显示所有文件
-选择所有驱动程序和LOAD->YES to Robot
4.最初的机器人司机(根据RoboDK网站://m.sinclairbody.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(教学挂件上的按钮)
选择Shift-Reset和Shift-Forward来启动程序。
DEADMAN按钮应该一直被按下
p。完成设置后,“忙”和“运行”信号应该由黄色变为绿色
B。PC -
1.打开RoboDK->file->打开在线库选择机器人模型。
2.文件->打开->下载的机2022世界杯国家队名单器人文件
3.连接机器人:
3.1在树的机器人名称上右键单击鼠标,并选择connect to robot
3.2输入刚刚设置的IP地址(例如192.168.1.10)
3.3默认端口2000
3.4如果设置正确,将得到一个绿色信号“就绪”。
4.添加python程序:
4.1程序->添加python程序
4.2右键点击' Prog1 ' ->edit python script开始python编程,有三种方法来运行python代码:
-编辑器中的F5:执行python代码并显示消息窗口(仅在此模式下)。当窗口打开时,在机器人上运行不工作
-右键单击“Prog1”->运行python脚本:模拟python代码并在RoboDK屏幕上绘制轨迹
-右键单击“Prog1”->在机器人上运行:执行python代码到机器人

示教器:
1. 手动和自动:
1.1 在自动模式下,不需要按DEADMAN来运行程序:
- 转R-30ib至自动档
- 转动左上角的开关 教Pendant关闭
- 按年代 TP的HIFT+RESET使FAULT信号消失
- 选择程序 TP (SELECT->程序名(RDK_S3.PC)->ENTER)
- 按下R-30ib的CYCLE START,绿色信号亮,TP的“忙”和“运行”信号由黄变绿
- 如果不行,试试 FCTN->ABORT ALL->返回选择程序步骤

1.2 手动运行程序:
- 把R-30 ib, T1
- 将TP的左上角开关置于“ON”位置
- 选择项目 (SELECT->程序名(RDKS_3.PC)->ENTER)
- 新闻 DEADMAN(一直在T1/T2模式下)
- 按SHIFT+RESET使FAULT消失
- SHIFT+FWD运行所选程序
- 如果不行,试试 FCTN->ABORT ALL->返回选择程序步骤
1.3 手动移动机器人
- 按DEADMAN(一直按)
- SHIFT +重置
- 新闻 adman +SHIFT and (X,Y,Z,rX,rY, rZ) 移动机器人
2. 改变机器人速度:
2.1 按TP右下角的“+%”、“-%”改变速度,速度将显示在TP屏幕右上方
3. 回到零点位置:
- FCTN - >中止
- 选择- >家- >输入
- 运行程序(如上所述)
- 选择- > RDRIVERS_3 - >输入
- 运行程序(如上所述)
I / O -
1. 菜单- > I / O
2. 类型(F1) 选择I/O类型: 数字i,机器人i
3. DI在s下是不变的 模拟=间 U ( 非模拟),如果模拟需要,将U改为S
4. 在使用FANUC机器人的I/O之前,需要设置参数:
- 配置(F2)
- CRMA15/16输出:[109-120]Rack = 48, SLOT=1, START =1(正常)
- PLC) [1-100](取决于需要),Rack = 92, SLOT=1 START =1(正常)
- 需要重新启动 状态=活跃
5. 数字I / O:
5.1 CRMA15/16:
- 连接器位于R-30ib门底部,线材可从网上或代理商处购买
- 线路:
做的事:(见附件)
迪::(见附件)

5.2 PLC -
需要了解PLC与机器人之间的协议设置
6. 机器人I/O (EE接口):
(由于 torayeff//m.sinclairbody.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. joint ()
2. 移动机器人( X=前/后,Y=左/右,Z=上/下)长度(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=第四轴(左/右), rY=向前/向后,rZ我将使用RELTOOL,这里不使用,值将始终为0)
Def moverobotj(a_value, b_value, 0):
target = robot.Pose()
xyzabc = Pose_2_Fanuc(目标)
X yzabc = 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 (//m.sinclairbody.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:
- Offsetvalue = 0
- Xoffset = 60
- Yoffset = 15
- Aang_diff = bvalue_ang-avalue_ang
- Bang_diff = - value_ang-bvalue_ang
- angD + = offsetvalue
- cvalue_ang = angD-15
- avalue_ang1 = (avalue_ang-(aang_diff/-90)*angD)
- bvalue_ang1 = (bvalue_ang-(bang_diff/-90)*angD)
- Avalue_ang2 = avalue_ang1-(bvalue_ang1-bvalue_ang)
- Bvalue_ang2 = bvalue_ang1+(avalue_ang1-avalue_ang)
- 其他:
- Xoffset = 60
- yoffset = 30
- Offsetvalue = 0
- Aang_diff = -bvalue_ang-avalue_ang
- Bang_diff = value_ang-bvalue_ang
- angD - = offsetvalue
- 如果angD > = 15:
- cvalue_ang = angD-15
- 其他:
- cvalue_ang = angD-0
- avalue_ang1 = (avalue_ang-(aang_diff/90)*angD)
- bvalue_ang1 = (bvalue_ang-(bang_diff/90)*angD)
- Avalue_ang2 = avalue_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 =OFF, 1 = ON)
6.2 ROBOT I/O:使用RoboDK命令 机器人。robolink.INSTRUCTION_CALL_PROGRAM RunInstruction (' RO_OFF '), ' RO_OFF '是Robot中的程序名

7. 在机器人上运行 和加密
7.1 使用命令 RDK。 setRunMode(RUNMODE_RUN_ROBOT)通过python代码在机器人上运行。
7.2 为了确保用户不会更改python代码,请使用RoboDK (//m.sinclairbody.com/forum/Thread-encrypti...ython-prog
- 保存 P ython代码 作为.py文件
- 添加子文件夹 C: \ ROBODK \ pps
- 将.py文件放到子文件夹中
- 选择 tools->Plug-Ins->Load Plug-In->App Loader
- 程序将出现在RoboDK的工具栏中
- 为了方便用户使用,可以将' runmode_run_robot '命令组合起来
# 2
不错的工作!谢谢你,Timothy。




浏览此主题的用户:
1客人(年代)