First, I would like to greet all members of robot-forum; this is such a great community and it's a pleasure reading about your expertise and experiences. I'm looking forward to share mine with all of you :).
I have a pc programming background and I'm working in a 3D Vision based company, focusing on Path Planning and Motion Planning technologies. I have little experience with robot programming (Fanuc, Denso, Mitsubishi, UR, Motoman; mostly by preparing our in-house bin picking tests) and I have some knowledge about the mathematics behind robots (inverse and forward kinematics, singularities, etc...).
In a bin picking setting, our software can calculate a collision and singularity-free robot path concatenating simple motion segments with Joint or Linear interpolation (MOVJ and MOVL) and we strive to make the calculated path as similar as possibile to the real one. Every robot brand has its own (possible multiple) methods to perform linear and joint interpolation, and I am interested in how Motoman calculates the orientation interpolation in a MOVL (this is pratically the same question, but for Motoman, as in Orientation interpolation (KUKA doesn't use slerp)).
I have already tried to ask Yaskawa directly on this subject (with Yaskawa Italy as an intermediary, then relayed to Japan) but months passed without any reply (neither one such as "This is classified information").
I have access to MotoSimEG-VRC and I'm using it to sample the trajectory of our path end-points and comparing the axis values to our own, in order to test if our interpolation is good with respect to the Motoman's one. This is the same approach used with other brands (and with their simulators): we search info about interpolation in the robot manuals, if not found then search on the net (i.e. robot-forum), then implement and test with the simulator. So far I have tried these methods for Motoman orientation interpolation in MOVL:
- Quaternion Slerp (used by ABB, Denso, UR).
- Two angles simultaneous interpolation. The orientation changes depending on two angles, often calculate as an angle about some TCP reference axis and about the common normal of this reference axis at the motion start and end point (end ref. axis <cross product> start ref. axis).
- Fanuc uses TCP z axis as reference (RSWORLD, found in an old Karel manual)
- Hyundai also uses TCP z axis (Huyndai answered our email describing their "Two Rotation" interpolation)
- Kuka uses TCP x axis (thanks to Fubini and panic mode for their answers in Orientation interpolation (KUKA doesn't use slerp) thread)
- naive Euler angles interpolation (linear interpolation between start and end Euler angles values).
- Rotation axis-angle interpolation
- calculating the rotation axis from start to end and then interpolating with a small angle step.
It seems that Motoman does not use any of those methods and I'm pretty lost because I have searched on the available docs on the Motoman website, in robot-forum, in internet, but I'm unable to find any info regarding this topic. Does any of you know how Motoman perform orientation interpolation in a MOVL or can point me to some docs?
Thank you for your attention,