-
Notifications
You must be signed in to change notification settings - Fork 5
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
Bug: a task starting disasble may stay disabled even after setting the activation state #204
Comments
Yes, this is a good point. Indeed as the framework works right now is not easy to force the computation of the OpenSoT/include/OpenSoT/Task.h Lines 228 to 240 in 4329964
However should be nice to find a solution to this issue, only one thing: since it is a core aspect, I would suggest to open a dedicated branch. |
The problem is not whether we call update or not before the setActivatioState() because it is done at line 384 of Task.h OpenSoT/include/OpenSoT/Task.h Lines 380 to 388 in 4329964
I think the main problem is that the user is forced to calculate the _A matrix in each task->update(). We need to write this in the documentation or force the user somehow to add the matrix calculation. |
I know, but when you reactivate the task, the |
Currently, the activation state works setting to zero the _A matrix and storing the old value in _A_last_active. The algorithm supposes that the user computes the _A matrix at each task->update(), which is then given to _A_last_active, and then set to zero:
OpenSoT/include/OpenSoT/Task.h
Lines 380 to 388 in 4329964
Problems may arise if the task start non active and the user forgets to compute the _A matrix in the update function, as it is happening in the CentauroAnkleSteering task:
OpenSoT/src/tasks/velocity/CentauroAnkleSteering.cpp
Lines 371 to 388 in 4329964
In this case, the _A matrix keeps being a zero matrix even after setting the activation state as Enabled. We should fix this behaviour to avoid future similar bugs. @alaurenzi @EnricoMingo
The text was updated successfully, but these errors were encountered: