/// <summary>
        /// Start the camera configuration step.
        /// The person has to stand still for the defined amount of time until the coordinates are calculated.
        /// </summary>
        public void Start()
        {
            if (initialized)
            {
                // reset state before the next position
                Cancel();
            }
            else
            {
                initialized = true;
            }

            manager.SetInstructions("Go to the position and stand still");
            isActiveStep    = true;
            lastMove        = 0;
            lastCoordinates = null;

            // give the person 5s time to go to the next position
            Task.Delay(5000).ContinueWith(_ =>
            {
                System.Windows.Application.Current.Dispatcher.Invoke(() =>
                {
                    if (manager.IsTerminated())
                    {
                        return;
                    }

                    workerThread.ResultReady += ResultReady;
                });
            });

            if (!initialBalancingValue)
            {
                initialBalancingValue = workerThread.IsBalancing();
            }
            workerThread.SetCalibrating(true);
            workerThread.SetBalancing(false);
        }