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)| Skill | Description |
|---|---|
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)