Editing an Aircraft Actor in Simulink-Unreal Simulation

95 ビュー (過去 30 日間)
Oscar Su
Oscar Su 2025 年 2 月 11 日 3:14
Hello,
As part of my project, I am simulating an aircraft using Simulink, and I have set up a Simulink system to communicate with Unreal Engine (as shown in the attached image). The issue I’m facing is that when I open the Unreal project AutoVrtlEnv, which is ported from MATLAB to Unreal, I can edit the airport scene but not the aircraft itself. The aircraft is an actor class that is dynamically spawned in Unreal via the Simulation 3D Aircraft Block.
The problem is that this aircraft actor (as shown in the attached image) does not exist when the simulation is not running—it only appears once the simulation starts. While I can technically edit these dynamically spawned actors by pausing the simulation, any changes I make are lost when the simulation restarts, as the actors are recreated from scratch.
I need to modify the Sim3dMainCamera under the Sim3dMWAirliner actor class. Is there a way to modify or duplicate it so that I can edit it as a separate class without losing my changes?
Any guidance would be greatly appreciated!
  6 件のコメント
Oscar Su
Oscar Su 約4時間 前
編集済み: Oscar Su 約4時間 前
Thank you for your response, and no worries about the delay!
  1. Yes, the camera does follow the aircraft in VR preview.
  2. While your suggested method moves camera positions in non-VR previews, it doesn’t affect my VR headset’s positioning, leaving the camera offset from the cockpit view.
I did found out the true cause to the issue: the VR camera is not spatially locked to the camera positions pre-defined by Simulink's Simulation 3D Scene.
And for whatever reason, the aircraft’s center of mass aligns with the lower limit of the calibrate VR play space (in this case, the floor), which meant I had to physically lie down to pilot the aircraft in its cockpit view.
Recalibrate the VR headset so that the 'floor' aligns with user's eye level is the workaround. It does create some inconvenience when using VR for other stuff, but it does midgitate the issue in this case.
- - -
With the workaround found, I have two additional questions that are the main reason I wanted to address the offset issue in the first place (apologies for not including them in the original problem statment):
  1. Is it posible to anchor the VR camera to the camera positions on the Sim3DMWAirliner so it doesn't move spatially?
  2. How can I send the VR headset’s view orientation (Pitch, Yaw, Roll) information in real-time back into Simulink?
Any pointers would be greatly appreciated. If this is too much for this thread, I’m happy to post a separate question.
Nishan Nekoo
Nishan Nekoo 約3時間 前
Hi Oscar,
Thanks for the update and I am glad you figured out that it was a calibration issue with the VR Headset, I think that makes sense to me.
To your additional questions:
  1. I imagine this would be possible via reparenting on initialization via blueprints - but because I don't have experience with VR Headsets, I am not sure what actors get created. If you have that information, you could try to child to the CameraComponent I mentioned in my previous comment at run time, so that their locations are locked to each other. Have you tried something like this and run into specific issues?
  2. I think the Simulation 3D Message Get is what you are looking for - check out the example at that documentation link. You will need to figure out how to make the headset's view orientation available in Simulink, but I don't imagine that is too difficult once you know what class it is and use some logic similar to what I have above to get the element of that class and extract its orientation data.
I hope that helps!
Nishan

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with Aerospace Blockset についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by