Baumer工业相机堡盟工业相机如何通过BGAPI SDK在Linux系统下设置多个USB相机(C++)
- Baumer工业相机
- [Baumer工业相机BGAPI SDK在Linux系统下设置USB相机的技术背景](#Baumer工业相机BGAPI SDK在Linux系统下设置USB相机的技术背景)
- [Linux系统内核 USB 模块内存的修改](#Linux系统内核 USB 模块内存的修改)
-
- 内存限制的确定
- [使用 GRUB 引导加载程序修改内存限制](#使用 GRUB 引导加载程序修改内存限制)
- [使用 U-Boot 引导加载程序修改内存限制](#使用 U-Boot 引导加载程序修改内存限制)
- Baumer工业相机在Linux系统下扩展USB相机内存的优点
Baumer工业相机
Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。
Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。
Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。
Baumer工业相机BGAPI SDK是用于Baumer工业相机的一款最新的软件开发工具包(SDK)。它为开发人员提供了一系列API和工具,用于与Baumer工业相机进行通信和控制。
通过结合 Baumer 工业相机的BGAPI SDK 获取相机的Statistics图像传输统计信息,可以极大增强图像数据的功能性和应用范围。
Baumer工业相机BGAPI SDK在Linux系统下设置USB相机的技术背景
Baumer工业相机的BGAPI SDK是Baumer公司开发的针对其相机产品系列的一套软件开发工具包。该SDK提供了一组API,使开发人员可以编写专业应用程序,从而控制、捕获、处理和显示Baumer相机的图像和数据。BGAPI SDK支持多种编程语言,包括C++、C#、Visual Basic、LabVIEW、Matlab等,并提供了大量示例代码和文档,以帮助用户轻松上手,快速完成应用程序的开发。
BGAPI SDK提供了丰富的功能,可以控制Baumer相机的所有参数,包括曝光时间、增益、白平衡、触发模式等,以及支持各种数据格式,例如Raw、BMP、JPG等,同时还提供了实时显示、数据采集、图像处理等功能,为开发人员提供了高度定制化的解决方案。此外,BGAPI SDK还支持多相机系统的开发,并可支持各种计算机操作系统,如Windows、Linux、Mac OS等。
Linux® 内核的 USB 模块有 16MB 的内存限制,这会对 USB 多工业相机系统的使用造成限制。
Linux系统内核 USB 模块内存的修改
内存限制的确定
Linux® USB 模块的内存限制可以通过运行以下命令来确定:
cpp
cat /sys/module/usbcore/parameters/usbfs_memory_mb
默认情况下,返回值应为 16。
这个内存限制是一个内核启动参数,必须在启动时进行修改。
内核启动参数由系统引导加载程序管理。
像 Ubuntu®、Debian® 或 Fedora® 等大多数主流发行版都使用 GRUB 引导加载程序。
下面描述了使用 GRUB 引导加载程序修改启动参数的步骤。
使用 GRUB 引导加载程序修改内存限制
文件 /etc/default/grub1 包含一个条目 GRUB_CMDLINE_LINUX_DEFAULT。
在 Ubuntu® 系统中,完整的条目看起来类似于以下内容:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"。
通过添加参数 usbcore.usbfs_memory_mb=xxx2,内存限制将在下一次启动时增加。
为了将内存限制增加到 1000MB,完整的条目应如下所示:
cpp
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"
为了将更改应用到 GRUB,你需要以 root 用户身份调用 grub-mkconfig -o /boot/grub/grub.cfg。
除了GRUB引导加载程序,还有以下几种常见方法可以修改内核启动参数:
使用 U-Boot 引导加载程序修改内存限制
一些基于 ARM 架构的开发板使用 U-Boot 引导加载程序来启动系统。
本节将解释如何为英伟达 Jetson 系列产品修改 USB 内存限制。在其他开发板上,路径可能会略有不同。
要增加内存限制,你需要编辑 Linux® 内核启动参数。
使用你选择的编辑器编辑文件 /boot/extlinux/extlinux.conf 来更改启动参数。
查找以如下内容开头的条目:
APPEND console=ttyS0,115200n8 console=tty1 no_console_suspend=1
lp0_vec=2064@0xf46...
在这一行的末尾添加:
usbcore.usbfs_memory_mb=XXX(用符合你需求的值替换 XXX。在此条目后不要添加换行符。)
现在你应该重启系统,并使用以下命令检查 USB 内存限制:
cpp
cat /sys/module/usbcore/parameters/usbfs_memory_mb
如果内存成功增加,返回的值应与启动参数相匹配。
Baumer工业相机在Linux系统下扩展USB相机内存的优点
在Linux系统下扩展Baumer工业相机USB相机内存具有以下优点:
- 支持多相机系统:许多工业场景需要同时使用多个相机进行图像采集,如生产线的多工位检测、大型物体的全方位监测等。扩展内存后,系统能够支持更多相机同时连接和运行,避免因内存不足而导致部分相机无法正常工作或出现数据丢失的情况,从而提高生产效率和检测的全面性。
- 提升图像采集性能:工业相机通常需要以较高的帧率和分辨率采集图像。扩展USB相机内存可以为相机提供更充足的缓存空间,使相机能够更流畅地采集和传输图像数据,减少图像丢帧、卡顿等现象,保证采集到的图像质量和完整性,有助于后续的图像分析和处理。
- 适应复杂应用需求:一些工业应用对相机的功能和性能有较高要求,如高速运动物体的抓拍、高精度测量等。扩展内存可以支持相机运行更复杂的算法和功能,例如在相机端进行图像预处理、特征提取等,减轻主机的计算负担,提高整个系统的实时性和响应速度。
- 增强系统稳定性:当相机内存不足时,可能会导致系统出现错误或崩溃,影响工业生产的正常运行。通过扩展内存,可以降低因内存不足引发的系统故障风险,提高系统的稳定性和可靠性,减少维护成本和停机时间。
- 便于系统升级和扩展:随着工业生产的发展和技术的进步,企业可能会对相机系统进行升级或扩展,如增加相机数量、提高相机分辨率等。提前扩展USB相机内存可以为未来的系统升级和扩展提供更好的支持,避免因内存限制而需要频繁更换硬件设备,保护企业的前期投资。