Orbiter-Forum  

Go Back   Orbiter-Forum > Orbiter Space Flight Simulator > General Questions & Help
Register Blogs Orbinauts List Social Groups FAQ Projects Mark Forums Read

General Questions & Help General & Advanced Orbiter flight questions, Orbiter installation questions, to all other help topics here.

Reply
 
Thread Tools
Old 08-08-2017, 03:43 PM   #1
TCR_500
Biblical Creationist
Default How Does Orbiter Keep Grounded Vessels In Place?

I'm a bit curious as to how Orbiter handles vessels that are on the ground. When static, is a vessel simply "locked" to it's location or does Orbiter simulate the forces required to keep it stationary? And what about when a vessel is moving along the ground? Are there any forces simulated to maintain surface-relative inertia? Or are the rotations of the planets simply too slow to need to take such forces into account?
TCR_500 is offline   Reply With Quote
Thanked by:
Old 08-08-2017, 05:55 PM   #2
fred18
Addon Developer

Default

I'm not martin of course, who is the only one which knows this for sure, but I've studied the matter quite deeply while developing this: https://www.orbithangar.com/searchid.php?ID=7082

I believe that it works like this: once the idle status is reached (I think that this happens when force resultant or movements relative to ground are below a certain threshold) orbiter saves the relative position (latitude, longitude) and the relative altitude of the barycenter of the vessel with reference to the planet. Together with this it saves the relative attitude of the vessel again with reference to the planet.

This has been confirmed both "experimentally" and by martin himself who answered some questions of mine while I was coding the GeneralVehicle mentioned above.

Those parameters are saved in the vesselstatus2 structure:
- latitude and longitude in surf_lat and surf_lng of the structure and in the line "POS" of the scenario file
- altitude in the vrot.x paramenter (it's just an empty slot used since the vrot.x is not used for landed vessels) and in the line "ALT" of the scenario file
- attitude euler angles in the arot vector of the structure and in the line AROT of the scenario file.

Again remember that the arot parameter for landed vessels is not relevant to the absolute system (as it is for flying vessels), but relative to the planet .

another important point is that the altitude parameter (ALT in the scenario) has nothing to do with the actual physics, if you take a landed vessels and you set an altitude of 1000 you'll see it standing still at his place but 1000meters from the ground.

All this aspects have been exploited in the General Vehicle addon and to me are evidences quite convincing that once the landed status is reached orbiter does not update physics anymore, it just update the position of the vessel, and keep it locked in its place on the planet.

Relevant to movement "on the ground" that's another story. I made the GeneralVehicle addon precisely because it is quite difficult to work with landed moving vessels in orbiter, and to me that's totally understandable since orbiter is a (space) flight simulator. This is even more difficult since the new orbiter 2016 arrived, due to new touchdown point definition which can lead to numerical instability of equilibrium calculations if the system keeps getting excited. Anyway once the vessel is not stopped anymore, the landed (idle) status changes to flying status and from that point onward it's all relevant to physics: thrust, weight etc.

I don't think there are any forces likewise coriolis etc taken into account in this.

Hope my deductions are all correct and to have helped you!

Cheers
Fred
fred18 is offline   Reply With Quote
Old 08-08-2017, 07:45 PM   #3
martins
Orbiter Founder
Default

This is all correct except for the last point: coriolis forces are taken into account (implicitly) for active vessels. Coriolis forces are pseudo-forces in a rotating refererence frame, so they don't need to be actively applied to the model.

If you place a vessel without any contact friction on a spherical planet (not on the equator), you should see it start drifting off slowly. You have to make sure that it doesn't get locked in idle mode though, since as Fred said, it will then no longer do dynamic state updates.
martins is offline   Reply With Quote
Thanked by:
Old 08-08-2017, 10:47 PM   #4
TCR_500
Biblical Creationist
Default

Wow. On a similar note, how is an active vessel on the ground kept from bouncing around by the planet moving and rotating? If you simply use the planet as the reference frame, how do you translate gravitational forces (eg: from the Sun) to the local frame? And is the barycenter local or global? I guess I'm getting too curious now. I've been researching physics simulations and integrators (and experimenting with trying to implement them) and because of that, I'm amazed at how well Orbiter handles physics simulations.
TCR_500 is offline   Reply With Quote
Thanked by:
Old 08-09-2017, 12:31 AM   #5
martins
Orbiter Founder
Default

Quote:
Originally Posted by TCR_500 View Post
 Wow. On a similar note, how is an active vessel on the ground kept from bouncing around by the planet moving and rotating?
I don't understand. If you refer to Coriolis forces, they are so small that even tiny surface frictions will counter them. Or what other reason should there be for "bouncing around"? I hope this isn't a question along the lines of this post - if so, I'd recommend some background reading on basic mechanics.

Quote:
If you simply use the planet as the reference frame, how do you translate gravitational forces (eg: from the Sun) to the local frame?
All gravitational forces are computed in the global frame, summed up and transformed to the local vessel frame like any other vectors, by simple rotation from one frame to the other.

Quote:
And is the barycenter local or global?
I don't understand the question.
martins is offline   Reply With Quote
Old 08-09-2017, 12:50 AM   #6
TCR_500
Biblical Creationist
Default

Quote:
Originally Posted by martins View Post
 I don't understand. If you refer to Coriolis forces,
No, I'm not referring to Coriolis forces. I'm referring to the fact that the planet is moving every physics cycle and so is the vehicle in contact with the planet. How, for example, if the vehicle is "ahead" of the planet, do you keep it from being kicked off the planet as whatever integrator used for planets moves the planet into the vessel at the same time another integrator tries to move the vessel out of the planet?

Quote:
Originally Posted by martins View Post
 Or what other reason should there be for "bouncing around"? I hope this isn't a question along the lines of this post - if so, I'd recommend some background reading on basic mechanics.
No, that's not what I'm referring to at all.

Quote:
Originally Posted by martins View Post
 All gravitational forces are computed in the global frame, summed up and transformed to the local vessel frame like any other vectors, by simple rotation from one frame to the other.
That's what I'm trying to understand. We have basically two objects (one "immovable") moving at drastically different velocities (with the vessel moving relative to the planet's surface), making contact with each other and the vessel isn't simply thrown into an insane orbit when the gravitational forces try to pull the vessel under the planet's surface, with the surface pushing against the vessel, keeping it from going under. Wouldn't the direction of force from the planet's surface pushing up on the vessel also be changing between the beginning and end of the physics cycle?
TCR_500 is offline   Reply With Quote
Old 08-09-2017, 01:07 AM   #7
martins
Orbiter Founder
Default

Ok, I think I understand what you are getting at. It is true that surface impact events are quite critical, since impact forces change significantly over small time scales. Orbiter tries to solve this by subsampling the time steps whenever an impact event is detected. This is critical for impacts, but not so much during taxiing, since the surface and the vessel are already moving at similar speeds, so the vessel remains largely at equilibrium between time steps.

The subsampling method has its limitations, and will fail at high time accelerations.
martins is offline   Reply With Quote
Thanked by:
Old 08-09-2017, 01:18 AM   #8
TCR_500
Biblical Creationist
Default

I take it that this equilibrium automatically takes into account the fact that as the vehicle moves across the surface, there is some net acceleration towards the center of the planet simply from the planet's rotation and the vehicle's movement with the rotation of the planet? Or is that net acceleration extremely small as well?
TCR_500 is offline   Reply With Quote
Old 08-09-2017, 01:53 PM   #9
martins
Orbiter Founder
Default

The acceleration towards the centre of the planet (or more precisely, normal to the surface of the geoid) is a result of gravity only. The planet's rotation and resulting centrifugal pseudo-force in the rotating system has the opposite effect of moving the vessel away from the planet's surface.
martins is offline   Reply With Quote
Thanked by:
Old 08-09-2017, 05:11 PM   #10
TCR_500
Biblical Creationist
Default

I guess I'm going to have to implement my own planet-vessel collision detection system to understand.
TCR_500 is offline   Reply With Quote
Thanked by:
Reply

  Orbiter-Forum > Orbiter Space Flight Simulator > General Questions & Help


Thread Tools

Posting Rules
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Jump


All times are GMT. The time now is 09:12 PM.

Quick Links Need Help?


About Us | Rules & Guidelines | TOS Policy | Privacy Policy

Orbiter-Forum is hosted at Orbithangar.com
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright 2007 - 2017, Orbiter-Forum.com. All rights reserved.