API 机械臂功能

睿尔曼超轻量仿人机械臂--二次开发调用机械臂存储程序

Forrest 2023-11-23

软硬件版本说明

软件版本:

       机械臂控制器:V1.2.12

      JSON协议:V3.5.6

硬件版本:

      机械臂型号:RM65-B I(本文中内容不适用与RM65-B系列机械臂)

由于机械臂相关软件版本不定期更新,如果你使用的软件接口或协议与本文有出入,请联系官方技术人员及时更新。

一、功能介绍

       此功能可应用于机械臂简单运动或集成末端夹爪、灵巧手、升降机构等。通过此功能可大大降低使用人员动作调试时间。

      此功能仅支持搭载有第三代控制器的机械臂使用,可用机械臂型号为RM65-B I等等。

二、WEB示教器程序及点位存储

     WEB示教器支持多系统多环境运行,不受系统限制。

1.连接机械臂

        通过网线连接上位机及机械臂之后,修改上位机IPV4网段为192.138.1.X,随后在浏览器网址输入192.168.1.18。此处用户名与密码分别为user、123,最后点击登录即可。进入示教器之后如下图2所示

2.数据管理界面

 

        在示教器左侧菜单栏中点击在线编程->数据管理,在此界面可查看已保存的轨迹、点位、编程文件;

 

3.数据的保存

       进入在线编程->图形化编程界面,在此界面可添加机械臂点位及示教器程序。

      ①点位的添加

      在在线编程界面点击“新增路点”按钮,此时示教器会跳转至机械臂示教界面,在此界面可对机械臂动作进行示教,最终进行保存,保存与取消按钮如下图所示;

 

    通过示教按钮及位姿编辑可控制机械臂运动,找到需要的机械臂点位。

 

       在点位的保存时,需填写保存点位的名称,名称仅支持字母与数字的组合表示,最多为10个字母。

       选中在线编程菜单栏中数据管理界面,在此界面打开“点位管理”可以找到上一步骤中保存完成的点位,且在此处也可编辑已经保存完成的轨迹,如下图所示:

 

      按照此步骤,可以根据机械臂运动实际场景进行添加点位,添加完成之后可以在图形化编程界面调用点位,控制机械臂运动。

 

     根据机械臂使用手册中所提到的图形化编程方法,选择“运动”菜单栏中‘运动’图块,将图块最后方的路点更改为上一步骤中添加完成的点位。

 

   按照上述方法,添加多个点位及多个运动指令形成固定的程序。

 

       添加完成机械臂运动点位之后需要保存在线编程程序至机械臂控制器端,保存方法为在“在线编程”界面将保存编程文件选项选中,并点击“开始”按钮,

 

      点击“开始”按钮之后,界面会弹出保存程序窗口,在此处需填写程序名称及程序编号,之后点击“开始”按钮即可。

      WEB示教器添加在线编程文件到此结束,后续可以使用JSON指令或API调用此程序,控制机械臂。

三、JSON指令控制机械臂执行机械臂内部程序

       JSON指令执行机械臂程序,可使用网络调试助手或高级语言进行。这两种方法在往期文章中均有介绍,此处仅做功能实现讲解。

       在机械臂资料中找到《睿尔曼机械臂JSON协议文档V3.5.6》文档,找到‘在线编程存储列表(I系列)’部分内容,通过此部分指令可以查询机械臂内部存储的程序列表和执行指定编号轨迹。

1.查询在线编程程序列表

2.开始运行指定编号轨迹

3.使用TCP调试助手发送指令

查询指令:通过对指令说明的阅读,可以通过查询所有程序指令读取
{"command":"get_program_trajectory_list"}
通过查询接口发送上述指令之后,会接收到如下指令:
{"command":"get_program_trajectory_list","list":[{"id":1,"size":10483,"speed":21,"trajectory_name":"1_chouti.txt"}],"page_num":0,"page_size":1,"total_size":1,"vague_search":""}
上述返回指令中,返回了1个id为1的机械臂程序,名称为1_chouti.txt。
执行指令:
{"command":"set_program_id_start","id":1,"speed":20}
通过上述指令可控制机械臂执行id为“1”的机械臂程序,运行速度设置为20。此时机械臂在接收到指令之后会以百分之20的速度执行程序。

四、基于Python发送JSON指令控制机械臂执行内部程序

       首先使用Python语言中的Socket库创建TCP通信中的客户端,连接至机械臂的服务器,通过发送JSON指令的方式控制机械臂运动。

import socket

import time
import json
#读取全部保存列表
point1 = '{"command":"get_program_trajectory_list"}\r\n'
#执行程序
Gripping = '{"command":"set_program_id_start","id":1,"speed":20}\r\n'
client1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host1 = '192.168.1.18'
port1 = 8080
client1.connect((host1, port1))
client1.send(point1.encode('utf-8'))
data1 = client1.recv(1024).decode()
print(data1)
client1.send(Gripping.encode('utf-8'))
data1 = client1.recv(1024).decode()
time.sleep(0.5)
client1.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

附件下载

0 条评论

关于作者

Forrest

这家伙很懒,什么也没写!

选择发帖板块
选择发帖板块