Ubuntu 20.04 + ROS Noetic 下,奥比中光Astra相机驱动安装的完整避坑实录

张开发
2026/4/23 0:33:32 15 分钟阅读

分享文章

Ubuntu 20.04 + ROS Noetic 下,奥比中光Astra相机驱动安装的完整避坑实录
Ubuntu 20.04 ROS Noetic 下奥比中光Astra相机驱动安装全攻略第一次在Ubuntu 20.04上安装奥比中光Astra相机的ROS驱动时我本以为按照网上的教程一步步来就能顺利完成。然而现实给了我当头一棒——从依赖缺失到版本冲突从路径错误到编译失败每一步都暗藏玄机。这篇文章将带你完整经历我踩过的每一个坑并分享最终成功的解决方案。1. 环境准备与基础依赖安装在开始之前确保你已经完成了以下基础环境配置Ubuntu 20.04 LTS 系统ROS Noetic 完整安装基本的编译工具链gcc, g, make等1.1 安装libuvc大多数教程都会从libuvc开始这是一个开源的USB视频类库Astra相机依赖它进行底层通信。git clone https://github.com/libuvc/libuvc cd libuvc mkdir build cd build cmake .. make sudo make install这个步骤通常比较顺利但如果遇到问题可能是缺少基础开发库sudo apt-get install build-essential cmake libusb-1.0-0-dev1.2 处理ROS依赖包网上常见的依赖安装命令是sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros但实际执行时你可能会遇到无法定位软件包ros-noetic-libuvc的错误。这是因为Noetic版本的ROS中这个包已经被重命名或不再维护。解决方案跳过这个依赖事实证明Astra相机驱动可以不依赖这些ROS包正常运行。2. 创建工作空间与驱动下载2.1 创建工作空间mkdir -p ~/camera_ws/src cd ~/camera_ws/ catkin_make source devel/setup.bash2.2 获取Astra相机驱动官方驱动仓库位于cd ~/camera_ws/src git clone https://github.com/orbbec/ros_astra_camera如果克隆速度慢可以考虑从国内镜像获取或者直接下载zip包。3. 编译过程中的疑难杂症3.1 glog缺失问题首次编译时最常见的错误是None of the required libglog found解决方案安装Google的glog库git clone https://github.com/google/glog sudo apt-get install autoconf automake libtool cd glog mkdir build cd build cmake .. make -j$(nproc) sudo make install注意如果make过程中出现内存不足去掉-j参数使用单线程编译3.2 CMake版本过低在较新的Ubuntu系统上这个问题较少见但如果你遇到CMake 3.19.2 or higher is required的错误需要升级CMakesudo apt remove cmake wget https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz tar -xzvf cmake-3.22.1.tar.gz cd cmake-3.22.1 ./bootstrap make -j$(nproc) sudo make install验证版本cmake --version3.3 glog版本冲突即使安装了glog仍可能遇到编译错误。这是因为驱动可能需要特定版本的glog。解决方案尝试使用glog 0.5.0版本wget https://github.com/google/glog/archive/refs/tags/v0.5.0.tar.gz tar -xzvf v0.5.0.tar.gz cd glog-0.5.0 mkdir build cd build cmake .. make sudo make install4. 路径配置与最终编译4.1 解决libuvc路径问题编译卡在96%通常是找不到libuvc库的问题。需要手动指定libuvc的路径编辑~/camera_ws/src/ros_astra_camera/CMakeLists.txt在适当位置添加set(libuvc_INCLUDE_DIRS /usr/local/include/libuvc) set(libuvc_LIBRARIES /usr/local/lib/libuvc.so)4.2 完整编译流程cd ~/camera_ws rm -rf build devel # 清除之前的编译结果 catkin_make source devel/setup.bash4.3 设置USB权限roscd astra_camera sudo chmod 777 scripts/create_udev_rules ./scripts/create_udev_rules5. 启动相机与验证5.1 启动相机节点roslaunch astra_camera astra.launch5.2 使用RViz查看图像rosrun rviz rviz在RViz中添加Image显示并选择相应的topic/camera/rgb/image_raw (彩色图像)/camera/depth/image (深度图像)5.3 常见问题排查如果启动失败检查以下方面USB连接是否正常尝试不同USB口查看日志中的具体错误信息确认所有依赖都已正确安装检查~/.bashrc中是否source了ROS和workspace的setup.bash6. 性能优化与高级配置6.1 相机参数调整通过修改launch文件可以调整相机参数param namedepth_registration valuetrue / param namecolor_depth_synchronization valuefalse / param nameauto_exposure valuetrue /6.2 降低CPU占用在launch文件中添加param namedepth_mode value320x240_30 / param namecolor_mode value320x240_30 /6.3 多相机支持如果需要使用多个Astra相机需要为每个相机指定唯一的serial_noparam nameserial_no valueABC123 /7. 开发建议与经验分享在实际项目中使用Astra相机时有几个实用技巧值得分享帧率稳定性在ROS中Astra相机的帧率有时会不稳定。可以通过限制USB带宽使用来改善sudo sh -c echo 1000 /sys/module/usbcore/parameters/usbfs_memory_mb点云生成结合depth_image_proc包可以轻松生成点云roslaunch astra_camera astra_pro.launch rosrun depth_image_proc point_cloud_xyzrgb depth:/camera/depth/image_raw rgb:/camera/rgb/image_rect_color camera_info:/camera/rgb/camera_info _queue_size:10校准建议定期进行相机校准能显著提高深度图像质量。推荐使用camera_calibration包rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:/camera/rgb/image_raw camera:/camera/rgbROS2支持如果你计划迁移到ROS2可以考虑使用astra_camera2包它提供了更好的ROS2支持。

更多文章