# OBN-simulation **Repository Path**: klsz_1/obn-simulation ## Basic Information - **Project Name**: OBN-simulation - **Description**: 深水机器人仿真 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-31 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这是一个 Qt + Bullet Physics 3D 水下航行器模拟器。 架构概览 模块 功能 mainwindow.cpp 主窗口:3D场景、控制UI、物理模拟循环 physicsengine.cpp Bullet物理引擎封装:刚体创建、重力、碰撞检测 modelentity.cpp 3D模型实体:立方体/球体 + 方向箭头 horizonwidget.cpp 姿态指示器(俯仰/横滚) compasswidget.cpp 航向罗盘 settingsdialog.cpp 物理参数/姿态/航向设置对话框 logindialog.cpp 登录对话框(未实际使用) 核心技术栈 - Qt 3D: Qt3DExtras 用于3D渲染(Qt3DWindow、实体、材质、网格) - Bullet Physics: 刚体动力学(质量、浮力、阻力模拟) - 控制输入: 键盘(W/A/S/D/Space/Ctrl) + 鼠标拖拽控制航行器姿态 - 物理模拟: 质量-浮力-阻力平衡,手动速度控制(m_world->stepSimulation 仅用于碰撞) 主要特性 1. 水下环境模拟 - 深度越大背景越暗,跟随光源增强 2. 气泡粒子效果 - 30个随机生成上升的气泡 3. 参考网格 - 分层深度标识(0m, 20m, 40m...) 4. 实时参数显示 - 位置、深度、速度、姿态、航向等 5. 可切换模型 - 立方体(1×1×2,青色)和球体(绿色) 存在的小问题 1. main.cpp:22-23 - testEventWidget 显示但从未关闭,可能导致窗口叠加 2. mainwindow.cpp:595 - applyKeyboardForces() 空实现,键盘力应用在 updateSimulation() 内直接处理 3. 未使用 LoginDialog,导入但未实例化 编译依赖 需要预编译的 Bullet 库(位于 bullet/lib/),头文件在 bullet/include/。