/// <summary>
        /// Manager for a virtual elbow prosthetic device based on Unity's Rigidbody.
        /// </summary>
        /// <param name="sensor">Virtual encoder to be attached to the virtual elbow.</param>
        public ElbowManager(ISensor sensor)
        {
            if (sensor == null)
            {
                throw new System.ArgumentNullException("The provided sensor object is empty.");
            }

            float[] gains = { 1000.0f, 80.0f };
            controller  = new StateFeedbackController(2, gains);
            this.sensor = sensor;
        }
        /// <summary>
        /// Manager for a virtual elbow prosthetic device based on Unity's Rigidbody.
        /// </summary>
        /// <param name="controllerGains">The state feedback controller gains for the elbow.</param>
        /// <param name="sensor">Virtual encoder to be attached to the virtual elbow.</param>
        public ElbowManager(float[] controllerGains, ISensor sensor)
        {
            if (sensor == null)
            {
                throw new System.ArgumentNullException("The provided sensor object is empty.");
            }
            if (controllerGains.Length != 2)
            {
                throw new System.ArgumentOutOfRangeException("Two gains are required for a single joint (elbow) controller.");
            }

            controller  = new StateFeedbackController(2, controllerGains);
            this.sensor = sensor;
        }