Comments (12)
Hi, I have tried it and it worked well. Maybe you need to check the config of euroc.
from dynavins.
Problem solved! I replace the yaml "cam0_pinhole.yaml" and "cam1_pinhole.yaml" with "cam0_mei.yaml" and "cam0_mei.yaml", it work and output the right trajectory! I dont know why "cam0_pinhole.yaml" and "cam1_pinhole.yaml" are not work, but glad this code can work with "cam0_mei.yaml" and "cam0_mei.yaml"! Thank you for share this code very much!
I have tried this method,but the result is still wrose than vins-fusion. Have you evaluated the results on Euroc datasets.
from dynavins.
I have checked it, and can not find the problem. My euroc config file as flows, could you help me check it?
Extrinsic parameter between IMU and Camera.
estimate_extrinsic: 0 # 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: [0.0148655429818, -0.999880929698, 0.00414029679422, -0.0216401454975,
0.999557249008, 0.0149672133247, 0.025715529948, -0.064676986768,
-0.0257744366974, 0.00375618835797, 0.999660727178, 0.00981073058949,
0.0, 0.0, 0.0, 1.0]
body_T_cam1: !!opencv-matrix
rows: 4
cols: 4
dt: d
data: [0.0125552670891, -0.999755099723, 0.0182237714554, -0.0198435579556,
0.999598781151, 0.0130119051815, 0.0251588363115, 0.0453689425024,
-0.0253898008918, 0.0179005838253, 0.999517347078, 0.00786212447038,
0.0, 0.0, 0.0, 1.0]
#Multiple thread support
multiple_thread: 1
#feature traker paprameters
max_cnt: 150 # max feature number in feature tracking
min_dist: 15 # 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: 2.0 # ransac threshold (pixel)
max_depth: 10.0 # max estimated depth (m)
show_track: 1
show_image_feat_weight: 1
publish tracking image as topic
flow_back: 1 # perform forward and backward optical flow to improve feature tracking accuracy
#dynaVINS parameters
dyna_on: true # do not change it to false
regularization_lambda: 2.0
momentum_on: true
momentum_lambda: 0.2
alternating_converge: 0.9
margin_feature_thresh: 0.1
#optimization parameters
max_solver_time: 0.3 # max solver itration time (ms), to guarantee real time
max_num_iterations: 10 # 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.2 # accelerometer measurement noise standard deviation.
gyr_n: 0.05 # gyroscope measurement noise standard deviation.
acc_w: 0.02 # accelerometer bias random work noise standard deviation.
gyr_w: 4.0e-5 # gyroscope bias random work noise standard deviation.
g_norm: 9.81007 # gravity magnitude
#unsynchronization parameters
estimate_td: 0 # online estimate time offset between camera and imu
td: 0.0 # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)
from dynavins.
cam0 config file as fellows:
model_type: PINHOLE
camera_name: camera
image_width: 752
image_height: 480
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
from dynavins.
cam1 config file as fellows:
model_type: PINHOLE
camera_name: camera
image_width: 752
image_height: 480
distortion_parameters:
k1: -2.9294124381930947e-01
k2: 8.4798002331543665e-02
p1: -2.9984646536002372e-04
p2: 3.0028216325237329e-04
projection_parameters:
fx: 4.6009781682258682e+02
fy: 4.5890983492218902e+02
cx: 3.7314916359808268e+02
cy: 2.5440734973672119e+02
from dynavins.
Or, Could you share your euroc config files?
from dynavins.
I have used evo
to evaluate dynaVINS on Machine Hall dataset. As result, VINS-Fusion's performance is better than dynaVINS's.
Actually, your config file is almost same with mine. Could you show more information about the error?
from dynavins.
Thank you for your share information. When I use euroc MH01, at the beginning it is OK, then show the wrong traj ( traj as straight line). Now I find that, I should change some code:
while(costDiff<DYN_ALT_CONV && iteration<5)
{
optimizeVIO(true,costDiff);
optimizeVIO(false,costDiff);
std::cout<<"COSTDIFF:"<<costDiff<<std::endl;
iteration++;
}
To
while(costDiff<DYN_ALT_CONV && iteration<5)
{
optimizeVIO(false,costDiff);
optimizeVIO(true,costDiff);
std::cout<<"COSTDIFF:"<<costDiff<<std::endl;
iteration++;
}
It can get a correct traj, but worse than vins-fusion.
from dynavins.
I think the code should fix feature_weight first then fix others and optimize feature_weight. A very big problem is that the results get worse.
from dynavins.
I have the same problem, DynaVins can't get the reasonable result with Euroc dataset.
Also I try it with my dataset I acquired from my chassis, bad trajectory I got.
But both Euroc dataset and my dataset I can run well in VINS-fusions!
from dynavins.
I have the same problem, DynaVins can't get the reasonable result with Euroc dataset.
Also I try it with my dataset I acquired from my chassis, bad trajectory I got.
But both Euroc dataset and my dataset I can run well in VINS-fusions!
Hi, could you show more details? Thanks!
from dynavins.
Problem solved!
I replace the yaml "cam0_pinhole.yaml" and "cam1_pinhole.yaml" with "cam0_mei.yaml" and "cam0_mei.yaml", it work and output the right trajectory! I dont know why "cam0_pinhole.yaml" and "cam1_pinhole.yaml" are not work, but glad this code can work with "cam0_mei.yaml" and "cam0_mei.yaml"!
Thank you for share this code very much!
from dynavins.
Related Issues (14)
- How much more computer power does it need than vinsfusion to achieve?
- poor performance
- a problem about projectionTwoFrameOneCamFactor.cpp
- unable to find package camera_models HOT 4
- kitti HOT 2
- Can't download Our dataset. HOT 1
- How to run real scence with realsence d455?
- process has died after launch dynaVINS viode_mono.launch HOT 3
- ceres not computed HOT 1
- About youtube video for the detailed explanation and the demo video.
- GroundTruth? HOT 1
- extrinsic calibration between imu and camera
- How to set the `camera_models` package in workspace HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dynavins.