r2_perception: ROS 2 declarations
Direct rclpy publisher/subscriber arguments use type, name, callback/QoS ordering. Compatibility wrapper calls include the node as their first argument. Service arguments identify the service type and name. Namespace/remapping and computed names must be resolved from the active launch configuration.
launch/perception_launch.py
Source: head-perception/ros2_ws/src/r2_perception/launch/perception_launch.py
| Kind | Arguments in source order | Line |
|---|---|---|
| Launch argument | 'realsense_color_topic', default_value='/hr/perception/jetson/realsense/camera/color/image_raw', description='RealSense color image topic' |
13 |
| Launch argument | 'realsense_depth_topic', default_value='/hr/perception/jetson/realsense/camera/aligned_depth_to_color/image_raw', description='RealSense aligned depth topic' |
18 |
| Launch argument | 'realsense_camera_info_topic', default_value='/hr/perception/jetson/realsense/camera/color/camera_info', description='RealSense color camera info topic' |
23 |
| Launch argument | 'use_realsense', default_value='true', description='Launch RealSense camera driver' |
28 |
| Launch argument | 'qos_reliability', default_value='best_effort', description='QoS reliability: best_effort or reliable' |
33 |
| Launch argument | 'yolo_model', default_value='yolov8s-worldv2.pt', description='YOLO object model' |
38 |
| Launch argument | 'world_classes', default_value='person, chair, table, desk, computer monitor, laptop, keyboard, mouse, cup, mug, bottle, phone, cellphone, book, lamp, plant, window, door, wall, floor, ceiling, screen, tv, remote control, camera', description='Semantic classes for YOLO-World, comma-separated' |
43 |
| Launch argument | 'yolo_process_rate', default_value='0.0', description='Object detection process rate in Hz; 0.0 processes every frame' |
48 |
| Launch argument | 'enable_object_detection', default_value='false', description='Launch YOLO object detection' |
53 |
| Launch argument | 'pose_process_rate', default_value='0.0', description='Pose detection process rate in Hz; 0.0 processes every frame' |
58 |
| Launch argument | 'enable_face_recognition', default_value='true', description='Launch quality-gated InsightFace embedding producer' |
63 |
| Launch argument | 'face_process_rate', default_value='5.0', description='Face embedding process rate in Hz' |
68 |
| Launch argument | 'face_model', default_value='buffalo_m', description='InsightFace model pack' |
73 |
| Launch argument | 'face_min_eye_distance_px', default_value='28.0', description='Minimum pose eye distance in pixels before face recognition runs' |
78 |
| Launch argument | 'face_min_blur_laplacian_var', default_value='80.0', description='Minimum Laplacian variance for face crop sharpness' |
83 |
| Launch argument | 'face_unrecognized_retry_sec', default_value='1.0', description='Seconds before retrying a tracker that WebUI did not recognize' |
88 |
| Launch argument | 'face_identity_response_timeout_sec', default_value='1.0', description='Seconds to wait for WebUI identity feedback before retry scheduling' |
93 |
| Launch argument | 'face_tracker_state_ttl_sec', default_value='3.0', description='Seconds to keep face recognition state after a tracker disappears' |
98 |
| Launch argument | 'camera_frame_id', default_value='realsense', description='Frame ID used in fused perception messages' |
103 |
| Launch argument | 'debug_overlay_enabled', default_value='true', description='Enable calibration diagnostics on /hr/perception/ui_image' |
108 |
| Launch argument | 'debug_overlay_stale_sec', default_value='1.5', description='Seconds before optional debug overlay ROS state is treated as stale' |
113 |
| Launch argument | 'debug_overlay_show_all_distances', default_value='true', description='Show depth-derived range labels on all detections' |
118 |
src/r2_perception/camera.py
Source: head-perception/ros2_ws/src/r2_perception/src/r2_perception/camera.py
| Kind | Arguments in source order | Line |
|---|---|---|
| Subscription | Image, self.image_topic, self.handle_frame, SENSOR_QOS |
43 |
| Subscription | CameraInfo, info_topic, self._camera_info_callback, SENSOR_QOS |
93 |
src/r2_perception/face_embedding_node.py
Source: head-perception/ros2_ws/src/r2_perception/src/r2_perception/face_embedding_node.py
| Kind | Arguments in source order | Line |
|---|---|---|
| Publisher | String, '/hr/perception/face_embeddings', 10 |
79 |
| Publisher | String, '/hr/perception/face_embedding_status', 10 |
84 |
| Subscription | Image, self.image_topic, self._image_callback, sensor_qos |
89 |
| Subscription | String, '/hr/perception/sources/yolo_pose/results', self._pose_callback, 10 |
95 |
| Subscription | String, '/hr/perception/face_identities', self._identity_callback, identity_qos |
101 |
| Service server | ExtractFaceEmbedding, '/hr/perception/extract_face_embedding', self._extract_service_callback |
107 |
| ROS parameter | 'image_topic', '/hr/perception/jetson/realsense/camera/color/image_raw' |
117 |
| ROS parameter | 'qos_reliability', 'best_effort' |
121 |
| ROS parameter | 'model_name', 'buffalo_m' |
122 |
| ROS parameter | 'use_gpu', True |
123 |
| ROS parameter | 'det_size', 640 |
124 |
| ROS parameter | 'process_rate', 5.0 |
125 |
| ROS parameter | 'buffer_length', 30 |
126 |
| ROS parameter | 'max_frame_delta_sec', 0.05 |
127 |
| ROS parameter | 'unrecognized_retry_sec', 1.0 |
128 |
| ROS parameter | 'identity_response_timeout_sec', 1.0 |
129 |
| ROS parameter | 'tracker_state_ttl_sec', 3.0 |
130 |
| ROS parameter | 'eye_confidence_threshold', 0.3 |
131 |
| ROS parameter | 'min_eye_distance_px', 28.0 |
132 |
| ROS parameter | 'min_crop_width_px', 80 |
133 |
| ROS parameter | 'min_crop_height_px', 80 |
134 |
| ROS parameter | 'min_blur_laplacian_var', 80.0 |
135 |
| ROS parameter | 'min_brightness', 35.0 |
136 |
| ROS parameter | 'max_brightness', 230.0 |
137 |
| ROS parameter | 'min_face_det_score', 0.5 |
138 |
src/r2_perception/fusion_node.py
Source: head-perception/ros2_ws/src/r2_perception/src/r2_perception/fusion_node.py
| Kind | Arguments in source order | Line |
|---|---|---|
| Publisher | People2, '/hr/perception/people', output_qos |
99 |
| Publisher | Objects2, '/hr/perception/objects', output_qos |
100 |
| Publisher | Image, '/hr/perception/ui_image', ui_image_qos |
101 |
| Subscription | String, '/hr/perception/sources/yolo_pose/results', self.update_poses, 10 |
105 |
| Subscription | String, '/hr/perception/sources/yolo/results', self.update_objects, 10 |
111 |
| Subscription | String, '/hr/perception/face_identities', self.update_face_identities, identity_qos |
117 |
| ROS parameter | 'primary_image_topic', '/hr/perception/jetson/realsense/camera/color/image_raw' |
131 |
| ROS parameter | 'primary_depth_topic', '/hr/perception/jetson/realsense/camera/aligned_depth_to_color/image_raw' |
135 |
| ROS parameter | 'primary_camera_info_topic', '/hr/perception/jetson/realsense/camera/color/camera_info' |
139 |
| ROS parameter | 'buffer_length', 30 |
143 |
| ROS parameter | 'qos_reliability', 'best_effort' |
144 |
| ROS parameter | 'depth_debug', False |
145 |
| ROS parameter | 'camera_frame_id', 'realsense' |
146 |
| ROS parameter | 'debug_overlay_enabled', True |
147 |
| ROS parameter | 'debug_overlay_stale_sec', 1.5 |
148 |
| ROS parameter | 'debug_overlay_show_all_distances', True |
149 |
| ROS parameter | 'face_identity_ttl_sec', 1.0 |
150 |
| Subscription | String, '/hr/behavior/current_person', self._current_person_cb, self._latched_qos() |
210 |
| Subscription | String, '/hr/behavior/current_face', self._current_face_cb, self._latched_qos() |
216 |
| Subscription | Target, '/hr/animation/set_face_target', self._face_target_cb, self._debug_stream_qos() |
222 |
| Subscription | Pau, '/hr/animation/current_state', self._current_state_cb, self._latched_qos() |
228 |
| Subscription | Image, self.primary_rgb_topic, self._image_callback, sensor_qos |
295 |
| Subscription | Image, self.primary_depth_topic, self._depth_debug_cb, sensor_qos |
306 |
| Subscription | CameraInfo, self.primary_info_topic, self._info_debug_cb, sensor_qos |
312 |
src/r2_perception/yolo_node.py
Source: head-perception/ros2_ws/src/r2_perception/src/r2_perception/yolo_node.py
| Kind | Arguments in source order | Line |
|---|---|---|
| ROS parameter | 'model_name', 'yolov8n.pt' |
62 |
| ROS parameter | 'confidence_threshold', 0.5 |
63 |
| ROS parameter | 'image_topic', '/hr/perception/jetson/realsense/camera/color/image_raw' |
64 |
| ROS parameter | 'obj_classes', '["person"]' |
65 |
| ROS parameter | 'world_classes', 'person, car' |
66 |
| ROS parameter | 'qos_reliability', 'best_effort' |
67 |
| ROS parameter | 'process_rate', 0.0 |
68 |
| Publisher | String, '/hr/perception/sources/yolo/results', 10 |
92 |
| Publisher | Image, '/hr/perception/sources/yolo/debug', 10 |
97 |
| Subscription | Image, image_topic, self.image_callback, sensor_qos |
105 |
src/r2_perception/yolo_pose_node.py
Source: head-perception/ros2_ws/src/r2_perception/src/r2_perception/yolo_pose_node.py
| Kind | Arguments in source order | Line |
|---|---|---|
| ROS parameter | 'model_name', 'yolov8n-pose.pt' |
85 |
| ROS parameter | 'confidence_threshold', 0.5 |
86 |
| ROS parameter | 'image_topic', '/hr/perception/jetson/realsense/camera/color/image_raw' |
87 |
| ROS parameter | 'max_lost', 5 |
88 |
| ROS parameter | 'distance_threshold', 0.2 |
89 |
| ROS parameter | 'qos_reliability', 'best_effort' |
90 |
| ROS parameter | 'process_rate', 0.0 |
91 |
| Publisher | String, '/hr/perception/sources/yolo_pose/results', 10 |
119 |
| Subscription | Image, image_topic, self.image_callback, sensor_qos |
133 |
| Publisher | Image, '/hr/perception/sources/yolo_pose/debug', 10 |
126 |