A set of Python scripts to operate Intel Realsense Cameras. By using multi-thread techniques, this script can record color + depth from up to 4 Realsense Cameras (2 x L515 and 2 x D435)
git clone https://github.com/mvig-robotflow/rfimarkit-rs-recorder
cd rfimarkit-rs-recorder
python setup.py
python -m pip install markit-rs-recorder
import io
import cv2
import numpy as np
import yaml
from markit_rs_recorder.common import new_realsense_camera_system_from_config, RealsenseSystemModel
cfg_str = """
realsense:
cameras:
- color:
- exposure: -1
format: rs.format.bgra8
fps: 30
height: 1080
width: 1920
depth: [] # Do not user depth
endpoint: {}
imu: []
product_id: 0B64 # 0B64 for L515
product_line: L500 # Currently supported models are L500(L515) and D400(D435)
ref: 1
sn: f0220485 # SN of target Camera, can get from RealSenseViewer
system:
base_dir: ./realsense_data
frame_queue_size: 100
interactive: false
interval_ms: 0
use_bag: false
"""
def main():
cfg = yaml.load(io.StringIO(cfg_str), yaml.SafeLoader)
sys = new_realsense_camera_system_from_config(RealsenseSystemModel, cfg['realsense'], None)
print(sys.cameras)
cam = sys.cameras[0]
cam.open()
cam.start()
mtx = np.array(cam.intrinsics_matrix)
while True:
color_image, depth_image, ts, sys_ts, frame_counter = cam.get_frames()
cv2.imshow("frame", color_image)
key = cv2.waitKey(1)
if key == 27:
print('esc break...')
cv2.destroyAllWindows()
break
main()
To Create and persist record configuration:
python -m markit_rs_recorder configure
To launch a remote record station that supports REST API
python -m markit_rs_recorder serve
To launch a remote record station that is calibrated
python -m markit_rs_recorder serve --calibration=path/to/calibration
Note: The calibration.json file is expected to be in the
path/to/calibration
directory. The calibration file can be generated by runningpython -m realsense_recorder calibrate
To run calibration
python -m markit_rs_recorder calibrate
To run post-processing
python -m markit_rs_recorder post_process --base_dir path/to/recording