使用pyside6+qml渲染hud

VisPy + Python 侧实时绘制一切都在python上运行,CPU 时间会先花在解释器、对象访问、函数调用上。 GPU 反而在等Python 每帧都像“手动一个个命令发过去”,就容易变成:CPU 很忙、驱动很忙、GPU 没吃满。

现在,orangepi的系统还是有问题,EGL/OpenGLES 走的是 ARM Mali,但 GLX/OpenGL 走的是 Mesa llvmpipe。这说明系统不是一条很干净的硬件渲染链。想要帧率在提升可能需要更换系统。

帧率优化

尝试不设置imu采集上限,能跑到600帧左右,经过数据处理节点后有400帧,在经过画面渲染的优化后,画面的数据帧率能到200但是不是很稳定。

vr眼镜

测试版本的眼镜只有一个type-c口,供给2片眼镜的显示,板子的hdmi输出无供电功能,所以使用的方法为:

Orange Pi 5 HDMI -> 转换器 HDMI 输入

USB充电器/充电宝 -> 转换器供电口

转换器 Type-C 输出 -> 眼镜

开机自启动

写了一个开机自启动的脚本,自动进入工作区,构建包,运行节点,校准,启动画面,全屏。

WORKSPACE_DIR="${EXO_WS:-/home/orangepi/exo_hud_ws}"
ROS_DISTRO_NAME="${ROS_DISTRO:-humble}"
ROS_SETUP="${ROS_SETUP:-/opt/ros/${ROS_DISTRO_NAME}/setup.bash}"
WS_SETUP="${WORKSPACE_DIR}/install/setup.bash"
CALIBRATE_SERVICE="${CALIBRATE_SERVICE:-/exo/imu/calibrate}"
CALIBRATE_TIMEOUT_SEC="${CALIBRATE_TIMEOUT_SEC:-30}"
DISPLAY_VALUE="${DISPLAY:-:0}"
XAUTHORITY_VALUE="${XAUTHORITY:-${HOME:-/home/orangepi}/.Xauthority}"
HUD_QPA_PLATFORM_VALUE="${EXO_HUD_QPA_PLATFORM:-}"
LOG_DIR="${LOG_DIR:-${WORKSPACE_DIR}/runtime_logs}"

本文章使用limfx的vscode插件快速发布