【亲测有效】在ubuntu20.04LTS上使用python代码调用realsense深度相机(aarc ...

打印 上一主题 下一主题

主题 495|帖子 495|积分 1485

检察主机ip

  1.  hostname -I
复制代码
检察ssh服务是否启动

  1.  sudo ps -e | grep ssh
复制代码
检察系统版本,使用代码

  1.  root@ubuntu:~# lsb_release -a
复制代码
输出示例
  1.  Distributor ID: Ubuntu
  2.  Description:    Ubuntu 22.04.2 LTS
  3.  Release:    22.04
  4.  Codename:   jammy
复制代码
检察系统架构,使用代码

(x86 架构与 ARM 架构的 CPU 架构差别,如果回显为 aarch64表示为 ARM 架构,如果回显为 x86_64 表示为x86架构)
  1.  root@ubuntu:~# uname -a
复制代码
输出示例
  1.  Linux k8s-master 5.15.0-1027-raspi #29-Ubuntu SMP PREEMPT Mon Apr 3 10:12:21 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
复制代码
或则使用如下代码检察系统架构
  1.  root@ubuntu:~# uname -m
复制代码
输出示例
  1.  aarch64
复制代码
Ubuntu 拷贝文件后文件带锁

在 Ubuntu 中,如果你使用 sudo 命令拷贝文件到一个必要 root 权限的目次,这个文件就会被标记为锁定状态(locked),只有root 用户或者具有相应权限的用户才华修改或删除它。如果你想要修改这个文件,可以使用 chown 命令将文件的全部权转移给自己,然后再进行修改。详细步调如下: 1.打开终端,使用以下命令将文件的全部权转移给自己:
  1.  sudo chown your_username:your_username file path
复制代码
此中,"your username"为你的用户名,"file_path"为文件的路径。
参考:Ubuntu 拷贝文件后文件带锁 - CSDN文库
检察python所在的路径

  1.  which python
复制代码
在/usr/bin/目次下通过ls -l检察软链接的环境
系统换源

参考:Ubuntu更换软件源(20.04LTS版本)【ARM架构以及X86架构的Ubuntu】_ubunutu(arm)20.04更换软件源 csdn-CSDN博客
1.1备份原来的源

  1.  sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
复制代码
1.2更换源

清华大学的镜像源地址:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

选择对应的Ubuntu版本复制内里的内容。复制到刚刚的 /etc/apt/sources.list文件中。 注意:Ubuntu必须要对应版本!!!!否则镜像源无效。然后实行(这里以ARM架构为例)
  1.  # 先更新
  2.  sudo apt-get update
  3.  sudo apt-get upgrade
  4.  # 安装nano编辑器
  5.  sudo apt-get install nano
复制代码
打开镜像源文件
  1.  sudo nano /etc/apt/sources.list
复制代码
将下边的清华源复制进去,然后ctrl+o生存,回车,ctrl+X退出编辑。
  1. # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
  2.  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
  3.  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
  4.  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
  5.  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
  6.  deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
  7.  # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
  8.  ​
  9.  deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
  10.  # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
复制代码
1.3更新

  1.  sudo apt-get update
  2.  sudo apt-get upgrade
复制代码
设置D415驱动

2.1下载RealSense SDK

  1.  sudo apt-get install git
  2.  git clone https://github.com/IntelRealSense/librealsense
复制代码
2.2编译

  1. cd librealsense/
  2.  ​
  3. mkdir build && cd build
  4.  ​
  5. sudo apt-get install libxrandr-dev
  6. sudo apt-get install libxinerama-dev
  7. sudo apt-get install libsdl2-dev
  8. sudo apt-get install python3-dev
  9. sudo apt install -y build-essential
  10. sudo apt-get install libssl-dev
  11.  ​
  12.  cmake ../ -DFORCE_RSUSB_BACKEND=true -DBUILD_PYTHON_BINDINGS=true -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true
  13.  ​
  14.  sudo apt-get install libusb-1.0-0-dev
  15.  ​
  16.  sudo make uninstall && make clean && make && sudo make install   #此处编译大约花费时间1.5h
复制代码
2.3设置udev规则

  1.  cd librealsense
  2.  sudo ./scripts/setup_udev_rules.sh
复制代码
2.4测试

在命令行中输入如下指令能看到界面就证明乐成了
  1.  realsense-viewer
复制代码
安装pyrealsense2

pyrealsense2库不实用于arm架构树莓派,所以pip install pyrealsense2无法安装。目前还没有arm架构下的pyralsense2的PyPi包,因此在jetson使用pip安装的话,无法找到满意的版本。在python3下import pyrealsense2表现ImportError: No module named pyrealsense2
参考:【亲测有效】树莓派4B安装realsense(Intel深度摄像头)_树莓派realsense-CSDN博客
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试_no internet connection, disabling import_depth_cam-CSDN博客
  1.  cd ~/librealsense/build
  2.  ​
  3.  # for python3
  4.  cmake .. -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=$(which python3)
  5.  ​
  6.  make -j1
  7.  sudo make install
复制代码
添加python路径
  1.  nano ~/.zshrc
复制代码
复制下面语句到~/.zshrc中
  1.  export PYTHONPATH=$PYTHONPATH:/usr/local/lib
复制代码
然后ctrl+o生存,回车,ctrl+X退出编辑,输入如下指令
  1.  source ~/.zshrc
复制代码
到librealsense/build/release目次下看发现有了一些so、so.2.54 和 so.2.54.2 末端的文件,我们将这些文件全部拷贝至 /usr/lib/python3/dist-packages/ 文件夹下,不是 /usr/lib/python3.7 文件夹下。
  1. librealsense2-gl.so                                 
  2. pyrsutils.cpython-310-aarch64-linux-gnu.so
  3. librealsense2-gl.so.2.54                              
  4. pyrsutils.cpython-310-aarch64-linux-gnu.so.2.54
  5. librealsense2-gl.so.2.54.2                           
  6. pyrsutils.cpython-310-aarch64-linux-gnu.so.2.54.2
  7. librealsense2.so
  8. librealsense2.so.2.54
  9. librealsense2.so.2.54.2
  10. pybackend2.cpython-310-aarch64-linux-gnu.so
  11. pybackend2.cpython-310-aarch64-linux-gnu.so.2
  12. pybackend2.cpython-310-aarch64-linux-gnu.so.2.54.2
  13. pyrealsense2.cpython-310-aarch64-linux-gnu.so
  14. pyrealsense2.cpython-310-aarch64-linux-gnu.so.2.54
  15. pyrealsense2.cpython-310-aarch64-linux-gnu.so.2.54.2
复制代码
python调用realsense深度相机测试代码
  1. import pyrealsense2 as rs
  2.  import numpy as np
  3.  import cv2
  4.  ​
  5.  if __name__ == "__main__":
  6.      # Configure depth and color streams
  7.      pipeline = rs.pipeline()
  8.      config = rs.config()
  9.      config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
  10.      config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
  11.      # Start streaming
  12.      pipeline.start(config)
  13.      try:
  14.          while True:
  15.              # Wait for a coherent pair of frames: depth and color
  16.              frames = pipeline.wait_for_frames()
  17.              depth_frame = frames.get_depth_frame()
  18.              color_frame = frames.get_color_frame()
  19.              if not depth_frame or not color_frame:
  20.                  continue
  21.              # Convert images to numpy arrays
  22.  ​
  23.              depth_image = np.asanyarray(depth_frame.get_data())
  24.  ​
  25.              color_image = np.asanyarray(color_frame.get_data())
  26.  ​
  27.              # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
  28.              depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
  29.              # Stack both images horizontally
  30.              images = np.hstack((color_image, depth_colormap))
  31.              # Show images
  32.              cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
  33.              cv2.imshow('RealSense', images)
  34.              key = cv2.waitKey(1)
  35.              # Press esc or 'q' to close the image window
  36.              if key & 0xFF == ord('q') or key == 27:
  37.                  cv2.destroyAllWindows()
  38.                  break
  39.      finally:
  40.          # Stop streaming
  41.          pipeline.stop()
复制代码
当可以大概出现画面即说明安装乐成
报错1

  1. Pyrealsense2-D435i:frames = pipeline.wait_for_frames() RuntimeError: Frame didn't arrival within 5000 #12462
复制代码
pyrealsense2库不实用于arm架构树莓派,所以pip install pyrealsense2无法安装。
参考:Pyrealsense2-D435i:frames = pipeline.wait_for_frames() RuntimeError: Frame didn't arrive within 5000 · Issue #12462 · IntelRealSense/librealsense (github.com)
报错2

  1.  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
复制代码
解决方案
  1.  sudo apt-get install libssl-dev
复制代码
报错3

  1. GnuTLS recv error (-110): The TLS connection was non-properly terminated.
复制代码
参考:解决 git clone 时碰到的一些问题_gnutls recv error (-110): the tls connection was n-CSDN博客
报错4

  1. CMake Error at CMakeLists.txt:5 (project):
  2.    No CMAKE_CXX_COMPILER could be found.
  3.  ​
  4.    Tell CMake where to find the compiler by setting either the environment
  5.    variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  6.    to the compiler, or to the compiler name if it is in the PATH.
复制代码
解决方案
  1.  sudo apt install -y build-essential
复制代码
参考:解决 No CMAKE_CXX_COMPILER could be found问题_cmake error at cmakelists.txt:2 (project): no cmak-CSDN博客
报错5

  1.  /home/ubuntu/librealsense/build/third-party/pybind11/include/pybind11/detail/common.h:266:10: fatal error: Python.h: No such file or directory
  2.    266 | #include <Python.h>
复制代码
解决方案
  1. sudo apt-get install python3-dev
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表