Open bartboogmans opened 2 months ago
Thanks for listing this repo. In addition to $f = T^{-1} \tau$ (or better $f = T^+ \tau$) our work also handles deadzone if there is something to do about it (e.g. a non-null kernel exists in $T$). This is identified from the matrix $T$, which is itself computed from the URDF. Basically the user has nothing to do to have it work.
To further clarify I have some questions:
The + sign in your alternative suggestion formula represents it does something more than simply inverting?
Does your mentioned functionality about handling deadzones represent:
Once over-actuated there are infinite combinations of $f$ to yield desired $\tau$. There are many ways to deal with this, where there is no singular correct solution, although it would be a nice detail to mention if this functionality is present.
Hi, good to be able to give some details.
The plus sign means the Moore-Penrose pseudo-inverse that generalizes the inverse for non-square matrices. Basically:
I think all other packages you have mentioned also use this as it naturally deals with over-actuation (case a) and impossible motions (case b).
We handle actuator dead zone, that is try to find a solution to $arg min_f ||T.f - \tau||$ where $f$ is outside the deadzone. I have added a figure to show the behavior, where $(f_x,f_y,m_z)$ (robot should stand still horizontally) yet $f \neq 0$ as there is a solution outside the deadzone for the 4 horizontal thrusters.
I never saw this naming before (or quickly forgot about it after my Linear Algebra exams), but with some thought on how to physically interpret this, it makes quite alot of sense. (Your explanation here is helpful to me, and maybe also to others. Maybe include this in the readme?)
Just for my curiousity: How do you get to this described solution, given these additional constraints?
Feel invited to give alternatives to the description if you believe another way of phrasing it would better cover the content.
I occasionally do some effort to bundle nice maritime ros tools in ros-maritime/awesome-maritime-robotics
This PR attempts to represent this repository under the thrust allocation section. I invite you to check the short description, if the functionality was interpreted correctly, or if you have something else to add here.