Teneo Direction Bugfix
Description
These changes, paired with some changes in burt-sharp-unity, burt-game-common, and burt-therapist-ui should fix the way we report the direction of teneo position/velocity/acceleration and disturbance torque in Burt activites as well as BurtSharp programs.
Here's my summary of how things work in BurtSharp now: The RobotController allows us to call SetTransform() to apply a homogeneous transform to all Cartesian positions and forces, effectively changing our world frame. This feature gets used by the RobotConnection in BurtSharpUnity to rotate (and reflect) us from robot to Unity coordinate system. The 1D equivalent for teneo direction is to call SetTeneoTransform(value), where value is 1 or -1. When we get the JointPositions/JointVelocities/JointAccelerations or DisturbanceJointTorque from RobotController they should be unaffected by these extra transforms. The _transform is applied when we get Cartesian variables like ToolPosition and ToolForce. Likewise, the _teneoTransform should be applied only when we get TeneoPosition/TeneoVelocity/TeneoAcceleration or DisturbanceTeneoTorque.
The only important consequence of this is that in BurtGameCommon or any Burt activity, such as the TUI, the teneo position should be obtained by calling GetTeneoPosition() instead of GetJointPositions()[3]. The same goes for teneo velocity, acceleration, and disturbance torque.
What to focus on
- Use DisturbanceObserverTest (and plot DisturbanceTeneoTorque with ttyplot by uncommenting that line and using the example syntax to redirect to stderr if you want) to confirm that the teneo disturbance torque direction is correct
- Test with BurtSharpUnity (burt/software/burt-sharp-unity!134) and BurtGameCommon (burt/games/burt-game-common!234) in a Burt activity