# AI_controller **Repository Path**: siboxie_admin/ai_controller ## Basic Information - **Project Name**: AI_controller - **Description**: 一体化全域智能航模地面站 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 3 - **Created**: 2026-07-15 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Qt HUD 项目 ## 项目概述 Qt HUD是一个使用Qt5开发的平视显示器(HUD)界面,专为航模应用设计。它提供了丰富的飞行数据可视化功能,包括姿态指示、高度显示、电池状态、GPS状态等。 ## 功能特性 - 姿态指示器:显示飞机的俯仰和横滚角度 - 高度显示:实时显示当前高度 - 电池指示:显示电池电压和电量 - GPS状态:显示GPS信号强度和卫星数量 - 飞行模式:显示当前飞行模式 - 音频显示:实时音频可视化 - 雷达显示:显示周围物体位置 - 其他状态:RSSI信号强度、飞行状态等 ## 环境要求 ### 系统要求 - Ubuntu 20.04 或更高版本 - CMake 3.16 或更高版本 - GCC 9.0 或更高版本 ### 依赖项 - Qt5 (5.12 或更高版本) - Qt5核心模块:Core, Gui, Widgets, Network - Qt5可选模块:Quick, Qml, Multimedia ## 安装步骤 ### 1. 安装基础工具 ```bash # 更新软件源 sudo apt update # 安装基础工具 sudo apt install -y build-essential cmake git ``` ### 2. 安装Qt5开发环境 ```bash # 安装Qt5核心开发包 sudo apt install -y qt5-default qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev # 安装其他Qt5模块 sudo apt install -y libqt5network5 libqt5serialport5-dev qttools5-dev # 安装GStreamer支持(用于多媒体) sudo apt install -y gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav ``` ### 3. 验证安装 ```bash # 检查Qt版本 qmake --version # 检查已安装的Qt5包 dpkg -l | grep qt5 ``` ## 编译项目 ### 1. 进入项目目录 ```bash cd qt_hud ``` ### 2. 创建构建目录 ```bash mkdir build cd build ``` ### 3. 运行CMake配置 ```bash cmake .. ``` 如果遇到Qt5路径问题,可以设置Qt5路径: ```bash export CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt5 cmake .. ``` ### 4. 编译项目 ```bash cmake --build . -j$(nproc) ``` 或者使用make: ```bash make -j$(nproc) ``` ## 运行程序 ### 1. 直接运行 ```bash ./QtHUD ``` ### 2. 从构建目录运行 ```bash cd build ./QtHUD ``` ## 常见问题 ### 1. 找不到Qt5 如果遇到找不到Qt5的错误,可以设置Qt5路径: ```bash export CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt5 cmake .. ``` ### 2. 缺少字体 确保系统已安装Rajdhani和Orbitron字体: ```bash # 下载并安装字体 mkdir -p ~/.local/share/fonts cd ~/.local/share/fonts # 下载Rajdhani字体 wget https://github.com/ITFoundry/rajdhani/releases/download/v2.300/Rajdhani.zip unzip Rajdhani.zip -d Rajdhani cp Rajdhani/*.ttf ~/.local/share/fonts/ # 下载Orbitron字体 wget https://github.com/googlefonts/orbitron/archive/refs/heads/main.zip unzip main.zip cp orbitron-main/fonts/ttf/*.ttf ~/.local/share/fonts/ # 更新字体缓存 fc-cache -f -v ``` ### 3. 多媒体支持问题 如果遇到多媒体相关的问题: ```bash # 安装额外的多媒体插件 sudo apt install -y gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav ``` ### 4. 权限问题 如果遇到权限问题,可以尝试: ```bash chmod +x QtHUD ``` ### 5. 缺少资源文件 确保资源文件(resources.qrc)包含所有需要的图片: - background.png - horizon_back.svg - horizon_ball.svg - horizon_circle.svg - horizon_mechanics.svg - fi_circle.svg ## 性能优化 在RK3566等嵌入式设备上,可以降低渲染频率: ```cpp // 在hudwidget.cpp中修改定时器间隔 // 主渲染定时器:从16ms改为33ms(30FPS) m_renderTimer->start(33); // 雷达渲染定时器:从1000ms改为2000ms m_radarTimer->start(2000); // 音频渲染定时器:从500ms改为1000ms m_audioTimer->start(1000); // 姿态仪渲染定时器:从200ms改为500ms m_attitudeTimer->start(500); ``` ## 后台服务 如果需要将程序作为后台服务运行: ```bash # 创建服务文件 sudo nano /etc/systemd/system/qthud.service ``` 添加以下内容: ```ini [Unit] Description=Qt HUD Service After=network.target [Service] Type=simple User=your_username WorkingDirectory=/path/to/qt_hud ExecStart=/path/to/qt_hud/build/QtHUD Restart=always [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl enable qthud sudo systemctl start qthud sudo systemctl status qthud ``` ## 打包 如果需要打包程序: ```bash # 使用linuxdeployqt wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage chmod +x linuxdeploy-x86_64.AppImage chmod +x linuxdeploy-plugin-qt-x86_64.AppImage ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --executable build/QtHUD --output appimage ``` ## 调试 如果需要调试程序: ```bash # 使用gdb调试 gdb ./QtHUD # 或使用Qt Creator sudo apt install -y qtcreator qtcreator CMakeLists.txt ``` ## 交叉编译(针对RK3566) 如果需要在开发机上交叉编译到RK3566: ```bash # 安装交叉编译工具链 sudo apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf # 设置交叉编译环境 export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ export CMAKE_TOOLCHAIN_FILE=/path/to/rk3566-toolchain.cmake # 配置和编译 cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/rk3566-toolchain.cmake .. cmake --build . -j$(nproc) ``` ## 注意事项 1. 确保后端API服务正在运行(默认端口5000) 2. 检查防火墙设置,确保API端口可访问 3. 根据实际硬件调整窗口大小和渲染参数 4. Qt5在嵌入式系统上的支持更成熟,适合在RK3566等设备上运行 5. 如果使用OpenGL加速,确保系统已安装OpenGL驱动: ```bash sudo apt install -y libgl1-mesa-dev libglu1-mesa-dev ``` ## 项目结构 ``` qt_hud/ ├── CMakeLists.txt # CMake构建配置文件 ├── README.md # 项目说明文档 ├── src/ # 源代码目录 │ ├── main.cpp # 主程序入口 │ ├── mainwindow.cpp # 主窗口实现 │ ├── hudwidget.cpp # HUD组件实现 │ ├── datafetcher.cpp # 数据获取实现 │ └── components/ # 各个显示组件 │ ├── altitudedisplay.cpp │ ├── armstatus.cpp │ ├── attitudeindicator.cpp │ ├── audiodisplay.cpp │ ├── batteryindicator.cpp │ ├── digitaldisplay.cpp │ ├── flightmode.cpp │ ├── flightstatus.cpp │ ├── gpsstatus.cpp │ ├── homeindicator.cpp │ ├── progressbar.cpp │ ├── radardisplay.cpp │ └── rssiindicator.cpp └── resources/ # 资源文件目录 └── resources.qrc # Qt资源文件 ``` ## 许可证 本项目采用开源许可证,具体请参考LICENSE文件。 ## 贡献 欢迎提交问题和拉取请求来改进这个项目。