Skip to content

feat: axis metadata - #26

Merged
RomanRobotnik merged 15 commits into
ros-develfrom
feat/axis-metadata
Sep 6, 2026
Merged

feat: axis metadata#26
RomanRobotnik merged 15 commits into
ros-develfrom
feat/axis-metadata

Conversation

@andreacalm

@andreacalm andreacalm commented May 6, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces a major refactor to the AXIS camera ROS package, separating the detection functionality into its own dedicated node and improving the control and configurability of object detectors. It adds new configuration options, documentation, and launch files, and updates dependencies to support the new detection node. The most important changes are grouped and summarized below:

Detection Node Refactor and Separation

  • Refactored the detection logic out of axis_ptz_node.py into a new, independent ROS node: axis_detection_node.py. The detection client is now a reusable, non-ROS class in axis_lib/axis_detection.py, and the detection node is installed and launched separately. This decouples PTZ and detection functionality for better modularity. [1] [2] [3]

Detector Control Functionality

  • Added services and topics to control and monitor the publication of person and vehicle detections:
    • Service ~activate_detector (type object_detection_msgs/ManageDetector) enables/disables publication for person_detector and vehicle_detector.
    • Service ~get_detectors_name_list (type robotnik_msgs/GetStringList) lists available detectors and their states.
    • Topic ~detectors_states (type object_detection_msgs/DetectorsState) publishes the current state of both detectors.
    • Filtering is applied so that disabling a detector suppresses its corresponding detections in ROS output, but does not affect the camera or WebSocket stream.

Configuration and Build System Updates

  • Added object_detection_msgs as a build, export, and runtime dependency in CMakeLists.txt and (not shown here, but referenced) package.xml. Updated catkin_package and find_package accordingly. [1] [2]
  • Added a dedicated YAML config file for detection parameters (axis_f2105re_detection_config.yaml) with options for detector enable/disable, authentication, and channel selection.

Documentation and Launch

  • Updated README.md with a comprehensive section on the new detection node, its parameters, topics, services, and runtime behavior. Added a new launch file (axis_detection.launch) for starting the detection node with configurable parameters. [1] [2] [3]
  • Added detailed design and migration plans in docs/copilot/refactor_detection.md and docs/copilot/control_detector_status.md to guide future maintenance and clarify architectural decisions. [1] [2]

Testing and Miscellaneous

  • Added test infrastructure for the detection node, including conditional test execution in CMakeLists.txt and recommendations for unit and integration testing in the design docs. [1] [2] [3]
  • Added camera calibration data for a new device in data/f2105re.yaml.

These changes collectively improve modularity, testability, and operational control of object detection in the AXIS camera ROS package.

Depends on robotnik_msgs: RobotnikAutomation/robotnik_msgs#33

@RomanRobotnik RomanRobotnik changed the title Feat/axis metadata feat: axis metadata Sep 2, 2026
@RomanRobotnik
RomanRobotnik merged commit c66271f into ros-devel Sep 6, 2026
@RomanRobotnik
RomanRobotnik deleted the feat/axis-metadata branch September 6, 2026 06:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants