projects > cpacs > While at Boeing I led the development team creating a software tool called CPACS that manifested and laid out all the
cargo going into the Space Shuttle for resupply flights to the International Space Station. This was very advanced
software for the time, tackling the NP-hard 3D bin packing problem. We delivered CPACS to NASA under budget and
ahead of schedule.
CPACS is a software application written to support cargo planning and analysis for the International Space Station. The Space Station will be periodically resupplied using NASA's fleet of space shuttles. Each shuttle will transport cargo carriers to and from the station, packed with experiment payloads, crew supplies, spare parts, and other items essential to maintaining station operations. CPACS will help produce near-optimal configurations for these carriers, maximizing the efficiency of this complex logistics system. CPACS is a comprehensive, multi-user planning and automation tool designed to ease this complex load planning task. CPACS provides its users with two major features: an integrated set of graphical user interfaces designed to support the development, analysis, and integration of load plans, and a set of fully automated optimization algorithms which "pack" cargo carriers and perform other load planning tasks. The Configuration Editor supports the main functionality of CPACS -- building load plans.
A load plan specifies a position for each item on each packing level.
The screen below shows the stowage tray packing level. On the right we see the trays we are
packing and on the left are some as yet unpositioned cargo items. CPACS draws a cargo item as a black box while the user positions it. He/she can
move the item around within the tray using the mouse. Note how CPACS redraws the
tray views and the weight scale when the new cargo item is added. Here's a detailed look at a stowage tray. The cargo items shown in the top-down and
perspective views are listed to the right by part ID. This is the tray's stowage list.
The color of a cargo item indicates its customer. Item number 1, CPACS-PRESS-CI-1462,
is yellow -- so it belongs to the same customer we saw in the Zone Editor example. We can see by the weight scale in the lower left-hand corner, that we are very near
the mass limit for this tray. The scale shows 56.31 lbs as the sum of the weight of the
tray itself, the cargo items, and the weight of the foam that will surround the cargo. These are examples of trays that CPACS has packed automatically. For small
problems like these, CPACS can produce a pack in just a few seconds. The
automated algorithms try the cargo items in various orders and orientations
much as a person would. The user can adjust the algorithms so that they
will try more combinations. This makes them run longer, but they may come
up with slightly better results. Whether you pack automatically or manually, CPACS is always keeping track
of several packing constraints for you. CPACS tracks a wide variety of packing constraints as the configuration is
being developed. Here are some examples ...
| Weight limits
|
|
No container can be packed beyond its loading limit.
|
| Center of gravity
|
|
Containers also have center of gravity requirements. CPACS will insure that the
CG stays within a given range.
|
| Mass allocations
|
|
A customer's packed cargo cannot weigh more than their mass allocation.
|
| Occlusion
|
|
Occlusion means that two items are occupying the same physical space at the same
time! This is not allowed.
|
| Orientation
|
|
Items can have required orientations. CPACS will inforce this.
|
| Zones
|
|
Customers must keep their cargo within the zones defined in the Zone Editor.
|
Once the trays are packed to our liking, we can move on to the next level -- the
stowage rack. This interface is analogous to the tray level. The containers, racks
this time, are on the right and the unpositioned containees, trays, are on the left. This window offers more mass properties detail for the stowage rack. CPACS always keeps
track of weights, centers of gravity, and moments and products of inertia. It's important
to remember that these values represent the integrated stowage rack, including the
trays and cargo items within them. The Mini-Pressurized Logistics Element, or MPLM, is a large cylindrical module that
sits in the orbiter's payload bay. It accommodates various kinds of racks including
the stowage rack we've been working on. Again, the process is similar -- just on a larger
scale. And that pretty much wraps it up! This is the payload bay of the Space
Shuttle orbiter with the MPLM, racks, trays, and cargo items we've been
packing. The final product of this process is a complete configuration for an entire
flight -- including pictures of each container and its cargo.