# 制御APIの実装範囲と使用上の注意 この表は提供された `DobotCtrl` のコメントおよび委譲関係に基づく。`DobotCtrl` にメソッドが存在することは、MG400上で動作が保証されることを意味しない。 ## 公開メソッドと実機対応の区別 | API | ソースで確認できる範囲 | 注意 | |---|---|---| | `move()` | P+PTP → MovJ、P+LINE → MovL、J+PTP → JointMovJ | `path_blend`、`decel`、`pose`、CIRCLE、SPLINE は意味を保持した実装が未確定。`is_async` と `Sync()` の関係を確認する。 | | `drive()` | 軸・値、`relative`、`speed`、`is_async` | `path_blend` の意味保持は未実装。J5/J6 はMG400に存在しない。 | | `dev()` | x/y/z/rz の加算 | rx/ry は4軸MG400で表現できない。 | | `rotate()` | 公開メソッドは存在 | plane/angle/center の軌道変換は未実装。 | | `set_path_blend()` | 公開メソッドは存在 | DOBOTのCP値への安全な変換規則がなく、未対応。 | | `halt()` / `stop()` | 公開メソッドは存在 | 共通I/Fと同義の停止をMG400で保証できないため未対応。 | | `hand_stop()` | 公開メソッドは存在 | ハンド機種、I/O、通信方式が未指定で未実装。 | **安全上の注意:** 未実装APIを停止手段として使用しないこと。非常停止はロボットの設備側の安全機構で確保する。 ## ソースから抽出した公開メソッドのシグネチャ - `connect()` - `get_version(rel_toml_path)` - `delete()` - `disconnect()` - `halt()` - `task_stop()` - `hand_stop()` - `stop()` - `reset_error()` - `release_arm()` - `motion_complete()` - `get_motion_complete()` - `wait_for_complete()` - `change_work(work_no)` - `get_current_work_no()` - `get_work(work_no)` - `set_work(work_no, work_define, work_attribute)` - `change_tool(work_no)` - `get_current_tool()` - `get_current_tool_no()` - `get_tool_define(tool_no)` - `get_tool(tool_no)` - `set_tool_define(tool_no, tool_define)` - `set_tool(tool_no, tool_define)` - `take_arm()` - `give_arm()` - `coord_type()` - `coord_type(coord_type)` - `set_coord_type(coord_type)` - `get_coord_type()` - `path_blend()` - `path_blend(value)` - `set_path_blend(path_blend)` - `get_path_blend()` - `motion_mode()` - `motion_mode(value)` - `set_motion_mode(mode)` - `get_motion_mode()` - `task()` - `task_state()` - `get_task_status()` - `current_position()` - `current_angle()` - `speed()` - `jspeed()` - `extspeed()` - `accel()` - `decel()` - `extaccel()` - `extdecel()` - `lock()` - `busy_status()` - `is_running()` - `state()` - `servo_on()` - `direct_mode()` - `get_direct_mode()` - `get_current_position()` - `get_current_pose()` - `get_current_angle()` - `error_code()` - `error_description()` - `get_current_error_info()` - `get_error()` - `get_error_code()` - `get_error_count()` - `get_error_info(index)` - `get_error_description(error_code)` - `print_error_info(e)` - `print_error(e)` - `set_speed(speed)` - `get_speed()` - `set_jspeed(speed)` - `get_jspeed()` - `set_accel(accel)` - `get_accel()` - `set_decel(decel)` - `get_decel()` - `set_extspeed(speed)` - `get_extspeed()` - `set_extaccel(extaccel)` - `get_extaccel()` - `set_extdecel(extdecel)` - `get_extdecel()` - `turn_on_motor()` - `turn_off_motor()` - `p2j(p_type_pos)` - `j2p(j_type_pos)` - `dev(base, offset)` - `move(target, *, motion_mode, coord_type, path_blend, offset, pose, speed, accel, decel, is_async)` - `approach(lComp, vntPoseBase, vntPoseLen, bstrOpt)` - `drive(target, *, relative, path_blend, speed, is_async)` - `rotate(plane, angle, center, *, path_blend, speed, is_async)` - `get_IO(id_num)` - `get_digital_input(id_num)` - `set_IO(id_num, value)` - `autocal(origin)` - `get_motion_preparation()` - `run_script()` - `init_hand()` - `open_hand(speed)` - `hand_open(speed)` - `hand(pos, *, position, force, direction, relative, speed, is_async)` - `start_log()` - `stop_log()` - `clear_log()` - `start_servo_log()` - `stop_servo_log()` - `clear_servo_log()` - `get_log_count()` - `get_log_record(index)` シグネチャは `DobotCtrl` の公開定義から機械的に抽出した。実装状況は各メソッドのコメントと `DobotTcp` を確認する。