奥比中光 jetson nano 环境配置 ubuntu18.04
miniforge3 安装
这个是为了创建conda环境,也可以安装minicond3
chmod +x Miniforge3-25.3.0-3-Linux-aarch64.sh
./Miniforge3-25.3.0-3-Linux-aarch64.sh
source ~/.bashrc
conda --version
创建python3.8环境,为了运行yolov11
conda create -n yolo python=3.8
pip install torch-xxx.whl # 安装已经下载的torch库 匹配python3.8 调用gpu
pip install torchvision-xxx.whl
下载并配置Orbbec SDK(可能不是必须的,因为后面构建了pyorbbecsdk)
驱动安装
奥比中光相机,可以Linux平台下设备作为普通CMOS相机加载,目前流行Linux平台都已经内置相应驱动,不需要额外安装驱动,只需要安装一个依赖软件freeglut3即可。
sudo apt install freeglut3
https://vcp.developer.orbbec.com.cn/resourceCenter/
https://orbbec.github.io/OrbbecSDK/
git clone https://github.com/orbbec/OrbbecSDK.git
环境设置:Linux
如果您通过 Debian 软件包安装,则可以跳过 udev 规则文件的安装。如果不是,请使用以下命令安装:(这个好像可以跳过)
cd OrbbecSDK/misc/scripts
sudo chmod +x ./install_udev_rules.sh
sudo ./install_udev_rules.sh
sudo udevadm control --reload && sudo udevadm trigger
Build
cd OrbbecSDK && mkdir build && cd build && cmake .. && cmake --build . --config Release
运行示例
cd OrbbecSDK/build/bin # build output dir
./OBMultiStream # OBMultiStream.exe on Windows
这个好像不是必须的,又好像是必须的,我看别人都配置了这个
总之运行到这里,就会能够打开奥比中光相机,看到图像
参考:
Linux环境下奥比中光摄像头开发环境搭建(基于Orbbec SDK)
Ubuntu 20.04下搭建奥比中光-Astra(详细教程)
pyorbbecsdk 安装(必须的必)
https://github.com/orbbec/pyorbbecsdk
失败 直接安装release编译好的版本(跳过)
https://github.com/orbbec/pyorbbecsdk/releases/tag/v2.0.13
pip install pyorbbecsdk-2.0.13-cp38-cp38-linux_aarch64.whl
报错
raceback(most recent call last):
File"3实时调用+处理.py",line 8,in
from pyorbbecsdk import *ImportError: /lib/arch64:linux-gnu/libc.so.6: version `GLIBc 2.32’not found (reguired by /home/dlinano/miniforge3/envs/yolo/lib/python3.8/site-packages/pyorbbecsdk.cpython-38-aarch64-linux-gnu.so)
这个错误的核心原因是:你当前使用的 pyorbbecsdk 库依赖 GLIBC 2.32 版本,但系统中安装的 glibc 版本低于这个要求(从之前的信息可知是 2.27),导致 Python 无法正常导入该模块。
ldd --version
可以得知jetson ubuntu18.04 的GLIBC只有2.27的版本
可以升级到GLIBC 2.32 版本,但是有一定风险
cmake重新编译 pyorbbecsdk (必须的必)
cmake:3.15.0 及以上版本
cmake --version
重装升级cmake
https://github.com/Kitware/CMake/releases?page=15
下载到本地
chmod +x cmake-3.23.0-linux-x86_64.sh
sudo ./cmake-3.23.0-linux-x86_64.sh
添加环境变量:把新 CMake 的 bin 路径,追加到系统 PATH 里,让终端能找到新版本。
vim ~/.bashrc
export PATH=/home/dlinano/下载/cmake-3.20.0-linux-aarch64/bin:$PATH
保存后执行 source ~/.bashrc 使配置生效。
source ~/.bashrc
查看cmake版本
cmake --version
可以看到cmake已经是3.20.0的版本了
编译并构建pyorbbecsdk
git clone https://github.com/orbbec/pyorbbecsdk.git
- 安装依赖
首先确保系统已安装必要的编译工具和依赖:
# Ubuntu/Debian 系统
sudo apt update
sudo apt install -y git cmake build-essential python3 python3-pip python3-dev
pip3 install setuptools wheel
# 可能还需要安装 OpenCV 等依赖(根据项目需求)
sudo apt install -y libopencv-dev python3-opencv
- 克隆仓库并进入目录
git clone https://github.com/orbbec/pyorbbecsdk.git
cd pyorbbecsdk
- 编译构建 Python 库
通常这类项目会使用 cmake 或 setup.py 进行构建,常见流程如下:
使用 cmake 构建(推荐,符合 C++ 扩展库的常规做法)
pip install pybind11
cmake .. -DPYTHON_EXECUTABLE=$(which python) -Dpybind11_DIR=/path/to/pybind11/share/cmake/pybind11
# 创建构建目录
mkdir build && cd build
# 配置 cmake(指定 Python 路径,确保使用正确的 Python 版本)
cmake .. -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$(which python3)
# 编译(-j 后面的数字为并行编译的线程数,可根据 CPU 核心数调整)
make -j4
# 安装(将生成的库安装到 Python 的 site-packages 目录)
sudo make install
rm -rf build && mkdir build && cd build
# 重新执行正确 cmake 命令
cmake .. -DPYTHON_EXECUTABLE=$(which python) -Dpybind11_DIR=/正确路径/pybind11/share/cmake/pybind11
make -j4
sudo make install
添加库到 Python 环境:(可以做也可以不做)
- 临时生效
import sys
sys.path.append("/home/dlinano/project/pyorbbecsdk/install/lib") # 替换为实际路径
import pyorbbecsdk
- 永久生效
vim ~/.bashrc
export PYTHONPATH=$PYTHONPATH:/home/dlinano/project/pyorbbecsdk/install/lib
source ~/.bashrc
解决scikit_learn.libs/libgomp-d22c30c5.so.1.0.0:cannot allocate memory in static TLS block问题
经过网络查询,这是libgomp在arm平台上的一个bug。libgomp gets the statically allocated TLS space that it needs, before the optimization of handing out that space to other libraries kicks in .
即:libgomp-d22c30c5.so.1.0.0运行时占用了TLS部分内存.
glibc版本2.17不变,显示声明环境变量LD_PRELOAD如下:
终端临时声明这个环境变量,注意是在终端里声明哦,不是写在py代码里
export LD_PRELOAD=$LD_PRELOAD:/home/dlinano/miniforge3/envs/yolo/lib/python3.8/site-packages/scikit_learn.libs/libgomp-d22c30c5.so.1.0.0