Closed rtkg closed 7 years ago
How about removing the influence zone from the first order dynamics and the min-jerk and, instead, implement a separate non-linear dynamics as de=-sinh(ke). The hyperbolic sine exhibits the behaviour we'd like as, by means of tuning a single parameter k, it can be made very large with a sharp increase while still being continuous and stable. Such dynamics might even be useful for equality tasks. Also, this might be a nice candidate to replace the current first order behaviour for the joint limit avoidance task.
Sounds good.
Le 13 déc. 2016 23:43, "Robert Krug" notifications@github.com a écrit :
How about removing the influence zone from the first order dynamics and the min-jerk and, instead, implement a separate non-linear dynamics as de=-ksinh(e). The hyperbolic sine exhibits the behaviour we'd like as, by means of tuning a single parameter k, it can be made very large with a sharp increase while still being continuous and stable. Such dynamics might even be useful for equality tasks. Also, this might be a nice candidate to replace the current first order behaviour for the joint limit avoidance task.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/neckutrek/hiqp/issues/18#issuecomment-266885943, or mute the thread https://github.com/notifications/unsubscribe-auth/ADmjhchMWa9cAuIzAfLwypnJEoCGLocSks5rHx-XgaJpZM4LMFai .
Also -K*e^3 might be an interesting candidate. It has an inflection point at e=0 which might be useful for slow convergence
Added a 1st order cubic dynamics as above on feature-collision-avoidance:
hiqp_core/include/hiqp/tasks/dynamics_first_order_cubic.h
hiqp_core/src/tasks/dynamics_first_order_cubic.cpp
Hmm. since d/de de = 0 when e=0 the task would never converge right? the same applies for sinh? sinh makes sense though as there's a cutoff, something that de=-ke does not have. In what applications would -ke^3 be applicable when -ke isn't?
I'll add sinh and remove influence zone from -ke on devel.
It does make sense in practice I saw. I'll merge this into devel.
Actually, -ke^3 is not a first order dynamics, but a third order dynamics without first and second order terms, right? So one could think of de*=-ae^3-be^2-ce. However:
So as I see it, either a cubic dynamics -ke^3 is added (i.e. refactor TDynFirstOrderCubic -> TDynCubic), or TDynFirstOrder -> TDynThirdOrder with parameters for setting two positive values as parameters forming de*=-ae^3-be for positive constants a,b. Since the linearity in first-order dynamics is often desired, I think the first option is best.
Keep TDynFirstOrder and refactor the name of TDynFirstOrderCubic -> TDynCubic?
Mmm, the order in dynamical systems refers to the order of the highest derivative. It would probably be more accurate to call the current first order dynamics 'linear first order'. Also, e.g., de=-sinh(ke) is a (nonlinear) first order system.
Indeed, you could come up with a general polynomial describing your system. However, I guess symmetry is, as you said one desired property.
Basically, I'd agree with your suggestion of the first option. Regarding naming - I leave it up to you. Additional options could also be TDynFirstOrder -> TDynFirstOrderLinear and keep TDynFirstOrderCubic or TDynFirstOrder -> TDynLinear and TDynFirstOrderCubic -> TDynCubic assuming that we only deal with first order systems anyway.
I see, ok. Thanks.
Med vänlig hälsning / Best regards, Marcus A Johansson +46 (0)70 315 73 77
2016-12-14 11:53 GMT+01:00 Robert Krug notifications@github.com:
Mmm, the order in dynamical systems refers to the order of the highest derivative. It would probably be more accurate to call the current first order dynamics 'linear first order'. Also, e.g., de=-sinh(ke) is a (nonlinear) first order system.
Indeed, you could come up with a general polynomial describing your system. However, I guess symmetry is, as you said one desired property.
Basically, I'd agree with your suggestion of the first option. Regarding naming - I leave it up to you. Additional options could also be TDynFirstOrder -> TDynFirstOrderLinear and keep TDynFirstOrderCubic or TDynFirstOrder -> TDynLinear and TDynFirstOrderCubic -> TDynCubic assuming that we only deal with first order systems anyway.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/neckutrek/hiqp/issues/18#issuecomment-267004452, or mute the thread https://github.com/notifications/unsubscribe-auth/ADmjhb8uXpMSGjI57b9AA0VtjbomJc1cks5rH8qwgaJpZM4LMFai .
Naming of task dynamics and definitions has been updated. TDynLinear, TDynCubic and TDynHyperSin are now available and are tested once.
Close issue?
Gurobi does not seem to be able to handle the std::numeric_limits::infinity() bound to which e_dotstar is set when e_ is outside the influence zone. It fails with status code 12 ('Optimization was terminated due to unrecoverable numerical difficulties') in such situations.