目录
一、配置kalibr环境
1.安装依赖
2.下载官方代码并编译
3.设置标定板
二、配置librelsense环境
1.下载并安装依赖
2.安装权限脚本
3.编译
三、配置ros-realsense
1.在catkin_X/src目录下载
2.运行测试
3.修改分辨率
4.开启相机IMU
报错1:
解决办法:
四、kalibr相机标定
1.降低相机的输出频率
2.录制相机bag
3.设置标定板配置文件
4.相机标定
参考链接
一、配置kalibr环境
1.安装依赖
sudo apt-get install -y git wget autoconf automake nano libeigen3-dev libboost-all-dev libsuitesparse-dev doxygen libopencv-dev libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-devsudo apt-get install -y python3-dev python3-pip python3-scipy python3-matplotlib ipython3 python3-wxgtk4.0 python3-tk python3-igraphpip install pyx sudo apt install texlive texlive-latex-extra texlive-fonts-recommended2.下载官方代码并编译
mkdir kalibr_workspace cd kalibr_workspace mkdir src cd src git clone https://github.com/ethz-asl/kalibr.git catkin_make source devel/setup.bash3.设置标定板
rosrun kalibr kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.025 --tspace 0.3 --eps–type apriltag 标定板类型
–nx [NUM_COLS] 列个数 6
–ny [NUM_ROWS] 行个数 6
–tsize [TAG_WIDTH_M] 二维码方格长度,单位m 0.025
–tspace [TAG_SPACING_PERCENT] 小方格与二维码方格长度比例 0.3
–eps 生成eps文件
最终会在kalibr的工作空间下生成target.pdf文件。
二、配置librelsense环境
1.下载并安装依赖
git clone https://github.com/IntelRealSense/librealsense cd librealsense sudo apt-get install libudev-dev pkg-config libgtk-3-dev sudo apt-get install libusb-1.0-0-dev pkg-config sudo apt-get install libglfw3-dev sudo apt-get install libssl-dev sudo apt install v4l-utils2.安装权限脚本
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && udevadm trigger3.编译
mkdir build cd build cmake ../ -DBUILD_EXAMPLES=true make sudo make install注:第一次安装会因为json无法下载报错,提前下载好https://github.com/nlohmann/json
先把nlohmann/json源码下载好,解压到这里(注意修改文件夹名字)
/home/XX/XX/librealsense-master/build/third-party/json关键是最后必须长这样:
/home/XX/XX/librealsense-master/build/third-party/json/CMakeLists.txt /home/XX/XX/librealsense-master/build/third-party/json/include/nlohmann/json.hpp把librealsense-master/CMake/external_json.cmake改成下面这样
cmake_minimum_required(VERSION 3.10) include(ExternalProject) function(get_nlohmann_json) set(JSON_LOCAL_DIR "${CMAKE_BINARY_DIR}/third-party/json") if(EXISTS "${JSON_LOCAL_DIR}/CMakeLists.txt") message(STATUS "Using local nlohmann/json from ${JSON_LOCAL_DIR}") add_subdirectory("${JSON_LOCAL_DIR}" "${JSON_LOCAL_DIR}/build") return() endif() message(STATUS "Fetching nlohmann/json...") configure_file( CMake/json-download.cmake.in ${CMAKE_BINARY_DIR}/external-projects/json-download/CMakeLists.txt ) execute_process( COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . "--no-warn-unused-cli" -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/json-download" OUTPUT_QUIET RESULT_VARIABLE configure_ret ) execute_process( COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/json-download" OUTPUT_QUIET RESULT_VARIABLE build_ret ) if( configure_ret OR build_ret ) message( FATAL_ERROR "Failed to download nlohmann/json, and no local copy was found in ${JSON_LOCAL_DIR}" ) endif() add_subdirectory( "${CMAKE_BINARY_DIR}/third-party/json" "${CMAKE_BINARY_DIR}/third-party/json/build" ) message(STATUS "Fetching nlohmann/json - Done") endfunction() get_nlohmann_json()清掉之前失败留下的缓存,再重新配置
cd librealsense-master rm -rf build/CMakeCache.txt build/CMakeFiles build/external-projects cd build cmake ../ -DBUILD_EXAMPLES=true make sudo make install验证是否安装成功,终端输入
realsense-viewer三、配置ros-realsense
1.在catkin_X/src目录下载
# 下载对应Ubuntu版本/realsense-ros,区分ROS1和ROS2,二选一 # https://github.com/realsenseai/realsense-ros.git # 默认是ROS2 # https://github.com/realsenseai/realsense-ros/tree/ros1-legacy # ROS1 # 编译会报错,配置ddynamic库 # https://github.com/pal-robotics/ddynamic_reconfigure下载后catkin_make编译。
2.运行测试
终端输入:roslaunch realsense2_camera rs_rgbd.launch
3.修改分辨率
在realsense工程代码中搜索rs_rgbd.launch,修改一下内容,必须将两个都改为自己想要的数值,不能有一个值是default(-1)
'depth_width', 'default': '424' 'depth_height', 'default': '240' 'color_width', 'default': '424' 'color_height', 'default': '240' 'depth_fps', 'default': '15.' 'color_fps', 'default': '15.' 'align_depth', 'default': 'true'4.开启相机IMU
修改rs_rgbd.launch文件下的这些参数
<arg name="enable_gyro" default="true"/> <arg name="enable_accel" default="true"/> <arg name="unite_imu_method" default="copy"/>报错1:
jetson@ubuntu:~/catkin_realsense$ roslaunch realsense2_camera rs_rgbd.launch ... logging to /home/jetson/.ros/log/36914c26-3eb2-11f1-9a5a-488f4ce009a2/roslaunch-ubuntu-7575.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. Resource not found: rgbd_launch ROS path [0]=/opt/ros/noetic/share/ros ROS path [1]=/home/jetson/catkin_realsense/src ROS path [2]=/home/jetson/kalibr_workspace/src ROS path [3]=/home/jetson/catkin_pkg/src ROS path [4]=/home/jetson/catkin_ws/src ROS path [5]=/opt/ros/noetic/share The traceback for the exception was written to the log file解决办法:
# XX为你的ros版本,ubuntu18.04=melodic,ubuntu20.04=noetic sudo apt-get install ros-XXX-rgbd-launch四、kalibr相机标定
1.降低相机的输出频率
# rosrun topic_tools throttle messages [相机话题] [自定义改变频率的相机话题名字] 4.0 # 此时要保证相机节点是启动的 rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /dadong/color/img_raw_42.录制相机bag
# rosbag record [相机话题] -O [保存的bag名字] rosbag record /dadong/color/img_raw_4 -O cam_calib.bag- 平移 + 旋转组合运动,避免纯旋转或纯平移。
- 让标定板扫过图像四角及边缘区域(覆盖完整 FOV)。
- 距离适中(通常 0.5~2m,根据焦距调整),保持目标清晰。
- 录制1分钟就可以
3.设置标定板配置文件
保存为.yaml文件
target_type: 'aprilgrid' #gridtype tagCols: 6 #number of apriltags tagRows: 6 #number of apriltags tagSize: 0.025 #size of apriltag, edge to edge [m] tagSpacing: 0.3 #ratio of space between tags to tagSize4.相机标定
rosrun kalibr kalibr_calibrate_cameras --bag cam_calib.bag --topics /dadong/color/img_raw_4 --models pinhole-radtan --target apriltag.yaml --show-extraction注:需注意--bag和--apriltag.yaml路径是否正确
标定完成后终端显示,记过保存在yaml文件内
参考链接
ubuntu20.04+kalibr_相机与imu联合标定
Ubuntu18.04 + ROS melodic 安装使用 RealSenseD435i
Ubuntu 18.04 ———(Intel RealSense D435i)安装相机的驱动librealsense + realsense-ros