NVIDIA-ISAAC-ROS / isaac_ros_apriltag

NVIDIA-accelerated Apriltag detection and pose estimation.
https://developer.nvidia.com/isaac-ros-gems
Apache License 2.0
107 stars 19 forks source link

"ERROR extensions/tensor_ops/ImageUtils.cpp@106: invalid distortion type" when launching isaac_ros_argus_apriltag_pipeline.launch.py #22

Closed Lanzo98 closed 1 year ago

Lanzo98 commented 1 year ago

Trying to make work the apriltag on a jetson xavier nx using an Arducam IMX219. Done the calibration following this. Using the ost.txt file, and changing to .ini, I added the path to the file under params inside the launch file of isaac_ros_argus_apriltag_pipeline, and argus_camera node finds it correctly. But I get the following error: ERROR extensions/tensor_ops/ImageUtils.cpp@106: invalid distortion type

Here the full log:

nvidia@nvidia-desktop:~/workspaces/isaac_ros-dev_CUDA$ ros2 launch isaac_ros_apriltag isaac_ros_argus_apriltag_pipeline.launch.py
[INFO] [launch]: All log files can be found below /home/nvidia/.ros/log/2023-02-03-07-53-05-449449-nvidia-desktop-12222
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container_mt-1]: process started with pid [12236]
[component_container_mt-1] [INFO] [1675410786.929724959] [apriltag_container]: Load Library: /home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_argus_camera/lib/libmono_node.so
[component_container_mt-1] [INFO] [1675410787.182959153] [NitrosContext]: [NitrosContext] Creating a new shared context
[component_container_mt-1] [INFO] [1675410787.184281801] [apriltag_container]: Found class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::argus::ArgusMonoNode>
[component_container_mt-1] [INFO] [1675410787.184446824] [apriltag_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::argus::ArgusMonoNode>
[component_container_mt-1] [INFO] [1675410787.222202817] [argus_mono]: [NitrosNode] Initializing NitrosNode
[component_container_mt-1] [INFO] [1675410787.255069399] [argus_mono]: [NitrosNode] Starting NitrosNode
[component_container_mt-1] [INFO] [1675410787.255241590] [argus_mono]: [NitrosNode] Loading built-in preset extension specs
[component_container_mt-1] [INFO] [1675410787.266572753] [argus_mono]: [NitrosNode] Loading built-in extension specs
[component_container_mt-1] [INFO] [1675410787.266750128] [argus_mono]: [NitrosNode] Loading preset extension specs
[component_container_mt-1] [INFO] [1675410787.269772605] [argus_mono]: [NitrosNode] Loading extension specs
[component_container_mt-1] [INFO] [1675410787.269890525] [argus_mono]: [NitrosNode] Loading generator rules
[component_container_mt-1] [INFO] [1675410787.270728920] [argus_mono]: [NitrosNode] Loading extensions
[component_container_mt-1] [INFO] [1675410787.276499060] [argus_mono]: [NitrosContext] Loading extension: gxf/std/libgxf_std.so
[component_container_mt-1] [INFO] [1675410787.291493816] [argus_mono]: [NitrosContext] Loading extension: gxf/cuda/libgxf_cuda.so
[component_container_mt-1] [INFO] [1675410787.302714164] [argus_mono]: [NitrosContext] Loading extension: gxf/serialization/libgxf_serialization.so
[component_container_mt-1] [INFO] [1675410787.315352486] [argus_mono]: [NitrosContext] Loading extension: gxf/libgxf_sight.so
[component_container_mt-1] [INFO] [1675410787.326825184] [argus_mono]: [NitrosContext] Loading extension: gxf/libgxf_atlas.so
[component_container_mt-1] [INFO] [1675410787.340604108] [argus_mono]: [NitrosContext] Loading extension: gxf/libgxf_isaac_messages.so
[component_container_mt-1] [INFO] [1675410787.352840385] [argus_mono]: [NitrosContext] Loading extension: gxf/multimedia/libgxf_multimedia.so
[component_container_mt-1] [INFO] [1675410787.360204308] [argus_mono]: [NitrosContext] Loading extension: gxf/tensorops/libgxf_tensorops.so
[component_container_mt-1] [INFO] [1675410787.411666681] [argus_mono]: [NitrosContext] Loading extension: gxf/libgxf_argus.so
[component_container_mt-1] [INFO] [1675410788.091216122] [argus_mono]: [NitrosContext] Loading extension: gxf/libgxf_message_compositor.so
[component_container_mt-1] [INFO] [1675410788.106772091] [argus_mono]: [NitrosNode] Loading graph to the optimizer
[component_container_mt-1] [INFO] [1675410788.125271273] [argus_mono]: [NitrosNode] Running optimization
[component_container_mt-1] [INFO] [1675410788.185335866] [argus_mono]: [NitrosNode] Obtaining graph IO group info from the optimizer
[component_container_mt-1] [INFO] [1675410788.188370151] [argus_mono]: [NitrosNode] Creating negotiated publishers/subscribers
[component_container_mt-1] [INFO] [1675410788.215406274] [argus_mono]: [NitrosNode] Starting negotiation...
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/argus_mono' in container '/apriltag_container'
[component_container_mt-1] [INFO] [1675410788.241623041] [apriltag_container]: Load Library: /home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_image_proc/lib/librectify_node.so
[component_container_mt-1] [INFO] [1675410788.250384364] [apriltag_container]: Found class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::image_proc::RectifyNode>
[component_container_mt-1] [INFO] [1675410788.250612490] [apriltag_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::image_proc::RectifyNode>
[component_container_mt-1] [INFO] [1675410788.288077861] [rectify_node]: [NitrosNode] Initializing NitrosNode
[component_container_mt-1] [INFO] [1675410788.300755959] [rectify_node]: [NitrosNode] Starting NitrosNode
[component_container_mt-1] [INFO] [1675410788.300990518] [rectify_node]: [NitrosNode] Loading built-in preset extension specs
[component_container_mt-1] [INFO] [1675410788.309887807] [rectify_node]: [NitrosNode] Loading built-in extension specs
[component_container_mt-1] [INFO] [1675410788.310071550] [rectify_node]: [NitrosNode] Loading preset extension specs
[component_container_mt-1] [INFO] [1675410788.325908221] [rectify_node]: [NitrosNode] Loading extension specs
[component_container_mt-1] [INFO] [1675410788.326097372] [rectify_node]: [NitrosNode] Loading generator rules
[component_container_mt-1] [INFO] [1675410788.326993111] [rectify_node]: [NitrosNode] Loading extensions
[component_container_mt-1] [INFO] [1675410788.358016217] [rectify_node]: [NitrosNode] Loading graph to the optimizer
[component_container_mt-1] [INFO] [1675410788.371927268] [rectify_node]: [NitrosNode] Running optimization
[component_container_mt-1] [INFO] [1675410788.505222996] [rectify_node]: [NitrosNode] Obtaining graph IO group info from the optimizer
[component_container_mt-1] [INFO] [1675410788.509017309] [rectify_node]: [NitrosNode] Creating negotiated publishers/subscribers
[component_container_mt-1] [INFO] [1675410788.541765364] [rectify_node]: [NitrosNode] Starting negotiation...
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/rectify_node' in container '/apriltag_container'
[component_container_mt-1] [INFO] [1675410788.548604010] [argus_mono]: Negotiating
[component_container_mt-1] [INFO] [1675410788.550238016] [argus_mono]: Negotiating
[component_container_mt-1] [INFO] [1675410788.560203331] [rectify_node]: Negotiating
[component_container_mt-1] [INFO] [1675410788.560408546] [rectify_node]: Could not negotiate
[component_container_mt-1] [INFO] [1675410788.560541633] [rectify_node]: Negotiating
[component_container_mt-1] [INFO] [1675410788.560632225] [rectify_node]: Could not negotiate
[component_container_mt-1] [INFO] [1675410788.565513923] [apriltag_container]: Load Library: /home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_apriltag/lib/libapriltag_node.so
[component_container_mt-1] [INFO] [1675410788.583321014] [apriltag_container]: Found class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::apriltag::AprilTagNode>
[component_container_mt-1] [INFO] [1675410788.583548757] [apriltag_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::apriltag::AprilTagNode>
[component_container_mt-1] [INFO] [1675410788.624060061] [apriltag]: [NitrosNode] Initializing NitrosNode
[component_container_mt-1] [INFO] [1675410788.636807759] [apriltag]: [NitrosNode] Starting NitrosNode
[component_container_mt-1] [INFO] [1675410788.637164620] [apriltag]: [NitrosNode] Loading built-in preset extension specs
[component_container_mt-1] [INFO] [1675410788.647176527] [apriltag]: [NitrosNode] Loading built-in extension specs
[component_container_mt-1] [INFO] [1675410788.647365838] [apriltag]: [NitrosNode] Loading preset extension specs
[component_container_mt-1] [INFO] [1675410788.652999948] [apriltag]: [NitrosNode] Loading extension specs
[component_container_mt-1] [INFO] [1675410788.653169482] [apriltag]: [NitrosNode] Loading generator rules
[component_container_mt-1] [INFO] [1675410788.654945120] [apriltag]: [NitrosNode] Loading extensions
[component_container_mt-1] [INFO] [1675410788.695975364] [apriltag]: [NitrosContext] Loading extension: gxf/libgxf_fiducials.so
[component_container_mt-1] [INFO] [1675410788.750947060] [apriltag]: [NitrosNode] Loading graph to the optimizer
[component_container_mt-1] [INFO] [1675410788.770211262] [apriltag]: [NitrosNode] Running optimization
[component_container_mt-1] [INFO] [1675410789.058257563] [apriltag]: [NitrosNode] Obtaining graph IO group info from the optimizer
[component_container_mt-1] [INFO] [1675410789.065687054] [apriltag]: [NitrosNode] Creating negotiated publishers/subscribers
[component_container_mt-1] [INFO] [1675410789.098822243] [apriltag]: [NitrosNode] Starting negotiation...
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/apriltag' in container '/apriltag_container'
[component_container_mt-1] [INFO] [1675410789.103514854] [rectify_node]: Negotiating
[component_container_mt-1] [INFO] [1675410789.104905566] [argus_mono]: Negotiating
[component_container_mt-1] [INFO] [1675410789.106221846] [rectify_node]: Negotiating
[component_container_mt-1] [INFO] [1675410789.107232207] [argus_mono]: Negotiating
[component_container_mt-1] [INFO] [1675410789.115495933] [apriltag]: Negotiating
[component_container_mt-1] [INFO] [1675410789.115691388] [apriltag]: Could not negotiate
[component_container_mt-1] [INFO] [1675410789.224442626] [argus_mono]: [NitrosNode] Starting post negotiation setup
[component_container_mt-1] [INFO] [1675410789.224696416] [argus_mono]: [NitrosNode] Getting data format negotiation results
[component_container_mt-1] [INFO] [1675410789.224797376] [argus_mono]: [NitrosPublisher] Use the negotiated data format: "nitros_image_rgb8"
[component_container_mt-1] [INFO] [1675410789.224876287] [argus_mono]: [NitrosPublisher] Use the negotiated data format: "nitros_camera_info"
[component_container_mt-1] [INFO] [1675410789.225082334] [argus_mono]: [NitrosNode] Exporting the final graph based on the negotiation results
[component_container_mt-1] [INFO] [1675410789.258313331] [argus_mono]: [NitrosNode] Wrote the final top level YAML graph to "/home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_argus_camera/share/isaac_ros_argus_camera/FPHWKRYABH.yaml"
[component_container_mt-1] [INFO] [1675410789.258549809] [argus_mono]: [NitrosNode] Calling user's pre-load-graph callback
[component_container_mt-1] [INFO] [1675410789.258627121] [argus_mono]: [NitrosNode] Loading application
[component_container_mt-1] [INFO] [1675410789.258734192] [argus_mono]: [NitrosContext] Loading application: '/home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_argus_camera/share/isaac_ros_argus_camera/FPHWKRYABH.yaml'
[component_container_mt-1] 2023-02-03 07:53:09.273 WARN  gxf/std/yaml_file_loader.cpp@459: Using unregistered parameter 'left_camera_frame' in component ''.
[component_container_mt-1] 2023-02-03 07:53:09.273 WARN  gxf/std/yaml_file_loader.cpp@459: Using unregistered parameter 'right_camera_frame' in component ''.
[component_container_mt-1] 2023-02-03 07:53:09.273 WARN  gxf/std/yaml_file_loader.cpp@459: Using unregistered parameter 'camera_info_url' in component ''.
[component_container_mt-1] 2023-02-03 07:53:09.273 WARN  gxf/std/yaml_file_loader.cpp@459: Using unregistered parameter 'transmitter' in component ''.
[component_container_mt-1] [INFO] [1675410789.276345316] [argus_mono]: [NitrosNode] Linking Nitros pub/sub to the loaded application
[component_container_mt-1] [INFO] [1675410789.276854241] [argus_mono]: [NitrosNode] Calling user's post-load-graph callback
[component_container_mt-1] [INFO] [1675410789.277265311] [argus_mono]: [NitrosContext] Initializing applicaiton...
[component_container_mt-1] [INFO] [1675410789.547914630] [rectify_node]: [NitrosNode] Starting post negotiation setup
[component_container_mt-1] [INFO] [1675410789.548378307] [rectify_node]: [NitrosNode] Getting data format negotiation results
[component_container_mt-1] [INFO] [1675410789.548482371] [rectify_node]: [NitrosPublisher] Use the negotiated data format: "nitros_image_rgb8"
[component_container_mt-1] [INFO] [1675410789.548561058] [rectify_node]: [NitrosPublisher] Use the negotiated data format: "nitros_camera_info"
[component_container_mt-1] [INFO] [1675410789.553914562] [rectify_node]: [NitrosSubscriber] Use the negotiated data format: "nitros_image_rgb8"
[component_container_mt-1] [INFO] [1675410789.554151072] [rectify_node]: [NitrosSubscriber] Use the negotiated data format: "nitros_camera_info"
[component_container_mt-1] [INFO] [1675410789.554350943] [rectify_node]: [NitrosNode] Exporting the final graph based on the negotiation results
[component_container_mt-1] [INFO] [1675410789.577738096] [rectify_node]: [NitrosNode] Wrote the final top level YAML graph to "/home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_image_proc/share/isaac_ros_image_proc/SEORPMQFEN.yaml"
[component_container_mt-1] [INFO] [1675410789.577983662] [rectify_node]: [NitrosNode] Calling user's pre-load-graph callback
[component_container_mt-1] [INFO] [1675410789.578079790] [rectify_node]: [RectifyNode] preLoadGraphCallback().
[component_container_mt-1] [INFO] [1675410789.578222413] [rectify_node]: [NitrosNode] Loading application
[component_container_mt-1] [INFO] [1675410790.093933528] [argus_mono]: [NitrosContext] Running appliation...
[component_container_mt-1] [INFO] [1675410790.094544405] [rectify_node]: [NitrosContext] Loading application: '/home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_image_proc/share/isaac_ros_image_proc/SEORPMQFEN.yaml'
[component_container_mt-1] [INFO] [1675410790.102540548] [apriltag]: [NitrosNode] Starting post negotiation setup
[component_container_mt-1] [INFO] [1675410790.102780450] [apriltag]: [NitrosNode] Getting data format negotiation results
[component_container_mt-1] [INFO] [1675410790.102882338] [apriltag]: [NitrosPublisher] Negotiation failed
[component_container_mt-1] [INFO] [1675410790.102957921] [apriltag]: [NitrosPublisher] Use only the compatible publisher: topic_name="/tag_detections", data_format="nitros_april_tag_detection_array"
[component_container_mt-1] [INFO] [1675410790.103036609] [apriltag]: [NitrosSubscriber] Use the negotiated data format: "nitros_camera_info"
[component_container_mt-1] [INFO] [1675410790.105821808] [apriltag]: [NitrosSubscriber] Use the negotiated data format: "nitros_image_rgb8"
[component_container_mt-1] [INFO] [1675410790.106068302] [apriltag]: [NitrosNode] Exporting the final graph based on the negotiation results
[component_container_mt-1] [INFO] [1675410790.113424929] [rectify_node]: [NitrosNode] Linking Nitros pub/sub to the loaded application
[component_container_mt-1] [INFO] [1675410790.114057213] [rectify_node]: [NitrosNode] Calling user's post-load-graph callback
[component_container_mt-1] [INFO] [1675410790.114238428] [rectify_node]: [RectifyNode] postLoadGraphCallback().
[component_container_mt-1] [INFO] [1675410790.114665338] [rectify_node]: [NitrosContext] Initializing applicaiton...
[component_container_mt-1] [INFO] [1675410790.130633144] [apriltag]: [NitrosNode] Wrote the final top level YAML graph to "/home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_apriltag/share/isaac_ros_apriltag/HREEMTJPRC.yaml"
[component_container_mt-1] [INFO] [1675410790.130865782] [apriltag]: [NitrosNode] Calling user's pre-load-graph callback
[component_container_mt-1] [INFO] [1675410790.130962614] [apriltag]: [NitrosNode] Loading application
[component_container_mt-1] [INFO] [1675410790.156100220] [rectify_node]: [NitrosContext] Running appliation...
[component_container_mt-1] [INFO] [1675410790.156570329] [apriltag]: [NitrosContext] Loading application: '/home/nvidia/workspaces/isaac_ros-dev_CUDA/install/isaac_ros_apriltag/share/isaac_ros_apriltag/HREEMTJPRC.yaml'
[component_container_mt-1] [INFO] [1675410790.173925839] [apriltag]: [NitrosNode] Linking Nitros pub/sub to the loaded application
[component_container_mt-1] [INFO] [1675410790.174548875] [apriltag]: [NitrosNode] Calling user's post-load-graph callback
[component_container_mt-1] [INFO] [1675410790.174866505] [apriltag]: [NitrosContext] Initializing applicaiton...
[component_container_mt-1] [INFO] [1675410790.254280611] [apriltag]: [NitrosContext] Running appliation...
[component_container_mt-1] 2023-02-03 07:53:10.713 WARN  extensions/hawk/argus_camera.cpp@677: Failed to get calibration data from Argus!
[component_container_mt-1] 2023-02-03 07:53:11.330 ERROR extensions/tensor_ops/ImageUtils.cpp@106: invalid distortion type.
[component_container_mt-1] 2023-02-03 07:53:11.330 ERROR extensions/tensor_ops/TensorOperator.cpp@186: operation failed.
[component_container_mt-1] 2023-02-03 07:53:11.331 WARN  gxf/std/greedy_scheduler.cpp@221: Error while executing entity 61 named 'SEORPMQFEN_rectifier': GXF_FAILURE
[component_container_mt-1] 2023-02-03 07:53:11.333 ERROR gxf/std/entity_executor.cpp@200: Entity with 79 not found!
[component_container_mt-1] [ERROR] [1675410791.334310673] [rectify_node]: [NitrosPublisher] Vault ("image_vault/vault", eid=79) was stopped. The graph may have been terminated due to an error.
[component_container_mt-1] terminate called after throwing an instance of 'std::runtime_error'
[component_container_mt-1]   what():  [NitrosPublisher] Vault ("image_vault/vault", eid=79) was stopped. The graph may have been terminated due to an error.
[ERROR] [component_container_mt-1]: process has died [pid 12236, exit code -6, cmd '/home/nvidia/ros2_humble/install/rclcpp_components/lib/rclcpp_components/component_container_mt --ros-args -r __node:=apriltag_container -r __ns:=/'].
gorghino commented 1 year ago

Hi! I'm experiencing the same @Lanzo98 's problem with my Jetson NX and a IMX219. Randomly I'm getting four different errors once I run the image pipeline: 1) invalid distortion type distortionError.log

2) code=2(cudaErrorMemoryAllocation) cudaError.log

3) code=2(cudaErrorMemoryAllocation) + Failed to copy luma plane into left video buffer. Cuda error code = 700 cudaError2.log

4) code=2(cudaErrorMemoryAllocation) + color conversion operation failed. colorConversion.log

