Development of a Unified Multi-Camera Control System for Robotics Laboratory | Julkaisut@SEAMK

Development of a Unified Multi-Camera Control System for Robotics Laboratory

The project 3D-Laatu.AI studies the use of close-range photogrammetry in quality inspections for the manufacturing industry (Hirvonen, 2025). Photogrammetry refers to imaging the target from multiple viewpoints with standard cameras (Luhmann et al., 2019, pp. 2–4). A 3D point cloud of the target is then generated from point correspondences detected between the images. “Close-range” implies that the imaging distance is in meters or less, distinguishing the method from aerial imaging carried out with drones, for example.

The robotics laboratory of SEAMK contains multiple industrial cameras and imaging systems that can be applied in the close-range photogrammetry test bench. However, the laboratory has been lacking an application to control multiple cameras at the same time and to enable synchronized image capturing. Until now, cameras have been operated either through manufacture-provided software or through a project-specific Python applications built on vendor-specific APIs (Hirvonen, 2026).

This article presents the results of a student project that solved this issue. The main objective was to develop SEAMKMultiCameraGUI, a Python-based desktop application that integrates Basler and Hikrobot industrial cameras into a single control interface for research and educational use at SeAMK.

The camera setup used in the project. Three cameras are pointing down in different angles (photo: Nhat Nguyen, 2026).

Software Architecture and Unified Control

The software was implemented using PySide6 and OpenCV. Communication with the cameras is based on the GenICam standard through the Python Harvesters library. The system uses the Hikrobot MVS GenTL Producer (.cti file) to discover, connect to, and manage data streams from both camera brands simultaneously. A multi-threaded architecture was implemented to maintain interface responsiveness during real-time video streaming and parameter adjustment. It enables synchronized multi-camera image acquisition through features such as interval capture and automatic calibration loading.

An important aspect of the project was enabling interoperability between Basler and Hikrobot cameras within the same software environment. The application also automates several network-related settings, including bandwidth allocation and inter-packet delay management, reducing the need for manual configuration by users.

Technical Challenges and Solutions

The development process involved several software and hardware integration challenges, particularly related to high-throughput image streaming and camera configuration. They are explained here briefly.

Network Bottlenecks and Camera Timeouts

Simultaneous streaming of uncompressed high-resolution video feeds over a single network switch initially caused packet collisions and TimeoutException errors. To improve stability, network traffic was regulated through hardware-level configuration in the Python backend. Adjustments included enabling Jumbo Frames, modifying packet sizes, limiting camera throughput, and introducing inter-packet delays to stagger the data streams.

Color Calibration

During testing, the Basler color camera produced inconsistent color output due to automatic firmware-level image adjustments. To address this, automatic color enhancement functions were disabled through the GUI, and manual white balance values were applied using calibration measurements from a standard white reference surface. This produced more consistent raw image data for later processing.

Final System and Deployment

The completed application includes four operational modules:

  1. Real-time multi-camera preview
  2. Hardware-level control of exposure, black level, and white balance
  3. Synchronized image capture and interval-based acquisition
  4. Lens undistortion and calibration support

 

The GUI working view (photo: Nhat Nguyen, 2026).

The software was deployed on a laboratory workstation at SeAMK for collecting datasets used in close-range photogrammetry. The software was tested by gathering data for further experiments done in the 3D-Laatu.AI project. Three main dataset categories were produced:

1. Intrinsic calibration datasets consisting of checkerboard images captured from multiple angles for individual camera calibration.
2. Extrinsic calibration datasets containing synchronized checkerboard images from all cameras for calculating relative camera positions.
3. Object capture datasets consisting of synchronized multi-angle images of industrial components for later 3D reconstruction.

The resulting datasets were organized into camera-specific folders for further processing and comparative tests with commercial photogrammetry software in the SEAMK Extended Reality Lab.

Learning Outcomes

The project provided practical experience in industrial machine vision systems, software integration, and 3D imaging workflows. Key learning areas included configuration of high-throughput GigE camera networks, integration of GenICam-based hardware from different manufacturers, and development of multi-threaded desktop applications using PySide6.

The work also strengthened understanding of photogrammetry and calibration workflows, particularly the role of synchronized image acquisition in 3D reconstruction. In addition, experience was gained in processing point cloud data from an industrial laser profiling sensor (Gocator 2650), including exporting and visualizing measurement data in Python. Overall, the project combined software development, hardware configuration, and image-processing methods within a practical laboratory environment.

Conclusions

The developed multi-camera control system will extend the imaging capabilities of the robotics laboratory and can be applied in the future RDI projects and machine vision related teaching activities. The current usage will concentrate on gathering extensive data sets for developing and testing the close-range photogrammetry algorithms for quality inspections.

The ready control system is available at SEAMK’s GitHub account for free use:  https://github.com/SeAMKedu/MultiCameraUI.

This work was completed as a part of the project 3D-Laatu.AI that is funded by Töysän Säästöpankkisäätiö.

Nhat Nguyen
AE23 student
SEAMK

Juha Hirvonen
Principal lecturer
SEAMK

References

Hirvonen, J. (2026). Compact Contour Comparison Framework for Industrial Inspection on Single-Board Computers. 2026 12th international conference on automation, robotics and applications (ICARA), 381–386. https://doi.org/10.1109/ICARA69401.2026.11480392

Hirvonen, J. (6.11.2025). 3DLaatu.AI-hankkeen tutkimuskohteena 3D-kuvantaminen laadunvarmistuksessa. @SEAMK-verkkolehti. https://urn.fi/URN:NBN:fi-fe20251106105670

Luhmann, T., Robson, S., Kyle, S. & Boehm, J. (2019). Close-Range Photogrammetry and 3D Imaging. Close-Range Photogrammetry and 3D Imaging. De Gruyter. https://doi.org/10.1515/9783110607253