Commit b5be8bd
authored
Fix instruction executor idle (UniversalRobots#424)
When using the InstructionExecutor, sending the first trajectory puts
the external_control program in `MODE_FORWARD`. We then send keepalive
signals every 100ms with a timeout of 200 ms.
However, when the trajectory has finished, nothing is sent anymore,
hence reading the keepalive signal times out and program execution is
stopped. This is most likely the cause of UniversalRobots#423.
This PR explicitly sets the external_control program into `MODE_IDLE`
once a trajectory has finished. That allows waiting for a new package on
the reverse interface indefinitely. Thus, users can spend as much time
between trajectory calls as they like without having to manually send
keepalive signals of some sort.1 parent d8bec80 commit b5be8bd
2 files changed
Lines changed: 24 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| 94 | + | |
94 | 95 | | |
95 | 96 | | |
96 | 97 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
455 | 456 | | |
456 | 457 | | |
457 | 458 | | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
458 | 480 | | |
459 | 481 | | |
460 | 482 | | |
| |||
475 | 497 | | |
476 | 498 | | |
477 | 499 | | |
478 | | - | |
| 500 | + | |
0 commit comments