在Ubuntu 18.04上高效搭建D435i与Kalibr标定环境的完整指南对于使用ROS Melodic和Ubuntu 18.04的开发者来说配置D435i深度相机与Kalibr标定工具的环境常常会遇到各种依赖冲突和编译问题。本文将提供一套经过验证的完整解决方案帮助你在不降级系统的前提下顺利完成环境搭建。1. 系统准备与基础环境配置在开始之前请确保你的Ubuntu 18.04系统已经安装了ROS Melodic桌面完整版。如果尚未安装可以通过以下命令快速完成sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install ros-melodic-desktop-full安装完成后别忘了初始化rosdep并设置环境变量sudo rosdep init rosdep update echo source /opt/ros/melodic/setup.bash ~/.bashrc source ~/.bashrc2. D435i驱动与ROS包的安装Intel RealSense D435i的驱动安装需要特别注意内核模块的兼容性问题。以下是经过优化的安装步骤# 安装依赖项 sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev # 获取源码 git clone https://github.com/IntelRealSense/librealsense.git cd librealsense # 设置udev规则 ./scripts/setup_udev_rules.sh # 应用内核补丁这一步可能需要较长时间 ./scripts/patch-realsense-ubuntu-lts.sh # 编译安装 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease make -j$(nproc) sudo make install安装完成后可以通过运行realsense-viewer来验证驱动是否正常工作。接下来安装ROS包mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/IntelRealSense/realsense-ros.git cd .. catkin_make安装完成后建议修改启动文件以启用IMU数据gedit ~/catkin_ws/src/realsense-ros/realsense2_camera/launch/rs_camera.launch将以下参数设置为truearg nameenable_gyro defaulttrue/ arg nameenable_accel defaulttrue/3. Kalibr工具链的安装与问题解决Kalibr的安装是整个过程最具挑战性的部分特别是在Ubuntu 18.04上。以下是经过优化的安装步骤3.1 安装系统依赖sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev doxygen libopencv-dev ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-cmake-modules software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev python-pyx3.2 解决Python-igraph安装问题sudo apt-get install -y libigraph0-dev sudo pip install python-igraph0.7.0 # 必须使用这个旧版本3.3 创建工作空间并获取源码mkdir -p ~/kalibr_workspace/src cd ~/kalibr_workspace source /opt/ros/melodic/setup.bash catkin init catkin config --extend /opt/ros/melodic catkin config --merge-devel catkin config --cmake-args -DCMAKE_BUILD_TYPERelease cd ~/kalibr_workspace/src git clone https://github.com/ethz-asl/Kalibr.git3.4 解决SuiteSparse下载失败问题这是Ubuntu 18.04上最常见的问题之一。需要修改Kalibr中的CMakeLists文件gedit ~/kalibr_workspace/src/Kalibr/suitesparse/CMakeLists.txt找到ExternalProject_Add部分将DOWNLOAD_COMMAND修改为DOWNLOAD_COMMAND rm -f SuiteSparse-${VERSION}.tar.gz wget -O SuiteSparse-${VERSION}.tar.gz https://github.com/jluttine/suitesparse/archive/v${VERSION}.tar.gz同时修改PATCH_COMMAND为PATCH_COMMAND tar -xzf ../SuiteSparse-${VERSION}.tar.gz mv suitesparse-${VERSION} ./SuiteSparse rm -rf ../suitesparse_src-build/SuiteSparse sed -i.bu s/\\/usr\\/local\\/lib/..\\/lib/g SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk sed -i.bu s/\\/usr\\/local\\/include/..\\/include/g SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk mv SuiteSparse ../suitesparse_src-build/3.5 编译Kalibrcd ~/kalibr_workspace catkin_make -DCMAKE_BUILD_TYPERelease编译过程可能需要较长时间请耐心等待。完成后添加环境变量echo source ~/kalibr_workspace/devel/setup.bash ~/.bashrc source ~/.bashrc4. 标定板生成与验证Kalibr支持两种标定板类型棋盘格(checkerboard)和AprilTag。以下是生成标准棋盘格标定板的命令kalibr_create_target_pdf --type checkerboard --nx 6 --ny 8 --csx 0.05 --csy 0.05参数说明--nx和--ny棋盘格内部角点数量--csx和--csy每个棋盘格方块的物理尺寸米生成的PDF文件可以直接打印使用。建议使用高质量的哑光纸张打印并确保标定板表面平整。5. 常见问题与解决方案在实际安装过程中可能会遇到以下问题5.1 Python版本冲突Kalibr主要依赖Python 2.7但Ubuntu 18.04默认安装了Python 3。如果遇到Python相关错误可以尝试sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 sudo update-alternatives --config python5.2 ROS包编译错误如果在编译realsense-ros时遇到错误可以尝试cd ~/catkin_ws catkin_make clean catkin_make -DCATKIN_ENABLE_TESTINGFalse -DCMAKE_BUILD_TYPERelease5.3 IMU数据不同步D435i的IMU和图像数据可能存在时间戳不同步问题。可以在启动文件中设置arg nameenable_sync defaulttrue/ arg nameunite_imu_method defaultlinear_interpolation/6. 环境验证与测试完成所有安装后建议按以下步骤验证环境启动D435i相机roslaunch realsense2_camera rs_camera.launch检查话题列表rostopic list应该能看到/camera/imu、/camera/color/image_raw等话题。使用rviz可视化数据rosrun rviz rviz添加Image显示/camera/color/image_raw添加IMU显示/camera/imu。测试Kalibr是否正常工作kalibr_calibrate_imu_camera --help应该能看到帮助信息输出。
避坑指南:在Ubuntu 18.04上搞定D435i+Kalibr环境,实测踩坑与解决方案
在Ubuntu 18.04上高效搭建D435i与Kalibr标定环境的完整指南对于使用ROS Melodic和Ubuntu 18.04的开发者来说配置D435i深度相机与Kalibr标定工具的环境常常会遇到各种依赖冲突和编译问题。本文将提供一套经过验证的完整解决方案帮助你在不降级系统的前提下顺利完成环境搭建。1. 系统准备与基础环境配置在开始之前请确保你的Ubuntu 18.04系统已经安装了ROS Melodic桌面完整版。如果尚未安装可以通过以下命令快速完成sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install ros-melodic-desktop-full安装完成后别忘了初始化rosdep并设置环境变量sudo rosdep init rosdep update echo source /opt/ros/melodic/setup.bash ~/.bashrc source ~/.bashrc2. D435i驱动与ROS包的安装Intel RealSense D435i的驱动安装需要特别注意内核模块的兼容性问题。以下是经过优化的安装步骤# 安装依赖项 sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev # 获取源码 git clone https://github.com/IntelRealSense/librealsense.git cd librealsense # 设置udev规则 ./scripts/setup_udev_rules.sh # 应用内核补丁这一步可能需要较长时间 ./scripts/patch-realsense-ubuntu-lts.sh # 编译安装 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease make -j$(nproc) sudo make install安装完成后可以通过运行realsense-viewer来验证驱动是否正常工作。接下来安装ROS包mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/IntelRealSense/realsense-ros.git cd .. catkin_make安装完成后建议修改启动文件以启用IMU数据gedit ~/catkin_ws/src/realsense-ros/realsense2_camera/launch/rs_camera.launch将以下参数设置为truearg nameenable_gyro defaulttrue/ arg nameenable_accel defaulttrue/3. Kalibr工具链的安装与问题解决Kalibr的安装是整个过程最具挑战性的部分特别是在Ubuntu 18.04上。以下是经过优化的安装步骤3.1 安装系统依赖sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev doxygen libopencv-dev ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-cmake-modules software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev python-pyx3.2 解决Python-igraph安装问题sudo apt-get install -y libigraph0-dev sudo pip install python-igraph0.7.0 # 必须使用这个旧版本3.3 创建工作空间并获取源码mkdir -p ~/kalibr_workspace/src cd ~/kalibr_workspace source /opt/ros/melodic/setup.bash catkin init catkin config --extend /opt/ros/melodic catkin config --merge-devel catkin config --cmake-args -DCMAKE_BUILD_TYPERelease cd ~/kalibr_workspace/src git clone https://github.com/ethz-asl/Kalibr.git3.4 解决SuiteSparse下载失败问题这是Ubuntu 18.04上最常见的问题之一。需要修改Kalibr中的CMakeLists文件gedit ~/kalibr_workspace/src/Kalibr/suitesparse/CMakeLists.txt找到ExternalProject_Add部分将DOWNLOAD_COMMAND修改为DOWNLOAD_COMMAND rm -f SuiteSparse-${VERSION}.tar.gz wget -O SuiteSparse-${VERSION}.tar.gz https://github.com/jluttine/suitesparse/archive/v${VERSION}.tar.gz同时修改PATCH_COMMAND为PATCH_COMMAND tar -xzf ../SuiteSparse-${VERSION}.tar.gz mv suitesparse-${VERSION} ./SuiteSparse rm -rf ../suitesparse_src-build/SuiteSparse sed -i.bu s/\\/usr\\/local\\/lib/..\\/lib/g SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk sed -i.bu s/\\/usr\\/local\\/include/..\\/include/g SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk mv SuiteSparse ../suitesparse_src-build/3.5 编译Kalibrcd ~/kalibr_workspace catkin_make -DCMAKE_BUILD_TYPERelease编译过程可能需要较长时间请耐心等待。完成后添加环境变量echo source ~/kalibr_workspace/devel/setup.bash ~/.bashrc source ~/.bashrc4. 标定板生成与验证Kalibr支持两种标定板类型棋盘格(checkerboard)和AprilTag。以下是生成标准棋盘格标定板的命令kalibr_create_target_pdf --type checkerboard --nx 6 --ny 8 --csx 0.05 --csy 0.05参数说明--nx和--ny棋盘格内部角点数量--csx和--csy每个棋盘格方块的物理尺寸米生成的PDF文件可以直接打印使用。建议使用高质量的哑光纸张打印并确保标定板表面平整。5. 常见问题与解决方案在实际安装过程中可能会遇到以下问题5.1 Python版本冲突Kalibr主要依赖Python 2.7但Ubuntu 18.04默认安装了Python 3。如果遇到Python相关错误可以尝试sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 sudo update-alternatives --config python5.2 ROS包编译错误如果在编译realsense-ros时遇到错误可以尝试cd ~/catkin_ws catkin_make clean catkin_make -DCATKIN_ENABLE_TESTINGFalse -DCMAKE_BUILD_TYPERelease5.3 IMU数据不同步D435i的IMU和图像数据可能存在时间戳不同步问题。可以在启动文件中设置arg nameenable_sync defaulttrue/ arg nameunite_imu_method defaultlinear_interpolation/6. 环境验证与测试完成所有安装后建议按以下步骤验证环境启动D435i相机roslaunch realsense2_camera rs_camera.launch检查话题列表rostopic list应该能看到/camera/imu、/camera/color/image_raw等话题。使用rviz可视化数据rosrun rviz rviz添加Image显示/camera/color/image_raw添加IMU显示/camera/imu。测试Kalibr是否正常工作kalibr_calibrate_imu_camera --help应该能看到帮助信息输出。