def run()

in robots/LoCoBot/locobot_control/scripts/locobot_control/teleoperation.py [0:0]


    def run(self):
        rospy.sleep(1)
        while True:
            key = copy.deepcopy(self.cmd)
            if key is None:
                if (
                    self.is_robot_moving
                    and time.time() - self.start_time > self.cfg["WAIT_TIME"]
                ):
                    if self.cmd_prev in [
                        self.cfg["KEY_POS_J5"],
                        self.cfg["KEY_NEG_J5"],
                    ]:
                        self.pub_stop_j5.publish()
                    elif self.cmd_prev in [
                        self.cfg["KEY_POS_J4"],
                        self.cfg["KEY_NEG_J4"],
                    ]:
                        self.pub_stop_j4.publish()
                    else:
                        pass
                    self.move_base(0, 0)
                    self.is_robot_moving = False
                continue
            if key != self.cmd_prev:

                if self.cmd_prev in [
                    self.cfg["KEY_POS_J5"],
                    self.cfg["KEY_NEG_J5"],
                    self.cfg["KEY_POS_J4"],
                    self.cfg["KEY_NEG_J4"],
                ]:
                    self.update_alpha()

            delta = np.zeros(3)

            if not self.status:
                rospy.logerr(
                    "Arm has been shutdown, " "there is some error, check logs"
                )
                self.exit()

            if key == self.cfg["KEY_POS_X"]:
                delta[0] += self.cfg["DELTA_POS_X"]
                self.move_arm(delta, key)
            elif key == self.cfg["KEY_NEG_X"]:
                delta[0] += self.cfg["DELTA_NEG_X"]
                self.move_arm(delta, key)
            elif key == self.cfg["KEY_POS_Y"]:
                delta[1] += self.cfg["DELTA_POS_Y"]
                self.move_arm(delta, key)
            elif key == self.cfg["KEY_NEG_Y"]:
                delta[1] += self.cfg["DELTA_NEG_Y"]
                self.move_arm(delta, key)
            elif key == self.cfg["KEY_POS_Z"]:
                delta[2] += self.cfg["DELTA_POS_Z"]
                self.move_arm(delta, key)
            elif key == self.cfg["KEY_NEG_Z"]:
                delta[2] += self.cfg["DELTA_NEG_Z"]
                self.move_arm(delta, key)
            elif key == self.cfg["KEY_POS_J5"]:
                self.move_joint_individual(5)
            elif key == self.cfg["KEY_NEG_J5"]:
                self.move_joint_individual(5, False)
            elif key == self.cfg["KEY_POS_J4"]:
                self.move_joint_individual(4)
            elif key == self.cfg["KEY_NEG_J4"]:
                self.move_joint_individual(4, False)
            elif key == KEY_CTRL_C:
                self.exit()
            elif key == self.cfg["KEY_POS_PAN"]:
                self.move_pan()
            elif key == self.cfg["KEY_NEG_PAN"]:
                self.move_pan(False)
            elif key == self.cfg["KEY_POS_TILT"]:
                self.move_tilt()
            elif key == self.cfg["KEY_NEG_TILT"]:
                self.move_tilt(False)
            elif key == self.cfg["KEY_OPEN_GRIPPER"]:
                self.bot.gripper.open(wait=False)
            elif key == self.cfg["KEY_CLOSE_GRIPPER"]:
                self.bot.gripper.close(wait=False)
            elif key == KEY_BASE_FORWARD:
                self.move_base(self.base_linear_speed, 0)
            elif key == KEY_BASE_BACKWARD:
                self.move_base(-self.base_linear_speed, 0)
            elif key == KEY_BASE_TURNLEFT:
                self.move_base(0, self.base_angular_speed)
            elif key == KEY_BASE_TURNRIGHT:
                self.move_base(0, -self.base_angular_speed)
            elif key == self.cfg["KEY_RESET"]:
                self.reset()
            else:
                continue
                if key.isdigit():
                    key_int = int(copy.deepcopy(key))
                    if key_int in range(1, 6):
                        self.move_joint_individual(int(key))
                    if key_int in range(6, 10):
                        self.move_joint_individual(int(key) % 5, False)
                    if key_int == 0:
                        self.move_joint_individual(5, False)
                else:
                    print("Pressed invalid key: {}".format(key))
            self.cmd_prev = copy.deepcopy(key)
            self.cmd = None