SSU Crawler Transporter development

Slowly; I haven't had much time for coding lately.
I'm working on cleaning up the code and using the Subsystem classes; after that I'll add the VC.
 
Last edited:
Well, some news from my end. After obtaining some original assembly sheets of the CT(many thanks to John Cato of the LUT_Group!) I have decided to redo the CT chassis from scratch, only saving a few items.

Progress is coming along nicely. Should have something to show really soon. Bottom framing is about complete, just a few more items to add.

For now I going with the configuration the CT spent the first half of it's life in, with the original mufflers and the original operator cabs. This have no impact on the VC as the major change of the panels occurred between the transition between Apollo/Saturn and STS. Other than that, the panels and instruments have remained the same throughout the years.
 
I have obtained some more info on the steering gauges. Here's a quote from a document I have obtained access on:

The display marked “Steering Angle Desired” displays the current setting of the steering wheel. “Steering Angle Actual” displays…well…the actual degrees that the trucks are at. However, there is a time delay between the two. As a steering input command is given, i.e. turn the steering wheel, the hydraulic steering pumps will then apply pressure to the steering cylinders to turn the truck until the actual matches the desired position. The reason that we have two “Actual” gauges is for the front and rear trucks. In “Great Circle” and “Crab” steering modes, they will read the same (except for a + or – sign). When in “Independent” mode, the rear cab operator may have the rear trucks at a different steering angle, therefore they will read differently.
 
Any updates on the CT VC implementation?
 
Not much to update; I'm currently trying to figure out how to handle the forward cab mesh, which needs to be rotated 180 degrees; this makes animating groups messy. How difficult would it be to maintain two distinct meshes for the front and rear cabs?
 
Not much to update; I'm currently trying to figure out how to handle the forward cab mesh, which needs to be rotated 180 degrees; this makes animating groups messy. How difficult would it be to maintain two distinct meshes for the front and rear cabs?
Checked in a separate rotated version of the VC panels.
 
Can you make sure all the group numbers are the same for both meshes? That way I can reuse the same animation code for both VCs. What I need are two identical meshes, except one is rotated 180 degrees.
 
Can you make sure all the group numbers are the same for both meshes? That way I can reuse the same animation code for both VCs. What I need are two identical meshes, except one is rotated 180 degrees.
OK, hold on. Should be checked in rather quickly.

---------- Post added at 08:35 PM ---------- Previous post was at 08:30 PM ----------

Updated reverse panels checked in.
 
New panels work great, thanks!
:speakcool:

How close are you to checking in something for testing? There will be another check in again, as I just noticed that I have forgotten to add the three steering mode PBIs:embarrassed:!

---------- Post added at 03:39 AM ---------- Previous post was at 03:23 AM ----------

Updated panels checked in.
 
Well, here's some early screenshots of the new CT mainbody mesh. Took a while longer than I expected due to some problems getting the corner assembly done, but now it's complete and good.

Now'll re-add the steering arms and the A-frame. Once that's complete, I'll start working on the interior.
 

Attachments

  • NewCT_Mainbody_1A.jpg
    NewCT_Mainbody_1A.jpg
    85.2 KB · Views: 661
  • NewCT_Mainbody_1B.jpg
    NewCT_Mainbody_1B.jpg
    194.6 KB · Views: 621
:speakcool:

How close are you to checking in something for testing? There will be another check in again, as I just noticed that I have forgotten to add the three steering mode PBIs:embarrassed:!

---------- Post added at 03:39 AM ---------- Previous post was at 03:23 AM ----------

Updated panels checked in.
I should be able to check stuff in in a few days. Do you have any pictures of the lit PBIs? I'm wondering which parts actually get lit up when the button is pressed. Also, how is the cab controlling the crawler selected?
 
I should be able to check stuff in in a few days. Do you have any pictures of the lit PBIs? I'm wondering which parts actually get lit up when the button is pressed. Also, how is the cab controlling the crawler selected?
Two photos(left and right) are in the attached zip file. On the question: Don't know, but according to the CT tour videos I guess it is by FWD/REV PBIs.

I have recently joined a Yahoo! Group that deals with the CT specifically. Hopefully, the group owner should get back with some answers on the PBIs soon. Until then I guess we'll just have to make due with educated guesses.

