机械臂的示教实现设置一系列的动作后,让机械臂跟着设置的动作执行连续动作,实现复现。list可以存储数据,并读取调用数据,可以用它实现机械臂位置的保存和读取。
首先,对list进行声明,分别用来表示x,y,z的坐标值
self.text_pred1_x_list = []
self.text_pred1_y_list = []
self.text_pred1_z_list = []
控制机械臂到达位置点后,保存当前位置。如果采用手动输入进行控制位置,要先对上位机文本框进行定义,我采用的是点击添加示教就可以对输入数据进行保存,并添加一行文本框,用来添加第二个动作,以此类推,设置最多20步。
首先,声明self.i = 0,然后定义添加示教函数
def add(self, els=None):
if self.i<20:
y1 = 50 * (self.i + 1)
self.text_pred1_x = Text(self.win, width=10, height=2, bg='white', relief='solid', borderwidth=1)
self.text_pred1_x.place(x=10, y=y1)
self.text_pred1_y = Text(self.win, width=10, height=2, bg='white', relief='solid', borderwidth=1)
self.text_pred1_y.place(x=100, y=y1)
self.text_pred1_z = Text(self.win, width=10, height=2, bg='white', relief='solid', borderwidth=1)
self.text_pred1_z.place(x=190, y=y1)
self.i +=1
return(self.i)
els
print("超过20步了")
接着,定义保存数据函数对输入的数值进行保存
def save(self):
self.text_pred1_x_list.append(self.text_pred1_x.get("1.0", "end"))
self.text_pred1_y_list.append(self.text_pred1_y.get("1.0", "end"))
self.text_pred1_z_list.append(self.text_pred1_z.get("1.0", "end"))
调用保存的数据、读取、控制,实现示教功能
def load(self):
self.save()
for ii,x_ in enumerate(self.text_pred1_x_list):
print(self.text_pred1_x_list[ii])
print(self.text_pred1_y_list[ii])
print(self.text_pred1_z_list[ii])
self.arm.set_tool_pose(self.text_pred1_x_list[ii],self.text_pred1_y_list[ii],
self.text_pred1_z_list[ii])
time.sleep(2)
如果不使用数据手动输入方式进行控制,而是控制机械臂到达所需位置之后,再进行添加示教,那么在对机械臂坐标进行位置控制时要返回x,y,z的坐标值,点击添加后读取坐标值,调取list值,实现示教功能。self.x,self.y,self.z分别是返回的坐标值
def add(self, els=None):
self.text_pred1_x_list.append(self.x)
self.text_pred1_y_list.append(self.y)
self.text_pred1_z_list.append(self.z)
def load(self):
self.add()
for ii, x_ in enumerate(self.text_pred1_x_list):
x = self.text_pred1_x_list[ii]
y = self.text_pred1_y_list[ii]
z = self.text_pred1_z_list[ii]
self.bus_servo_all(x,y,z,500)
time.sleep(1)
版权声明:本文为qq_42719217原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。