Skip to content

Requested gtsam calibration was gtsam::Cal3_S2 which is unsupported by this camera model: None #28

@cywhitebear

Description

@cywhitebear

Description

When I tried to run the program with this command:

ros2 run dynosam_utils eval_launch.py
   --output_path=/root/results/vkitti_2
   --name test_1
   --run_pipeline
   --data_provider_type=1
   --dataset_path=/root/data/vkitti_2

But it ended with an error:

[dynosam_node-1] terminate called after throwing an instance of 'dyno::InvalidCameraCalibration' 
[dynosam_node-1] what(): Requested gtsam calibration was gtsam::Cal3_S2 which is unsupported by this camera model: None

The full output of the program is below.

Log

root@yun-lab-computer:/home/user/dev_ws# ros2 run dynosam_utils eval_launch.py \ 
  --output_path=/root/results/vkitti_2 \
  --name test_1 \
  --run_pipeline \
  --data_provider_type=1 \
  --dataset_path=/root/data/vkitti_2
/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.3
  warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}"
WARNING: LaTeX backend not configured properly. Not using.
INFO:root:Running launch using dynosam_ros launch file dyno_sam_launch.py
INFO:root:Setting output folder path: /root/results/vkitti_2/test_1
INFO:root:Running pipeline...
[INFO] [launch]: All log files can be found below /root/.ros/log/2025-09-16-09-47-39-680115-yun-lab-computer-461857
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [dynosam_launch_utils.user]: Loading default dynosam params folder path which is expected to be in the share directory of the dynosam package
[INFO] [dynosam_launch_utils.user]: Adding additional sys.argv arguements: ['--data_provider_type=1']
[INFO] [dynosam_launch_utils.user]: Adding arguments ['--flagfile=/home/user/dev_ws/install/dynosam/share/dynosam/params/pipeline.flags', '--flagfile=/home/user/dev_ws/install/dynosam/share/dynosam/params/frontend.flags', '--flagfile=/home/user/dev_ws/install/dynosam/share/dynosam/params/backend.flags', '--v=30', '--data_provider_type=1', '--output_path=/root/results/vkitti_2/test_1']
[INFO] [dynosam_launch_utils.user]: Setting executable to: dynosam_node
[INFO] [dynosam_launch_utils.user]: Outputting to screen
[INFO] [dynosam_launch_utils.user]: Setting up world to robot transform
[INFO] [dynosam_node-1]: process started with pid [461890]
[INFO] [static_transform_publisher-2]: process started with pid [461892]
[static_transform_publisher-2] [WARN] [1758016059.761423623] []: Old-style arguments are deprecated; see --help for new-style arguments
[static_transform_publisher-2] [INFO] [1758016059.768522909] [static_transform_publisher_CqT6CtQBKb0YyZ0l]: Spinning until stopped - publishing transform
[static_transform_publisher-2] translation: ('0.000000', '0.000000', '0.000000')
[static_transform_publisher-2] rotation: ('0.499602', '-0.500000', '0.500000', '0.500398')
[static_transform_publisher-2] from 'world' to 'robot'
[dynosam_node-1] [INFO] [1758016059.861281456] [dynosam.dynosam]: Starting DynoNode
[dynosam_node-1] [INFO] [1758016059.861600156] [dynosam.dynosam]: Loading Dyno VO params from: /home/user/dev_ws/install/dynosam/share/dynosam/params/
[dynosam_node-1] [INFO] [1758016059.865813988] [dynosam.dynosam]: Starting DynoPipelineManagerRos
[dynosam_node-1] I0916 09:47:39.870041 461890 DSDCommonRos.cc:21] Constructed DSDTransport with effective namespace /dynosam/frontend
[dynosam_node-1] I0916 09:47:39.882480 461890 DSDCommonRos.cc:21] Constructed DSDTransport with effective namespace /dynosam/frontend/ground_truth
[dynosam_node-1] I0916 09:47:39.883275 461890 DSDCommonRos.cc:21] Constructed DSDTransport with effective namespace /dynosam/backend
[dynosam_node-1] [INFO] [1758016059.884140594] [dynosam.dynosam]: Loading dataset from: /root/data/vkitti_2
[dynosam_node-1] I0916 09:47:39.884181 461890 DataProviderFactory.cc:53] Using Virtual KITTI dataset at path: /root/data/vkitti_2
[dynosam_node-1] I0916 09:47:39.884435 461890 VirtualKittidataProvider.cc:844] Starting VirtualKittiDataLoader with path /root/data/vkitti_2 requested scene Scene20 and scene type clone
[dynosam_node-1] I0916 09:47:39.884528 461890 VirtualKittidataProvider.cc:315] Loading BBox metadta for virtual kitti datasetat path: /root/data/vkitti_2/vkitti_2.0.3_textgt/Scene20/clone/bbox.txt
[dynosam_node-1] I0916 09:47:40.364977 461890 VirtualKittidataProvider.cc:394] Loading Object pose metadta for virtual kitti datasetat path: /root/data/vkitti_2/vkitti_2.0.3_textgt/Scene20/clone/pose.txt
[dynosam_node-1] I0916 09:47:41.381389 461890 VirtualKittidataProvider.cc:530] Camera pose data for virtual kitti datasetat path: /root/data/vkitti_2/vkitti_2.0.3_textgt/Scene20/clone/extrinsic.txt
[dynosam_node-1] I0916 09:47:41.524425 461890 VirtualKittidataProvider.cc:871] Using MaskType::MOTION for loading mask
[dynosam_node-1] I0916 09:47:41.524621 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524664 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524677 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524679 461890 DatasetLoader.hpp:418] Done folder validate
[dynosam_node-1] I0916 09:47:41.524710 461890 DatasetProvider.hpp:141] Made default dataset
[dynosam_node-1] I0916 09:47:41.524739 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524751 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524760 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524773 461890 DatasetLoader.hpp:481] Validated dataset folder: "/root/data/vkitti_2/"
[dynosam_node-1] I0916 09:47:41.524777 461890 DatasetLoader.hpp:418] Done folder validate
[dynosam_node-1] I0916 09:47:41.524811 461890 DatasetProvider.hpp:144] Made generic dataset
[dynosam_node-1] E0916 09:47:41.524814 461890 DatasetProvider.hpp:146] DynoDataset prepared with an expected size of 836 - loaded from timestamps file found at "/root/data/vkitti_2/"
[dynosam_node-1] W0916 09:47:41.524866 461890 DatasetProvider.hpp:286] Updating ending frame-1
[dynosam_node-1] [INFO] [1758016061.524881072] [dynosam.dynosam]: Constructed data loader
[dynosam_node-1] I0916 09:47:41.525079 461890 PipelineManager.cc:55] Starting DynoPipelineManager
[dynosam_node-1] I0916 09:47:41.525246 461890 PipelineManager.cc:82] Using camera params from DataProvider, not the config in the CameraParams.yaml!
[dynosam_node-1] I0916 09:47:41.525271 461890 PipelineManager.cc:220] Making RGBDInstance frontend
[dynosam_node-1] terminate called after throwing an instance of 'dyno::InvalidCameraCalibration'
[dynosam_node-1]   what():  Requested gtsam calibration was gtsam::Cal3_S2 which is unsupported by this camera model: None
[ERROR] [dynosam_node-1]: process has died [pid 461890, exit code -6, cmd '/home/user/dev_ws/install/dynosam_ros/lib/dynosam_ros/dynosam_node --flagfile=/home/user/dev_ws/install/dynosam/share/dynosam/params/pipeline.flags --flagfile=/home/user/dev_ws/install/dynosam/share/dynosam/params/frontend.flags --flagfile=/home/user/dev_ws/install/dynosam/share/dynosam/params/backend.flags --v=30 --data_provider_type=1 --output_path=/root/results/vkitti_2/test_1 --ros-args --params-file /tmp/launch_params_zraeihlu --params-file /tmp/launch_params_8_mtrnb2 --params-file /tmp/launch_params_6zi0h3a4 --params-file /tmp/launch_params_b8p_5djg --params-file /tmp/launch_params_a3lkylbp -r dataprovider/image/camera_info:=/dyno/camera/camera_info -r dataprovider/image/rgb:=/dyno/camera/rgb -r dataprovider/image/depth:=/dyno/camera/depth -r dataprovider/image/mask:=/dyno/camera/motion_mask -r dataprovider/image/flow:=/dyno/camera/optical_flow'].
[INFO] [dynosam_launch_utils.user]: Program node dynosam_node-1 has exited - shutting down!
[INFO] [launch]: process[dynosam_node-1] was required: shutting down launched system
[INFO] [static_transform_publisher-2]: sending signal 'SIGINT' to process[static_transform_publisher-2]
[static_transform_publisher-2] [INFO] [1758016061.652426530] [rclcpp]: signal_handler(signum=2)
[INFO] [static_transform_publisher-2]: process has finished cleanly [pid 461892]
[ros2run]: Process exited with failure 1

