PetWorm / LARVIO

A lightweight, accurate and robust monocular visual inertial odometry based on Multi-State Constraint Kalman Filter.
724 stars 156 forks source link

Running LARVIO on Jetson Nano XS #12

Closed itaouil closed 3 years ago

itaouil commented 3 years ago

Hi,

Great work!

Do you by any chance have results regarding running time stats for both the frontend and backend part and CPU consumption for when you run LARVIO on the TX2 or whether it has the same running time as the pc? At the moment I am able to run it on a Jetson Nano XS at 30 Hz.

Also, I just tried to run LARVIO on my pc, but the best I get for the backend it 11ms. What did you do to get it to approx. 8 ms (i.e how many features, and whether you disabled some options on the yaml file)?

I would like to reach the 50 Hz on the Jetson or at least try to optimize as much as possible (I am thinking to offload the frontend to the GPU maybe by using OpenCV with GPU).

If you could give me any hint on which direction I should take that would be very helpful.

Thanks a lot :)

Best, Ilyass

itaouil commented 3 years ago

Hi,

At the end I managed to fix the my issues. On my PC the framework runs with an average of 1-2 milliseconds for the backend and 3ms for the frontend part (I have an AMD ryzen 3900, and a 3060 NVIDIA GPU though).

I also managed to run the LARVIO algorithm on the Jetson Nano XS for which the backend runs at an average between 5 and 8 milliseconds, and the original frontend runs at an average of 0.04 seconds from the experiments I made.

At the end I substituted the frontend with a GPU accelerated one (vilib) and I got an average runtime for the frontend of about 5 to 8 milliseconds.

I hope this might be useful to whoever is interested on runtime info :).

Best, Ilyass