根据我前边的文章,重点是这个九点标定文章,当标定完就可以将YOLOv5或者YOLOv8获取到的目标中心的像素坐标通过矩阵转换为机械臂的移动指令。
关键是如何把这个移动指令发送给Delta机械臂呢,我使用的是通过python串口为arduino板子进行通讯,正好可以把YOLO和机械臂控制联立起来,废话不多说,直接看代码吧。不懂的可以发评论大家一起讨论
#Windows OS
#install: pip install pyserial
import serial
import time
ser = serial.Serial('COM19',115200, timeout = 1) # open serial port COM是arduino板子的端口
time.sleep(2)
print(ser.readline())
gcodes = []
gcodes.append('G28') # 回到原点
gcodes.append('G01 Z-320')
gcodes.append('G01 X-100')
gcodes.append('G01 Z-350')
gcodes.append('G01 Z-320')
gcodes.append('G01 X100')
gcodes.append('G01 Z-350')
gcodes.append('G01 Z-320')
gcodes.append('G01 X100 Y100')
gcodes.append('G01 Z-350')
gcodes.append('G01 X-100 Y-100 Z-320')
gcodes.append('G01 Z-350')
gcodes.append('G28')
for gcode in gcodes:
print(gcode)
gcodeLine = gcode + '\n'
ser.write(gcodeLine.encode())
while 1:
response = ser.readline()
print(response)
if (response.find('Ok'.encode()) > -1):
break
ser.close()