赞
踩
Livox Lidar + HIKROBOT Camera 联合标定
参考链接:相机雷达标定文档
安装ROS环境,参考笔者的博客:【ROS】Ubuntu18.04安装Ros
参考链接:海康Camera MVS Linux SDK二次开发封装ROS packge过程记录(c++)
海康的相机没有ros驱动,且对linux开发不太友好(但支持windows),因此需要重写了sdk接口,并创建了ros节点封装成ros包,方便linux环境下ros的调用
完整版ros驱动:https://github.com/luckyluckydadada/HIKROBOT-MVS-ROS-package
参考笔者的博客:
【HIKROBOT】海康机器人:工业相机SDK二次开发
海康威视工业相机sdk的ros驱动包的安装步骤:
step1:安装
# 创建catkin工作空间
mkdir ws_hk_mvs_ros
# 克隆源码到工作空间(海康机器人的ROS软件包)
git clone https://github.com/luckyluckydadada/HIKROBOT-MVS-ROS-package.git ws_hk_mvs_ros/src
cd ws_hk_mvs_ros
# 编译Catkin工作空间中的ROS包
catkin_make
step2:直接运行node
需要先启动roscore
source ./devel/setup.bash
rosrun hk_camera hk_camera_node
step3:launch启动node
source ./devel/setup.bash
roslaunch hk_camera hk_camera.launch
step4:launch启动node和rviz node
用 rviz 订阅 /hk_camera_node/image_raw 查看照片
source ./devel/setup.bash
roslaunch hk_camera hk_camera_rviz.launch
参考笔者博客:【Ubuntu18.04】Livox Tele-15使用教程
安装Livox环境和驱动
# 安装Livox_SDK
git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..
make
sudo make install
# 安装livox_ros_driver
cd Livox-SDK # 进入Livox-SDK目录
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src
cd ws_livox # 进入工作空间
catkin_make
参考链接:Ubuntu18.04安装PCL 1.9.1(图文详解,附踩坑和测试)
step1:安装依赖
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
step2:下载源码
建议安装1.9.1
git clone https://github.com/PointCloudLibrary/pcl.git
step3:编译源码
cd pcl-pcl-1.9.1
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr ..
make
step4:安装
sudo make install
step5:PCLVisualizer(需要可以安装)
sudo apt-get install libopenni-dev
sudo apt-get install libopenni2-dev
简单命令安装
sudo apt-get install libeigen3-dev
下载ceres-solver-1.14.0
git clone https://github.com/ceres-solver/ceres-solver
依赖安装
sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687
sudo apt-get update
sudo apt-get install libsuitesparse-dev
安装 ceres-solver
tar zxf ceres-solver-1.14.0.tar.gz
mkdir ceres-bin && cd ceres-bin
cmake ../ceres-solver-1.14.0
make -j3
make install
至此需要的库安装完毕
# 进入工作空间
cd ws_livox/src
git clone https://github.com/Livox-SDK/livox_camera_lidar_calibration.git
cd .. # 返回上一级目录
catkin_make
source devel/setup.bash
此项目包括如下节点:
以下程序节点中如果想修改launch文件,需要到src/calibration/launch
文件夹中找对应的launch文件。
采集棋盘格图像:
方法1:直接使用HIKROBOT的上位机来抓取并保存图片
选择指定的保存路径
抓取图片
方法2:使用 ROS可视化工具rqt_image_view查看并保存图片
# 进入工作空间
source devel/setup.bash # 加载环境
# roslaunch [软件包] 启动文件.launch
roslaunch hk_camera hk_camera.launch
# 加载环境
source devel/setup.bash
# 打开相机画面
rqt_image_view
说明
: 笔者以下数据使用官网下载的数据集来测试:测试数据下载:data.zip
cameraCalib.launch
中对应的路径和参数,默认是把照片数据放在data/camera/photos
下,然后在data/camera/in.txt
中写入所有需要使用的照片名称,如下图所示
输入指令开始标定
#进入工作空间
cd ws_livox/
source devel/setup.bash
roslaunch camera_lidar_calibration cameraCalib.launch
内参结果
报错
(若无报错则跳过此步骤)解决方法:
参考链接:
解决 cv_bridge 与 opencv4 版本冲突问题
下载 noetic 版本的 cv_bridge。(noetic 版本的 cv_bridge 在 melodic 下也能使用,不过要做一些修改,后续会说明)
下载地址:https://github.com/ros-perception/vision_opencv/tree/noetic
下载完成后,将 cv_bridge 拷贝到 ros 工作空间的 src 文件夹下。
此时工作空间的目录结构为:
为了不影响原来的包,将该文件夹重命名为 cv_bridge_new
,并且将cv_bridge_new
文件夹下 CMakeLists.txt 文件中 project 名称修改为 cv_bridge_new:
在 CMakeLists.txt 文件中指定我们自己的功能包中所用的 opencv4:
并且修改 package.xml 中包的名称:
直接修改 cv_bridge_new
的CMakeLists.txt
文件:
...
if(PYTHONLIBS_VERSION_STRING VERSION_LESS "3.8")
# Debian Buster
find_package(Boost REQUIRED python3)
...
修改 cv_bridge_new/src/module.hpp 文件下 void* do_numpy_import()函数为 (注意*要删除)
static void do_numpy_import( )
{
import_array( );
}
再次编译:
catkin_make
再次输入指令开始标定
#进入工作空间
cd ws_livox/
source devel/setup.bash
roslaunch camera_lidar_calibration cameraCalib.launch
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。