Package Summary

Tags No category tags.
Version 2.1.17
License Apache-2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/flir_camera_driver.git
VCS Type git
VCS Version humble-release
Last Updated 2024-05-18
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 driver for flir spinnaker sdk

Additional Links

No additional links.

Maintainers

  • Bernd Pfrommer

Authors

No additional authors.

Spinnaker ROS2 Camera Driver

::: {.toctree maxdepth="2"} :::

This package provides a ROS2 driver for Teledyne/FLIR cameras using the Spinnaker SDK. For hardware-synchronized cameras use the Spinnaker synchronized camera driver by following the link from the flir driver repository.

NOTE: This driver is not written or supported by FLIR.

Tested Configurations

Cameras

The following cameras have been successfully used with this driver:

  • Blackfly S (USB3, GigE)
  • Blackfly (GigE)
  • Grashopper (USB3)
  • Oryx (reported working)
  • Chameleon (USB3, tested on firmware v1.13.3.00)
  • FLIR AX5 (GigE)

Note: if you get other cameras to work, please report back, ideally submit a pull request with the camera config file you have created.

Platforms

  • ROS2 Galactic under Ubuntu 20.04 LTS (no longer actively tested)
  • ROS2 Humble/Iron/Rolling under Ubuntu 22.04 LTS
  • Spinnaker 3.1.0.79 (other versions may work as well but this is what the continuous integration builds are using)o

How to install

This driver can be used with or without installing the Spinnaker SDK, but installing the Spinnaker SDK is recommended because during its installation the USB kernel configuration is modified as needed and suitable access permissions are granted (udev rules). If you choose to not use the Spinnaker SDK, you must either run the linux setup script by running ros2 run spinnaker_camera_driver linux_setup_flir or perform the required setup steps manually, see Setting up Linux without Spinnaker SDK. Without these setup steps, the ROS driver will not detect the camera. So you must either install the Spinnaker SDK (which also gives you the useful spinview tool), or follow the manual setup steps mentioned earlier.

Installing from packages

For some architectures and ros distributions you can simply install an apt package:

sudo apt install ros-${ROS_DISTRO}-spinnaker-camera-driver

The package will bring its own set of Spinnaker SDK libraries, so you don't necessarily have to install the SDK, but it's recommended, see above.

Building from source

1) Install the FLIR spinnaker driver. If you skip this part, the driver will attempt to download the Spinnaker SDK automatically to obtain the header files and libraries. 2) Prepare the ROS2 driver build: Make sure you have your ROS2 environment sourced:

source /opt/ros/<my_ros_distro>/setup.bash

Create a workspace (~/ws), clone this repo:

mkdir -p ~/ws/src
cd ~/ws/src
git clone --branch humble-devel https://github.com/ros-drivers/flir_camera_driver
cd ..

To automatically install all packages that the flir_camera_driver packages depends upon, run this at the top of your workspace:

rosdep install --from-paths src --ignore-src

3) Build the driver and source the workspace:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
. install/setup.bash

How to use

Topics

Published:

  • ~/image_raw: the camera image (image_transport)
  • ~/image_raw/camera_info: camera calibration
  • ~/meta: meta data message containing e.g. exposure time.

Subscribed:

  • ~/control: (only when enable_external_control is set to True)

    : for external control exposure time and gain.

Parameters

The driver itself has no notion of the camera type (Blackfly, Grasshopper etc), nor does it explicitly support any features that the FLIR cameras have. Rather, all camera features (called Spinnaker Nodes) are mapped to ROS parameters via a yaml file that is specific to that camera type. On startup the driver reads this parameter definition file. In the config directory there are some parameter definition files for popular cameras (blackfly_s.yaml etc) that expose some of the more frequently used features like frame rate, gain, etc. You can add more features by providing your own parameter definition file, see How to develop your own camera configuration file. The ROS driver code is just a thin wrapper around the Spinnaker SDK, and should allow you to access all features available in FLIR's spinview program.

In addition to the parameters defined in the .yaml files, the driver has the following ROS parameters:

  • adjust_timestamp: see About time stamps below for more documentation. Default: false.
  • acquisition_timeout: timeout for expecting frames (in seconds). If no frame is received for this time, the driver restarts. Default is 3.
  • buffer_queue_size: max number of images to queue internally before shoving them into the ROS output queue. Decouples the Spinnaker SDK thread from the ROS publishing thread. Default: 4.
  • camerainfo_url: where to find the camera calibration yaml file.
  • compute_brightness: if true, compute image brightness and publish it in meta data message. This is required when running with the synchronized driver, but incurs extra CPU load. Default: false.
  • connect_while_subscribed: if true, connect to the SDK and pull data from the camera only while subscribers to image or meta topics are present. This feature reduces compute load and link utilization while no ROS subscribers are present, but adds latency on subscription: after a subscription the first image will be published up to 1s later than without this option.
  • dump_node_map: set this to true to get a dump of the node map. Default: false.
  • enable_external_control: set this to true to enable external exposure control. This feature is being deprecated, do not use. Default: false.
  • frame_id: the ROS frame id to put in the header of the published image messages.
  • image_queue_size: ROS output queue size (number of frames). Default: 4
  • parameter_file: location of the .yaml file defining the camera (blackfly_s.yaml etc)
  • serial_number: serial number of the camera. If you don't know it, put in anything you like and the driver will croak with an error message, telling you what cameras serial numbers are available

Example usage

The driver comes with an example launch file (driver_node.launch.py) that you can customize as needed.

# launch with --show-args to print out all available launch arguments
ros2 launch spinnaker_camera_driver driver_node.launch.py camera_type:=blackfly_s serial:="'20435008'"

About time stamps

By default the driver will set the ROS header time stamp to be the time when the image was delivered by the SDK. Such time stamps are not very precise and may lag depending on host CPU load. However the driver has a feature to use the much more accurate sensor-provided camera time stamps. These are then converted to ROS time stamps by estimating the offset between ROS and sensor time stamps via a simple moving average. For the adjustment to work the camera must be configured to send time stamps, and the adjust_timestamp flag must be set to true, and the relevant field in the "chunk" must be populated by the camera. For the Blackfly S the parameters look like this:

'adjust_timestamp': True,
'chunk_mode_active': True,
'chunk_selector_timestamp': 'Timestamp',
'chunk_enable_timestamp': True,

Network Configuration for GigE cameras =======================

The Spinnaker SDK abstracts away the transport layer so a GigE camera should work the same way as USB3: you point it to the serial number and you're set.

There are a few GigE-specific settings in the Transport Layer Control group that are important, in particular enabling jumbo frames from the camera per FLIR's recommendations. The following line in your camera-specific config file will create a ROS2 parameter gev_scps_packet_size:

gev_scps_packet_size int "TransportLayerControl/GigEVision/GevSCPSPacketSize"

that you can then set in your ROS2 launch file:

"gev_scps_packet_size": 9000

As far as setting up the camera's IP address: you can set up DHCP on your network or configure a static persistent IP using spinview in "Transport Layer Control">"GigE Vision". Check the box for "Current IP Configuration Persistent IP" first to enable it, then set your desired addresses under "Persistent IP Address", "Persistent Subnet Mask" and "Persistent Gateway". NOTE: these look like regular IPs, but to set them you have to enter the 32-bit integer representation of the IP address/mask. By hand/calculator: convert the IP octets from decimal to hex, then combine them and convert to a 32-bit integer, ex: 192.168.0.1 -> 0xC0A80001 -> 3232235521.

The "Transport Layer Control">"GigE Vision" section of spinview is also where you'll find that "SCPS Packet Size" setting, which you can change when not capturing frames, and verify it works in spinview and without needing to spin up a custom launch file to get started, though it helps, and you'll probably want one anyway to specify your camera's serial number.

If you do not set up DHCP or set a static IP, your camera will probably assign itself an IP address according to the Link-Local address scheme. The address will be 169.254.xxx.xxx, where the x\'s are randomly generated. In your computer\'s network settings, change the IPv4 Method for the port that connects to your camera to \"Link-Local Only.\" (You could also set the IPv4 Method to \"Manual\" with an address of 169.254.100.1 and a subnet mask of 255.255.0.0).

For more tips on GigE setup look at FLIR's support pages here and here.

How to develop your own camera configuration file

The camera configuration file defines the available ROS parameters, and how they relate to the corresponding Spinnaker nodes. The Spinnaker API follows the GenICam standard, where each property (e.g.

CHANGELOG

Changelog for package spinnaker_camera_driver

2.1.17 (2024-05-18)

  • fix broken composable node by installing in correct location
  • Add FLIR-AX5 Camera (#176)
  • Contributors: Bernd Pfrommer, anonymousarmadillo100

2.1.16 (2024-04-20)

  • add option to disable external control (default!)
  • updated docs for sync driver, switch to RST
  • widened the ExposureController interface
  • fix build errors on rolling/noble
  • added blacklevel and whitebalance support for blackfly
  • use proper name for camerainfo when using sync driver
  • Contributors: Bernd Pfrommer

2.1.15 (2024-03-28)

  • fixes to compile on focal/galactic
  • Oryx parameter file
  • support for command nodes
  • remove more spinnaker imports, make spinnaker private
  • added blackfly GigE configuration file
  • track incomplete frames
  • fixed licensing documentation
  • Contributors: Bernd Pfrommer, Sir-Photch

2.1.14 (2024-03-22)

  • make spinnaker dependency private for sync driver build
  • Contributors: Bernd Pfrommer

2.1.13 (2024-03-13)

  • added blackfly GigE configuration file
  • track incomplete frames
  • fixed licensing documentation
  • provision camera driver for exposure control
  • fixed bugs discovered when running on GigE cams
  • avoid searching ROS path for library
  • Contributors: Bernd Pfrommer

2.1.11 (2024-02-23)

  • Added connect_while_subscribed feature
  • Added binning parameter
  • Export library and refactor for synchronized driver support
  • fixed stereo launch file serial number bug
  • Contributors: Bernd Pfrommer, Luis Camero, buckleytoby

2.0.8 (2023-11-14)

  • Added linux_setup_flir script instructions to Readme
  • Add newline echo before Done
  • Rename script to remove extension
  • Ask permission for usb change and don\'t limit detection to 1000
  • Ask about usergroup and give feedback
  • Added linux pc setup script
  • fix python formatting to satisfy linter
  • fix formatting of BSD license to satisfy linter
  • Contributors: Bernd Pfrommer, Hilary Luo

2.0.7 (2023-10-03)

  • Restricted the device permissions
  • Added Teledyne to udev as requested
  • Added udev rule
  • Contributors: Hilary Luo

2.0.6 (2023-08-12)

  • fix arm64 build: use correct file name when downloading spinnaker from clearpath
  • fix broken build when the Spinnaker SDK is present
  • allow building with older version (0.6) of yaml library
  • Contributors: Bernd Pfrommer

2.0.5 (2023-08-11)

  • add ffmpeg dependency to fix build failures on ROS farm
  • switch from custom config files to standard yaml format
  • Contributors: Bernd Pfrommer

2.0.4 (2023-08-10)

  • install spinnaker libraries in spinnaker_camera_driver dir
  • Contributors: Bernd Pfrommer

2.0.3 (2023-08-01)

  • Hardcoding OS to jammy since it is the only one currently supported.
  • Contributors: Tony Baltovski

2.0.2 (2023-07-28)

  • replace lsb-release with python3-distro
  • add dependencies for spinnaker download
  • Contributors: Bernd Pfrommer

2.0.1 (2023-07-24)

  • use cmake find_program to detect lsb_release
  • Contributors: Bernd Pfrommer

2.0.0 (2023-07-20)

  • Merge pull request #113 from berndpfrommer/humble-devel-new new driver for ROS2
  • added spinnaker_camera_driver package
  • deleted spinnaker ros2 driver, to be replaced by new version
  • Contributors: Bernd Pfrommer, Tony Baltovski

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged spinnaker_camera_driver at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.2.17
License Apache-2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/flir_camera_driver.git
VCS Type git
VCS Version iron-release
Last Updated 2024-05-18
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 driver for flir spinnaker sdk

Additional Links

No additional links.

Maintainers

  • Bernd Pfrommer

Authors

No additional authors.

Spinnaker ROS2 Camera Driver

::: {.toctree maxdepth="2"} :::

This package provides a ROS2 driver for Teledyne/FLIR cameras using the Spinnaker SDK. For hardware-synchronized cameras use the Spinnaker synchronized camera driver by following the link from the flir driver repository.

NOTE: This driver is not written or supported by FLIR.

Tested Configurations

Cameras

The following cameras have been successfully used with this driver:

  • Blackfly S (USB3, GigE)
  • Blackfly (GigE)
  • Grashopper (USB3)
  • Oryx (reported working)
  • Chameleon (USB3, tested on firmware v1.13.3.00)
  • FLIR AX5 (GigE)

Note: if you get other cameras to work, please report back, ideally submit a pull request with the camera config file you have created.

Platforms

  • ROS2 Galactic under Ubuntu 20.04 LTS (no longer actively tested)
  • ROS2 Humble/Iron/Rolling under Ubuntu 22.04 LTS
  • Spinnaker 3.1.0.79 (other versions may work as well but this is what the continuous integration builds are using)o

How to install

This driver can be used with or without installing the Spinnaker SDK, but installing the Spinnaker SDK is recommended because during its installation the USB kernel configuration is modified as needed and suitable access permissions are granted (udev rules). If you choose to not use the Spinnaker SDK, you must either run the linux setup script by running ros2 run spinnaker_camera_driver linux_setup_flir or perform the required setup steps manually, see Setting up Linux without Spinnaker SDK. Without these setup steps, the ROS driver will not detect the camera. So you must either install the Spinnaker SDK (which also gives you the useful spinview tool), or follow the manual setup steps mentioned earlier.

Installing from packages

For some architectures and ros distributions you can simply install an apt package:

sudo apt install ros-${ROS_DISTRO}-spinnaker-camera-driver

The package will bring its own set of Spinnaker SDK libraries, so you don't necessarily have to install the SDK, but it's recommended, see above.

Building from source

1) Install the FLIR spinnaker driver. If you skip this part, the driver will attempt to download the Spinnaker SDK automatically to obtain the header files and libraries. 2) Prepare the ROS2 driver build: Make sure you have your ROS2 environment sourced:

source /opt/ros/<my_ros_distro>/setup.bash

Create a workspace (~/ws), clone this repo:

mkdir -p ~/ws/src
cd ~/ws/src
git clone --branch humble-devel https://github.com/ros-drivers/flir_camera_driver
cd ..

To automatically install all packages that the flir_camera_driver packages depends upon, run this at the top of your workspace:

rosdep install --from-paths src --ignore-src

3) Build the driver and source the workspace:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
. install/setup.bash

How to use

Topics

Published:

  • ~/image_raw: the camera image (image_transport)
  • ~/image_raw/camera_info: camera calibration
  • ~/meta: meta data message containing e.g. exposure time.

Subscribed:

  • ~/control: (only when enable_external_control is set to True)

    : for external control exposure time and gain.

Parameters

The driver itself has no notion of the camera type (Blackfly, Grasshopper etc), nor does it explicitly support any features that the FLIR cameras have. Rather, all camera features (called Spinnaker Nodes) are mapped to ROS parameters via a yaml file that is specific to that camera type. On startup the driver reads this parameter definition file. In the config directory there are some parameter definition files for popular cameras (blackfly_s.yaml etc) that expose some of the more frequently used features like frame rate, gain, etc. You can add more features by providing your own parameter definition file, see How to develop your own camera configuration file. The ROS driver code is just a thin wrapper around the Spinnaker SDK, and should allow you to access all features available in FLIR's spinview program.

In addition to the parameters defined in the .yaml files, the driver has the following ROS parameters:

  • adjust_timestamp: see About time stamps below for more documentation. Default: false.
  • acquisition_timeout: timeout for expecting frames (in seconds). If no frame is received for this time, the driver restarts. Default is 3.
  • buffer_queue_size: max number of images to queue internally before shoving them into the ROS output queue. Decouples the Spinnaker SDK thread from the ROS publishing thread. Default: 4.
  • camerainfo_url: where to find the camera calibration yaml file.
  • compute_brightness: if true, compute image brightness and publish it in meta data message. This is required when running with the synchronized driver, but incurs extra CPU load. Default: false.
  • connect_while_subscribed: if true, connect to the SDK and pull data from the camera only while subscribers to image or meta topics are present. This feature reduces compute load and link utilization while no ROS subscribers are present, but adds latency on subscription: after a subscription the first image will be published up to 1s later than without this option.
  • dump_node_map: set this to true to get a dump of the node map. Default: false.
  • enable_external_control: set this to true to enable external exposure control. This feature is being deprecated, do not use. Default: false.
  • frame_id: the ROS frame id to put in the header of the published image messages.
  • image_queue_size: ROS output queue size (number of frames). Default: 4
  • parameter_file: location of the .yaml file defining the camera (blackfly_s.yaml etc)
  • serial_number: serial number of the camera. If you don't know it, put in anything you like and the driver will croak with an error message, telling you what cameras serial numbers are available

Example usage

The driver comes with an example launch file (driver_node.launch.py) that you can customize as needed.

# launch with --show-args to print out all available launch arguments
ros2 launch spinnaker_camera_driver driver_node.launch.py camera_type:=blackfly_s serial:="'20435008'"

About time stamps

By default the driver will set the ROS header time stamp to be the time when the image was delivered by the SDK. Such time stamps are not very precise and may lag depending on host CPU load. However the driver has a feature to use the much more accurate sensor-provided camera time stamps. These are then converted to ROS time stamps by estimating the offset between ROS and sensor time stamps via a simple moving average. For the adjustment to work the camera must be configured to send time stamps, and the adjust_timestamp flag must be set to true, and the relevant field in the "chunk" must be populated by the camera. For the Blackfly S the parameters look like this:

'adjust_timestamp': True,
'chunk_mode_active': True,
'chunk_selector_timestamp': 'Timestamp',
'chunk_enable_timestamp': True,

Network Configuration for GigE cameras =======================

The Spinnaker SDK abstracts away the transport layer so a GigE camera should work the same way as USB3: you point it to the serial number and you're set.

There are a few GigE-specific settings in the Transport Layer Control group that are important, in particular enabling jumbo frames from the camera per FLIR's recommendations. The following line in your camera-specific config file will create a ROS2 parameter gev_scps_packet_size:

gev_scps_packet_size int "TransportLayerControl/GigEVision/GevSCPSPacketSize"

that you can then set in your ROS2 launch file:

"gev_scps_packet_size": 9000

As far as setting up the camera's IP address: you can set up DHCP on your network or configure a static persistent IP using spinview in "Transport Layer Control">"GigE Vision". Check the box for "Current IP Configuration Persistent IP" first to enable it, then set your desired addresses under "Persistent IP Address", "Persistent Subnet Mask" and "Persistent Gateway". NOTE: these look like regular IPs, but to set them you have to enter the 32-bit integer representation of the IP address/mask. By hand/calculator: convert the IP octets from decimal to hex, then combine them and convert to a 32-bit integer, ex: 192.168.0.1 -> 0xC0A80001 -> 3232235521.

The "Transport Layer Control">"GigE Vision" section of spinview is also where you'll find that "SCPS Packet Size" setting, which you can change when not capturing frames, and verify it works in spinview and without needing to spin up a custom launch file to get started, though it helps, and you'll probably want one anyway to specify your camera's serial number.

If you do not set up DHCP or set a static IP, your camera will probably assign itself an IP address according to the Link-Local address scheme. The address will be 169.254.xxx.xxx, where the x\'s are randomly generated. In your computer\'s network settings, change the IPv4 Method for the port that connects to your camera to \"Link-Local Only.\" (You could also set the IPv4 Method to \"Manual\" with an address of 169.254.100.1 and a subnet mask of 255.255.0.0).

For more tips on GigE setup look at FLIR's support pages here and here.

How to develop your own camera configuration file

The camera configuration file defines the available ROS parameters, and how they relate to the corresponding Spinnaker nodes. The Spinnaker API follows the GenICam standard, where each property (e.g.

CHANGELOG

Changelog for package spinnaker_camera_driver

2.2.17 (2024-05-18)

  • fix broken composable node by installing in correct location
  • Add FLIR-AX5 Camera
  • Contributors: Bernd Pfrommer, anonymousarmadillo100

2.2.16 (2024-04-20)

  • add option to disable external control (default!)
  • updated docs for sync driver, switch to RST
  • widened the ExposureController interface
  • fix build errors on rolling/noble
  • added blacklevel and whitebalance support for blackfly
  • use proper name for camerainfo when using sync driver
  • Contributors: Bernd Pfrommer

2.2.15 (2024-03-28)

  • Oryx parameter file
  • support for command nodes
  • updated docs
  • Contributors: Bernd Pfrommer, Sir-Photch

2.2.14 (2024-03-17)

  • make Spinnaker lib private to fix sync build problems
  • Contributors: Bernd Pfrommer

2.2.13 (2024-03-13)

  • added blackfly GigE configuration file
  • Contributors: Bernd Pfrommer

2.2.12 (2024-03-07)

  • track incomplete frames
  • fixed licensing documentation
  • provision camera driver for exposure control
  • fixed bugs discovered when running on GigE cams
  • avoid searching ROS path for library
  • Contributors: Bernd Pfrommer

2.2.11 (2024-02-23)

  • added connect_while_subscribed feature
  • Added binning parameter
  • install spinnaker library in same place as driver library
  • remove junk directories from search path
  • prepare single-camera driver for use with sync\'ed driver
  • fixed stereo launch file serial nb bug
  • Contributors: Bernd Pfrommer, Luis Camero, buckleytoby

2.2.10 (2023-12-02)

2.0.8 (2023-11-14)

  • Added linux_setup_flir script instructions to Readme
  • Add newline echo before Done
  • Rename script to remove extension
  • Ask permission for usb change and don\'t limit detection to 1000
  • Ask about usergroup and give feedback
  • Added linux pc setup script
  • fix python formatting to satisfy linter
  • fix formatting of BSD license to satisfy linter
  • Contributors: Bernd Pfrommer, Hilary Luo

2.0.7 (2023-10-03)

  • Restricted the device permissions
  • Added Teledyne to udev as requested
  • Added udev rule
  • Contributors: Hilary Luo

2.0.6 (2023-08-12)

  • fix arm64 build: use correct file name when downloading spinnaker from clearpath
  • fix broken build when the Spinnaker SDK is present
  • allow building with older version (0.6) of yaml library
  • Contributors: Bernd Pfrommer

2.0.5 (2023-08-11)

  • add ffmpeg dependency to fix build failures on ROS farm
  • switch from custom config files to standard yaml format
  • Contributors: Bernd Pfrommer

2.0.4 (2023-08-10)

  • install spinnaker libraries in spinnaker_camera_driver dir
  • Contributors: Bernd Pfrommer

2.0.3 (2023-08-01)

  • Hardcoding OS to jammy since it is the only one currently supported.
  • Contributors: Tony Baltovski

2.0.2 (2023-07-28)

  • replace lsb-release with python3-distro
  • add dependencies for spinnaker download
  • Contributors: Bernd Pfrommer

2.0.1 (2023-07-24)

  • use cmake find_program to detect lsb_release
  • Contributors: Bernd Pfrommer

2.0.0 (2023-07-20)

  • Merge pull request #113 from berndpfrommer/humble-devel-new new driver for ROS2
  • added spinnaker_camera_driver package
  • deleted spinnaker ros2 driver, to be replaced by new version
  • Contributors: Bernd Pfrommer, Tony Baltovski

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged spinnaker_camera_driver at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.0.20
License Apache-2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/flir_camera_driver.git
VCS Type git
VCS Version rolling-release
Last Updated 2024-06-20
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 driver for flir spinnaker sdk

Additional Links

No additional links.

Maintainers

  • Bernd Pfrommer

Authors

No additional authors.

Spinnaker ROS2 Camera Driver

::: {.toctree maxdepth="2"} :::

This package provides a ROS2 driver for Teledyne/FLIR cameras using the Spinnaker SDK. For hardware-synchronized cameras use the Spinnaker synchronized camera driver by following the link from the flir driver repository.

NOTE: This driver is not written or supported by FLIR.

Tested Configurations

Cameras

The following cameras have been successfully used with this driver:

  • Blackfly S (USB3, GigE)
  • Blackfly (GigE)
  • Grashopper (USB3)
  • Oryx (reported working)
  • Chameleon (USB3, tested on firmware v1.13.3.00)
  • FLIR AX5 (GigE)

Note: if you get other cameras to work, please report back, ideally submit a pull request with the camera config file you have created.

Platforms

  • ROS2 Galactic under Ubuntu 20.04 LTS (no longer actively tested)
  • ROS2 Humble/Iron/Rolling under Ubuntu 22.04 LTS
  • Spinnaker 3.1.0.79 (other versions may work as well but this is what the continuous integration builds are using)o

How to install

This driver can be used with or without installing the Spinnaker SDK, but installing the Spinnaker SDK is recommended because during its installation the USB kernel configuration is modified as needed and suitable access permissions are granted (udev rules). If you choose to not use the Spinnaker SDK, you must either run the linux setup script by running ros2 run spinnaker_camera_driver linux_setup_flir or perform the required setup steps manually, see Setting up Linux without Spinnaker SDK. Without these setup steps, the ROS driver will not detect the camera. So you must either install the Spinnaker SDK (which also gives you the useful spinview tool), or follow the manual setup steps mentioned earlier.

Installing from packages

For some architectures and ros distributions you can simply install an apt package:

sudo apt install ros-${ROS_DISTRO}-spinnaker-camera-driver

The package will bring its own set of Spinnaker SDK libraries, so you don't necessarily have to install the SDK, but it's recommended, see above.

Building from source

1) Install the FLIR spinnaker driver. If you skip this part, the driver will attempt to download the Spinnaker SDK automatically to obtain the header files and libraries. 2) Prepare the ROS2 driver build: Make sure you have your ROS2 environment sourced:

source /opt/ros/<my_ros_distro>/setup.bash

Create a workspace (~/ws), clone this repo:

mkdir -p ~/ws/src
cd ~/ws/src
git clone --branch humble-devel https://github.com/ros-drivers/flir_camera_driver
cd ..

To automatically install all packages that the flir_camera_driver packages depends upon, run this at the top of your workspace:

rosdep install --from-paths src --ignore-src

3) Build the driver and source the workspace:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
. install/setup.bash

How to use

Topics

Published:

  • ~/image_raw: the camera image (image_transport)
  • ~/image_raw/camera_info: camera calibration
  • ~/meta: meta data message containing e.g. exposure time.

Subscribed:

  • ~/control: (only when enable_external_control is set to True)

    : for external control exposure time and gain.

Parameters

The driver itself has no notion of the camera type (Blackfly, Grasshopper etc), nor does it explicitly support any features that the FLIR cameras have. Rather, all camera features (called Spinnaker Nodes) are mapped to ROS parameters via a yaml file that is specific to that camera type. On startup the driver reads this parameter definition file. In the config directory there are some parameter definition files for popular cameras (blackfly_s.yaml etc) that expose some of the more frequently used features like frame rate, gain, etc. You can add more features by providing your own parameter definition file, see How to develop your own camera configuration file. The ROS driver code is just a thin wrapper around the Spinnaker SDK, and should allow you to access all features available in FLIR's spinview program.

In addition to the parameters defined in the .yaml files, the driver has the following ROS parameters:

  • adjust_timestamp: see About time stamps below for more documentation. Default: false.
  • acquisition_timeout: timeout for expecting frames (in seconds). If no frame is received for this time, the driver restarts. Default is 3.
  • buffer_queue_size: max number of images to queue internally before shoving them into the ROS output queue. Decouples the Spinnaker SDK thread from the ROS publishing thread. Default: 4.
  • camerainfo_url: where to find the camera calibration yaml file.
  • compute_brightness: if true, compute image brightness and publish it in meta data message. This is required when running with the synchronized driver, but incurs extra CPU load. Default: false.
  • connect_while_subscribed: if true, connect to the SDK and pull data from the camera only while subscribers to image or meta topics are present. This feature reduces compute load and link utilization while no ROS subscribers are present, but adds latency on subscription: after a subscription the first image will be published up to 1s later than without this option.
  • dump_node_map: set this to true to get a dump of the node map. Default: false.
  • enable_external_control: set this to true to enable external exposure control. This feature is being deprecated, do not use. Default: false.
  • frame_id: the ROS frame id to put in the header of the published image messages.
  • image_queue_size: ROS output queue size (number of frames). Default: 4
  • parameter_file: location of the .yaml file defining the camera (blackfly_s.yaml etc)
  • serial_number: serial number of the camera. If you don't know it, put in anything you like and the driver will croak with an error message, telling you what cameras serial numbers are available

Example usage

The driver comes with an example launch file (driver_node.launch.py) that you can customize as needed.

# launch with --show-args to print out all available launch arguments
ros2 launch spinnaker_camera_driver driver_node.launch.py camera_type:=blackfly_s serial:="'20435008'"

Using multiple cameras at the same time

The FLIR Spinnaker does not support two programs accessing the Spinnaker SDK at the same time, even if two different cameras are accessed. Strange things happen, in particular with USB3 cameras. You can however run multiple cameras in the same address space using ROS2\'s Composable Node concept, see the example launch file multiple_cameras.launch.py.

If you are using hardware synchronized cameras please use the spinnaker_synchronized_camera_driver, which will associate the images triggered by the same sync pulse with each other and give them identical time stamps.

About time stamps

By default the driver will set the ROS header time stamp to be the time when the image was delivered by the SDK. Such time stamps are not very precise and may lag depending on host CPU load. However the driver has a feature to use the much more accurate sensor-provided camera time stamps. These are then converted to ROS time stamps by estimating the offset between ROS and sensor time stamps via a simple moving average. For the adjustment to work the camera must be configured to send time stamps, and the adjust_timestamp flag must be set to true, and the relevant field in the "chunk" must be populated by the camera. For the Blackfly S the parameters look like this:

'adjust_timestamp': True,
'chunk_mode_active': True,
'chunk_selector_timestamp': 'Timestamp',
'chunk_enable_timestamp': True,

Network Configuration for GigE cameras =======================

The Spinnaker SDK abstracts away the transport layer so a GigE camera should work the same way as USB3: you point it to the serial number and you're set.

There are a few GigE-specific settings in the Transport Layer Control group that are important, in particular enabling jumbo frames from the camera per FLIR's recommendations. The following line in your camera-specific config file will create a ROS2 parameter gev_scps_packet_size:

gev_scps_packet_size int "TransportLayerControl/GigEVision/GevSCPSPacketSize"

that you can then set in your ROS2 launch file:

"gev_scps_packet_size": 9000

As far as setting up the camera's IP address: you can set up DHCP on your network or configure a static persistent IP using spinview in "Transport Layer Control">"GigE Vision". Check the box for "Current IP Configuration Persistent IP" first to enable it, then set your desired addresses under "Persistent IP Address", "Persistent Subnet Mask" and "Persistent Gateway". NOTE: these look like regular IPs, but to set them you have to enter the 32-bit integer representation of the IP address/mask. By hand/calculator: convert the IP octets from decimal to hex, then combine them and convert to a 32-bit integer, ex: 192.168.0.1 -> 0xC0A80001 -> 3232235521.

The "Transport Layer Control">"GigE Vision" section of spinview is also where you'll find that "SCPS Packet Size" setting, which you can change when not capturing frames, and verify it works in spinview and without needing to spin up a custom launch file to get started, though it helps, and you'll probably want one anyway to specify your camera's serial number.

If you do not set up DHCP or set a static IP, your camera will probably assign itself an IP address according to the Link-Local address scheme. The address will be 169.254.xxx.xxx, where the x\'s are randomly generated. In your computer\'s network settings, change the IPv4 Method for the port that connects to your camera to \"Link-Local Only.\" (You could also set the IPv4 Method to \"Manual\" with an address of 169.254.100.1 and a subnet mask of 255.255.0.0).

For more tips on GigE setup look at FLIR's support pages here and here.

How to develop your own camera configuration file

The camera configuration file defines the available ROS parameters, and how they relate to the corresponding Spinnaker nodes. The Spinnaker API follows the GenICam standard, where each property (e.g.

CHANGELOG

Changelog for package spinnaker_camera_driver

2.0.20 (2024-06-20)

  • updated docs for jazzy, adjust download script
  • Contributors: Bernd Pfrommer

2.0.19 (2024-06-18)

  • remove unnecessary debs from package
  • Contributors: Bernd Pfrommer

2.0.18 (2024-06-18)

  • point to new spinnaker sdk for noble
  • renamed stereo_synced file and added doc
  • added user set control examples for blackfly/blackfly_s
  • Contributors: Bernd Pfrommer

2.0.17 (2024-05-18)

  • fix broken composable node by installing in correct location
  • Add FLIR-AX5 Camera
  • Contributors: Bernd Pfrommer, anonymousarmadillo100

2.0.16 (2024-04-20)

  • add option to disable external control (default!)
  • updated docs for sync driver, switch to RST
  • widened the ExposureController interface
  • fix build errors on rolling/noble
  • added blacklevel and whitebalance support for blackfly
  • use proper name for camerainfo when using sync driver
  • Contributors: Bernd Pfrommer

2.0.15 (2024-03-28)

  • fixes to compile on focal/galactic
  • Oryx parameter file
  • support for command nodes
  • remove more spinnaker imports, make spinnaker private
  • added blackfly GigE configuration file
  • track incomplete frames
  • fixed licensing documentation
  • Contributors: Bernd Pfrommer, Sir-Photch

2.0.11 (2024-02-29)

  • provision camera driver for exposure control
  • fixed bugs discovered when running on GigE cams
  • avoid searching ROS path for library
  • added connect_while_subscribed feature
  • Added binning parameter
  • install spinnaker library in same place as driver library
  • remove junk directories from search path
  • added first implementation of synchronized driver
  • prepare single-camera driver for use with sync\'ed driver
  • fixed stereo launch file serial nb bug
  • removed changelogs
  • Contributors: Bernd Pfrommer, Luis Camero, buckleytoby

2.0.8 (2023-11-14)

  • Changes.
  • Added linux_setup_flir script instructions to Readme
  • Add newline echo before Done
  • Rename script to remove extension
  • Ask permission for usb change and don\'t limit detection to 1000
  • Ask about usergroup and give feedback
  • Added linux pc setup script
  • fix python formatting to satisfy linter
  • fix formatting of BSD license to satisfy linter
  • Contributors: Bernd Pfrommer, Hilary Luo, Tony Baltovski

2.0.7 (2023-10-03)

  • Changes.
  • Merge pull request #132 from hilary-luo/humble-devel Added udev rule
  • Restricted the device permissions
  • Added Teledyne to udev as requested
  • Added udev rule
  • Contributors: Hilary Luo, Tony Baltovski

2.0.6 (2023-08-12)

  • updated changelog
  • use correct file name when downloading spinnaker from clearpath web site
  • resurrect building when the Spinnaker SDK is present
  • also compile with older version (0.6) of yaml library
  • git clone needs --branch humble-devel
  • Contributors: Bernd Pfrommer

2.0.5 (2023-08-11)

  • updated changelog
  • add ffmpeg depency to fix build failures on ROS farm
  • reference correct yaml dependency in rosdep
  • switch from config files to standard yaml format
  • Contributors: Bernd Pfrommer

2.0.4 (2023-08-10)

  • updated changelogs
  • install spinnaker libraries in spinnaker_camera_driver dir
  • Contributors: Bernd Pfrommer

2.0.3 (2023-08-01)

  • Changes.
  • Merge pull request #119 from ros-drivers/fix/tmp-hardcode-os Hardcoding OS to jammy since it is the only one currently supported.
  • Hardcoding OS to jammy since it is the only one currently supported.
  • Contributors: Tony Baltovski

2.0.2 (2023-07-28)

  • Changes.
  • Merge pull request #117 from ros-drivers/humble-devel-fix-lsb-release add dependencies for spinnaker download. \@tonybaltovski can you release this fix? I\'d like to see if it works. Thanks!
  • replace lsb-release with python3-distro
  • add dependencies for spinnaker download
  • Contributors: Bernd Pfrommer, Tony Baltovski

2.0.1 (2023-07-24)

  • Changes.
  • Merge pull request #116 from ros-drivers/humble-devel-fix-lsb-release use cmake find_program to detect lsb_release
  • use cmake find_program to detect lsb_release
  • Contributors: Bernd Pfrommer, Tony Baltovski

2.0.0 (2023-07-20)

  • Changes.
  • Merge pull request #113 from berndpfrommer/humble-devel-new new driver for ROS2
  • added spinnaker_camera_driver package
  • deleted spinnaker ros2 driver, to be replaced by new version
  • Contributors: Bernd Pfrommer, Tony Baltovski

0.2.5 (2023-01-06 20:18)

  • Changes.
  • Fixed arm64 folder name.
  • Contributors: Tony Baltovski

0.2.4 (2023-01-06 11:43)

  • Changes.
  • Fixed typo in arm64 arch.
  • Contributors: Tony Baltovski

0.2.3 (2022-04-19)

  • Changes.
  • Merge pull request #96 from luis-camero/noetic-devel Only copy necessary libraries
  • Merge branch \'ros-drivers:noetic-devel\' into noetic-devel
  • Only install necessary libraries
  • Contributors: Luis Camero, Tony Baltovski, luis-camero

0.2.2 (2022-03-28)

  • Changes.
  • Merge pull request #94 from luis-camero/noetic-devel Copy Spinnaker Libraries to build/usr/lib
  • Added new-line at EOF
  • Spinnaker libraries are now all copied to usr/lib
  • Reordered definitions to prevent compiler warnings
  • Contributors: Luis Camero, Tony Baltovski

0.2.1 (2022-03-21)

  • Changes.
  • Merge pull request #93 from luis-camero/noetic-devel Removed check for build/usr/lib
  • Removed check for build/usr/lib which would cause build to skip Spinnaker SDK install
  • Contributors: Luis Camero, Tony Baltovski

0.2.0 (2022-03-11)

  • Changes.
  • Changes.
  • Merge pull request #91 from luis-camero/noetic-devel ROS Industrial CI
  • Fixed all issues reported by roslint
  • Updated file paths to /opt/spinnaker instead of /usr/spinnaker
  • Updated download_spinnaker look-up table
  • Merge pull request #88 from luis-camero/noetic-devel Add readable check to SDK parameters
  • Add readable check to SDK parameters
  • URDF Description, Diagnostics, ISP Enable, and Launch Files (#81)
    • Changes required to use GigE Blackfly S version
    • Added blackfly mesh
    • Added URDF of blackflys and CHANGELOG
    • Added new_line at end of flir_blackflys.urdf.xacro
    • Added DiagnosticAnalyzers and more detailed diagnostic messages
    • Added ISP enable and disable config and updated camera launch file to be more descriptive
    • Switched order of configuration to put ISP enable next to color encoding
    • Updated config to include enumeration for Off, Once, Continuous parameters, and udpated diagnostics.launch
    • Handled issue where no namespace prevents diagnostics_agg from loading from analyzer paramaters
  • Branch to Support GigE Cameras (#79)
    • Changes required to use GigE Blackfly S version
    • Update SpinnakerCamera.cpp
  • Add new parameter to apply an offset to image time stamps (#56)
  • Fixes SpinnakerCamera teardown (#16)
    • fixes error on destroying SpinnakerCamera with multiple cameras
    • adds clarifying comment
  • Add /opt/spinnaker to spinnaker discovery options (#63)
  • increase maximum value of exposure_time/auto_exposure_time_upper_limit (#55)
  • add option to set queue_size for ros publisher (#54)
  • Added support for Grasshopper3. Identical to Chameleon3, split into separate files for clarity. (#26)
  • Feature: horizontal and vertical image reverse (#41)

    • Add horizontal/vertical inverse to reconfigure cfg

    * Add ReverseX/ReverseY with setProperty Co-authored-by: Fabian Schilling <fabian.schilling@me.com>

  • Update Spinnaker.cfg (#50) Fix for correct spelling with capital letter for bool type

  • Add auto exposure ROI parameters (#52) * spinnaker_camera_driver: setProperty: report available enum values Only done on failure. This helps to figure out which enum values are available on a particular camera model. * spinnaker_camera_driver: expose AE ROI parameters This is highly useful when using fisheye lenses, which illuminate only a circle in the center of the image. The AE gets confused by the black regions around it and overexposes the image. This also exposes the \"AutoExposureLightingMode\" parameter, which allows the user to choose a lighting preset (front/back/normal).

  • Fix/frame rate params (#20)

    • [spinnaker_camera_driver] Fixed naming of frame rate control params
    • [spinnaker_camera_driver] Format of mono and stereo launchfiles
    • [spinnaker_camera_driver] Updated diagnostics launchfile
  • Removed opencv as depend. (#46)

  • Changed the download script to check for destination folder and moved unpack directory. (#44)

  • Merge pull request #42 from civerachb-cpr/rpsw-185 Fix Flycap & Spinnaker endpoints

  • Create the directory if it doesn\'t exist

  • Remove an unnecessary deb

  • Spinnaker driver now successfully downloads & builds

  • Start overhauling the spinnaker download script so it works with the correct endpoint & matches the general structure of the pointgrey_camera_driver

  • Contributors: Adam Romlein, Chris I-B, Evan Bretl, Fabian Schilling, Ferdinand, Joseph Curtis, Luis Camero, Max Schwarz, Stephan, Tony Baltovski, Yoshua Nava, Yuki Furuta, luis-camero

0.1.3 (2018-09-25)

  • Update Changelog.
  • Fix install targets when Spinnaker is installed locally. Tabs in FindSpinnaker.
  • Add missing target (Cm3) and switch to find_package script. (#11)
    • Add missing target (Cm3) and switch to find_package script.
    • Clean up message.
  • Adding support of feeding some camera diagnostics to the diagnostic a... (#4)
    • Adding support of feeding some camera diagnostics to the diagnostic aggregator
    • Creating a seperate diagnostics launch example
  • Fix null conversion and unsigned comparison Warnings.
  • Contributors: Helen Oleynikova, Michael Hosmar, mlowe-ascent

0.1.2 (2018-07-27)

  • Update Changelog.
  • Add ARM Build Support (#3)
    • Added ARM Build Support.
  • Contributors: Michael Hosmar

0.1.1 (2018-07-25)

  • Update Changelog.
  • Add opencv3 as build dependency.
  • Contributors: Michael Hosmar

0.1.0 (2018-07-24)

  • Add Changelog
  • Change TODO\'s to me.
  • Flir = Spinnaker
  • Add timeout and fix reconnection. Replace Pointgrey references from e4b1493. Changed some prints away from \"Once\".
  • Move to std::shared_ptr and removed unnecessary install directive.
  • Remove old changelog.
  • Remove unnecessary config files.
  • line length.
  • flir_camera_driver = spinnaker_camera_driver
  • Contributors: Michael Hosmar

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged spinnaker_camera_driver at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.0.20
License Apache-2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/flir_camera_driver.git
VCS Type git
VCS Version rolling-release
Last Updated 2024-06-20
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 driver for flir spinnaker sdk

Additional Links

No additional links.

Maintainers

  • Bernd Pfrommer

Authors

No additional authors.

Spinnaker ROS2 Camera Driver

::: {.toctree maxdepth="2"} :::

This package provides a ROS2 driver for Teledyne/FLIR cameras using the Spinnaker SDK. For hardware-synchronized cameras use the Spinnaker synchronized camera driver by following the link from the flir driver repository.

NOTE: This driver is not written or supported by FLIR.

Tested Configurations

Cameras

The following cameras have been successfully used with this driver:

  • Blackfly S (USB3, GigE)
  • Blackfly (GigE)
  • Grashopper (USB3)
  • Oryx (reported working)
  • Chameleon (USB3, tested on firmware v1.13.3.00)
  • FLIR AX5 (GigE)

Note: if you get other cameras to work, please report back, ideally submit a pull request with the camera config file you have created.

Platforms

  • ROS2 Galactic under Ubuntu 20.04 LTS (no longer actively tested)
  • ROS2 Humble/Iron/Rolling under Ubuntu 22.04 LTS
  • Spinnaker 3.1.0.79 (other versions may work as well but this is what the continuous integration builds are using)o

How to install

This driver can be used with or without installing the Spinnaker SDK, but installing the Spinnaker SDK is recommended because during its installation the USB kernel configuration is modified as needed and suitable access permissions are granted (udev rules). If you choose to not use the Spinnaker SDK, you must either run the linux setup script by running ros2 run spinnaker_camera_driver linux_setup_flir or perform the required setup steps manually, see Setting up Linux without Spinnaker SDK. Without these setup steps, the ROS driver will not detect the camera. So you must either install the Spinnaker SDK (which also gives you the useful spinview tool), or follow the manual setup steps mentioned earlier.

Installing from packages

For some architectures and ros distributions you can simply install an apt package:

sudo apt install ros-${ROS_DISTRO}-spinnaker-camera-driver

The package will bring its own set of Spinnaker SDK libraries, so you don't necessarily have to install the SDK, but it's recommended, see above.

Building from source

1) Install the FLIR spinnaker driver. If you skip this part, the driver will attempt to download the Spinnaker SDK automatically to obtain the header files and libraries. 2) Prepare the ROS2 driver build: Make sure you have your ROS2 environment sourced:

source /opt/ros/<my_ros_distro>/setup.bash

Create a workspace (~/ws), clone this repo:

mkdir -p ~/ws/src
cd ~/ws/src
git clone --branch humble-devel https://github.com/ros-drivers/flir_camera_driver
cd ..

To automatically install all packages that the flir_camera_driver packages depends upon, run this at the top of your workspace:

rosdep install --from-paths src --ignore-src

3) Build the driver and source the workspace:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
. install/setup.bash

How to use

Topics

Published:

  • ~/image_raw: the camera image (image_transport)
  • ~/image_raw/camera_info: camera calibration
  • ~/meta: meta data message containing e.g. exposure time.

Subscribed:

  • ~/control: (only when enable_external_control is set to True)

    : for external control exposure time and gain.

Parameters

The driver itself has no notion of the camera type (Blackfly, Grasshopper etc), nor does it explicitly support any features that the FLIR cameras have. Rather, all camera features (called Spinnaker Nodes) are mapped to ROS parameters via a yaml file that is specific to that camera type. On startup the driver reads this parameter definition file. In the config directory there are some parameter definition files for popular cameras (blackfly_s.yaml etc) that expose some of the more frequently used features like frame rate, gain, etc. You can add more features by providing your own parameter definition file, see How to develop your own camera configuration file. The ROS driver code is just a thin wrapper around the Spinnaker SDK, and should allow you to access all features available in FLIR's spinview program.

In addition to the parameters defined in the .yaml files, the driver has the following ROS parameters:

  • adjust_timestamp: see About time stamps below for more documentation. Default: false.
  • acquisition_timeout: timeout for expecting frames (in seconds). If no frame is received for this time, the driver restarts. Default is 3.
  • buffer_queue_size: max number of images to queue internally before shoving them into the ROS output queue. Decouples the Spinnaker SDK thread from the ROS publishing thread. Default: 4.
  • camerainfo_url: where to find the camera calibration yaml file.
  • compute_brightness: if true, compute image brightness and publish it in meta data message. This is required when running with the synchronized driver, but incurs extra CPU load. Default: false.
  • connect_while_subscribed: if true, connect to the SDK and pull data from the camera only while subscribers to image or meta topics are present. This feature reduces compute load and link utilization while no ROS subscribers are present, but adds latency on subscription: after a subscription the first image will be published up to 1s later than without this option.
  • dump_node_map: set this to true to get a dump of the node map. Default: false.
  • enable_external_control: set this to true to enable external exposure control. This feature is being deprecated, do not use. Default: false.
  • frame_id: the ROS frame id to put in the header of the published image messages.
  • image_queue_size: ROS output queue size (number of frames). Default: 4
  • parameter_file: location of the .yaml file defining the camera (blackfly_s.yaml etc)
  • serial_number: serial number of the camera. If you don't know it, put in anything you like and the driver will croak with an error message, telling you what cameras serial numbers are available

Example usage

The driver comes with an example launch file (driver_node.launch.py) that you can customize as needed.

# launch with --show-args to print out all available launch arguments
ros2 launch spinnaker_camera_driver driver_node.launch.py camera_type:=blackfly_s serial:="'20435008'"

Using multiple cameras at the same time

The FLIR Spinnaker does not support two programs accessing the Spinnaker SDK at the same time, even if two different cameras are accessed. Strange things happen, in particular with USB3 cameras. You can however run multiple cameras in the same address space using ROS2\'s Composable Node concept, see the example launch file multiple_cameras.launch.py.

If you are using hardware synchronized cameras please use the spinnaker_synchronized_camera_driver, which will associate the images triggered by the same sync pulse with each other and give them identical time stamps.

About time stamps

By default the driver will set the ROS header time stamp to be the time when the image was delivered by the SDK. Such time stamps are not very precise and may lag depending on host CPU load. However the driver has a feature to use the much more accurate sensor-provided camera time stamps. These are then converted to ROS time stamps by estimating the offset between ROS and sensor time stamps via a simple moving average. For the adjustment to work the camera must be configured to send time stamps, and the adjust_timestamp flag must be set to true, and the relevant field in the "chunk" must be populated by the camera. For the Blackfly S the parameters look like this:

'adjust_timestamp': True,
'chunk_mode_active': True,
'chunk_selector_timestamp': 'Timestamp',
'chunk_enable_timestamp': True,

Network Configuration for GigE cameras =======================

The Spinnaker SDK abstracts away the transport layer so a GigE camera should work the same way as USB3: you point it to the serial number and you're set.

There are a few GigE-specific settings in the Transport Layer Control group that are important, in particular enabling jumbo frames from the camera per FLIR's recommendations. The following line in your camera-specific config file will create a ROS2 parameter gev_scps_packet_size:

gev_scps_packet_size int "TransportLayerControl/GigEVision/GevSCPSPacketSize"

that you can then set in your ROS2 launch file:

"gev_scps_packet_size": 9000

As far as setting up the camera's IP address: you can set up DHCP on your network or configure a static persistent IP using spinview in "Transport Layer Control">"GigE Vision". Check the box for "Current IP Configuration Persistent IP" first to enable it, then set your desired addresses under "Persistent IP Address", "Persistent Subnet Mask" and "Persistent Gateway". NOTE: these look like regular IPs, but to set them you have to enter the 32-bit integer representation of the IP address/mask. By hand/calculator: convert the IP octets from decimal to hex, then combine them and convert to a 32-bit integer, ex: 192.168.0.1 -> 0xC0A80001 -> 3232235521.

The "Transport Layer Control">"GigE Vision" section of spinview is also where you'll find that "SCPS Packet Size" setting, which you can change when not capturing frames, and verify it works in spinview and without needing to spin up a custom launch file to get started, though it helps, and you'll probably want one anyway to specify your camera's serial number.

If you do not set up DHCP or set a static IP, your camera will probably assign itself an IP address according to the Link-Local address scheme. The address will be 169.254.xxx.xxx, where the x\'s are randomly generated. In your computer\'s network settings, change the IPv4 Method for the port that connects to your camera to \"Link-Local Only.\" (You could also set the IPv4 Method to \"Manual\" with an address of 169.254.100.1 and a subnet mask of 255.255.0.0).

For more tips on GigE setup look at FLIR's support pages here and here.

How to develop your own camera configuration file

The camera configuration file defines the available ROS parameters, and how they relate to the corresponding Spinnaker nodes. The Spinnaker API follows the GenICam standard, where each property (e.g.

CHANGELOG

Changelog for package spinnaker_camera_driver

2.0.20 (2024-06-20)

  • updated docs for jazzy, adjust download script
  • Contributors: Bernd Pfrommer

2.0.19 (2024-06-18)

  • remove unnecessary debs from package
  • Contributors: Bernd Pfrommer

2.0.18 (2024-06-18)

  • point to new spinnaker sdk for noble
  • renamed stereo_synced file and added doc
  • added user set control examples for blackfly/blackfly_s
  • Contributors: Bernd Pfrommer

2.0.17 (2024-05-18)

  • fix broken composable node by installing in correct location
  • Add FLIR-AX5 Camera
  • Contributors: Bernd Pfrommer, anonymousarmadillo100

2.0.16 (2024-04-20)

  • add option to disable external control (default!)
  • updated docs for sync driver, switch to RST
  • widened the ExposureController interface
  • fix build errors on rolling/noble
  • added blacklevel and whitebalance support for blackfly
  • use proper name for camerainfo when using sync driver
  • Contributors: Bernd Pfrommer

2.0.15 (2024-03-28)

  • fixes to compile on focal/galactic
  • Oryx parameter file
  • support for command nodes
  • remove more spinnaker imports, make spinnaker private
  • added blackfly GigE configuration file
  • track incomplete frames
  • fixed licensing documentation
  • Contributors: Bernd Pfrommer, Sir-Photch

2.0.11 (2024-02-29)

  • provision camera driver for exposure control
  • fixed bugs discovered when running on GigE cams
  • avoid searching ROS path for library
  • added connect_while_subscribed feature
  • Added binning parameter
  • install spinnaker library in same place as driver library
  • remove junk directories from search path
  • added first implementation of synchronized driver
  • prepare single-camera driver for use with sync\'ed driver
  • fixed stereo launch file serial nb bug
  • removed changelogs
  • Contributors: Bernd Pfrommer, Luis Camero, buckleytoby

2.0.8 (2023-11-14)

  • Changes.
  • Added linux_setup_flir script instructions to Readme
  • Add newline echo before Done
  • Rename script to remove extension
  • Ask permission for usb change and don\'t limit detection to 1000
  • Ask about usergroup and give feedback
  • Added linux pc setup script
  • fix python formatting to satisfy linter
  • fix formatting of BSD license to satisfy linter
  • Contributors: Bernd Pfrommer, Hilary Luo, Tony Baltovski

2.0.7 (2023-10-03)

  • Changes.
  • Merge pull request #132 from hilary-luo/humble-devel Added udev rule
  • Restricted the device permissions
  • Added Teledyne to udev as requested
  • Added udev rule
  • Contributors: Hilary Luo, Tony Baltovski

2.0.6 (2023-08-12)

  • updated changelog
  • use correct file name when downloading spinnaker from clearpath web site
  • resurrect building when the Spinnaker SDK is present
  • also compile with older version (0.6) of yaml library
  • git clone needs --branch humble-devel
  • Contributors: Bernd Pfrommer

2.0.5 (2023-08-11)

  • updated changelog
  • add ffmpeg depency to fix build failures on ROS farm
  • reference correct yaml dependency in rosdep
  • switch from config files to standard yaml format
  • Contributors: Bernd Pfrommer

2.0.4 (2023-08-10)

  • updated changelogs
  • install spinnaker libraries in spinnaker_camera_driver dir
  • Contributors: Bernd Pfrommer

2.0.3 (2023-08-01)

  • Changes.
  • Merge pull request #119 from ros-drivers/fix/tmp-hardcode-os Hardcoding OS to jammy since it is the only one currently supported.
  • Hardcoding OS to jammy since it is the only one currently supported.
  • Contributors: Tony Baltovski

2.0.2 (2023-07-28)

  • Changes.
  • Merge pull request #117 from ros-drivers/humble-devel-fix-lsb-release add dependencies for spinnaker download. \@tonybaltovski can you release this fix? I\'d like to see if it works. Thanks!
  • replace lsb-release with python3-distro
  • add dependencies for spinnaker download
  • Contributors: Bernd Pfrommer, Tony Baltovski

2.0.1 (2023-07-24)

  • Changes.
  • Merge pull request #116 from ros-drivers/humble-devel-fix-lsb-release use cmake find_program to detect lsb_release
  • use cmake find_program to detect lsb_release
  • Contributors: Bernd Pfrommer, Tony Baltovski

2.0.0 (2023-07-20)

  • Changes.
  • Merge pull request #113 from berndpfrommer/humble-devel-new new driver for ROS2
  • added spinnaker_camera_driver package
  • deleted spinnaker ros2 driver, to be replaced by new version
  • Contributors: Bernd Pfrommer, Tony Baltovski

0.2.5 (2023-01-06 20:18)

  • Changes.
  • Fixed arm64 folder name.
  • Contributors: Tony Baltovski

0.2.4 (2023-01-06 11:43)

  • Changes.
  • Fixed typo in arm64 arch.
  • Contributors: Tony Baltovski

0.2.3 (2022-04-19)

  • Changes.
  • Merge pull request #96 from luis-camero/noetic-devel Only copy necessary libraries
  • Merge branch \'ros-drivers:noetic-devel\' into noetic-devel
  • Only install necessary libraries
  • Contributors: Luis Camero, Tony Baltovski, luis-camero

0.2.2 (2022-03-28)

  • Changes.
  • Merge pull request #94 from luis-camero/noetic-devel Copy Spinnaker Libraries to build/usr/lib
  • Added new-line at EOF
  • Spinnaker libraries are now all copied to usr/lib
  • Reordered definitions to prevent compiler warnings
  • Contributors: Luis Camero, Tony Baltovski

0.2.1 (2022-03-21)

  • Changes.
  • Merge pull request #93 from luis-camero/noetic-devel Removed check for build/usr/lib
  • Removed check for build/usr/lib which would cause build to skip Spinnaker SDK install
  • Contributors: Luis Camero, Tony Baltovski

0.2.0 (2022-03-11)

  • Changes.
  • Changes.
  • Merge pull request #91 from luis-camero/noetic-devel ROS Industrial CI
  • Fixed all issues reported by roslint
  • Updated file paths to /opt/spinnaker instead of /usr/spinnaker
  • Updated download_spinnaker look-up table
  • Merge pull request #88 from luis-camero/noetic-devel Add readable check to SDK parameters
  • Add readable check to SDK parameters
  • URDF Description, Diagnostics, ISP Enable, and Launch Files (#81)
    • Changes required to use GigE Blackfly S version
    • Added blackfly mesh
    • Added URDF of blackflys and CHANGELOG
    • Added new_line at end of flir_blackflys.urdf.xacro
    • Added DiagnosticAnalyzers and more detailed diagnostic messages
    • Added ISP enable and disable config and updated camera launch file to be more descriptive
    • Switched order of configuration to put ISP enable next to color encoding
    • Updated config to include enumeration for Off, Once, Continuous parameters, and udpated diagnostics.launch
    • Handled issue where no namespace prevents diagnostics_agg from loading from analyzer paramaters
  • Branch to Support GigE Cameras (#79)
    • Changes required to use GigE Blackfly S version
    • Update SpinnakerCamera.cpp
  • Add new parameter to apply an offset to image time stamps (#56)
  • Fixes SpinnakerCamera teardown (#16)
    • fixes error on destroying SpinnakerCamera with multiple cameras
    • adds clarifying comment
  • Add /opt/spinnaker to spinnaker discovery options (#63)
  • increase maximum value of exposure_time/auto_exposure_time_upper_limit (#55)
  • add option to set queue_size for ros publisher (#54)
  • Added support for Grasshopper3. Identical to Chameleon3, split into separate files for clarity. (#26)
  • Feature: horizontal and vertical image reverse (#41)

    • Add horizontal/vertical inverse to reconfigure cfg

    * Add ReverseX/ReverseY with setProperty Co-authored-by: Fabian Schilling <fabian.schilling@me.com>

  • Update Spinnaker.cfg (#50) Fix for correct spelling with capital letter for bool type

  • Add auto exposure ROI parameters (#52) * spinnaker_camera_driver: setProperty: report available enum values Only done on failure. This helps to figure out which enum values are available on a particular camera model. * spinnaker_camera_driver: expose AE ROI parameters This is highly useful when using fisheye lenses, which illuminate only a circle in the center of the image. The AE gets confused by the black regions around it and overexposes the image. This also exposes the \"AutoExposureLightingMode\" parameter, which allows the user to choose a lighting preset (front/back/normal).

  • Fix/frame rate params (#20)

    • [spinnaker_camera_driver] Fixed naming of frame rate control params
    • [spinnaker_camera_driver] Format of mono and stereo launchfiles
    • [spinnaker_camera_driver] Updated diagnostics launchfile
  • Removed opencv as depend. (#46)

  • Changed the download script to check for destination folder and moved unpack directory. (#44)

  • Merge pull request #42 from civerachb-cpr/rpsw-185 Fix Flycap & Spinnaker endpoints

  • Create the directory if it doesn\'t exist

  • Remove an unnecessary deb

  • Spinnaker driver now successfully downloads & builds

  • Start overhauling the spinnaker download script so it works with the correct endpoint & matches the general structure of the pointgrey_camera_driver

  • Contributors: Adam Romlein, Chris I-B, Evan Bretl, Fabian Schilling, Ferdinand, Joseph Curtis, Luis Camero, Max Schwarz, Stephan, Tony Baltovski, Yoshua Nava, Yuki Furuta, luis-camero

0.1.3 (2018-09-25)

  • Update Changelog.
  • Fix install targets when Spinnaker is installed locally. Tabs in FindSpinnaker.
  • Add missing target (Cm3) and switch to find_package script. (#11)
    • Add missing target (Cm3) and switch to find_package script.
    • Clean up message.
  • Adding support of feeding some camera diagnostics to the diagnostic a... (#4)
    • Adding support of feeding some camera diagnostics to the diagnostic aggregator
    • Creating a seperate diagnostics launch example
  • Fix null conversion and unsigned comparison Warnings.
  • Contributors: Helen Oleynikova, Michael Hosmar, mlowe-ascent

0.1.2 (2018-07-27)

  • Update Changelog.
  • Add ARM Build Support (#3)
    • Added ARM Build Support.
  • Contributors: Michael Hosmar

0.1.1 (2018-07-25)

  • Update Changelog.
  • Add opencv3 as build dependency.
  • Contributors: Michael Hosmar

0.1.0 (2018-07-24)

  • Add Changelog
  • Change TODO\'s to me.
  • Flir = Spinnaker
  • Add timeout and fix reconnection. Replace Pointgrey references from e4b1493. Changed some prints away from \"Once\".
  • Move to std::shared_ptr and removed unnecessary install directive.
  • Remove old changelog.
  • Remove unnecessary config files.
  • line length.
  • flir_camera_driver = spinnaker_camera_driver
  • Contributors: Michael Hosmar

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged spinnaker_camera_driver at Robotics Stack Exchange

Package Summary

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

Repository Summary

Checkout URI https://github.com/ros-drivers/flir_camera_driver.git
VCS Type git
VCS Version noetic-devel
Last Updated 2023-09-22
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Spinnaker camera driver based on Spinnaker.

Additional Links

Maintainers

  • Mike Hosmar

Authors

  • Chad Rockey
README
No README found. See repository README.
CHANGELOG

Changelog for package spinnaker_camera_driver

0.2.2 (2022-03-28)

  • Added new-line at EOF
  • Spinnaker libraries are now all copied to usr/lib
  • Reordered definitions to prevent compiler warnings
  • Contributors: Luis Camero

0.2.1 (2022-03-21)

  • Removed check for build/usr/lib which would cause build to skip Spinnaker SDK install
  • Contributors: Luis Camero

0.2.0 (2022-03-11)

  • Changes.
  • Merge pull request #91 from luis-camero/noetic-devel ROS Industrial CI
  • Fixed all issues reported by roslint
  • Updated file paths to /opt/spinnaker instead of /usr/spinnaker
  • Updated download_spinnaker look-up table
  • Merge pull request #88 from luis-camero/noetic-devel Add readable check to SDK parameters
  • Add readable check to SDK parameters
  • URDF Description, Diagnostics, ISP Enable, and Launch Files (#81)
    • Changes required to use GigE Blackfly S version
    • Added blackfly mesh
    • Added URDF of blackflys and CHANGELOG
    • Added new_line at end of flir_blackflys.urdf.xacro
    • Added DiagnosticAnalyzers and more detailed diagnostic messages
    • Added ISP enable and disable config and updated camera launch file to be more descriptive
    • Switched order of configuration to put ISP enable next to color encoding
    • Updated config to include enumeration for Off, Once, Continuous parameters, and udpated diagnostics.launch
    • Handled issue where no namespace prevents diagnostics_agg from loading from analyzer paramaters
  • Branch to Support GigE Cameras (#79)
    • Changes required to use GigE Blackfly S version
    • Update SpinnakerCamera.cpp
  • Add new parameter to apply an offset to image time stamps (#56)
  • Fixes SpinnakerCamera teardown (#16)
    • fixes error on destroying SpinnakerCamera with multiple cameras
    • adds clarifying comment
  • Add /opt/spinnaker to spinnaker discovery options (#63)
  • increase maximum value of exposure_time/auto_exposure_time_upper_limit (#55)
  • add option to set queue_size for ros publisher (#54)
  • Added support for Grasshopper3. Identical to Chameleon3, split into separate files for clarity. (#26)
  • Feature: horizontal and vertical image reverse (#41)

    • Add horizontal/vertical inverse to reconfigure cfg

    * Add ReverseX/ReverseY with setProperty Co-authored-by: Fabian Schilling <fabian.schilling@me.com>

  • Update Spinnaker.cfg (#50) Fix for correct spelling with capital letter for bool type

  • Add auto exposure ROI parameters (#52) * spinnaker_camera_driver: setProperty: report available enum values Only done on failure. This helps to figure out which enum values are available on a particular camera model. * spinnaker_camera_driver: expose AE ROI parameters This is highly useful when using fisheye lenses, which illuminate only a circle in the center of the image. The AE gets confused by the black regions around it and overexposes the image. This also exposes the \"AutoExposureLightingMode\" parameter, which allows the user to choose a lighting preset (front/back/normal).

  • Fix/frame rate params (#20)

    • [spinnaker_camera_driver] Fixed naming of frame rate control params
    • [spinnaker_camera_driver] Format of mono and stereo launchfiles
    • [spinnaker_camera_driver] Updated diagnostics launchfile
  • Removed opencv as depend. (#46)

  • Changed the download script to check for destination folder and moved unpack directory. (#44)

  • Merge pull request #42 from civerachb-cpr/rpsw-185 Fix Flycap & Spinnaker endpoints

  • Create the directory if it doesn\'t exist

  • Remove an unnecessary deb

  • Spinnaker driver now successfully downloads & builds

  • Start overhauling the spinnaker download script so it works with the correct endpoint & matches the general structure of the pointgrey_camera_driver

  • Contributors: Adam Romlein, Chris I-B, Evan Bretl, Fabian Schilling, Ferdinand, Joseph Curtis, Luis Camero, Max Schwarz, Stephan, Tony Baltovski, Yoshua Nava, Yuki Furuta, luis-camero

0.2.5 (2023-01-06)

  • Fixed arm64 folder name.
  • Contributors: Tony Baltovski

0.2.4 (2023-01-06)

  • Fixed typo in arm64 arch.
  • Contributors: Tony Baltovski

0.2.3 (2022-04-19)

  • Only install necessary libraries
  • 0.2.2
  • Changes.
  • Added new-line at EOF
  • Spinnaker libraries are now all copied to usr/lib
  • Reordered definitions to prevent compiler warnings
  • 0.2.1
  • Changes.
  • Removed check for build/usr/lib which would cause build to skip Spinnaker SDK install
  • 0.2.0
  • Changes.
  • Changes.
  • Fixed all issues reported by roslint
  • Updated file paths to /opt/spinnaker instead of /usr/spinnaker
  • Updated download_spinnaker look-up table
  • Add readable check to SDK parameters
  • URDF Description, Diagnostics, ISP Enable, and Launch Files (#81)
    • Changes required to use GigE Blackfly S version
    • Added blackfly mesh
    • Added URDF of blackflys and CHANGELOG
    • Added new_line at end of flir_blackflys.urdf.xacro
    • Added DiagnosticAnalyzers and more detailed diagnostic messages
    • Added ISP enable and disable config and updated camera launch file to be more descriptive
    • Switched order of configuration to put ISP enable next to color encoding
    • Updated config to include enumeration for Off, Once, Continuous parameters, and udpated diagnostics.launch
    • Handled issue where no namespace prevents diagnostics_agg from loading from analyzer paramaters
  • Branch to Support GigE Cameras (#79)
    • Changes required to use GigE Blackfly S version
    • Update SpinnakerCamera.cpp
  • Add new parameter to apply an offset to image time stamps (#56)
  • Fixes SpinnakerCamera teardown (#16)
    • fixes error on destroying SpinnakerCamera with multiple cameras
    • adds clarifying comment
  • Add /opt/spinnaker to spinnaker discovery options (#63)
  • increase maximum value of exposure_time/auto_exposure_time_upper_limit (#55)
  • add option to set queue_size for ros publisher (#54)
  • Added support for Grasshopper3. Identical to Chameleon3, split into separate files for clarity. (#26)
  • Feature: horizontal and vertical image reverse (#41)

    • Add horizontal/vertical inverse to reconfigure cfg

    * Add ReverseX/ReverseY with setProperty Co-authored-by: Fabian Schilling <fabian.schilling@me.com>

  • Update Spinnaker.cfg (#50) Fix for correct spelling with capital letter for bool type

  • Add auto exposure ROI parameters (#52) * spinnaker_camera_driver: setProperty: report available enum values Only done on failure. This helps to figure out which enum values are available on a particular camera model. * spinnaker_camera_driver: expose AE ROI parameters This is highly useful when using fisheye lenses, which illuminate only a circle in the center of the image. The AE gets confused by the black regions around it and overexposes the image. This also exposes the \"AutoExposureLightingMode\" parameter, which allows the user to choose a lighting preset (front/back/normal).

  • Fix/frame rate params (#20)

    • [spinnaker_camera_driver] Fixed naming of frame rate control params
    • [spinnaker_camera_driver] Format of mono and stereo launchfiles
    • [spinnaker_camera_driver] Updated diagnostics launchfile
  • Removed opencv as depend. (#46)

  • Changed the download script to check for destination folder and moved unpack directory. (#44)

  • Create the directory if it doesn\'t exist

  • Remove an unnecessary deb

  • Spinnaker driver now successfully downloads & builds

  • Start overhauling the spinnaker download script so it works with the correct endpoint & matches the general structure of the pointgrey_camera_driver

  • Contributors: Adam Romlein, Chris I-B, Evan Bretl, Fabian Schilling, Ferdinand, Joseph Curtis, Luis Camero, Max Schwarz, Stephan, Tony Baltovski, Yoshua Nava, Yuki Furuta, luis-camero

0.1.3 (2018-09-25)

  • Fix install targets when Spinnaker is installed locally. Tabs in FindSpinnaker.
  • Add missing target (Cm3) and switch to find_package script. (#11)
    • Add missing target (Cm3) and switch to find_package script.
    • Clean up message.
  • Adding support of feeding some camera diagnostics to the diagnostic a... (#4)
    • Adding support of feeding some camera diagnostics to the diagnostic aggregator
    • Creating a seperate diagnostics launch example
  • Fix null conversion and unsigned comparison Warnings.
  • Contributors: Helen Oleynikova, Michael Hosmar, mlowe-ascent

0.1.2 (2018-07-27)

  • Add ARM Build Support (#3)
    • Added ARM Build Support.
  • Contributors: Michael Hosmar

0.1.1 (2018-07-25)

  • Add opencv3 as build dependency.
  • Contributors: Michael Hosmar

0.1.0 (2018-07-24)

  • Initial Release
  • Contributors: Michael Hosmar

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/diagnostics.launch
    • Software License Agreement (BSD) \file camera.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      • camera_name [default: camera]
      • camera_serial [default: 0]
      • calibrated [default: 0]
      • device_type [default: USB3]
      • control_frame_rate [default: True]
      • frame_rate [default: 30]
      • isp_enable [default: False]
      • encoding [default: BayerRG8]
      • color_balance [default: Continuous]
  • launch/test_spinnaker.launch
    • Software License Agreement (BSD) \file test_spinnaker.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • launch/camera.launch
    • Software License Agreement (BSD) \file camera.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      • camera_name [default: camera]
      • camera_serial [default: 0]
      • calibrated [default: 0]
      • device_type [default: USB3]
      • control_frame_rate [default: True]
      • frame_rate [default: 30]
      • isp_enable [default: False]
      • encoding [default: BayerRG8]
      • color_balance [default: Continuous]
  • launch/stereo.launch
    • Software License Agreement (BSD) \file stereo.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      • camera_name [default: stereo]
      • control_frame_rate [default: true]
      • frame_rate [default: 15]
      • left_camera_serial [default: 15085987]
      • left_camera_calibrated [default: 0]
      • right_camera_serial [default: 15085990]
      • right_camera_calibrated [default: 0]
      • run_stereo_image_proc [default: false]

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged spinnaker_camera_driver at Robotics Stack Exchange

Package Summary

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

Repository Summary

Checkout URI https://github.com/ros-drivers/flir_camera_driver.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-11-22
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Spinnaker camera driver based on Spinnaker.

Additional Links

Maintainers

  • Mike Hosmar

Authors

  • Chad Rockey
README
No README found. See repository README.
CHANGELOG

Changelog for package spinnaker_camera_driver

0.1.4 (2022-11-22)

  • URDF Description, Diagnostics, ISP Enable, and Launch Files (#81)
    • Changes required to use GigE Blackfly S version
    • Added blackfly mesh
    • Added URDF of blackflys and CHANGELOG
    • Added new_line at end of flir_blackflys.urdf.xacro
    • Added DiagnosticAnalyzers and more detailed diagnostic messages
    • Added ISP enable and disable config and updated camera launch file to be more descriptive
    • Switched order of configuration to put ISP enable next to color encoding
    • Updated config to include enumeration for Off, Once, Continuous parameters, and udpated diagnostics.launch
    • Handled issue where no namespace prevents diagnostics_agg from loading from analyzer paramaters
  • Branch to Support GigE Cameras (#79)
    • Changes required to use GigE Blackfly S version
    • Update SpinnakerCamera.cpp
  • Add new parameter to apply an offset to image time stamps (#56)
  • Fixes SpinnakerCamera teardown (#16)
    • fixes error on destroying SpinnakerCamera with multiple cameras
    • adds clarifying comment
  • Add /opt/spinnaker to spinnaker discovery options (#63)
  • increase maximum value of exposure_time/auto_exposure_time_upper_limit (#55)
  • add option to set queue_size for ros publisher (#54)
  • Added support for Grasshopper3. Identical to Chameleon3, split into separate files for clarity. (#26)
  • Feature: horizontal and vertical image reverse (#41)

    • Add horizontal/vertical inverse to reconfigure cfg

    * Add ReverseX/ReverseY with setProperty Co-authored-by: Fabian Schilling <fabian.schilling@me.com>

  • Update Spinnaker.cfg (#50) Fix for correct spelling with capital letter for bool type

  • Add auto exposure ROI parameters (#52) * spinnaker_camera_driver: setProperty: report available enum values Only done on failure. This helps to figure out which enum values are available on a particular camera model. * spinnaker_camera_driver: expose AE ROI parameters This is highly useful when using fisheye lenses, which illuminate only a circle in the center of the image. The AE gets confused by the black regions around it and overexposes the image. This also exposes the \"AutoExposureLightingMode\" parameter, which allows the user to choose a lighting preset (front/back/normal).

  • Fix/frame rate params (#20)

    • [spinnaker_camera_driver] Fixed naming of frame rate control params
    • [spinnaker_camera_driver] Format of mono and stereo launchfiles
    • [spinnaker_camera_driver] Updated diagnostics launchfile
  • Removed opencv as depend. (#46)

  • Changed the download script to check for destination folder and moved unpack directory. (#44)

  • Create the directory if it doesn\'t exist

  • Remove an unnecessary deb

  • Spinnaker driver now successfully downloads & builds

  • Start overhauling the spinnaker download script so it works with the correct endpoint & matches the general structure of the pointgrey_camera_driver

  • Contributors: Adam Romlein, Chris I-B, Evan Bretl, Fabian Schilling, Ferdinand, Joseph Curtis, Max Schwarz, Stephan, Tony Baltovski, Yoshua Nava, Yuki Furuta, luis-camero

0.1.3 (2018-09-25)

  • Fix install targets when Spinnaker is installed locally. Tabs in FindSpinnaker.
  • Add missing target (Cm3) and switch to find_package script. (#11)
    • Add missing target (Cm3) and switch to find_package script.
    • Clean up message.
  • Adding support of feeding some camera diagnostics to the diagnostic a... (#4)
    • Adding support of feeding some camera diagnostics to the diagnostic aggregator
    • Creating a seperate diagnostics launch example
  • Fix null conversion and unsigned comparison Warnings.
  • Contributors: Helen Oleynikova, Michael Hosmar, mlowe-ascent

0.1.2 (2018-07-27)

  • Add ARM Build Support (#3)
    • Added ARM Build Support.
  • Contributors: Michael Hosmar

0.1.1 (2018-07-25)

  • Add opencv3 as build dependency.
  • Contributors: Michael Hosmar

0.1.0 (2018-07-24)

  • Initial Release
  • Contributors: Michael Hosmar

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/diagnostics.launch
    • Software License Agreement (BSD) \file camera.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      • camera_name [default: camera]
      • camera_serial [default: 0]
      • calibrated [default: 0]
      • device_type [default: USB3]
      • control_frame_rate [default: True]
      • frame_rate [default: 30]
      • isp_enable [default: False]
      • encoding [default: BayerRG8]
      • color_balance [default: Continuous]
  • launch/test_spinnaker.launch
    • Software License Agreement (BSD) \file test_spinnaker.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • launch/camera.launch
    • Software License Agreement (BSD) \file camera.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      • camera_name [default: camera]
      • camera_serial [default: 0]
      • calibrated [default: 0]
      • device_type [default: USB3]
      • control_frame_rate [default: True]
      • frame_rate [default: 30]
      • isp_enable [default: False]
      • encoding [default: BayerRG8]
      • color_balance [default: Continuous]
  • launch/stereo.launch
    • Software License Agreement (BSD) \file stereo.launch \authors Michael Hosmar \copyright Copyright (c) 2018, Clearpath Robotics, Inc., All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR- RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN- DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      • camera_name [default: stereo]
      • control_frame_rate [default: true]
      • frame_rate [default: 15]
      • left_camera_serial [default: 15085987]
      • left_camera_calibrated [default: 0]
      • right_camera_serial [default: 15085990]
      • right_camera_calibrated [default: 0]
      • run_stereo_image_proc [default: false]

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged spinnaker_camera_driver at Robotics Stack Exchange