mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-18 02:49:03 -06:00
Correctly place Perseverance on Mars after landing
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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": [
|
||||
|
||||
Reference in New Issue
Block a user