Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Customizable cancellation behavior #40

Open
luca-della-vedova opened this issue Dec 11, 2024 · 1 comment
Open

Customizable cancellation behavior #40

luca-della-vedova opened this issue Dec 11, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@luca-della-vedova
Copy link
Member

Currently, trying to cancel a workcell task results in a NOOP if the task is being executed, and removing from the queue if it is not running yet. This behavior is embedded in the workcell orchestrator.

There might be types of workcells that can actually offer cancel a running task, so this should at least be configurable, two possible approaches:

@luca-della-vedova luca-della-vedova added the enhancement New feature or request label Dec 11, 2024
@luca-della-vedova luca-della-vedova changed the title Customzable workcell cancellation behavior Customzable cancellation behavior Dec 11, 2024
@luca-della-vedova luca-della-vedova changed the title Customzable cancellation behavior Customizable cancellation behavior Dec 11, 2024
@koonpeng
Copy link
Member

There was an unfinished feature that allows defining post-cancellation behavior on the BT. iirc the reason we ended with that solution is because

  • If we stop the current actions asap, it will leave the workcell in a unknown / unrecoverable state. Then we would require a human to manually inspect things that are ok and reset the workcell.
  • Cancelling can be very dangerous, imagine a pick and place involving a heavy payload, we need to know if it is safe to release the gripper etc. So I imagine that cancelling would most of the time be a no-op on the capability side.
  • We can run the current actions to completion. Then we can assume that the workcell is still in a known state, so then we can have a BT to control how to reset the workcell. If the state is deemed unrecoverable then we should also cancel all queued tasks.

So the current behavior is the just easiest safe solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants