Closed jeff-delaune closed 2 years ago
I just used the CDE version on 20.04. I that a work around for your problem?
Thanks for the suggestion @niciBume. Using the CDE version on 20.04 leads to same issue as #315.
Back to compiling from source, I have solved a few issues related to OpenCV 4 and python updates. I need to see with my work if I can push them here so everyone can benefit. I am still struggling with the following compilation error though:
jeff@endurance:~/Software/kalibr_ws$ catkin build -DCMAKE_BUILD_TYPE=Release -j4
--------------------------------------------------------------------------------
Profile: default
Extending: [explicit] /opt/ros/noetic
Workspace: /home/jeff/Software/kalibr_ws
--------------------------------------------------------------------------------
Build Space: [exists] /home/jeff/Software/kalibr_ws/build
Devel Space: [exists] /home/jeff/Software/kalibr_ws/devel
Install Space: [unused] /home/jeff/Software/kalibr_ws/install
Log Space: [exists] /home/jeff/Software/kalibr_ws/logs
Source Space: [exists] /home/jeff/Software/kalibr_ws/src
DESTDIR: [unused] None
--------------------------------------------------------------------------------
Devel Space Layout: merged
Install Space Layout: None
--------------------------------------------------------------------------------
Additional CMake Args: -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
Additional Make Args: -j4
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
--------------------------------------------------------------------------------
Whitelisted Packages: None
Blacklisted Packages: None
--------------------------------------------------------------------------------
Workspace configuration appears valid.
--------------------------------------------------------------------------------
[build] Found '37' packages in 0.0 seconds.
[build] Package table is up to date.
Starting >>> catkin_simple
Starting >>> ethz_apriltag2
Starting >>> python_module
Starting >>> sm_common
Finished <<< catkin_simple [ 0.2 seconds ]
Starting >>> sm_logging
Finished <<< sm_common [ 0.3 seconds ]
Starting >>> sm_random
Finished <<< python_module [ 0.2 seconds ]
Starting >>> suitesparse
Finished <<< ethz_apriltag2 [ 0.4 seconds ]
Starting >>> aslam_time
Finished <<< sm_logging [ 0.3 seconds ]
Starting >>> opencv2_catkin
Finished <<< sm_random [ 0.3 seconds ]
Starting >>> sm_boost
Finished <<< suitesparse [ 0.3 seconds ]
Starting >>> sm_matrix_archive
Finished <<< aslam_time [ 0.3 seconds ]
Starting >>> sm_opencv
Finished <<< opencv2_catkin [ 0.2 seconds ]
Starting >>> sm_property_tree
Finished <<< sm_boost [ 0.3 seconds ]
Starting >>> numpy_eigen
Finished <<< sm_matrix_archive [ 0.2 seconds ]
Starting >>> sm_eigen
Finished <<< sm_opencv [ 0.2 seconds ]
Starting >>> sm_timing
Finished <<< sm_property_tree [ 0.3 seconds ]
Finished <<< sm_eigen [ 0.3 seconds ]
Starting >>> sm_kinematics
Finished <<< sm_timing [ 0.2 seconds ]
Starting >>> sparse_block_matrix
Finished <<< numpy_eigen [ 0.7 seconds ]
Finished <<< sm_kinematics [ 0.3 seconds ]
Starting >>> aslam_cameras
Starting >>> sm_python
Finished <<< sparse_block_matrix [ 0.3 seconds ]
Starting >>> aslam_backend
Starting >>> bsplines
Finished <<< aslam_cameras [ 0.3 seconds ]
Starting >>> aslam_cv_serialization
Finished <<< sm_python [ 0.3 seconds ]
Starting >>> aslam_imgproc
Finished <<< bsplines [ 0.3 seconds ]
Starting >>> aslam_cameras_april
Finished <<< aslam_backend [ 0.3 seconds ]
Starting >>> bsplines_python
Finished <<< aslam_cv_serialization [ 0.4 seconds ]
Starting >>> aslam_backend_expressions
Finished <<< aslam_imgproc [ 0.3 seconds ]
Starting >>> incremental_calibration
Finished <<< aslam_cameras_april [ 0.3 seconds ]
Starting >>> aslam_cv_python
Finished <<< bsplines_python [ 0.3 seconds ]
Finished <<< aslam_backend_expressions [ 0.4 seconds ]
Starting >>> aslam_backend_python
Starting >>> aslam_cv_backend
Finished <<< incremental_calibration [ 0.3 seconds ]
Starting >>> aslam_splines
Finished <<< aslam_backend_python [ 0.3 seconds ]
Finished <<< aslam_cv_backend [ 0.3 seconds ]
Finished <<< aslam_splines [ 0.3 seconds ]
Starting >>> incremental_calibration_python
Finished <<< incremental_calibration_python [ 0.3 seconds ]
Starting >>> aslam_cv_error_terms
Finished <<< aslam_cv_error_terms [ 0.2 seconds ]
Starting >>> aslam_splines_python
Finished <<< aslam_splines_python [ 0.3 seconds ]
________________________________________________________________________________________________________________________________________________________________________________________
Errors << aslam_cv_python:make /home/jeff/Software/kalibr_ws/logs/aslam_cv_python/build.make.001.log
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:6,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometry.hpp:4,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras.hpp:5,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraGeometries.cpp:2:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp: In member function ‘sm::Id sm::Id::operator++(int)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:122:14: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
122 | return rval;
| ^~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp: In constructor ‘aslam::cameras::CameraId::CameraId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:24:1: note: in expansion of macro ‘SM_DEFINE_ID’
24 | SM_DEFINE_ID (CameraId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:6,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/UndistorterBase.hpp:4,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/Undistorters.cpp:2:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp: In member function ‘sm::Id sm::Id::operator++(int)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:122:14: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
122 | return rval;
| ^~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:6,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometry.hpp:4,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/OmniUndistorter.hpp:4,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/OmniUndistorter.cpp:2:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp: In member function ‘sm::Id sm::Id::operator++(int)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:122:14: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
122 | return rval;
| ^~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::MultiFrameId::MultiFrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:9:1: note: in expansion of macro ‘SM_DEFINE_ID’
9 | SM_DEFINE_ID (MultiFrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::FrameId::FrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:10:1: note: in expansion of macro ‘SM_DEFINE_ID’
10 | SM_DEFINE_ID (FrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::LandmarkId::LandmarkId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:11:1: note: in expansion of macro ‘SM_DEFINE_ID’
11 | SM_DEFINE_ID (LandmarkId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp: In constructor ‘aslam::cameras::CameraId::CameraId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:24:1: note: in expansion of macro ‘SM_DEFINE_ID’
24 | SM_DEFINE_ID (CameraId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp: In constructor ‘aslam::cameras::CameraId::CameraId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:24:1: note: in expansion of macro ‘SM_DEFINE_ID’
24 | SM_DEFINE_ID (CameraId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::MultiFrameId::MultiFrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:9:1: note: in expansion of macro ‘SM_DEFINE_ID’
9 | SM_DEFINE_ID (MultiFrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::FrameId::FrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:10:1: note: in expansion of macro ‘SM_DEFINE_ID’
10 | SM_DEFINE_ID (FrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::LandmarkId::LandmarkId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:11:1: note: in expansion of macro ‘SM_DEFINE_ID’
11 | SM_DEFINE_ID (LandmarkId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:6,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/GridCalibrationTargetObservation.hpp:15,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/PinholeProjection.hpp:11,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraProjections.cpp:2:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp: In member function ‘sm::Id sm::Id::operator++(int)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:122:14: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
122 | return rval;
| ^~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp: In constructor ‘aslam::cameras::CameraId::CameraId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:24:1: note: in expansion of macro ‘SM_DEFINE_ID’
24 | SM_DEFINE_ID (CameraId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::MultiFrameId::MultiFrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:9:1: note: in expansion of macro ‘SM_DEFINE_ID’
9 | SM_DEFINE_ID (MultiFrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::FrameId::FrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:10:1: note: in expansion of macro ‘SM_DEFINE_ID’
10 | SM_DEFINE_ID (FrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::LandmarkId::LandmarkId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:11:1: note: in expansion of macro ‘SM_DEFINE_ID’
11 | SM_DEFINE_ID (LandmarkId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
In file included from /usr/include/boost/python/converter/rvalue_from_python_data.hpp:10,
from /usr/include/boost/python/converter/registry.hpp:9,
from /usr/include/boost/python/converter/registered.hpp:11,
from /usr/include/boost/python/object/make_instance.hpp:10,
from /usr/include/boost/python/object/make_ptr_instance.hpp:8,
from /usr/include/boost/python/to_python_indirect.hpp:11,
from /usr/include/boost/python/converter/arg_to_python.hpp:10,
from /usr/include/boost/python/call.hpp:15,
from /usr/include/boost/python/object_core.hpp:14,
from /usr/include/boost/python/args.hpp:22,
from /usr/include/boost/python.hpp:11,
from /home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/numpy_eigen/include/numpy_eigen/boost_python_headers.hpp:24,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraProjections.cpp:1:
/usr/include/boost/python/detail/destroy.hpp: In instantiation of ‘static void boost::python::detail::value_destroyer<false>::execute(const volatile T*) [with T = Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >]’:
/usr/include/boost/python/detail/destroy.hpp:52:15: required from ‘void boost::python::detail::destroy_referent_impl(void*, T& (*)()) [with T = const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >]’
/usr/include/boost/python/detail/destroy.hpp:58:26: required from ‘void boost::python::detail::destroy_referent(void*, T (*)()) [with T = const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&]’
/usr/include/boost/python/converter/rvalue_from_python_data.hpp:135:51: required from ‘boost::python::converter::rvalue_from_python_data<T>::~rvalue_from_python_data() [with T = const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&]’
/usr/include/boost/python/converter/arg_from_python.hpp:106:8: required from ‘PyObject* boost::python::detail::caller_arity<2>::impl<F, Policies, Sig>::operator()(PyObject*, PyObject*) [with F = bool (aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>::*)(const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&) const; Policies = boost::python::default_call_policies; Sig = boost::mpl::vector3<bool, aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>&, const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&>; PyObject = _object]’
/usr/include/boost/python/object/py_function.hpp:38:33: required from ‘PyObject* boost::python::objects::caller_py_function_impl<Caller>::operator()(PyObject*, PyObject*) [with Caller = boost::python::detail::caller<bool (aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>::*)(const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&) const, boost::python::default_call_policies, boost::mpl::vector3<bool, aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>&, const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&> >; PyObject = _object]’
/usr/include/boost/python/object/py_function.hpp:36:15: required from here
/usr/include/boost/python/detail/destroy.hpp:20:9: error: ‘Eigen::MatrixBase<Derived>::~MatrixBase() [with Derived = Eigen::Matrix<double, -1, 1>]’ is protected within this context
20 | p->~T();
| ^
In file included from /usr/include/eigen3/Eigen/Core:88,
from /home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/numpy_eigen/include/numpy_eigen/boost_python_headers.hpp:23,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraProjections.cpp:1:
/usr/include/eigen3/Eigen/src/Core/util/Macros.h:870:23: note: declared protected here
870 | EIGEN_DEVICE_FUNC ~Derived() = default;
| ^
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:468:5: note: in expansion of macro ‘EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR’
468 | EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(MatrixBase)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/aslam_cv_python.dir/build.make:141: CMakeFiles/aslam_cv_python.dir/src/CameraProjections.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/DoubleSphereProjection.hpp:289,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras.hpp:11,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraGeometries.cpp:2:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp: In instantiation of ‘void aslam::cameras::DoubleSphereProjection<DISTORTION_T>::euclideanToKeypointDistortionJacobian(const Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&) const [with DERIVED_P = Eigen::Matrix<double, 3, 1>; DERIVED_JD = Eigen::Matrix<double, -1, -1>; DISTORTION_T = aslam::cameras::NoDistortion]’:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/CameraGeometry.hpp:688:9: required from ‘void aslam::cameras::CameraGeometry<PROJECTION_T, SHUTTER_T, MASK_T>::euclideanToKeypointIntrinsicsJacobian(const Vector3d&, Eigen::MatrixXd&, bool, bool, bool) const [with PROJECTION_T = aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>; SHUTTER_T = aslam::cameras::GlobalShutter; MASK_T = aslam::cameras::NoMask; Eigen::Vector3d = Eigen::Matrix<double, 3, 1>; Eigen::MatrixXd = Eigen::Matrix<double, -1, -1>]’
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/CameraGeometry.hpp:668:10: required from here
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp:508:42: warning: unused parameter ‘p’ [-Wunused-parameter]
508 | const Eigen::MatrixBase<DERIVED_P> & p,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:6,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometry.hpp:4,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/PinholeUndistorter.hpp:4,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/PinholeUndistorter.cpp:1:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp: In member function ‘sm::Id sm::Id::operator++(int)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:122:14: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
122 | return rval;
| ^~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp: In instantiation of ‘void aslam::cameras::DoubleSphereProjection<DISTORTION_T>::euclideanToKeypointDistortionJacobian(const Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&) const [with DERIVED_P = Eigen::CwiseUnaryOp<Eigen::internal::scalar_opposite_op<double>, const Eigen::Block<const Eigen::Matrix<double, 4, 1>, 3, 1, false> >; DERIVED_JD = Eigen::Matrix<double, -1, -1>; DISTORTION_T = aslam::cameras::NoDistortion]’:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp:550:5: required from ‘void aslam::cameras::DoubleSphereProjection<DISTORTION_T>::homogeneousToKeypointDistortionJacobian(const Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&) const [with DERIVED_P = Eigen::Matrix<double, 4, 1>; DERIVED_JD = Eigen::Matrix<double, -1, -1>; DISTORTION_T = aslam::cameras::NoDistortion]’
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/CameraGeometry.hpp:723:9: required from ‘void aslam::cameras::CameraGeometry<PROJECTION_T, SHUTTER_T, MASK_T>::homogeneousToKeypointIntrinsicsJacobian(const Vector4d&, Eigen::MatrixXd&, bool, bool, bool) const [with PROJECTION_T = aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>; SHUTTER_T = aslam::cameras::GlobalShutter; MASK_T = aslam::cameras::NoMask; Eigen::Vector4d = Eigen::Matrix<double, 4, 1>; Eigen::MatrixXd = Eigen::Matrix<double, -1, -1>]’
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/CameraGeometry.hpp:703:10: required from here
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp:508:42: warning: unused parameter ‘p’ [-Wunused-parameter]
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp: In instantiation of ‘void aslam::cameras::DoubleSphereProjection<DISTORTION_T>::euclideanToKeypointDistortionJacobian(const Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&) const [with DERIVED_P = Eigen::Block<const Eigen::Matrix<double, 4, 1>, 3, 1, false>; DERIVED_JD = Eigen::Matrix<double, -1, -1>; DISTORTION_T = aslam::cameras::NoDistortion]’:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp:553:5: required from ‘void aslam::cameras::DoubleSphereProjection<DISTORTION_T>::homogeneousToKeypointDistortionJacobian(const Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&) const [with DERIVED_P = Eigen::Matrix<double, 4, 1>; DERIVED_JD = Eigen::Matrix<double, -1, -1>; DISTORTION_T = aslam::cameras::NoDistortion]’
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/CameraGeometry.hpp:723:9: required from ‘void aslam::cameras::CameraGeometry<PROJECTION_T, SHUTTER_T, MASK_T>::homogeneousToKeypointIntrinsicsJacobian(const Vector4d&, Eigen::MatrixXd&, bool, bool, bool) const [with PROJECTION_T = aslam::cameras::DoubleSphereProjection<aslam::cameras::NoDistortion>; SHUTTER_T = aslam::cameras::GlobalShutter; MASK_T = aslam::cameras::NoMask; Eigen::Vector4d = Eigen::Matrix<double, 4, 1>; Eigen::MatrixXd = Eigen::Matrix<double, -1, -1>]’
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/CameraGeometry.hpp:703:10: required from here
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/implementation/DoubleSphereProjection.hpp:508:42: warning: unused parameter ‘p’ [-Wunused-parameter]
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp: In constructor ‘aslam::cameras::CameraId::CameraId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/cameras/CameraGeometryBase.hpp:24:1: note: in expansion of macro ‘SM_DEFINE_ID’
24 | SM_DEFINE_ID (CameraId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::MultiFrameId::MultiFrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:9:1: note: in expansion of macro ‘SM_DEFINE_ID’
9 | SM_DEFINE_ID (MultiFrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::FrameId::FrameId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:10:1: note: in expansion of macro ‘SM_DEFINE_ID’
10 | SM_DEFINE_ID (FrameId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp: In constructor ‘aslam::LandmarkId::LandmarkId(const sm::Id&)’:
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:180:50: warning: implicitly-declared ‘constexpr sm::Id::Id(const sm::Id&)’ is deprecated [-Wdeprecated-copy]
180 | IdTypeName(const sm::Id & id) : sm::Id(id){} \
| ^
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cameras/include/aslam/frontend_ids.hpp:11:1: note: in expansion of macro ‘SM_DEFINE_ID’
11 | SM_DEFINE_ID (LandmarkId);
| ^~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_common/include/sm/Id.hpp:132:9: note: because ‘sm::Id’ has user-provided ‘sm::Id& sm::Id::operator=(const sm::Id&)’
132 | Id& operator= (const Id& other)
| ^~~~~~~~
In file included from /usr/include/boost/python/converter/rvalue_from_python_data.hpp:10,
from /usr/include/boost/python/converter/registry.hpp:9,
from /usr/include/boost/python/converter/registered.hpp:11,
from /usr/include/boost/python/object/make_instance.hpp:10,
from /usr/include/boost/python/object/make_ptr_instance.hpp:8,
from /usr/include/boost/python/to_python_indirect.hpp:11,
from /usr/include/boost/python/converter/arg_to_python.hpp:10,
from /usr/include/boost/python/call.hpp:15,
from /usr/include/boost/python/object_core.hpp:14,
from /usr/include/boost/python/args.hpp:22,
from /usr/include/boost/python.hpp:11,
from /home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/numpy_eigen/include/numpy_eigen/boost_python_headers.hpp:24,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraGeometries.cpp:1:
/usr/include/boost/python/detail/destroy.hpp: In instantiation of ‘static void boost::python::detail::value_destroyer<false>::execute(const volatile T*) [with T = Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >]’:
/usr/include/boost/python/detail/destroy.hpp:52:15: required from ‘void boost::python::detail::destroy_referent_impl(void*, T& (*)()) [with T = const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >]’
/usr/include/boost/python/detail/destroy.hpp:58:26: required from ‘void boost::python::detail::destroy_referent(void*, T (*)()) [with T = const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&]’
/usr/include/boost/python/converter/rvalue_from_python_data.hpp:135:51: required from ‘boost::python::converter::rvalue_from_python_data<T>::~rvalue_from_python_data() [with T = const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&]’
/usr/include/boost/python/converter/arg_from_python.hpp:106:8: required from ‘PyObject* boost::python::detail::caller_arity<2>::impl<F, Policies, Sig>::operator()(PyObject*, PyObject*) [with F = bool (aslam::cameras::ImageMask::*)(const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&) const; Policies = boost::python::default_call_policies; Sig = boost::mpl::vector3<bool, aslam::cameras::ImageMask&, const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&>; PyObject = _object]’
/usr/include/boost/python/object/py_function.hpp:38:33: required from ‘PyObject* boost::python::objects::caller_py_function_impl<Caller>::operator()(PyObject*, PyObject*) [with Caller = boost::python::detail::caller<bool (aslam::cameras::ImageMask::*)(const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&) const, boost::python::default_call_policies, boost::mpl::vector3<bool, aslam::cameras::ImageMask&, const Eigen::MatrixBase<Eigen::Matrix<double, -1, 1> >&> >; PyObject = _object]’
/usr/include/boost/python/object/py_function.hpp:36:15: required from here
/usr/include/boost/python/detail/destroy.hpp:20:9: error: ‘Eigen::MatrixBase<Derived>::~MatrixBase() [with Derived = Eigen::Matrix<double, -1, 1>]’ is protected within this context
20 | p->~T();
| ^
In file included from /usr/include/eigen3/Eigen/Core:88,
from /home/jeff/Software/kalibr_ws/src/Kalibr/Schweizer-Messer/numpy_eigen/include/numpy_eigen/boost_python_headers.hpp:23,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/CameraGeometries.cpp:1:
/usr/include/eigen3/Eigen/src/Core/util/Macros.h:870:23: note: declared protected here
870 | EIGEN_DEVICE_FUNC ~Derived() = default;
| ^
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:468:5: note: in expansion of macro ‘EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR’
468 | EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(MatrixBase)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/OmniUndistorter.hpp:115,
from /home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_cv_python/src/OmniUndistorter.cpp:2:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/OmniUndistorter.hpp: In function ‘void aslam::initUndistOmniToPinholeMap(boost::shared_ptr<T>, const Matrix3d&, cv::Size, cv::OutputArray, cv::OutputArray) [with CAMERA_T = aslam::cameras::CameraGeometry<aslam::cameras::OmniProjection<aslam::cameras::NoDistortion>, aslam::cameras::GlobalShutter, aslam::cameras::NoMask>]’:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/OmniUndistorter.hpp:117:34: warning: ‘*((void*)& keypoint +8)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
117 | int iv = saturate_cast<int>(keypoint[1] * INTER_TAB_SIZE);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/OmniUndistorter.hpp:116:34: warning: ‘keypoint’ may be used uninitialized in this function [-Wmaybe-uninitialized]
116 | int iu = saturate_cast<int>(keypoint[0] * INTER_TAB_SIZE);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/OmniUndistorter.hpp: In function ‘void aslam::initUndistOmniToPinholeMap(boost::shared_ptr<T>, const Matrix3d&, cv::Size, cv::OutputArray, cv::OutputArray) [with CAMERA_T = aslam::cameras::CameraGeometry<aslam::cameras::OmniProjection<aslam::cameras::NoDistortion>, aslam::cameras::GlobalShutter, aslam::cameras::ImageMask>]’:
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/OmniUndistorter.hpp:117:34: warning: ‘*((void*)& keypoint +8)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
117 | int iv = saturate_cast<int>(keypoint[1] * INTER_TAB_SIZE);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jeff/Software/kalibr_ws/src/Kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/OmniUndistorter.hpp:116:34: warning: ‘keypoint’ may be used uninitialized in this function [-Wmaybe-uninitialized]
116 | int iu = saturate_cast<int>(keypoint[0] * INTER_TAB_SIZE);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/aslam_cv_python.dir/build.make:76: CMakeFiles/aslam_cv_python.dir/src/CameraGeometries.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:331: CMakeFiles/aslam_cv_python.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
cd /home/jeff/Software/kalibr_ws/build/aslam_cv_python; catkin build --get-env aslam_cv_python | catkin env -si /usr/bin/make --jobserver-auth=3,4; cd -
........................................................................................................................................................................................
Failed << aslam_cv_python:make [ Exited with code 2 ]
Failed <<< aslam_cv_python [ 23.1 seconds ]
Abandoned <<< aslam_cv_backend_python [ Unrelated job failed ]
Abandoned <<< kalibr [ Unrelated job failed ]
[build] Summary: 34 of 37 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: 2 packages were abandoned.
[build] Failed: 1 packages failed.
[build] Runtime: 27.3 seconds total.
Hey Jeff, @jeff-delaune
I think I have figured out the issure, i am guessing newer Eigen has changed the member function in protected.
My solution: change line 466 protected
into public
in /usr/include/eigen3/Eigen/src/Core/MatrixBase.h or /usr/local/include/eigen3/Eigen/src/Core/MatrixBase.h.
You may have other problems after this issure, feel free to contact me.
My OS: Ubuntu 20.04
Bests from aachen
Zh
Even if it will compile in 20.04 (which I have managed also, eventually). All the python code is python2 which I don't believe is supported under OS noetic anymore?
Yes, the python 2 code likely will not run on Ubuntu 20.04 / python3. But so will be the OpenCV code which uses parts of the C API in the C++ code and will not compile with OpenCV 4.
I started porting to Ubuntu 20.04 (OpenCV 4, Python 3) (https://github.com/christian-rauch/kalibr/tree/fixes) but are now stuck in boost-python with (https://github.com/ethz-asl/kalibr/issues/404):
/usr/include/boost/python/detail/destroy.hpp:20:9: error: ‘Eigen::MatrixBase<Derived>::~MatrixBase() [with Derived = Eigen::Matrix<double, -1, 1>]’ is protected within this context
20 | p->~T();
| ^
Ah yes - I saw the same and couldn't solve it. Commented that out in order to compile, but then couldn't run because of the python3 issue and gave up...
Is there a reason to call the destructor rather than "delete p"?
On Wed, Dec 16, 2020 at 3:44 AM Christian Rauch notifications@github.com wrote:
Yes, the python 2 code likely will not run on Ubuntu 20.04 / python3. But so will be the OpenCV code which uses parts of the C API in the C++ code and will not compile with OpenCV 4.
I started porting to Ubuntu 20.04 (OpenCV 4, Python 3) ( https://github.com/christian-rauch/kalibr/tree/fixes) but are now stuck in boost-python with (#404 https://github.com/ethz-asl/kalibr/issues/404 ):
/usr/include/boost/python/detail/destroy.hpp:20:9: error: ‘Eigen::MatrixBase
::~MatrixBase() [with Derived = Eigen::Matrix<double, -1, 1>]’ is protected within this context 20 | p->~T();
| ^
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ethz-asl/kalibr/issues/396#issuecomment-745338758, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAITRZJTNHMO6HITAKPF67LSU5Y6VANCNFSM4TRDGIYA .
I am not sure why boost implemented it this way, a delete
should have the same effect. Changing the code on-disk is not an option as this is a system package, which should not be interfered with. If the code has to be patched manually, a custom boost or Eigen version should be provided in the workspace.
The documentation on this seems outdated. Maybe it's worth exploring other options, such as pybind11, for this.
@christian-rauch Thanks for your work on porting to 20.04!
I am not sure why boost implemented it this way, a delete should have the same effect.
Calling the destructor explicitly just executes the destructor, leaving uninitialized memory behind - ready to be used again (for example by calling the constructor in place). Calling delete
will deallocate the memory. I guess they implemented some array logic. std::vector
uses this technique as well.
The main problem is that Eigen::MatrixBase
is not a good type to allocate / deallocate. You also cannot keep it in std::vector
for the same reason. I guess some method in kalibr returns this type, when it should return a more concrete type (like Eigen::Matrix
).
For anyone else needing a workaround for running kalibr under 20.04, here's a quick&dirty Dockerfile: https://gist.github.com/xqms/6cc015bae5222b4bff33cd589e4adc05
I also pushed my dockerfile to docker hub, so you can launch it using
cd where/my/bagfiles/are
docker run -it -v $(pwd):/mnt xqms/kalibr
and then inside the docker container:
. /workspace/devel/setup.bash
cd /mnt
kalibr_calibrate_cameras ...
Check this out: https://github.com/ori-drs/kalibr
Check this out: https://github.com/ori-drs/kalibr
Thank vvvvvvvvvvvvvvvvvvvvery much! It works very well!
Check this out: https://github.com/ori-drs/kalibr
Hello, I managed to make the project, but still get stuck with the optimization as shown below
Hez, @wanghaichuan941221 I have the same problem, did you find any way to solve it?
@Enes1097 I had similar problems with the optimization using the ori-drs fork. Have you tried my docker container from above (https://github.com/ethz-asl/kalibr/issues/396#issuecomment-788968713)?
@xqms not yet, but I will try it out. Thanks :)
Hi @Enes1097, I tested the ori-drs fork with the Kalibr IMU-camera dynamic calibration sample, and it worked almost perfectly despite several innocuous warnings from wxPython as shown below.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_wx.py", line 784, in _onSize
self.bitmap = wx.Bitmap(self._width, self._height)
wx._core.wxAssertionError: C++ assertion ""width > 0 && height > 0"" failed at /tmp/pip-install-i3i6lzg4/wxPython/ext/wxWidgets/src/gtk/bitmap.cpp(539) in Create(): invalid bitmap size
Traceback (most recent call last):
The calibration results are so close to the those obtained under ubuntu 18 + ros1 melodic. I am not sure how the optimization stuck issue mentioned by others cropped.
FYI, here is the procedure I build and test the ori-drs fork under ubuntu 20 + ros1 noetic.
This repo also probably work on melodic as mentioned by wxmerkt
sudo apt update
sudo apt-get install python3-setuptools python3-rosinstall ipython3 libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-noetic-vision-opencv ros-noetic-image-transport-plugins ros-noetic-cmake-modules python3-software-properties software-properties-common libpoco-dev python3-matplotlib python3-scipy python3-git python3-pip libtbb-dev libblas-dev liblapack-dev libv4l-dev python3-catkin-tools python3-igraph libsuitesparse-dev
pip3 install wxPython
If you encounter errors like "E: Unable to locate package python3-catkin-tools", then setup your sources.list and keys as instructed here.
mkdir ~/kalibr_ws/src
cd ~/kalibr_ws/src
git clone --recursive https://github.com/ori-drs/kalibr
cd ~/kalibr_ws
source /opt/ros/noetic/setup.bash
catkin init
catkin config --extend /opt/ros/noetic
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build -DCMAKE_BUILD_TYPE=Release -j4
source ~/kalibr_ws/devel/setup.bash
cd /path/to/kalibr_dynamic_sample
rosrun kalibr kalibr_calibrate_imu_camera --target april_6x6.yaml --cam camchain.yaml --imu imu_adis16448.yaml --bag dynamic.bag --bag-from-to 5 45
I also pushed my dockerfile to docker hub, so you can launch it using
cd where/my/bagfiles/are docker run -it -v $(pwd):/mnt xqms/kalibr
and then inside the docker container:
. /workspace/devel/setup.bash cd /mnt kalibr_calibrate_cameras ...
Thanks a lot this worked. @xqms
I had to set the display env variable to let the docker container create a plot. https://stackoverflow.com/questions/49169055/docker-tkinter-tclerror-couldnt-connect-to-display/49229627#49229627
# Install xhost
sudo apt-get install x11-xserver-utils
# Allow docker container to use your display
xhost +
sudo docker run -it --rm -v $(pwd):/mnt -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw xqms/kalibr
Hi please try PR https://github.com/ethz-asl/kalibr/pull/515 to see if that solves your issue.
Hello,
Are there plans to support the latest Ubuntu 20.04.1 release, which comes with OpenCV 4 and Boost 1.71? Compilation currently crashes.