Coordinate conversion and motion API boundaries
This page consolidates the public interface in source_reference/dobot_core/dobot_ctrl.py and the existing implementation audit. It does not claim hardware validation.
Delegation
DobotCtrl.p2j(p_type_pos), j2p(j_type_pos), and dev(base, offset) delegate to the corresponding DobotTcp methods. DobotCtrl.move() forwards target, motion_mode, coord_type, path_blend, offset, pose, speed, accel, decel, and is_async to the backend. A public parameter is not proof that its behavior is implemented.
MG400 coordinate constraints
The shared Cartesian representation is [x, y, z, rx, ry, rz]; MG400 uses [x, y, z, r], with r = rz. Independent rx and ry rotations cannot be realized. The shared joint representation is [j1, j2, j3, j4, j5, j6], while MG400 only drives J1–J4. Unsupported components must not be assumed to be silently valid.
Motion support
Previous source audits map Cartesian PTP to MovJ, Cartesian LINE to MovL, and joint PTP to JointMovJ. Semantics-preserving CIRCLE/SPLINE support, trajectory generation for rotate(), and some options such as path_blend remain unimplemented or unverified. is_async=False uses Sync(), but that alone does not establish healthy communication or an alarm-free completion.
Verification scope
This is static source analysis, not a hardware test. Coordinate frames, joint limits, and fault behavior require controlled verification with the robot and its safety procedures.