d435i+librealsense+realsense_ros在Ubuntu16.04上的安装

ubuntu16.04下安装librealsense和realsense_ros一次过关

首先感谢这几个网站

  1. 安装教程
  2. 官方

这里主要参照1

# 首先是
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

更新完Ubuntu之后开始下载librealsense

# 下载librealsense 2.48.0, 目前的最新版
git clone https://github.com/IntelRealSense/librealsense.git
#进入目录并安装一些package
cd ~/librealsense
git checkout v2.48.0
sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev 
sudo apt-get install libglfw3-dev
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ 
sudo udevadm control --reload-rules && udevadm trigger
./scripts/patch-realsense-ubuntu-lts.sh

一路下来就好,这里原博主说可能遇到问题,这里遇到问题的参照安装教程,后面直接build

cd ~/librealsense
mkdir build && cd build
cmake ../
cmake ../ -DBUILD_EXAMPLES=true
sudo make uninstall && make clean && make && sudo make install
#这里不出错就编译好了,然后直接
realsense-viewer
#就可以看到结果了hhh

后面有一系列更新的,我这里没有做也没有影响成功安装,后面直接开始介绍realsense_ros的安装

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..
catkin_init_workspace
cd ..
catkin_make clean

这里可能会遇到错误,类似这种

Could not find a package configuration file provided by
"ddynamic_reconfigure" with any of the following names:
# 直接
 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
 sudo apt-key del 421C365BD9FF1F717815A3895523BAEEB01FA116
 sudo apt-get update
 sudo apt-get install ros-kinetic-ddynamic-reconfigure
# 然后再
catkin_make clean
#就可以了
#最后就是
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

就彻底完成了,检测时候

roslaunch realsense2_camera rs_camera.launch

就会出现很多的话题,像这样

 * /camera/realsense2_camera/accel_fps: 250
 * /camera/realsense2_camera/accel_frame_id: camera_accel_frame
 * /camera/realsense2_camera/accel_optical_frame_id: camera_accel_opti...
 * /camera/realsense2_camera/align_depth: False
 * /camera/realsense2_camera/aligned_depth_to_color_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_fisheye1_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_fisheye2_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_fisheye_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_infra1_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/aligned_depth_to_infra2_frame_id: camera_aligned_de...
 * /camera/realsense2_camera/allow_no_texture_points: False
 * /camera/realsense2_camera/base_frame_id: camera_link
 * /camera/realsense2_camera/calib_odom_file: 
 * /camera/realsense2_camera/clip_distance: -2.0
 * /camera/realsense2_camera/color_fps: 30
 * /camera/realsense2_camera/color_frame_id: camera_color_frame
 * /camera/realsense2_camera/color_height: 480
 * /camera/realsense2_camera/color_optical_frame_id: camera_color_opti...
 * /camera/realsense2_camera/color_width: 640
 * /camera/realsense2_camera/confidence_fps: 30
 * /camera/realsense2_camera/confidence_height: 480
 * /camera/realsense2_camera/confidence_width: 640
 * /camera/realsense2_camera/depth_fps: 30
 * /camera/realsense2_camera/depth_frame_id: camera_depth_frame
 * /camera/realsense2_camera/depth_height: 480
 * /camera/realsense2_camera/depth_optical_frame_id: camera_depth_opti...
 * /camera/realsense2_camera/depth_width: 640
 * /camera/realsense2_camera/device_type: 
 * /camera/realsense2_camera/enable_accel: False
 * /camera/realsense2_camera/enable_color: True
 * /camera/realsense2_camera/enable_confidence: True
 * /camera/realsense2_camera/enable_depth: True
 * /camera/realsense2_camera/enable_fisheye1: False
 * /camera/realsense2_camera/enable_fisheye2: False
 * /camera/realsense2_camera/enable_fisheye: False
 * /camera/realsense2_camera/enable_gyro: False
 * /camera/realsense2_camera/enable_infra1: False
 * /camera/realsense2_camera/enable_infra2: False
 * /camera/realsense2_camera/enable_infra: False
 * /camera/realsense2_camera/enable_pointcloud: False
 * /camera/realsense2_camera/enable_pose: False
 * /camera/realsense2_camera/enable_sync: False
 * /camera/realsense2_camera/filters: 
 * /camera/realsense2_camera/fisheye1_frame_id: camera_fisheye1_f...
 * /camera/realsense2_camera/fisheye1_optical_frame_id: camera_fisheye1_o...
 * /camera/realsense2_camera/fisheye2_frame_id: camera_fisheye2_f...
 * /camera/realsense2_camera/fisheye2_optical_frame_id: camera_fisheye2_o...
 * /camera/realsense2_camera/fisheye_fps: 30
 * /camera/realsense2_camera/fisheye_frame_id: camera_fisheye_frame
 * /camera/realsense2_camera/fisheye_height: 480
 * /camera/realsense2_camera/fisheye_optical_frame_id: camera_fisheye_op...
 * /camera/realsense2_camera/fisheye_width: 640
 * /camera/realsense2_camera/gyro_fps: 400
 * /camera/realsense2_camera/gyro_frame_id: camera_gyro_frame
 * /camera/realsense2_camera/gyro_optical_frame_id: camera_gyro_optic...
 * /camera/realsense2_camera/imu_optical_frame_id: camera_imu_optica...
 * /camera/realsense2_camera/infra1_frame_id: camera_infra1_frame
 * /camera/realsense2_camera/infra1_optical_frame_id: camera_infra1_opt...
 * /camera/realsense2_camera/infra2_frame_id: camera_infra2_frame
 * /camera/realsense2_camera/infra2_optical_frame_id: camera_infra2_opt...
 * /camera/realsense2_camera/infra_fps: 30
 * /camera/realsense2_camera/infra_height: 480
 * /camera/realsense2_camera/infra_rgb: False
 * /camera/realsense2_camera/infra_width: 640
 * /camera/realsense2_camera/initial_reset: False
 * /camera/realsense2_camera/json_file_path: 
 * /camera/realsense2_camera/linear_accel_cov: 0.01
 * /camera/realsense2_camera/odom_frame_id: camera_odom_frame
 * /camera/realsense2_camera/pointcloud_texture_index: 0
 * /camera/realsense2_camera/pointcloud_texture_stream: RS2_STREAM_COLOR
 * /camera/realsense2_camera/pose_frame_id: camera_pose_frame
 * /camera/realsense2_camera/pose_optical_frame_id: camera_pose_optic...
 * /camera/realsense2_camera/publish_odom_tf: True
 * /camera/realsense2_camera/publish_tf: True
 * /camera/realsense2_camera/rosbag_filename: 
 * /camera/realsense2_camera/serial_no: 
 * /camera/realsense2_camera/tf_publish_rate: 0.0
 * /camera/realsense2_camera/topic_odom_in: odom_in
 * /camera/realsense2_camera/unite_imu_method: 
 * /camera/realsense2_camera/usb_port_id: 
 * /rosdistro: kinetic
 * /rosversion: 1.12.17

