|
| 1 | +from rtde_control import RTDEControlInterface as RTDEControl |
| 2 | +from rtde_control import Path, PathEntry |
| 3 | +import time |
| 4 | + |
| 5 | +rtde_c = RTDEControl("localhost") |
| 6 | + |
| 7 | +path = Path() |
| 8 | +vel = 0.5 |
| 9 | +acc = 4.0 |
| 10 | +blend = 0.099 |
| 11 | +path.addEntry(PathEntry(PathEntry.MoveJ, PathEntry.PositionTcpPose, [-0.140, -0.400, 0.100, 0, 3.14, 0, vel, acc, 0.0])) |
| 12 | +path.addEntry(PathEntry(PathEntry.MoveL, PathEntry.PositionTcpPose, [-0.140, -0.400, 0.300, 0, 3.14, 0, vel, acc, blend])) |
| 13 | +path.addEntry(PathEntry(PathEntry.MoveL, PathEntry.PositionTcpPose, [-0.140, -0.600, 0.300, 0, 3.14, 0, vel, acc, blend])) |
| 14 | +path.addEntry(PathEntry(PathEntry.MoveJ, PathEntry.PositionTcpPose, [-0.140, -0.600, 0.100, 0, 3.14, 0, vel, acc, blend])) |
| 15 | +path.addEntry(PathEntry(PathEntry.MoveJ, PathEntry.PositionTcpPose, [-0.140, -0.400, 0.100, 0, 3.14, 0, vel, acc, 0.0])) |
| 16 | + |
| 17 | +# First move given path synchronously |
| 18 | +print("Move path synchronously...") |
| 19 | +rtde_c.movePath(path, False) |
| 20 | +print("Path finished!") |
| 21 | + |
| 22 | +# Now move given path asynchronously |
| 23 | +print("Move path asynchronously with progress feedback...") |
| 24 | +rtde_c.movePath(path, True) |
| 25 | + |
| 26 | +# Wait for start of asynchronous operation |
| 27 | +while not rtde_c.getAsyncOperationProgressEx().isAsyncOperationRunning(): |
| 28 | + time.sleep(0.010) |
| 29 | +print("Async path started.. ") |
| 30 | + |
| 31 | +# Wait for end of asynchronous operation |
| 32 | +waypoint = -1 |
| 33 | +while rtde_c.getAsyncOperationProgressEx().isAsyncOperationRunning(): |
| 34 | + time.sleep(0.2) |
| 35 | + new_waypoint = rtde_c.getAsyncOperationProgress() |
| 36 | + if new_waypoint != waypoint: |
| 37 | + waypoint = new_waypoint |
| 38 | + print("Moving to path waypoint ") |
| 39 | + |
| 40 | +print("Async path finished...\n\n") |
| 41 | +rtde_c.stopScript() |
| 42 | + |
0 commit comments