基于0SG的三维可视化技术在RK3588平台的部署应用
扫描二维码
随时随地手机看文章
0引言
随着工业智能化、数字孪生技术[1]的发展,三维模型的显示交互控制在嵌入式平台中的应用需求日益迫切。
以瑞芯微RK3588为代表的ARM架构高性能处理器凭借其8核cPU、Mail—G610GPU与6TOP5 NPU算力成为工业控制、智能机器人等嵌入式领域的核心计算平台。
目前,在嵌入式环境下实现复杂三维模型的可视化展示与精准控制仍面临多重技术挑战[2]。
传统的三维引擎(如VTK、OpenGL)在ARM架构上常受限于GPU驱动支持不足,如RK3588虽集成Mail—G610 GPU,但其对标准OpenGL的兼容性有限,在模型数据点较多时容易出现卡顿的情况;当前基于RK3588的三维模型显示控制方案普遍存在渲染效率低、模型交互控制复杂、控制延迟较高、功耗大等问题[3]。
O5G(Open5ceneGraph)采用渲染状态管理、场景裁剪等优化技术,能快速渲染大规模复杂场景,其轻量级核心库和动态加载技术适用于嵌入式设备内存受限场景;Qt作为嵌入式领域的轻量级GUI开发工具,具备硬件加速渲染功能,并且使用信号槽实现低耦合交互逻辑,有效降低控制延迟。
基于RK3588的多核架构,采用Qt+O5G的三维可视化控制方法可充分发挥RK3588的多核异构能力,实现三维控制渲染性能与功耗控制的平衡[4]。
针对以上在RK3588嵌入式平台中进行三维可视化的问题,本文提出一种基于Qt与O5G的三维模型显示控制方法,在Qt中使用O5G设置场景的方法加载显示三维模型,通过O5G库中的API接口完成对模型及其部件的控制,最后实现在RK3588嵌入式平台中的部署与应用。
1嵌入式RK3588平台配置
在国产化技术发展趋势下,瑞芯微RK3588芯片等低功耗、大算力硬件平台快速迭代优化,并且支持多核异构、AI框架[5]。
本文采用创龙科技基于瑞芯微高速处理器RK3588J/RK3588设计的八核国产工业评估板 (四核cortex—A76+四核cortex—A55)作为嵌入式硬件平台,该芯片中默认为debian操作系统,鉴于国产性与安全性要求, 自主研发的国产麒麟操作系统构建有内生的可信安全体系,并且人机显示界面进一步优化,因此选择在RK3588平台上重新部署麒麟Kylin V10系统。
在RK3588上进行三维模型显示控制,还需进一步配置RK3588平台的相关环境依赖(编译链、Qt库等),主要有以下步骤:
1)使用上位机打开系统镜像烧写工具RKDevTool,长按RK3588开发板的USER1键或者Maskrom键,上位机烧写软件中提示“发现一个MASKROM”或“发现一个LOADER设备”后,表明RK3588开发板己与烧写工具连接成功;
2)下载开源Kylin系统镜像文件,在烧写软件中选择系统进项,点击“升级固件”,将Kylin系统镜像通过OTG接口烧写固化至核心板的eMMC中;
3)执行aptinstallgcc—aarch64—linux—gnug++安装适用于RK3588平台的交叉编译工具链,使用make指令编译Qt源码,安装libxcb1、libgl1—mesa—glx、libxcb—xineramao、openssl、libfontconfig1等Qt依赖库,最后将编译好的Qt库添加至系统环境变量。
2基于OSG的三维可视化
目前大多数三维可视化使用OpenGL技术实现,但OpenGL是基于底层的图形API,直接与GPU交互,功能开发时较为复杂,场景开发渲染效率低,例如对于三维渲染功能实现而言,纹理映射只是很小的一部分,使用OpenGL需要处理模型很多细节操作,而OSG是一种基于OpenGL的三维图形引擎[6],以“场景图”为核心数据结构组织对象,提供场景管理、数据加载、多线程渲染等封装功能,可以让开发人员更快速便捷地进行图形交互控制,用OSG进行纹理映射只需要调用其封装好的API即可实现[7],大大提高了开发效率,并且OSG支持多种操作系统平台,也支持多种UI框架如Qt、MFC、SDL等[8],因此本文基于OSG实现三维可视化。
基于OSG实现三维模型可视化,首先要对三维模型进行建模,建模时需要分配模型各节点的属性关系,模型建立后需转换为OSG引擎支持的格式文件;其次在RK3588平台中需部署相应的OSG引擎支持库;最后通过设置场景的方法加载显示三维模型,并通过调用OSG引擎的API接口函数实现对三维模型的控制。
2.1模型建立与处理
3dsMax作为Autodesk旗下的三维建模与渲染软件,其具有多样化建模工具集、多引擎渲染支持、插件生态丰富等特点,在多领域广泛应用。
通过3dsMax软件建立目标对象的三维模型,其模型由多个部件构成,要对模型及其部件进行控制,需在模型建立时梳理模型中各部件的节点关系。
图1所示为模型中各部件节点树形结构配置示意图,为便于父节点上连接的子节点随着对父节点的控制而整体变化,将模型节点按父子节点关系排列,将模型的各部件配置成树形结构,完成模型部件的节点属性设置。
如图1所示,建立三维模型时将模型节点分配好属性关系,便于最终实现模型控制时精准控制某一部件。
例如通过控制根节点即可实现整个模型的控制,对某一节点控制,则该节点及其后续子节点也会实现相应的控制。
通过3dsMax软件建立的模型默认格式为.max文件,基于3dsMax软件具有插件扩展的特点,在软件中安装OSGExport插件,即可实现将原始模型由.max格式转换为.OSGB格式导出,便于后续使用OSG引擎读取该模型文件进行显示与控制。
2.2 RK3588平台部署OSG引擎支持
在RK3588平台使用Qt调用OSG之前,需将OSG引擎的相关库部署至系统中,部署OSG引擎的步骤如下:
1)首先获取OSG开源代码,安装适用于aarch64架构的编译工具和环境依赖库libglu1—mesa—dev、libglew—dev、libx11—dev、libxext—dev、libxft—dev;
2)在系统中使用cmake生成适合aarch64架构的编译配置文件,使用make命令编译生成相应的OSG引擎include头文件和lib库文件。
在RK3588平台上将OSG引擎库部署完成后,需要将库文件路径添加至系统环境变量中,以便通过Qt调用OSG的API接口[6],配置环境变量后,可通过命令行输入osgviewer打开OSG库中示例模型,若成功运行并弹出窗口显示,则表明OSG引擎在RK3588平台上部署成功。
2.3Qt调用OSG接口实现模型显示与控制
在Qt中使用OSG设置场景的方法加载显示三维模型,图2所示为在Qt中使用的OSG接口函数框架。
在Qt中建立UI界面窗口作为三维模型显示窗口,通过平移、旋转、设置材质和颜色等操作完成对三维模型及其部件的控制,具体步骤如下:
1)采用osg::Group类创建场景根节点 ,通过osgviewer::view创建视图并添加场景根节点,完成窗口场景渲染。
2)通过osgDB::readNodeFile读取建立好的三维模型文件(.OSGB格式),调用setsceneData接口函数在场景中显示模型。
3)通过osgGA::TrackballManipulator设置内置交互控制器,实现在窗口视场中通过鼠标拖动模型平移与旋转,并且通过鼠标滚轮可对模型大小进行缩放控制;也可通过osg::MatrixTransform创建变换节点,使用setTranslate、setRotate、setScale实现对模型及其部件的平移、旋转和缩放的精准控制。
4)通过osg::Material设置模型的材质,实现控制模型整体或某一部件的材质、颜色属性。
3基于Qt与OSG的三维模型在RK3588平台仿真显示
按照上述流程与步骤完成RK3588平台的依赖库安装与环境部署后,可在Qt中建立工程,设计好UI人机交互界面,通过调用OSG对应的API接口函数实现对已有目标三维模型的加载显示与控制。
本文采用已建立好的某火炮三维示意模型与某自动机三维示意模型进行仿真验证。
某火炮三维示意模型加载显示结果如图3所示,该模型建立时设置其三维中心点为其根节点,在RK3588平台加载运行时,通过在UI窗口触屏转动视角,模型会跟随视角转动显示,在程序中通过osg::MatrixTransform创建旋转变换矩阵,可实现控制模型身管部件进行转动模拟真实运动场景。
在 运 行 过 程 中 通过osgviewer::StatsHandle事件处理器实时获取显示帧率,模型加载显示帧率为60帧/s,无明显延迟卡顿现象。
某自动机三维示意模型显示控制结果如图4所示,在程序中通过osg::Material设置不同部件(如弹药、推弹装置、身管等)显示不同材质与颜色,如图中弹药与整体显示不同颜色,可模拟实际运行中存在卡弹等现象,通过基于OSG的三维显示技术更加直观地显示模型运行状态。
4结束语
本文结合当前RK3588嵌入式平台在多领域广泛应用的背景,提出了基于OSG实现三维可视化在RK3588平台上部署并应用的方法,在RK3588平台上使用Qt调用OSG接口对三维模型进行加载显示并控制,具有低延迟、控制便捷的特点,并且采用Qt进行开发,在不同平台可快速移植,通用性强。
本文所描述的基于OSG的三维可视化技术可进一步加强人机交互便捷性与智能化,在当下健康管理故障展示、数字孪生等领域都具有现实意义,有广泛的应用价值[9]。
[参考文献]
[1]刘大同,郭凯,王本宽,等.数字孪生技术综述与展望[J].仪器仪表学报,2018,39(11):1-10.
[2]许洪翔,兰治东,任振国.嵌入式系统在电子信息技术中的应用[J].电子技术,2025,54(3):427-429.
[3]罗俊松,邓飞,卢涵宇,等.基于Qt的三维可视化技术研究[J].计算机测量与控制,2013,21(3):797-799.
[4]刘海洋,胡晓峰,雷旭.基于图形集群的远程实时渲染系统研究[J].系统仿真学报,2019,31(5):886-892.
[5] chen S Y,Shi G s,Li G.TheResearch oF LarGe-Scale3DScenesRenderinGOptiMization [c]//2009 WRIWorld conGress on SoFtware
Engineering(WCSE 2009),2009: 276-285.
[6] zhaoYM,Guop,LiucJ,etal.DesignandImPle- mentation of Battlefield Situation visualizationSystem Based on0SG[c]//2022 IEEE 8th Interna-tional conference oncomPuterandcommunications(Iccc),2022: 2286-2291.
[7]王誉立.基于0SG的三维可视化研究[D].北京:北京邮电大学,2016.
[8]夏文文.基于0SG的虚拟拆卸系统关键技术研究与实现[D].武汉:武汉理工大学,2016.
[9]徐朋月,刘攀,郑肖飞.数字孪生在制造业中的应用研究综述[J].现代制造工程,2023(2):128-136.
《机电信息》2025年第20期第21篇





