Example #1
0
    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
Example #2
0
 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)
Example #3
0
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()
Example #4
0
 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