def callback(packet: PointcloudPacket) -> None:
colors: np.ndarray = packet.colorize_frame
depth: np.ndarray = packet.depth_map.getFrame(copy=True)
camera = OakCamera(device=camera_ip)
color = camera.create_camera('color', resolution=RESOLUTION, fps=FPS)
stereo = camera.create_stereo(resolution=RESOLUTION, fps=FPS)
stereo.set_auto_ir(auto_mode=True, continuous_mode=True)
stereo.config_stereo(align=color)
pcl = camera.create_pointcloud(stereo=stereo, colorize=color)
camera.callback(pcl, callback, False)
camera.start(False)
having colors and depth, u can create rgbd and then pcd (using o3d and camera intrinsics)