No version for distro humble showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro jazzy showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro kilted showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro rolling showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro ardent showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro bouncy showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro crystal showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro eloquent showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro dashing showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro galactic showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro foxy showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro iron showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro lunar showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro jade showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro indigo showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro hydro showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro kinetic showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

No version for distro melodic showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange

Package symbol

l3cam_ros package from l3cam_ros repo

l3cam_ros

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/beamaginelidar/l3cam_ros.git
VCS Type git
VCS Version master
Last Updated 2025-05-26
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Camera driver for Beamagine's L3Cam, based on the libL3Cam library

Additional Links

Maintainers

  • Beamagine

Authors

  • Beamagine

l3cam_ros

This package is an ROS driver for the L3Cam device manufactured by Beamagine. The driver relies on the library libL3Cam 0.1.18 provided by Beamagine as part of the L3Cam SDK. For more info on the L3Cam check the L3Cam User Manual.

If you are looking for this package for ROS2, go to the l3cam_ros2 package.

This package is supported only on Linux systems and has only been tested with ROS noetic on an Ubuntu 20.04 system.

Installation

Dependencies

First, you will need to install the L3Cam SDK.

Download the package from Beamagine’s L3Cam SDK 0.1.18 release repository and install the required package depending on your hardware architecture:

sudo dpkg -i <PACKAGE>

ROS Driver

Clone this repository in your catkin workspace (e.g. catkin_ws) and build:

cd ~/catkin_ws/src && git clone https://github.com/beamaginelidar/l3cam_ros
catkin_make

Access Permission

You will need to give permission to the cfg files.

cd ~/catkin_ws/src/l3cam_ros/cfg
chmod a+x Network.cfg Lidar.cfg Polarimetric.cfg Rgb.cfg Thermal.cfg AlliedWide.cfg AlliedNarrow.cfg

Operational Advice

Jumbo frames

You will need to enable jumbo frames on your ethernet adapter by increasing the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

A jumbo frame is an Ethernet frame that is larger than 1500 bytes. Most Ethernet adapters support jumbo frames, however it is usually turned off by default. Please note in order to set a 9000 byte packet size on the camera, the Ethernet adapter must support a jumbo frame size of 9000 bytes or higher.

You can check what your current MTU setting is by running the following command:

ifconfig | grep mtu

You should increase the MTU to 9000 to allow jumbo frames. If you use Network Manager, this can be done by opening the network interface settings and editing the “MTU” box under the “Identity” tab.

See the “Linux host configuration” section of the L3Cam User Manual for full details.

Receive Buffer Size

It is also recommended to increase your network default and maximum receive buffer size.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'
sudo sysctl 'net.core.rmem_default'

Update the buffer size with the following commands:

sudo sh -c "echo 'net.core.rmem_default=268435456' >> /etc/sysctl.conf"
sudo sh -c "echo 'net.core.rmem_max=268435456' >> /etc/sysctl.conf"
sudo sysctl -p

Port usage

libL3Cam uses the following ports for streaming and communications:

PROTOCOL PORT CONFIGURATION
TCP 6000 (L3CAM) Fixed
UDP 6050 (LIDAR) Fixed
UDP 6060 (Allied Wide, Polarimetric) Fixed
UDP 6020 (Allied Narrow, RGB) Fixed
UDP 6030 (LWIR) Fixed
RTSP 5040 (LIDAR) Reconfigurable
RTSP 5030 (Allied Wide, Polarimetric) Reconfigurable
RTSP 5010 (Allied Narrow, RGB) Reconfigurable
RTSP 5020 (LWIR) Reconfigurable

TCP is used internally by libL3Cam and is transparent to the user. However, the system host must have the required port available.

Launch

l3cam

To run the l3cam_ros driver, launch the l3cam.launch file specifying (if wanted) if the stream launch file, the configure launch file, rviz (for visualization GUI) and rqt_reconfigure (for dynamic reconfigure GUI) have to be launched too. By default, the values are as follows:

```

File truncated at 100 lines see the full file

CHANGELOG

Change log for l3cam_ros

All notable changes to the l3cam_ros package will be documented in this file.

[1.0.2] - 10-07-2024

Changed

  • thermalTypes changed for newThermalTypes.
  • LibL3CamStatus status types with ‘_status’ suffix to avoid errors.
  • Econ wide implementation

Added

  • libl3cam 0.1.18 new functionalities.
  • Added missing namespace prefix on messages.

Fixed

  • Fixed no error on lidar configuration bug.
  • Bias value left and right bug.

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

  • The lidar pointcloud_color param RGBT_FUSION (7) value is not available and will return out of range error.

[1.0.1] - 15-03-2024

Changed

  • Sensors header stamps with unix epoch timestamp
  • Allied cameras stream in YUV

Added

  • Topic for thermal float (pixels with temperature values)
  • New libl3cam thermal camera functionalities
  • Device info service

Fixed

Removed

Known Bugs

Issues

  • When changing a parameter from a configuration node, if the parameter could not be changed, it will be set to its previous value. This might not directly take effect on the rqt_reconfigure node and might lead to misunderstandings. Please check for any RCLCPP messages, any parameter that could not be changed will be informed. You can refresh the actual values of a configuration node in rqt_reconfigure by hiding and showing again the node parameters.

  • The following parameters might not match the real value as they depend on another parameter to be able to be set, and getters for sensors parameters, except allied cameras, are not supported yet.

    • bias_value_right depends on auto_bias.
    • bias_value_left depends on auto_bias.
    • polarimetric_camera_auto_gain_range_minimum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_gain_range_maximum depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_gain depends on polarimetric_camera_auto_gain.
    • polarimetric_camera_auto_exposure_time_range_minimum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_auto_exposure_time_range_maximum depends on polarimetric_camera_auto_exposure_time.
    • polarimetric_camera_exposure_time depends on polarimetric_camera_auto_exposure_time.
    • rgb_camera_white_balance depends on rgb_camera_auto_white_balance.
    • rgb_camera_exposure_time depends on rgb_camera_auto_exposure_time.
  • The following parameters will change when the parameter they depend on changes. These changes might not be shown directly in rqt_reconfigure, so you might have to hide and show the parameter’s node.

    • allied_wide_camera_exposure_time changes when allied_wide_camera_auto_exposure_time is set to false.
    • allied_wide_camera_gain changes when allied_wide_camera_auto_gain is set to false.
    • allied_narrow_camera_exposure_time changes when allied_narrow_camera_auto_exposure_time is set to false.
    • allied_narrow_camera_gain changes when allied_narrow_camera_auto_gain is set to false.
  • Some error codes returned from the library are returned as uint interpreted as int.

[1.0.0] - 2023-12-11

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

  • launch/configure_l3cam.launch
      • network_conf [default: true]
      • timeout_secs [default: 60]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 33.5]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470.6]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: false]
      • rgb_exposure_time [default: 156]
      • rgb_streaming_protocol [default: 0]
      • thermal_colormap [default: 1]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: false]
      • thermal_streaming_protocol [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_streaming_protocol [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_streaming_protocol [default: 0]
  • launch/l3cam.launch
      • stream [default: true]
      • rviz [default: false]
      • configure [default: true]
      • rqt_reconfigure [default: false]
      • timeout_secs [default: 30]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • local_address [default: ]
      • device_address [default: ]
      • pointcloud_color [default: 0]
      • pointcloud_color_range_minimum [default: 0]
      • pointcloud_color_range_maximum [default: 300000]
      • distance_range_minimum [default: 1500]
      • distance_range_maximum [default: 300000]
      • bias_short_range [default: false]
      • auto_bias [default: true]
      • bias_value_right [default: 1580]
      • bias_value_left [default: 1380]
      • autobias_value_right [default: 50]
      • autobias_value_left [default: 50]
      • lidar_streaming_protocol [default: 0]
      • lidar_rtsp_pipeline [default: ]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]
      • polarimetric_brightness [default: 127]
      • polarimetric_black_level [default: 6.0]
      • polarimetric_auto_gain [default: true]
      • polarimetric_auto_gain_range_minimum [default: 0.0]
      • polarimetric_auto_gain_range_maximum [default: 48.0]
      • polarimetric_gain [default: 24.0]
      • polarimetric_auto_exposure_time [default: true]
      • polarimetric_auto_exposure_time_range_minimum [default: 40]
      • polarimetric_auto_exposure_time_range_maximum [default: 66470]
      • polarimetric_exposure_time [default: 33.5]
      • polarimetric_streaming_protocol [default: 0]
      • polarimetric_rtsp_pipeline [default: ]
      • rgb_brightness [default: 0]
      • rgb_contrast [default: 10]
      • rgb_saturation [default: 16]
      • rgb_sharpness [default: 16]
      • rgb_gamma [default: 220]
      • rgb_gain [default: 0]
      • rgb_auto_white_balance [default: true]
      • rgb_white_balance [default: 5000]
      • rgb_auto_exposure_time [default: true]
      • rgb_exposure_time [default: 156]
      • rgb_resolution [default: 3]
      • rgb_framerate [default: 10]
      • rgb_streaming_protocol [default: 0]
      • rgb_rtsp_pipeline [default: ]
      • thermal_colormap [default: 5]
      • thermal_temperature_filter [default: false]
      • thermal_temperature_filter_min [default: 0]
      • thermal_temperature_filter_max [default: 50]
      • thermal_processing_pipeline [default: 1]
      • thermal_temperature_data_udp [default: true]
      • thermal_streaming_protocol [default: 0]
      • thermal_rtsp_pipeline [default: ]
      • allied_wide_black_level [default: 0]
      • allied_wide_exposure_time [default: 4992.4]
      • allied_wide_auto_exposure_time [default: false]
      • allied_wide_auto_exposure_time_range_min [default: 87.6]
      • allied_wide_auto_exposure_time_range_max [default: 8999990.0]
      • allied_wide_gain [default: 0]
      • allied_wide_auto_gain [default: false]
      • allied_wide_auto_gain_range_min [default: 0]
      • allied_wide_auto_gain_range_max [default: 48]
      • allied_wide_gamma [default: 1]
      • allied_wide_saturation [default: 1]
      • allied_wide_sharpness [default: 0]
      • allied_wide_hue [default: 0]
      • allied_wide_intensity_auto_precedence [default: 0]
      • allied_wide_auto_white_balance [default: false]
      • allied_wide_balance_ratio_selector [default: 0]
      • allied_wide_balance_ratio [default: 2.4]
      • allied_wide_balance_white_auto_rate [default: 100]
      • allied_wide_balance_white_auto_tolerance [default: 5]
      • allied_wide_auto_mode_region_height [default: 1028]
      • allied_wide_auto_mode_region_width [default: 1232]
      • allied_wide_intensity_controller_region [default: 0]
      • allied_wide_intensity_controller_target [default: 50]
      • allied_wide_max_driver_buffers_count [default: 64]
      • allied_wide_streaming_protocol [default: 0]
      • allied_wide_rtsp_pipeline [default: ]
      • allied_narrow_black_level [default: 0]
      • allied_narrow_exposure_time [default: 4992.4]
      • allied_narrow_auto_exposure_time [default: false]
      • allied_narrow_auto_exposure_time_range_min [default: 87.6]
      • allied_narrow_auto_exposure_time_range_max [default: 8999990.0]
      • allied_narrow_gain [default: 0]
      • allied_narrow_auto_gain [default: false]
      • allied_narrow_auto_gain_range_min [default: 0]
      • allied_narrow_auto_gain_range_max [default: 48]
      • allied_narrow_gamma [default: 1]
      • allied_narrow_saturation [default: 1]
      • allied_narrow_sharpness [default: 0]
      • allied_narrow_hue [default: 0]
      • allied_narrow_intensity_auto_precedence [default: 0]
      • allied_narrow_auto_white_balance [default: false]
      • allied_narrow_balance_ratio_selector [default: 0]
      • allied_narrow_balance_ratio [default: 2.4]
      • allied_narrow_balance_white_auto_rate [default: 100]
      • allied_narrow_balance_white_auto_tolerance [default: 5]
      • allied_narrow_auto_mode_region_height [default: 1544]
      • allied_narrow_auto_mode_region_width [default: 2064]
      • allied_narrow_intensity_controller_region [default: 0]
      • allied_narrow_intensity_controller_target [default: 50]
      • allied_narrow_max_driver_buffers_count [default: 64]
      • allied_narrow_streaming_protocol [default: 0]
      • allied_narrow_rtsp_pipeline [default: ]
  • launch/stream_l3cam.launch
      • timeout_secs [default: 60]
      • lidar_topic [default: /PC2_lidar]
      • polarimetric_topic [default: /img_polarimetric]
      • rgb_topic [default: /img_rgb]
      • thermal_topic [default: /img_thermal]
      • allied_wide_topic [default: /img_wide]
      • allied_narrow_topic [default: /img_narrow]
      • polarimetric_stream_processed_image [default: true]
      • polarimetric_process_type [default: 4]

Messages

Services

Plugins

No plugins found.

Recent questions tagged l3cam_ros at Robotics Stack Exchange