Which part of rgbd_odometry uses most of computational power?
When trying to profile rgbdodometry node apparently the process gets so slow that it no longer works -- after inserting commands as to use valgrind it doesn't show up any images in Rviz and reports "no data since 5s error" whereas without valgrind everything works fine. Sysprof or the usual htop show up that rgbdodometry node uses most of the computational power (which IMHO is just logical) but don't say which function is the most intense one ... I would like to know which one it is, in order to try and rewrite it either using OpenCL or else using DPC++ and offload the computation to GPU.
Using ROS2 Foxy on Ubuntu 20.04
Asked by TurBot on 2022-04-21 09:24:33 UTC
Answers
rgbd_odometry will use 100% of a core on most systems if images are streamed at 30 Hz. rgbd_odometry processes all frames that it can, dropping frames if processing time per frame is over 33 ms in this case. We can reduce rgbd_odometry CPU usage without modifying its parameters by simply decreasing camera frame rate and/or resolution.
The visual odometry pipeline is described in this paper, in particular in this figure:
F2F odometry is quite faster than F2M (default), though less accurate.
Asked by matlabbe on 2022-05-10 11:19:22 UTC
Comments