移動 API

MotionMode

MotionMode.PTP
MotionMode.LINE
MotionMode.CIRCLE
MotionMode.SPLINE

整数指定も受け付ける。

整数

モード

1

PTP

2

LINE

3

CIRCLE

4

SPLINE

move()

robot.move(
    target,
    motion_mode=None,
    coord_type=None,
    offset=None,
    speed=None,
    accel=None,
    is_async=True,
)

単一点移動を行う。

P 文字列

robot.move("P1")
robot.move("@P P1")
robot.move("@0 P1")
robot.move("P1+(0,0,10)")

単点 move() では @P / @0 はブレンドに影響しない。

P 数値列

robot.move(
    [300, 0, 200, 0, 180, 0],
    motion_mode=MotionMode.LINE,
    coord_type="P",
)

J 数値列

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()

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()

target = robot.dev("P1", [0, 0, 10, 0, 0, 0])

6 成分を単純加算する。COBOTTA 的な P1+(...) に近い。

pose_trans()

target = robot.pose_trans("P1", [0, 0, 10, 0, 0, 0])

URScript pose_trans() 相当の姿勢合成を行う。

p2j() / j2p()

j = robot.p2j([300, 0, 200, 0, 180, 0])
p = robot.j2p([0, -90, 90, 0, 90, 0])

IK / FK を行う。

drive()

robot.drive((1, 5), relative=True)

指定軸を動かす。軸番号は 1..6 である。

stop()

robot.stop()

最後の移動モードが LINE なら stopL()、それ以外は stopJ() を呼ぶ。

halt()、task_stop()、hand_stop() は stop() と同じである。