private UnityEngine.Vector3 GetPosObservationNoise()
        {
            float vx = Mathf.Clamp(SIGVerseUtils.GetRandomNumberFollowingNormalDistribution(0.0005f), -0.0015f, +0.0015f);
            float vy = Mathf.Clamp(SIGVerseUtils.GetRandomNumberFollowingNormalDistribution(0.0005f), -0.0015f, +0.0015f);

            return(new UnityEngine.Vector3(vx, vy, 0.0f));
        }
        private float GetRotNoise(float val)
        {
            float randomNumber = SIGVerseUtils.GetRandomNumberFollowingNormalDistribution(0.3f); // sigma=0.3

            return(val * Mathf.Clamp(randomNumber, -3.0f, +3.0f));                               // plus/minus 3.0 is sufficiently large.
        }
        private UnityEngine.Vector3 GetRotObservationNoise()
        {
            float vz = Mathf.Clamp(SIGVerseUtils.GetRandomNumberFollowingNormalDistribution(0.01f), -0.03f, +0.03f);

            return(new UnityEngine.Vector3(0.0f, 0.0f, vz));
        }
        private float GetPosNoise(float val)
        {
            float randomNumber = SIGVerseUtils.GetRandomNumberFollowingNormalDistribution(0.6f); // sigma=0.6

            return(val * Mathf.Clamp(randomNumber, -1.8f, +1.8f));                               // 3 * sigma
        }
        private float GetRotNoise(float val)
        {
            float randomNumber = SIGVerseUtils.GetRandomNumberFollowingNormalDistribution(0.3f); // sigma=0.3

            return(val * Mathf.Clamp(randomNumber, -0.9f, +0.9f));                               // 3 * sigma
        }