Hello,
After watching the launch of a Delta II rocket with ICESat and CHIPSat, I decided to make a quick model of both satellites using Blender and update the solarsys.ssc file so I can show my kids where the satellites went to.
One thing that struck me was there isn't any way of specifying the orientation of a spacecraft. For example, the ICESat always orients the GLAS instrument towards Earth (becuase it's measuring the ice thickness). I assume CHIPSat is always pointing away from the Sun towards deep space. Celestia had these spacecraft pointing at some absolute orientation which was not relative to the Earth (all over the place) and it didn't look right at all.
Is there some way of specifying which way a .3ds object is oriented? Relative to either Earth or some other object?
Thanks in advance,
John
How to specify orientation of a spacecraft
-
- Developer
- Posts: 1863
- Joined: 21.11.2002
- With us: 22 years
There's a bit of fiddling to do, but you should be able to get your satellites correctly orientated. How much fiddling depends on how well defined the satellite orbit is.
1) Set the Obliquity of the satellite to the same value as the Inclination of its orbit. (If Inclination is undefined, leave Obliquity undefined.)
2) Set the EquatorAscendingNode of the satellite to the same value as the AscendingNode of its orbit. (If AscendingNode is undefined, leave EquatorAscendingNode undefined.)
3) If you have defined a MeanAnomaly, ArgOfPericenter and/or Epoch, you also need to adjust RotationOffset. The equation to use is:
RotationOffset = MeanAnomaly+ArgOfPericenter+360*FRAC([2451545-Epoch]/Period)
where "FRAC" indicates the fractional part - the figures right of the decimal point. (If Epoch is undefined, you can ignore that whole part of the equation. If MeanAnomaly and/or ArgOfPericenter are undefined, treat them as being zero.)
4) By now your satellite is orientated with one of its principal axes permanently facing Earth. But this might be the wrong axis, as far as you are concerned. Check the appearance in Celestia, and tweak the orientation by adding or subtracting 90 or 180 degrees to RotationOffset. (Oops, second thoughts here ... see my next post for a better way.)
To keep a satellite aimed at the Sun, set Obliquity to 23.45 and RotationPeriod to 8766.15265008 - this sets it rotating on an axis perpendicular to Earth's orbit, going around once a year. Now check the appearance in Celestia and tweak the RotationOffset until the relevant bit of the spacecraft is pointing away from the Sun.
Phew! Hope all that's clear enough ... let me know if not.
Grant
1) Set the Obliquity of the satellite to the same value as the Inclination of its orbit. (If Inclination is undefined, leave Obliquity undefined.)
2) Set the EquatorAscendingNode of the satellite to the same value as the AscendingNode of its orbit. (If AscendingNode is undefined, leave EquatorAscendingNode undefined.)
3) If you have defined a MeanAnomaly, ArgOfPericenter and/or Epoch, you also need to adjust RotationOffset. The equation to use is:
RotationOffset = MeanAnomaly+ArgOfPericenter+360*FRAC([2451545-Epoch]/Period)
where "FRAC" indicates the fractional part - the figures right of the decimal point. (If Epoch is undefined, you can ignore that whole part of the equation. If MeanAnomaly and/or ArgOfPericenter are undefined, treat them as being zero.)
4) By now your satellite is orientated with one of its principal axes permanently facing Earth. But this might be the wrong axis, as far as you are concerned. Check the appearance in Celestia, and tweak the orientation by adding or subtracting 90 or 180 degrees to RotationOffset. (Oops, second thoughts here ... see my next post for a better way.)
To keep a satellite aimed at the Sun, set Obliquity to 23.45 and RotationPeriod to 8766.15265008 - this sets it rotating on an axis perpendicular to Earth's orbit, going around once a year. Now check the appearance in Celestia and tweak the RotationOffset until the relevant bit of the spacecraft is pointing away from the Sun.
Phew! Hope all that's clear enough ... let me know if not.
Grant
Last edited by granthutchison on 17.01.2003, 16:26, edited 2 times in total.
-
- Developer
- Posts: 1863
- Joined: 21.11.2002
- With us: 22 years
I forgot that in Celestia 1.2.5 we now have the option of the Orientation command, which is a lot more flexible than using RotationOffset for final positioning.
So follow steps 1 to 3 above, and then check out the resultant orientation in Celestia. But then if you need some rotation to correct the orientation in orbit, use Orientation:
Orientation [90 1 0 0] rolls the spacecraft through 90 degrees in a plane transverse to the line of "flight" in orbit. Orientation [90 0 0 1] will yaw it through 90 degrees parallel to the horizon; and Orientation [90 0 1 0] will give a 90-degree pitch angle.
Grant
So follow steps 1 to 3 above, and then check out the resultant orientation in Celestia. But then if you need some rotation to correct the orientation in orbit, use Orientation:
Orientation [90 1 0 0] rolls the spacecraft through 90 degrees in a plane transverse to the line of "flight" in orbit. Orientation [90 0 0 1] will yaw it through 90 degrees parallel to the horizon; and Orientation [90 0 1 0] will give a 90-degree pitch angle.
Grant
-
Topic authorjkb081759
- Posts: 3
- Joined: 17.01.2003
- With us: 21 years 10 months
- Location: California, USA
Grant,
First, thank you for the info, as it was exactly what I was looking for. I had to do two things to complete what I wanted to do...
The 'EquatorAscendingNode' and 'Obliquity' we're right on target, as it oriented the axis of the spacecraft tangent to the orbit, which is what I wanted.
The only problem was the spacecraft was rotating around that axis so it only pointed down at the Earth at periodic points in time. I fixed this by entering a 'RotationPeriod' negative value equal to the time it takes for the spacecraft to complete one orbit around the Earth. I simply accelerated the time factor to eyeball up the orbit period via the clock.
Now the spacecraft orientation was fixed relative to Earth! Only problem is the spacecraft was pointing in the wrong way. It turns out the 'RotationOffset' didn't take into account the 3ds model geometry orientation. So I just played with the 'RotationOffset' amount and eyeballed the results in Celestia, and now ICESat is glued to the Earth with it's instrument (GLAS) pointing at the Earth as desired.
Thank you very much for steering me in the right direction
John
First, thank you for the info, as it was exactly what I was looking for. I had to do two things to complete what I wanted to do...
The 'EquatorAscendingNode' and 'Obliquity' we're right on target, as it oriented the axis of the spacecraft tangent to the orbit, which is what I wanted.
The only problem was the spacecraft was rotating around that axis so it only pointed down at the Earth at periodic points in time. I fixed this by entering a 'RotationPeriod' negative value equal to the time it takes for the spacecraft to complete one orbit around the Earth. I simply accelerated the time factor to eyeball up the orbit period via the clock.
Now the spacecraft orientation was fixed relative to Earth! Only problem is the spacecraft was pointing in the wrong way. It turns out the 'RotationOffset' didn't take into account the 3ds model geometry orientation. So I just played with the 'RotationOffset' amount and eyeballed the results in Celestia, and now ICESat is glued to the Earth with it's instrument (GLAS) pointing at the Earth as desired.
Thank you very much for steering me in the right direction
John
-
Topic authorjkb081759
- Posts: 3
- Joined: 17.01.2003
- With us: 21 years 10 months
- Location: California, USA
Sure! Where to I put it? I have a zip file that has the models + icechip.ssc file.
Caveat: the models are pretty basic, as I've just started learning Blender, and finding out Blender doesn't export textures in it's VRML output :-/. The CHIPSat orbital elements are a bit suspect (have to verify them), but the ICESat goes over the poles, as it was intented to do! These files may not be the last version...
John
Caveat: the models are pretty basic, as I've just started learning Blender, and finding out Blender doesn't export textures in it's VRML output :-/. The CHIPSat orbital elements are a bit suspect (have to verify them), but the ICESat goes over the poles, as it was intented to do! These files may not be the last version...
John