睿尔曼机械臂提供了1个可持续读取机械臂状态的接口,UDP通信状态反馈接口。
该接口提供了json协议、API的读取,设置通信开启之后无需再进行设置即可以固定频率读取。
Python程序源码可从以下网盘地址获取(地址永久有效):
链接:https://pan.baidu.com/s/1enSvVr3wPKqKFBfIUkYP2w?pwd=noik
提取码:noik
UDP通信介绍:
UDP中文名用户数据协议,是工作在OSI(开放系统互连,Open Systems Interconnection)模型中传输层的协议。它使用IP作为底层协议,是为应用程序提供一种以最少的协议机制向其他程序发送消息的协议。其主要特点是无连接,不保证可靠传输和面向报文。RFC 768为IETF(互联网工程部,Internet Engineering Task Force)提供的UDP标准。
UDP在机械臂资料中的接口
Python API-设置主动上报
在设置接口中,共可传入5个参数,其中force_coordinate参数依据自身机械臂型号有无安装六维力传感器选择性传入,没有可不传。
示例如下:
from robotic_arm_package.robotic_arm import *
import sys
import socket
# 连接机械臂
robot = Arm(RM65, "192.168.1.18")
# 关闭主动上报接口
#ret = robot.Set_Realtime_Push(enable=True)
robot.Set_Realtime_Push(cycle=5,port=8089,enable=True,ip='192.168.1.100')#这个ip是电脑本地的ipv4设置的ip,端口号不改
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定到本地的特定端口上,例如5000
local_addr = ('192.168.1.100', 8089)
sock.bind(local_addr)
try:
while True:
# 接收数据
data, addr = sock.recvfrom(1024) # Buffer size is 1024 bytes
print(f"Received message: {data} from {addr}")
# 处理数据...
except KeyboardInterrupt:
print("Exiting...")
finally:
# 清理资源
sock.close()
# 断开连接
robot.RM_API_UnInit()
robot.Arm_Socket_Close()