Correctly place Perseverance on Mars after landing

This commit is contained in:
Alexander Bock
2022-11-21 19:12:55 +01:00
parent 9ae5e16b90
commit cc366db299
4 changed files with 118 additions and 64 deletions

View File

@@ -1,6 +1,7 @@
local trail = asset.require("./trail")
local marsTransforms = asset.require("scene/solarsystem/planets/mars/transforms")
local sun = asset.require("scene/solarsystem/sun/sun")
local spice = asset.require("./spice")
local models = asset.syncedResource({
Name = "Perseverance Model",
@@ -9,10 +10,86 @@ local models = asset.syncedResource({
Version = 2
})
local TranslationKeyframes = {
["1850 JAN 01 00:00:00"] = {
Type = "SpiceTranslation",
Target = spice.ID,
Observer = "MARS",
Kernels = spice.Kernels,
Frame = "IAU_MARS",
FixedDate = "2020 JUL 17 13:56:43"
},
["2020 JUL 17 13:56:42"] = {
Type = "SpiceTranslation",
Target = spice.ID,
Observer = "MARS",
Kernels = spice.Kernels,
Frame = "IAU_MARS",
FixedDate = "2020 JUL 17 13:56:43"
},
["2020 JUL 17 13:56:43"] = {
Type = "SpiceTranslation",
Target = spice.ID,
Observer = "MARS",
Frame = "IAU_MARS",
Kernels = spice.Kernels
},
["2020 JUL 17 13:56:44"] = {
Type = "SpiceTranslation",
Target = spice.ID,
Observer = "MARS",
Frame = "IAU_MARS",
Kernels = spice.Kernels
},
["2021 FEB 18 20:43:48"] = {
Type = "SpiceTranslation",
Target = spice.ID,
Observer = "MARS",
Frame = "IAU_MARS",
Kernels = spice.Kernels,
},
["2021 FEB 18 20:43:49"] = {
Type = "SpiceTranslation",
Target = spice.ID,
Observer = "MARS",
Frame = "IAU_MARS",
Kernels = spice.Kernels,
FixedDate = "2021 FEB 18 20:43:48"
},
}
local PerseveranceNode = {
Identifier = "PerseveranceNode",
Parent = marsTransforms.MarsBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "MARS",
Observer = "MARS BARYCENTER"
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "IAU_MARS",
DestinationFrame = "GALACTIC"
}
},
GUI = {
Name = "Perseverance Node",
Path = "/Solar System/Missions/Perseverance",
Hidden = true
}
}
-- Perseverance Model --
local Perseverance = {
Identifier = "Perseverance",
Parent = trail.PerseveranceNode.Identifier,
Parent = PerseveranceNode.Identifier,
Transform = {
Translation = {
Type = "TimelineTranslation",
Keyframes = TranslationKeyframes
}
},
GUI = {
Name = "Perseverance",
Path = "/Solar System/Missions/Perseverance"
@@ -46,29 +123,30 @@ local Body = {
Intensity = 0.5
}
},
PerformShading = false,
RotationVector = {65.940000,201.389999,263.980011}
RotationVector = {19.19,0.0,348.08}
},
GUI = {
Name = "Perseverance Model Body",
Path = "/Solar System/Missions/Perseverance/Model",
Hidden = true
-- Hidden = true
}
}
asset.onInitialize(function()
openspace.addSceneGraphNode(PerseveranceNode)
openspace.addSceneGraphNode(Perseverance)
openspace.addSceneGraphNode(PerseveranceModel)
openspace.addSceneGraphNode(Body)
end)
asset.onDeinitialize(function()
openspace.removeSceneGraphNode(Body)
openspace.removeSceneGraphNode(PerseveranceModel)
openspace.removeSceneGraphNode(Perseverance)
openspace.removeSceneGraphNode(PerseveranceNode)
end)
asset.export(Perseverance)
asset.export(PerseveranceModel)
asset.export(Body)

View File

@@ -0,0 +1,25 @@
local kernels = asset.syncedResource({
Name = "Mars 2020 Kernels",
Type = "HttpSynchronization",
Identifier = "perseverance_kernels",
Version = 2
})
local m2020_kernels = {
kernels .. "m2020.tf",
kernels .. "m2020.tsc",
kernels .. "m2020_v04.tf",
kernels .. "m2020_cruise_recon_nospin_v1.bc",
kernels .. "m2020_cruise_recon_rawrt_v1.bc",
kernels .. "m2020_cruise_recon_raweng_v1.bc",
kernels .. "m2020_edl_v01.bc",
kernels .. "m2020_cruise_od138_v1.bsp",
kernels .. "m2020_edl_v01.bsp",
kernels .. "m2020_surf_rover_loc_0000_0089_v1.bsp"
}
asset.export("Kernels", m2020_kernels)
asset.export("ID", -168)

