I have found it useful and interesting to create tools that help me better understand and think about the OpenCat framework. I'd like to use this post to share those tools. Below is the first one - I will add other tools here in future updates.
Excel transform() visualizer
The transform() function (in OpenCat.h) is used to transition from a set of current joint angles to a set of target joint angles. The function calculates the number of intermediate steps (small angle changes) to use in the transition, based on the parameter speedRatio. The function then does a transformation using cosines. The Excel transform() visualizer plots this transformation and demonstrates how use of cosines gives an initial acceleration from a current angle, then a pseudo-linear range of angles and finally a deceleration to the target angle. Here is an plot of step vs. dutyAngle for current angle = 0 deg, target angle = +45 deg and speedRatio = 1 (45 steps).
This poses the question of what other transform functions we might try that give different effects (faster movement, more cat-like movement, more robotic movement,something else?), especially as we string transforms together in behaviors. What are your thoughts and what would you like to try?