pydobotlab
Python control for the Dobot Magician robot arm, with an optional desktop
control panel and a simulator for working without hardware. Communicates
over serial using pyserial; no vendor DLL or DobotStudio installation is required.
Documentation & homepage · API reference · GitHub · Report an issue
Installation
Requires Python 3.10 or newer. Install in a virtual environment:
python -m pip install pydobotlab
For the optional PySide6 desktop panel:
python -m pip install "pydobotlab[gui]"
pydobotlab-panel
The base library requires only pyserial; Qt is installed only with the
gui extra. See the installation guide
for virtual environments, Windows drivers, and Linux serial-port permissions.
The project has been used on Ubuntu and Windows; macOS hardware has not been verified.
Quick start
With the arm connected and its workspace clear:
from pydobotlab import Magician, PTPMode
with Magician() as robot: # auto-discover; or specify "/dev/ttyUSB0" / "COM3"
robot.clear_alarm()
robot.set_home()
robot.move_to(220, 0, 50, mode=PTPMode.MOVJ_XYZ)
pose = robot.get_pose()
print(pose.x, pose.y, pose.z, pose.joints)
Dobot is also available as an alias for Magician. The documented DobotLab
method names and parameters are preserved for existing scripts and teaching material.
Try it without hardware
pydobotlab-panel --simulator
Or use the simulator from Python:
from pydobotlab import Magician
from pydobotlab.simulator import install_simulator, stop_all
install_simulator(arms=1)
try:
with Magician("/dev/sim0", via_broker=False) as robot:
robot.move_to(220, 0, 50)
print(robot.get_pose())
finally:
stop_all()
The simulator supports offline examples and tests. It approximates motion and firmware behavior; it does not validate a real robot's trajectory.
Features and examples
- Cartesian and joint motion, jogging, homing, speed settings, and continuous paths.
- Suction cup, gripper, laser, digital I/O, sensors, and conveyor commands.
- Structured alarms, motion-failure exceptions, and live pose streaming.
- Firmware queue control and
with robot.batch()for accumulating commands. - Multiple robot connections and a local broker for sharing a port between the GUI and scripts.
Start with pick and place, smiley drawing, or two arms with live panels. The user guide covers the API, control panel, broker, and wire protocol.
Development
From a local checkout, including before the first PyPI release:
python -m pip install -e ".[dev,gui,docs]"
python -m pytest --timeout=30
ruff check .
ruff format --check .
mkdocs serve
See contributor guidance and the publishing guide.
License
MIT. Maintained by Tal Eylon, taleylon1@gmail.com.
Metadata
Release files for pydobotlab 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydobotlab-0.1.0.tar.gz | 120.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydobotlab-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 182.5 kB
Release files / pydobotlab-0.1.0.tar.gz
| Download URL | pydobotlab-0.1.0.tar.gz |
|---|---|
| Size | 120.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
637dbfd655bcfdfdef0e88814bc577771f6973fae79ddb6b01fbd1b8faeb3984
|
|
BLAKE2b-256 checksum How to use checksums |
7b51b056ea926f5e4c9c6bbfd9487c4c2678c7f8808951c50a134f408ab43153
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / pydobotlab-0.1.0-py3-none-any.whl
| Download URL | pydobotlab-0.1.0-py3-none-any.whl |
|---|---|
| Size | 61.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c5e476e40a802822a58ce3b8d943bd2ce977121326530c4045db9d3f5946e68d
|
|
BLAKE2b-256 checksum How to use checksums |
de7c479566b5ae79dfd0ade904f5d7981af78e31317f4cba2d49f475769cd1d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency log