feat/exposure-gain-control
파라미터 조절 패널(hik_camera_panel) 패키지 추가
(이전 커밋 6eeb6a8 요약)
카메라 온보드 ExposureAuto/GainAuto가 항상 풀프레임을 측광해서 하늘이 있으면
바닥이 어두워지는 문제(camera_exposure_design_notes.md 4절)를 풀기 위해
hik_camera_node.cpp에 gain_auto(온보드 자동 게인), use_software_ae +
ae_roi_top_ratio(ROI 제한 소프트웨어 측광 — SDK에 측광 전용 ROI 노드가 없어
직접 구현), 노출 우선/게인 최후수단 순서, sync_role(master/slave) 기반
노출·게인 동기화를 추가했었다.
(이번 커밋 — 패널 기능 추가)
- hik_camera_node.cpp: dynamicParametersCallback()이 gain_auto_max_db,
ae_roi_top_ratio, ae_target_percentile, ae_target_dn,
ae_saturation_percentile, ae_saturation_dn, ae_step_gain을 런타임에도
받아들이도록 확장했다. 기존엔 이 파라미터들이 시작 시에만 반영되고
ros2 param set으로는 "Unknown parameter"로 거부되던 것을 고쳤다 — 패널에서
슬라이더로 조절하려면 반드시 필요한 변경.
- 새 패키지 hik_camera_panel (ament_python, python_qt_binding 기반): cam1/cam2/
cam3 탭으로 구성된 GUI. 노출/게인/ROI 등 파라미터를 슬라이더 또는 직접 숫자
입력으로 실시간 조절할 수 있고, /<camera_name>/image를 구독해 ROI(측광 제외
상단 비율) 경계선을 이미지 위에 오버레이로 보여준다. sync_role/
sync_master_camera_ns는 노드 시작 시에만 반영되는 값이라 조회 전용으로 막아
뒀다. 노출/노출상한/하한처럼 범위가 넓은(15us~100ms) 값은 슬라이더를 로그
스케일로 매핑했다.
새 파라미터는 전부 기본값이 기존 동작을 유지하도록 해서 하위호환된다.
개발 PC(macOS)에는 ROS 2/python_qt_binding이 없어 문법 검사와 슬라이더↔값
변환 로직의 순수 파이썬 라운드트립 테스트만 돌려봤다 — 실제 rclpy 파라미터
서비스 호출, Qt 위젯 동작, 이미지 렌더링은 로봇 PC에서 검증 필요.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
fori_camera_ws
fori_camera_ws 카메라 ros 드라이버입니다. 해당 레파지토리는 hikevision 카메라 ROS2 드라이버 코드입니다.
Description
Languages
C
87.3%
C++
8.7%
Python
3.5%
CMake
0.5%