1+ from pymycobot .ultraArm import ultraArm
2+ import serial
3+ import serial .tools .list_ports
4+
5+ # 被搬运的木块的坐标位置
6+ green_pos = [[74.6 , 167.55 , 120 ], [74.6 , 167.55 , 92.45 ], [74.6 , 167.55 , 52.45 ], [74.6 , 167.55 , 12.45 ]]
7+ red_pos = [[112.67 , 173.5 , 120 ], [112.67 , 173.5 , 92.45 ], [112.67 , 173.5 , 52.45 ], [112.67 , 173.5 , 12.45 ]]
8+ yellow_pos = [[150.92 , 167.61 , 120 ], [150.92 , 167.61 , 92.45 ], [150.92 , 167.61 , 52.45 ], [150.92 , 167.61 , 12.45 ]]
9+
10+ # 木块到达的坐标位置
11+ cube_pos_g = [[200 , - 75 , 120 ], [200 , - 75 , 15 ], [200 , - 75 , 55 ], [200 , - 75 , 95 ]]
12+ cube_pos_r = [[150.63 , - 75 , 15 ], [150.63 , - 75 , 55 ], [150.63 , - 75 , 95 ]]
13+ cube_pos_y = [[109.63 , - 75 , 15 ], [109.63 , - 75 , 55 ], [109.63 , - 75 , 95 ]]
14+
15+ # 被搬运的木块所在的方向
16+ block_high = [60 , 5 , 0 ]
17+
18+ # 木块到达的位置所在方向
19+ cube_high = [- 30 , 10 , 10 ]
20+
21+ # 获取串口列表
22+ plist = [
23+ str (x ).split (" - " )[0 ].strip () for x in serial .tools .list_ports .comports ()
24+ ]
25+
26+ # 连接串口
27+ ua = ultraArm (plist [0 ],115200 )
28+
29+ # ultraArm进行坐标运动/角度运动之前必须进行回零,否则无法获取到正确的角度/坐标
30+ ua .go_zero ()
31+ ua .sleep (0.5 )
32+
33+
34+ # Yellow
35+ # 搬运第一个木块
36+ # 移动到木块所在方向
37+ ua .set_angles (block_high , 50 )
38+ ua .sleep (0.5 )
39+
40+ ua .set_coords (yellow_pos [0 ], 50 )
41+ ua .sleep (1 )
42+
43+ # 到达木块所在位置
44+ ua .set_coords (yellow_pos [1 ], 50 )
45+ ua .sleep (1 )
46+ # 打开吸泵
47+ ua .set_gpio_state (0 )
48+ ua .sleep (0.5 )
49+
50+ # 移动到需要到达的位置上方
51+ ua .set_angles (cube_high , 50 )
52+ ua .sleep (0.5 )
53+
54+ # 下降到需要到达的位置
55+ ua .set_coords (cube_pos_y [0 ], 50 )
56+ ua .sleep (0.5 )
57+ # 关闭吸泵
58+ ua .set_gpio_state (1 )
59+ ua .sleep (0.5 )
60+
61+ # 移动到木块所在位置上方,一次搬运动作完成,后续搬运动作跟此次搬运动作一致
62+ ua .set_angles (cube_high , 50 )
63+ ua .sleep (0.5 )
64+
65+ #2
66+ ua .set_angles (block_high , 50 )
67+ ua .sleep (0.5 )
68+
69+ ua .set_coords (yellow_pos [0 ], 50 )
70+ ua .sleep (1 )
71+
72+ ua .set_coords (yellow_pos [2 ], 50 )
73+ ua .sleep (1 )
74+ ua .set_gpio_state (0 )
75+ ua .sleep (0.5 )
76+
77+ ua .set_angles (cube_high , 50 )
78+ ua .sleep (0.5 )
79+
80+ ua .set_coords (cube_pos_y [1 ], 50 )
81+ ua .sleep (0.5 )
82+ ua .set_gpio_state (1 )
83+ ua .sleep (0.5 )
84+
85+ ua .set_angles (cube_high , 50 )
86+ ua .sleep (0.5 )
87+
88+ # Red
89+ # 1
90+ ua .set_angles (block_high , 50 )
91+ ua .sleep (0.5 )
92+
93+ ua .set_coords (red_pos [0 ], 50 )
94+ ua .sleep (1 )
95+
96+ ua .set_coords (red_pos [1 ], 50 )
97+ ua .sleep (1 )
98+ ua .set_gpio_state (0 )
99+ ua .sleep (0.5 )
100+
101+ ua .set_angles (cube_high , 50 )
102+ ua .sleep (0.5 )
103+
104+ ua .set_coords (cube_pos_r [0 ], 50 )
105+ ua .sleep (0.5 )
106+ ua .set_gpio_state (1 )
107+ ua .sleep (0.5 )
108+
109+ ua .set_angles (cube_high , 50 )
110+ ua .sleep (0.5 )
111+
112+ #2
113+ ua .set_angles (block_high , 50 )
114+ ua .sleep (0.5 )
115+
116+ ua .set_coords (red_pos [0 ], 50 )
117+ ua .sleep (1 )
118+
119+ ua .set_coords (red_pos [2 ], 50 )
120+ ua .sleep (1 )
121+ ua .set_gpio_state (0 )
122+ ua .sleep (0.5 )
123+
124+ ua .set_angles (cube_high , 50 )
125+ ua .sleep (0.5 )
126+
127+ ua .set_coords (cube_pos_r [1 ], 50 )
128+ ua .sleep (0.5 )
129+ ua .set_gpio_state (1 )
130+ ua .sleep (0.5 )
131+
132+ ua .set_angles (cube_high , 50 )
133+ ua .sleep (0.5 )
134+
135+
136+ # Green
137+ # 1
138+ ua .set_angles (block_high , 50 )
139+ ua .sleep (0.5 )
140+
141+ ua .set_coords (green_pos [0 ], 50 )
142+ ua .sleep (1 )
143+
144+ ua .set_coords (green_pos [1 ], 50 )
145+ ua .sleep (1 )
146+ ua .set_gpio_state (0 )
147+ ua .sleep (0.5 )
148+
149+ ua .set_angles (cube_high , 50 )
150+ ua .sleep (0.5 )
151+
152+ ua .set_coords (cube_pos_g [0 ], 50 )
153+ ua .sleep (0.5 )
154+
155+ ua .set_coords (cube_pos_g [1 ], 50 )
156+ ua .sleep (0.5 )
157+ ua .set_gpio_state (1 )
158+ ua .sleep (0.5 )
159+
160+ ua .set_angles (cube_high , 50 )
161+ ua .sleep (0.5 )
162+
163+ #2
164+ ua .set_angles (block_high , 50 )
165+ ua .sleep (0.5 )
166+
167+ ua .set_coords (green_pos [0 ], 50 )
168+ ua .sleep (1 )
169+
170+ ua .set_coords (green_pos [2 ], 50 )
171+ ua .sleep (1 )
172+ ua .set_gpio_state (0 )
173+ ua .sleep (0.5 )
174+
175+ ua .set_angles (cube_high , 50 )
176+ ua .sleep (0.5 )
177+
178+ ua .set_coords (cube_pos_g [0 ], 50 )
179+ ua .sleep (0.5 )
180+
181+ ua .set_coords (cube_pos_g [2 ], 50 )
182+ ua .sleep (0.5 )
183+ ua .set_gpio_state (1 )
184+ ua .sleep (0.5 )
185+
186+ ua .set_angles (cube_high , 50 )
187+ ua .sleep (0.5 )
0 commit comments