-
Notifications
You must be signed in to change notification settings - Fork 158
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Issue: Compilation Errors with Basalt VIO Integration - API Incompatibility
Environment
- OS: Ubuntu 22.04 (VMware)
- Branches tested: Both
mainanddevelop - Installation method:
Problem Description
When enabling DEPTHAI_BASALT_SUPPORT to build BasaltVIO.cpp and corresponding examples, the compilation fails with multiple API incompatibility errors. This appears to be caused by using an incompatible version of the Basalt library. It seems that cmakelist will not automatically install basalt by vcpkg, so I Built Basalt from GitHub source and copied headers to /usr/local/include/basalt
Compilation Errors
The build fails in src/basalt/BasaltVIO.cpp with the following categories of errors:
In file included from /home/rui/depthai-core/src/utility/ProtoSerialize.hpp:18,
from /home/rui/depthai-core/src/utility/ProtoSerialize.cpp:1:
/home/rui/depthai-core/build_develop/include/depthai/schemas/PointCloudData.pb.h: In function ‘void dai::utility::setProtoMessage(T&, const google::protobuf::Message*, bool) [with T = dai::PointCloudData]’:
/home/rui/depthai-core/build_develop/include/depthai/schemas/PointCloudData.pb.h:476:42: warning: potential null pointer dereference [-Wnull-dereference]
476 | const ::dai::proto::common::Timestamp* p = _impl_.ts_;
| ^
In file included from /home/rui/depthai-core/src/utility/ProtoSerialize.hpp:17,
from /home/rui/depthai-core/src/utility/ProtoSerialize.cpp:1:
/home/rui/depthai-core/build_develop/include/depthai/schemas/ImgFrame.pb.h: In function ‘void dai::utility::setProtoMessage(T&, const google::protobuf::Message*, bool) [with T = dai::ImgFrame]’:
/home/rui/depthai-core/build_develop/include/depthai/schemas/ImgFrame.pb.h:791:42: warning: potential null pointer dereference [-Wnull-dereference]
791 | const ::dai::proto::common::Timestamp* p = _impl_.ts_;
| ^
In file included from /home/rui/depthai-core/src/utility/ProtoSerialize.hpp:13,
from /home/rui/depthai-core/src/utility/ProtoSerialize.cpp:1:
/home/rui/depthai-core/build_develop/include/depthai/schemas/EncodedFrame.pb.h: In function ‘void dai::utility::setProtoMessage(T&, const google::protobuf::Message*, bool) [with T = dai::EncodedFrame]’:
/home/rui/depthai-core/build_develop/include/depthai/schemas/EncodedFrame.pb.h:901:42: warning: potential null pointer dereference [-Wnull-dereference]
901 | const ::dai::proto::common::Timestamp* p = _impl_.ts_;
| ^
[ 52%] Building CXX object CMakeFiles/depthai-core.dir/src/basalt/BasaltVIO.cpp.o
[ 52%] Building CXX object CMakeFiles/depthai-core.dir/src/rtabmap/CalibrationHandler.cpp.o
[ 53%] Building CXX object CMakeFiles/depthai-core.dir/src/rtabmap/TransformData.cpp.o
[ 53%] Building CXX object CMakeFiles/depthai-core.dir/src/rtabmap/RTABMapVIO.cpp.o
[ 53%] Building CXX object CMakeFiles/depthai-core.dir/src/rtabmap/RTABMapSLAM.cpp.o
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp: In member function ‘void dai::node::BasaltVIO::stereoCB(std::shared_ptr<dai::ADatatype>)’:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:85:70: error: no matching function for call to ‘basalt::OpticalFlowInput::OpticalFlowInput(int)’
85 | basalt::OpticalFlowInput::Ptr data(new basalt::OpticalFlowInput(2));
| ^
In file included from /usr/local/include/basalt/vi_estimator/vio_estimator.h:39,
from /home/rui/depthai-core/include/depthai/basalt/BasaltVIO.hpp:8,
from /home/rui/depthai-core/src/basalt/BasaltVIO.cpp:1:
/usr/local/include/basalt/optical_flow/optical_flow.h:54:8: note: candidate: ‘basalt::OpticalFlowInput::OpticalFlowInput()’
54 | struct OpticalFlowInput {
| ^~~~~~~~~~~~~~~~
/usr/local/include/basalt/optical_flow/optical_flow.h:54:8: note: candidate expects 0 arguments, 1 provided
/usr/local/include/basalt/optical_flow/optical_flow.h:54:8: note: candidate: ‘basalt::OpticalFlowInput::OpticalFlowInput(const basalt::OpticalFlowInput&)’
/usr/local/include/basalt/optical_flow/optical_flow.h:54:8: note: no known conversion for argument 1 from ‘int’ to ‘const basalt::OpticalFlowInput&’
/usr/local/include/basalt/optical_flow/optical_flow.h:54:8: note: candidate: ‘basalt::OpticalFlowInput::OpticalFlowInput(basalt::OpticalFlowInput&&)’
/usr/local/include/basalt/optical_flow/optical_flow.h:54:8: note: no known conversion for argument 1 from ‘int’ to ‘basalt::OpticalFlowInput&&’
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp: In member function ‘void dai::node::BasaltVIO::initialize(std::vector<std::shared_ptr<dai::ImgFrame> >)’:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:212:17: error: ‘using element_type = class basalt::OpticalFlowBase’ {aka ‘class basalt::OpticalFlowBase’} has no member named ‘show_gui’
212 | optFlowPtr->show_gui = false;
| ^~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:213:17: error: ‘using element_type = class basalt::OpticalFlowBase’ {aka ‘class basalt::OpticalFlowBase’} has no member named ‘start’
213 | optFlowPtr->start();
| ^~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:214:41: error: ‘using element_type = class basalt::OpticalFlowBase’ {aka ‘class basalt::OpticalFlowBase’} has no member named ‘input_img_queue’; did you mean ‘input_queue’?
214 | pimpl->imageDataQueue = optFlowPtr->input_img_queue;
| ^~~~~~~~~~~~~~~
| input_queue
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:217:32: error: no match for ‘operator=’ (operand types are ‘std::shared_ptr<tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > > >’ and ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’)
217 | pimpl->imuDataQueue = vio->imu_data_queue;
| ^~~~~~~~~~~~~~
In file included from /usr/include/c++/11/memory:77,
from /usr/local/include/basalt/calibration/calibration.hpp:41,
from /home/rui/depthai-core/include/depthai/basalt/BasaltVIO.hpp:4,
from /home/rui/depthai-core/src/basalt/BasaltVIO.cpp:1:
/usr/include/c++/11/bits/shared_ptr.h:363:9: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<const std::shared_ptr<_Yp>&> std::shared_ptr<_Tp>::operator=(const std::shared_ptr<_Yp>&) [with _Yp = _Yp; _Tp = tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >]’
363 | operator=(const shared_ptr<_Yp>& __r) noexcept
| ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:363:9: note: template argument deduction/substitution failed:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:217:32: note: ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’ is not derived from ‘const std::shared_ptr<_Tp>’
217 | pimpl->imuDataQueue = vio->imu_data_queue;
| ^~~~~~~~~~~~~~
In file included from /usr/include/c++/11/memory:77,
from /usr/local/include/basalt/calibration/calibration.hpp:41,
from /home/rui/depthai-core/include/depthai/basalt/BasaltVIO.hpp:4,
from /home/rui/depthai-core/src/basalt/BasaltVIO.cpp:1:
/usr/include/c++/11/bits/shared_ptr.h:374:9: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<std::auto_ptr<_Up> > std::shared_ptr<_Tp>::operator=(std::auto_ptr<_Up>&&) [with _Yp = _Yp; _Tp = tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >]’
374 | operator=(auto_ptr<_Yp>&& __r)
| ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:374:9: note: template argument deduction/substitution failed:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:217:32: note: ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’ is not derived from ‘std::auto_ptr<_Up>’
217 | pimpl->imuDataQueue = vio->imu_data_queue;
| ^~~~~~~~~~~~~~
In file included from /usr/include/c++/11/memory:77,
from /usr/local/include/basalt/calibration/calibration.hpp:41,
from /home/rui/depthai-core/include/depthai/basalt/BasaltVIO.hpp:4,
from /home/rui/depthai-core/src/basalt/BasaltVIO.cpp:1:
/usr/include/c++/11/bits/shared_ptr.h:391:9: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<std::shared_ptr<_Yp> > std::shared_ptr<_Tp>::operator=(std::shared_ptr<_Yp>&&) [with _Yp = _Yp; _Tp = tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >]’
391 | operator=(shared_ptr<_Yp>&& __r) noexcept
| ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:391:9: note: template argument deduction/substitution failed:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:217:32: note: ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’ is not derived from ‘std::shared_ptr<_Tp>’
217 | pimpl->imuDataQueue = vio->imu_data_queue;
| ^~~~~~~~~~~~~~
In file included from /usr/include/c++/11/memory:77,
from /usr/local/include/basalt/calibration/calibration.hpp:41,
from /home/rui/depthai-core/include/depthai/basalt/BasaltVIO.hpp:4,
from /home/rui/depthai-core/src/basalt/BasaltVIO.cpp:1:
/usr/include/c++/11/bits/shared_ptr.h:399:9: note: candidate: ‘template<class _Yp, class _Del> std::shared_ptr<_Tp>::_Assignable<std::unique_ptr<_Up, _Ep> > std::shared_ptr<_Tp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Yp = _Yp; _Del = _Del; _Tp = tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >]’
399 | operator=(unique_ptr<_Yp, _Del>&& __r)
| ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:399:9: note: template argument deduction/substitution failed:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:217:32: note: ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’ is not derived from ‘std::unique_ptr<_Tp, _Dp>’
217 | pimpl->imuDataQueue = vio->imu_data_queue;
| ^~~~~~~~~~~~~~
In file included from /usr/include/c++/11/memory:77,
from /usr/local/include/basalt/calibration/calibration.hpp:41,
from /home/rui/depthai-core/include/depthai/basalt/BasaltVIO.hpp:4,
from /home/rui/depthai-core/src/basalt/BasaltVIO.cpp:1:
/usr/include/c++/11/bits/shared_ptr.h:359:19: note: candidate: ‘std::shared_ptr<_Tp>& std::shared_ptr<_Tp>::operator=(const std::shared_ptr<_Tp>&) [with _Tp = tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >]’
359 | shared_ptr& operator=(const shared_ptr&) noexcept = default;
| ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:359:29: note: no known conversion for argument 1 from ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’ to ‘const std::shared_ptr<tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > > >&’
359 | shared_ptr& operator=(const shared_ptr&) noexcept = default;
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:383:7: note: candidate: ‘std::shared_ptr<_Tp>& std::shared_ptr<_Tp>::operator=(std::shared_ptr<_Tp>&&) [with _Tp = tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >]’
383 | operator=(shared_ptr&& __r) noexcept
| ^~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:383:30: note: no known conversion for argument 1 from ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > >’ to ‘std::shared_ptr<tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::ImuData<double> > > >&&’
383 | operator=(shared_ptr&& __r) noexcept
| ~~~~~~~~~~~~~^~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:218:37: error: cannot convert ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::OpticalFlowResult> >’ to ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::OpticalFlowResult> >*’ in assignment
218 | optFlowPtr->output_queue = vio->vision_data_queue;
| ~~~~~^~~~~~~~~~~~~~~~~
| |
| tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::OpticalFlowResult> >
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:220:35: error: cannot convert ‘std::shared_ptr<tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::PoseVelBiasState<double> > > >’ to ‘tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::PoseVelBiasState<double> > >*’ in assignment
220 | vio->out_state_queue = pimpl->outStateQueue;
| ~~~~~~~^~~~~~~~~~~~~
| |
| std::shared_ptr<tbb::detail::d2::concurrent_bounded_queue<std::shared_ptr<basalt::PoseVelBiasState<double> > > >
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:221:10: error: ‘using element_type = class basalt::VioEstimatorBase’ {aka ‘class basalt::VioEstimatorBase’} has no member named ‘opt_flow_depth_guess_queue’
221 | vio->opt_flow_depth_guess_queue = optFlowPtr->input_depth_queue;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:221:51: error: ‘using element_type = class basalt::OpticalFlowBase’ {aka ‘class basalt::OpticalFlowBase’} has no member named ‘input_depth_queue’; did you mean ‘input_queue’?
221 | vio->opt_flow_depth_guess_queue = optFlowPtr->input_depth_queue;
| ^~~~~~~~~~~~~~~~~
| input_queue
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:222:10: error: ‘using element_type = class basalt::VioEstimatorBase’ {aka ‘class basalt::VioEstimatorBase’} has no member named ‘opt_flow_state_queue’; did you mean ‘out_state_queue’?
222 | vio->opt_flow_state_queue = optFlowPtr->input_state_queue;
| ^~~~~~~~~~~~~~~~~~~~
| out_state_queue
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:222:45: error: ‘using element_type = class basalt::OpticalFlowBase’ {aka ‘class basalt::OpticalFlowBase’} has no member named ‘input_state_queue’; did you mean ‘input_queue’?
222 | vio->opt_flow_state_queue = optFlowPtr->input_state_queue;
| ^~~~~~~~~~~~~~~~~
| input_queue
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:223:10: error: ‘using element_type = class basalt::VioEstimatorBase’ {aka ‘class basalt::VioEstimatorBase’} has no member named ‘opt_flow_lm_bundle_queue’
223 | vio->opt_flow_lm_bundle_queue = optFlowPtr->input_lm_bundle_queue;
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:223:49: error: ‘using element_type = class basalt::OpticalFlowBase’ {aka ‘class basalt::OpticalFlowBase’} has no member named ‘input_lm_bundle_queue’
223 | vio->opt_flow_lm_bundle_queue = optFlowPtr->input_lm_bundle_queue;
| ^~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp: In member function ‘void dai::node::BasaltVIO::setDefaultVIOConfig()’:
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:230:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_detection_num_points_cell’; did you mean ‘optical_flow_detection_grid_size’?
230 | vioConfig.optical_flow_detection_num_points_cell = 1;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| optical_flow_detection_grid_size
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:231:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_detection_min_threshold’; did you mean ‘optical_flow_detection_grid_size’?
231 | vioConfig.optical_flow_detection_min_threshold = 5;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| optical_flow_detection_grid_size
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:232:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_detection_max_threshold’; did you mean ‘optical_flow_detection_grid_size’?
232 | vioConfig.optical_flow_detection_max_threshold = 40;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| optical_flow_detection_grid_size
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:233:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_detection_nonoverlap’; did you mean ‘optical_flow_detection_grid_size’?
233 | vioConfig.optical_flow_detection_nonoverlap = true;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| optical_flow_detection_grid_size
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:240:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_matching_guess_type’
240 | vioConfig.optical_flow_matching_guess_type = basalt::MatchingGuessType::REPROJ_AVG_DEPTH;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:240:58: error: ‘basalt::MatchingGuessType’ has not been declared
240 | vioConfig.optical_flow_matching_guess_type = basalt::MatchingGuessType::REPROJ_AVG_DEPTH;
| ^~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:241:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_matching_default_depth’
241 | vioConfig.optical_flow_matching_default_depth = 2.0;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:242:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_image_safe_radius’; did you mean ‘optical_flow_max_iterations’?
242 | vioConfig.optical_flow_image_safe_radius = 472.0;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| optical_flow_max_iterations
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:243:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_enable’
243 | vioConfig.optical_flow_recall_enable = false;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:244:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_all_cams’
244 | vioConfig.optical_flow_recall_all_cams = false;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:245:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_num_points_cell’
245 | vioConfig.optical_flow_recall_num_points_cell = true;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:246:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_over_tracking’
246 | vioConfig.optical_flow_recall_over_tracking = false;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:247:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_update_patch_viewpoint’
247 | vioConfig.optical_flow_recall_update_patch_viewpoint = false;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:248:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_max_patch_dist’
248 | vioConfig.optical_flow_recall_max_patch_dist = 3;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:249:15: error: ‘struct basalt::VioConfig’ has no member named ‘optical_flow_recall_max_patch_norms’
249 | vioConfig.optical_flow_recall_max_patch_norms = {1.74, 0.96, 0.99, 0.44};
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:272:15: error: ‘struct basalt::VioConfig’ has no member named ‘vio_fix_long_term_keyframes’
272 | vioConfig.vio_fix_long_term_keyframes = false;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:274:15: error: ‘struct basalt::VioConfig’ has no member named ‘vio_kf_marg_criteria’; did you mean ‘vio_kf_marg_feature_ratio’?
274 | vioConfig.vio_kf_marg_criteria = basalt::KeyframeMargCriteria::KF_MARG_DEFAULT;
| ^~~~~~~~~~~~~~~~~~~~
| vio_kf_marg_feature_ratio
/home/rui/depthai-core/src/basalt/BasaltVIO.cpp:274:46: error: ‘basalt::KeyframeMargCriteria’ has not been declared
274 | vioConfig.vio_kf_marg_criteria = basalt::KeyframeMargCriteria::KF_MARG_DEFAULT;
| ^~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/depthai-core.dir/build.make:2039: CMakeFiles/depthai-core.dir/src/basalt/BasaltVIO.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
/home/rui/depthai-core/src/pipeline/node/ImageFilters.cpp: In member function ‘virtual void dai::node::ToFDepthConfidenceFilter::run()’:
/home/rui/depthai-core/src/pipeline/node/ImageFilters.cpp:953:33: warning: null pointer dereference [-Wnull-dereference]
953 | confidenceThreshold = configMsg->confidenceThreshold;
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/pcl-1.12/pcl/conversions.h:54,
from /usr/include/pcl-1.12/pcl/common/impl/io.hpp:43,
from /usr/include/pcl-1.12/pcl/common/io.h:538,
from /usr/include/pcl-1.12/pcl/filters/filter.h:43,
from /home/rui/depthai-core/src/rtabmap/RTABMapSLAM.cpp:3:
/usr/include/boost/foreach.hpp:335:13: error: ‘is_convertible’ was not declared in this scope
335 | is_convertible<T, char const *>
| ^~~~~~~~~~~~~~
/usr/include/boost/foreach.hpp:335:13: note: suggested alternatives:
In file included from /usr/include/c++/11/bits/move.h:57,
from /usr/include/c++/11/bits/stl_pair.h:59,
from /usr/include/c++/11/bits/stl_algobase.h:64,
from /usr/include/c++/11/memory:63,
from /home/rui/depthai-core/include/depthai/pipeline/DeviceNode.hpp:3,
from /home/rui/depthai-core/include/depthai/pipeline/Subnode.hpp:3,
from /home/rui/depthai-core/include/depthai/rtabmap/RTABMapSLAM.hpp:3,
from /home/rui/depthai-core/src/rtabmap/RTABMapSLAM.cpp:1:
/usr/include/c++/11/type_traits:1457:12: note: ‘std::is_convertible’
1457 | struct is_convertible
| ^~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1457:12: note: ‘std::is_convertible’
In file included from /usr/include/pcl-1.12/pcl/conversions.h:54,
from /usr/include/pcl-1.12/pcl/common/impl/io.hpp:43,
from /usr/include/pcl-1.12/pcl/common/io.h:538,
from /usr/include/pcl-1.12/pcl/filters/filter.h:43,
from /home/rui/depthai-core/src/rtabmap/RTABMapSLAM.cpp:3:
/usr/include/boost/foreach.hpp:335:43: error: template argument 1 is invalid
335 | is_convertible<T, char const *>
| ^
/usr/include/boost/foreach.hpp:336:13: error: ‘is_convertible’ was not declared in this scope
336 | , is_convertible<T, wchar_t const *>
| ^~~~~~~~~~~~~~
/usr/include/boost/foreach.hpp:336:13: note: suggested alternatives:
In file included from /usr/include/c++/11/bits/move.h:57,
from /usr/include/c++/11/bits/stl_pair.h:59,
from /usr/include/c++/11/bits/stl_algobase.h:64,
from /usr/include/c++/11/memory:63,
from /home/rui/depthai-core/include/depthai/pipeline/DeviceNode.hpp:3,
from /home/rui/depthai-core/include/depthai/pipeline/Subnode.hpp:3,
from /home/rui/depthai-core/include/depthai/rtabmap/RTABMapSLAM.hpp:3,
from /home/rui/depthai-core/src/rtabmap/RTABMapSLAM.cpp:1:
/usr/include/c++/11/type_traits:1457:12: note: ‘std::is_convertible’
1457 | struct is_convertible
| ^~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1457:12: note: ‘std::is_convertible’
In file included from /usr/include/pcl-1.12/pcl/conversions.h:54,
from /usr/include/pcl-1.12/pcl/common/impl/io.hpp:43,
from /usr/include/pcl-1.12/pcl/common/io.h:538,
from /usr/include/pcl-1.12/pcl/filters/filter.h:43,
from /home/rui/depthai-core/src/rtabmap/RTABMapSLAM.cpp:3:
/usr/include/boost/foreach.hpp:336:46: error: template argument 2 is invalid
336 | , is_convertible<T, wchar_t const *>
| ^
/usr/include/boost/foreach.hpp:336:46: error: template argument 3 is invalid
/usr/include/boost/foreach.hpp:337:9: error: expected ‘{’ before ‘>’ token
337 | >
| ^
gmake[2]: *** [CMakeFiles/depthai-core.dir/build.make:2095: CMakeFiles/depthai-core.dir/src/rtabmap/RTABMapSLAM.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1281: CMakeFiles/depthai-core.dir/all] Error 2
gmake: *** [Makefile:166: all] Error `2`Questions
- Which version of Basalt is compatible with the current depthai-core implementation?
- What is the recommended installation method for Basalt dependencies?
- Should I use vcpkg (as mentioned in CMakeLists.txt)?
- Should I build from a specific Basalt release/commit?
Thank you!
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working