The driver works with A series cameras from Teledyne FLIR LLC.
sudo pip3 install opencv-python
sudo pip3 install imutils
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/flir_smart_camera_driver.git
# install dependencies
sudo apt update -qq
rosdep update
rosdep install --from-paths src --ignore-src -y
# build the workspace
catkin_make
# activate the workspace (ie: source it)
source devel/setup.bashThe ROS driver is managed in two packages flir_msgs and flir_smart_camera_driver.
roslaunch flir_smart_camera_driver driver.launch-
~api_file_path: Path to the REST api definition file. One by default exists in
flir_smart_camera_driver/config/swagger.jsonwhich is downloaded from here. -
~camera_api_key: Every camera needs to authenticate the user data and requests. A guide on how to generate an API key can be found here.
-
~camera_ip: IP address of the camera.
-
~ir_format: Smart cameras provide data in different formats possible ones are: avc, mpeg4, mjpg
-
~is_rgb_required: True if RGB image from the camera is required.
-
~visual_format: Smart cameras provide data in different formats possible ones are: avc, mpeg4, mjpg
-
~is_http: If the communication is http or https (can be changed in the cameras web interface)
-
~overlay: Show/Hide camera overlay, includes different types of information in the overlay.
-
~verbose: If true redirects API requests and json data to standard output.
-
~alarms/active(flir_msgs/ActiveAlarms) Information on any active alarms.
-
~alarms/triggered(flir_msgs/TriggeredAlarms)
-
~stream/ir(sensors_msgs/Image)
-
~stream/rgb(sensors_msgs/Image)
As the driver is based on REST api and the device offer quite some fucntionalities there are two types of services:
-
Fetch information: All fetch services start with
getand their namings exhibit their functionalities -
Set attributes: All setattributes services start with
setand need some data to set on the device.
-
~get/alarms/digin(flir_msgs/RetrieveData)
-
~get/alarms/digin/id(flir_msgs/IdRetrieveData)
-
~get/alarms/measure_function(flir_msgs/RetrieveData)
-
~get/alarms/measure_function/id(flir_msgs/IdRetrieveData)
-
~get/alarms/temperature_sensor(flir_msgs/RetrieveData)
-
~get/alarms/temperature_sensor/id(flir_msgs/IdRetrieveData)
-
~get/device/configuration(flir_msgs/RetrieveData)
-
~get/device/details(flir_msgs/RetrieveData)
-
~get/device/focus(flir_msgs/RetrieveData)
-
~get/device/io/outputs(flir_msgs/RetrieveData)
-
~get/device/io/outputs/id(flir_msgs/RetrieveData)
-
~get/device/limits(flir_msgs/RetrieveData)
-
~get/device/nuc(flir_msgs/RetrieveData)
-
~get/image/state(flir_msgs/RetrieveData)
-
~get/measurements/boxes(flir_msgs/RetrieveData)
-
~get/measurements/boxes/id(flir_msgs/RetrieveData)
-
~get/measurements/deltas(flir_msgs/RetrieveData)
-
~get/measurements/deltas/id(flir_msgs/RetrieveData)
-
~get/measurements/lines(flir_msgs/RetrieveData)
-
~get/measurements/lines/id(flir_msgs/IdRetrieveData)
-
~get/measurements/polylines(flir_msgs/RetrieveData)
-
~get/measurements/polylines/id(flir_msgs/RetrieveData)
-
~get/measurements/reftemps(flir_msgs/RetrieveData)
-
~get/measurements/reftemps/id(flir_msgs/RetrieveData)
-
~get/measurements/spots(flir_msgs/RetrieveData)
-
~get/measurements/spots/id(flir_msgs/RetrieveData)
-
~get/regional/limits(flir_msgs/RetrieveData)
-
~get/regional/time(flir_msgs/RetrieveData)
-
~get/regional/units(flir_msgs/RetrieveData)
-
~get/screening/configuration(flir_msgs/RetrieveData)
-
~get/screening/limits(flir_msgs/RetrieveData)
-
~get/screening/operator/configuration(flir_msgs/RetrieveData)
-
~get/screening/operator/state(flir_msgs/RetrieveData)
-
~set/alarms/digin/id(flir_msgs/DiginAlarm)
-
~set/alarms/measure_function/id(flir_msgs/MeasureFunctionAlarm)
-
~set/alarms/temperature_sensor/id(flir_msgs/TempSensAlarm)
-
~set/device/configuration(flir_msgs/DeviceConfiguration)
-
~set/device/details(flir_msgs/DeviceDetails)
-
~set/device/focus(flir_msgs/DeviceFocusUpdate)
-
~set/device/focus_auto(flir_msgs/DeviceFocusAutoUpdate)
-
~set/device/io/outputs/id(flir_msgs/DigitalOutput)
-
~set/device/nuc(flir_msgs/DeviceNuc)
-
~set/device/pts/pan(flir_msgs/DevicePan)
-
~set/device/pts/stop(flir_msgs/RetrieveData)
-
~set/device/pts/tilt(flir_msgs/DeviceTilt)
-
~set/image/state(flir_msgs/ImageState)
-
~set/measurements/boxes/id(flir_msgs/FunctionBox)
-
~set/measurements/deltas/id(flir_msgs/FunctionDelta)
-
~set/measurements/lines/id(flir_msgs/FunctionLine)
-
~set/measurements/polylines/id(flir_msgs/FunctionPolyline)
-
~set/measurements/reftemps/id(flir_msgs/FunctionRefTemp)
-
~set/measurements/spots/id(flir_msgs/FunctionSpot)
-
~set/regional/time(flir_msgs/RegionalTime)
-
~set/regional/units(flir_msgs/RegionalUnits)
-
~set/screening/configuration(flir_msgs/ScreeningConfiguration)
-
~set/screening/operator/capture_sample(flir_msgs/RetrieveData)
-
~set/screening/operator/configuration(flir_msgs/ScreeningOperatorConfiguration)
-
~set/screening/operator/reset_samples(flir_msgs/RetrieveData)
