本人相机:Basler AG ace acA1920-155uc(usb3.0)
目录:
1.安装ROS kinetic
2.安装pylon6
3.安装pylon-ROS-camera 驱动包
4.下载camera_calibration工具包,进行摄像头标定
卸载旧版本
sudo apt-get remove gezabo*
sudo apt-get -purge ros*
sudo rm -r etc/ros
gedit ~/.bashrc
安装ROS kinetic
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install ros-kinetic-desktop-full # Ubuntu 16.04
$ sudo rosdep init && rosdep update
注: Linux版本的pylon只支持GE(千兆以太网) 和 USB相机,该安装包已经在ROS-Indigo 和 ROS-Kinetic下通过测试。
pylon6下载地址
下载对应版本的.deb二进制安装包
sudo dpkg -i pylon_6.1.1.19861-deb0_amd64.deb
添加环境变量
echo “export PYLON_ROOT=/opt/pylon” >> ~/.bashrc
sudo sh -c 'echo "yaml https://raw.githubusercontent.com/magazino/pylon_camera/indigo-devel/rosdep/pylon_sdk.yaml " > /etc/ros/rosdep/sources.list.d/15-plyon_camera.list'
rosdep update
cd ~/catkin_ws/src/ && git clone https://github.com/basler/pylon-ros-camera
git clone https://github.com/dragandbot/dragandbot_common.git
安装所有依赖
rosdep install --from-paths . --ignore-src --rosdistro=$ROS_DISTRO -y
如果安装依赖失败,将命令修改为:
rosdep install --from-paths ~/catkin_ws/src/xxxxxxxx --ignore-src -r
编译
cd ~/catkin_ws && catkin_make
echo “source ~/catkin_ws/devel/setup.bash” >> ~/.bashrc
roslaunch pylon_camera pylon_camera_node.launch
报错:
解决方案:
打开pylon_camera文件下的config/default.yaml文件,将# image_encoding: "mono8"取消注释,并改为 image_encoding: “bayer_rggb8”。
再次执行命令:
roslaunch pylon_camera pylon_camera_node.launch
rosrun image_view image_view image:=/pylon_camera_node/image_raw
切换到工作空间目录下,下载image_pipeline将其中的camera_calibration目录移动到到src目录下,
cd Basler_ws
catkin_make
运行图像采集节点
roslaunch pylon_camera pylon_camera_node.launch
rosrun image_view image_view image:=/pylon_camera_node/image_raw #其中pylon_camera_node替换成自己的节点
执行cameracalibrator.py节点,开始标定,其中size 6x4表示标定板的内角点个数square 0.055表示标定板正方形方格的边长,这个地方需要根据自己使用的标定板尺寸修改,我用的是6x4,方格边长0.055m。
rosrun camera_calibration cameracalibrator.py --size 6x4 --square 0.055 image:=/pylon_camera_node/image_raw camera:=/pylon_camera_node
移动标定板的位置,直到界面上的calibrate按钮变绿,然后点击该按钮,开始标定,标定过程需要1-2分钟,
标定结束后各参数会打印在终端,如果你对标定结果还满意的话,就可以按下commit按钮,提交结果并保存,参数会版存到默认文件(~/.ros/camera_info/camera,yaml)中,下次运行pylon_camera_node
当你下一次运行pylon_canera_node节点时,这些参数就会被自动加载。