Skip to main content

pydobotplusplus

An (even more) extended Python library for controlling the Dobot Magician.

Installation

Install the driver from Silicon Labs.

Run:

pip install pydobotpp

Example

from serial.tools import list_ports
from pydobotpp import Dobot, CustomPosition

available_ports = list_ports.comports()
print(f'available ports: {[x.device for x in available_ports]}')
port = available_ports[2].device

device = Dobot(port=port)

# Create a custom position
pos1 = CustomPosition(x=200, y=50, z=50)

# Move using direct coordinates
device.move_to(x=200, y=50, z=50)

# Move using custom position
device.move_to(position=pos1)

# Control the conveyor belt
device.conveyor_belt(speed=0.5, direction=1)
device.conveyor_belt_distance(speed_mm_per_sec=50, distance_mm=200, direction=1)

device.close()

Methods

  • Dobot(port, verbose=False) Creates an instance of Dobot connected to the given serial port.

    • port: string with name of serial port to connect
    • verbose: bool will print to console all serial communications
  • .wait_for_cmd(cmd_id) Waits for the dobot's command queue to finish the cmd_id command.

    • cmd_id: The return id of action commands (.home(), .suck(enable), .grip(enable), etc...)
  • .home() Sends a homing command to the robot, to reset the angle position of the robot's base motor.

  • .get_pose() Returns the current pose of the Dobot, as a Pose named tuple (position and joints).

    • position: Position with (x, y, z, r) coordinates
    • joints: Joints with (j1, j2, j3, j4) angles
  • .move_to(x=None, y=None, z=None, r=0, wait=True, mode=None, position=None) Queues a translation for the Dobot to the given coordinates or a Position object, keeps any unspecified parameters the same.

    • x: float x cartesian coordinate to move
    • y: float y cartesian coordinate to move
    • z: float z cartesian coordinate to move
    • r: float r effector rotation
    • wait: bool waits until the command has been executed before returning to the process - DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING
    • mode: MODE_PTP movement mode (default is MODE_PTP.MOVJ_XYZ) - DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING
    • position: Position object with (x, y, z, r) coordinates
  • .move_rel(x=0, y=0, z=0, r=0, wait=True) Moves the Dobot relative to its current position, keeps any unspecified parameters the same.

    • x: float relative x coordinate
    • y: float relative y coordinate
    • z: float relative z coordinate
    • r: float relative r rotation
    • wait: bool waits until the command has been executed before returning to the process
  • .speed(velocity, acceleration) Changes the velocity and acceleration at which the Dobot moves to future coordinates.

    • velocity: float desired translation velocity
    • acceleration: float desired translation acceleration
  • .suck(enable) Enables or disables suction.

    • enable: bool enables/disables suction
  • .grip(enable) Enables or disables the gripper.

    • enable: bool enables/disables gripper
  • .get_alarms() Returns a set of current alarms.

    • returns: set of Alarm enums
  • .clear_alarms() Clears all current alarms.

  • .wait(ms) Sends a wait command to the robot

    • ms: The time to wait in milliseconds.
  • .get_device_serial_number() Returns the robot's serial number

  • .set_device_name(name: str) Sets the device's name (as one can do using DobotStudio)

  • .get_device_name(name: str) Get the device's name (as reported in DobotStudio)

  • CustomPosition(x=None, y=None, z=None, r=None) Initializes a custom position object.

    • x: float x coordinate
    • y: float y coordinate
    • z: float z coordinate
    • r: float effector rotation - NOT USED ON MAGICIAN
  • MODE_PTP Enum class for various PTP modes such as JUMP_XYZ, MOVJ_XYZ, MOVL_XYZ, etc. - DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING

  • DobotException Custom exception class for handling Dobot-related errors.

  • .set_color_sensor(enable=True, version=1) Enables or disables the color sensor.

    • enable: bool enables/disables the sensor
    • version: int sensor version
  • .get_color() Returns the RGB values detected by the color sensor.

    • returns: list with RGB values
  • .set_ir(enable=True, port=GPIOPort.GP4) Enables or disables the IR sensor on the specified port.

    • enable: bool enables/disables the sensor
    • port: int port number
  • .get_ir(port=GPIOPort.GP4) Returns the state of the IR sensor on the specified port.

    • port: int port number
    • returns: bool state of the sensor
  • .conveyor_belt(speed, direction=1, interface=0) Sets the speed and direction of the conveyor belt.

    • speed: float speed of the conveyor belt (range: 0.0 to 1.0)
    • direction: int direction of the conveyor belt (1 for forward, -1 for backward)
    • interface: int motor interface (default is 0)
  • .conveyor_belt_distance(speed_mm_per_sec, distance_mm, direction=1, interface=0) Moves the conveyor belt at a specified speed for a specified distance.

    • speed_mm_per_sec: float speed in millimeters per second (must be <= 100)
    • distance_mm: float distance in millimeters
    • direction: int direction of the conveyor belt (1 for forward, -1 for backward)
    • interface: int motor interface (default is 0)

Metadata

Release files for pydobotpp 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydobotpp 0.1.6
File Size Uploaded
pydobotpp-0.1.6.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydobotpp 0.1.6
File Interpreter ABI Platform
pydobotpp-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 22.2 kB

Release files / pydobotpp-0.1.6.tar.gz

Download URL pydobotpp-0.1.6.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
09f92cf1876ed9f71aa44294ceaa0af9ecb7038225797ef57ff4c68ec68e53af
BLAKE2b-256 checksum
How to use checksums
3fac4806fcf3757e5816f70ffdac7b4b7bb2b294f60bacb48378b7d15bbfb368
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / pydobotpp-0.1.6-py3-none-any.whl

Download URL pydobotpp-0.1.6-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d484c1d88b1ed74d00cae4bba6339e7178a0bb4b85f076f8e451c71a25333377
BLAKE2b-256 checksum
How to use checksums
3ba4ea8c6d7bdee8f3d639f43f0864ae83c8f00ae9e8370873b479dc2927cf96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page