Skip to main content

Python library for Dobot Magician upgraded

Project description

pydobotplus

An extended Python library for controlling the Dobot Magician.

Installation

Install the driver from Silicon Labs.

Run:

pip install pydobotplus

Example

from serial.tools import list_ports
from dobotplus import Dobot

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
  • .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.

  • 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=PORT_GP4) Enables or disables the IR sensor on the specified port.

    • enable: bool enables/disables the sensor
    • port: int port number
  • .get_ir(port=PORT_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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydobotplus-0.1.2.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

pydobotplus-0.1.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file pydobotplus-0.1.2.tar.gz.

File metadata

  • Download URL: pydobotplus-0.1.2.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for pydobotplus-0.1.2.tar.gz
Algorithm Hash digest
SHA256 cf193a25b4ec47e66b4ca6526fd9fd751152954cf6bfeea4b83f161d837e21be
MD5 87d4e83acc4284abd6cd87179b91ce30
BLAKE2b-256 833e607d0bd45dbec7651883c0aab89d6369e44c1fad9025025b7cc227bd9983

See more details on using hashes here.

File details

Details for the file pydobotplus-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pydobotplus-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for pydobotplus-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a021877724478092e3a5b653fb9fc109f03a183b8a6a11434da659d7072798d2
MD5 6c05702742d31c1bcf257244a63be532
BLAKE2b-256 f08752055798622abc6adb52cb9abc21627e9b5ee29d24ed45946115e52fe6a7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page