Skip to content
PUDAPPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

33 Commits

Folders and files

Repository files navigation

Dobot

Monorepo for the left and right Dobot M1 Pro drivers and PUDA edge services.

Packages

  • driver — shared dobot-drivers package exporting M1ProLeft and M1ProRight
  • dobot-left-edge — PUDA edge service for machine dobot-left
  • dobot-right-edge — PUDA edge service for machine dobot-right

The edge services depend on the shared driver workspace package. Driver tests and development notebooks are kept under driver/tests.

Configure

Create an environment file for each edge:

Copy-Item dobot-left-edge\.env.example dobot-left-edge\.env
Copy-Item dobot-right-edge\.env.example dobot-right-edge\.env

Set these values in each .env:

  • MACHINE_ID — must be unique (dobot-left or dobot-right)
  • NATS_SERVERS — comma-separated NATS server URLs
  • DOBOT_IP — IP address of the corresponding robot
  • AUTO_HOME_ON_STARTUP — send startup controller commands (true or false)

The example files use 192.168.2.6 for the left robot and 192.168.2.7 for the right robot. Update them to match the actual controllers.

Run on Windows

cd dobot-left-edge
.\start_edge.bat

In another terminal:

cd dobot-right-edge
.\start_edge.bat

Run with uv

From the repository root:

uv sync --all-packages
uv run --package dobot-left-edge python dobot-left-edge\main.py
uv run --package dobot-right-edge python dobot-right-edge\main.py

Run with Docker

docker compose -f dobot-left-edge\compose.yml up -d --build
docker compose -f dobot-right-edge\compose.yml up -d --build

View logs:

docker compose -f dobot-left-edge\compose.yml logs -f
docker compose -f dobot-right-edge\compose.yml logs -f

Stop:

docker compose -f dobot-left-edge\compose.yml down
docker compose -f dobot-right-edge\compose.yml down

Commands

Run puda machine commands dobot-left or puda machine commands dobot-right for the advertised commands, parameters, and safety metadata.

M1ProRight.safe_move and M1ProRight.pick_and_place accept an optional keyword-only arm_orientation. Pass integer 0 or 1 to apply that orientation before every motion segment of that call, including an initial lift and the approach, lateral, descent, and retraction segments. A boolean, float, or string is rejected before any hardware call or pose read. The value applies to that call. set_arm_orientation(orientation) sets the controller branch on its own. pick_from, place_to, and home keep their existing parameters.

Omitting arm_orientation, or passing None, keeps the built-in selection. safe_move uses the current Y for the lift and the target Y for travel and descent. pick_and_place uses the source Y and the destination Y, and leaves the initial lift orientation unchanged. Positive Y selects 1. Zero or negative Y selects 0. Inside these two commands that selection is what runs; a preceding set_arm_orientation does not replace it.

Test

uv run --package dobot-drivers python -m unittest discover driver\tests -p "test_left_*.py"
uv run --package dobot-drivers python -m unittest discover driver\tests -p "test_right_*.py"

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages