Closed kassasin closed 1 month ago
Hello,
The kinematics solver's décision variable is $\Delta q$ and not $\dot q$ The dt is thus not necessary for integration, since $\Delta q$ lives in the same space as a velocity (you can think of it as a velocity applied for an unit time)
dt is only used for some constraints, such as velocity limits
Keep in mind that this is not a planner but a controller, if you want a smooth trajectory, it is up to you to build it in task space
@Gregwar thank you very much ,i understand .So here should be "// Retrieving Δq"? https://github.com/Rhoban/placo/blob/4d8119a623ad73e4f3536b11cd72f706054810f5/src/placo/kinematics/kinematics_solver.cpp#L361 . As I have methioned above ,I found there is no effect when i modify weight of position task and orientation task .And I can't found these parameters are used in other place,is it because these parameters are temporarily unavailable?
Maybe we can rename some variables to make it more explicit what is q dot and delta q indeed
If both the target position and orientation can be reached, the weight will have no effect, the weights only affect the trade-off happening when one task is not entirely feasible, maybe this is why you don't see the difference in your case?
I can't find the relevant code to use these weights, can you point me to it?
The task weights are the arguments of relevant task.configure
method
configure
first argument is the task name, second argument is either soft
or hard
and the third argument is it's weight
For frame tasks, which actually are wrapper for position+orientation tasks, you can pass two different weight (this is equivalent to configuring separately the position and orientation)
@Gregwar Thanks,I just get more deep into code .These parameters finally through this line: https://github.com/Rhoban/placo/blob/4d8119a623ad73e4f3536b11cd72f706054810f5/src/placo/kinematics/kinematics_solver.cpp#L338 and the problem will use slack variables to make effect .Am I right?
Slack variables are only needed for soft inequalities Soft equalities they will be turned into a term in the objective function
See https://placo.readthedocs.io/en/latest/kinematics/concepts.html
Thank you very much, I understand totally .
I found some problems in kinematics_solver.cpp: https://github.com/Rhoban/placo/blob/4d8119a623ad73e4f3536b11cd72f706054810f5/src/placo/kinematics/kinematics_solver.cpp#L374 When dt is not zero,robot.state.q should be integrate with dt? But if I integrate robot.state.q with dt,robot tracking end effector is very slow . I try to modify position task's weight or orientation task's weight,I found no effect .