Do not use wall timer for the camera loop
Working on ros2_benchmark!2 (merged), the approach of having the capture loop based on a timer showed limitations. For instance, in a composed executable with a single threaded executor, other nodes are starved if their processing is slower than the time between captures. In any case, it is not likely that the timer is well synced with the actual camera capture cycle.
A better approach would be as used in the camera pipeline intra-process demo: to perform the capturing on a separate thread from the communication.
Edited by Sander G. van Dijk