Code Monkey home page Code Monkey logo

vins-fusion's People

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

vins-fusion's Issues

quaternion parameterization issue

`
bool PoseLocalParameterization::ComputeJacobian(const double *x, double *jacobian) const
{
Eigen::Map<Eigen::Matrix<double, 7, 6, Eigen::RowMajor>> j(jacobian);
j.topRows<6>().setIdentity();
j.bottomRows<1>().setZero();

return true;

}
`

In the code, the quaternion jacobian about the delta angle is [1, 0, 0; 0, 1, 0; 0, 0, 1; 0, 0, 0], but actually I think it is not correct.

it should be 0.5 * L(q) * [1, 0, 0; 0, 1, 0; 0, 0, 1; 0, 0, 0].

is it right?

Is D435i enough for test?

I'v noticed that there is a version of mynteye in the config folder, I want to know if anyone has tested the D435I equipment?

11

body_T_cam0: !!opencv-matrix
rows: 4
cols: 4
dt: d
data: [ 4.2812441490024389e-03, -9.9997001507473682e-01,
-6.4528985710044385e-03, 5.2583356071589790e-05,
9.9996900935734523e-01, 4.2384270612576547e-03,
6.6344601088757426e-03, -4.2174706544162562e-02,
-6.6069110351583190e-03, -6.4811023350536514e-03,
9.9995717110239080e-01, 1.9238715201769417e-02, 0., 0., 0., 1. ]

body_T_cam1: !!opencv-matrix
rows: 4
cols: 4
dt: d
data: [ 1.6525177162010074e-03, -9.9998509853672479e-01,
-5.2030654132755290e-03, -2.9251875934051923e-03,
9.9994935393851081e-01, 1.6007594247438028e-03,
9.9361525360214843e-03, 7.4379061731550719e-02,
-9.9276756168115085e-03, -5.2192215666013279e-03,
9.9993709851324453e-01, 1.9302672329335892e-02, 0., 0., 0., 1. ]

Overestimated distance

Hello!

We are running your state estimator on a public agricultural dataset recorded by us (you can check it out here: http://www.cifasis-conicet.gov.ar/robot/doku.php). Some of the results we got are shown in this screenshot:

vins_issue

The estimation of VINS-Fusion always exceeds the ground truth so it makes us think that there could be some error in the configuration files:

cam0_pinhole_sequence01.txt
cam1_pinhole_sequence01.txt
zavalla_stereo_imu_config_sequence01.txt

Calibrations were obtained with Kalibr and other SLAM systems (SPTAM, ORB_SLAM2, MSCKF_VIO) were tested with it on this dataset and we had no problems. IMU parameters are quiet big but with the "real ones" VINS-Fusion directly diverges from the beginning.

One thing we know that could be wrong is the synchronization between sensors. However, we would expect the whole system to crash from the start if that was the main problem (it actually happened with the "real ones" IMU parameters but we imagine that could be something else wrong).

Is there any recommendation you could give us? Do you have any idea of what could be happening?

Thanks in advance.

Román.

Does the Optor visual-inertial sensor work?

Hi, I am trying to use the Optor visual-inertial camera with the stereo VINS-Fusion. However, it seriously drift and shake. How could I config the system to match this sensor?

Thanks.

How can VINS deal with ZED .svo data?

I have some zed stereo data in .svo format, I want to know that can VINS be able to deal with the .svo data? Or I need to convert it to other format?

Dose the node loop_fusion only works with IMU?

I have tried VINS-FUSION with kitti-dataset with stereo mode without IMU.and I find that the path of the result will not processed by Loop_fusion node even i have run it.

I have run it like this:
roslaunch vins vins_rviz.launch

rosrun loop_fusion loop_fusion_node /localhome/proprak8/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml

rosrun vins kitti_odom_test /localhome/proprak8/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml /localhome/proprak8/Dataset/dataset/sequences/00/

A large drifting with Realsense D435i

Hello, I recently used D435i to collect data for performance testing.

the rs_camera.launch is
`



  <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
  <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
  <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
  <arg name="enable_sync"              value="$(arg enable_sync)"/>
  <arg name="align_depth"              value="$(arg align_depth)"/>

  <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
  <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
  <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>

  <arg name="depth_width"              value="$(arg depth_width)"/>
  <arg name="depth_height"             value="$(arg depth_height)"/>
  <arg name="enable_depth"             value="$(arg enable_depth)"/>

  <arg name="color_width"              value="$(arg color_width)"/>
  <arg name="color_height"             value="$(arg color_height)"/>
  <arg name="enable_color"             value="$(arg enable_color)"/>

  <arg name="infra_width"              value="$(arg infra_width)"/>
  <arg name="infra_height"             value="$(arg infra_height)"/>
  <arg name="enable_infra1"            value="$(arg enable_infra1)"/>
  <arg name="enable_infra2"            value="$(arg enable_infra2)"/>

  <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
  <arg name="depth_fps"                value="$(arg depth_fps)"/>
  <arg name="infra_fps"                value="$(arg infra_fps)"/>
  <arg name="color_fps"                value="$(arg color_fps)"/>
  <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
  <arg name="accel_fps"                value="$(arg accel_fps)"/>
  <arg name="enable_gyro"              value="$(arg enable_gyro)"/>
  <arg name="enable_accel"             value="$(arg enable_accel)"/>

  <arg name="filters"                  value="$(arg filters)"/>
  <arg name="clip_distance"            value="$(arg clip_distance)"/>
  <arg name="linear_accel_cov"         value="$(arg linear_accel_cov)"/>
  <arg name="initial_reset"            value="$(arg initial_reset)"/>
  <arg name="unite_imu_method"         value="$(arg unite_imu_method)"/>
  <arg name="topic_odom_in"            value="$(arg topic_odom_in)"/>
  <arg name="calib_odom_file"          value="$(arg calib_odom_file)"/>
  <arg name="publish_odom_tf"          value="$(arg publish_odom_tf)"/>

 </include>
`

the realsense_stereo_imu_config.yaml is
`%YAML:1.0

#common parameters
#support: 1 imu 1 cam; 1 imu 2 cam: 2 cam;
imu: 1
num_of_cam: 2

imu_topic: "/camera/imu"
image0_topic: "/camera/infra1/image_rect_raw"
image1_topic: "/camera/infra2/image_rect_raw"
output_path: "/home/quxichao/catkin-ws/output/"

cam0_calib: "left.yaml"
cam1_calib: "right.yaml"
image_width: 640
image_height: 480

Extrinsic parameter between IMU and Camera.

estimate_extrinsic: 1 # 0 Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.
# 1 Have an initial guess about extrinsic parameters. We will optimize around your initial guess.

body_T_cam0: !!opencv-matrix
rows: 4
cols: 4
dt: d
data: [ -5.7586305857286746e-03, -4.0463318787729019e-03,
9.9997523237933461e-01, 2.0329267950355900e-02,
-9.9998287214160420e-01, -1.0224590553211677e-03,
-5.7628118925283633e-03, 7.9325209639615653e-03,
1.0457519809151661e-03, -9.9999129084997906e-01,
-4.0403746097850135e-03, 2.8559824645148020e-03, 0., 0., 0., 1. ]

body_T_cam1: !!opencv-matrix
rows: 4
cols: 4
dt: d
data: [ -1.0021770212322867e-03, 3.6313480322730518e-04,
9.9999943188700535e-01, 1.5285779565991807e-02,
-9.9999216342926500e-01, -3.8303422615924010e-03,
-1.0007788055728661e-03, -5.2435791444330505e-02,
3.8299766679101843e-03, -9.9999259827824449e-01,
3.6697063849344680e-04, 8.6931302450199057e-03, 0., 0., 0., 1. ]

#Multiple thread support
multiple_thread: 1

#feature traker paprameters
max_cnt: 150 # max feature number in feature tracking
min_dist: 30 # min distance between two features
freq: 10 # frequence (Hz) of publish tracking result. At least 10Hz for good estimation. If set 0, the frequence will be same as raw image
F_threshold: 1.0 # ransac threshold (pixel)
show_track: 0 # publish tracking image as topic
flow_back: 1 # perform forward and backward optical flow to improve feature tracking accuracy

#optimization parameters
max_solver_time: 0.04 # max solver itration time (ms), to guarantee real time
max_num_iterations: 8 # max solver itrations, to guarantee real time
keyframe_parallax: 10.0 # keyframe selection threshold (pixel)

#imu parameters The more accurate parameters you provide, the better performance
acc_n: 0.1 # accelerometer measurement noise standard deviation. #0.2 0.04
gyr_n: 0.01 # gyroscope measurement noise standard deviation. #0.05 0.004
acc_w: 0.001 # accelerometer bias random work noise standard deviation. #0.002
gyr_w: 0.0001 # gyroscope bias random work noise standard deviation. #4.0e-5
g_norm: 9.805 # gravity magnitude

#unsynchronization parameters
estimate_td: 1 # online estimate time offset between camera and imu
td: 0.00 # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)

#loop closure parameters
load_previous_pose_graph: 0 # load and reuse previous pose graph; load from 'pose_graph_save_path'
pose_graph_save_path: "/home/quxichao/catkin-ws/output/pose_graph/" # save and load path
save_image: 0 # save image in pose graph for visualization prupose; you can close this function by setting 0 `

When I run the code,the track_image is none,and the location is drifting
image
image

the global optimization thread doesn`t work properly

I test vins-fusion with my own device (global shutter camera + imu + gps(RTK) put those together but not hardware synchronized) and set estimate_td to 1, online estimate time offset between camera and imu.
it seems that the global optimization thread doesn`t work properly, at most time the global optimized path overlay exactly with the vio odometry path, however the gps(RTK) path was not overlay with those two path.
And sometimes the global optimized path jumps for a short distance and ran off very fast , but the gps and vio path still works fine.
I could sent my rosbag to you if you are interested.
img_1262

VINS-FUSION drift

My devices are MYNTEYED and tx2 .During the process of using VINS-FUSION, I found that when running stereo + IMU, the drift is very powerful. But when running stereo, it is very stable. Would you like to ask if you have encountered such a problem?

Jacobian Calculation in Projection factor

Hi, There seems to be an error while calculating for the Jacobian matrix in Projection factor.
VINS-Fusion/vins_estimator/src/factor/projection_factor.cpp

line 89: jaco_i.rightCols<3>() = ric.transpose() * Rj.transpose() * Ri * -Utility::skewSymmetric(pts_imu_i);

This sub block should be the jacobian of residual with respect to vector part of the quaternion.
However, the formula above is actually treating the vector part of the quaternion as if it was the rotation vector.

image
image

Question on how to get the view angle follow the camera in rviz

I tried the car demo and it looked nice. In the rviz it appeared that only the camera is moving w.r.t. the world frame.

I am wondering how to get the visualization result as in this figure, i.e., making the camera/robot as the fixed reference frame and the world is "moving" w.r.t. the static camera. How to set the configuration of rviz? Or do we need other modification?

I tried to change rviz panel Displays->Global Options->Fixed Frame from "world" to "camera". I could get the result that camera was fixed in the middle while the trajectory was moving. However the PointCloud and HistoryPointCloud were not shown in the right way. They were moving with the camera, not static w.r.t. the world frame.

Thank you!

Vins stereo problem

Thank you for your great work. And I can run the stereo vins with Kitti data set perfect. But when I ran it with my own data set, the trajectory is bad.

roslaunch vins vins_rviz.launch
rosrun vins kitti_odom_test ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/my_kitti.yaml My_DATASET_FOLDER/sequences/seq25/ 

The dataset is from parking lot.

I already changed the camera calibration file and time stamp has the same unit as kitti. Besides, I saw the feature can track well.

So I am wondering what can cause this issue? And I can not see the parameter setting of baseline of stereo camera in the setting file. Where is it?

Kitti GPS Mode Results are different with Video

Hi,

I tested VINS-Fusion in Stereo+GPS mode with Kitti dataset, but the results are different from video presentation. Differences are in these aspects:

  1. There are two trajectory in my test, but only one in video.
  2. In my test the trajectory fused with GPS don't have map features, but the trajectory in video have map features.

So I wan't to ask if I config something wrong or there is another version that you don't open source?

Eigen Unaligned Array Assert error

I've been running VINS-Fusion on a standard intel laptop, but want to try it on a raspberry pi 3 b+ and see what I can do through tuning low feature tracks and low speeds/framerates. I've compiled it on the pi, but when I attempt to run the same configuration as what is on my intel laptop, I get the error described here: https://eigen.tuxfamily.org/dox/group__TopicUnalignedArrayAssert.html

The Eigen version that's installed on the laptop is 3.2.92 and the one on the raspberry pi is 3.3.2. The error seems to be coming from Estimator::processImage. Is this something that needs to be fixed according to the above link? Or is there a recommended version of eigen that I should be using?

Can't run with opencv 3.4

I have opencv 3.4 installed but it asks for 3.2 library, is there a workaround?

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2.0', needed by '/home/george/catkin_ws/devel/lib/loop_fusion/loop_fusion_node'. Stop.
CMakeFiles/Makefile2:1439: recipe for target 'VINS-Fusion/loop_fusion/CMakeFiles/loop_fusion_node.dir/all' failed
make[1]: *** [VINS-Fusion/loop_fusion/CMakeFiles/loop_fusion_node.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2.0', needed by '/home/george/catkin_ws/devel/lib/libvins_lib.so'. Stop.
CMakeFiles/Makefile2:2461: recipe for target 'VINS-Fusion/vins_estimator/CMakeFiles/vins_lib.dir/all' failed
make[1]: *** [VINS-Fusion/vins_estimator/CMakeFiles/vins_lib.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

Fisheye

Hi,

Does VINS-Fusion work with fisheye stereo?

catkin make problem

i have catkin make problem.

/home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc: In member function ‘void camodocal::Chessboard::generateQuads(std::vector<boost::shared_ptr<camodocal::ChessboardQuad> >&, cv::Mat&, int, int, bool)’: /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1175:50: error: ‘CV_RETR_CCOMP’ was not declared in this scope cv::findContours(image, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE); ^~~~~~~~~~~~~ /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1175:65: error: ‘CV_CHAIN_APPROX_SIMPLE’ was not declared in this scope cv::findContours(image, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE); ^~~~~~~~~~~~~~~~~~~~~~ VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/build.make:110: recipe for target 'VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/src/calib/CameraCalibration.cc.o' failed make[2]: *** [VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/src/calib/CameraCalibration.cc.o] Error 1 /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1241:27: error: ‘CV_CALIB_CB_FILTER_QUADS’ was not declared in this scope if (!(flags & CV_CALIB_CB_FILTER_QUADS) || ^~~~~~~~~~~~~~~~~~~~~~~~ VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/build.make:86: recipe for target 'VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/src/calib/CameraCalibration.cc.o' failed make[2]: *** [VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/src/calib/CameraCalibration.cc.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc: In member function ‘bool camodocal::Chessboard::checkChessboard(const cv::Mat&, cv::Size) const’: /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1586:72: error: ‘CV_THRESH_BINARY’ was not declared in this scope cv::threshold(white, thresh, threshLevel + blackWhiteGap, 255, CV_THRESH_BINARY); ^~~~~~~~~~~~~~~~ /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1592:55: error: ‘CV_RETR_CCOMP’ was not declared in this scope cv::findContours(thresh, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE); ^~~~~~~~~~~~~ /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1592:70: error: ‘CV_CHAIN_APPROX_SIMPLE’ was not declared in this scope cv::findContours(thresh, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE); ^~~~~~~~~~~~~~~~~~~~~~ /home/gurturk/catkin_ws/src/VINS-Fusion/camera_models/src/chessboard/Chessboard.cc:1597:56: error: ‘CV_THRESH_BINARY_INV’ was not declared in this scope cv::threshold(black, thresh, threshLevel, 255, CV_THRESH_BINARY_INV); ^~~~~~~~~~~~~~~~~~~~ VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/build.make:62: recipe for target 'VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/src/intrinsic_calib.cc.o' failed make[2]: *** [VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/src/intrinsic_calib.cc.o] Error 1 CMakeFiles/Makefile2:676: recipe for target 'VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/all' failed make[1]: *** [VINS-Fusion/camera_models/CMakeFiles/Calibrations.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/build.make:62: recipe for target 'VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/src/chessboard/Chessboard.cc.o' failed make[2]: *** [VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/src/chessboard/Chessboard.cc.o] Error 1 CMakeFiles/Makefile2:447: recipe for target 'VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/all' failed make[1]: *** [VINS-Fusion/camera_models/CMakeFiles/camera_models.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j8 -l8" failed

Some delay in output running in nuc.

I'm confused that I try to run VINS-Fusion on Intel NUC ,however there is always a few seconds delay in the output.
Is this related to NUC devices?

More than 2 cameras

Hi,
I’m excited to see this release!
I wonder if there is a way to use more than 2 cameras at the moment?

Thanks in advance!
Chang

Initialization issue when using stereo camera

Hi,thank you for your excellent work! Now, I'm using a stereo camera with an IMU to run this project while something strange happened during Initialization.The pose is waving but the vehicle is not moving at all.

Question about loop closure

Hello, thank you for sharing this great work.

I have a question about loop closure. It seems that in VINS-Fusion, relocalization is only used for 4-DoF pose graph optimization and acts as a completely independent module than the VI odometry one. However, in VINS-Mono, it was used to constrain the optimization problem during the tracking.

Could you explain why you decided to remove this energy term from the optimization and how it affects the final results ?

get cam0_calib file

Hi, if I use another stereo camera, how can I transform
cam0_pinhole.yaml to cam0_mei.yaml?

Thanks!

VINS-FUSION drift

My devices are MYNTEYED and tx2 .During the process of using VINS-FUSION, I found that when running stereo + IMU, the drift is very powerful. But when running stereo, it is very stable. Would you like to ask if you have encountered such a problem?

Could you Let VINS-Fusion support RGBD camera

Dear QingTong
RGBD camera slam is very important . I want to change your VINS-Fusion to support RGBD camera such as
Kinect2 ,Xion2,Orbbec, etc. I think this is achievable. So Could you give some suggestion?

Question regarding camera calibration

How to calibrate cameras in simulated environments like Airsim or Flightgoggles? We can access ROS topic for camerainfo. Can we extract the required calibration parameters from camerainfo?

realsense d435i problems

Thank you for your great work. I can run the car demenstration and Kitti GPS Fusion perfectly. But when I run it with realsense d435i,I get the following error.

$rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yaml
[ INFO] [1556271031.868824114]: init begins
config_file: realsense_stereo_imu_config.yaml
USE_IMU: 1
IMU_TOPIC: /camera/imu
result path /home/dji/output//vio.csv
[ WARN] [1556271031.872582533]:  Optimize extrinsic param around initial guess!
camera number 2
[ INFO] [1556271031.872806431]: Unsynchronized sensors, online estimate time offset, initial td: 0
[ INFO] [1556271031.872823934]: ROW: 480 COL: 640 
 exitrinsic cam 0
-0.00575863 -0.00404633    0.999975
  -0.999983 -0.00102246 -0.00576281
 0.00104575   -0.999991 -0.00404037
 0.0203293 0.00793252 0.00285598
 exitrinsic cam 1
-0.00100218 0.000363135    0.999999
  -0.999992 -0.00383034 -0.00100078
 0.00382998   -0.999993 0.000366971
 0.0152858 -0.0524358 0.00869313
set g     0     0 9.805
[ INFO] [1556271031.872958979]: reading paramerter of camera realsense_stereo_imu_config.yaml/left.yaml
[ INFO] [1556271031.873021335]: reading paramerter of camera realsense_stereo_imu_config.yaml/right.yaml
MULTIPLE_THREAD is 1
[ WARN] [1556271031.873101001]: waiting for image and imu...
vins_node: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = camodocal::Camera; typename boost::detail::sp_member_access<T>::type = camodocal::Camera*]: Assertion `px != 0' failed.
Aborted (core dumped)

ROS node was launched with following comands:

roslaunch vins vins_rviz.launch
rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yaml
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yaml

I have checked the /camera/infra1/image_rect_raw,/camera/infra2/image_rect_rawand /camera/imutopics, these nodes looked fine.

Any idea about the error would be appreciate.

wechat for VINS-Fusion

I make a team of wechat for VINS-Fusion, This team can discuss all kinds of issue of vins and other vio slam.
If anyone want to join it. Please ,first add wechat number:31781410.
我建了一个微信群供大家一起讨论VINS-Fusion以及其它vio slam, 如果大家想要加入可以先加一下微信号31781410

Save and load map

Thank you sharing the code.

I am wondering if saving and reloading the map is still available in this version, similar to vins-mono?

Thanks

Why the camera intrinsics in ./config/euroc/cam0_pinhole.yaml is different from the data provided by EuRoC dataset?

In ./config/euroc/cam0_pinhole.yaml, the intrinsics are:

distortion_parameters:
k1: -2.9545645106987750e-01
k2: 8.6623215640186171e-02
p1: 2.0132892276082517e-06
p2: 1.3924531371276508e-05
projection_parameters:
fx: 4.6115862106007575e+02
fy: 4.5975286598073296e+02
cx: 3.6265929181685937e+02
cy: 2.4852105668448124e+02

However, what the EuRoC dataset provided in cam0 folder are:

camera_model: pinhole
intrinsics: [458.654, 457.296, 367.215, 248.375] #fu, fv, cu, cv
distortion_model: radial-tangential
distortion_coefficients: [-0.28340811, 0.07395907, 0.00019359, 1.76187114e-05]

I just wonder how you obtained your own camera calibration? Thanks in advance.

Issue with running Euroc MAV dataset (MH03)

I tried to run the vins FUSION as per the instructions for, but it get an error after like 2 seconds and it stops. basically it mentions "STACK SMASHING DETECTED"

[ INFO] [1550620405.682573881]: Initialization finish!
time: 1403637131.588319, t: -0.000260 -0.000035 -0.000052 q: 1.000000 -0.000010 0.000556 0.000094
time: 1403637131.688319, t: -0.000228 -0.000094 0.000004 q: 1.000000 0.000311 0.000445 0.000057
time: 1403637131.788319, t: -0.000063 -0.000040 -0.000013 q: 1.000000 0.000191 -0.000131 -0.000072
time: 1403637131.888319, t: -0.000049 -0.000002 -0.000035 q: 1.000000 -0.000036 -0.000057 -0.000011
time: 1403637131.988319, t: -0.000071 -0.000014 -0.000039 q: 1.000000 0.000157 -0.000170 -0.000254
time: 1403637132.088319, t: -0.000004 0.000096 -0.000015 q: 1.000000 -0.000152 -0.000054 -0.000741
time: 1403637132.188319, t: 0.000017 0.000139 -0.000030 q: 1.000000 -0.000232 -0.000095 -0.000753
time: 1403637132.288319, t: 0.000013 0.000144 -0.000021 q: 0.999999 -0.000100 -0.000136 -0.001037
time: 1403637132.388319, t: 0.000000 -0.000021 0.000008 q: 1.000000 0.000114 0.000089 0.000028
time: 1403637132.488319, t: -0.000015 0.000106 -0.000061 q: 1.000000 -0.000116 -0.000059 -0.000776
time: 1403637132.588319, t: 0.000051 0.000258 -0.000015 q: 0.999999 -0.000300 -0.000106 -0.001571
time: 1403637132.688319, t: 0.000045 0.000088 0.000027 q: 1.000000 -0.000144 -0.000043 -0.000530
time: 1403637132.788319, t: 0.000091 0.000041 0.000068 q: 1.000000 -0.000068 0.000075 -0.000344
time: 1403637132.888319, t: 0.000178 0.000132 0.000071 q: 1.000000 -0.000209 0.000352 0.000138
time: 1403637132.988319, t: -0.000112 0.000046 0.000033 q: 0.999999 -0.000398 0.000783 0.001066
time: 1403637133.088319, t: 0.000195 -0.000014 -0.000074 q: 0.999999 -0.000514 0.000976 0.000640
time: 1403637133.188319, t: 0.001971 0.000117 -0.002725 q: 0.999996 0.000633 0.002543 0.001089
time: 1403637133.288319, t: 0.004889 0.001171 -0.004884 q: 0.999984 -0.003344 0.001760 -0.004173
*** stack smashing detected ***: /home/yuthika/vins-ws/devel/lib/vins/vins_node terminated
Aborted (core dumped)

MYNTEYE-D have large delay in stereo+imu mode

Thank you for your great work.
My device is MYNTEYE-D, the image size is 1280*720. When I move the device, the track image and odometry in RVIZ have large delay. For example, I hold the device move around, the track image and odometry needs 5~10 second to respond. Do you know why?

InitialStructure issue

I can't have a good initial result when I run vins_fusion with multi_camera system. How does the InitialStructure part work when using a stereo camera and an IMU . Is there any paper to detail that part?

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.