Git Product home page Git Product logo

ic-gvins's People

Contributors

aviana-zheng avatar ragdolloflj avatar thlsealight 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  avatar  avatar  avatar  avatar

ic-gvins's Issues

process has died

could you tell me how to solve this problem?
img_v3_028s_5d1a56c3-38bd-4e1e-b3f0-7371b19fa2eg
And the following is my gvins.yaml:

IC-GVINS多源融合定位算法配置文件

结果输出路径

Output directory

outputpath: "/home/liuyong/gvins_ws/result/"
is_make_outputdir: true

时间信息, s

Time length for GNSS/INS intialization

initlength: 1

IMU原始数据频率, Hz

IMU sample rate

imudatarate: 200

考虑地球自转补偿项

Consider the Earth rotation

iswithearth: true

天线杆臂, IMU前右下方向, m

GNSS lever-arm in IMU body frame (front-right-down)

#antlever: [-0.37, 0.008, 0.353]
antlever: [-0.52, 0.000, 0.000]

IMU噪声建模参数

IMU noise parameters

imumodel:

arw: 0.1 # deg/sqrt(hr)

 arw: 0.00015641921981365443

vrw: 0.1 # m/s/sqrt(hr)

 vrw: 0.0007853161973805388

gbstd: 50.0 # deg/hr

 gbstd: 5.837129494278657e-05

abstd: 50.0 # mGal

 abstd: 3.2064659601889169e-04 
corrtime: 1.0   # hr

GNSS中断配置

GNSS outage configurations, the GNSS will not be used after the gnssoutagetime

isusegnssoutage: false
#gnssoutagetime: 0
gnssoutagetime: 364461.5

固定阈值GNSS抗差

A fixed threshold (STD, m) for GNSS outlier culling

gnssthreshold: 20

是否开启可视化

Use visualization

is_use_visualization: true

跟踪

Tracking configurations

track_check_histogram: false # 直方图检查, 避免出现光照变化较大的图像 (Check histogram for drastic illumulation change)
track_min_parallax: 20 # 关键帧最小像素视差 (The minmum parallax in pixels to choose a keyframe)
track_max_interval: 0.5 # 最大的关键帧间隔, 超过则插入观测帧, s (The maximum lenght to choose a observation frame)
track_max_features: 200 # 最大提取特征数量 (The maximum features to detect, may be more or less, see tracking.cc)

优化

Optimization configurations

reprojection_error_std: 1.5 # 像素重投影误差 (The reprojection error std for optimizition and outlier culling)
optimize_windows_size: 10 # 滑动窗口大小 (The size of the sliding window, number of the keyframes )
optimize_num_iterations: 20 # 优化迭代次数 (The iterations in total)
optimize_estimate_extrinsic: true # 是否估计相机和IMU的外参 (Estimate the extrinsic)
optimize_estimate_td: true # 否估计相机和IMU之间的时间间隔 (Estimate the time delay)

Camera parameters

cam0:
# 内参 [fx, fy, cx, cy(, skew)]
# Intrinsic parameters, pinhole model
#intrinsic: [787.1611861559479, 787.3928431375225, 664.4061078354368, 519.5129292754456]
intrinsic: [519.1029197155882, 515.6197310158666, 337.4581737211765, 246.2314274977031]
# 畸变参数 [k1, k2, p1, p2(, k3)]
# Distortion parameters
#distortion: [-0.0917403092279957, 0.08134715036932794, 0.00017620136958692255, 0.00016737385248865412]
distortion: [-0.015230266432204792, -0.014585751011126085, 0.004316174021897651, 0.005858538434865227]
# 图像分辨率
# Resolution
#resolution: [1278, 1022]
resolution: [640, 480]
# 相机IMU外参 (Camera-IMU extrinsic)
# Pb = q_b_c * Pc + t_b_c
# q (x, y, z, w)
#q_b_c: [0.497766, 0.502679, 0.501396, 0.498141]
#t_b_c: [0.074, -0.030, 0.128]
q_b_c: [0.498, 0.502, 0.501, 0.498]
t_b_c: [-0.088, -4.668, 0.148]
# IMU和相机时间延时 (The time delay between the IMU and camera)
# t_i = t_c + td
#td_b_c: 0.0
td_b_c: -0.005256070059517965

关于几个“error”的原因和解决方法

 你好!近期在运行贵校开源的IC-GVINS时,原有urban38数据集可以实现,但我们采用自己采集的数据集时,出现了三个问题。虽然已经初步了解了基本源码,但依旧没有找到问题所在,故望请指导。
    1. IC-GVINS是否要求静止时候进行初始化?为什么会在零速初始化后近十秒不进行融合处理(在此十秒汽车已经开始运动),出现“raw data time ** ** **”如下图所示:

image

  • 2.外参在刚开始时候估计过大,导致轨迹偏差过大。之后虽然会回到正常轨迹,但想请问这种问题是因为问题1导致的吗?跑出来的轨迹如下图所示,车辆从右上角开始运动,之后又会到右上角,位姿偏差的原因是因为外参估计过大导致的。

image

  • 3.经常可以遇到“wrong matching time node ** to **“的报错,我想知道这种报错的大致原因是什么,以及对应解决方法是什么

-下方是所用的配置文件,外参已修改,imu坐标系也调整过:
syl_ic_gvins.txt

IMU数据增量转换(KF-GINS)

在你们的KF-GINS中,你们的原始数据是线速度和角速度增量,在这个中我们的IMU测量出来的数据是加速度计的加速度,陀螺仪的角速度,我想知道怎么转换为你们的增量的呢?直接时间间隔乘加速度?

关于路径呈现锯齿状和高度估计不准

尊敬的作者,你好!经过您的指导,我们修改了初始化速度阈值(0.5m/s->0.2m/s)和imu噪声参数(imu参数如下)。
imumodel:
    arw: 0.9179     
    vrw: 0.6720     
    gbstd: 25.8421 
    abstd: 27.3610   
    corrtime: 1.0  
实验结果与真值有了很好的重合度(此路段全线为Opensky开阔环境)。如下图所示:且没有任何ERROR信息和重要的WARNNING信息出现

2023-04-19 11-59-56 的屏幕截图
但依旧有三个小问题,想咨询您的意见
1.在某些机动过程中,如下图车辆进行了掉头(此路段对应于上图左下角),IC-GVINS估计的轨迹出现了锯齿状,想知道此现象发生的原因和有无对应的解决方法。

2023-04-19 12-09-45 的屏幕截图

2.在某些路段,IC-GVINS估计的高度(Z轴位置)发生了较大的误差,想知道此现象发生的原因和有无对应的解决方法。
2023-04-9 12-10-47 的屏幕截图

3.上述所有结果,均在imu和相机外参估计关闭后跑出的,因为我们发现,在我们的数据集中,如果开启估计,误差将会较大。且会报告ERROR信息,错误信息如下方第三张图所示。
2023-04-19 12-15-51 的屏幕截图
2023-04-19 12-15-55 的屏幕截图
2023-04-19 12-17-58 的屏幕截图

万分感谢作者百忙之中给予回复!下方为我们所用的配置文件。
ic_gvins_yaml.txt

kaist数据集的使用

您好,我使用您提供的数据集都可以跑通,但是使用kaist urban39自己制作的的rosbag,会出现错误,
1)使用gps_fix会报错,这里我发现gps_fix数据是5hz的
OpenCV Error: Assertion failed (0 <= _colRange.start && _colRange.start <= _colRange.end && _colRange.end <= m.cols) in Mat, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/matrix.cpp, line 491
terminate called after throwing an instance of 'cv::Exception'
what(): /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/matrix.cpp:491: error: (-215) 0 <= _colRange.start && _colRange.start <= _colRange.end && _colRange.end <= m.cols in function Mat

[ic_gvins_node-2] process has died [pid 7090, exit code -6, cmd /home/lingyue/gvins_ws/devel/lib/ic_gvins/ic_gvins_ros __name:=ic_gvins_node __log:=/home/lingyue/.ros/log/255db9e4-4d7e-11ee-b091-f48e38f96320/ic_gvins_node-2.log].
log file: /home/lingyue/.ros/log/255db9e4-4d7e-11ee-b091-f48e38f96320/ic_gvins_node-2*.log
2)将rtk的数据转换成sensor_msgs/NavSatFix之后,终端会循环打印
I0907 21:05:11.355453 7636 fusion_ros.cc:232] Raw data time 367215.615833, 0.000000, 367215.613807
但是rviz里是没有反应的,同时我发现kaist的imu数据可能是前左上的,我想咨询一下如何正确地使用kaist的数据

roslaunch时出错

执行roslaunch时出错:
roslaunch ic_gvins ic_gvins.launch configfile:=/work/vision/vio/IC-GVINS-data/campus/IC-GVINS/gvins.yaml
下面是错误信息:

ERROR: cannot launch node of type [tf2_ros/static_transform_publisher]: tf2_ros
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/work/vision/vio/gvins_ws/src
ROS path [2]=/opt/ros/noetic/share
ERROR: cannot launch node of type [rviz/rviz]: rviz
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/work/vision/vio/gvins_ws/src
ROS path [2]=/opt/ros/noetic/share
Fusion process is started...
Check thread is started...
terminate called after throwing an instance of 'boost::filesystem::filesystem_error'
what(): boost::filesystem::create_directory: No such file or directory: "path/campus/IC-GVINS"
[ic_gvins_node-1] process has died [pid 945, exit code -6, cmd /work/vision/vio/gvins_ws/devel/lib/ic_gvins/ic_gvins_ros __name:=ic_gvins_node __log:=/root/.ros/log/d4803a14-716e-11ee-9b31-0242ac120002/ic_gvins_node-1.log].
log file: /root/.ros/log/d4803a14-716e-11ee-9b31-0242ac120002/ic_gvins_node-1*.log

GNSS

hello, If GNSS is missing from the beginning, can the system support it?

祝老师教师节快乐,学生在跑demo所遇问题。

我在进行跑demo时,在roslaunch命令时,出现下面的错误,学生在寻找解决方案时,没有找到有效的解决方案,所以想请老师指导一下,下面是出现的错误:
[ic_gvins_node-2] process has died [pid 2717, exit code -6, cmd /home/scc/gvins_ws/devel/lib/ic_gvins/ic_gvins_ros __name:=ic_gvins_node __log:=/home/scc/.ros/log/70fe380e-4f8d-11ee-b8cb-1599f70f4e49/ic_gvins_node-2.log].
log file: /home/scc/.ros/log/70fe380e-4f8d-11ee-b8cb-1599f70f4e49/ic_gvins_node-2*.log

IC-GVINS多源融合定位算法配置文件

结果输出路径

Output directory

outputpath: "/home/scc/gvins_ws/output"
is_make_outputdir: true

时间信息, s

Time length for GNSS/INS intialization

initlength: 1

IMU原始数据频率, Hz

IMU sample rate

imudatarate: 100

考虑地球自转补偿项

Consider the Earth rotation

iswithearth: true

天线杆臂, IMU前右下方向, m

GNSS lever-arm in IMU body frame (front-right-down)

antlever: [0.07, 0, -0.23]

IMU噪声建模参数

IMU noise parameters

imumodel:
arw: 0.2 # deg/sqrt(hr)
vrw: 0.5 # m/s/sqrt(hr)
gbstd: 10.0 # deg/hr
abstd: 150.0 # mGal
corrtime: 1.0 # hr

GNSS中断配置

GNSS outage configurations, the GNSS will not be used after the gnssoutagetime

isusegnssoutage: false
gnssoutagetime: 364461.5

固定阈值GNSS抗差

A fixed threshold (STD, m) for GNSS outlier culling

gnssthreshold: 5

是否开启可视化

Use visualization

is_use_visualization: true

跟踪

Tracking configurations

track_check_histogram: false # 直方图检查, 避免出现光照变化较大的图像 (Check histogram for drastic illumulation change)
track_min_parallax: 15 # 关键帧最小像素视差 (The minmum parallax in pixels to choose a keyframe)
track_max_interval: 0.5 # 最大的关键帧间隔, 超过则插入观测帧, s (The maximum lenght to choose a observation frame)
track_max_features: 200 # 最大提取特征数量 (The maximum features to detect, may be more or less, see tracking.cc)

优化

Optimization configurations

reprojection_error_std: 1.5 # 像素重投影误差 (The reprojection error std for optimizition and outlier culling)
optimize_windows_size: 10 # 滑动窗口大小 (The size of the sliding window, number of the keyframes )
optimize_num_iterations: 20 # 优化迭代次数 (The iterations in total)
optimize_estimate_extrinsic: true # 是否估计相机和IMU的外参 (Estimate the extrinsic)
optimize_estimate_td: true # 否估计相机和IMU之间的时间间隔 (Estimate the time delay)

Camera parameters

cam0:
# 内参 [fx, fy, cx, cy(, skew)]
# Intrinsic parameters, pinhole model
intrinsic:
[
8.1640221474060002e+02,
8.1738388562809996e+02,
6.0882658427579997e+02,
2.6668865652440002e+02,
-2.3882017757999998e+00,
]

# 畸变参数 [k1, k2, p1, p2(, k3)]
# Distortion parameters
distortion:
    [
        -5.0040485799999999e-02,
        1.2001217170000000e-01,
        -6.2598060000000004e-04,
        -1.1825064000000000e-03,
        -6.3505207999999994e-02,
    ]

# 图像分辨率
# Resolution
resolution: [1280, 560]

# 相机IMU外参 (Camera-IMU extrinsic)
# Pb = q_b_c * Pc + t_b_c
# q (x, y, z, w)
q_b_c: [0.49452151768306785, 0.4977818081111032, 0.5055845943507494, 0.5020417891144757]
t_b_c: [1.71239, -0.247401, 0.11589]

# IMU和相机时间延时 (The time delay between the IMU and camera)
# t_i = t_c + td
td_b_c: 0.0

数据集

QQ图片20230423205859
请问我在转换kaist数据集的时候gnss话题应该选择图片中yaml文件中哪些topic?
谢谢

请问这种报错该如何处理?

非常感谢你们的工作,我是初学slam的小白。我采用ic-gvins模型,有imu和gnss数据,但gps数据不稳定,在第三帧丢失了,但是 GINS initialization is finished,看着像模型初始化完成了。
如下图所示是我的bag包,gnss的话题为 /rtk/fix
1680518910449_5B51B2A0-45E3-4a1b-B51A-FEEDC0C7CB5A
导致算法模型在计算GVINS::addNewKeyFrameTimeNode时,出现start>end的情况。如下图所示。
96512572-A664-440c-8016-082D7A58C1ED

我想用timelist_的前一帧时间戳来作为start,但此时
end - start: 0.982638
E0403 18:29:12.098510 26569 misc.cc:317] Failed to get right IMU series 371781.357392 to 371782.340030
报了这个错误。
请问该如何处理这个情况,请给个建议,非常感谢!

Coordinate System Definition

Hello,

The last couple of days I have been trying to test the IC-GVINS code on my own dataset. However, my Camera-IMU coordinate systems transformation is not working. In the image below I added the setup of my system. My IMU-Coordinate system is not setup as suggested for the IC-GVINS and doesn't conform to Front(x)-Right(y)-Down(z). Because I tested this setup on VINS-Fusion with calibration of camera, and camera-IMU with Kalibr I was hoping that still would work, however it doesn't. To get my system in the Front-Right-Down format I tried:

  1. I rotated my IMU frame +90degree around x. For that the IMU z-axis becomes the negative y-value and the y-axis becomes the z-value. I transformed the values when recording directly and did the Kalibr calibration process again. However the Direction of travel did not fit to the direction of features. Of course, then the calculated extrinsic parameters will be wrong and ad some point the the code fails to run.

20240423_090324

My question now: How do I properly configure and calibrate the coordinate frames of each system?

how to use the kaist bag

hello,
could tell me how to handle this kaist urban39 files? since i can't decompress this two files
image

trajectory.txt中的time

请问trajectory.txt中的time与kaist数据集即bag里提供left图像的时间戳有对应关系吗

Convert back to GNSS data

Thank you so much for the amazing code. However, is that any option that I can convert the fused trajectory back in GNSS msg [sensor_msgs/NavSatFix]. Thank you

error

2023-04-19_22-02
您好,请问在编译代码时遇到这个错误该怎么解决?

请问模型是否有建图的功能?

我通过调整imu噪声的参数,现在能跑完我采集的数据了,我看到了机器人跑的轨迹。请问模型是否考虑了建图,根据轨迹识别道路。为下次运行跑同样的地图提供帮助?

请问如何运行imu坐标系为右前上的数据集?

我们自己的数据集的imu坐标系是右前上,
修改了imucallback函数的这一处:
imu_.dtheta[0] = imumsg->angular_velocity.y * imu_.dt;
imu_.dtheta[1] = imumsg->angular_velocity.x * imu_.dt;
imu_.dtheta[2] = (-1)*imumsg->angular_velocity.z * imu_.dt;
imu_.dvel[0] = imumsg->linear_acceleration.y * imu_.dt;
imu_.dvel[1] = imumsg->linear_acceleration.x * imu_.dt;
imu_.dvel[2] = (-1)*imumsg->linear_acceleration.z * imu_.dt;
但不能成功运行,请问需要做哪些调整,感谢!

请问一下,我用我的imu跑的数据为什么发散?

我的机器人小车采用的是1千500多元的MEMS IMU,采用imu_utils标定的结果如下:
Gyr:
unit: " rad/s"
avg-axis:
gyr_n: 1.8933385090752749e-04
gyr_w: 7.2972481573027919e-07
Acc:
unit: " m/s^2"
avg-axis:
acc_n: 1.0407961802605373e-02
acc_w: 1.8161057505407526e-04
转换一下,陀螺仪的零偏大概39°/h,加速度计的零偏大概1040mGal.我用kalibr标定的相机和imu的结果在0.4个像素之内。相机采用的是zed2i相机,分辨率为640x360,跑的结果如下图所示:
B645222C-A528-49f3-AF14-A4B85883BDCC
小车跑了20秒左右,在划红线的部分应该是直角转弯的地方,开始发散了。发散到弧线了。下面的是我的yaml文件的配置。其中imu噪声模型我把程序里的单位转换删除了。直接用的imu_utils标定的结果。请教下怎么改进现在的配置,提高精度?
outputpath: "/Data/workspace/JW/gvins_ws/test/"
is_make_outputdir: true

时间信息, s

Time length for GNSS/INS intialization

initlength: 1

IMU原始数据频率, Hz

IMU sample rate

imudatarate: 500

考虑地球自转补偿项

Consider the Earth rotation

iswithearth: true

天线杆臂, IMU前右下方向, m

GNSS lever-arm in IMU body frame (front-right-down)

antlever: [-0.22297, 0.008, -0.06795]

IMU噪声建模参数

IMU noise parameters

imumodel:
arw : 0.00000072972481573027919
gbstd: 0.00018933385090752749
vrw : 0.00018161057505407526
abstd: 0.010407961802605373
corrtime : 1.0

GNSS中断配置

GNSS outage configurations, the GNSS will not be used after the gnssoutagetime

isusegnssoutage: false
gnssoutagetime: 0

固定阈值GNSS抗差

A fixed threshold (STD, m) for GNSS outlier culling

gnssthreshold: 20

是否开启可视化

Use visualization

is_use_visualization: true

跟踪

Tracking configurations

track_check_histogram: true # 直方图检查, 避免出现光照变化较大的图像 (Check histogram for drastic illumulation change)
track_min_parallax: 10 # 关键帧最小像素视差 (The minmum parallax in pixels to choose a keyframe)
track_max_interval: 0.5 # 最大的关键帧间隔, 超过则插入观测帧, s (The maximum lenght to choose a observation frame)
track_max_features: 200 # 最大提取特征数量 (The maximum features to detect, may be more or less, see tracking.cc)

优化

Optimization configurations

reprojection_error_std: 1.5 # 像素重投影误差 (The reprojection error std for optimizition and outlier culling)
optimize_windows_size: 30 # 滑动窗口大小 (The size of the sliding window, number of the keyframes )
optimize_num_iterations: 25 # 优化迭代次数 (The iterations in total)
optimize_estimate_extrinsic: false # 是否估计相机和IMU的外参 (Estimate the extrinsic)
optimize_estimate_td: false # 否估计相机和IMU之间的时间间隔 (Estimate the time delay)

Camera parameters

cam0:
# 内参 [fx, fy, cx, cy(, skew)]
# Intrinsic parameters, pinhole model
intrinsic: [260.43896, 260.43896, 319.3829, 177.6054]
# 畸变参数 [k1, k2, p1, p2(, k3)]
# Distortion parameters
distortion: [0.0, 0.0, 0.0, 0.0]
# 图像分辨率
# Resolution
resolution: [640, 360]
# 相机IMU外参 (Camera-IMU extrinsic)
# Pb = q_b_c * Pc + t_b_c
# q (x, y, z, w)
q_b_c: [0.50291563,0.49477625,0.50032398,0.50194446]

t_b_c: [0.17948435 ,-0.06008578 , -0.10578209]
# IMU和相机时间延时 (The time delay between the IMU and camera)
# t_i = t_c + td
td_b_c: 0.019530032247611233

process has died [pid 13438, exit code 1]

感谢你们的开源!
但是,我使用命令roslaunch ic_gvins ic_gvins.launch configfile:=/home/qqstar/catkin_loam/src/IC-GVINS/config/gvins.yaml出现问题,报错如下:
ERROR: flag 'logtostderr' was defined more than once (in files 'src/logging.cc' and '/home/qqstar/lib/glog/src/logging.cc').
[ic_gvins_node-2] process has died [pid 13164, exit code 1, cmd /home/qqstar/catkin_loam/devel/lib/ic_gvins/ic_gvins_ros __name:=ic_gvins_node __log:=/home/qqstar/.ros/log/8816be48-9891-11ed-83c4-cdbabb5b49ff/ic_gvins_node-2.log].
log file: /home/qqstar/.ros/log/8816be48-9891-11ed-83c4-cdbabb5b49ff/ic_gvins_node-2*.log

我的yaml文件如下:
outputpath: "/home/qqstar/catkin_loam/src/IC-GVINS/output/"
is_make_outputdir: true
其余参数均为默认,请问为何会出现这个问题呢

Teacher, I would like to ask how to deal with this problem

[ic_gvins_node-2] process has died [pid 11612, exit code -6, cmd /home/scc/gvins_ws/devel/lib/ic_gvins/ic_gvins_ros __name:=ic_gvins_node __log:=/home/scc/.ros/log/b3d82f80-4f7a-11ee-89b7-2fa6373f3065/ic_gvins_node-2.log].
log file: /home/scc/.ros/log/b3d82f80-4f7a-11ee-89b7-2fa6373f3065/ic_gvins_node-2*.log

IC-GVINS多源融合定位算法配置文件

结果输出路径

Output directory

outputpath: "path/gvins_ws/output"
is_make_outputdir: true

时间信息, s

Time length for GNSS/INS intialization

initlength: 1

IMU原始数据频率, Hz

IMU sample rate

imudatarate: 100

考虑地球自转补偿项

Consider the Earth rotation

iswithearth: true

天线杆臂, IMU前右下方向, m

GNSS lever-arm in IMU body frame (front-right-down)

antlever: [0.07, 0, -0.23]

IMU噪声建模参数

IMU noise parameters

imumodel:
arw: 0.2 # deg/sqrt(hr)
vrw: 0.5 # m/s/sqrt(hr)
gbstd: 10.0 # deg/hr
abstd: 150.0 # mGal
corrtime: 1.0 # hr

GNSS中断配置

GNSS outage configurations, the GNSS will not be used after the gnssoutagetime

isusegnssoutage: false
gnssoutagetime: 364461.5

固定阈值GNSS抗差

A fixed threshold (STD, m) for GNSS outlier culling

gnssthreshold: 5

是否开启可视化

Use visualization

is_use_visualization: true

跟踪

Tracking configurations

track_check_histogram: false # 直方图检查, 避免出现光照变化较大的图像 (Check histogram for drastic illumulation change)
track_min_parallax: 15 # 关键帧最小像素视差 (The minmum parallax in pixels to choose a keyframe)
track_max_interval: 0.5 # 最大的关键帧间隔, 超过则插入观测帧, s (The maximum lenght to choose a observation frame)
track_max_features: 200 # 最大提取特征数量 (The maximum features to detect, may be more or less, see tracking.cc)

优化

Optimization configurations

reprojection_error_std: 1.5 # 像素重投影误差 (The reprojection error std for optimizition and outlier culling)
optimize_windows_size: 10 # 滑动窗口大小 (The size of the sliding window, number of the keyframes )
optimize_num_iterations: 20 # 优化迭代次数 (The iterations in total)
optimize_estimate_extrinsic: true # 是否估计相机和IMU的外参 (Estimate the extrinsic)
optimize_estimate_td: true # 否估计相机和IMU之间的时间间隔 (Estimate the time delay)

Camera parameters

cam0:
# 内参 [fx, fy, cx, cy(, skew)]
# Intrinsic parameters, pinhole model
intrinsic:
[
8.1640221474060002e+02,
8.1738388562809996e+02,
6.0882658427579997e+02,
2.6668865652440002e+02,
-2.3882017757999998e+00,
]

