def read_vision_sensor(self): """ Reads the image raw data from vrep vision sensor. Returns: resolution: Tuple with the image resolution. image: List with the image data. """ res, resolution, image = vrep.simxGetVisionSensorImage(self.clientID, self.vision_handle, 0, vrep.simx_opmode_streaming) while(res != vrep.simx_return_ok): res, resolution, image = vrep.simxGetVisionSensorImage(self.clientID, self.vision_handle, 0, vrep.simx_opmode_buffer) return resolution, image
def _get_image_from_visual_sensor(self): _, res, _ = vrep.simxGetVisionSensorImage(env.conn_hanra_handlers[0], 0, vrep.simx_opmode_streaming) err, res, img = vrep.simxGetVisionSensorImage( env.cov.camera_handlers[0], 0, vrep.simx_opmode_buffer) if err == vrep.simx_return_ok: print('Received image') img = np.array(image, dtype=np.uint8) img.resize([res[1], res[0], 3]) elif err == vrep.simx_return_novalue_flag: print('No image received') pass else: print('Error while receiving image: ', err)
def main(): env = VREPEnv() print(env.camera_handlers) time.sleep(2) if (env.conn_handler != -1): err, res, img = vrep.simxGetVisionSensorImage( env.conn_handler, env.camera_handlers[0], 0, vrep.simx_opmode_streaming) while (vrep.simxGetConnectionId(env.conn_handler) != -1): # Set random pos pos = [] for i in range(4): pos.append(np.random.randint(0, 180)) pos.append(np.random.randint(2)) env.step('uarm', pos) # Get image from vision sensor err, res, image = vrep.simxGetVisionSensorImage( env.conn_handler, env.camera_handlers[0], 0, vrep.simx_opmode_buffer) if err == vrep.simx_return_ok: print('Received image') print(res) img = np.array(image, dtype=np.uint8) img.resize([res[1], res[0], 3]) cv2.imshow('image', img) # Some magic stuff for correct image rendering if cv2.waitKey(1) & 0xFF == ord('q'): break elif err == vrep.simx_return_novalue_flag: print('No image received') pass else: print('Error while receiving image: ', err) else: print('Failed to connect to remote API server') env.finish() cv2.destroyAllWindows()
def get_vision_image(self): # vrep.simxReadVisionSensor( # self.client_id, # self.handles_dict['vision_sensor'], # vrep.simx_opmode_blocking) resp = vrep.simxGetVisionSensorImage( self.client_id, self.handles_dict['vision_sensor'], 0, vrep.simx_opmode_blocking, ) status = resp[0] img_res = resp[1] img_data = np.array(resp[2], dtype=np.uint8).reshape(img_res[0], img_res[1], -1) img_data = np.flipud(img_data) # Flip image (to fix it) img_data = img_data[:, :, ::-1] # Convert BGR to RGB # import cv2 # cv2.imwrite('./temp_vision_sensor.png', img_data) return img_data