Femto Bolt 故障排除



    南宫NG·28




    南宫NG·28

    Femto Bolt 故障排除

    本文内容

    ● 已知问题    

    ● 收集日志

    ● 设备未列在设备管理器中

    ● k4aviewer无法打开相机

    ● 设备固件更新问题

    ● 图像质量问题

    ● 不一致或意外的时间戳

    ● 将人体跟踪 SDK 与 Unreal 配合使用

    ● 在无外设 Linux 系统上使用 Femto Bolt

     本文包含在 Femto Bolt  中使用 Orbbec SDK K4A Wrapper 时可能会遇到的已知问题及其故障排除提示。


    已知问题

    ● Linux平台下,深度引擎库需要使用OpenGL,如果应用层也使用OpenGL、且跨线程调用OpenGL实例,可能会造成上下文冲突,导致深度引擎在初始化时出现问题,以及无法正常启动深度数据流。

    如果应用层使用了OpenGL渲染,要在应用层参考OpenGL下面链接切换Context:

    (http://www.khronos.org/opengl/wiki/OpenGL_and_multithreading)

    以下是我们使用glfw库的解决方法:

    a. 在开流之前,调用glfwMakeContextCurrent(NULL) 。

    b. 然后再开流。

    c. 开流结束后,调用glfwMakeContextCurrent(currentContext)。

    // 参考github: file: tools/k4aviewer/k4adevicedockcontrol.cpp GLFWwindow *currentContext = glfwGetCurrentContext(); // store the current context glfwMakeContextCurrent(NULL);  // make current context to NULL StartCameras(); //  will initialize the DepthEngine glfwMakeContextCurrent(currentContext); // restore the current context

    ● 有关其他相关问题,请查看 GitHub Issues


    收集日志

    Orbbec SDK K4A Wrapper 的日志由底层 Orbbec SDK 输出,默认输出到应用程序工作目录下的 目录下。日志以循环覆盖的方式输出到固定 4 个文件中,默认单个文件最大 100 MB。建议用户反馈问题时可以将日志文件一并打包发送。


    设备未列在设备管理器中

    ● 请查看后面指示灯,如果闪橙黄色,表示供电不足,请用电源适配器供电再试,如果此时闪白灯,表示USB连接异常,请找其他原因。

    ● 检查是否已连接电源线并使用 USB3 端口来传输数据。

    ● 尝试改用 USB3 端口来建立数据连接(建议使用靠近主板的 USB 端口,例如,电脑背面的 USB 端口)。

    ● 检查线缆的状态,受损或劣质的线缆会导致列出的信息不可靠(设备在设备管理器中不断“闪烁”)。

    ● 如果已连接到笔记本电脑并且该电脑以电池运行,则端口的电量可能会受到限制。

    ● 重新启动主机电脑。

    ● 如果问题仍然存在,则可能是存在兼容性问题。


    k4aviewer 无法打开相机

    ● 先检查设备是否列在 Windows 设备管理器中。

    image.png 

    ● 检查是否有任何其他应用程序正在使用该设备(例如 Windows 相机应用程序)。 每次只能有一个应用程序访问该设备。

    ● 检查日志中的错误消息。

    ● 打开 Windows 相机应用程序,检查它是否可正常工作。

    ● 关闭再打开设备的电源,等待流 LED 熄灭,然后再使用设备。

    ● 重新启动主机电脑。

    ● 确保在电脑上使用最新的图形驱动程序。

    ● 如果你使用自己的 SDK 版本,请尝试使用正式发布的版本(如果可以解决问题)。


    设备固件更新问题

    ● 如果更新后未报告正确的版本号,则可能需要关闭再打开设备;

    ● 设备固件更新过程被打断,可以重新给设备上电后再执行更新。


    图像质量问题

    ● 启动 Femto Bolt 查看器,检查设备的位置,以确定是否存在干扰、传感器被遮挡,或者镜头脏污。

    ● 如果问题在特定的模式下发生,请尝试不同的运行模式,以缩小问题的检查范围。

    ● 若要与团队配合解决图像质量问题,可以:

    1. 抓取Femto Bolt 查看器暂停视图并抓取屏幕截图,或

    2. 使用Femto Bolt 查看器录制,例如 k4arecorder.exe -l 5 -r 5 output.mkv


    不一致或意外的设备时间戳

    调用 k4a_device_set_color_control 可能会暂时引发设备的计时更改,这些更改可能需要几个捕获才能稳定。 避免在图像捕获循环中调用 API,以免重置每个新图像的内部计时计算。 可以改为在启动相机之前或需要更改图像捕获循环内的值时调用 API。 具体而言,请避免调用 k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY)。


    将人体跟踪 SDK 与 Unreal 配合使用

    若要将人体跟踪 SDK 与 Unreal 配合使用,请确保已将 <SDK Installation Path>\tools 添加到环境变量 PATH,并已将 dnn_model_2_0.onnx 和 cudnn64_7.dll 复制到 Program Files/Epic Games/UE_4.23/Engine/Binaries/Win64。


    在无外设 Linux 系统上使用 Femto Bolt

    Linux 上的 Femto Bolt 深度引擎使用 OpenGL。 OpenGL 需要一个窗口实例,该实例需要将监视器连接到系统。 此问题的解决方法是:

    1. 为计划使用的用户帐户启用自动登录。 有关如何启用自动登录的说明,请参阅此文

    2. 关闭系统电源,断开显示器的连接,然后打开系统电源。 自动登录会强制创建 x-server 会话。

    3. 通过 ssh 进行连接,并设置 DISPLAY 环境变量 export DISPLAY=:0

    4. 启动 Femto Bolt 应用程序。

    xtrlock 实用工具可用于在自动登录后立即锁定屏幕。 添加以下命令以启动应用程序或 systemd 服务:

    bash -c “xtrlock -b”

    友情链接: