[ros] flir blackfly

 

安装

确定设备可连接

  • 1 安装sdk:

spinnaker sdk

  • 2 配置ip:
ifconfig xxx 169.254.67.yyy

xxx为网卡名,169.254.67.yyy为ip。(ip必须为这个域下)(或在/etc/network/interfaces中配置)

  • 3 使用spinview查看:
sudo spinview

接入到ros

spinnaker_sdk_camera_driver

  • 1 安装依赖:
sudo apt install libunwind-dev ros-${ROS_DISTRO}-cv-bridge ros-${ROS_DISTRO}-image-transport
  • 2 安装spinnaker驱动:
mkdir -p ~/spinnaker_ws/src
cd spinnaker_ws/src
git clone https://github.com/neufieldrobotics/spinnaker_sdk_camera_driver.git
cd ~/spinnaker_ws/
catkin_make
source ~/spinnaker_ws/devel/setup.bash
  • 3 配置,修改./params/test_params.yaml中的cam_idsmaster_cam匹配对应的相机sn(贴在相机上的)。

  • 4 运行:

roslaunch spinnaker_sdk_camera_driver acquisition.launch
  • 5 查看:
rqt_image_view

显示为黑白,可以通过acquisition.launch(优先级更高)或test_params.yaml文件中修改color属性,更改为彩色。

示例(python)

示例程序:spinnaker_python-2.0.0.109-Ubuntu18.04-cp36-cp36m-linux_x86_64/Examples/Python3/AcquireAndDisplay.py

烫手

错误处理

  1. Camera not detected:

spinnaker sdk

  • 原因:使用spinnaker sdk 2.0版本会出现的问题,因为对s/n获取方式变了,导致spinnaker_sdk_camera_driver对s/n获取失败。
  • 解决:git checkout dev切换到目前后并到的dev中。 (探讨问题 -> 解决部分问题
  1. frame id was zero

目前只找到注释camera.cpp第59行(master分支)的临时方法。(或设置为==1,因为输出发现该值为1)

  1. NEW_BUFFER_DATA:

增大UDP缓存区(25Mb)。解决方案

sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.rmem_default=26214400

acquisition.launch中的binning参数设置为2或4(有时只允许设置为2),降低分辨率可以保持一定稳定。全彩高分辨率问题(供电问题?)

  1. 图像上下翻转

在切换到spinnaker sdk 2.0以后,图像不再颠倒。

切换到dev分支,在params/test_params.yamlflip_horizontalflip_vertical,并设置为trueimage flip