def control_car(data): try: frame = CvBridge().imgmsg_to_cv2(data, "passthrough") except CvBridgeError as e: print(e) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) frame = pygame.image.frombuffer(frame.tostring(), frame.shape[1::-1], "RGB") display_surface.blit(frame, (0, 0)) for event in pygame.event.get(): if event.type == pygame.QUIT: os._exit(0) pressed = pygame.key.get_pressed() if np.count_nonzero(pressed) > 0: if pressed[pygame.K_UP]: SEND_COMMAND = UP elif pressed[pygame.K_DOWN]: SEND_COMMAND = DOWN elif pressed[pygame.K_LEFT]: SEND_COMMAND = LEFT elif pressed[pygame.K_RIGHT]: SEND_COMMAND = RIGHT elif pressed[pygame.K_SPACE]: SEND_COMMAND = STOP else: SEND_COMMAND = STOP print(SEND_COMMAND) s.send(SEND_COMMAND) pygame.display.flip() pygame.display.update()