chichengcn / gici-open Goto Github PK
View Code? Open in Web Editor NEWGNSS/INS/Camera Integrated Navigation Library
License: GNU General Public License v3.0
GNSS/INS/Camera Integrated Navigation Library
License: GNU General Public License v3.0
GNSS+5G融合定位
Hi, Dr. chi, thanks for your amazing work. I try to test the PPP-AR and meet the rank deficient problem of the jacobian matrix. I guess the cause may be related to the constant parameter while the sliding window is not full (jacobian rank = jacobian column -1). It seems that the problem will not occur on GPS-only measurements. Could you please help me with that? Thanks a lot!
池博,想请问一下本代码GNSS解算模型是用的什么方法呢?以及对于异常因子的处理是什么呢?在代码的哪个部分能看到这部分内容呢?想朝着这个方向改进一下不知是否可行~谢谢
期待您的回复,谢谢!
根据作者提供的说明文档,我们在作者提供的数据集上成功地运行了代码。此外,我们还将相机、INS和GNSS接受器安装在了无人机上,同时架设了GNSS基站,从而采集自己数据。对于GNSS部分,我们得到了Novatel OEM4格式的.gnss文件,RINEX格式的.24o和.24p文件,如下图所示:
为了满足输入要求,我们使用了https://github.com/MKlimenko/rinex2rtcm3所提供的代码,将RINEX格式的.24o和.24p文件转为了gnss_reference.rtcm3文件和gnss_ephemeris.rtcm3,然后修改了pseudo_real_time_estimation_DGNSS.yaml中的相关参数,并且将enable_time_tag全部改为了false,但是却运行不出来正确的结果,如下图所示:
个人认为这个报错来源于数据格式之间的转换,从而造成了部分信息的缺失,请问作者能否提供一个可靠的RINEX2RTCM的工具,或者扩展gici-open对于RINEX的支持。
再次感谢作者对于gici-open的开发和开源!
您好:
我想请教一下,(ephemeris->eph = (eph_t *)malloc(sizeof(eph_t) * MAXSAT * 2))为什么要申请两倍的内存空间?是为了存储前后两个历元的星历数据还是其他用途?
期待您的回复,感谢!
Hello,
I hope this message finds you well. We are currently working on reproducing the results presented in your paper on the UrbanNav dataset and have encountered some difficulties. In your paper, you reported the following impressive results:
We are eager to reproduce these results; however, our own experiments have yielded significantly different and unsatisfactory outcomes. For instance, we obtained results that are far from our expectations:
We have come across the open issues regarding the incorrect extrinsic Camera/IMU calibration for the UrbanNav dataset, specifically Issue#27 and Issue#17. Considering this, we are interested in understanding the configuration you utilized in your paper to compute the reported results. In your paper, you mentioned using the left image from ZED camera. Could you please share the camera-to-IMU transformation that you employed?
In order to remove source of errors, we proceeded the data with the INS + GNSS configuration, which was the default setting in your repository. Here is the content of our configuration file:
# GICI offline pseudo-real-time RTK/IMU TC estimation with ROS topics as input and output
stream:
streamers:
- streamer:
tag: str_ros_gnss_rov
type: ros
topic_name: /gici/gnss_rover
io: input
format: gnss_raw
enable_observation: true
- streamer:
tag: str_ros_gnss_ref
type: ros
topic_name: /gici/gnss_reference
io: input
format: gnss_raw
enable_observation: true
enable_antenna_position: true
- streamer:
tag: str_ros_gnss_eph
type: ros
topic_name: /gici/gnss_ephemeris
io: input
format: gnss_raw
enable_ephemeris: true
enable_ionosphere_parameter: true
- streamer:
tag: str_dcb_file
output_tags: [fmt_dcb_file]
type: file
path: /gici/COD0MGXFIN_20211370000_01D_01D_OSB.BIA
enable_time_tag: false
- streamer:
tag: str_ros_imu
type: ros
topic_name: /imu/data
io: input
format: imu
- streamer:
tag: str_tc_solution_file
input_tags: [fmt_tc_solution_file]
type: file
path: /gici/rtk_tc_solution.txt
enable_time_tag: false
- streamer:
tag: str_solution
type: ros
topic_name: solution
queue_size: 5
io: output
format: pose_stamped
- streamer:
tag: str_solution_odometry
type: ros
topic_name: solution_odometry
queue_size: 10
io: output
format: odometry
subframe_id: Body
- streamer:
tag: str_solution_path
type: ros
topic_name: solution_path
queue_size: 100
io: output
format: path
formators:
- formator:
io: input
tag: fmt_dcb_file
type: dcb-file
- formator:
io: output
tag: fmt_tc_solution_file
type: nmea
use_esa: true
talker_id: GP
estimate:
- estimator:
tag: est_rtk_imu_tc
type: rtk_imu_tc
input_tags: [str_ros_gnss_rov, str_ros_gnss_ref, str_ros_gnss_eph, fmt_dcb_file, str_ros_imu]
str_ros_gnss_rov_roles: [rover]
str_ros_gnss_ref_roles: [reference]
str_ros_gnss_eph_roles: [ephemeris]
fmt_dcb_file_roles: [code_bias]
str_ros_imu_roles: [major]
output_tags: [fmt_tc_solution_file, str_solution, str_solution_odometry, str_solution_path]
output_align_tag: str_ros_imu
output_downsample_rate: 40
compute_covariance: true
rtk_imu_tc_options:
max_window_length: 3
rtk_options:
use_ambiguity_resolution: true
gnss_estimator_base_options:
use_outlier_rejection: true
reject_one_outlier_once: false
max_pesudorange_error: 4.0
max_phaserange_error: 0.06
max_doppler_error: 0.5
gnss_common:
min_elevation: -20.0
min_SNR: [35.0, 30.0]
imu_estimator_base_options:
imu_parameters:
sigma_bg: 1.0e-3
sigma_ba: 1.0e-2
sigma_g_c: 1.0270904839480961e-02
sigma_a_c: 1.1197412605492375e-02
sigma_gw_c: 9.1355383994881894e-05
sigma_aw_c: 1.1751767903346351e-04
body_to_imu_rotation: [90.0, 0.0, 0.0]
body_to_imu_rotation_std: 5.0
car_motion: true
car_motion_min_velocity: 3.0
car_motion_max_anguler_velocity: 5.0
estimator_base_options:
max_iteration: 5
num_threads: 4
max_solver_time: 0.05
verbose_output: true
solver_type: dense_schur
trust_region_strategy_type: dogleg
ambiguity_resolution_options:
system_exclude: [R]
min_percentage_fixation_uwl: 1.0
min_percentage_fixation_wl: 0.9
min_percentage_fixation_nl: 0.9
ratio: 2.0
gnss_imu_initializer_options:
max_iteration: 30
num_threads: 4
max_solver_time: 0.5
gnss_extrinsics: [0, 0.86, -0.31]
gnss_extrinsics_initial_std: [0.0, 0.0, 0.0]
time_window_length_slow_motion: 0.05
time_window_length_dynamic_motion: 0.5
min_acceleration: 0.5
logging:
enable: true
min_log_level: 0
log_to_stderr: true
file_directory: /logs
We used the /imu/data
topic provided by the dataset's ROSBag, while all GNSS-related topics were converted from RINEX to ROSBag using your tool on the unstable branch. To ensure compatibility, we made minor modifications to integrate the QZSS service. We have uploaded these changes in the following merge request: #48
Following your instructions, we executed the replay as follows:
rosrun gici_ros gici_ros_main <path to our configuration file>
Followed by ROSBag replay with all generated ROSBag.
rosbag play *.bag
The ROSBag files containing the ephemeris data and gnss_reference data were generated from RINEX files downloaded from the website mentioned in the dataset. We also generated the ephemeris messages for all configurations. Despite these efforts, we have been unable to reproduce the expected results. We believe there may be something obvious that we are missing on our end. Is there anything specific that could explain our poor results? Additionally, we would greatly appreciate it if you could provide us with the necessary steps to reproduce the results presented in your paper using this dataset.
Thank you for your attention to this matter, and we look forward to your response.
Best regards,
Tanguy
Hi, when I run RTK-LC, I met this:
W20240417 15:59:51.344967 140736750155328 multisensor_estimating.cpp:764] Large backend pending: 177 measurements are waiting!
I20240417 15:59:51.514225 140736750155328 rtk_estimator.cpp:267] RTK: Iterations: 2, Initial cost: 4.261e+01, Final cost: 3.985e+01, Sat number: 28, GDOP: 1.5, Dif distance: 1 km, Fix status: 4
I20240417 15:59:51.953251 140736750155328 gnss_imu_initializer.cpp:139] Full filling dynamic window!
W20240417 15:59:51.953328 140736750155328 multisensor_estimating.cpp:764] Large backend pending: 182 measurements are waiting!
W20240417 15:59:51.953473 140736750155328 multisensor_estimating.cpp:764] Large backend pending: 181 measurements are waiting!
I20240417 15:59:52.053224 140736750155328 gnss_estimator_base.cpp:1620] Rejected pseudorange outlier with ambiguities at C38|2I&2I-C43|2I&2I: residual = 4.508661
I20240417 15:59:52.111382 140736750155328 rtk_estimator.cpp:267] RTK: Iterations: 2, Initial cost: 3.675e+01, Final cost: 3.622e+01, Sat number: 29, GDOP: 1.4, Dif distance: 1 km, Fix status: 4
I20240417 15:59:52.508863 140736750155328 gnss_imu_initializer.cpp:139] Full filling dynamic window!
W20240417 15:59:52.508963 140736750155328 multisensor_estimating.cpp:764] Large backend pending: 186 measurements are waiting!
I20240417 15:59:52.674533 140736750155328 rtk_estimator.cpp:267] RTK: Iterations: 2, Initial cost: 3.205e+01, Final cost: 3.198e+01, Sat number: 28, GDOP: 1.5, Dif distance: 1 km, Fix status: 4
I20240417 15:59:53.125164 140736750155328 gnss_imu_initializer.cpp:139] Full filling dynamic window!
W20240417 15:59:53.125275 140736750155328 multisensor_estimating.cpp:764] Large backend pending: 192 measurements are waiting!
I20240417 15:59:53.306525 140736750155328 rtk_estimator.cpp:267] RTK: Iterations: 2, Initial cost: 2.491e+01, Final cost: 2.468e+01, Sat number: 28, GDOP: 1.5, Dif distance: 1 km, Fix status: 4
I20240417 15:59:53.721874 140736750155328 gnss_imu_initializer.cpp:139] Full filling dynamic window!
W20240417 15:59:53.721939 140736750155328 multisensor_estimating.cpp:764] Large backend pending: 198 measurements are waiting!
I20240417 15:59:53.874707 140736750155328 rtk_estimator.cpp:267] RTK: Iterations: 2, Initial cost: 2.596e+01, Final cost: 2.587e+01, Sat number: 27, GDOP: 1.5, Dif distance: 1 km, Fix status: 4
F20240417 15:59:54.323800 140736699799104 rotation-quaternion-inl.h:82] Check failed: (squaredNorm()) <= (static_cast(1.0)) + (EPS::normalization_value()) (1.05698 vs. 1.0001)
F20240417 15:59:54.323815 140736750155328 rotation-quaternion-inl.h:82] Check failed: (squaredNorm()) <= (static_cast(1.0)) + (EPS::normalization_value()) (1.0569 vs. 1.0001) F20240417 15:59:54.00000F323801 140736070673984 2024 rotation-quaternion-inl.h417 8215:59:54.323841 Check failed: 140736070673984(rotation-quaternion-inl.h:82] Check failed: (squaredNorm()) <= (static_cast(1.0)) + (EPS::normalization_value()) (1.0569 vs. 1.0001)
F00000000 00:00:00.000000 140736079066688 logging.cc:1841] RAW: Check data_->num_chars_to_log_ > 0 && data_->message_text_[data_->num_chars_to_log_ - 1] == '\n' failed:
@ 0x7ffff55d2f85 google::LogMessage::Fail()
@ 0x7ffff55d2f85 google::LogMessage::Fail()
@ 0x7ffff55d2f85 google::LogMessage::Fail()
@ 0x7ffff55d6bf6 google::LogMessageFatal::~LogMessageFatal()
@ 0x7ffff55d6bf6 google::LogMessageFatal::~LogMessageFatal()
@ 0x7ffff560d678 google::RawLog__(google::LogSeverity, char const*, int, char const*, ...)
@ 0x7ffff55d2615 google::LogMessage::SendToLog()
@ 0x7ffff6ff3edd kindr::minimal::RotationQuaternionTemplate::RotationQuaternionTemplate(Eigen::Quaternion<double, 0> const&)
@ 0x7ffff55d241e google::LogMessage::Flush()
@ 0x7ffff6ff3edd kindr::minimal::RotationQuaternionTemplate::RotationQuaternionTemplate(Eigen::Quaternion<double, 0> const&)
@ 0x7ffff6ff4446 kindr::minimal::QuatTransformationTemplate::QuatTransformationTemplate(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&, Eigen::Quaternion<double, 0> const&)
@ 0x7ffff55d6bf1 google::LogMessageFatal::~LogMessageFatal()
@ 0x7ffff6ff29fb gici::HMCError::EvaluateWithMinimalJacobians(double const* const*, double*, double**, double**) const
@ 0x7ffff6ff4446 kindr::minimal::QuatTransformationTemplate::QuatTransformationTemplate(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&, Eigen::Quaternion<double, 0> const&)
@ 0x7ffff6ff2918 gici::HMCError::Evaluate(double const* const*, double*, double**) const
@ 0x7ffff70ba265 gici::NHCError::EvaluateWithMinimalJacobians(double const* const*, double*, double**, double**) const
@ 0x7ffff6ff3edd kindr::minimal::RotationQuaternionTemplate::RotationQuaternionTemplate(Eigen::Quaternion<double, 0> const&)
@ 0x7ffff73ad161 ceres::internal::ResidualBlock::Evaluate(bool, double*, double*, double**, double*) const
@ 0x7ffff6ff4446 kindr::minimal::QuatTransformationTemplate::QuatTransformationTemplate(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&, Eigen::Quaternion<double, 0> const&)
@ 0x7ffff70ba182 gici::NHCError::Evaluate(double const* const*, double*, double**) const
@ 0x7ffff729a5b3 gici::PoseError::EvaluateWithMinimalJacobians(double const* const*, double*, double**, double**) const
@ 0x7ffff73ad161 ceres::internal::ResidualBlock::Evaluate(bool, double*, double*, double**, double*) const
@ 0x7ffff729a4d0 gici::PoseError::Evaluate(double const* const*, double*, double**) const
@ 0x7ffff73ad161 ceres::internal::ResidualBlock::Evaluate(bool, double*, double*, double**, double*) const
Signal: SIGABRT (Aborted)
Hi author, I downloaded 'gici-open-dataset', I want to convert 'gnss_reference.bin' to the rinex format, such as '.obs'. I changed the suffix '.bin' to 'rtcm3' and converted it to obs using rtklib's UI tool, rtkconv, but there is a problem when converting 'gnss_rover.bin' to obs as described above (the CRC24 never passes during decoding). I would like to ask if there is something else you are doing when generating 'gnss_rover.bin'.
感谢更新PPP/IMU紧组合模式,谢谢您的持续工作
在这里有几个问题想想问一下您:
1.能否提供PPP/IMU TC的配置文件
2.会更新PPP/IMU LC模式吗?
3.看到您源代码中有PPP/IMU/Camera RRR模式的字段,大概什么时候可以更新此模式
再次感谢您对GICI-LIB的开发以及持续更新,辛苦啦。
Sorry to disturb.I'm doubt that whether the gnss/imu initializer can be used while the carrier is in motion. Hope that you can solve my problem.THANKS.
[ 35%] Linking CXX shared library ../../../../third_party/rpg_vikit/vikit_common/lib/libvikit_common.so
/usr/bin/ld: /usr/local/lib/libyaml-cpp.a(scanscalar.cpp.o): relocation R_X86_64_PC32 against symbol `_ZNK4YAML5RegEx14MatchUncheckedINS_16StreamCharSourceEEEiRKT_' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/build.make:344: recipe for target '../third_party/rpg_vikit/vikit_common/lib/libvikit_common.so' failed
make[2]: *** [../third_party/rpg_vikit/vikit_common/lib/libvikit_common.so] Error 1
CMakeFiles/Makefile2:267: recipe for target 'third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/all' failed
make[1]: *** [third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/all] Error 2
Makefile:102: recipe for target 'all' failed
make: *** [all] Error 2
编译时遇到的与第三方库rpg_vikit有关的问题,请问如何解决呢?谢谢
Hi,
Thank for opensource this powerful software. And I am trying to run a demo but encounter some problems.
The following is the log in the terminal after excuting the command 'make -j8'
jap@jap-virtual-machine:~/gici/build$ make -j8
Scanning dependencies of target fast
Scanning dependencies of target rtklib
Scanning dependencies of target vikit_common
In file included from /home/jap/gici/include/gici/estimate/graph.h:55,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/data_integration.h:11,
from /home/jap/gici/src/stream/data_integration.cpp:9:
/home/jap/gici/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token
57 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/graph.h:56,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/data_integration.h:11,
from /home/jap/gici/src/stream/data_integration.cpp:9:
/home/jap/gici/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
143 | const ceres::LocalParameterization* localParameterizationPtr)
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
164 | const ceres::LocalParameterization* local_parameterization_ptr_;
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’:
/home/jap/gici/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’
64 | , local_parameterization_ptr_(nullptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’:
/home/jap/gici/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’?
145 | local_parameterization_ptr_ = localParameterizationPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| localParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:57,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/data_integration.h:11,
from /home/jap/gici/src/stream/data_integration.cpp:9:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h: At global scope:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token
62 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/data_integration.h:11,
from /home/jap/gici/src/stream/data_integration.cpp:9:
/home/jap/gici/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared
309 | ceres::LocalParameterization* local_parameterization);
| ^~~~~
/home/jap/gici/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared
319 | ceres::LocalParameterization* local_parameterization)
| ^~~~~
In file included from /home/jap/gici/include/gici/estimate/graph.h:55,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/utility/option.cpp:14:
/home/jap/gici/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token
57 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/graph.h:56,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/utility/option.cpp:14:
/home/jap/gici/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
143 | const ceres::LocalParameterization* localParameterizationPtr)
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
164 | const ceres::LocalParameterization* local_parameterization_ptr_;
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’:
/home/jap/gici/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’
64 | , local_parameterization_ptr_(nullptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’:
/home/jap/gici/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’?
145 | local_parameterization_ptr_ = localParameterizationPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| localParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:57,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/utility/option.cpp:14:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h: At global scope:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token
62 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/utility/option.cpp:14:
/home/jap/gici/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared
309 | ceres::LocalParameterization* local_parameterization);
| ^~~~~
/home/jap/gici/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared
319 | ceres::LocalParameterization* local_parameterization)
| ^~~~~
[ 62%] Building CXX object CMakeFiles/gici.dir/src/gnss/ambiguity_error.cpp.o
In file included from /home/jap/gici/include/gici/estimate/graph.h:55,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/stream/formator.cpp:9:
/home/jap/gici/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token
57 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/graph.h:56,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/stream/formator.cpp:9:
/home/jap/gici/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
143 | const ceres::LocalParameterization* localParameterizationPtr)
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
164 | const ceres::LocalParameterization* local_parameterization_ptr_;
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’:
/home/jap/gici/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’
64 | , local_parameterization_ptr_(nullptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’:
/home/jap/gici/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’?
145 | local_parameterization_ptr_ = localParameterizationPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| localParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:57,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/stream/formator.cpp:9:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h: At global scope:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token
62 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/src/stream/formator.cpp:9:
/home/jap/gici/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared
309 | ceres::LocalParameterization* local_parameterization);
| ^~~~~
/home/jap/gici/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared
319 | ceres::LocalParameterization* local_parameterization)
| ^~~~~
In file included from /home/jap/gici/include/gici/estimate/graph.h:55,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/node_handle.h:14,
from /home/jap/gici/src/stream/node_handle.cpp:9:
/home/jap/gici/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token
57 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/graph.h:56,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/node_handle.h:14,
from /home/jap/gici/src/stream/node_handle.cpp:9:
/home/jap/gici/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
143 | const ceres::LocalParameterization* localParameterizationPtr)
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
164 | const ceres::LocalParameterization* local_parameterization_ptr_;
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’:
/home/jap/gici/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’
64 | , local_parameterization_ptr_(nullptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’:
/home/jap/gici/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’?
145 | local_parameterization_ptr_ = localParameterizationPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| localParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:57,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/node_handle.h:14,
from /home/jap/gici/src/stream/node_handle.cpp:9:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h: At global scope:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token
62 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/include/gici/stream/node_handle.h:14,
from /home/jap/gici/src/stream/node_handle.cpp:9:
/home/jap/gici/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared
309 | ceres::LocalParameterization* local_parameterization);
| ^~~~~
/home/jap/gici/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared
319 | ceres::LocalParameterization* local_parameterization)
| ^~~~~
In file included from /home/jap/gici/include/gici/estimate/estimator_base.h:16,
from /home/jap/gici/include/gici/gnss/gnss_estimator_base.h:11,
from /home/jap/gici/include/gici/gnss/spp_estimator.h:11,
from /home/jap/gici/src/utility/option.cpp:19:
/home/jap/gici/include/gici/estimate/marginalization_error.h: In constructor ‘gici::MarginalizationError::ParameterBlockInfo::ParameterBlockInfo(uint64_t, std::shared_ptrgici::ParameterBlock, size_t, bool)’:
/home/jap/gici/include/gici/estimate/marginalization_error.h:373:32: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’?
373 | if (parameter_block_ptr->localParameterizationPtr())
| ^~~~~~~~~~~~~~~~~~~~~~~~
| setLocalParameterizationPtr
/home/jap/gici/include/gici/estimate/marginalization_error.h:375:48: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’?
375 | local_dimension = parameter_block_ptr->localParameterizationPtr()
| ^~~~~~~~~~~~~~~~~~~~~~~~
| setLocalParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/estimator_base.h:16,
from /home/jap/gici/include/gici/estimate/estimating.h:21,
from /home/jap/gici/include/gici/stream/data_integration.h:12,
from /home/jap/gici/src/stream/data_integration.cpp:9:
/home/jap/gici/include/gici/estimate/marginalization_error.h: In constructor ‘gici::MarginalizationError::ParameterBlockInfo::ParameterBlockInfo(uint64_t, std::shared_ptrgici::ParameterBlock, size_t, bool)’:
/home/jap/gici/include/gici/estimate/marginalization_error.h:373:32: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’?
373 | if (parameter_block_ptr->localParameterizationPtr())
| ^~~~~~~~~~~~~~~~~~~~~~~~
| setLocalParameterizationPtr
/home/jap/gici/include/gici/estimate/marginalization_error.h:375:48: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’?
375 | local_dimension = parameter_block_ptr->localParameterizationPtr()
| ^~~~~~~~~~~~~~~~~~~~~~~~
| setLocalParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/estimator_base.h:16,
from /home/jap/gici/include/gici/estimate/estimating.h:21,
from /home/jap/gici/include/gici/stream/node_handle.h:15,
from /home/jap/gici/src/stream/node_handle.cpp:9:
/home/jap/gici/include/gici/estimate/marginalization_error.h: In constructor ‘gici::MarginalizationError::ParameterBlockInfo::ParameterBlockInfo(uint64_t, std::shared_ptrgici::ParameterBlock, size_t, bool)’:
/home/jap/gici/include/gici/estimate/marginalization_error.h:373:32: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’?
373 | if (parameter_block_ptr->localParameterizationPtr())
| ^~~~~~~~~~~~~~~~~~~~~~~~
| setLocalParameterizationPtr
/home/jap/gici/include/gici/estimate/marginalization_error.h:375:48: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’?
375 | local_dimension = parameter_block_ptr->localParameterizationPtr()
| ^~~~~~~~~~~~~~~~~~~~~~~~
| setLocalParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:55,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/src/stream/streaming.cpp:9:
/home/jap/gici/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token
57 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/graph.h:56,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/src/stream/streaming.cpp:9:
/home/jap/gici/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
143 | const ceres::LocalParameterization* localParameterizationPtr)
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
164 | const ceres::LocalParameterization* local_parameterization_ptr_;
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’:
/home/jap/gici/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’
64 | , local_parameterization_ptr_(nullptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’:
/home/jap/gici/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’?
145 | local_parameterization_ptr_ = localParameterizationPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| localParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:57,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/src/stream/streaming.cpp:9:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h: At global scope:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token
62 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/stream/formator.h:19,
from /home/jap/gici/include/gici/stream/streaming.h:18,
from /home/jap/gici/src/stream/streaming.cpp:9:
/home/jap/gici/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared
309 | ceres::LocalParameterization* local_parameterization);
| ^~~~~
/home/jap/gici/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared
319 | ceres::LocalParameterization* local_parameterization)
| ^~~~~
[ 63%] Building CXX object CMakeFiles/gici.dir/src/gnss/ambiguity_resolution.cpp.o
In file included from /home/jap/gici/include/gici/estimate/graph.h:55,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/gnss/ambiguity_common.h:12,
from /home/jap/gici/src/gnss/ambiguity_common.cpp:9:
/home/jap/gici/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token
57 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/graph.h:56,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/gnss/ambiguity_common.h:12,
from /home/jap/gici/src/gnss/ambiguity_common.cpp:9:
/home/jap/gici/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
143 | const ceres::LocalParameterization* localParameterizationPtr)
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type
164 | const ceres::LocalParameterization* local_parameterization_ptr_;
| ^~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’:
/home/jap/gici/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’
64 | , local_parameterization_ptr_(nullptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jap/gici/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’:
/home/jap/gici/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’?
145 | local_parameterization_ptr_ = localParameterizationPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| localParameterizationPtr
In file included from /home/jap/gici/include/gici/estimate/graph.h:57,
from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/gnss/ambiguity_common.h:12,
from /home/jap/gici/src/gnss/ambiguity_common.cpp:9:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h: At global scope:
/home/jap/gici/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token
62 | public ceres::LocalParameterization,
| ^
In file included from /home/jap/gici/include/gici/estimate/estimator_types.h:30,
from /home/jap/gici/include/gici/gnss/ambiguity_common.h:12,
from /home/jap/gici/src/gnss/ambiguity_common.cpp:9:
/home/jap/gici/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared
309 | ceres::LocalParameterization* local_parameterization);
| ^~~~~
/home/jap/gici/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared
319 | ceres::LocalParameterization* local_parameterization)
| ^~~~~
I an sure I installed the Ceres-2.1.0 version.
Can you help me?
您好,我在ROS下用gici跑了4.1数据集,用的是RTK-RRR解算,然后用EVO评估rtk-rrr-solution和ground-truth的绝对轨迹误差,我已确认配置文件无误,并且结果的坐标系也已经转换,但是离论文中的APE结果差很远,想请问一下论文中的APE是怎么得到的,以及可能存在哪些我没有发现的问题影响结果。
非常感谢您很出色的工作!
目前我想基于我们的data_strorage.yaml例子,采集自己的数据。但是实验中发现Ntrip服务不可用,在其他平台(https://github.com/hanoi404/ntrip)测试Ntrip服务是没问题的。然后我又基于RTKLIB 2.4.3 b34的STRSVR进行Ntrip服务检查,发现也是没有数据。请问你们是怎么解决这个问题,可以同时采集Cors服务数据的呢?
谢谢
求解决方案,急!!!
/home/dxw/gici-open/src/stream/streamer.cpp: In member function ‘virtual void gici::V4l2Streamer::close()’:
/home/dxw/gici-open/src/stream/streamer.cpp:306:5: error: ‘::close’ has not been declared; did you mean ‘pclose’?
306 | ::close(dev_);
| ^~~~~
| pclose
/home/dxw/gici-open/src/stream/streamer.cpp: In function ‘std::shared_ptr<gici::StreamerBase> gici::makeStreamer(YAML::Node&)’:
/home/dxw/gici-open/src/stream/streamer.cpp:384:55: warning: control reaches end of non-void function [-Wreturn-type]
384 | std::string type_str = node["type"].as<std::string>();
| ^
make[2]: *** [CMakeFiles/gici.dir/build.make:244: CMakeFiles/gici.dir/src/stream/streamer.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:159: CMakeFiles/gici.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
dxw@ubuntu20:~/gici-open/build$
The repo is awesome! Great thanks to your team for sharing such an amazing project.
Maybe because I am a newbie in this field, I found it would be greater if the manual could be more and more detailed and specific. Of course, the work should not just be left to your team, it can be shared among all players who are interested in this project.
Therefore, I am wondering if it is possible to upload and open-source the source code of the manual instead of merely the PDF file.
Again, thanks a lot for the fabulous work done by your team!
Thanks to the author's selfless open source, I ran the dataset 5.2 using SPP_RRR through non-ROS and ROS ways,and both encountered a similar problem to #11. I have run it using RTK_RRR and it works well, so I wonder if SPP_RRR method still have a similar problem. It occurs around 850s in dataset 5.2 , here are my bash outputs:
I0409 22:31:36.881067 23992 spp_imu_camera_rrr_estimator.cpp:353] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 1.446e+01, Final cost: 1.430e+01, Sensor type: 3, Sat number: 15, GDOP: 3.1
I0409 22:31:36.896167 23992 spp_imu_camera_rrr_estimator.cpp:353] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 1.927e+01, Final cost: 1.595e+01, Sensor type: 1, Sat number: 16, GDOP: 2.9
I0409 22:31:36.932507 23990 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.435539, distance = 0.818635
I0409 22:31:37.005779 23992 spp_imu_camera_rrr_estimator.cpp:353] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 1.493e+01, Final cost: 1.442e+01, Sensor type: 3, Sat number: 16, GDOP: 2.9
I0409 22:31:37.020643 23992 gnss_estimator_base.cpp:1422] Rejected pseudorange outlier at C08|2I: residual = -11.310482
I0409 22:31:37.020779 23992 spp_imu_camera_rrr_estimator.cpp:353] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 1.688e+01, Final cost: 1.321e+01, Sensor type: 1, Sat number: 16, GDOP: 2.9
F0409 22:31:37.024216 23992 marginalization_error.cpp:606] Check failed: it != parameter_block_id_to_parameter_block_info_idx_.end() trying to marginalize out unconnected parameter block id = 2097551529641558016
*** Check failure stack trace: ***
@ 0x7fb8b08cd25a google::LogMessage::Fail()
@ 0x7fb8b08cd195 google::LogMessage::SendToLog()
@ 0x7fb8b08ccac6 google::LogMessage::Flush()
@ 0x7fb8b08d0546 google::LogMessageFatal::~LogMessageFatal()
@ 0x7fb8b1da0391 gici::MarginalizationError::marginalizeOut()
@ 0x7fb8b1d60106 gici::EstimatorBase::applyMarginalization()
@ 0x7fb8b1e44be6 gici::SppImuCameraRrrEstimator::gnssMarginalization()
@ 0x7fb8b1e48941 gici::SppImuCameraRrrEstimator::estimate()
@ 0x7fb8b1dfe10f gici::MultiSensorEstimating::processEstimator()
@ 0x7fb8b1dfe91e gici::MultiSensorEstimating::runBackend()
@ 0x7fb8b07a7df4 (unknown)
@ 0x7fb8b04a9609 start_thread
@ 0x7fb8b05e3353 clone
@ (nil) (unknown)
已放弃 (核心已转储)
Thanks for your excellent work in multi-sensor fusion! Your expertise truly benefits our community!
I found that in your paper results, the PPP results have not been evaluated, but I am still curious about it.
I am using the dataset you provided [1.1, OpenSky area] to replicate your algorithm.
While I use
rosrun gici_ros gici_ros_main src/gici/option/ros_real_time_estimation_PPP.yaml
It would report
str_solution: At least one input tag or output tag should be specified!
And I found that in this YAML file, the output has been set as follows:
output_tags: [fmt_solution_file]
I try to modify it to
output_tags: [str_solution, str_solution_odometry, str_solution_path, fmt_solution_file]
Then, it can work but without any result with 1.1 dataset, OpenSky area] dataset.
Here is the log:
I1101 15:44:51.313118 1447761 streamer.cpp:119] FileStreamer: Unable to load swap_interval. I am using default instead.
I1101 15:44:51.313148 1447761 streaming.cpp:104] str_gnss_atx: Unable to load buffer length! Using default instead.
I1101 15:44:51.313153 1447761 streaming.cpp:119] str_gnss_atx: Unable to load loop duration! Using default instead.
E1101 15:44:51.313205 1447761 streaming.cpp:139] Open streamer str_gnss_atx failed!
I1101 15:44:51.313210 1447761 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I1101 15:44:51.313213 1447761 streaming.cpp:104] str_dcb_file: Unable to load buffer length! Using default instead.
I1101 15:44:51.313215 1447761 streaming.cpp:119] str_dcb_file: Unable to load loop duration! Using default instead.
E1101 15:44:51.313223 1447761 streaming.cpp:139] Open streamer str_dcb_file failed!
I1101 15:44:51.313225 1447761 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I1101 15:44:51.313230 1447761 formator.cpp:921] NmeaFormator: Unable to load use_gga. Using default instead.
I1101 15:44:51.313230 1447761 formator.cpp:922] NmeaFormator: Unable to load use_rmc. Using default instead.
I1101 15:44:51.313231 1447761 formator.cpp:924] NmeaFormator: Unable to load use_esd. Using default instead.
I1101 15:44:51.313233 1447761 streaming.cpp:104] str_solution_file: Unable to load buffer length! Using default instead.
I1101 15:44:51.313236 1447761 streaming.cpp:119] str_solution_file: Unable to load loop duration! Using default instead.
I1101 15:44:51.313297 1447761 option.cpp:622] loadOptions<gici::EstimatorBaseOptions>: Unable to load force_initial_global_position. Using default instead.
I1101 15:44:51.313305 1447761 option.cpp:658] Unable to load initial_global_position. Using default instead.
I1101 15:44:51.313310 1447761 option.cpp:667] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load reject_one_outlier_once. Using default instead.
I1101 15:44:51.313313 1447761 option.cpp:670] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load max_doppler_error. Using default instead.
I1101 15:44:51.313315 1447761 option.cpp:671] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load good_observation_min_num_satellites. Using default instead.
I1101 15:44:51.313318 1447761 option.cpp:672] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load good_observation_max_gdop. Using default instead.
I1101 15:44:51.313318 1447761 option.cpp:673] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load good_observation_max_reject_ratio. Using default instead.
I1101 15:44:51.313320 1447761 option.cpp:674] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load reset_ambiguity_min_num_continuous_unfix. Using default instead.
I1101 15:44:51.313323 1447761 option.cpp:675] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load diverge_max_reject_ratio. Using default instead.
I1101 15:44:51.313324 1447761 option.cpp:676] loadOptions<gici::GnssEstimatorBaseOptions>: Unable to load diverge_min_num_continuous_reject. Using default instead.
I1101 15:44:51.313328 1447761 option.cpp:340] loadOptions<gici::GnssCommonOptions>: Unable to load min_num_satellite_redundancy. Using default instead.
I1101 15:44:51.313331 1447761 option.cpp:341] loadOptions<gici::GnssCommonOptions>: Unable to load max_gdop. Using default instead.
I1101 15:44:51.313333 1447761 option.cpp:342] loadOptions<gici::GnssCommonOptions>: Unable to load mw_slip_thres. Using default instead.
I1101 15:44:51.313334 1447761 option.cpp:343] loadOptions<gici::GnssCommonOptions>: Unable to load gf_slip_thres. Using default instead.
I1101 15:44:51.313336 1447761 option.cpp:344] loadOptions<gici::GnssCommonOptions>: Unable to load gf_sd_slip_thres. Using default instead.
I1101 15:44:51.313338 1447761 option.cpp:345] loadOptions<gici::GnssCommonOptions>: Unable to load period. Using default instead.
I1101 15:44:51.313341 1447761 option.cpp:395] Unable to load receiver_pco. Using default instead.
I1101 15:44:51.313344 1447761 option.cpp:404] loadOptions<gici::GnssErrorParameter>: Unable to load phase_error_factor. Using default instead.
I1101 15:44:51.313345 1447761 option.cpp:405] loadOptions<gici::GnssErrorParameter>: Unable to load doppler_error_factor. Using default instead.
I1101 15:44:51.313347 1447761 option.cpp:406] loadOptions<gici::GnssErrorParameter>: Unable to load ionosphere_broadcast_factor. Using default instead.
I1101 15:44:51.313349 1447761 option.cpp:407] loadOptions<gici::GnssErrorParameter>: Unable to load ionosphere_dual_frequency. Using default instead.
I1101 15:44:51.313350 1447761 option.cpp:408] loadOptions<gici::GnssErrorParameter>: Unable to load ionosphere_augment. Using default instead.
I1101 15:44:51.313351 1447761 option.cpp:409] loadOptions<gici::GnssErrorParameter>: Unable to load troposphere_model_factor. Using default instead.
I1101 15:44:51.313354 1447761 option.cpp:410] loadOptions<gici::GnssErrorParameter>: Unable to load troposphere_augment. Using default instead.
I1101 15:44:51.313354 1447761 option.cpp:411] loadOptions<gici::GnssErrorParameter>: Unable to load ephemeris_broadcast. Using default instead.
I1101 15:44:51.313356 1447761 option.cpp:412] loadOptions<gici::GnssErrorParameter>: Unable to load ephemeris_precise. Using default instead.
I1101 15:44:51.313359 1447761 option.cpp:413] loadOptions<gici::GnssErrorParameter>: Unable to load initial_position. Using default instead.
I1101 15:44:51.313360 1447761 option.cpp:414] loadOptions<gici::GnssErrorParameter>: Unable to load initial_velocity. Using default instead.
I1101 15:44:51.313361 1447761 option.cpp:415] loadOptions<gici::GnssErrorParameter>: Unable to load initial_clock. Using default instead.
I1101 15:44:51.313364 1447761 option.cpp:416] loadOptions<gici::GnssErrorParameter>: Unable to load initial_troposphere. Using default instead.
I1101 15:44:51.313365 1447761 option.cpp:417] loadOptions<gici::GnssErrorParameter>: Unable to load initial_ionosphere. Using default instead.
I1101 15:44:51.313367 1447761 option.cpp:418] loadOptions<gici::GnssErrorParameter>: Unable to load initial_ambiguity. Using default instead.
I1101 15:44:51.313369 1447761 option.cpp:419] loadOptions<gici::GnssErrorParameter>: Unable to load relative_troposphere. Using default instead.
I1101 15:44:51.313369 1447761 option.cpp:420] loadOptions<gici::GnssErrorParameter>: Unable to load relative_ionosphere. Using default instead.
I1101 15:44:51.313371 1447761 option.cpp:421] loadOptions<gici::GnssErrorParameter>: Unable to load relative_ambiguity. Using default instead.
I1101 15:44:51.313373 1447761 option.cpp:422] loadOptions<gici::GnssErrorParameter>: Unable to load relative_gps_ifcb. Using default instead.
I1101 15:44:51.313374 1447761 option.cpp:423] loadOptions<gici::GnssErrorParameter>: Unable to load relative_frequency. Using default instead.
I1101 15:44:51.313376 1447761 option.cpp:424] loadOptions<gici::GnssErrorParameter>: Unable to load residual_gps_ifcb. Using default instead.
I1101 15:44:51.313377 1447761 option.cpp:434] Unable to load system_error_ratio. Using default instead.
I1101 15:44:51.313378 1447761 option.cpp:446] Unable to load relative_position. Using default instead.
I1101 15:44:51.313380 1447761 option.cpp:458] Unable to load relative_velocity. Using default instead.
I1101 15:44:51.313689 1447761 ros_stream.cpp:49] Unable to load ROS topic queue size. Using default instead
I1101 15:44:51.314414 1447761 ros_stream.cpp:49] Unable to load ROS topic queue size. Using default instead
I1101 15:44:51.315337 1447761 ros_stream.cpp:49] Unable to load ROS topic queue size. Using default instead
Initialized 9 streamers, 3 formaters, and 1 estimator. Running...
I wonder if I made some mistakes, like not using precise clock/ephemeris files. Or this PPP part is still under development?
Hi:)I want to use loosely coupled method to couple imu and GPS data. When I construct the data body of GNSS, need I provide variables values related to "GNSS Ambiguity Resolution", such as phase_bias and phase_center? Or what value should I assign to these variables? since I only use the GPS sensor, I do not have those values yet.
I'm getting this error randomly when I run ./build/gici_main option/pseudo_real_time_estimation_RTK_RRR.yaml
. I'm using the data 4.2 from gici-open-dataset. By randomly, I mean the "id" in the following log changes every time.
The "id" can be 3250486229121942272, 3250486229112914688, 3250486229100626688, ...
I20230918 19:44:23.890939 9368 rtk_imu_camera_rrr_estimator.cpp:449] RTK/IMU/Camera RRR: Iterations: 6, Initial cost: 1.021e+02, Final cost: 1.005e+02, Sensor type: 3, Sat number: 8, GDOP: 4.3, Fix status: 3
I20230918 19:44:23.958727 9366 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.060711, distance = 0.589349
I20230918 19:44:23.959527 9368 gnss_estimator_base.h:633] Insufficient satellites! We need at least 8 satellites, but we only have 6!
I20230918 19:44:23.979460 9368 gnss_estimator_base.cpp:1584] Rejected pseudorange outlier with ambiguities at E15|7Q&7Q-E27|7Q&7Q: residual = 6.146627
I20230918 19:44:23.979605 9368 rtk_imu_camera_rrr_estimator.cpp:449] RTK/IMU/Camera RRR: Iterations: 6, Initial cost: 4.827e+02, Final cost: 1.352e+02, Sensor type: 1, Sat number: 8, GDOP: 4.3, Fix status: 3
F20230918 19:44:23.982164 9368 marginalization_error.cpp:606] Check failed: it != parameter_block_id_to_parameter_block_info_idx_.end() trying to marginalize out unconnected parameter block id = 3250486229121942272
*** Check failure stack trace: ***
@ 0x7f03c7c66e6e google::LogMessage::Fail()
@ 0x7f03c7c66db6 google::LogMessage::SendToLog()
@ 0x7f03c7c665de google::LogMessage::Flush()
@ 0x7f03c7c6a357 google::LogMessageFatal::~LogMessageFatal()
@ 0x7f03c872e748 gici::MarginalizationError::marginalizeOut()
@ 0x7f03c86f754c gici::EstimatorBase::applyMarginalization()
@ 0x7f03c879685c gici::RtkImuCameraRrrEstimator::gnssMarginalization()
@ 0x7f03c879bfac gici::RtkImuCameraRrrEstimator::estimate()
@ 0x7f03c878af7e gici::MultiSensorEstimating::processEstimator()
@ 0x7f03c878b690 gici::MultiSensorEstimating::runBackend()
@ 0x7f03c7983c80 (unknown)
@ 0x7f03c81156ba start_thread
@ 0x7f03c73f251d clone
@ (nil) (unknown)
Aborted
Is there something wrong with my configuration? I only changed the data path and start_time. Here is the yaml file I'm using:
# GICI offline pseudo-real-time RTK/IMU/Camera RRR estimation
# You can uncomment the node configuration to publish related topics and observe estimation results (Build GICI in ROS wrapper).
stream:
streamers:
- streamer:
tag: str_gnss_rov
output_tags: [fmt_gnss_rov]
type: file
path: /home/chan/data/gici_data/4.2/gnss_rover.bin
- streamer:
tag: str_gnss_ref
output_tags: [fmt_gnss_ref]
type: file
path: /home/chan/data/gici_data/4.2/gnss_reference.bin
- streamer:
tag: str_gnss_eph
output_tags: [fmt_gnss_eph]
type: file
path: /home/chan/data/gici_data/4.2/gnss_ephemeris.bin
- streamer:
tag: str_dcb_file
output_tags: [fmt_dcb_file]
type: file
path: /home/chan/develop/gici-open/option/CAS0MGXRAP_20221580000_01D_01D_DCB.BSX
enable_time_tag: false
- streamer:
tag: str_imu
output_tags: [fmt_imu]
type: file
path: /home/chan/data/gici_data/4.2/imu.bin
loop_duration: 0.001
- streamer:
tag: str_camera
output_tags: [fmt_camera]
type: file
path: /home/chan/data/gici_data/4.2/camera.bin
buffer_length: 361472 # 752 * 480 + 512
- streamer:
tag: str_rrr_solution_file
input_tags: [fmt_rrr_solution_file]
type: file
path: /home/chan/data/gici_output/4.2.txt
enable_time_tag: false
- streamer:
tag: str_solution_stream
input_tags: [fmt_solution_stream]
type: tcp-server
port: 9001
# - streamer:
# tag: str_ros_imu
# input_tags: [fmt_imu]
# type: ros
# topic_name: imu_raw
# queue_size: 10
# io: log
# format: imu
# - streamer:
# tag: str_ros_camera
# input_tags: [fmt_camera]
# type: ros
# topic_name: image_raw
# queue_size: 10
# io: log
# format: image
# - streamer:
# tag: str_solution
# type: ros
# topic_name: solution
# queue_size: 5
# io: output
# format: pose_stamped
# - streamer:
# tag: str_solution_odometry
# type: ros
# topic_name: solution_odometry
# queue_size: 10
# io: output
# format: odometry
# subframe_id: Body
# - streamer:
# tag: str_solution_path
# type: ros
# topic_name: solution_path
# queue_size: 100
# io: output
# format: path
# - streamer:
# tag: str_featured_image
# type: ros
# topic_name: featured_image
# queue_size: 3
# io: output
# format: image
# - streamer:
# tag: str_landmarks
# type: ros
# topic_name: landmarks
# queue_size: 3
# marker_scale: 0.2
# io: output
# format: marker
formators:
- formator:
io: input
tag: fmt_dcb_file
type: dcb-file
- formator:
io: input
tag: fmt_gnss_rov
type: gnss-raw
sub_type: tersus
- formator:
io: input
tag: fmt_gnss_ref
type: gnss-rtcm-3
start_time: 2023.03.27
- formator:
io: input
tag: fmt_gnss_eph
type: gnss-rtcm-3
start_time: 2023.03.27
- formator:
io: input
tag: fmt_imu
type: imu-pack
- formator:
io: input
tag: fmt_camera
width: 752
height: 480
type: image-pack
- formator:
io: output
tag: fmt_rrr_solution_file
type: nmea
use_esa: true
talker_id: GP
- formator:
io: output
tag: fmt_solution_stream
type: nmea
use_esa: true
use_esd: true
talker_id: GP
replay:
enable: true
speed: 1.0
start_offset: 0.0
estimate:
- estimator:
tag: est_rtk_imu_camera_rrr
type: rtk_imu_camera_rrr
input_tags: [fmt_gnss_rov, fmt_gnss_ref, fmt_gnss_eph, fmt_dcb_file, fmt_camera, fmt_imu]
fmt_gnss_rov_roles: [rover]
fmt_gnss_ref_roles: [reference]
fmt_gnss_eph_roles: [ephemeris]
fmt_dcb_file_roles: [code_bias]
fmt_camera_roles: [mono]
fmt_imu_roles: [major]
output_tags: [fmt_rrr_solution_file, fmt_solution_stream]
# output_tags: [fmt_rrr_solution_file, fmt_solution_stream, str_solution, str_solution_odometry, str_solution_path, str_featured_image, str_landmarks]
output_align_tag: fmt_imu
output_downsample_rate: 40
compute_covariance: false
enable_input_align: true
input_align_latency: 0.2
enable_backend_data_sparsify: true
pending_num_threshold: 5
rtk_imu_camera_rrr_options:
max_keyframes: 3
min_yaw_std_init_visual: 0.5
rtk_options:
use_ambiguity_resolution: true
gnss_estimator_base_options:
use_outlier_rejection: true
reject_one_outlier_once: false
max_pesudorange_error: 4.0
max_phaserange_error: 0.06
max_doppler_error: 0.5
gnss_common:
min_elevation: 12.0
min_SNR: [35.0, 30.0]
gnss_loose_estimator_base_options:
visual_estimator_base_options:
feature_error_std: 10.0
stable_feature_error_std: 1.0
min_observation_stable: 20
landmark_outlier_rejection_threshold: 2.0
imu_estimator_base_options:
imu_parameters:
sigma_bg: 1.0e-3
sigma_ba: 1.0e-2
sigma_g_c: 2.6700e-04
sigma_a_c: 0.0112
sigma_gw_c: 2.0881e-06
sigma_aw_c: 2.7361e-04
body_to_imu_rotation: [-90.0, -90.0, 0.0]
body_to_imu_rotation_std: 5.0
car_motion: true
car_motion_min_velocity: 3.0
car_motion_max_anguler_velocity: 5.0
estimator_base_options:
max_iteration: 5
num_threads: 4
max_solver_time: 0.03
verbose_output: true
solver_type: dense_schur
trust_region_strategy_type: dogleg
ambiguity_resolution_options:
system_exclude: [R]
min_percentage_fixation_uwl: 1.0
min_percentage_fixation_wl: 0.9
min_percentage_fixation_nl: 0.9
ratio: 2.0
gnss_imu_initializer_options:
max_iteration: 30
num_threads: 4
max_solver_time: 0.5
gnss_extrinsics: [-0.035, 0.354, -0.042]
gnss_extrinsics_initial_std: [0.0, 0.0, 0.0]
time_window_length_slow_motion: 0.05
time_window_length_dynamic_motion: 0.5
min_acceleration: 0.5
feature_handler_options:
max_features_per_frame: 100
max_n_kfs: 30
kfselect_min_numkfs: 30
kfselect_min_disparity: 10.0
kfselect_min_dist_metric: 0.5
kfselect_min_angle: 5.0
kfselect_min_dt: 1.0
detector:
cell_size: 40
initialization:
camera_parameters:
label: "gici-board"
cameras:
- camera:
label: cam0
image_width: 752
image_height: 480
type: pinhole
intrinsics:
cols: 1
rows: 4
data: [510.12091726559544, 509.55338413343736, 357.48596105253193, 240.00309579253124]
distortion:
type: radial-tangential
parameters:
cols: 1
rows: 4
data: [-0.36472323465957157, 0.11530151924890532, 0.0006024586154990503, 0.0020184970860498133]
mask: /home/chan/develop/gici-open/option/gici-mask.png
T_B_C:
cols: 4
rows: 4
data: [0.0134381210697455122, -0.999901594987671172, -0.00402706384669154413, -0.0229793554058591656,
0.999907681540912807, 0.0134460859659659704, -0.00195733688253543802, 0.0110786309679912626,
0.00201129251744842832, -0.00400038914436078377, 0.99998997574430859, 0.025008868367930974,
0, 0, 0, 1]
logging:
enable: true
min_log_level: 0
log_to_stderr: true
file_directory: /home/chan/data/gici_output/4.2.log
Appriciate for any help!
感谢作者您的开源,我在使用您的开源数据集1.1和1.2运行代码的过程中,程序一直显示等待星历。请问您是否遇到过此类问题。
请问能推荐下学习算法所需要的RTK-IMU-camera 硬件链接吗,谢谢
How to convert the IMU data(imu.bin) to the format(.imr) recognized by IE software? I did not find the corresponding "IMU Profiles" in IE software, and then customize its format, enter the information, the result can not be turned out. I would like to ask the author or everyone how to solve this problem, thank you!🫡
How to convert the IMU data(imu.bin) to the format(.imr) recognized by IE software? I did not find the corresponding "IMU Profiles" in IE software, and then customize its format, enter the information, the result can not be turned out. I would like to ask the author or everyone how to solve this problem, thank you!🫡
池博好,非常感谢您的开源工作,受益匪浅!
使用ros和非ros版本的spp_rrr对数据集5.1进行处理时,都碰到了如下的错误,错误大概发生在5.1的85%位置。
处理5.1之外的其他数据集均未发现这个问题。自行分析了下发现5.1中包含了几段隧道,隧道中可见卫星数急剧下降为0,在报错点前同样经历了几段卫星数为0的状态,但是并没有报错,猜测是不是因为长时间没有卫星,GNSS相关的参数被删除,导致参数id的种类检核失败?
I20240604 14:49:48.486418 331166 spp_imu_camera_rrr_estimator.cpp:355] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 3.037e+00, Final cost: 5.458e-01, Sensor type: 3, Sat number: 0, GDOP: 100.0
I20240604 14:49:48.486930 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:48.558012 331164 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.62246, distance = 1.16276
I20240604 14:49:48.598373 331166 spp_imu_camera_rrr_estimator.cpp:355] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 1.434e+00, Final cost: 3.031e-01, Sensor type: 3, Sat number: 0, GDOP: 100.0
I20240604 14:49:48.652784 331164 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.615621, distance = 1.16706
I20240604 14:49:48.682600 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:48.684845 331166 visual_estimator_base.cpp:321] Rejected 1 landmark outliers. Remaining 27 landmarks.
I20240604 14:49:48.684868 331166 visual_estimator_base.cpp:324] Rejected landmark outlier 387889: residual = 25.222677
I20240604 14:49:48.684885 331166 spp_imu_camera_rrr_estimator.cpp:355] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 3.547e+00, Final cost: 1.441e+00, Sensor type: 3, Sat number: 0, GDOP: 100.0
I20240604 14:49:48.685720 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:48.767984 331164 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.597191, distance = 1.17188
I20240604 14:49:48.867172 331164 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.607505, distance = 1.18365
I20240604 14:49:48.872267 331166 spp_imu_camera_rrr_estimator.cpp:355] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 2.043e+00, Final cost: 2.464e-01, Sensor type: 3, Sat number: 0, GDOP: 100.0
I20240604 14:49:48.962105 331164 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.628629, distance = 1.17259
I20240604 14:49:48.962512 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:49.062629 331164 feature_handler.cpp:208] Select new keyframe by motivation: angle = 0.642403, distance = 1.17758
I20240604 14:49:49.065608 331166 visual_estimator_base.cpp:321] Rejected 2 landmark outliers. Remaining 24 landmarks.
I20240604 14:49:49.065657 331166 visual_estimator_base.cpp:324] Rejected landmark outlier 388113: residual = 10.643174
I20240604 14:49:49.065675 331166 visual_estimator_base.cpp:324] Rejected landmark outlier 388234: residual = 4.336728
I20240604 14:49:49.065691 331166 spp_imu_camera_rrr_estimator.cpp:355] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 2.493e+00, Final cost: 2.493e+00, Sensor type: 3, Sat number: 0, GDOP: 100.0
I20240604 14:49:49.067391 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:49.067574 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:49.067724 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:49.067869 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
I20240604 14:49:49.069849 331166 visual_estimator_base.cpp:321] Rejected 1 landmark outliers. Remaining 23 landmarks.
I20240604 14:49:49.069878 331166 visual_estimator_base.cpp:324] Rejected landmark outlier 388191: residual = 15.560731
I20240604 14:49:49.069897 331166 spp_imu_camera_rrr_estimator.cpp:355] SPP/IMU/Camera RRR: Iterations: 6, Initial cost: 2.355e+00, Final cost: 2.355e+00, Sensor type: 3, Sat number: 0, GDOP: 100.0
I20240604 14:49:49.082489 331166 gnss_estimator_base.h:658] Insufficient satellites! We need at least 5 satellites, but we only have 0!
F20240604 14:49:49.082576 331166 estimator_types.h:357] Check failed: (BackendId::sensorType(id.type()) == BackendId::sensorType(type)) || (BackendId::sensorType(type) == SensorType::IMU)
*** Check failure stack trace: ***
@ 0x7ffff7862160 google::LogMessage::Fail()
@ 0x7ffff78620a1 google::LogMessage::SendToLog()
@ 0x7ffff78618be google::LogMessage::Flush()
@ 0x7ffff7865564 google::LogMessageFatal::~LogMessageFatal()
@ 0x7ffff7b4308b gici::changeIdType()
@ 0x7ffff7b0b9e5 gici::GnssEstimatorBase::eraseClockParameterBlocks()
@ 0x7ffff7c97442 gici::SppImuCameraRrrEstimator::addGnssMeasurementAndState()
@ 0x7ffff7c92651 gici::SppImuCameraRrrEstimator::addMeasurement()
@ 0x7ffff7c54b2e gici::MultiSensorEstimating::processEstimator()
@ 0x7ffff7c5536e gici::MultiSensorEstimating::runBackend()
@ 0x7ffff7738df4 (unknown)
@ 0x7ffff7900609 start_thread
@ 0x7ffff7572353 clone
@ (nil) (unknown)
[ 96%] Building CXX object CMakeFiles/gici.dir/src/fusion/multisensor_estimating.cpp.o
[ 96%] Building CXX object CMakeFiles/gici.dir/src/fusion/rtk_imu_camera_rrr_estimator.cpp.o
[ 97%] Building CXX object CMakeFiles/gici.dir/src/fusion/rtk_imu_tc_estimator.cpp.o
[ 97%] Building CXX object CMakeFiles/gici.dir/src/fusion/spp_imu_camera_rrr_estimator.cpp.o
[ 98%] Building CXX object CMakeFiles/gici.dir/src/fusion/spp_imu_tc_estimator.cpp.o
[ 99%] Linking CXX shared library libgici.so
[ 99%] Built target gici
Scanning dependencies of target gici_main
[ 99%] Building CXX object CMakeFiles/gici_main.dir/src/gici_main.cpp.o
[100%] Linking CXX executable gici_main
/usr/bin/ld: warning: libglog.so.0, needed by libgici.so, may conflict with libglog.so.1
[100%] Built target gici_main
liyi@liyi:~/code/gici-open-master/build$ ./gici_main ../option/pseudo_real_time_estimation_RTK.yaml
段错误
Could you tell me how to solve this problem? Thanks!
您好!感谢您出色的工作!我想请教您两个问题:
1、数据集中的tag文件有何作用?因为我删除了之后,程序便不能运行。
2、我拥有的数据是符合rtcm32协议的org文件,里面包含了观测、星历、基站数据,如何能和您的数据接口对应呢?
最后再次非常感谢您的工作!
使用tool下的generate_tag对示例数据重新生成对应的tag(SPP),会出现卡死的情况?
Hi, I wanted to request ROS 2 - Humble support for this awesome library.
Would it be possible for you to upgrade the ros_wrapper functionality to ROS 2.
Alternatively, could you extend you datatool sets such that ROS2 bags and RINEX files can be converted to the ROS1 bag required by the library.
Thank you!
Hi,
Thank for opensource this powerful software. And I am trying to run a demo but encounter some problems.
I think I have completed the compile successfully but still can not find the 'gici_main'.
The following is the log in the terminal after excuting the command 'make -j8'
bryan@bryan-virtual-machine:~/gici-open/build$ make -j8
[ 0%] Building CXX object third_party/fast/CMakeFiles/fast.dir/src/fast_10.cpp.o
[ 0%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/convgpx.c.o
[ 1%] Building CXX object third_party/fast/CMakeFiles/fast.dir/src/fast_10_score.cpp.o
[ 1%] Building CXX object third_party/fast/CMakeFiles/fast.dir/src/nonmax_3x3.cpp.o
[ 2%] Building CXX object third_party/fast/CMakeFiles/fast.dir/src/faster_corner_10_sse.cpp.o
[ 3%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/convkml.c.o
[ 3%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/convrnx.c.o
[ 4%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/camera_factory.cpp.o
[ 5%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/datum.c.o
[ 5%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/download.c.o
[ 5%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/camera_geometry_base.cpp.o
[ 6%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/ephemeris.c.o
[ 7%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/geoid.c.o
[ 7%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/gis.c.o
[ 8%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/ionex.c.o
[ 8%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/lambda.c.o
[ 9%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/options.c.o
[ 9%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/pntpos.c.o
[ 10%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/postpos.c.o
[ 10%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/ppp.c.o
[ 11%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/ppp_ar.c.o
[ 12%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/preceph.c.o
[ 12%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcvraw.c.o
[ 13%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rinex.c.o
[ 13%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtcm.c.o
[ 14%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtcm2.c.o
[ 14%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtcm3.c.o
[ 15%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtcm3e.c.o
[ 16%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtkcmn.c.o
[ 16%] Linking CXX shared library ../../../third_party/fast/lib/libfast.so
[ 16%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtkpos.c.o
/usr/bin/c++ -fPIC -Wall -Werror -Wno-unknown-pragmas -fpermissive -mmmx -msse -msse -msse2 -msse3 -mssse3 -O3 -fsee -fomit-frame-pointer -fno-signed-zeros -fno-math-errno -funroll-loops -shared -Wl,-soname,libfast.so -o ../../../third_party/fast/lib/libfast.so CMakeFiles/fast.dir/src/fast_10.cpp.o CMakeFiles/fast.dir/src/fast_10_score.cpp.o CMakeFiles/fast.dir/src/nonmax_3x3.cpp.o CMakeFiles/fast.dir/src/faster_corner_10_sse.cpp.o
[ 16%] Built target fast
[ 17%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rtksvr.c.o
[ 17%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/sbas.c.o
[ 18%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/solution.c.o
[ 18%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/stream.c.o
[ 19%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/streamsvr.c.o
[ 19%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/tides.c.o
[ 20%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/tle.c.o
[ 21%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/binex.c.o
[ 21%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/crescent.c.o
[ 22%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/camera_yaml_serialization.cpp.o
[ 23%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/javad.c.o
[ 23%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/novatel.c.o
[ 24%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/nvs.c.o
[ 24%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/rt17.c.o
[ 25%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/septentrio.c.o
[ 25%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/skytraq.c.o
[ 26%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/ss2.c.o
[ 27%] Building C object third_party/rtklib/CMakeFiles/rtklib.dir/src/rcv/ublox.c.o
[ 27%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/equidistant_fisheye_geometry.cpp.o
[ 28%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/equidistant_fisheye_projection.cpp.o
[ 28%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/ncamera.cpp.o
[ 29%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/ncamera_yaml_serialization.cpp.o
[ 29%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/omni_geometry.cpp.o
[ 29%] Linking C shared library ../../../third_party/rtklib/lib/librtklib.so
[ 29%] Built target rtklib
[ 30%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_cameras/omni_projection.cpp.o
[ 31%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_common/homography.cpp.o
[ 31%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_common/math_utils.cpp.o
[ 32%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_common/performance_monitor.cpp.o
[ 32%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_common/sample.cpp.o
[ 33%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_common/user_input_thread.cpp.o
[ 33%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_common/vision.cpp.o
[ 34%] Building CXX object third_party/rpg_vikit/vikit_common/CMakeFiles/vikit_common.dir/src/vikit_solver/robust_cost.cpp.o
[ 35%] Linking CXX shared library ../../../../third_party/rpg_vikit/vikit_common/lib/libvikit_common.so
[ 35%] Built target vikit_common
[ 36%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_common/empty.cpp.o
[ 36%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_common/frame.cpp.o
[ 37%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/depth_filter.cpp.o
[ 38%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/feature_alignment.cpp.o
[ 38%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/depth_estimation.cpp.o
[ 39%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/feature_detection.cpp.o
[ 39%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/elder_zucker.cpp.o
[ 40%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_common/point.cpp.o
[ 40%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/feature_detection_utils.cpp.o
[ 41%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/matcher.cpp.o
[ 41%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_direct/patch_warp.cpp.o
[ 42%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/frame_handler_array.cpp.o
[ 42%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/frame_handler_base.cpp.o
[ 43%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/frame_handler_mono.cpp.o
[ 44%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/frame_handler_stereo.cpp.o
[ 44%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/imu_handler.cpp.o
[ 45%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/initialization.cpp.o
[ 45%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/io.cpp.o
[ 46%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/map.cpp.o
[ 46%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/pose_optimizer.cpp.o
[ 47%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/reprojector.cpp.o
[ 47%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo/stereo_triangulation.cpp.o
[ 48%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/rpg_common/fs.cpp.o
[ 49%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_tracker/feature_tracker.cpp.o
[ 49%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_tracker/feature_tracking_types.cpp.o
[ 50%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_tracker/feature_tracking_utils.cpp.o
[ 50%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_tracker/feature_tracking_viz.cpp.o
[ 51%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_img_align/sparse_img_align_base.cpp.o
[ 51%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_img_align/sparse_img_align.cpp.o
[ 52%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_vio_common/test_utils.cpp.o
[ 52%] Building CXX object third_party/rpg_svo/CMakeFiles/svo.dir/src/svo_vio_common/vio_common.cpp.o
[ 53%] Linking CXX shared library ../../../third_party/rpg_svo/lib/libsvo.so
[ 53%] Built target svo
[ 54%] Building CXX object CMakeFiles/gici.dir/src/utility/global_variable.cpp.o
[ 54%] Building CXX object CMakeFiles/gici.dir/src/utility/common.cpp.o
[ 55%] Building CXX object CMakeFiles/gici.dir/src/utility/node_option_handle.cpp.o
[ 56%] Building CXX object CMakeFiles/gici.dir/src/utility/option.cpp.o
[ 56%] Building CXX object CMakeFiles/gici.dir/src/utility/signal_handle.cpp.o
[ 57%] Building CXX object CMakeFiles/gici.dir/src/utility/spin_control.cpp.o
[ 57%] Building CXX object CMakeFiles/gici.dir/src/utility/transform.cpp.o
[ 58%] Building CXX object CMakeFiles/gici.dir/src/stream/data_integration.cpp.o
[ 58%] Building C object CMakeFiles/gici.dir/src/stream/format_image.c.o
[ 59%] Building C object CMakeFiles/gici.dir/src/stream/format_imu.c.o
[ 59%] Building CXX object CMakeFiles/gici.dir/src/stream/formator.cpp.o
[ 60%] Building CXX object CMakeFiles/gici.dir/src/stream/node_handle.cpp.o
[ 61%] Building CXX object CMakeFiles/gici.dir/src/stream/streamer.cpp.o
[ 61%] Building CXX object CMakeFiles/gici.dir/src/stream/streaming.cpp.o
[ 62%] Building CXX object CMakeFiles/gici.dir/src/gnss/ambiguity_common.cpp.o
[ 62%] Building CXX object CMakeFiles/gici.dir/src/gnss/ambiguity_error.cpp.o
[ 63%] Building CXX object CMakeFiles/gici.dir/src/gnss/ambiguity_resolution.cpp.o
[ 63%] Building CXX object CMakeFiles/gici.dir/src/gnss/ambiguity_resolution_differential.cpp.o
[ 64%] Building CXX object CMakeFiles/gici.dir/src/gnss/code_bias.cpp.o
[ 64%] Building CXX object CMakeFiles/gici.dir/src/gnss/dgnss_estimator.cpp.o
[ 65%] Building CXX object CMakeFiles/gici.dir/src/gnss/doppler_error.cpp.o
[ 66%] Building CXX object CMakeFiles/gici.dir/src/gnss/geodetic_coordinate.cpp.o
[ 66%] Building CXX object CMakeFiles/gici.dir/src/gnss/gnss_common.cpp.o
[ 67%] Building CXX object CMakeFiles/gici.dir/src/gnss/gnss_estimator_base.cpp.o
[ 67%] Building CXX object CMakeFiles/gici.dir/src/gnss/gnss_estimator_base_differential.cpp.o
[ 68%] Building CXX object CMakeFiles/gici.dir/src/gnss/gnss_estimator_base_logger.cpp.o
[ 68%] Building CXX object CMakeFiles/gici.dir/src/gnss/gnss_loose_estimator_base.cpp.o
[ 69%] Building CXX object CMakeFiles/gici.dir/src/gnss/gnss_types.cpp.o
[ 69%] Building CXX object CMakeFiles/gici.dir/src/gnss/phase_bias.cpp.o
[ 70%] Building CXX object CMakeFiles/gici.dir/src/gnss/phase_windup.cpp.o
[ 71%] Building CXX object CMakeFiles/gici.dir/src/gnss/phaserange_error.cpp.o
[ 71%] Building CXX object CMakeFiles/gici.dir/src/gnss/phaserange_error_dd.cpp.o
[ 72%] Building CXX object CMakeFiles/gici.dir/src/gnss/phaserange_error_sd.cpp.o
[ 72%] Building CXX object CMakeFiles/gici.dir/src/gnss/position_error.cpp.o
[ 73%] Building CXX object CMakeFiles/gici.dir/src/gnss/ppp_estimator.cpp.o
[ 73%] Building CXX object CMakeFiles/gici.dir/src/gnss/pseudorange_error.cpp.o
[ 74%] Building CXX object CMakeFiles/gici.dir/src/gnss/pseudorange_error_dd.cpp.o
[ 75%] Building CXX object CMakeFiles/gici.dir/src/gnss/pseudorange_error_sd.cpp.o
[ 75%] Building CXX object CMakeFiles/gici.dir/src/gnss/rtk_estimator.cpp.o
[ 76%] Building CXX object CMakeFiles/gici.dir/src/gnss/sdgnss_estimator.cpp.o
[ 76%] Building CXX object CMakeFiles/gici.dir/src/gnss/spp_estimator.cpp.o
[ 77%] Building CXX object CMakeFiles/gici.dir/src/gnss/velocity_error.cpp.o
[ 77%] Building CXX object CMakeFiles/gici.dir/src/imu/hmc_error.cpp.o
[ 78%] Building CXX object CMakeFiles/gici.dir/src/imu/imu_common.cpp.o
[ 78%] Building CXX object CMakeFiles/gici.dir/src/imu/imu_error.cpp.o
[ 79%] Building CXX object CMakeFiles/gici.dir/src/imu/imu_estimator_base.cpp.o
[ 80%] Building CXX object CMakeFiles/gici.dir/src/imu/nhc_error.cpp.o
[ 80%] Building CXX object CMakeFiles/gici.dir/src/imu/roll_and_pitch_error.cpp.o
[ 81%] Building CXX object CMakeFiles/gici.dir/src/imu/speed_and_bias_error.cpp.o
[ 81%] Building CXX object CMakeFiles/gici.dir/src/imu/yaw_error.cpp.o
[ 82%] Building CXX object CMakeFiles/gici.dir/src/vision/feature_handler.cpp.o
[ 82%] Building CXX object CMakeFiles/gici.dir/src/vision/feature_matcher.cpp.o
[ 83%] Building CXX object CMakeFiles/gici.dir/src/vision/feature_tracker.cpp.o
[ 83%] Building CXX object CMakeFiles/gici.dir/src/vision/homogeneous_point_error.cpp.o
[ 84%] Building CXX object CMakeFiles/gici.dir/src/vision/relative_pose_error.cpp.o
[ 85%] Building CXX object CMakeFiles/gici.dir/src/vision/visual_estimator_base.cpp.o
[ 85%] Building CXX object CMakeFiles/gici.dir/src/vision/visual_initialization.cpp.o
[ 86%] Building CXX object CMakeFiles/gici.dir/src/estimate/ceres_iteration_callback.cpp.o
[ 86%] Building CXX object CMakeFiles/gici.dir/src/estimate/error_interface.cpp.o
[ 87%] Building CXX object CMakeFiles/gici.dir/src/estimate/estimating.cpp.o
[ 87%] Building CXX object CMakeFiles/gici.dir/src/estimate/estimator_base.cpp.o
[ 88%] Building CXX object CMakeFiles/gici.dir/src/estimate/estimator_types.cpp.o
[ 88%] Building CXX object CMakeFiles/gici.dir/src/estimate/graph.cpp.o
[ 89%] Building CXX object CMakeFiles/gici.dir/src/estimate/homogeneous_point_local_parameterization.cpp.o
[ 90%] Building CXX object CMakeFiles/gici.dir/src/estimate/homogeneous_point_parameter_block.cpp.o
[ 90%] Building CXX object CMakeFiles/gici.dir/src/estimate/local_parameterization_additional_interfaces.cpp.o
[ 91%] Building CXX object CMakeFiles/gici.dir/src/estimate/marginalization_error.cpp.o
[ 91%] Building CXX object CMakeFiles/gici.dir/src/estimate/motion_detector.cpp.o
[ 92%] Building CXX object CMakeFiles/gici.dir/src/estimate/pose_error.cpp.o
[ 92%] Building CXX object CMakeFiles/gici.dir/src/estimate/pose_local_parameterization.cpp.o
[ 93%] Building CXX object CMakeFiles/gici.dir/src/estimate/pose_parameter_block.cpp.o
[ 94%] Building CXX object CMakeFiles/gici.dir/src/estimate/speed_and_bias_parameter_block.cpp.o
[ 94%] Building CXX object CMakeFiles/gici.dir/src/fusion/gnss_imu_camera_srr_estimator.cpp.o
[ 95%] Building CXX object CMakeFiles/gici.dir/src/fusion/gnss_imu_initializer.cpp.o
[ 95%] Building CXX object CMakeFiles/gici.dir/src/fusion/gnss_imu_lc_estimator.cpp.o
[ 96%] Building CXX object CMakeFiles/gici.dir/src/fusion/multisensor_estimating.cpp.o
[ 96%] Building CXX object CMakeFiles/gici.dir/src/fusion/rtk_imu_camera_rrr_estimator.cpp.o
[ 97%] Building CXX object CMakeFiles/gici.dir/src/fusion/rtk_imu_tc_estimator.cpp.o
[ 97%] Building CXX object CMakeFiles/gici.dir/src/fusion/spp_imu_camera_rrr_estimator.cpp.o
[ 98%] Building CXX object CMakeFiles/gici.dir/src/fusion/spp_imu_tc_estimator.cpp.o
[ 99%] Linking CXX shared library libgici.so
[ 99%] Built target gici
[ 99%] Building CXX object CMakeFiles/gici_main.dir/src/gici_main.cpp.o
[100%] Linking CXX executable gici_main
/usr/bin/ld: warning: libglog.so.0, needed by libgici.so, may conflict with libglog.so.1
/usr/bin/ld: CMakeFiles/gici_main.dir/src/gici_main.cpp.o: in function YAML::Node YAML::Node::operator[]<char [8]>(char const (&) [8])': gici_main.cpp:(.text._ZN4YAML4NodeixIA8_cEES0_RKT_[_ZN4YAML4NodeixIA8_cEES0_RKT_]+0x13e): undefined reference to
YAML::detail::node_data::convert_to_map(std::shared_ptrYAML::detail::memory_holder const&)'
/usr/bin/ld: libgici.so: undefined reference to YAML::detail::node_data::empty_scalar[abi:cxx11]()' /usr/bin/ld: ../third_party/rpg_vikit/vikit_common/lib/libvikit_common.so: undefined reference to
YAML::detail::node::m_amount'
/usr/bin/ld: ../third_party/rpg_vikit/vikit_common/lib/libvikit_common.so: undefined reference to `YAML::detail::node_data::push_back(YAML::detail::node&, std::shared_ptrYAML::detail::memory_holder const&)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/gici_main.dir/build.make:157: gici_main] Error 1
make[1]: *** [CMakeFiles/Makefile2:165: CMakeFiles/gici_main.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
/home/bryan/Pictures/Screenshot from 2023-07-06 23-00-59.png
Could you please help tell me what I have missed and how to solve this problem?
solution:
add include <string>
in file code_bias.h
and phase_bias.h
报错信息如下:
I20231108 09:49:40.058630 3857 streamer.cpp:118] FileStreamer: Unable to load enable_time_tag. Using default instead.
I20231108 09:49:40.058671 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.058686 3857 formator.cpp:314] loadStartTime: Unable to load start_time. Using default instead.
I20231108 09:49:40.061440 3857 streaming.cpp:104] str_gnss_rov: Unable to load buffer length! Using default instead.
I20231108 09:49:40.061455 3857 streaming.cpp:119] str_gnss_rov: Unable to load loop duration! Using default instead.
I20231108 09:49:40.061515 3857 streamer.cpp:118] FileStreamer: Unable to load enable_time_tag. Using default instead.
I20231108 09:49:40.061519 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.064472 3857 streaming.cpp:104] str_gnss_ref: Unable to load buffer length! Using default instead.
I20231108 09:49:40.064483 3857 streaming.cpp:119] str_gnss_ref: Unable to load loop duration! Using default instead.
I20231108 09:49:40.064508 3857 streamer.cpp:118] FileStreamer: Unable to load enable_time_tag. Using default instead.
I20231108 09:49:40.064512 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.067417 3857 streaming.cpp:104] str_gnss_eph: Unable to load buffer length! Using default instead.
I20231108 09:49:40.067430 3857 streaming.cpp:119] str_gnss_eph: Unable to load loop duration! Using default instead.
I20231108 09:49:40.067463 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.067471 3857 streaming.cpp:104] str_dcb_file: Unable to load buffer length! Using default instead.
I20231108 09:49:40.067474 3857 streaming.cpp:119] str_dcb_file: Unable to load loop duration! Using default instead.
I20231108 09:49:40.067483 3857 streamer.cpp:118] FileStreamer: Unable to load enable_time_tag. Using default instead.
I20231108 09:49:40.067487 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.067497 3857 streaming.cpp:104] str_imu: Unable to load buffer length! Using default instead.
I20231108 09:49:40.067519 3857 streamer.cpp:118] FileStreamer: Unable to load enable_time_tag. Using default instead.
I20231108 09:49:40.067523 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.067530 3857 formator.cpp:749] ImagePackFormator: Unable to load step. Using default instead.
I20231108 09:49:40.067544 3857 streaming.cpp:119] str_camera: Unable to load loop duration! Using default instead.
I20231108 09:49:40.067557 3857 streamer.cpp:119] FileStreamer: Unable to load swap_interval. Using default instead.
I20231108 09:49:40.067562 3857 formator.cpp:921] NmeaFormator: Unable to load use_gga. Using default instead.
I20231108 09:49:40.067565 3857 formator.cpp:922] NmeaFormator: Unable to load use_rmc. Using default instead.
I20231108 09:49:40.067569 3857 formator.cpp:924] NmeaFormator: Unable to load use_esd. Using default instead.
I20231108 09:49:40.067574 3857 streaming.cpp:104] str_rrr_solution_file: Unable to load buffer length! Using default instead.
I20231108 09:49:40.067576 3857 streaming.cpp:119] str_rrr_solution_file: Unable to load loop duration! Using default instead.
I20231108 09:49:40.067603 3857 formator.cpp:921] NmeaFormator: Unable to load use_gga. Using default instead.
I20231108 09:49:40.067607 3857 formator.cpp:922] NmeaFormator: Unable to load use_rmc. Using default instead.
I20231108 09:49:40.067612 3857 streaming.cpp:104] str_solution_stream: Unable to load buffer length! Using default instead.
I20231108 09:49:40.067616 3857 streaming.cpp:119] str_solution_stream: Unable to load loop duration! Using default instead.
I20231108 09:49:40.067668 3857 option.cpp:622] loadOptionsgici::EstimatorBaseOptions: Unable to load force_initial_global_position. Using default instead.
I20231108 09:49:40.067672 3857 option.cpp:623] loadOptionsgici::EstimatorBaseOptions: Unable to load log_intermediate_data. Using default instead.
I20231108 09:49:40.067677 3857 option.cpp:624] loadOptionsgici::EstimatorBaseOptions: Unable to load log_intermediate_data_directory. Using default instead.
I20231108 09:49:40.067683 3857 option.cpp:658] Unable to load initial_global_position. Using default instead.
I20231108 09:49:40.067693 3857 option.cpp:671] loadOptionsgici::GnssEstimatorBaseOptions: Unable to load good_observation_min_num_satellites. Using default instead.
I20231108 09:49:40.067696 3857 option.cpp:672] loadOptionsgici::GnssEstimatorBaseOptions: Unable to load good_observation_max_gdop. Using default instead.
I20231108 09:49:40.067699 3857 option.cpp:673] loadOptionsgici::GnssEstimatorBaseOptions: Unable to load good_observation_max_reject_ratio. Using default instead.
I20231108 09:49:40.067703 3857 option.cpp:674] loadOptionsgici::GnssEstimatorBaseOptions: Unable to load reset_ambiguity_min_num_continuous_unfix. Using default instead.
I20231108 09:49:40.067708 3857 option.cpp:675] loadOptionsgici::GnssEstimatorBaseOptions: Unable to load diverge_max_reject_ratio. Using default instead.
I20231108 09:49:40.067711 3857 option.cpp:676] loadOptionsgici::GnssEstimatorBaseOptions: Unable to load diverge_min_num_continuous_reject. Using default instead.
I20231108 09:49:40.067718 3857 option.cpp:340] loadOptionsgici::GnssCommonOptions: Unable to load min_num_satellite_redundancy. Using default instead.
I20231108 09:49:40.067723 3857 option.cpp:341] loadOptionsgici::GnssCommonOptions: Unable to load max_gdop. Using default instead.
I20231108 09:49:40.067726 3857 option.cpp:342] loadOptionsgici::GnssCommonOptions: Unable to load mw_slip_thres. Using default instead.
I20231108 09:49:40.067729 3857 option.cpp:343] loadOptionsgici::GnssCommonOptions: Unable to load gf_slip_thres. Using default instead.
I20231108 09:49:40.067732 3857 option.cpp:344] loadOptionsgici::GnssCommonOptions: Unable to load gf_sd_slip_thres. Using default instead.
I20231108 09:49:40.067736 3857 option.cpp:345] loadOptionsgici::GnssCommonOptions: Unable to load period. Using default instead.
I20231108 09:49:40.067744 3857 option.cpp:395] Unable to load receiver_pco. Using default instead.
I20231108 09:49:40.067754 3857 option.cpp:287] Unable to load gnss_error_parameter. Using default instead.
I20231108 09:49:40.067756 3857 option.cpp:693] loadOptionsgici::GnssLooseEstimatorBaseOptions: Unable to load use_outlier_rejection. Using default instead.
I20231108 09:49:40.067759 3857 option.cpp:694] loadOptionsgici::GnssLooseEstimatorBaseOptions: Unable to load max_position_error. Using default instead.
I20231108 09:49:40.067763 3857 option.cpp:695] loadOptionsgici::GnssLooseEstimatorBaseOptions: Unable to load max_velocity_error. Using default instead.
I20231108 09:49:40.067766 3857 option.cpp:696] loadOptionsgici::GnssLooseEstimatorBaseOptions: Unable to load diverge_min_num_continuous_reject. Using default instead.
I20231108 09:49:40.067772 3857 option.cpp:705] loadOptionsgici::ImuEstimatorBaseOptions: Unable to load use_zupt. Using default instead.
I20231108 09:49:40.067775 3857 option.cpp:706] loadOptionsgici::ImuEstimatorBaseOptions: Unable to load zupt_duration. Using default instead.
I20231108 09:49:40.067778 3857 option.cpp:707] loadOptionsgici::ImuEstimatorBaseOptions: Unable to load zupt_max_acc_std. Using default instead.
I20231108 09:49:40.067782 3857 option.cpp:708] loadOptionsgici::ImuEstimatorBaseOptions: Unable to load zupt_max_gyro_std. Using default instead.
I20231108 09:49:40.067785 3857 option.cpp:709] loadOptionsgici::ImuEstimatorBaseOptions: Unable to load zupt_max_gyro_median. Using default instead.
I20231108 09:49:40.067788 3857 option.cpp:710] loadOptionsgici::ImuEstimatorBaseOptions: Unable to load zupt_sigma_zero_velocity. Using default instead.
I20231108 09:49:40.067795 3857 option.cpp:514] loadOptionsgici::ImuParameters: Unable to load a_max. Using default instead.
I20231108 09:49:40.067797 3857 option.cpp:515] loadOptionsgici::ImuParameters: Unable to load g_max. Using default instead.
I20231108 09:49:40.067806 3857 option.cpp:522] loadOptionsgici::ImuParameters: Unable to load rate. Using default instead.
I20231108 09:49:40.067809 3857 option.cpp:523] loadOptionsgici::ImuParameters: Unable to load delay_imu_cam. Using default instead.
I20231108 09:49:40.067821 3857 option.cpp:867] loadOptionsgici::VisualEstimatorBaseOptions: Unable to load max_frequency. Using default instead.
I20231108 09:49:40.067826 3857 option.cpp:868] loadOptionsgici::VisualEstimatorBaseOptions: Unable to load diverge_max_reject_ratio. Using default instead.
I20231108 09:49:40.067828 3857 option.cpp:869] loadOptionsgici::VisualEstimatorBaseOptions: Unable to load diverge_min_num_continuous_reject. Using default instead.
I20231108 09:49:40.067832 3857 option.cpp:880] Unable to load camera_extrinsics_initial_std. Using default instead.
I20231108 09:49:40.067844 3857 option.cpp:589] loadOptionsgici::FeatureHandlerOptions: Unable to load max_pyramid_level. Using default instead.
I20231108 09:49:40.067848 3857 option.cpp:590] loadOptionsgici::FeatureHandlerOptions: Unable to load min_disparity_init_landmark. Using default instead.
I20231108 09:49:40.067852 3857 option.cpp:591] loadOptionsgici::FeatureHandlerOptions: Unable to load min_translation_init_landmark. Using default instead.
I20231108 09:49:40.067857 3857 option.cpp:531] loadOptionssvo::DetectorOptions: Unable to load max_level. Using default instead.
I20231108 09:49:40.067860 3857 option.cpp:532] loadOptionssvo::DetectorOptions: Unable to load min_level. Using default instead.
I20231108 09:49:40.067864 3857 option.cpp:533] loadOptionssvo::DetectorOptions: Unable to load border. Using default instead.
I20231108 09:49:40.067867 3857 option.cpp:534] loadOptionssvo::DetectorOptions: Unable to load threshold_primary. Using default instead.
I20231108 09:49:40.067870 3857 option.cpp:535] loadOptionssvo::DetectorOptions: Unable to load sampling_level. Using default instead.
I20231108 09:49:40.067874 3857 option.cpp:536] loadOptionssvo::DetectorOptions: Unable to load level. Using default instead.
I20231108 09:49:40.067879 3857 option.cpp:537] loadOptionssvo::DetectorOptions: Unable to load sec_grid_fineness. Using default instead.
I20231108 09:49:40.067883 3857 option.cpp:538] loadOptionssvo::DetectorOptions: Unable to load threshold_shitomasi. Using default instead.
I20231108 09:49:40.067888 3857 option.cpp:287] Unable to load tracker. Using default instead.
I20231108 09:49:40.067891 3857 option.cpp:564] loadOptionsgici::VisualInitializationOptions: Unable to load init_min_disparity. Using default instead.
I20231108 09:49:40.067894 3857 option.cpp:565] loadOptionsgici::VisualInitializationOptions: Unable to load init_disparity_pivot_ratio. Using default instead.
I20231108 09:49:40.067898 3857 option.cpp:566] loadOptionsgici::VisualInitializationOptions: Unable to load init_min_features. Using default instead.
I20231108 09:49:40.067901 3857 option.cpp:567] loadOptionsgici::VisualInitializationOptions: Unable to load init_min_inliers. Using default instead.
I20231108 09:49:40.067904 3857 option.cpp:568] loadOptionsgici::VisualInitializationOptions: Unable to load init_map_scale. Using default instead.
I20231108 09:49:40.067909 3857 option.cpp:569] loadOptionsgici::VisualInitializationOptions: Unable to load reproj_error_thresh. Using default instead.
F20231108 09:49:40.067970 3857 camera_geometry_base.cpp:75] Unable to load mask file.
*** Check failure stack trace: ***
@ 0x7f1f6b3fbce0 google::LogMessage::Fail()
@ 0x7f1f6b3fb913 google::LogMessage::SendToLog()
@ 0x7f1f6b3fb126 google::LogMessage::Flush()
@ 0x7f1f6b3ff6fc google::LogMessageFatal::~LogMessageFatal()
@ 0x7f1f6b4d1ec0 vk::cameras::CameraGeometryBase::loadMask()
@ 0x7f1f6b4e1c33 vk::cameras::NCamera::loadFromYaml()
@ 0x7f1f6b6cdb7d gici::option_tools::loadOptions<>()
@ 0x7f1f6b9c2dbf gici::MultiSensorEstimating::MultiSensorEstimating()
@ 0x7f1f6b72c0db gici::NodeHandle::NodeHandle()
@ 0x55a960487c53 main
@ 0x7f1f6af9b083 __libc_start_main
@ 0x55a9604880ce _start
@ (nil) (unknown)
已放弃 (核心已转储)
解决办法:
仔细检查后发现mask文件路径没有添加,添加后可以正常运行
Hello, thanks for providing such a powerful software.
I have some problem when running the example data.
I have read the solution provided by https://blog.csdn.net/weixin_45432823/article/details/131542545 , but it seems not working. It's the same error.
I am not really sure what's the "sudo apt-get remove libgflags(tab补全)" in the post mean.
Can you provide me some suggestion?
Thank you very much!
编译时遇到以上问题,报错一大堆
Dear Dr. Chi,
Thanks for providing the powerful software.
I have one question when I'm reading the manual and code.
If I want to use the SSR corrected ephemeris feature, is the message format same as the Table 2.51 to 2.56 in the manual (without ROS)?
If so, what is the "std_msgs/Header" in the "Type" category mean?
On the other hand, I have a Septentrio receiver to collect the SSR augmentation data.
Is it possible to format the augmentation data to the same format as yours?
Actually, I want to format my SSR data and put in your software, but the data was not collected by using GICI.
Also, where can I find the SSR message decoders/functions?
If I can find the decoder, I think it's possible to format my data to fit the decoders.
Thank you very much.
Best regards.
池博您好,非常感谢您的开源工作,代码非常漂亮!
有个问题向您请教,我在使用RTK/INS紧组合对您的数据集中1.1开阔环境定位的时候,发现固定率不足50%,在查看log的时候发现经常有类似如下的提示
.Invalid ambiguity resolution: Total cost changes from 6.615e+00 to 6.655e+00.
这样可能会导致很多模糊度没有固定,请问是我哪里的配置存在问题么,还是可以把这个地方的阈值松开让他去尝试固定
Thanks for this awesome project!
When I execute gici_main with option/pseudo_real_time_estimation_RTK_RRR.yaml, the program seems to run normally at first, but it now gets stuck at this point:
I20230915 16:04:37.551968 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 24 satellites that do not have ephemeris. Total number of satellite is 28
I20230915 16:04:37.653551 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 24 satellites that do not have ephemeris. Total number of satellite is 28
I20230915 16:04:37.706096 7118 feature_handler.cpp:227] Select new keyframe by time duration: 1.1 vs 1
I20230915 16:04:37.755172 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 24 satellites that do not have ephemeris. Total number of satellite is 28
I20230915 16:04:37.867003 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:37.963382 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.059954 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.161489 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.257926 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.359628 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.461269 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.563179 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.659427 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I20230915 16:04:38.760854 7109 data_integration.cpp:301] Waiting for ephemeris. We still have 26 satellites that do not have ephemeris. Total number of satellite is 30
I've been waiting for almost an hour and nothing changes.
The data is 1.2 from gici_dataset, I wonder if this is the expected behavior or something goes wrong here.
Appreciate for any help!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.