private void SetHandTeachingButtonInteractivity()
    {
        ActionObject ao      = SceneManager.Instance.GetActionObject(SceneManager.Instance.SelectedRobot.GetId());
        bool         success = ActionsManager.Instance.RobotsMeta.TryGetValue(ao.ActionObjectMetadata.Type, out IO.Swagger.Model.RobotMeta robotMeta);

        if (success)
        {
            HandTeachingModeButton.SetInteractivity(robotMeta.Features.HandTeaching, "Robot does not support hand teaching mode");
        }
        else
        {
            HandTeachingModeButton.SetInteractivity(true); //actually this should never happen
        }
    }
 public async void HoldReleased()
 {
     if (!HandTeachingModeButton.IsInteractive())
     {
         return;
     }
     HandBtnRedBackground.SetActive(false);
     try {
         string armId = null;
         if (SceneManager.Instance.SelectedRobot.MultiArm())
         {
             armId = SceneManager.Instance.SelectedArmId;
         }
         await WebsocketManager.Instance.HandTeachingMode(robotId : SceneManager.Instance.SelectedRobot.GetId(), enable : false, armId);
     } catch (RequestFailedException ex) {
         Notifications.Instance.ShowNotification("Failed to disable hand teaching mode", ex.Message);
     }
 }