# 畸变参数 [k1, k2, p1, p2(, k3)]
# Distortion parameters
distortion:
    [
        -5.0040485799999999e-02,
        1.2001217170000000e-01,
        -6.2598060000000004e-04,
        -1.1825064000000000e-03,
        -6.3505207999999994e-02,
    ]

# 图像分辨率
# Resolution
resolution: [1280, 560]

# 相机IMU外参 (Camera-IMU extrinsic)
# Pb = q_b_c * Pc + t_b_c
# q (x, y, z, w)
q_b_c: [0.49452151768306785, 0.4977818081111032, 0.5055845943507494, 0.5020417891144757]
t_b_c: [1.71239, -0.247401, 0.11589]

# IMU和相机时间延时 (The time delay between the IMU and camera)
# t_i = t_c + td
td_b_c: 0.0

运行roslaunch ic_gvins ic_gvins.launch时报错

在终端中中运行这句语句
roslaunch ic_gvins ic_gvins.launch configfile:=/home/oak/gvins_ws/src/IC-GVINS/config/gvins.yaml
报错
Snipaste_2023-04-16_00-52-39
此时rviz可以打开,但tracking显示错误
Snipaste_2023-04-16_00-54-34
此时也可以正常播放bag文件,把tracking topic切换到cam0正常
Snipaste_2023-04-16_00-56-49

ceres-solver related errors

In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.cc:23:
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.h:32:
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/marginalization_info.h:26:
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/residual_block_info.h:29:
In file included from /usr/local/include/ceres/ceres.h:37:
/usr/local/include/ceres/autodiff_cost_function.h:208:11: error: qualified name refers into a specialization of function template 'internal::VariadicEvaluate'
::Call(*functor_, parameters, residuals);
^
/usr/local/include/ceres/internal/variadic_evaluate.h:103:13: note: function template 'VariadicEvaluate' declared here
inline bool VariadicEvaluate(const Functor& functor,
^
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.cc:23:
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.h:32:
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/marginalization_info.h:26:
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/residual_block_info.h:29:
In file included from /usr/local/include/ceres/ceres.h:37:
/usr/local/include/ceres/autodiff_cost_function.h:210:22: error: no member named 'AutoDiff' in namespace 'ceres::internal'
return internal::AutoDiff<CostFunctor, double,
~~~~~~~~~~^
/usr/local/include/ceres/autodiff_cost_function.h:210:31: error: 'CostFunctor' does not refer to a value
return internal::AutoDiff<CostFunctor, double,
^
/usr/local/include/ceres/autodiff_cost_function.h:154:20: note: declared here
template <typename CostFunctor,
^
[ 77%] Linking CXX shared library ../../../../../devel/lib/libabsl_synchronization.so
[ 77%] Building CXX object IC-GVINS/ic_gvins/CMakeFiles/ic_gvins_core.dir/ic_gvins/tracking/camera.cc.o
[ 77%] Built target absl_synchronization
[ 78%] Building CXX object IC-GVINS/ic_gvins/abseil-cpp/absl/container/CMakeFiles/absl_hashtablez_sampler.dir/internal/hashtablez_sampler.cc.o
In file included from /home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.cc:34:
/home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/pose_parameterization.h:30:44: error: expected class name
class PoseParameterization : public ceres::LocalParameterization {
^
[ 78%] Building CXX object IC-GVINS/ic_gvins/abseil-cpp/absl/container/CMakeFiles/absl_hashtablez_sampler.dir/internal/hashtablez_sampler_force_weak_definition.cc.o
/home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.cc:1747:5: error: no type named 'LocalParameterization' in namespace 'ceres'; did you mean 'PoseParameterization'?
ceres::LocalParameterization *parameterization = new (PoseParameterization);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
PoseParameterization
/home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/pose_parameterization.h:30:7: note: 'PoseParameterization' declared here
class PoseParameterization : public ceres::LocalParameterization {
^
/home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/ic_gvins.cc:1858:9: error: no type named 'LocalParameterization' in namespace 'ceres'; did you mean 'PoseParameterization'?
ceres::LocalParameterization *parameterization = new (PoseParameterization);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
PoseParameterization
/home/adham/catkin_wsicgvins/src/IC-GVINS/ic_gvins/ic_gvins/factors/pose_parameterization.h:30:7: note: 'PoseParameterization' declared here
class PoseParameterization : public ceres::LocalParameterization {

Can you please help me solve this problems?

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.