View File

@@ -1,67 +1,21 @@
local sunTransforms = asset.require("scene/solarsystem/sun/transforms")
local marsTransforms = asset.require("scene/solarsystem/planets/mars/transforms")
local kernels = asset.syncedResource({
Name = "Mars 2020 Kernels",
Type = "HttpSynchronization",
Identifier = "perseverance_kernels",
Version = 2
})
local perseverance_id = -168
local m2020_kernels = {
kernels .. "m2020.tf",
kernels .. "m2020.tsc",
kernels .. "m2020_v04.tf",
kernels .. "m2020_cruise_recon_nospin_v1.bc",
kernels .. "m2020_cruise_recon_rawrt_v1.bc",
kernels .. "m2020_cruise_recon_raweng_v1.bc",
kernels .. "m2020_edl_v01.bc",
kernels .. "m2020_cruise_od138_v1.bsp",
kernels .. "m2020_edl_v01.bsp",
kernels .. "m2020_surf_rover_loc_0000_0089_v1.bsp"
}
local spice = asset.require("./spice")
local startTime = "2020 JUL 17 13:56:42"
local approachMars = "2021 FEB 11 20:32:16"
local endTime = "2021 FEB 18 20:32:16"
local PerseveranceNode = {
Identifier = "PerseveranceNode",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = perseverance_id,
Observer = "SSB",
Kernels = m2020_kernels
}
},
GUI = {
Name = "Perseverance Node",
Path = "/Solar System/Missions/Perseverance",
Hidden = true
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = "2020 JUL 30 12:52:43.643",
End = "2021 FEB 18 20:43:48"
}
}
local PerseveranceTrailSun = {
Identifier = "PerseveranceTrailSun",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Translation = {
Type = "SpiceTranslation",
Target = perseverance_id,
Target = spice.ID,
Observer = "SSB",
Kernels = m2020_kernels
Kernels = spice.Kernels
},
Color = { 0.2, 0.7, 0.1 },
StartTime = startTime,
@@ -82,9 +36,9 @@ local PerseveranceTrailMars = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = perseverance_id,
Target = spice.ID,
Observer = "MARS BARYCENTER",
Kernels = m2020_kernels
Kernels = spice.Kernels
},
Color = { 0.7, 0.9, 0.6 },
StartTime = approachMars,
@@ -99,17 +53,14 @@ local PerseveranceTrailMars = {
}
asset.onInitialize(function()
openspace.addSceneGraphNode(PerseveranceNode)
openspace.addSceneGraphNode(PerseveranceTrailSun)
openspace.addSceneGraphNode(PerseveranceTrailMars)
end)
asset.onDeinitialize(function()
openspace.removeSceneGraphNode(PerseveranceTrailMars)
openspace.removeSceneGraphNode(PerseveranceTrailSun)
openspace.removeSceneGraphNode(PerseveranceNode)
end)
asset.export(PerseveranceNode)
asset.export(PerseveranceTrailSun)
asset.export(PerseveranceTrailMars)

View File

@@ -22,7 +22,7 @@
"identifier": "profile.setup.perseverance",
"is_local": false,
"name": "Setup and Goto Perseverance",
"script": "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -1686.0);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -1686.0);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -1686);openspace.time.setPause(true);openspace.time.setTime('2021 FEB 18 20:32:16');openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true);openspace.navigation.setNavigationState({Anchor = 'Perseverance',Pitch = 0.567457E-4,Position = { 1.240506E1,-1.369270E1,-2.423553E0 },ReferenceFrame = 'Root',Up = { 0.441211E0,0.247019E0,0.862737E0 },Yaw = -0.446853E-4});"
"script": "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -1685.5);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -1686.0);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -1686);openspace.time.setPause(true);openspace.time.setTime('2021 FEB 18 20:32:16');openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true);openspace.navigation.setNavigationState({Anchor = 'Perseverance',Pitch = 0.567457E-4,Position = { 1.240506E1,-1.369270E1,-2.423553E0 },ReferenceFrame = 'Root',Up = { 0.441211E0,0.247019E0,0.862737E0 },Yaw = -0.446853E-4});"
}
],
"assets": [