ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Which part of rgbd_odometry uses most of computational power?

asked 2022-04-21 09:24:33 -0500

TurBot gravatar image

When trying to profile rgbd_odometry 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 rgbd_odometry 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

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2022-05-10 11:19:22 -0500

matlabbe gravatar image

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: image description

F2F odometry is quite faster than F2M (default), though less accurate.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2022-04-21 09:24:33 -0500

Seen: 88 times

Last updated: May 10 '22