UnrealEngine开发无人机飞行模拟软件的手柄如何选择

embedded/2025/2/12 14:14:26/

问题:

我用虚幻引擎开发飞行模拟软件,需要选一款手柄。要求:精度高,杆量极值准,复位准,手感好,推杆阻尼均匀,能支持二次开发,无加密,可以被虚幻引擎识别的手柄,该怎么选呢?

答:

经测试:BETAFPV 小白手柄全胜!选择小白手柄。

以下是测试结果:

对比了五款手柄:

  • 大疆Avata 3 小灰
  • BETAFPV 小白
  • APEX ELRS 2.4G 小黑
  • SZ8-MD 小红
  • SL8 X V2 小红

测试环境:

在虚幻引擎中,要想介入飞行手柄,需要使用 RAW input 插件。
如果没有,就先添加这个插件,如下图:
在这里插入图片描述
添加后,重启UE。
在项目设置Project Setting中,找到Raw Input ,Vendor ID 和 Product ID可以不用填写。但是要确认下面的Key的顺序是1,2,3,4,5。。。。
在这里插入图片描述
然后我做了测试工程,如下图,在操作飞机的时候,会将杆量打印在左上角。
在这里插入图片描述


大疆AVATA 3 小灰手柄

RMB 999元
在这里插入图片描述
大疆手柄是加密的,其杆量值并不是线性。无法直接对接虚幻引擎,所以直接放弃。

BETAFPV小白手柄:

RMB 249元
在这里插入图片描述
VID 0x046d
PID 0xC21F

小白手柄的数值表现是最好的,或许是出场经过校准。最小值是0,最大值是1,复位值是0.5。并没有偏量。
按键值映射也有一定规律,看来是工程师矫正过。
在这里插入图片描述

APEX ELRS 2.4G 小黑手柄

价钱: 248 元
在这里插入图片描述
VID 0x1A86
PID 0xFE07
此款手柄在最大最小值时有误差,并不能归零,归一,就连复位值都不是0.5。这是很严重的精度问题。这种情况下做飞机模拟,飞机会乱飘的。
并且其按键值映射并不规律。
在这里插入图片描述

SZ8-MD 小红手柄

RMB 149 元
在这里插入图片描述
VID 0x413D
PID 0x2207
从VID 和 PID 上看 两款小红手柄的芯片是一样的。外观也是一样的。这是个贴牌货吧?
杆量上,二者的误差也非常相似。按键值映射与小白一样。
在这里插入图片描述

SL8 X V2 小红手柄

RMB 149 元
在这里插入图片描述
VID 0x413D
PID 0x2207
从VID 和 PID 上看 两款小红手柄的芯片是一样的。外观也是一样的。这是个贴牌货吧?
杆量上,二者的误差也非常相似。按键值映射与小白一样。
在这里插入图片描述
综上除小白手柄外,其他3款手柄精度有误差,一款手柄加密测试数据无效。


http://www.ppmy.cn/embedded/161612.html

相关文章

成为高能量体质:从身体神庙到精神圣殿的修炼之路

清晨五点,当城市还在沉睡,瑜伽垫上的汗水已经折射出第一缕阳光。这不是苦行僧的自虐,而是高能量体质者的日常仪式。在这个能量稀缺的时代,如何把自己修炼成一座小型核电站?答案就藏在身体的每个细胞里。 一、能量管理…

解决 keep-alive 缓存组件中定时器干扰问题

当使用 keep-alive 缓存组件时,组件中的定时器可能会在组件被缓存后继续运行,从而干扰其他组件的逻辑。为了避免这种情况,可以通过以下方法解决: 1. 在组件的 deactivated 钩子中清理定时器 keep-alive 为缓存的组件提供了 acti…

Java算法技术文章:深入解析排序、搜索与数据结构

引言 在软件开发的世界里,算法不仅是程序设计的基础,更是提升软件性能、优化用户体验的关键。Java,作为一种广泛使用的编程语言,提供了丰富的API和标准库来支持各种算法的实现。本文将深入探讨Java中的排序算法、搜索算法以及一些…

dayjs的isSameOrAfter、isSameOrBefore、isAfter、isBefore学习

定义 方法含义是否包含相等是否支持精度参数isAfter()当前日期是否在目标日期之后否是isBefore()当前日期是否在目标日期之前否是isSameOrAfter()当前日期是否等于或在目标之后是是isSameOrBefore()当前日期是否等于或在目标之前是是 用法 const dayjs require(dayjs);// 创…

floodfill算法系列一>图像渲染

目录 题目思路:代码设计:代码呈现: 题目思路: 代码设计: 代码呈现: class Solution { int m,n,sr,sc;int prev;public int[][] floodFill(int[][] image, int sr, int sc, int color) {if(image[sr][sc] …

RoboGrasp:一种用于稳健机器人控制的通用抓取策略

25年1月来自北京大学和哈佛大学的论文“RoboGrasp: A Universal Grasping Policy for Robust Robotic Control”。 模仿学习和世界模型在推进通用机器人学习方面显示出巨大的潜力,而机器人抓取仍然是实现精确操控的关键挑战。现有方法通常严重依赖机械臂状态数据和…

10苍穹外卖之Task、WebSocket(音频是前端实现)

课程内容 Spring Task 订单状态定时处理 WebSocket 来单提醒 客户催单 功能实现:订单状态定时处理、来单提醒和客户催单 订单状态定时处理: 来单提醒: 客户催单: 1. Spring Task Spring Task 定时任务-CSDN博客 1.1 介绍…

Vue笔记(八)

一、Pinia (一)手动添加Piaia到Vue项目 1.安装Pinia:使用包管理器进行安装,在项目目录下运行 npm install pinia 或 yarn add pinia ,为项目引入Pinia状态管理库。 2.创建Pinia实例:在项目的JavaScript代…