Exemplo n.º 1
0
 def gripper_ctrl(self, mode: str, level: int = 1):
     ret = self._robot_ctrl.robot_do_command(f'robotic_gripper {mode} {level}')
     if check_robot_resp_ok(ret):
         return True
     else:
         logging.error(f'get gripper_status fail')
         return False
Exemplo n.º 2
0
 def ir_switch(self, switch: str):
     ret = self._robot_ctrl.robot_do_command(
         f'ir_distance_sensor measure {switch}')
     if check_robot_resp_ok(ret):
         return True
     else:
         logging.error(f'set ir_switch = {switch} fail')
         return False
Exemplo n.º 3
0
    def marker_push_switch(self, switch):
        cmd = f'AI push marker {switch}'

        ret = self._robot_ctrl.robot_do_command(cmd)
        if check_robot_resp_ok(ret):
            logging.info(f"cmd = {cmd}, SUCCESS")
            return True
        else:
            logging.error(f'{cmd} failed, resp = {ret}')
            return False
Exemplo n.º 4
0
    def marker_set(self, color, dist):
        cmd = f'AI attribute marker_color {color} marker_dist {dist}'

        ret = self._robot_ctrl.robot_do_command(cmd)
        if check_robot_resp_ok(ret):
            logging.info(f"cmd = {cmd}, SUCCESS")
            return True
        else:
            logging.error(f'{cmd} failed, resp = {ret}')
            return False
Exemplo n.º 5
0
    def connect_robo(self):
        if self.conn:
            return True

        ip_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        # 绑定 IP 广播端口
        ip_sock.bind(('0.0.0.0', 40926))

        # 等待接收机器人广播数据
        data, ip_str = ip_sock.recvfrom(1024)
        host = ip_str[0]

        # 设置全局rb ip
        global_var.robotic_ip.robotic_host = host

        # 设置机器人连接地址端口
        self._address = (host, int(40923))

        self.conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        logging.info(f"connect to robot: {self._address}")

        try:
            self.conn.connect(self._address)
            logging.info(f"connected to {self._address}")

            # 开启命令模式
            ret = self.robot_do_command('command')
            if not check_robot_resp_ok(ret):
                logging.error(f"command mode set failed!")
                self.disconnect_robo()

            return True
        except Exception as err:
            self.disconnect_robo()
            logging.error(
                f"connect to robotic failed! robot={self._address}, err = {err}"
            )
            return False