public async Task Init(string robotId, string arm_id, UnityAction <string> onChangeCallback)
 {
     if (!SceneManager.Instance.SceneStarted || string.IsNullOrEmpty(robotId))
     {
         Dropdown.Dropdown.dropdownItems.Clear();
         gameObject.SetActive(false);
         return;
     }
     try {
         IRobot robot = SceneManager.Instance.GetRobot(robotId);
         Dropdown.Dropdown.dropdownItems.Clear();
         PutData(await robot.GetEndEffectorIds(arm_id), onChangeCallback);
     } catch (ItemNotFoundException ex) {
         Debug.LogError(ex);
         Base.NotificationsModernUI.Instance.ShowNotification("End effector load failed", "Failed to load end effectors, try again later");
     }
 }