就是安装成功了,如果没有的话应该是librealsense和realsense_ros的版本不匹配,删掉之前的然后按照教程就OK

### Intel RealSense D435i 的使用教程与环境配置 #### 一、Ubuntu 系统下的开发背景 在 Ubuntu 系统上,Intel RealSense D435i 的开发主要依赖于两个核心组件:`librealsense SDK` 和 `realsense-ros` 包。这些工具提供了对硬件的支持以及高级功能接口。 对于 **Ubuntu 16.04** 用户,需按照官方指南完成 librealsense SDK 的源码编译并安装必要的依赖项[^1]。而对于 **Ubuntu 18.04** 用户,则可以参考更详细的多设备支持和 ROS 整合说明[^2]。 --- #### 二、Librealsense SDK 安装流程 以下是 Librealsense SDK 的典型安装过程: 1. 更新系统包管理器索引: ```bash sudo apt update && sudo apt upgrade -y ``` 2. 安装必备的构建工具和库文件: ```bash sudo apt install build-essential git cmake libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev \ libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev python3-pip python3-numpy ``` 3. 下载并克隆 librealsense 源代码仓库: ```bash git clone https://github.com/IntelRealSense/librealsense.git cd librealsense mkdir build && cd build ``` 4. 编译并安装 SDK: ```bash cmake ../ -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release make -j$(nproc) sudo make install ``` 上述命令会将 SDK 及其示例程序部署到系统中。 --- #### 三、ROS 支持与 realsense-ros 安装 为了实现更高层次的功能集成(如 SLAM 或导航),推荐安装 `realsense-ros` 包。具体步骤如下: 1. 创建一个新的 Catkin 工作空间或进入现有工作目录: ```bash mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/ source /opt/ros/<distro>/setup.bash catkin_make source devel/setup.bash ``` 2. 克隆 realsense-ros 存储库至 src 文件夹: ```bash cd ~/catkin_ws/src git clone https://github.com/IntelRealSense/realsense-ros.git ``` 3. 构建项目并与 ROS 进行兼容性测试: ```bash roscore & rosrun realsense2_camera rs_camera.launch ``` 如果一切正常运行,应能看到来自摄像头的数据流显示在终端窗口中。 --- #### 四、常见问题及其解决方案 尽管大部分情况下遵循标准指导即可顺利完成设置,但在实际操作过程中仍可能出现一些挑战。例如,在某些 Linux 发行版上可能会遇到权限不足或者驱动加载失败等问题。针对这些问题,可尝试以下措施[^3]: - 添加当前用户到视频组以获得访问 USB 设备的权利: ```bash sudo usermod -aG video $USER logout; login ``` - 如果发现固件更新提示错误消息,请手动执行升级脚本: ```bash ./scripts/patch-realsense-udev-rules.sh ``` 通过以上调整通常能够有效解决问题。 --- #### Python 示例代码展示如何读取 RGB 数据帧 下面提供了一段简单的 Python 脚本来演示如何利用 Pyrealsense2 库捕获图像数据: ```python import pyrealsense2 as rs import numpy as np import cv2 pipeline = rs.pipeline() config = rs.config() # 启动管道 config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30) profile = pipeline.start(config) try: while True: frames = pipeline.wait_for_frames() # 获取下一帧集 color_frame = frames.get_color_frame() # 提取彩色通道 if not color_frame: continue image = np.asanyarray(color_frame.get_data()) # 将数据转换成 NumPy 数组形式 cv2.imshow('Color Stream', image) # 显示实时画面 key = cv2.waitKey(1) if key & 0xFF == ord('q') or key == 27: # 当按下 'Q' 键退出循环 break finally: pipeline.stop() # 停止所有活动连接 ``` 此片段展示了基本框架结构以便开发者进一步扩展应用逻辑。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值