Python stacking and transportation
1 Environment construction
1.1 Install Python
- Install python and the required libraries
- Please refer to the chapter Python Environment Construction
1.2 Install myBlockly
2 Getting Started
2.1 How to read the angle and coordinate of the mechanical arm
Double click to open the software
Open the tool panel
Select the corresponding machine type and serial port number, and open the serial port
<<<<<<< HEAD
Zero the mechanical arm
After returning to zero, control the mechanical arm to move by moving the panel quickly
使机械臂回零
回零结束后,通过快速移动面板,控制机械臂进行运动
482c782c42e70f0b2e44445345f6461e795f9189
Control the mechanical arm to reach the required position, and record the angle/ coordinate parameters at this time
- Fill the recorded angle/coordinate parameters into the api and input the speed parameters
2.2 Example
- The following is a simple example of palletizing and moving. The wood block used is 40 X 40. You can copy the code to use or modify it
from pymycobot.ultraArmP340 import ultraArmP340
# Coordinate position of the wood block to be moved
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]]
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]]
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]]
# Coordinate position of wood block
cube_pos_g = [[200, -75, 120], [200, -75, 15], [200, -75, 55], [200, -75, 95]]
cube_pos_r = [[150.63, -75, 15], [150.63, -75, 55], [150.63, -75, 95]]
cube_pos_y = [[109.63, -75, 15], [109.63, -75, 55], [109.63, -75, 95]]
# The direction of the wood block to be moved
block_high = [60, 5, 0]
# The direction of the wood block
cube_high = [-30, 10, 10]
<<<<<<< HEAD
# Connecting serial ports
ua = ultraArmP340('COM16','115200')
# ultraArmP340 must return to zero before performing coordinate movement and angle movement, otherwise it cannot obtain correct angle/coordinates
=======
# 连接串口
ua = ultraArmP340('COM16','115200')
# ultraArmP340进行坐标运动/角度运动之前必须进行回零,否则无法获取到正确的角度/坐标
>>>>>>> 482c782c42e70f0b2e44445345f6461e795f9189
ua.go_zero()
ua.sleep(0.5)
# Yellow
# Handling the first wood block
# Move to the direction of the wood block
ua.set_angles(block_high, 50)
ua.sleep(0.5)
ua.set_coords(yellow_pos[0], 50)
ua.sleep(1)
# Reach the location of the wood block
ua.set_coords(yellow_pos[1], 50)
ua.sleep(1)
# Open suction pump
ua.set_gpio_state(0)
ua.sleep(0.5)
# Move to the position you need to reach
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
# Descend to the required position
ua.set_coords(cube_pos_y[0], 50)
ua.sleep(0.5)
# Close the suction pump
ua.set_gpio_state(1)
ua.sleep(0.5)
# Move to the upper part of the wood block, and the first move is completed. The subsequent move is the same as this move
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
#2
ua.set_angles(block_high, 50)
ua.sleep(0.5)
ua.set_coords(yellow_pos[0], 50)
ua.sleep(1)
ua.set_coords(yellow_pos[2], 50)
ua.sleep(1)
ua.set_gpio_state(0)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_y[1], 50)
ua.sleep(0.5)
ua.set_gpio_state(1)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
# Red
# 1
ua.set_angles(block_high, 50)
ua.sleep(0.5)
ua.set_coords(red_pos[0], 50)
ua.sleep(1)
ua.set_coords(red_pos[1], 50)
ua.sleep(1)
ua.set_gpio_state(0)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_r[0], 50)
ua.sleep(0.5)
ua.set_gpio_state(1)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
#2
ua.set_angles(block_high, 50)
ua.sleep(0.5)
ua.set_coords(red_pos[0], 50)
ua.sleep(1)
ua.set_coords(red_pos[2], 50)
ua.sleep(1)
ua.set_gpio_state(0)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_r[1], 50)
ua.sleep(0.5)
ua.set_gpio_state(1)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
# Green
# 1
ua.set_angles(block_high, 50)
ua.sleep(0.5)
ua.set_coords(green_pos[0], 50)
ua.sleep(1)
ua.set_coords(green_pos[1], 50)
ua.sleep(1)
ua.set_gpio_state(0)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_g[0], 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_g[1], 50)
ua.sleep(0.5)
ua.set_gpio_state(1)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
#2
ua.set_angles(block_high, 50)
ua.sleep(0.5)
ua.set_coords(green_pos[0], 50)
ua.sleep(1)
ua.set_coords(green_pos[2], 50)
ua.sleep(1)
ua.set_gpio_state(0)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_g[0], 50)
ua.sleep(0.5)
ua.set_coords(cube_pos_g[2], 50)
ua.sleep(0.5)
ua.set_gpio_state(1)
ua.sleep(0.5)
ua.set_angles(cube_high, 50)
ua.sleep(0.5)
2.3 Actual operation effect
There will be an action video here