Giter Site home page Giter Site logo

gici-open's People

Contributors

chichengcn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gici-open's Issues

About the gnss/imu initializer

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.

数据格式转换:bin to rosbag

描述:通过gici_files_to_rosbag.cpp将dataset中的bin文件转换为rosbag,并以ros的形式运行代码。修改convert_rosbags.yaml中5个输入路径(bin), 5个输出路径(rosbag), 2个start_time(与goundtruth中的时间对应)
问题:只有dataset 1.1能够转换成功并正常运行,其余的output均无数据,且rviz中表现为marker status:error
capture_20240105123502650
capture_20240105123527086

Data conversion problem🥹

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!🫡

GICI编译可以通过,但跑数据时报错

报错信息如下:
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文件路径没有添加,添加后可以正常运行

能否模拟EKF

池博好,我认为EKF是因子图滑动窗口长度为1时的特例,当我尝试使用RTK_TC进行解算,将estimator中RTK_TC和RTK的option下的max_window_length改为1,如下图所示:
image
但是解算开始不久后就会出错,想问一下您我这样修改滑动窗口长度模拟EKF是否正确?如果不正确的话我应该怎么做?另外想问您一下滑动窗口的长度应该如何选择,根据什么样的环境因素可以对其进行修改?

高斯牛顿法和LM

image
池博 想问一下这里我们默认使用高斯牛顿法进行优化,那如果我换用LM方法,优化结果是不是会好一些呢?或者加个约束条件,对雅可比矩阵估计或可能存在数值进行约束,让它根据此进行自动切换,理论上是不是出来的精度会更好呢?请问这种想法是否可行?

gici_main: command not found

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

Screenshot from 2023-07-06 23-00-59

Could you please help tell me what I have missed and how to solve this problem?

请问为什么紧组合固定率会很低

池博您好,非常感谢您的开源工作,代码非常漂亮!
有个问题向您请教,我在使用RTK/INS紧组合对您的数据集中1.1开阔环境定位的时候,发现固定率不足50%,在查看log的时候发现经常有类似如下的提示
.Invalid ambiguity resolution: Total cost changes from 6.615e+00 to 6.655e+00.
这样可能会导致很多模糊度没有固定,请问是我哪里的配置存在问题么,还是可以把这个地方的阈值松开让他去尝试固定

decode the 'gnss_rover.bin' to the rinex format

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'.

gici调试时遇到问题

抱歉,打扰了,池博,我在调试gici程序时遇到了头文件包含的问题。
5R($US1@WYL@NQ%JI9{ }MG
然后我修改了c_cpp_properties.json和tasks.json文件
image
image
但是出现了报错,显示找不到thirdparty下的头文件,您能帮我看看,指点一二吗?
image

顺便贴一下launch.json文件
image
多谢池博!

The format of SSR correction

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.

error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type

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)
| ^~~~~
image

I an sure I installed the Ceres-2.1.0 version.
Can you help me?

Maybe System error!`

Hi, Dr Chi:
I found that there may exist some system error in your datasets, for example:
PDF_and_CDF_of_Position_Error
and
CDF_and_PDF_of_3D_Error
Do I make some mistakes when dealing with data?

And some data will end without optimization.

Is it possible to open-source the manual as well?

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!

对数据集进行分析时提出的问题

1.我发现原始的ground_truth.txt文件中没有速度真值。想请问作者我应该如何获得速度参考真值?我想分析速度误差;
Snipaste_2024-04-13_15-08-46
2.当我对1.1、1.2等开阔天空数据集进行RTK_TC、PPP_TC、SPP、PPP、RTK五种模式解算后,结合参考真值分析位置误差,发现除RTK_TC和RTK之外的三种模式的天向误差RMS都高达1~2m,想问您一下这是为什么?
Snipaste_2024-04-13_15-07-12
图为ppp_tc,数据集1.1位置误差
感谢池博!!

Run example error

Hi, it is a pleasure to see that you are willing to open source this code, and when I try to run the example data, I met some errors

image

and then it will end, and the following information will also be given

image

Do you know why and how can I solve this problem? Thanks!

tag文件作用以及如何跑通自己的org文件?

您好!感谢您出色的工作!我想请教您两个问题:
1、数据集中的tag文件有何作用?因为我删除了之后,程序便不能运行。
2、我拥有的数据是符合rtcm32协议的org文件,里面包含了观测、星历、基站数据,如何能和您的数据接口对应呢?
最后再次非常感谢您的工作!

gici_main hangs like forever

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!

Data conversion problem🥹

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!🫡

gici_main: run GIC-“segment fault”

[ 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
段错误

微信截图_20230711202938

Could you tell me how to solve this problem? Thanks!

backend pending to fatal error

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)

运行时星历缺失

感谢作者您的开源,我在使用您的开源数据集1.1和1.2运行代码的过程中,程序一直显示等待星历。请问您是否遇到过此类问题。

GNSS解算模型以及对于异常因子的处理

池博,想请问一下本代码GNSS解算模型是用的什么方法呢?以及对于异常因子的处理是什么呢?在代码的哪个部分能看到这部分内容呢?想朝着这个方向改进一下不知是否可行~谢谢

logtostderr error

Hello, thanks for providing such a powerful software.

I have some problem when running the example data.

image

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!

得不到论文中的结果

您好,我在ROS下用gici跑了4.1数据集,用的是RTK-RRR解算,然后用EVO评估rtk-rrr-solution和ground-truth的绝对轨迹误差,我已确认配置文件无误,并且结果的坐标系也已经转换,但是离论文中的APE结果差很远,想请问一下论文中的APE是怎么得到的,以及可能存在哪些我没有发现的问题影响结果。

does the gnss_imu_lc_estimator use GNSS Ambiguity Resolution?

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.

Marginalization_error occurred when running dataset 5.2 using SPP_RRR

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)
已放弃 (核心已转储)

星历问题

您好:
我想请教一下,(ephemeris->eph = (eph_t *)malloc(sizeof(eph_t) * MAXSAT * 2))为什么要申请两倍的内存空间?是为了存储前后两个历元的星历数据还是其他用途?
期待您的回复,感谢!

Inquiry PPP mode in ROS

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?

PPP/IMU TC如何使用

感谢更新PPP/IMU紧组合模式,谢谢您的持续工作
在这里有几个问题想想问一下您:
1.能否提供PPP/IMU TC的配置文件
2.会更新PPP/IMU LC模式吗?
3.看到您源代码中有PPP/IMU/Camera RRR模式的字段,大概什么时候可以更新此模式
再次感谢您对GICI-LIB的开发以及持续更新,辛苦啦。

rank deficient when computing covariance of ppp_estimator

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!
Screenshot from 2023-10-31 11-20-14

关于编译时遇到的问题

[ 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有关的问题,请问如何解决呢?谢谢

marginalization_error

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.