2023年09月13日 17:25:18 来源:玉环捷众机床有限公司 >> 进入该公司展台 阅读量:71
要了解六轴机械手编程,我们首先要知道什么是六轴机械手,并且六轴机械手的功能是什么,以及机械手的编程会用到哪些编程语言,类似机器人编程中的编程语言有BASIC/Pascal;工业机器人编程语言有LISP;硬件描述语言由HDLs、Assembly、MATLAB、C#.NET、Java、Python、C/C++等。通过这些语言的编程才有六轴机械手的精准运行和精确定位,并实现我们所需要的功能和应用。
六轴机械手是具有6个自由度的机械手,也是有6个伺服电机的机械手。六轴机械手是利用x、y、z轴的旋转和移动进行操作的机械手。机械手是机器人技术领域中得到泛实际应用的自动化机械装置,在工业制造、医学治疗、军事、半导体制造以及太空探索等领域都能见到它的身影。尽管它们的形态各有不同,但它们都有一个共同的特点,就是能够接受指令,精确地定位到三维(或二维)空间上的某一点进行作业。
六轴机械手功能和作用:
六轴工业机械手拥有响应时间短,动作迅速,速度快,机械手在运转过程中不停顿,不休息,精确度高,质量受影响较小,因此保证了产品的质量,同时能提高自动化生产效率。使用六轴工业机器人可以降低人工成本,减少原料的浪费,在降低成本更明显。
六轴机械手可以通过修改程序以适应不同工件的生产,缩短产品改型换代的周期及应用设备的投资。代替人工在高危、有害等环境作业,把个人从各种恶劣环境中解放出来。
最近一直在研究六轴机械手的算法,整理出了如下几个计算六轴机械手正解和逆解的关键点:
01_机器人坐标系和关节的说明
02_算法坐标系的建立
03_D-H参数表的建立
04_FK(正解)算法
05_Matlab辅助计算FK(正解)
06_IK(逆解)算法
07_Matlab辅助计算IK(逆解)
六轴机械手编程与代码:
六轴机械手编程为使机械手完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种,示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现,可以通过示教盒示教和导引式示教两种途径实现。由于示教方式实用性强,操作简便,因此大部分机器人都采用这种方式。离线编程方法是利用计算机图形学成果,借助图形处理工具建立几何模型,通过一些规划算法来获取作业规划轨迹。与示教编程不同,离线编程不与机器人发生关系,在编程过程中机器人可以照常工作。
编码方面配置:
软件配置:机械手软件;网络配置:Tcp通信,IP地址及端口设置;硬件配置:PC机,机械手,机械手供电器等。
编写软件代码:
1、初始化
Function MainInitPro
Reset
If Motor = Off Then
Motor On
SLock 1, 2, 3, 4, 5, 6
EndIf
Power High
Counts = 0
Accel 60, 60
Speed 10
AccelS 1000
SpeedS 1000
' Go P1
Fend
2、网络配置
Function NetOpen
NetSts = ChkNet(202)
If (NetSts < 0) Then
CloseNet #202
Wait 0.5
SetNet #202, "192.168.0.1", 2002, CRLF, NONE, 0 '配置端口号,ip地址
OpenNet #202 As Server
WaitNet #202
Print "配置完成!"
EndIf
Fend
3、扫描端口
Function ScanConnNet
OnErr GoTo errhandler
Do
NetSts = ChkNet(202)
If (NetSts > 0) Then
Input #202, RecvString$ '从202端口获取输入,并赋值到变量RecvString$
ParseStr RecvString$, RecvStr$(), "#"
ParseStr RecvString$, RecvStr$(), " "
Select RecvStr$(0)
Case "X"
Move CurPos +X(Val(RecvStr$(1)))
Case "-X"
Move CurPos -X(Val(RecvStr$(1)))
Case "RobotRun"
CX(P100) = Val(RecvStr$(1))
CY(P100) = Val(RecvStr$(2))
CZ(P100) = Val(RecvStr$(3))
CU(P100) = Val(RecvStr$(4))
CV(P100) = Val(RecvStr$(5))
CW(P100) = Val(RecvStr$(6))
Go LJM(P100)
'发送数据到202端口
Print #202, "#GoToPointok"
Send
ElseIf NetSts < 0 Then
Call NetOpen
ElseIf NetSts = 0 Then
EndIf
Print #202, "#RobotPos" + "," + Str$(CX(CurPos)) + "," + Str$(CY(CurPos)) + "," + Str$(CZ(CurPos)) + "," + Str$(CU(CurPos)) + "," + Str$(CV(CurPos)) + "," + Str$(CW(CurPos)) + "#"
Wait 0.2
Loop
errHandler:
RecvString$ = ""
EResume Next
Fend
通过这篇文章我们可以大致了解到六轴机械手编程方面的知识,虽然有些知识点、代码之类的比较专业性,但是作为六轴机械手的生产厂家,我们也是义无反顾地需要去了解、学习和掌握的。六轴机械手编程是目前自动化机械手在轴数方面达到较高水平的机械手,所以能够对六轴机械手进行编程运用的,基本上对六轴以下的机械手编程方面的知识已经掌握的非常熟练才行。