gello_software/experiments/launch_camera_nodes.py

41 lines
1 KiB
Python
Raw Normal View History

from dataclasses import dataclass
from multiprocessing import Process
import tyro
from gello.cameras.realsense_camera import RealSenseCamera, get_device_ids
from gello.zmq_core.camera_node import ZMQServerCamera
@dataclass
class Args:
# hostname: str = "127.0.0.1"
hostname: str = "128.32.175.167"
def launch_server(port: int, camera_id: int, args: Args):
camera = RealSenseCamera(camera_id)
server = ZMQServerCamera(camera, port=port, host=args.hostname)
print(f"Starting camera server on port {port}")
server.serve()
def main(args):
ids = get_device_ids()
camera_port = 5000
camera_servers = []
for camera_id in ids:
# start a python process for each camera
print(f"Launching camera {camera_id} on port {camera_port}")
camera_servers.append(
Process(target=launch_server, args=(camera_port, camera_id, args))
)
camera_port += 1
for server in camera_servers:
server.start()
if __name__ == "__main__":
main(tyro.cli(Args))