BTW, have you implemented the service brakes? Also. do you have the truck discs moving?
 

Attachments

Just got some answers back:

Steering: If there's a difference greater than 1° between the actual steering angle and the desired steering angle, the system will shut down, so you won't be able to go from 0°s to 6°s in an instant, you have to take it easy.

Cab in control: This is done from the main Engineering Control Room of the C/T. In order for the controls to go active in that particular cab, the CAB ACK PBI has to be pressed. This will make the CAB IN CONTROL indicator light to become red-lit. The CAB SELECTED indicator light lights up when the cab is selected in the Engineering Control Room.
 
What I'm planning to do is prevent the user from steering more than 1 degree away from to actual angle. Do you know how fast the tracks turn when steering? Also, the CAB ACK PBI isn't implemented in the VC (not sure if you're aware of this).
 
Last edited:
What I'm planning to do is prevent the user from steering more than 1 degree away from to actual angle. Do you know how the tracks turn when steering? Also, the CAB ACK PBI isn't implemented in the VC (not sure if you're aware of this).
Thanks for letting me know. I'll put it in right away.

---------- Post added at 03:51 AM ---------- Previous post was at 03:46 AM ----------

And that's done.

---------- Post added at 08:44 PM ---------- Previous post was at 03:51 AM ----------

Checked in an update gauge texture and meshes that now has the STEERING gauges and the AVERAGE HEIGHT gauge textures finished.
 
Just noticed that the first iteration of the CT VC have been checked in. Two things noticed:


  • The CT doesn't move any more. Incomplete re-implementation of the CT propulsion system? Does it have something to do with the Error debug line?
  • VC panels not visible from the exterior camera modes, just in interior camera mode.

That's the only things noticed so far. Once I'm done with the new CT mesh, I'll add the two cab seats that are in each cab so the view point can be moved to a seated position for better panel readability.

Also, can the two cab view modes be moved to keys 1 and 3? Makes better sense as that's the designations for each cab.
 
The CT not moving is due to an incomplete check-in; I'll fix this soon. The cab view mode keys are going to be changed entirely, because the cab views have to be implemented as a VC (so we'll be using CTRL+arrow keys).
 
Just got this document which I ordered from NASA CASI: Crawler Transporter steering and JEL systems

It contains some very nice information on the CT steering and JEL systems.

Here's some selected quotes:

To enable the Crawler Transporter to function in its unique role at Kennedy Space Center, there were many changes required to evolve from a strip-mining shovel prime mover concept to an independent transporter mode. Large stripping shovels were constructed on site in an excavated hole; they removed the overburden (earth) in front of them and moved over terrain smoothened by bulldozers. Behind them were power cables plugged into substations. If a support cylinder leaked, the hydraulic fluid was collected (in a saucer surrounding the cylinder) and pumped back into its own reservoir. If a shoe broke or some similar problem occurred, the shovels kept going until they were forced into a repair mode. This operational philosophy was not amendable to reliable fulfillment of strict launch schedules. Besides, the leveling capability of stripping shovels was designed primarily to prevent the machine from turning over and was not adaptable for the critical tolerance level required to transport a 36-story rocket while its topmost part remains ±5 minutes of an arc, or within the dimensions of a basketball. It was essential to maintain the transporter load in a level plane and to reduce acceleration, torque and jarring forces to a minimum. Reliability of the hydraulic system and operational integrity of the equipment were absolute requirements and major design challenges. With these considerations in mind, KSC adopted the current transporter configuration in use today. If a critical control component should fail, there would be a backup system immediately available. In the event of a serious malfunction, such as a hydraulic line rupture, the load would be kept from becoming unbalanced by automatically locking (or securing) the corner cylinders. These cylinders, in groups of four, were designed such that if one should fail, the 5.7 million-kilogram (12.6 million pound) load could still be transported.
JEL SUSPENSION SYSTEM said:
Previously, chassis support of large crawler excavators were dependent upon utilization of a single, large diameter, hydraulic cylinder. In order to preclude damage to transported loads in the event of a single cylinder failure, a clustering of cylinders was designed for the transporter suspension system. A single cylinder would not only have to provide proper leveling, but it would have to resist side loads introduced by wind as well as propel and steering conditions. Horizontal forces acting on a fixed vertical cylinder produce bending, and, if forces are of significant magnitude, they will cause hydraulic oil leakage, galling and possible failure.

To prevent introducing shearing forces into the hydraulic actuators, a unique arrangement was designed for the four double-track truck suspension system. In the center of each truck is 1.22 (4-foot) diameter guide tube that slides in a spherical bearing. Clustered around this guide tube are four linear single acting hydraulic cylinders with a 508-millimeter (20-inch) bore and an extensible stroke of 2006 millimeters (79 inches). The cylinder assembly on which the weight of the transported load rests is designed to operate at a normal pressure of 20.7 million newtons/m² (4800 psig), and to withstand 41.2 million newtons/m² (6000 psig) proof pressure and 62.3 million newtons/m² (9000 psig) burst pressure. The support cylinders are attached to the chassis and trucks with spherical ball bushings to assure that only vertical loads are transmitted.

Shear forces from propel, steering or winds loads are transmitted through the guide tube and into the chassis through a spherical bearing housed on the trucks. This not only removes horizontal loads from the cylinders but provides a pivot for the truck and permits vertical movement of the chassis in relation to the crawler truck. The guide tube fits into the cylindrical inside surface of a bronze ball bushing. The outside surface of the bushing is a spherical section that mates with the inside surface of a concentric bushing container. This assembly enables limited tilt of the trucks in any combination of lateral and longitudinal motion. Changes in the vertical position of the chassis and rotational positions of the crawlers are supplied to the steering and JEL servo systems by transducers mounted at the bottom of the guide tube assembly.

The extremely low vertical friction allowed by this mechanism has provided for smooth leveling and jacking operations This unique grouping has resisted large wind loads, having carried a Saturn V test vehicle (Saturn 500F) on board a Mobile Launcher 5.63 kilometers (3.5 miles) at 0.04 m/s (1 mile/h) in winds as high as 30.1 m/s (68 mile/h) without incident. After more than eight years of operation, there have been no hydraulic leakage from these cylinders, and none have even had to be removed or partially disassembled.

STEERING THE TRANSPORTERS said:
Positioning the Mobile Launcher on its support pedestals requires precise maneuverability since alignment must be within ±50.8 millimeters (±2 inches). Not only is this no easy task , but special considerations had to be taken just to enable the negotiation of a 152-meter (500 foot) radius curve. Since trucks are located on a 27.4-meter (90-foot) centers, there is an angular position error between the inside and outside trucks during great circle steering.
It was decided to provide an Ackermann correction in the electronic servo system. Independent push-pull action was incorporated into each corner by using large double-acting hydraulic cylinders. For redundancy, these cylinders were mounted in pars at each end of a crawler-truck.
These two mechanisms (electronic Ackermann correction and double acting cylinders) allow the four trucks to be steered independently around corners in a great circle as well as diagonally in a crab mode.


---------- Post added at 01:44 PM ---------- Previous post was at 01:39 PM ----------

And this is something I turned up when looking fore more information the the Ackermann correction system: http://www.wikipatents.com/US-Paten...ion-in-a-steering-system-for-a-low-speed-turn

---------- Post added 06-02-10 at 03:49 AM ---------- Previous post was 06-01-10 at 01:44 PM ----------

Just tried to compile rev 821 of the CT sources and seems like we have some problems:

Code:
1>e:\shuttle ultra\orbitersdk\space shuttle ultra\discsignals/DiscreteBundleManager.h(36) : error C2011: 'discsignals::DiscreteBundleManager' : 'class' type redefinition
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>../Space Shuttle Ultra\SubsystemDirector.h(42) : error C2990: 'SubsystemDirector' : non-class template has already been declared as a class template
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\CrawlerRightPanel.cpp(65) : error C2027: use of undefined type 'discsignals::DiscreteBundleManager'
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>.\Crawler\CrawlerRightPanel.cpp(65) : error C2227: left of '->CreateBundle' must point to class/struct/union/generic type
1>CrawlerPBI.cpp
1>CrawlerPanelLight.cpp
1>CrawlerLeftPanel.cpp
1>CrawlerEngine.cpp
1>e:\shuttle ultra\orbitersdk\space shuttle ultra\discsignals/DiscreteBundleManager.h(36) : error C2011: 'discsignals::DiscreteBundleManager' : 'class' type redefinition
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>../Space Shuttle Ultra\SubsystemDirector.h(42) : error C2990: 'SubsystemDirector' : non-class template has already been declared as a class template
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\CrawlerEngine.cpp(5) : error C2511: 'CrawlerEngine::CrawlerEngine(SubsystemDirector *)' : overloaded member function not found in 'CrawlerEngine'
1>        e:\shuttle ultra\orbitersdk\space shuttle ultra\crawler\CrawlerEngine.h(13) : see declaration of 'CrawlerEngine'
1>.\Crawler\CrawlerEngine.cpp(132) : fatal error C1004: unexpected end-of-file found
1>CrawlerCenterPanel.cpp
1>e:\shuttle ultra\orbitersdk\space shuttle ultra\discsignals/DiscreteBundleManager.h(36) : error C2011: 'discsignals::DiscreteBundleManager' : 'class' type redefinition
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>../Space Shuttle Ultra\SubsystemDirector.h(42) : error C2990: 'SubsystemDirector' : non-class template has already been declared as a class template
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\CrawlerCenterPanel.cpp(44) : error C2027: use of undefined type 'discsignals::DiscreteBundleManager'
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>.\Crawler\CrawlerCenterPanel.cpp(44) : error C2227: left of '->CreateBundle' must point to class/struct/union/generic type
1>Crawler.cpp
1>e:\shuttle ultra\orbitersdk\space shuttle ultra\discsignals/DiscreteBundleManager.h(36) : error C2011: 'discsignals::DiscreteBundleManager' : 'class' type redefinition
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>../Space Shuttle Ultra\SubsystemDirector.h(42) : error C2990: 'SubsystemDirector' : non-class template has already been declared as a class template
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(158) : error C2027: use of undefined type 'discsignals::DiscreteBundleManager'
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>.\Crawler\Crawler.cpp(159) : error C2514: 'SubsystemDirector' : class has no constructors
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(160) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(160) : error C2227: left of '->AddSubsystem' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(160) : error C2664: 'CrawlerEngine::CrawlerEngine(SubsystemDirector<TVessel> *)' : cannot convert parameter 1 from 'SubsystemDirector *' to 'SubsystemDirector<TVessel> *'
1>        with
1>        [
1>            TVessel=Crawler
1>        ]
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>.\Crawler\Crawler.cpp(234) : warning C4150: deletion of pointer to incomplete type 'SubsystemDirector'; no destructor called
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(452) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(452) : error C2227: left of '->SetClassCaps' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(461) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(461) : error C2227: left of '->RealizeAll' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(468) : error C2027: use of undefined type 'discsignals::DiscreteBundleManager'
1>        e:\shuttle ultra\orbitersdk\libultra\include\DiscreteBundleManager.h(36) : see declaration of 'discsignals::DiscreteBundleManager'
1>.\Crawler\Crawler.cpp(468) : error C2227: left of '->CreateBundle' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(479) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(479) : error C2227: left of '->PreStep' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(678) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(678) : error C2227: left of '->PostStep' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(760) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(760) : error C2227: left of '->ParseScenarioLine' must point to class/struct/union/generic type
1>.\Crawler\Crawler.cpp(791) : error C2027: use of undefined type 'SubsystemDirector'
1>        ../libUltra/include\Subsystem.h(45) : see declaration of 'SubsystemDirector'
1>.\Crawler\Crawler.cpp(791) : error C2227: left of '->SaveState' must point to class/struct/union/generic type
1>Generating Code...
1>Build log was saved at "file://e:\Shuttle Ultra\Orbitersdk\Space Shuttle Ultra\Release\Crawler\BuildLog.htm"
1>Crawler - 33 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
 
Last edited:
Are you using the Crawler.vcproj file on sourceforge or your own version?

What seems to be happening is that two different versions of the DiscreteBundleManager.h file are being included (one in the libUltra folder and one in the regular SSU code folder). This isn't occurring on my computer.
 
Back
Top