news 2026/4/24 3:13:18

kalibr-Realsense D435i相机与imu联合标定

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kalibr-Realsense D435i相机与imu联合标定

目录

一、配置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-dev
sudo apt-get install -y python3-dev python3-pip python3-scipy python3-matplotlib ipython3 python3-wxgtk4.0 python3-tk python3-igraph
pip install pyx sudo apt install texlive texlive-latex-extra texlive-fonts-recommended

2.下载官方代码并编译

mkdir kalibr_workspace cd kalibr_workspace mkdir src cd src git clone https://github.com/ethz-asl/kalibr.git catkin_make source devel/setup.bash

3.设置标定板

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-utils

2.安装权限脚本

sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && udevadm trigger

3.编译

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_4

2.录制相机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 tagSize

4.相机标定

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 3:11:41

两种终端数据清除策略的技术笔记:企业定向清除 vs 完全擦除

在终端生命周期管理中&#xff0c;设备退役或转交时的数据清理是常见需求。不同场景下对“清除范围”的要求差异很大&#xff1a;BYOD场景需保留员工个人数据&#xff0c;而公司资产转交则要求彻底归零。本文记录两种标准化的清除策略及其技术原理。1. 企业定向清除&#xff08…

作者头像 李华
网站建设 2026/4/24 3:07:21

新型网络钓鱼利用 Linux 虚拟机入侵 Windows 系统

攻击概述 一种名为 "CRON#TRAP" 的新型网络钓鱼活动正在利用 Linux 虚拟机 感染 Windows 系统。该虚拟机内置后门&#xff0c;可秘密访问公司网络并建立持久化控制通道。 &#x1f4a1; 技术背景&#xff1a;使用虚拟机进行攻击并非新鲜事&#xff0c;勒索软件团伙和…

作者头像 李华
网站建设 2026/4/24 3:06:39

设计-插秧机系统设计

插秧机系统设计是农业机械化进程中的关键环节&#xff0c;其核心作用在于通过科学配置各功能模块&#xff0c;实现秧苗高效、精准的移栽作业。传统人工插秧效率低、劳动强度大&#xff0c;且受天气、人力等因素影响显著。插秧机系统通过机械结构与动力传输的协同设计&#xff0…

作者头像 李华
网站建设 2026/4/24 3:06:21

ContextMenuManager:轻松掌控Windows右键菜单,打造个性化操作体验

ContextMenuManager&#xff1a;轻松掌控Windows右键菜单&#xff0c;打造个性化操作体验 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经因为Windows…

作者头像 李华