Difference between revisions of "Space Shuttle Deluxe"

From OrbiterWiki
Jump to navigation Jump to search
Line 4: Line 4:
 
[[category:realistic addons]]
 
[[category:realistic addons]]
  
Space Shuttle Deluxe is based on the code and model of the stock Atlantis which comes with Orbiter.
+
Space Shuttle Deluxe is based on the code and model of the stock Atlantis which comes with Orbiter 060929. Since it is in a state of continuous slow flux, it is better to host its manual here.
 +
 
 +
== Credits ==
 +
IK Arm, aerodynamic and mass model improvements, and MPS engine gimballing by Chris Jeppesen (kwan3217). Copyright © 2006-2007 Chris Jeppesen.
 +
 
 +
Payload bay and RMS cameras by Francisco López (panchi). Copyright © 2006-2007 Francisco López.
 +
 
 +
VC 3D panels and textures by Don Gallagher (Donamy). Copyright © 2006-2007 Don Gallagher.
 +
 
 +
Our changes are released under the GNU Library GPL. As this is a derivative work of the stock Atlantis, Martin Schweiger and the other original authors retain copyright on the parts we didn’t change. Martin’s original work is used by permission.
 +
 
 +
== Help Wanted ==
 +
If you want to add any features to Space Shuttle Deluxe, and you feel you have the skills, let us know! We need
 +
*Test Pilots
 +
*Feature Suggestions
 +
*People willing to code features
 +
 
 +
Our project is intended to be open to anyone with skills relating to developing addons. Coding, modeling, texturing, documentation, test pilots, whatever. If you wish to participate, send a forum PM to kwan3217 stating how you wish to contribute.
 +
 
 +
Anyone is welcome to look at our code, see how we did stuff, and incorporate our ideas into their projects. Anyone is welcome to include code from our project into theirs, subject to the terms of the GNU Library GPL. I’m in the process of setting up read-only anonymous access to the source code repository, but before that, PM me to get instructions on how to get the code.
 +
 
 +
 
 +
== User Manual ==
 +
=== Introduction ===
 +
Kwan Space Shuttle is an effort by members of the Orbiter Forum (http://orbit.m6.net/forum/) to improve the stock Atlantis. For instance, the RMS arm does not act anything like the arm in the real shuttle. The instrument panels are very realistically rendered, but most of the switches and buttons are inert. The aerodynamic model is inadequate for simulating reentry.
 +
 
 +
Kwan is from a Tagalog word, meaning “whatever.” It is used in place of a noun or verb
 +
 
 +
Our aim is to make a model of the Space Shuttle which is as realistic as possible, at the expense of everything, including possibly ease of use. Remember, Orbiter is no game.
 +
 
 +
This manual discusses the changes implemented so far in this project, and how to use them
 +
 
 +
=== Inverse Kinematics RMS Arm ===
 +
==== Introduction ====
 +
Kinematics is the study of motion, independent of force (that’s dynamics). In robotics, forward kinematics is the method of using the joint rotation angles and other actuator states to determine the location of the end effector. Inverse kinematics, or IK, is the method used to find joint angles given a target location.
 +
 
 +
Think about how you move your own arm. When you reach out to grab something, you don’t consciously think “Well, I have to rotate my shoulder so much, my elbow like this, and do it all at the right speed.” You just think of your hand being in the right place, and your motor control center (down in your cerebellum) figures out how to do it. It’s instinctive for a person, and can be programmed into a robot.
 +
 
 +
On the real space shuttle, the RMS arm is controlled primarily by the aft translation and rotation controllers. The translation controller is used to move the end effector, and the rotation controller is used to aim it. In this mode, the arm computer figures out what speed to rotate each joint at in order to satisfy a translation or rotation command. The crew can control the arm manually by moving each joint, but this is clearly not the easiest way to do it. Up to now in Orbiter, only this manual joint-by-joint mode has been available. This addon fixes that. It allows you to command a translation of the end effector, and have the machine satisfy it in whatever way is necessary.
 +
 
 +
==== How to use IK ====
 +
The control panel (pictured to the right) is similar to the standard RMS control panel, with the addition of a new cluster of buttons, marked “Translation”. These buttons are used to directly command the end effector to move in a straight line along one of the cargo bay axes.
 +
 
 +
The cargo bay reference frame is as follows: The origin is at the center of the shoulder pitch joint.
 +
*The X axis extends down the cargo bay sill, from nose to tail. As you are looking out one of the aft flight deck windows, +X is directly away from you and –X is directly towards you.
 +
*The Y axis extends across the cargo bay, from arm joint towards the KU antenna. Again, looking out the rear windows, +Y is to the left and –Y is to the right.
 +
*The Z axis is perpendicular to X and Y, and completes a right-handed system. +Z is “up” and –Z is “down”, again from the point of view of the aft flight deck.
 +
 
 +
Simply push and hold one of the buttons, and the arm end effector (actually the center of the wrist pitch joint) will move in the indicated direction. All the joints will move at the appropriate speed to move the end effector at 0.1m/s. If a translation command would move the wrist to a point the arm can’t reach, the arm will ignore the translation command and stop moving.
 +
 
 +
There is only a limited amount of rotational IK in place now. The wrist pitch joint is rotated such that it stays at the same angle, regardless of how the shoulder and elbow pitch joints move. Other than that, you are on your own. I recommend using the wrist yaw and roll joints only minimally, and then only after the wrist is already translated to the correct position to grapple an object.
 +
 
 +
All of the other direct joint buttons still work as before. The only other difference is that the arm, when stowed, goes to a perfectly straight configuration.
 +
 
 +
==== How to include IK in your own vessel ====
 +
This section is only for those who code their own vessels. If you don’t intend to build the arm into your own program, you don’t have to read this section.
 +
 
 +
The IK arm requires a change to the Atlantis.rc resource file to include the new buttons, new code in the dialog handler to handle these buttons, a couple of functions to handle the IK itself, and additions to the orbiter setup to set things up for IK.
 +
 
 +
Most of the new code is in Atlantis.cpp. This includes the new function SetAnimationIKArm to actually move the arm in response to a command, changes to RMS_DlgProc to handle the new buttons and generate IK commands, and additions to DefineAnimations to gather the correct information about the arm geometry that the IK routine needs. It also includes code incidental to the new aerodynamic model and code which flaps the body flap.
 +
 
 +
A separate tech note the derivation of the forward and inverse kinematics equations is included in this package.
 +
 
 +
=== Aerodynamics and Mass model improvements ===
 +
Various changes to the mass, engine power, and aerodynamics model have been made. Although these are designed to make the model more realistic, most of them have the actual effect of improving the performance of the vehicle. In particular, the accurate empty mass of the vehicle is much lower than previously coded. The boosters have significantly increased peak thrust, but a more realistic thrust curve.
 +
 
 +
Most of these changes are transparent to the pilot. You don’t have to fly the ship any differently, it just may “feel” a little bit different.
 +
 
 +
The new aerodynamic model is a significant realism improvement over any previous shuttle model, but its performance is somewhat less than that used by David413’s Shuttle Fleet. In particular, this vehicle has significantly less crossrange capability, compared to the fleet. Entries will have to be flown somewhat more carefully with this model, but users report that the AutoFCS addon has no difficulty flying this model.
 +
 
 +
=== MPS Engine Steering ===
 +
The stock Atlantis has limited Main Propulsion System (MPS) steering. In particular, it was limited to steering the center SSME to compensate for changes in thrust of the SRBs. Maneuvering during the launch phase depended on a set of invisible RCS engines scattered about the stack.
 +
 
 +
This version has an improved MPS steering system. The center engine is still used to compensate for SRB thrust, but the left and right engines, and SRBs while they are attached, are also gimbaled in response to commands to the RCS. To the pilot, the ship will still be steerable as usual. Just make sure the controller is in rotation mode and steer like normal. However, if you look outside during launch, you will see that the engine exhaust jets steer in response to steering commands. No RCS is needed during launch phase. The normal shuttle RCS becomes active as soon as the MPS thrust drops below 10%.
 +
 
 +
=== Payload Bay Cameras ===
 +
There are five new camera views: The four cameras at the corners of the payload bay, and the camera on the RMS end effector. These are accessable as normal VC views by pressing Ctrl-Arrow. A chart of the available VC views, including old cockpit views and new camera views, appears below.
 +
 
 +
{|border=1
 +
|-
 +
|Cockpit View||Left||Right|| Up|| Down
 +
|-
 +
|Commander|| -|| Pilot|| -|| Aft
 +
|-
 +
|Pilot|| Commander|| -|| -|| Aft
 +
|-
 +
|Aft Flight Deck|| Pilot|| Commander|| RMS|| Commander
 +
|-
 +
|RMS|| -|| -|| FL|| Aft
 +
|-
 +
|FL Payload Bay|| FR|| -|| BL|| RMS
 +
|-
 +
|FR Payload Bay|| -|| FL|| BR|| RMS
 +
|-
 +
|BL Payload Bay|| -|| BR|| FL|| RMS
 +
|-
 +
|BR Payload Bay|| BL|| -|| FR|| RMS
 +
|}
 +
 
 +
Also, the new Payload camera control panel is available. To access it, press ctrl-Space, then select Payload camera operations. To rotate a camera, select it with the Camera radio button, then use the rotation controls to pan the camera.
 +
 
 +
=== Landing Gear Control ===
 +
The landing gear is now controlled by the buttons on panel F6, right below the Commander's MFDs. There are two covered buttons there, one to arm the landing gear system (ARM) and one to lower the gear (DN).
 +
 
 +
You can use {{key|Ctrl}}-{{key|G}} to arm the gear, and {{key|G}} to lower them
 +
 
 +
'''DO NOT''' lower the landing gear in space, as you can't re-raise them.
 +
 
 +
=== Known issues, bugs, and other unplanned features ===
 +
Bugs? Surely you jest! Well, maybe one or two…
 +
 
 +
*Don’t use the Payload camera rotation controls when you are not looking through a payload camera. Doing this will cause the camera to look at an odd angle, and no longer respond to the rotation control butons. To fix this, just hop to a different VC location, then hop back.
 +
*The MPS engine steering still only uses the center engine to counteract changes in thrust in the SRBs. Near SRB burnout, the center engine pitch will increase to unreasonable levels.
 +
*MPS engine yaw steering is not pure yaw. Some of the yaw command couples into the roll axis.

Revision as of 16:31, 10 February 2007

Project home: OrbitHangar
Author: Kwan3217, Donamy, Panchi, You!
Current version: Unknown
Compatibility: Unknown

Space Shuttle Deluxe is based on the code and model of the stock Atlantis which comes with Orbiter 060929. Since it is in a state of continuous slow flux, it is better to host its manual here.

Credits

IK Arm, aerodynamic and mass model improvements, and MPS engine gimballing by Chris Jeppesen (kwan3217). Copyright © 2006-2007 Chris Jeppesen.

Payload bay and RMS cameras by Francisco López (panchi). Copyright © 2006-2007 Francisco López.

VC 3D panels and textures by Don Gallagher (Donamy). Copyright © 2006-2007 Don Gallagher.

Our changes are released under the GNU Library GPL. As this is a derivative work of the stock Atlantis, Martin Schweiger and the other original authors retain copyright on the parts we didn’t change. Martin’s original work is used by permission.

Help Wanted

If you want to add any features to Space Shuttle Deluxe, and you feel you have the skills, let us know! We need

  • Test Pilots
  • Feature Suggestions
  • People willing to code features

Our project is intended to be open to anyone with skills relating to developing addons. Coding, modeling, texturing, documentation, test pilots, whatever. If you wish to participate, send a forum PM to kwan3217 stating how you wish to contribute.

Anyone is welcome to look at our code, see how we did stuff, and incorporate our ideas into their projects. Anyone is welcome to include code from our project into theirs, subject to the terms of the GNU Library GPL. I’m in the process of setting up read-only anonymous access to the source code repository, but before that, PM me to get instructions on how to get the code.


User Manual

Introduction

Kwan Space Shuttle is an effort by members of the Orbiter Forum (http://orbit.m6.net/forum/) to improve the stock Atlantis. For instance, the RMS arm does not act anything like the arm in the real shuttle. The instrument panels are very realistically rendered, but most of the switches and buttons are inert. The aerodynamic model is inadequate for simulating reentry.

Kwan is from a Tagalog word, meaning “whatever.” It is used in place of a noun or verb

Our aim is to make a model of the Space Shuttle which is as realistic as possible, at the expense of everything, including possibly ease of use. Remember, Orbiter is no game.

This manual discusses the changes implemented so far in this project, and how to use them

Inverse Kinematics RMS Arm

Introduction

Kinematics is the study of motion, independent of force (that’s dynamics). In robotics, forward kinematics is the method of using the joint rotation angles and other actuator states to determine the location of the end effector. Inverse kinematics, or IK, is the method used to find joint angles given a target location.

Think about how you move your own arm. When you reach out to grab something, you don’t consciously think “Well, I have to rotate my shoulder so much, my elbow like this, and do it all at the right speed.” You just think of your hand being in the right place, and your motor control center (down in your cerebellum) figures out how to do it. It’s instinctive for a person, and can be programmed into a robot.

On the real space shuttle, the RMS arm is controlled primarily by the aft translation and rotation controllers. The translation controller is used to move the end effector, and the rotation controller is used to aim it. In this mode, the arm computer figures out what speed to rotate each joint at in order to satisfy a translation or rotation command. The crew can control the arm manually by moving each joint, but this is clearly not the easiest way to do it. Up to now in Orbiter, only this manual joint-by-joint mode has been available. This addon fixes that. It allows you to command a translation of the end effector, and have the machine satisfy it in whatever way is necessary.

How to use IK

The control panel (pictured to the right) is similar to the standard RMS control panel, with the addition of a new cluster of buttons, marked “Translation”. These buttons are used to directly command the end effector to move in a straight line along one of the cargo bay axes.

The cargo bay reference frame is as follows: The origin is at the center of the shoulder pitch joint.

  • The X axis extends down the cargo bay sill, from nose to tail. As you are looking out one of the aft flight deck windows, +X is directly away from you and –X is directly towards you.
  • The Y axis extends across the cargo bay, from arm joint towards the KU antenna. Again, looking out the rear windows, +Y is to the left and –Y is to the right.
  • The Z axis is perpendicular to X and Y, and completes a right-handed system. +Z is “up” and –Z is “down”, again from the point of view of the aft flight deck.

Simply push and hold one of the buttons, and the arm end effector (actually the center of the wrist pitch joint) will move in the indicated direction. All the joints will move at the appropriate speed to move the end effector at 0.1m/s. If a translation command would move the wrist to a point the arm can’t reach, the arm will ignore the translation command and stop moving.

There is only a limited amount of rotational IK in place now. The wrist pitch joint is rotated such that it stays at the same angle, regardless of how the shoulder and elbow pitch joints move. Other than that, you are on your own. I recommend using the wrist yaw and roll joints only minimally, and then only after the wrist is already translated to the correct position to grapple an object.

All of the other direct joint buttons still work as before. The only other difference is that the arm, when stowed, goes to a perfectly straight configuration.

How to include IK in your own vessel

This section is only for those who code their own vessels. If you don’t intend to build the arm into your own program, you don’t have to read this section.

The IK arm requires a change to the Atlantis.rc resource file to include the new buttons, new code in the dialog handler to handle these buttons, a couple of functions to handle the IK itself, and additions to the orbiter setup to set things up for IK.

Most of the new code is in Atlantis.cpp. This includes the new function SetAnimationIKArm to actually move the arm in response to a command, changes to RMS_DlgProc to handle the new buttons and generate IK commands, and additions to DefineAnimations to gather the correct information about the arm geometry that the IK routine needs. It also includes code incidental to the new aerodynamic model and code which flaps the body flap.

A separate tech note the derivation of the forward and inverse kinematics equations is included in this package.

Aerodynamics and Mass model improvements

Various changes to the mass, engine power, and aerodynamics model have been made. Although these are designed to make the model more realistic, most of them have the actual effect of improving the performance of the vehicle. In particular, the accurate empty mass of the vehicle is much lower than previously coded. The boosters have significantly increased peak thrust, but a more realistic thrust curve.

Most of these changes are transparent to the pilot. You don’t have to fly the ship any differently, it just may “feel” a little bit different.

The new aerodynamic model is a significant realism improvement over any previous shuttle model, but its performance is somewhat less than that used by David413’s Shuttle Fleet. In particular, this vehicle has significantly less crossrange capability, compared to the fleet. Entries will have to be flown somewhat more carefully with this model, but users report that the AutoFCS addon has no difficulty flying this model.

MPS Engine Steering

The stock Atlantis has limited Main Propulsion System (MPS) steering. In particular, it was limited to steering the center SSME to compensate for changes in thrust of the SRBs. Maneuvering during the launch phase depended on a set of invisible RCS engines scattered about the stack.

This version has an improved MPS steering system. The center engine is still used to compensate for SRB thrust, but the left and right engines, and SRBs while they are attached, are also gimbaled in response to commands to the RCS. To the pilot, the ship will still be steerable as usual. Just make sure the controller is in rotation mode and steer like normal. However, if you look outside during launch, you will see that the engine exhaust jets steer in response to steering commands. No RCS is needed during launch phase. The normal shuttle RCS becomes active as soon as the MPS thrust drops below 10%.

Payload Bay Cameras

There are five new camera views: The four cameras at the corners of the payload bay, and the camera on the RMS end effector. These are accessable as normal VC views by pressing Ctrl-Arrow. A chart of the available VC views, including old cockpit views and new camera views, appears below.

Cockpit View Left Right Up Down
Commander - Pilot - Aft
Pilot Commander - - Aft
Aft Flight Deck Pilot Commander RMS Commander
RMS - - FL Aft
FL Payload Bay FR - BL RMS
FR Payload Bay - FL BR RMS
BL Payload Bay - BR FL RMS
BR Payload Bay BL - FR RMS

Also, the new Payload camera control panel is available. To access it, press ctrl-Space, then select Payload camera operations. To rotate a camera, select it with the Camera radio button, then use the rotation controls to pan the camera.

Landing Gear Control

The landing gear is now controlled by the buttons on panel F6, right below the Commander's MFDs. There are two covered buttons there, one to arm the landing gear system (ARM) and one to lower the gear (DN).

You can use Ctrl-G to arm the gear, and G to lower them

DO NOT lower the landing gear in space, as you can't re-raise them.

Known issues, bugs, and other unplanned features

Bugs? Surely you jest! Well, maybe one or two…

  • Don’t use the Payload camera rotation controls when you are not looking through a payload camera. Doing this will cause the camera to look at an odd angle, and no longer respond to the rotation control butons. To fix this, just hop to a different VC location, then hop back.
  • The MPS engine steering still only uses the center engine to counteract changes in thrust in the SRBs. Near SRB burnout, the center engine pitch will increase to unreasonable levels.
  • MPS engine yaw steering is not pure yaw. Some of the yaw command couples into the roll axis.