Multi head launch file configuration

It is possible to stream data from multiple cameras or from the two ports of one camera at once. This can be achieved by setting the camera-specific parameters in the launch configuration files, namely pcic-port and buffer_id_lists. We provide examples of default parameters for getting the 2D or 3D data from one camera, or all the data from two full O3R camera (two 2D data streams and two 3D data streams).

o3r_2d.yaml

This example configuration connects to the 2D (RGB) data stream of one O3R camera head connected to port 0:

The ports on the VPU should be connected as follows:

  • Camera 2D: physical port 0 - corresponds to pcic_port=50010

To launch this example, use the following command:

ros2 launch ifm3d_ros2 camera.launch.py camera_name:=camera_2d parameter_file_name:=examples/o3r_2d.yaml

Note: Don’t forget to specify the camera_name parameter if it differs from the default value, “camera”, and the camera_namespace if it differs from the default, “ifm3d”.

o3r_3d.yaml

This example configuration connects to the 3D data stream of one O3R camera head connected to port 2:

The ports on the VPU should be connected as follows:

  • Camera 3D: physical port 2 - corresponds to pcic_port=50012

To launch this example, use the following command:

ros2 launch ifm3d_ros2 camera.launch.py camera_name:=camera_3d parameter_file_name:=examples/o3r_3d.yaml

Note: Don’t forget to specify the camera_name parameter if it differs from the default value, “camera”, and the camera_namespace if it differs from the default, “ifm3d”.

Launching a 2D and a 3D node simultaneously

This example configuration connects to one 3D data stream AND one 2D (RGB) data stream connected to ports 0 and 2:

  • Camera 2D: physical port 0 - corresponds to pcic_port=50010

  • Camera 3D: physical port 2 - corresponds to pcic_port=50012

To launch this example, use the following command:

ros2 launch ifm3d_ros2 example_o3r_2d_and_3d.launch.py 

two_o3r_heads.yaml

This example configuration connects to two 3D data stream AND two 2D (RGB) data stream of two O3R camera head connected to ports 0 - 3:

The ports on the VPU should be connected as follows: Camera head 1:

  • Camera 2D: physical port 0 - corresponds to pcic_port=50010

  • Camera 3D: physical port 2 - corresponds to pcic_port=50012

Camera head 2:

  • Camera 2D: physical port 1 - corresponds to pcic_port=50011

  • Camera 3D: physical port 3 - corresponds to pcic_port=50013

To launch this example, use the following command:

ros2 launch ifm3d_ros2 example_two_o3r_heads.launch.py parameter_file_name:=two_o3r_heads.yaml

Adapting the camera configuration to your needs

The example configurations are provided in the directory config/examples. They can act as inspiration when configuring your own multi-camera setup.

To adjust the configuration to your own setup, use these configuration files as a base to add or remove cameras, change the port number or edit the list of requested buffers.