树莓派安装 Intel RealSense Viewer 教程:解决编译错误
2024-12-19 12:08:21
树莓派上安装 Intel RealSense Viewer 的挑战与应对
在树莓派上部署 Intel RealSense 深度摄像头,一个常见的障碍出现在 Intel RealSense Viewer 的安装阶段。这个问题特别容易发生在构建用于 RealSense SDK(即 librealsense)的 Python 绑定时。
问题:构建 Python 绑定失败
在编译过程中运行 python setup.py build --cpp_implementation
命令,构建 librealsense 的 Python 绑定。这时,开发者可能遇到构建错误。该错误可能伴随大量的日志输出。深层原因在于 C++ 代码使用了不完整的类型 PyFrameObject
和过时的函数 PyEval_CallObjectWithKeywords
。
深入探究根本原因,可以发现主要原因集中于版本不兼容性问题:
- Python 版本: RealSense SDK 中的
pybind11
版本可能与树莓派系统中已安装的 Python 版本不匹配。PyFrameObject
类型的定义在 Python 3.9 中发生了变化。如果代码是针对 Python 3.8 或更早版本编写的,这种变化可能会导致编译失败。 pybind11
版本: RealSense SDK 可能需要特定版本的pybind11
。而系统中安装的版本可能不符合要求,从而导致上述错误。
解决方法:针对根源采取的行动
有多种方法来应对此挑战,下面列举了两个可以优先尝试的方法。
方案一:使用预构建的 debian 软件包
这是最方便的方法。安装预构建的软件包,不必手动编译代码。该方法规避了所有编译环节的问题。这依赖于是否存在适用于 Raspberry Pi OS 架构和 librealsense 版本的可用预构建软件包。
实施步骤:
-
添加仓库: 首先,将 Intel 的 RealSense 仓库添加到系统中。可以使用以下命令进行配置:
echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo buster main' | sudo tee /etc/apt/sources.list.d/realsense-public.list
添加成功后,用以下命令进行公钥设置:
sudo apt-key adv --keyserver keys.gnupg.net --recv-key 6F3EFCDE
-
更新列表: 执行以下命令以刷新软件包列表:
sudo apt update
-
安装 librealsense 和相关工具: 用以下命令,选择合适的软件包进行安装:
sudo apt-get install librealsense2-dkms sudo apt-get install librealsense2-utils sudo apt-get install librealsense2-dev
其中
librealsense2-utils
包含了 RealSense Viewer。librealsense2-dev
包含了开发者需要使用的库和头文件。librealsense2-dkms
可以保持 librealsense 在内核版本升级时保持正常运作。
安装librealsense2-dkms
和librealsense2-utils
足以获得一个正常的realsense运行环境,如果要进行开发,需要再安装librealsense2-dev
。
安装时,要仔细选择需要的组件。不是所有组件都是必需的。 -
验证安装: 通过运行
realsense-viewer
来验证是否安装成功。执行命令后,将启动图形用户界面,若配置成功,该图形界面将自动识别 RealSense 摄像头,并可预览来自各个摄像头的视频流。
安全说明: 从非官方源添加软件包仓库,应格外小心仓库的可信度。从官方渠道获取软件源,或对下载的软件包进行校验。这可以极大程度降低安全风险。
方案二:安装指定版本的 pip 包,并编译 librealsense。
利用 pip
为 RealSense SDK 构建特定版本的 Python 绑定。这可能解决版本兼容问题。pip
安装 pyrealsense2
的步骤无法避开编译安装 librealsense
。该方案将两者联系起来,但提供了一条可靠的 pyrealsense2
的安装途径。
实施步骤:
-
安装依赖:
pybind11
需要依赖。可运行以下指令进行安装:sudo apt install python3-dev libpython3.X-dev # "X" 指的是 Raspberry Pi OS 所搭载的Python主版本,例如可以填9
-
安装 pip 包: 安装特定版本(例如 2.50.0 版本,选择其他版本可以根据需要填入)的 Python 包,并对
librealsense
进行编译安装:pip3 install pyrealsense2==2.50.0 --no-cache-dir
该命令安装
pyrealsense2
,且使用了--no-cache-dir
参数,这可以防止出现使用错误的构建缓存的问题。
pip3
是为Python 3设计的软件包管理器,务必按需进行版本检查。安装成功后可以使用realsense-viewer
验证安装结果。
一些细节:
如果存在cmake
版本问题,升级cmake
或手动配置。旧的 cmake
版本不支持最新 librealsense
使用的一些指令,使用时注意更新。
选择和推进
以上方案基于问题的核心原因,选择何种方法,取决于项目的时间和依赖管理策略。方案一提供了更简洁的操作,通过官方支持,省时省力。但方案二,对依赖和环境有更加灵活的控制权,可以按照不同的实际要求对版本等进行选择和配置,对版本定制提供了强有力的支撑。不管选择哪种方式,彻底地验证和测试都是确保成功的必要步骤。