SSU Crawler Transporter development

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,604
Reaction score
2,324
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
But we do have the not so small issue that it is broken in Orbiter 2016 which pretty much renders the Crawler useless. So couldn't we use this as an opportunity to at least test it (the AddForce method)?

Sure. But I doubt it will be overly stable. Sadly I see little other options right now in 2016.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,687
Reaction score
2,667
Points
203
Location
Dallas, TX
Where is the code for the crawler. I want to see if I can compile it and maybe fix the 2016 issue
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,604
Reaction score
2,324
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
In "Orbitersdk/Space Shuttle Ultra/Crawler/"
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,687
Reaction score
2,667
Points
203
Location
Dallas, TX
ok That makes sense but isn't that the latest release? So where would the code be if not in the latest release?
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,687
Reaction score
2,667
Points
203
Location
Dallas, TX
Thanks. I got it. I was looking at the change touchdown points. But not sure if that could be applied to another vessel.
Code:
	// check distance from pads; adjust touchdown points to simulate going up ramp
	for(unsigned int i=0; i<vhLC39.size(); i++) {
		//VESSEL* pV=oapiGetVesselInterface(vhLC39[i]);

		VECTOR3 rpos = CalcRelSurfPos(vhLC39[i], vs);

		if(UpdateTouchdownPoints(rpos)) break;
	}

	// jack crawler
	if(!Eq(jackHeight, JACKING_HEIGHTS[targetJackHeightIndex], 0.001)) {
		if(jackHeight < JACKING_HEIGHTS[targetJackHeightIndex])
			jackHeight=min(jackHeight+0.0025*simdt, JACKING_HEIGHTS[targetJackHeightIndex]);
		else
			jackHeight=max(jackHeight-0.0025*simdt, JACKING_HEIGHTS[targetJackHeightIndex]);
		UpdateTouchdownPoints();
	}
	// jacking height may change when going up ramp, so always update height
	double avgHeight = jackHeight + (curFrontHeight-curBackHeight)/2.0;
	port_JackHeight.SetLine(static_cast<float>(avgHeight/JACKING_MAX_HEIGHT));
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
688
Points
203
I have the fixed the CTD/Freeze issue in D3D9Client RC-1, but there's new issue: The Crawler spins at a rapid rate when launching the Crawler test scenario.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
688
Points
203
I wonder if the spin issue is due to improperly calculated touchdown point stiffness? Like everything in Orbiter, they're frame rate dependent and D3D9Client yields much higher frame rates which could explain why it doesn't show in the inline client.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,604
Reaction score
2,324
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I wonder if the spin issue is due to improperly calculated touchdown point stiffness? Like everything in Orbiter, they're frame rate dependent and D3D9Client yields much higher frame rates which could explain why it doesn't show in the inline client.

Could be, if the initial state and the equilibrium is too far away.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
688
Points
203
Could be, if the initial state and the equilibrium is too far away.
After a few tests, I beginning to think that our current propulsion code which is based on teleportation is completely broken in the 2016 edition. I ran a few tests by letting the crawler fall down and it never settled, just kept on going through the terrain/ground forever. I even modified the touchdown points to have a more sensible orientation (all of them in a single flat plane). I would not be surprised actually as the motion code dates back to the 2005 edition of Orbiter. I really think it's time for it go.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,604
Reaction score
2,324
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
After a few tests, I beginning to think that our current propulsion code which is based on teleportation is completely broken in the 2016 edition. I ran a few tests by letting the crawler fall down and it never settled, just kept on going through the terrain/ground forever. I even modified the touchdown points to have a more sensible orientation (all of them in a single flat plane). I would not be surprised actually as the motion code dates back to the 2005 edition of Orbiter. I really think it's time for it go.

I think you are right there, it can't work well with the new terrain code anyway.

But I have no good idea yet how to replace it by something better. Maybe AddForce for the 4 track units. But I don't know how much force and friction we need for getting a good motion. I don't even want to say realistic there.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
688
Points
203
I think you are right there, it can't work well with the new terrain code anyway.
I have tried out the crawler implemented by fred18 in his multistage2015 and it is very solid. Maybe we could ask for his permission to use his code in a truly generic Crawler? Something like a Crawler Transporter Ultra (CTU) that is completely LV agnostic.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,604
Reaction score
2,324
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I have tried out the crawler implemented by fred18 in his multistage2015 and it is very solid. Maybe we could ask for his permission to use his code in a truly generic Crawler? Something like a Crawler Transporter Ultra (CTU) that is completely LV agnostic.

I think that is the goal there. The more components of SSU can be used outside SSU, the less bugs we will have in them, coarsely said. Same with building new spacecraft on the code of SSU. Stepping out of the Space Shuttle context there helps us getting better code (because different use cases are possible that we can't test right now)
 

fred18

Addon Developer
Addon Developer
Donator
Joined
Feb 2, 2012
Messages
1,667
Reaction score
104
Points
78
Surely you have my permission. Be aware that for the orbiter2016 official version I had to implement a hack to make it work because defstateex was not saving the arot parameter. Now martin has solved it in the svn version of orbiter so the hack is no longer needed. It's anyway easy to understand in the code, and i'm always available if i can be of any assistance, just let me know
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,666
Reaction score
795
Points
128
I have the fixed the CTD/Freeze issue in D3D9Client RC-1, but there's new issue: The Crawler spins at a rapid rate when launching the Crawler test scenario.

I tried the "CT-1 road test" scenario and the crawler seems to rotate very fast with the D3D7 inline engine too. Scenario doesn't start with D3D9. (Latest Orbiter Beta)

I have seen that kind of behavior before and it was animation initialization problem. Based on how it looks, feels like an animation matrix that rotates the entire crawler by 90 degs is applied every frame.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
688
Points
203
I tried the "CT-1 road test" scenario and the crawler seems to rotate very fast with the D3D7 inline engine too. Scenario doesn't start with D3D9. (Latest Orbiter Beta)

I have seen that kind of behavior before and it was animation initialization problem. Based on how it looks, feels like an animation matrix that rotates the entire crawler by 90 degs is applied every frame.
Interesting. Which SSU revision are you using that are causing the the no start with D3D9Client? I did check in a fix for that a few days ago which landed on revision 2534.
 
Top