RAS 545 · Robotic and Autonomous Systems Lab 2 · Arizona State University · Fall 2025
Two end-effector experiments (suction cup + gripper) automating a 4-block pick-and-place cycle with full forward and reverse passes using the
pydobotlibrary.
| Lab 2.1 — Suction Cup | Lab 2.2 — Gripper |
|---|---|
![]() |
![]() |
device.suck(True/False) |
device.grip(True/False) |
The Dobot Magician Lite (Serial: DT15-2311-1673) was programmed to move 4 labeled blocks (A–D) between two pallets using two different end effectors. Each script executes a forward pass (Pick → Drop) followed by a reverse pass (Drop → Pick), returning all blocks to their original positions.
Both scripts use a hover-descend-actuate-lift motion pattern with a configurable HOVER_Z offset to prevent collisions during transit.
.
├── lab2_1.py # Suction cup pick-and-place
├── lab2_2.py # Gripper pick-and-place
├── lab_2_vishal_RAS_experiment.pdf # Full lab report with results & analysis
└── README.md
Home → Hover above pick → Descend → Actuate end effector → Lift →
Hover above drop → Descend → Release → Lift → Home
All positions are defined as (X, Y, Z, R) in millimeters relative to the robot base frame.
Pick positions (Pallet 1):
| Block | X (mm) | Y (mm) | Z (mm) |
|---|---|---|---|
| A | 237.41 | −67.42 | −45.77 |
| B | 230.60 | −8.63 | −45.49 |
| C | 296.60 | −60.63 | −49.27 |
| D | 289.58 | −3.57 | −48.35 |
Drop positions (Pallet 2):
| Block | X (mm) | Y (mm) | Z (mm) |
|---|---|---|---|
| A | 222.19 | 75.39 | −46.31 |
| B | 219.04 | 135.19 | −46.46 |
| C | 281.51 | 79.77 | −46.59 |
| D | 279.33 | 137.88 | −49.13 |
| Parameter | Lab 2.1 (Suction) | Lab 2.2 (Gripper) |
|---|---|---|
| End effector | Suction cup | 3-finger rubber gripper |
| Speed | 200, 200 | 20, 20 |
Hover offset (HOVER_Z) |
40 mm | 40 mm |
| Dwell time | 1.0 s | 1.0 s |
| Motion mode | MOVJ_XYZ |
MOVJ_XYZ |
| Actuation API | device.suck() |
device.grip() |
| Criteria | Suction Cup | Gripper |
|---|---|---|
| Surface requirement | Smooth, flat, clean | Any surface |
| Mechanism | Vacuum adhesion | 3-finger mechanical grasp |
| Object weight limit | Low–medium | Medium–high |
| Reliability on plastic blocks | Good | Better |
| Industrial use case | Electronics, packaging | Varied shapes, warehouse |
Conclusion: The gripper proved more reliable for the plastic foam blocks used in this lab. The suction cup required precise Z-calibration and smooth block surfaces to maintain consistent vacuum.
pip install pydobotEnsure the Dobot USB driver is installed and no other application (e.g. DobotStudio) is holding the COM port.
- Robot: Dobot Magician Lite
- Connection: USB → COM5 (update
PORTconstant if different) - End effectors: Suction cup (Lab 2.1), Pneumatic gripper (Lab 2.2)
# Lab 2.1 — Suction cup
python lab2_1.py
# Lab 2.2 — Gripper
python lab2_2.pyThe robot will home first, then execute the full forward + reverse block sequence automatically. Press Ctrl+C to interrupt safely — the finally block closes the serial connection cleanly.
- Time delays (
time.sleep()) after actuating the end effector are critical — without them the suction cup releases before the block is lifted - Varying
HOVER_Zdirectly controls cycle time; too low risks collision, too high wastes time - Z-values must be individually calibrated per block position — surface height variation of even 3–4 mm causes missed picks
- Gripper orientation (rotation
R) matters for consistent block grasps — blocks must be square to the gripper jaw axis
- Course: RAS 545 — Robotic and Autonomous Systems Lab
- Instructor: Prof. Mostafa Yourdkhani
- Lab Charge: Mohammad Nasr · Rajesh S Aouti
- University: Arizona State University, Tempe AZ
- Semester: Fall 2025
- Grade: 10 / 10