Environment

I only made some minor adjustment to the dockerfile when building my container.
There are two adjustment I made after I built the container.

  1. Change numpy version as you mentioned in INSTALL.md
sudo apt remove python3-matplotlib
python3 -m pip install numpy==1.26.3
  1. Install gtsam with pip install gtsam==4.2
    Because when I first installed with the Dockerfile's method, I will get ModuleNotFoundError: No module named 'gtsam' when I run DynOSAM.
    Even if I add -DGTSAM_BUILD_PYTHON=ON and -DGTSAM_PYTHON_VERSION=3.10.12 to cmake command, building it will give error like this:
/root/gtsam/build/python/navigation.cpp: In lambda function:
/root/gtsam/build/python/navigation.cpp:176:89: error: ‘class gtsam::PreintegratedImuMeasurements’ has no member named ‘preintegrated’
  176 |         .def("preintegrated",[](gtsam::PreintegratedImuMeasurements* self){return self->preintegrated();})
      |                                                                                         ^~~~~~~~~~~~~
make[2]: *** [python/CMakeFiles/gtsam_py.dir/build.make:349: python/CMakeFiles/gtsam_py.dir/navigation.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:6939: python/CMakeFiles/gtsam_py.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

So eventually I use pip install gtsam==4.2 to resolve the ModuleNotFoundError: No module named 'gtsam' problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions