目录一、配置kalibr环境1.安装依赖2.下载官方代码并编译3.设置标定板二、配置librelsense环境1.下载并安装依赖2.安装权限脚本3.编译三、配置ros-realsense1.在catkin_X/src目录下载2.运行测试3.修改分辨率4.开启相机IMU报错1解决办法四、kalibr相机标定1.降低相机的输出频率2.录制相机bag3.设置标定板配置文件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_EXAMPLEStrue 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_EXAMPLEStrue make sudo make install验证是否安装成功终端输入realsense-viewer三、配置ros-realsense1.在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.launch3.修改分辨率在realsense工程代码中搜索rs_rgbd.launch修改一下内容必须将两个都改为自己想要的数值不能有一个值是default-1depth_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: true4.开启相机IMU修改rs_rgbd.launch文件下的这些参数arg nameenable_gyro defaulttrue/ arg nameenable_accel defaulttrue/ arg nameunite_imu_method defaultcopy/报错1jetsonubuntu:~/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.04melodicubuntu20.04noetic 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.04kalibr_相机与imu联合标定Ubuntu18.04 ROS melodic 安装使用 RealSenseD435iUbuntu 18.04 ———Intel RealSense D435i安装相机的驱动librealsense realsense-ros