Skip to content

Multi-Camera Dataset

SUMMARY

telekinesis.axon.io reads and writes the multi-camera dataset layout directly, for callers that manage their own capture loop instead of using DataCollector.

The Skill

python
next_index = io.next_multi_camera_capture_index(data_dir, num_cameras)
io.save_multi_camera_capture(data_dir, frames, capture_index, annotated_images=[])
io.save_multi_camera_robot_poses(data_dir, robot_T_tcp_list, num_cameras)
robot_T_tcp_list = io.load_multi_camera_robot_poses(data_dir)
image_lists = io.load_multi_camera_dataset(data_dir, num_cameras)
SkillDescription
next_multi_camera_capture_index(data_dir, num_cameras)Highest existing image_NN.png index across all camera folders, plus one, lets repeated capture sessions append rather than overwrite.
save_multi_camera_capture(data_dir, frames, capture_index, annotated_images=[])Save one synchronized capture across len(frames) cameras.
save_multi_camera_robot_poses(data_dir, robot_T_tcp_list, num_cameras)Write the shared robot_T_tcp_list into every cam_NN folder.
load_multi_camera_robot_poses(data_dir)Read robot_T_tcp_list from the first cam_NN folder that has it. Empty list if nothing has been saved yet.
load_multi_camera_dataset(data_dir, num_cameras)Read back image_lists[cam][frame] with equal per-camera frame counts.

The Code

python
from telekinesis.axon import io

next_index = io.next_multi_camera_capture_index(data_dir, num_cameras)
io.save_multi_camera_capture(data_dir, frames, capture_index, annotated_images=[])
io.save_multi_camera_robot_poses(data_dir, robot_T_tcp_list, num_cameras)
robot_T_tcp_list = io.load_multi_camera_robot_poses(data_dir)
image_lists = io.load_multi_camera_dataset(data_dir, num_cameras)