# 移動 API ## MotionMode ```python MotionMode.PTP MotionMode.LINE MotionMode.CIRCLE MotionMode.SPLINE ``` 整数指定も受け付ける。 | 整数 | モード | |---:|---| | 1 | PTP | | 2 | LINE | | 3 | CIRCLE | | 4 | SPLINE | ## move() ```python robot.move( target, motion_mode=None, coord_type=None, offset=None, speed=None, accel=None, is_async=True, ) ``` 単一点移動を行う。 ### P 文字列 ```python robot.move("P1") robot.move("@P P1") robot.move("@0 P1") robot.move("P1+(0,0,10)") ``` 単点 `move()` では `@P` / `@0` はブレンドに影響しない。 ### P 数値列 ```python robot.move( [300, 0, 200, 0, 180, 0], motion_mode=MotionMode.LINE, coord_type="P", ) ``` ### J 数値列 ```python robot.move( [0, -90, 90, 0, 90, 0], coord_type="J", ) ``` ## 内部変換 | 指定 | 内部 API | |---|---| | `coord_type="J"` | `moveJ()` | | P + `PTP` | `moveJ_IK()` | | P + `LINE` | `moveL()` | | 単点 `CIRCLE` / `SPLINE` | 未対応 | ## move_path() ```python robot.move_path( ["P1", "P2", "P3"], motion_mode=MotionMode.LINE, speed=20, accel=20, blend=None, is_async=True, ) ``` 複数点移動を行う。 `blend` の単位は m である。 未指定時は `path_blend` に従う。 ・`@0`: blend = 0 ・`@P`: `UR_DEFAULT_BLEND_RADIUS` ## dev() ```python target = robot.dev("P1", [0, 0, 10, 0, 0, 0]) ``` 6 成分を単純加算する。COBOTTA 的な `P1+(...)` に近い。 ## pose_trans() ```python target = robot.pose_trans("P1", [0, 0, 10, 0, 0, 0]) ``` URScript `pose_trans()` 相当の姿勢合成を行う。 ## p2j() / j2p() ```python j = robot.p2j([300, 0, 200, 0, 180, 0]) p = robot.j2p([0, -90, 90, 0, 90, 0]) ``` IK / FK を行う。 ## drive() ```python robot.drive((1, 5), relative=True) ``` 指定軸を動かす。軸番号は 1..6 である。 ## stop() ```python robot.stop() ``` 最後の移動モードが LINE なら `stopL()`、それ以外は `stopJ()` を呼ぶ。 `halt()`、`task_stop()`、`hand_stop()` は `stop()` と同じである。