Comments (9)
Hello Sharish,
I recognize that invariant Kalman theory is not straightforward. My best suggestion for reading are:
A. Barrau and S. Bonnabel, “Invariant Kalman Filtering,” Annual Review of Control, Robotics, and Autonomous Systems, vol. 1, no. 1, pp. 237–257, 2018.
A. Barrau and S. Bonnabel, “The Invariant Extended Kalman Filter as a Stable
Observer,” Transaction on Automatic Control, vol. 62, no. 4, pp. 1797–1812, 2017.
An example of well application is
R. Hartley, M. G. Jadidi, J. W. Grizzle, and R. M. Eustice, “Contact-Aided Invariant Extended Kalman Filtering for Legged Robot State Estimation,” The International Journal of Robotics Research, 2020.
What you need to understand is that the error is NOT but defined in equations (22) to (25).
I think the question you search to answer is: What is the Jacobian for GPS measurement ?
To obtain it, I start by linearizing the error (22) for rotation and position (we do not need velocity here)
Now, we write the residual of the measurement
From (*), we have
The Jacobian is thus for the part of as in a stantard Kalman filter, plus a new part of the Jacobian for orientation, i.e.
Do you need more clarifications ?
Best regards,
Martin
from ai-imu-dr.
Hello mbrossar,
I find this repository very interesting and thank you for making this open source. I tested this with the KITTI test dataset as guided in the page and I got perfectly same set of results as expected in this page. Great set of instructions!! Thanks
Now I am trying to implement this real time for the turtle-bot which has GPS and IMU. when I had the glance at the code, it is not straight forward to implement with own data. As mentioned above in the post Please can you suggest where to begin with and some suggestions would be really grateful.
Best Regards,
Harish
from ai-imu-dr.
Hi Martin,
Thank you very much for your response on my query. I will look into those papers for better understanding.
May be I misleaded you with my question. I have a ros bag file recorded from real time turtlebot having IMU data. Now I am planning to apply this algorithm to my bag file and willing to get the results how the algorithm behaves to my real data.Please can you give some suggestions for where to start if I wanted to modify the code to work with my bag file I have, to train the neural network and then test the algorithm and to get the results as like with KITTI test data.
Best Regards,
Harish
from ai-imu-dr.
from ai-imu-dr.
Hi Martin,
Thank you for your inputs. I am trying to implement the algorithm with real time imu data. I will let here posted with further results in my implementation.
Thank you for your support !!
Best Regards,
Harish
from ai-imu-dr.
Hi Martin,
I started reading the code and understanding the algorithm. But with the existing algorithm I am bit lost to implement for real time IMU data set. please could you elaborate the steps mentioned above to implement for real time data, that would be great and helpful.
Also please let know if you have tested the algorithm for real time data and this is feasible to implement.
Best Regards,
Harish
from ai-imu-dr.
Hi Sagi,
Could you be please describe precisely where you meet difficulties ? Is it for understanding the filter, implementing it in e.g. ros, ... ?
If the problem concerns just real-time implementation, you have just to call the filter each time an IMU message happens and performs both propagation and update.
The only difficulty is regarding the network, that has to conserve in memory a windows of past measurements to infer covariance (to compute covariance at time n, measurements at times n-N,...,n-1 are needed). I have tested for real-time, it is feasible.
All the best,
Martin
from ai-imu-dr.
Hi Martin,
Thanks for your replies. At least for me, the training of the neural network is the difficult part. It seems to rely on your dataset class derived from KITTI. However, I have a csv file where I have saved the data from a gps (for ground truth) and IMU. So the question is how should I format my data to work with train_torch_filter.py or make a compatible dataset.py? I think this may also be what Harish was asking.
On another note, I am also not completely sure I understand the loss function. Could you explain it?
Thanks again,
Demetris
from ai-imu-dr.
Hi Martin,
Thank you very much for your time, help and inputs here in the implementation.
Sorry for the late response from my side, I took a little off from my work. Coming to implementation of algorithm to real time data, below are my questions, some of my questions may be dumb, please correct me if I am wrong and missing something :
- Really I studied hard to understand the IEKF filter. Hope now I understood to implement the IEKF. In your previous comment mentioned about to call the filter when it receives the IMU message, here calling the filter means to call the IEKF or the whole AI filter algorithm(main.py)?
- Ros bag file has IMU and GPS. How could i use the IMU/GPS sensor input because I am little confused with following pairs described in code. please can you detail about difference of these with IMU data.
(ax, ay, az) (af, al, au)
(wx, wy, wz) (wf, wl, wu)
(vn, ve, vf) (vf, vl, vu)
When comes to neural network,
- Is Training is mandatory to real time with real time training datasets ? (or) is it okay to use the kitti dataset used already in test algorithm and use the same training parameters.Please let us know on your experience.
- If we have to train the network with our own data, please know us how to prepare the train dataset format and hot to feed to network for training. I tried to prepare the train dataset with GPS and IMU. GPS is taken as ground truth but lost in how to train the network. Lost in train_torch_filter.py and dataset.py in modifying the dataset class to my own sequence.
- Any CUDA version needed for training own sequence?
Your suggestions and inputs on these queries would be great and very much helpful. Also if created, Please could you share the github repository for real time implementation of algorithm, that would be really helpful and solve my other thousand questions.
Best Regards,
Harish
from ai-imu-dr.
Related Issues (20)
- Cannot access url for data and train parameters HOT 1
- train parameters size mismatch HOT 37
- Case 2011_10_03_drive_0027_extract - what happened?
- fixing the torch.gesv in utils_torch_filter.py HOT 3
- Train filter failure with error: TypeError: zeros() received an invalid combination of arguments - got (NoneType, int, int), HOT 6
- about sup.pdf HOT 5
- Code's equation not same with the paper HOT 21
- The checkpoint is not same with current model? Fail to load state_dict
- Reason for no end frame for some of the sequences
- Eq. 6 of Brossard's paper: Rotation matrix must be confined in x-y plane. HOT 6
- Issues with the comparison between the estimated position and ground-truth one
- Anyone knows what's the meaning of odometry_benchmark and odometry_benchmark_img? HOT 1
- Eq. 11 of the propagation step different from code (?) HOT 4
- unmatched iekfnets.p from dropbox HOT 5
- Asking for KITTI origin imu data(containing the origin timestamp file) of 09_30_0028
- IEKF nets NOT loaded
- Read data
- testing based on random weights also giving the same results as in paper HOT 9
- Training Loss of the network is fluctuating alot.
- Problem with pre-trained parameters
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 ai-imu-dr.