I am developing a collision checking SW and now the SW is able to check if any part of the robot is in collision with itself or with any external object. Basically, all the robot links and joints are covered with virtual convex shapes (cylinder, cuboid, point cloud, … )
The URCap will run on top of the program to check the trajectory of all move functions (moveJ, moveL, …) Forward kinematics model is easy to implement thanks to calibration configs .urcontrol and there is always one solution so I know it’s the same of URScript. However, to check the moveL (and moveC) I need the inverse kinematics model which is confidential UR know-how of course. My choices now are:
-
implement my own inverse kinematics model but it’s just reinventing the wheel and it might not match get_inverse_kin() in URScript.
-
stream get_inverse_kin() outputs via RTDE but the solution speed varies based on the length of the trajectory and it is never fast enough for example for 1m, 0.5mm step, and 125Hz RTDE I get the solution in 16 seconds.
-
??? LINK URScript: is there a way to include URScript functions into URCap applications (for me get_inverse_kin) as some URScript methods do not run the robot low-level control and are pure math. my application is written in C++.
My suggestion is: UR probably can provide an API with some URScript functions so that is linked directly to URCap daemons.
Sorry for the long topic but I do need suggestions on how to continue development from here