Hello,
thank you all for your responses. I will try to answer all questions.
@michael.bertsch Those distances mean, what is the maximum possible distance of proper behaviour. So if I would do linear distance of 4mm in that direction, it behaves properly, more than that and it behaves wrongly. About the expect inputs in the same format, I am not sure what you mean exactly. The units are of distance (mm) are correct and the angle, which is in degrees gets converted in functions and then back to degrees, when I am sending it out. I am using Monitoring elements, to see, what is Path planner sending as wanted path, and it is generating those non-linear paths I send in the first post, or proper one, if the increments are small.
@Josh_Polansky I am using Jacobian for calculations and for this specific method I am reducing the 3x3 Jacobian into reduced 2x2 Jacobian, which I tested with my colleague in MATLAB and it is working fine there, but I will discuss the geometric differentiation with him as well tomorrow. As for choosing the solutions. I am normally doing it as a Case select and is determined by variable inside a reference enum, which also has the lengths of the arm links, tolerance etc. Right now, I hard coded single solution without any switching of solutions to eliminate possible mistakes. Later on, I will of course require switching, but that is still bit far off as of now. For the WrapToPi, I didn’t find any function inside AS, so I had to do my own, but I do not think the mistake is there.
@zbynek_uher I did my roundtrip test with just purely static numbers, and the result is fine and as expected, some more dynamic check I will be able to do after discussion with my colleague tomorrow. Another thing that surprised me a bit and it might be the issue, after I checked the help link for the test of inverse derivative, you are using TCP pos, TcpDer and Joint ref pos. I am used to different approach, where inverse derivative function is working with values of joint angles and TCP speeds, so for my inverse derivative function, I am only using Joint Ref Pos and TcpDer, which I might have misunderstood a bit. Does it require for me to actually recalculate the entire inverse kinematics first inside it? Right now it won’t be an issue, since I am only testing single solution, but later on (if it will even be possible to implement everything we want), it will create some very big function block, if I will need to do both inverse and inverse derivative in the same block.
Thank you again for your responses!