New Docking Method
Project Apollo Docking Method Completion Checklist and Notes
The goal of the new docking method is to create a smooth, more realistic docking behavior, through creative use of attachments and inter-vehicle communication. The principle design concept involved is that of using attachments as "pre-dock" states. This is accomplished because attachments do not automatically connect, and only connect upon external request. There consists three programming focuses in this project. The first, a tracking method, will be established whereupon the "active" docking entity will seek out compatible passive entities to determine their current spacial relationship. The second focus involves handling the docking requirement test. As the two entities come within extremely close proximity, as determined by the first focus, a collision & docking detection routine will account for any resulting physics of the collision. Additionally it will check to see that any systems criteria have been met, and initiate the attachment process. The third and final focus is activated once both the first and second have met docking criteria. This third programming focus centers around converting the "loose" attachment into a "hard" dock, replacing the attachment point with a docking port and forcing a dock between the two vessels.
Docking port definition with mesh files shall be structured using a mesh group of 3(or 4) vertices. The first vertex contains the docking port origin. This is the location of actual docking between two vessels' docking ports. The second vertex defines the characteristic depth of the docking port and the orientation vector when combined with the first vertex. The third vertex defines the characteristic width and the rotational orientation of the docking port when combined with the first two. The optional forth vertex has no spatial meaning, but instead contains identifying data about the docking port to be defined at a later time.
These are the methods that are up for debate...
Setting the ACTIVE and PASSIVE docking entities:
- 1: Automatically detect closest compatible docking entity.
- 2: Manually set entities via user input.
STEPS TO COMPLETION:
M1,M2, etc. are MILESTONE steps.
Preparing the Vessels:
- 1: Implant docking port mesh groups into mesh files to allow dynamic changing of docking ports outside of source code.
- 2: Standardize and abstract the docking port definition system within the source code.
- 3: Implement a docking definition extraction routine in source code to read and apply docking port locations to vessels from their respective meshes.
- M1: Above changes implemented with no change in current docking behavior.
M3 must be reached to move beyond this point
- 4: Replace docking ports with attachment points.
- M4: Two docking entities properly attach automatically when in proper orientation.
Docking Detection Program:
- 1: Determine current ACTIVE and PASSIVE entities.
- 2: Establish a communication path between the ACTIVE and PASSIVE docking entities.
- 3: Write the spatial comparator routine. Must compare only distance.
- M2: ACTIVE entity has complete knowledge of distance of PASSIVE vessel relative from current position
- 4: Write Detection activation into tracking routine when required sphere of proximity has been breached.
- 5: Write routine analyzing both orientation and location of docking ports.
- 6: Check that systems requirements have been met (switches properly set, checklist followed, systems activated,etc).
- M3: ACTIVE entity properly identifies docking conditions met and calls for attachment connection (even if attachment not there).
M4 must be reached to move beyond this point
- 7: Write code to handle converting an attachment into a docking.
- 8: Upon undock, destroy docking port, leaving only attachment.
- M5: Two entities properly docked with no side effects from the attachment/docking port juggling.
-COMMIT: This is the primary goal to commit when at MILESTONE 5-
- 9: Write basic collision handling code into detection routines.
- 10: Apply forces resulting from collisions to the bodies (allowing minor form of forced alignment during docking process).
- M6: Realistic docking behavior implemented.