The cudaErrorMemoryAllocation error is reported (in a quirk way) even into dmesg: dmesg_cudaError.log

Only once I could run the pipeline without any error but /image_rect was zero.

nvidia@nvidia-desktop:~/.ros/log$ ros2 topic echo /image_rect
header:
  stamp:
    sec: 366
    nanosec: 156276095
  frame_id: left_cam
height: 1080
width: 1920
encoding: rgb8
is_bigendian: 0
step: 5760
data:
- 0
- 0
- 0
- 0
- 0

jtop doesn't show any GPU usage before running the pipeline. lightdm is disabled.

image

I built all the packages in my workspace from scratch with colcon build --symlink-install. I had to fix a couple of compilation errors though:

/home/nvidia/ws/isaac/src/isaac_ros_image_pipeline/isaac_ros_image_proc/src/image_format_converter_node.cpp:29:10: fatal error: sensor_msgs/sensor_msgs/image_encodings.hpp: No such file or directory
   29 | #include "sensor_msgs/sensor_msgs/image_encodings.hpp"
/home/nvidia/ws/isaac/src/isaac_ros_nitros/isaac_ros_nitros_type/isaac_ros_nitros_image_type/src/nitros_image.cpp:30:10: fatal error: sensor_msgs/sensor_msgs/image_encodings.hpp: No such file or directory
   30 | #include "sensor_msgs/sensor_msgs/image_encodings.hpp"

