From c9f8dbb8fa2901fc1498eced228149842202b195 Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Wed, 27 Mar 2024 07:11:41 +0000 Subject: [PATCH] Adapt ceiling cam package to camera driver --- .../config/camera_settings_ceiling_cam.yaml | 131 +++--------------- .../launch/ceiling_cam.launch | 24 ++-- bitbots_misc/bitbots_ceiling_cam/package.xml | 5 +- 3 files changed, 30 insertions(+), 130 deletions(-) diff --git a/bitbots_misc/bitbots_ceiling_cam/config/camera_settings_ceiling_cam.yaml b/bitbots_misc/bitbots_ceiling_cam/config/camera_settings_ceiling_cam.yaml index 424b70819..9abff1c91 100644 --- a/bitbots_misc/bitbots_ceiling_cam/config/camera_settings_ceiling_cam.yaml +++ b/bitbots_misc/bitbots_ceiling_cam/config/camera_settings_ceiling_cam.yaml @@ -1,123 +1,28 @@ -/**: +/ceiling_cam_publisher: ros__parameters: - - # The tf frame under which the images were published - camera_frame: ceiling_cam - # The DeviceUserID of the camera. If empty, the first camera found in the - # device list will be used - # device_user_id: "" + # The tf frame under which the images were published + camera_frame_id: ceiling_cam - # The CameraInfo URL (Uniform Resource Locator) where the optional intrinsic - # camera calibration parameters are stored. This URL string will be parsed - # from the ROS-CameraInfoManager: - # http://docs.ros.org/api/camera_info_manager/html/classcamera__info__manager_ - # 1_1CameraInfoManager.html#details - camera_info_url: "package://bitbots_ceiling_cam/config/camera_calibration_ceiling_cam.yaml" - - # The encoding of the pixels -- channel meaning, ordering, size - # taken from the list of strings in include/sensor_msgs/image_encodings.h - # The supported encodings are 'mono8', 'bgr8', 'rgb8', 'bayer_bggr8', - # 'bayer_gbrg8' and 'bayer_rggb8' - # Default values are 'mono8' and 'rgb8' - image_encoding: "bayer_rggb8" + # The name of the camera (used to discover the camera). The name can be set in the pylon viewer. + device_user_id: ceiling_cam - # Binning factor to get downsampled images. It refers here to any camera - # setting which combines rectangular neighborhoods of pixels into larger - # "super-pixels." It reduces the resolution of the output image to - # (width / binning_x) x (height / binning_y). - # The default values binning_x = binning_y = 0 are considered the same - # as binning_x = binning_y = 1 (no subsampling). - # binning_x: 4 - # binning_y: 4 - - # The desired publisher frame rate if listening to the topics. - # This parameter can only be set once at startup - # Calling the GrabImages-Action can result in a higher framerate - frame_rate: 20.0 + # The CameraInfo URL (Uniform Resource Locator) where the optional intrinsic + # camera calibration parameters are stored. This URL string will be parsed + # from the ROS-CameraInfoManager: + # http://docs.ros.org/api/camera_info_manager/html/classcamera__info__manager_1_1CameraInfoManager.html#details + camera_info_url: "package://bitbots_ceiling_cam/config/camera_calibration_ceiling_cam.yaml" - # Mode of camera's shutter. - # The supported modes are "rolling", "global" and "global_reset" - # Default value is "" (empty) means default_shutter_mode - shutter_mode: "global" + # No subsampling is used for the ceiling camera + binning_factor_x: 1 + binning_factor_y: 1 - ########################################################################## - ######################## Image Intensity Settings ######################## - ########################################################################## - # The following settings do *NOT* have to be set. Each camera has default - # values which provide an automatic image adjustment resulting in valid - # images - ########################################################################## + # The target frame rate + fps: 20.0 - # The exposure time in microseconds to be set after opening the camera. + # The exposure time in microseconds exposure: 8000.0 - # The target gain in percent of the maximal value the camera supports - # For USB-Cameras, the gain is in dB, for GigE-Cameras it is given in so - # called 'device specific units'. - gain: 0.3 - - # Gamma correction of pixel intensity. - # Adjusts the brightness of the pixel values output by the camera's sensor - # to account for a non-linearity in the human perception of brightness or - # of the display system (such as CRT). - gamma: 1.0 - - # The average intensity value of the images. It depends the exposure time - # as well as the gain setting. If 'exposure' is provided, the interface will - # try to reach the desired brightness by only varying the gain. (What may - # often fail, because the range of possible exposure vaules is many - # times higher than the gain range). If 'gain' is provided, the interface will - # try to reach the desired brightness by only varying the exposure time. If - # gain AND exposure are given, it is not possible to reach the brightness, - # because both are assumed to be fix. - # brightness: 100 - - # Only relevant, if 'brightness' is set: - # The brightness_continuous flag controls the auto brightness function. - # If it is set to false, the brightness will only be reached once. - # Hence changing light conditions lead to changing brightness values. - # If it is set to true, the given brightness will be reached continuously, - # trying to adapt to changing light conditions. This is only possible for - # values in the possible auto range of the pylon API which is e.g. [50 - 205] - # for acA2500-14um and acA1920-40gm - # brightness_continuous: true - - # Only relevant, if 'brightness' is set: - # If the camera should try to reach and / or keep the brightness, hence - # adapting to changing light conditions, at least one of the following flags - # must be set. - # If both are set, the interface will use the profile that tries to keep the - # gain at minimum to reduce white noise. - # The exposure_auto flag indicates, that the desired brightness will be - # reached by adapting the exposure time. - # The gain_auto flag indicates, that the desired brightness will be - # reached by adapting the gain. - # exposure_auto: true - # gain_auto: true - - ########################################################################## - - # The timeout while searching the exposure which is connected to the - # desired brightness. For slow system this has to be increased. - # exposure_search_timeout: 5.0 - - # The exposure search can be limited with an upper bound. This is to prevent - # very high exposure times and resulting timeouts. - # A typical value for this upper bound is ~2000000us. - # auto_exposure_upper_limit: 2000000.0 - - # The MTU size. Only used for GigE cameras. - # To prevent lost frames configure the camera has to be configured - # with the MTU size the network card supports. A value greater 3000 - # should be good (1500 for RaspberryPI) - # gige: - # gige/mtu_size: 9000 - - # Only used for GigE cameras. - # The inter-package delay in ticks to prevent lost frames. - # For most of GigE-Cameras, a value of 1000 is reasonable. - # For cameras used on a RaspberryPI this value should be set to 11772. - # gige: - # gige/inter_pkg_delay: 1000 + # The target raw gain of the camera sensor (similar to ISO) + gain: 150 diff --git a/bitbots_misc/bitbots_ceiling_cam/launch/ceiling_cam.launch b/bitbots_misc/bitbots_ceiling_cam/launch/ceiling_cam.launch index 1a3ef6733..de3c237db 100644 --- a/bitbots_misc/bitbots_ceiling_cam/launch/ceiling_cam.launch +++ b/bitbots_misc/bitbots_ceiling_cam/launch/ceiling_cam.launch @@ -3,29 +3,23 @@ - - - - - + + + + + + - - - - - - + - + - + - - diff --git a/bitbots_misc/bitbots_ceiling_cam/package.xml b/bitbots_misc/bitbots_ceiling_cam/package.xml index cf140617e..18657f90c 100644 --- a/bitbots_misc/bitbots_ceiling_cam/package.xml +++ b/bitbots_misc/bitbots_ceiling_cam/package.xml @@ -7,13 +7,14 @@ Marc Bestmann Hamburg Bit-Bots - + MIT Hamburg Bit-Bots + apriltag_ros + bitbots_basler_camera bitbots_docs - pylon_ros2_camera_wrapper image_proc tf2_ros