daniilidis-group / msckf_mono Goto Github PK
View Code? Open in Web Editor NEWMonocular MSCKF ROS Node
License: MIT License
Monocular MSCKF ROS Node
License: MIT License
Hi, thanks for publishing this code source. I have a query on the parameters that are used in the launch file.
I'm using the euroc.launch file and edited it to use it for my data set.
<param name="imu_covars/p_init" value="1e-12"/>
<param name="imu_covars/q_init" value="1e-5"/>
<param name="imu_covars/v_init" value="1e-2"/>
<param name="imu_covars/ba_init" value="1e-2"/>
<param name="imu_covars/bg_init" value="1e-2"/>
May I know how the above values are determined for the algorithm ? Are they obtained from the IMU calibration done offline ? Please provide your feedback on it. Thanks a lot.
Hello:
In Mourikis's paper, he says givens rotation is a convenient and "can be computed efficiently" solution. When I debug a mono version of msckf, I find the H matrix is not very sparse. Is the H matrix in your code sparse or you find this method is faster than givens rotation?
Currently receive an error in building the package due to a missing header file known as: "StageTiming.h"?
Is this due to missing a dependency? Or was the header file just not pushed, yet?
in track_features function, we call calcOpticalFlowPyrLK for klt track, but the flag parameter default 0 is there an error? moreover in main loop, i think there has no difference between undistorted_pts and undistorted_prev_pts, so what the meaning?
Excuse me. The package is indeed intact. Please close this issue.
Thank you for sharing your code.
I have a issue.
I tried to run EUROC data --> working well!!!
I tried to run kitti unsynch data --> working well!!
But, when I tired to run kitti synch data --> trajectory can not follow GT(Ground truth).
Kitti synch data has image and IMU data at same timestamp. Both of them have 10Hz time.
So, I have some question,
If the data time between IMU and image is same, it means if the imu data does not many then image data, MSCKF can be fail?
Hello,
First thank you for sharing this superb work with us. I have a problem concerning the initialization, it seems very important since it is the only thing which differs between the with ground truth ( asl_msckf node) and no ground truth version (asl_msckf_no_ground_truth node ) which both use the same model coded in msckf.h.
Unfortunately if I run for example
roslaunch msckf_mono asl_msckf_with_gt.launch stand_still_end:=1403636587663555584. data_set_path:="/home/ubuntu/catkin_ws/src/msckf_mono/euroc/MH_01_easy/mav0" stand_still_start:=1403636579763555584.
and
roslaunch msckf_mono asl_msckf_with_gt.launch stand_still_end:=1403636587663555584. data_set_path:="/home/ubuntu/catkin_ws/src/msckf_mono/euroc/MH_01_easy/mav0" stand_still_start:=1403636579763555584.
which used the same data but one with and one without the ground truth to initialize, we have on rviz vizualization the no ground truth position leaving to an infite position.
Do you have any explanation to this?
Thank you very much,
I want to use my personal dataset instead of asl_dataset throughout this code. I make the same format like other asl_dataset like euroc folder > demo folder(I created) > mav0 folder > cam0, cam1, imu0, pointcloud0, state_groundtruth_estimate0, vincon0, body.yaml , and I saved many image png files, which names are time stamp (nsec) from android phone camera in cam0 folder, and made data.csv files in imu folder. I set all the same with asl_dataset. However, when I run this pkg, I cannot see anything in rviz, and there are no error on console. How can I solve this problem?
Hi, I would like to know how you exactly implement the propogateImuStateRK method? its not the usual RK4, and I can not find any documentation on it, can you please tell any document I can refer to? Thank you very much.
is there a solution to drifts when the camera stands still?
how do i access the output? i'd like to plot out the pose data in matlab or something similar
Hi,
I am using the EuRoC dataset. I build the code on ROS kinetic on Ubuntu 16.04. I ran the exact code line which appears in the README file. However, after only two IMU callbacks, the data of my IMU is nan and 0.. I already checked my dataset and it is not empty. Please, does someone see what is going on here?
Thank you
Hi,
I'm trying o run the code on visual studio and having some trouble..
I think the visual studio 2013 is not compatible with al the C++ features that are used in your code. could this be true?
in addition could you please specify what openCV version should I use?
thanks a lot,
shelef
Can the algorithm pass the Euroc datasets as a mono vio?
Hi
I tested the ros code on euroc with the default euroc.launch, however i cant achieve the results as shown in ICRA18_Delmerico.pdf.
I wonder if there is another recommend parameter settings for euroc?
Thanks for sharing the code.
Best wishes.
Currently receive an error in building the package due to a missing header file known as: "StageTiming.h"?
Is this due to missing a dependency? Or was the header file just not pushed, yet?
I saw an out of bounds crash while running in Debug mode.
In msckf.h line 419 assumes that feature_tracks_to_residualize_[iter]
corresponds to p_f_G_vec[iter]
However, the loop in line 352, which push_backs to p_f_G_vec
has a continue instruction in line 358, which skips the push_back,
So the this might be false
It also seems that p_f_G_vec is not needed at all, because line 370 saves the p_f_G inside
the track itself (if it is valid)
(current commit d51c9ee)
It seems that std::vector of msckf_mono::camState should use Eigen::aligned_allocator
for example in class MSCKF
std::vector<camState<_S>> cam_states_;
The same issue for
std::vector<std::tuple<double, imuReading<float>>> imu_queue_;
in class RosInterface
I collected bag file using husky and I have image and imu message. But I do not have the ground truth. I can dump the bag file in ASL format but the code seems to require ground truth. I do not need the absolute position of the robot in world coordinate frame. I only need the relative position of the camera from the starting point.
Is there any workaround or already implemented code? Do I need to write my own wrapper?
where can i set the output path to save the pose about the camera?
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libvtkproj4-6.2.so.6.2.0', needed by '/home/xinzi/catkin_msckf/devel/lib/libmsckf_mono.so'. Stop.
make[2]: *** Waiting for unfinished jobs....
[ 57%] Built target msckf_mono_generate_messages_lisp
[ 60%] Generating Python from MSG msckf_mono/CamStates
[ 64%] Generating C++ code from msckf_mono/CamStates.msg
[ 64%] Built target msckf_mono_generate_messages_nodejs
[ 67%] Generating Python msg init.py for msckf_mono
[ 67%] Built target msckf_mono_generate_messages_cpp
[ 67%] Built target msckf_mono_generate_messages_py
[ 67%] Built target msckf_mono_generate_messages_eus
Scanning dependencies of target msckf_mono_generate_messages
[ 67%] Built target msckf_mono_generate_messages
CMakeFiles/Makefile2:3226: recipe for target 'msckf_mono/CMakeFiles/msckf_mono.dir/all' failed
make[1]: *** [msckf_mono/CMakeFiles/msckf_mono.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
Do you have doc for 2 points ransac?
And I think this code does not work with the latest commit, in which you add 2 points ransac back.
It is easy to verify that your inputs to twoPointRansac
are already normalized points. But inside twoPointRansac
you still treat them as pixels.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.