I removed the first sensor_msgs from both the include. I'm using ROS Humble and inside the worspace I cloned:

At boot I do:

echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
sudo jetson_clocks
hemalshahNV commented 1 year ago

Could you post the contents of the calibration file you're using or post what distortion model is being used for the parameters? There are distortion models that are not supported but it could just be different naming issue (plumb bob, rational polynomial, etc.).

The CUDA malloc errors could be occurring because NITROS is preparing buffers for too many 4K images in the pipeline. You could try to tune this value down in the file: isaac_ros_apriltag/isaac_ros_apriltag/config/apriltag_node.yaml and reduce tyhe number of blocks listed for nvidia::gxf::BlockMemoryPool:

  parameters:
    storage_type: 1
    block_size: 14400000
    num_blocks: 40

You can tune down the num_blocks from 40 to 20 AND decrease the value of 12 for "capacity" parameters elsewhere in the graph to "6". We'll try to reproduce this issue on an Xavier NX with 4K images coming from an IMX219 but this may help unblock you in the mean time.

The "sensor_msgs/" include path issue was previously reported here: https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros/issues/7. We're pushing out a hotfix for this now. Thanks!

gorghino commented 1 year ago

Hi @hemalshahNV sorry for the late reply but we haven't had time to test it yet.

This was my YAML file:

nvidia@nvidia-desktop:~/workspaces/calibration$ cat ost.yaml
image_width: 3280
image_height: 2464
camera_name: imx219
camera_matrix:
  rows: 3
  cols: 3
  data: [1138.84289,   -0.67278, 1635.71018,
            0.     , 1138.35588, 1208.64805,
            0.     ,    0.     ,    1.     ]
distortion_model: equidistant
distortion_coefficients:
  rows: 1
  cols: 4
  data: [0.036780, 0.009125, -0.009733, -0.010051]
rectification_matrix:
  rows: 3
  cols: 3
  data: [1., 0., 0.,
         0., 1., 0.,
         0., 0., 1.]
projection_matrix:
  rows: 3
  cols: 4
  data: [1138.84289,   -0.67278, 1635.71018,    0.     ,
            0.     , 1138.35588, 1208.64805,    0.     ,
            0.     ,    0.     ,    1.     ,    0.     ]

As soon as I get back to this node, I'll try to tune the values as you recommended. Thank you!