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

Camera synchronization #15

Merged
merged 24 commits into from
Mar 20, 2024
Merged

Camera synchronization #15

merged 24 commits into from
Mar 20, 2024

Conversation

dfbakin
Copy link
Member

@dfbakin dfbakin commented Nov 17, 2023

Camera node is modified to be able to proceed and synchronise frames from different cameras. Lock-free queue is planned to be used.
Also hardware trigger support implemented

@dfbakin dfbakin self-assigned this Nov 17, 2023
@dasimagin
Copy link
Member

Ну-ка живо сделайте git revert на комит с прошивкой камер и учитесь работать, делая атомарные пиары...

packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/launch/camera.yaml Outdated Show resolved Hide resolved
packages/camera/launch/camera.yaml Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Show resolved Hide resolved
@dasimagin
Copy link
Member

Чтобы восстановить контекст, я решил пробежаться по коду снова. Нашел вот такой снипет...

param_.camera_num = this->declare_parameter<int>("camera_num", 1);
if (param_.camera_num != camera_num) {
RCLCPP_ERROR_STREAM(
this->get_logger(),
"expected " << param_.camera_num << " cameras, found " << camera_num);
abort();
}
RCLCPP_INFO_STREAM(this->get_logger(), "Camera number: " << param_.camera_num);

Надо бы это исправить, теперь этот параметр не определяется, надо посчитать количество камер в списке и ругать, если их меньше/больше.

packages/camera/include/params.h Show resolved Hide resolved
packages/camera/launch/camera.yaml Show resolved Hide resolved
packages/camera/src/params.cpp Outdated Show resolved Hide resolved
packages/camera/src/params.cpp Show resolved Hide resolved
packages/camera/src/params.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
@dfbakin dfbakin marked this pull request as draft January 11, 2024 23:19
@dfbakin dfbakin marked this pull request as ready for review January 11, 2024 23:20
@dfbakin dfbakin marked this pull request as draft January 11, 2024 23:21
@dfbakin dfbakin marked this pull request as ready for review January 13, 2024 00:24
@dfbakin dfbakin added the enhancement New feature or request label Jan 28, 2024
packages/camera/CMakeLists.txt Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/include/params.h Outdated Show resolved Hide resolved
packages/camera/src/params.cpp Show resolved Hide resolved
packages/camera/include/camera.h Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
packages/camera/src/camera.cpp Outdated Show resolved Hide resolved
Checking synchronization implemented, frame counters added. Timer callback group (mutually exclusive added)

missing nullptr added

Redundunt buffer eliminated

Camera script for enumerating cameras with IDs done and tested. Shell script added for convenience

optimized includes and replaced atoi with stoi

Minor changes in camera identifier

Revert "Camera script for enumerating cameras with IDs done and tested. Shell script added for convenience"

This reverts commit d35905c.

cleared files after revert

camera srtucture in launch file extended with intrinsics. Migrated camera node from name-based to ID-based approach
Lock-free queue from boost library is used to store images in newly allocated memory

StampedImagePtr is changed to be trivially contructable, destructable and copyable

-O3 compilation flag added in CMakeLists.txt for performance reasons
Minor changes implemented
Checked with address sanitizer, fixed allocations

Added logs in assigning master camera idx

fixed bug with assigning master camera idx when flag hardware_trigger is false
added and commented performance data: CPU time and logs related to lock-free queue

deleted redundunt static param from CameraNode class
implemented PR requested changes

deleted debug code
fix: queue latency changed

in order to provide publishing up to 30 FPS
@dfbakin dfbakin merged commit 4aa347c into master Mar 20, 2024
3 checks passed
@dfbakin dfbakin deleted the camera-synchronization branch May 2, 2024 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
2 participants