Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying to solve extreme drift with software synchronization #431

Open
ardaboluk opened this issue Jun 16, 2023 · 2 comments
Open

Trying to solve extreme drift with software synchronization #431

ardaboluk opened this issue Jun 16, 2023 · 2 comments

Comments

@ardaboluk
Copy link

I've been successfully using VINS-Mono on i7 notebook with unsynchronized 50FPS global shutter camera and 250FPS high quality IMU. However, when I run the algorithm with the same camera and IMU on Jetson TX2, odometry flies away most of the time and good initialization occurs very rarely.

I suspect that this may be caused by camera and IMU being unsynchronized. On notebook, time difference is less than 30ms and changes very little. On TX2 however, initial value of time difference changes with each run. Also, it changes dramatically during the run.

As a possible solution, I think of synchronizing them with an external ROS node which publishes two topics for IMU and camera at fixed frequencies. The topic messages will have system time (Jetson TX2) as timestamp.

Then I will add subscribers to IMU and camera SDKs listening to corresponding topics. In callbacks of the subscribers, I will then publish the latest IMU and camera data, dropping the previous ones. Also, timestamps of external topic messages will be assigned to IMU and camera messages in the callbacks.

Any one tried this solution ? Is it viable ?

Could you share if you have an insight ?

@mansisarawata
Copy link

Were you able to solve it? I am trying to do something similar.

@ardaboluk
Copy link
Author

No, I couldn't. This didn't work. As I understand hardware synchronization is essential.

Increasing camera FPS and throwing a powerful CPU minimizes the time difference between IMU and camera, enabling the algorithm to tolerate unsynchronized setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants