一年前,包括github上都没有使用python控制deltx机械臂的方法,主要实现的功能是自动跟随目标,虽然效果比较差,自己做了一个月,废了很大劲终于做出来了,虽然因为是小白所以废了很大劲,哈哈哈。
需要的硬件,自然是机械臂和深度相机。
实现的功能如下
刚才看了一眼代码,想直接上传的,但是因为大家使用的深度相机可能不一样所以就不上传整体的代码了
if z >200:
print("识别到了背景!!!")
pass
if z ==0:
print("未能识别深度信息!!!")
pass
if z<200 and z!=0:
# print('camera_coordinate: ', camera_coordinate)
# print("执行前参数获取成功!!!")
# print("\033[1;32m 深度信息获取成功!!!\033[0m")
z = z+238
if flag == 1:
print("\033[1;34m 第一次执行G代码:\033[0m")
print("X:", x, "Y:", y, "Z:", z)
m = Motion(x, y, z)
m.position()
content = m.transform()
gcode = f"G01 X{-content[0]} Y{content[1]} Z{-280} F500"
print(gcode)
gcodeLine = gcode + '\n'
ser.write(gcodeLine.encode())
flag = flag + 1
else:
print( \
"\033[1;31m 盛水\033[0m", f"第{flag}次执行程序")
m = Motion(x, y, z)
m.position(content[0], content[1])
content = m.transform()
gcode = (f"G01 X{-content[0]} Y{content[1]} Z{-280}")
print("\033[1;30m G_CODE执行!\033[0m", f"G01 X{content[0]} Y{content[1]} Z{-z} F500")
gcodeLine = gcode + '\n'
ser.write(gcodeLine.encode())
print("\033[1;34m 执行结束!!!\033[0m", flag)
flag = flag + 1
print("\033[1;33m 循环\033[0m", sign)
sign = sign + 1
虽然说是使用python控制,不过仍然需要一些软件来辅助,比如你要知道你的机械臂当时连接的端口号。
可以去Δ的官网下载这么一个东西
等你将delta机械臂连接好之后,找到端口号。类似于com3之类的东西.....
这个控制方法,甚至说不上是控制,只是简单的追踪,后期想加上kalman滤波器,后来懒得搞了,反正kalman的控制方法加进去也不难