Nvidia Jetson Orign NX(cuda12, arrch64)安装D435和D435i摄像头 pyrealsense2库
执行完这一步之后, 再测试一遍, 我已经可以正常在python代码中导入 pyrealsense2库, python能正常调用运行.python代码运行过程中出现缺什么库就安装什么库, arrch64上安装库的方式跟x86电脑环境的安装方式是差不多的.
一. 我的Nvidia jetson orign nx(arrch64)环境:


编译过程以及执行的指令参考下面这篇文章:
NVIDIA Jetson Xavier NX 安yolo v5 +D435i摄像头 pyrealsense2 亲测好用注意:上面的文章需要修改cmake指令和make指令,并且如果make失败,就不执行make install了,直接往下面看编译错误的情况,一步步解决:
cd librealsense //解压后进入librealsense
./scripts/setup_udev_rules.sh //执行许可证脚本
mkdir build //创建build目录
// 下面的记得修改为自己的路径-DPYTHON_EXECUTABLE、-DPYTHON_INCLUDE_DIR、-DPYTHON_LIBRARY
cmake ../ \
-DFORCE_RSUSB_BACKEND=ON \
-DBUILD_PYTHON_BINDINGS:bool=true \
-DPYTHON_EXECUTABLE=/home/nvidia/miniforge3/envs/robot_env_py310/bin/python3 \
-DPYTHON_INCLUDE_DIR=/home/nvidia/miniforge3/envs/robot_env_py310/include/python3.10 \
-DPYTHON_LIBRARY=/home/nvidia/miniforge3/envs/robot_env_py310/lib/libpython3.10.so \
-DCMAKE_BUILD_TYPE=release \
-DBUILD_EXAMPLES=true \
-DBUILD_GRAPHICAL_EXAMPLES=true \
-DBUILD_WITH_CUDA:bool=true
make -j$(nproc) #使用与当前 CPU 核心数相同的并行任务数来运行 make, 这样编译更快
make install // 这一步是make执行成功后的执行的,但如果make没有完全成功,
//则不执行make install,需要往下看下面4种错误进行解决。
二. 执行make 编译pyrealsense2库出错:
错误1:
make[5]: *** No rule to make target ‘/home/nvidia/Music/software/librealsense-2.57.md/build/libcurl/src/libcurl-build/docs/libcurl/libcurl-symbols.md’, needed by ‘docs/libcurl/curl_easy_cleanup.3’. Stop.
错误1 解决办法:
cd /home/nvidia/Music/software/librealsense-2.57.3/build
make -j$(nproc) BUILD_DOCS=off
错误2:
make[5]: *** No rule to make target ‘/home/nvidia/Music/software/librealsense-2.57.md/build/libcurl/src/libcurl-build/docs/libcurl/libcurl-symbols.md’, needed by ‘docs/libcurl/curl_easy_cleanup.3’. Stop.
make[4]: *** [CMakeFiles/Makefile2:231: docs/libcurl/CMakeFiles/curl-man.dir/all] Error 2
make[3]: *** [Makefile:136: all] Error 2
make[2]: *** [CMakeFiles/libcurl.dir/build.make:87: libcurl/src/libcurl-stamp/libcurl-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:949: CMakeFiles/libcurl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
[ 1%] Linking CXX static library …/…/release/librsutils.a
[ 1%] Built target rsutils
make: *** [Makefile:136: all] Error 2
错误2 解决办法:
# 创建缺失的目录和文件
mkdir -p /home/nvidia/Music/software/librealsense-2.57.3/build/libcurl/src/libcurl-build/docs/libcurl/
touch /home/nvidia/Music/software/librealsense-2.57.3/build/libcurl/src/libcurl-build/docs/libcurl/libcurl-symbols.md
# 继续编译
cd /home/nvidia/Music/software/librealsense-2.57.3/build
make -j$(nproc)
错误3:
/home/nvidia/Music/software/librealsense-2.57.3/src/sync.cpp: In function ‘std::pair<double, double> librealsense::extract_timestamps(librealsense::frame_holder&, librealsense::frame_holder&)’:
/home/nvidia/Music/software/librealsense-2.57.3/src/sync.cpp:547:84: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1
547 | std::pair<double, double> extract_timestamps(frame_holder & a, frame_holder & b)
| ^
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/frame.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/points.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/labeled-points.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/to-string.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/eth-config-device.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/platform/platform-utils.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/platform/uvc-option.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/auto-calibrated-proxy.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/src/synthetic-options-watcher.cpp.o
[ 1%] Building CXX object CMakeFiles/realsense2.dir/third-party/easyloggingpp/src/easylogging++.cc.o
[ 1%] Linking CXX shared library release/librealsense2.so
[ 1%] Built target realsense2
make: *** [Makefile:136: all] Error 2
错误3 解决办法:
cd /home/nvidia/Music/software/librealsense-2.57.3/build
# 使用 -k 参数继续构建其他目标
make -k -j$(nproc)
# 然后检查 Python 绑定是否构建成功
ls -la wrappers/python/pyrealsense2.*.so
错误4:
[ 1%] Linking CXX executable …/…/release/rs-align-gl
[ 1%] Built target rs-align-gl
[ 1%] Linking CXX executable …/…/release/rs-rosbag-inspector
[ 1%] Built target rs-rosbag-inspector
make[1]: Target ‘all’ not remade because of errors.
make: *** [Makefile:136: all] Error 2
make: Target ‘default_target’ not remade because of errors.
错误5:
[ 99%] Building C object lib/CMakeFiles/libcurl_static.dir/vssh/wolfssh.c.o
[100%] Linking C static library libcurl.a
[100%] Built target libcurl_static
make[3]: *** [Makefile:136: all] Error 2
make[2]: *** [CMakeFiles/libcurl.dir/build.make:87: libcurl/src/libcurl-stamp/libcurl-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:949: CMakeFiles/libcurl.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
错误4 和 错误5 解决办法:
第一步:先检查 Python 绑定是否已经构建成功
cd /home/nvidia/Music/software/librealsense-2.57.3/build
# 检查 Python 绑定是否已经构建
find . -name "pyrealsense2*" -type f
# 检查主要库是否构建成功
ls -la release/librealsense2.so*
# 检查 wrappers/python 目录
ls -la wrappers/python/
下面是我打印的信息, 表示已经与python绑定构建成功:
(robot_env_py310) nvidia@scs-orin-nano:~/Music/software/librealsense-2.57.3/build$ find . -name “pyrealsense2*” -type f
./release/pyrealsense2.cpython-38-aarch64-linux-gnu.so.2.57.3
./wrappers/python/pyrealsense2ConfigVersion.cmake
./wrappers/python/pyrealsense2Config.cmake
./wrappers/python/CMakeFiles/pyrealsense2.dir/pyrealsense2.cpp.o
./wrappers/python/CMakeFiles/pyrealsense2.dir/pyrealsense2.cpp.o.d
./wrappers/python/CMakeFiles/Export/4a542930803c1da734b2c036b249b80b/pyrealsense2Targets.cmake
./wrappers/python/CMakeFiles/Export/4a542930803c1da734b2c036b249b80b/pyrealsense2Targets-release.cmake
(robot_env_py310) nvidia@scs-orin-nano:~/Music/software/librealsense-2.57.3/build$ ls -la release/librealsense2.so*
lrwxrwxrwx 1 nvidia nvidia 21 Oct 16 09:17 release/librealsense2.so -> librealsense2.so.2.57
lrwxrwxrwx 1 nvidia nvidia 23 Oct 16 09:17 release/librealsense2.so.2.57 -> librealsense2.so.2.57.3
-rwxrwxr-x 1 nvidia nvidia 15210472 Oct 16 09:17 release/librealsense2.so.2.57.3
(robot_env_py310) nvidia@scs-orin-nano:~/Music/software/librealsense-2.57.3/build$ ls -la wrappers/python/
total 56
drwxrwxr-x 3 nvidia nvidia 4096 Oct 15 19:04 .
drwxrwxr-x 4 nvidia nvidia 4096 Oct 15 19:04 …
drwxrwxr-x 4 nvidia nvidia 4096 Oct 15 19:04 CMakeFiles
-rw-rw-r-- 1 nvidia nvidia 27418 Oct 15 19:04 Makefile
-rw-rw-r-- 1 nvidia nvidia 7384 Oct 15 19:04 cmake_install.cmake
-rw-rw-r-- 1 nvidia nvidia 1221 Oct 15 19:04 pyrealsense2Config.cmake
-rw-r–r-- 1 nvidia nvidia 1862 Oct 15 19:04 pyrealsense2ConfigVersion.cmake
若第一步成功, 执行下面这一步: 测试安装是否成功
# 激活环境
source /home/nvidia/miniforge3/envs/robot_env_py310/bin/activate
# 测试 Python 绑定
python -c "import pyrealsense2 as rs; print('pyrealsense2 imported successfully'); print(f'Version: {rs.__version__}')"
# 测试主要库
ldconfig -p | grep realsense
如果上面一步成功, 那么恭喜, 可以使用; 如果不成功, 需要执行最后一步:手动进行安装相应库:
cd /home/nvidia/Music/software/librealsense-2.57.3/build
# 安装主要库
sudo cp release/librealsense2.so* /usr/local/lib/
sudo ldconfig
# 安装 Python 绑定到当前环境
cp release/pyrealsense2.cpython-310-aarch64-linux-gnu.so.2.57.3 /home/nvidia/miniforge3/envs/robot_env_py310/lib/python3.10/site-packages/pyrealsense2.cpython-310-aarch64-linux-gnu.so
# 或者创建符号链接
cd /home/nvidia/miniforge3/envs/robot_env_py310/lib/python3.8/site-packages/
ln -sf /home/nvidia/Music/software/librealsense-2.57.3/build/release/pyrealsense2.cpython-38-aarch64-linux-gnu.so.2.57.3 pyrealsense2.cpython-38-aarch64-linux-gnu.so
三. 编译没有完全正确, 但能正常运行.
执行完这一步之后, 再测试一遍, 我已经可以正常在python代码中导入 pyrealsense2库, python能正常调用运行.备注说明: 我最终的make编译是没有完全成功的, 只编译到1%, 但 pyrealsense2库的一些功能能正常使用, python也能正常调用, 并正常显示3D图像.
尝试过用2个jetson板子安装pyrealsense2库:第1个板子安装pyrealsense2库,make执行到将近100%,按照上面步骤执行,python依旧能使用pyrealsense2库:
第2个板子安装pyrealsense2库,make只执行到1%,按照上面步骤执行,python依旧能使用pyrealsense2库:
python代码运行过程中出现缺什么库就安装什么库, arrch64上安装库的方式跟x86电脑环境的安装方式是差不多的.
# jetson的arrch64上安装opencv-python
pip3 install opencv-python==4.10.0.84 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install opencv-contrib-python==4.10.0.84 -i https://pypi.tuna.tsinghua.edu.cn/simple
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐

所有评论(0)