项目介绍
这个项目围绕六轴平台的软件运动处理与 UE 编辑器虚拟拍摄展开。UE 场景中的位置和旋转需要转换为平台机构能够使用的数据,海洋场景中的参数变化和 Actor 动作则需要组织到录制序列中,供后续查看与调整。
我的工作覆盖机构正逆运动学、单位转换、运动信号处理、海洋参数联动、Take Recorder 录制组织和 LiveLink 数据发送。设备控制、实机标定与硬件安全保护由具体设备系统负责。
我负责的功能
| 功能模块 | 个人负责的内容 |
|---|---|
| 机构定义 | 按上下平台铰点组织六根杆件的连接关系与尺寸基础 |
| 运动学解算 | 根据平台姿态计算杆长,根据杆长估计平台姿态 |
| 信号处理 | 零位、滤波、限幅、限速、高低通与倾斜协调 |
| 海洋参数 | 暴露可插值的海浪与时间参数,组织变化通知与时间推进 |
| 编辑器录制 | 配置 TakePreset、Actor 来源与 Take Recorder,整理原场景和新录制的时间关系 |
| 数据发送 | 通过 LiveLink 组织并发送 Transform 数据 |
平台运动解算
逆运动学根据目标位置和旋转变换上平台铰点,再计算它们与对应下平台铰点之间的距离,得到六根杆长。正运动学使用 Newton 迭代和解析雅可比,从给定杆长估计平台姿态。
机构定义与解算分开,使铰点、尺寸和姿态各有明确的表达。厘米与米、角度与弧度的换算集中在解算边界,避免把场景单位直接带入机构计算。
运动数据处理
接入 EMA、中值和 Butterworth 等滤波方式,结合零位、幅度限制和相邻帧变化速度限制整理输出。高低通与倾斜协调用于处理运动信号中的不同变化分量。
这些处理分别作用于基准、抖动、幅度和变化速度,不把其中某一项当作其他约束的替代。
海洋场景与虚拍录制
基于 Oceanology 的场景表现与力计算,暴露时间、波长、波高、波速和波向等可插值属性。参数变化后广播通知,录制期间累计 TimeCode,使环境参数能够参与编辑器中的时间组织。
录制使用编辑器专用的 TakePreset、Actor 来源和 Take Recorder。完成录制后,把原场景 Sequence 作为 SubSequence 加入新录制结果,并按起录时间设置偏移,再保存结果。
解决的难点
场景姿态与机构杆长属于不同表达
UE 给出的位置和旋转不能直接当作六根杆的运动值。单个方向的变化可能同时影响多根杆,求解还依赖完整的铰点布局与尺寸。
我将机构参数、几何逆解和数值正解分别组织。逆解负责从姿态得到长度,正解负责从长度估计姿态,便于分别检查连接关系、单位和求解结果。
平滑输出仍可能产生瞬间跳变
数据落在允许幅度内,不代表相邻两帧之间的变化足够平缓;加强平滑也可能增加快速动作的跟随滞后。
处理时,我保留滤波、限幅与限速各自的职责,让输出既能整理局部波动,也能单独约束范围与变化量。不同输入信号可按特点选择滤波方式,而不是依赖一组参数处理所有动作。
原场景与新录制需要保持时间关系
只保存新录下来的 Actor,不能完整表达原有场景序列与这次录制之间的关系。我在起录时记录原场景 Sequence 和开始时间,录制结束后加入原序列的 SubSequence,再计算对应偏移。
原有场景内容与新录制结果因此可以组织到同一份编辑器序列中,方便后续查看与调整。
软件发送与设备执行需要明确分工
LiveLink 发送端组织 Transform,接收端负责解释这些数据并与具体设备连接。项目中我实现的是解算、信号处理与发送侧,不将“数据已发出”视为设备已经执行完成,也不把协议输出等同于硬件安全保护。
实现结果与适用范围
软件部分形成了从场景姿态、机构解算、信号处理到 LiveLink 发送的处理路径,并提供海洋参数与编辑器录制序列的配套组织。
录制流程依赖编辑器数据,不是打包程序中的通用录像功能。海洋适配覆盖已有海浪和时间参数,未完成风场、完整实机同步或录制延迟补偿;滤波和姿态约束也不能替代机构工作空间检查与实机标定。
相关记录
- 六轴平台运动解算与海洋虚拍录制适配:正逆解、滤波、海洋参数、Take Recorder 和 LiveLink 的实现记录。
- 飞行仿真:关联的飞行控制与平台联动接入工作。
