# Project-wide robot control interface and MG400 implementation `dobot` is an **implementation of the project's common robot-control interface for the DOBOT MG400**. MG400 is the supported hardware, not the origin of the common interface. The interface is defined by the project and also applied to COBOTTA and Universal Robots (UR) integrations; it is not a vendor API inherited from COBOTTA. ```text Applications / automation systems | Project-wide robot I/F | +---------+---------+ | | | DobotCtrl COBOTTA UR | adapters adapters DobotTcp | DOBOT MG400 TCP/IP API | MG400 hardware ``` The diagram shows the **design relationship**. The exact class names and feature coverage of the COBOTTA and UR implementations cannot be verified from this repository alone. ## Responsibilities - **Common interface:** consistent method shapes for `move`, `drive`, `take_arm`, `give_arm`, motor control, error reset, and status access. - **`DobotCtrl`:** public MG400-facing implementation of the common interface, delegating to `DobotTcp`. - **`DobotTcp`:** MG400-specific coordinate and command conversion, TCP communication, and live status handling. - **Vendor API and extension layer:** access the DOBOT TCP/IP commands while keeping vendor code separate from project extensions. - **`ese774_frame`:** transparently exposes `DobotCtrl` public methods and properties over HTTP/JSON. **It does not define the common robot interface.** Sharing an interface does not imply identical capabilities. Unsupported MG400 features must remain explicitly unsupported rather than being simulated silently. ## Local and remote control Local programs instantiate `DobotCtrl` directly. Remote programs access the **same** `DobotCtrl` instance through an `ese774_frame` server. No separate remote robot-control API is introduced. HTTP request completion is distinct from physical motion completion. ## Manufacturer manuals The DobotStudio Pro user manual describes hardware setup, coordinate systems, programming, and safety; it does not define this project's Python interface. The MG400 maintenance manual covers safety, inspection, and alarms. Python feature support must be established from the source code.