Patent Description:
Assembly of structures may involve the use of machines, tools, human labor, materials, and/or other suitable items for creating objects. Various assembly line techniques may be used to manufacture objects, such as aircraft structures. With an assembly line, various stationary machines may be positioned along the assembly line to add a part, drill a hole, hold a part, and/or perform some other suitable operation during the assembly of an aircraft structure.

With this type of assembly system, each assembly line may be designed for a particular type of aircraft structure. For example, without limitation, one assembly line may be designed to manufacture aircraft wings, while another assembly line may be designed to manufacture fuselages.

For a particular type of structure, machines may be secured to the floor or may be moveable along rails installed onto the floor and/or in trenches in the floor. Further, with this type of assembly system, conduits, trenches, and/or other suitable structures may be used to run power cables, data lines, and/or other suitable utilities to these machines.

Although these types of assembly lines may provide for decreased cost with economies of scale, these types of assembly systems may be expensive to design and install. For example, although an assembly line may be adaptable to assemble a wing structure for different types of commercial aircraft having a similar size, a separate assembly line may be required to manufacture fuselages. With this limited flexibility, increased space may be required to assemble different types of aircraft structures.

Therefore, it would be advantageous to have a method and apparatus that takes into account one or more of the issues discussed above, as well as possibly other issues.

<CIT>, in accordance with its abstract, states in order to simplify production line layout and revision, a plurality of unmanned self-propelled vehicles are used. Some vehicles carry a work piece from station to station while auxiliary vehicles which remain at each station carry components and assembly robots. Transport vehicle are used to move new components from storage sites to the work place. To facilitate large scale operations a camera can be used to observe the vehicles and compare with movement pattern with a predetermined desired one in order to ascertain appropriate movement.

<CIT>, in accordance with its abstract, states a system for welding of sheet-metal structures, in particular motor-vehicle bodies or sub-assemblies thereof, includes locating frames carrying locating and locking devices of the structures to be welded. The locating frame is provided with a wireless communication port for the communication of the input and output control signals of one or more electric equipments arranged on the locating frame. The power electric supply to the electric equipments on the locating frame is obtained through a contactless magnetic induction supply system.

<CIT> , in accordance with its abstract, states first and second robots for work to execute work to a work object and a robot for carrying materials or the like are arranged. A robot for control and monitor is arranged for organically working these robots. A satellite robot is arranged so as to execute communication among the robots even when there is any wall or construction as obstacles. A robot for power supply is arranged for supplying power to the respective robots. A control panel is arranged for remotely operating the respective robots.

<CIT>, in accordance with its abstract, states there is provided a fastening assembly system for applying fasteners along the seams of a cylindrical structure. The fastening apparatus includes a base unit which releasably attaches to a cylindrical structure, and a first fastening device coupled the base unit for applying fasteners along a seam of the cylindrical structure. The base unit may be embodied as either two crescent shaped members in parallel alignment for attaching to the upper half of the cylindrical structure. Alternatively, the base unit may include a base plate that is attachable to the floor beams on the interior of the cylindrical structure. The first fastening device cooperate with a second fastening device located on the opposite side of the cylindrical structure during the fastening process.

<CIT>, in accordance with its abstract, states there is provided a chassis with a first set of legs with suction pads on tilting supports mounted in a linearly displaceable manner with regard to the chassis and a second set of legs with suction pads mounted in a rotary manner with regard to the chassis. Certain control means are adapted in order to control the functioning of said first and second sets of legs in a coordinated manner for displacing the chassis in any direction on the work surface. It includes support feet and a system for levelling the chassis in relation to a curvature of the work surface. Fitted on the chassis is a work unit with a head for working on the work surface via an opening in the chassis. It includes means for displacing said head along three axes and pivoting the head on two axes with respect to the chassis.

There is described herein an apparatus comprising:.

There is also described herein a method for assembling a structure, the method comprising:.

an internal mobile robotic machine (<NUM>) having a flexible arm (<NUM>) and capable of performing a number of second operations in an interior (<NUM>) of the structure and capable of performing the number of second operations in conjunction with the number of first operations performed by the external mobile robotic machine to assemble the structure.

In one advantageous embodiment, an apparatus may comprise a plurality of mobile robotic machines, a wireless communications system, and a motion control system. The plurality of mobile robotic machines may be capable of moving to a number of locations in an assembly area and may be capable of performing operations to assemble a structure in the assembly area. The wireless communications system may be capable of providing communications with the plurality of mobile robotic machines within the assembly area. The motion control system may be capable of generating position information for the plurality of mobile robotic machines in the assembly area and communicating the position information to the plurality of mobile robotic machines.

In another advantageous embodiment, an assembly system may comprise an external mobile robotic machine and an internal mobile robotic machine. The external mobile robotic machine may be capable of moving around an exterior of a structure and may be capable of performing a number of first operations on the exterior of the structure. The internal mobile robotic machine may be capable of performing a number of second operations in an interior of the structure. The internal mobile robotic machine may also be capable of performing the number of second operations in conjunction with the number of first operations performed by the external mobile robotic machine to assemble the structure.

In yet another advantageous embodiment, a method may be present for assembling a structure. Communications with a plurality of mobile robotic machines may be capable of moving to a number of locations in an assembly area and may be capable of performing operations to assemble the structure in the assembly area may be established using a wireless communications system. Position information for the plurality of mobile robotic machines may be identified using a motion control system. Information may be sent to the plurality of mobile robotic machines. The information may comprise the position information. Operations may be performed to assemble the structure using the position information.

In still another advantageous embodiment, a method is present for assembling an aircraft structure. Communications may be established with a plurality of mobile robotic machines capable of moving to a number of locations in an assembly area and capable of performing operations to assemble the aircraft structure in the assembly area using a wireless communications system. Position information for the plurality of mobile robotic machines may be identified using a motion control system. Information may be sent to the plurality of mobile robotic machines. The information comprises at least one of the position information and a number of programs and commands. Messages may be communicated between the plurality of mobile robotic machines. The operations to assemble the aircraft structure may be performed using the information and the messages.

The novel features believed characteristic of the advantageous embodiments are set forth in the appended claims. The advantageous embodiments, however, as well as a preferred mode of use, further objectives, and advantages thereof, will best be understood by reference to the following detailed description of an advantageous embodiment of the present disclosure when read in conjunction with the accompanying drawings, wherein:.

Referring more particularly to the drawings, embodiments of the disclosure may be described in the context of aircraft manufacturing and service method <NUM> as shown in <FIG> and aircraft <NUM> as shown in <FIG>. Turning first to <FIG>, a diagram illustrating an aircraft manufacturing and service method is depicted in accordance with an advantageous embodiment. During pre-production, aircraft manufacturing and service method <NUM> may include specification and design <NUM> of aircraft <NUM> in <FIG> and material procurement <NUM>.

During production, component and subassembly manufacturing <NUM> and system integration <NUM> of aircraft <NUM> in <FIG> takes place. Thereafter, aircraft <NUM> in <FIG> may go through certification and delivery <NUM> in order to be placed in service
While in service by a customer, aircraft <NUM> in <FIG> may be scheduled for routine maintenance and service <NUM>, which may include modification, reconfiguration, refurbishment, and other maintenance or service.

For the purposes of this description, a system integrator may include, without limitation, any number of aircraft manufacturers and major-system subcontractors; a third party may include, without limitation, any number of vendors, subcontractors, and suppliers; and an operator may be an airline, leasing company, military entity, service organization, and so on.

With reference now to <FIG>, a diagram of an aircraft is depicted in which an advantageous embodiment may be implemented. In this example, aircraft <NUM> is produced by aircraft manufacturing and service method <NUM> in <FIG> and may include airframe <NUM> with a plurality of systems <NUM> and interior <NUM>. Examples of systems <NUM> include one or more of propulsion system <NUM>, electrical system <NUM>, hydraulic system <NUM>, and environmental system <NUM>. Any number of other systems may be included. Although an aerospace example is shown, different advantageous embodiments may be applied to other industries, such as the automotive industry.

Apparatus and methods embodied herein may be employed during any one or more of the stages of aircraft manufacturing and service method <NUM> in <FIG>. For example, components or subassemblies produced in component and subassembly manufacturing <NUM> in <FIG> may be fabricated or manufactured in a manner similar to components or subassemblies produced while aircraft <NUM> is in service <NUM> in <FIG>.

Also, one or more apparatus embodiments, method embodiments, or a combination thereof may be utilized during production stages, such as component and subassembly manufacturing <NUM> and system integration <NUM> in <FIG>, for example, without limitation, by substantially expediting the assembly of or reducing the cost of aircraft <NUM>. Similarly, one or more of apparatus embodiments, method embodiments, or a combination thereof may be utilized while aircraft <NUM> is in service <NUM> or during maintenance and service <NUM> in <FIG>.

The different advantageous embodiments take into account and recognize that although currently used manufacturing techniques may reduce the costs of manufacturing objects, such as aircraft structures, these techniques may be difficult to implement. The different advantageous embodiments recognize and take into account that a different assembly system may be required for different types of aircraft structures.

For example, the different advantageous embodiments recognize and take into account that an aircraft assembly system designed for manufacturing aircraft wings may not be suitable for use in manufacturing aircraft fuselages. The different advantageous embodiments recognize and take into account that the manufacturing floor may be specifically designed for a particular type of structure.

The different advantageous embodiments recognize and take into account that a different type of aircraft structure may require a different layout for which the existing layout cannot be modified. The different advantageous embodiments recognize and take into account that stationary machines may be difficult to move, replace, and/or remount in different locations for different types of aircraft structures. The different advantageous embodiments recognize and take into account that although this type of change may be made, the change may be time consuming and expensive.

The different advantageous embodiments also recognize and take into account that the trenches and conduits in the manufacturing floor may be even more difficult to change and/or reroute. The time and expense needed to reroute power lines, data lines, and/or other utilities may require creating new trenches and/or conduits in the ground of the manufacturing area. The different advantageous embodiments recognize and take into account that this type of change, along with removing and remounting stationary machines to new locations, may be expensive.

In addition, the different advantageous embodiments recognize and take into account that in addition to the expense, the time needed to make these changes may make the manufacturing facility unavailable during that period of time. As a result, the different advantageous embodiments recognize and take into account that manufacturing times may increase and/or may cause delays in delivering products.

Thus, one or more of the advantageous embodiments may provide an apparatus that comprises a plurality of mobile robotic machines, a wireless communications system, and a motion control system. The plurality of mobile robotic machines may be capable of moving to a number of locations in an assembly area and may be capable of performing operations to assemble a structure in the assembly area. A number, as used herein, refers to one or more items. For example, a number of locations may be one or more locations.

The wireless communications system may be capable of providing communications with the plurality of mobile robotic machines within the assembly area. The motion control system may be capable of generating position information for the plurality of mobile robotic machines in the assembly area and communicating the position information to the plurality of mobile robotic machines.

As a specific illustrative example, one or more of the different advantageous embodiments may be implemented during component and subassembly manufacturing <NUM> to assemble a structure for aircraft <NUM>. For example, the different advantageous embodiments may be used to assemble at least one of a wing, a fuselage, or some other suitable structure. As used herein, the phrase "at least one of", when used with a list of items, means that different combinations of one or more of the items may be used and only one of each item in the list may be needed. For example, "at least one of item A, item B, and item C" may include, for example, without limitation, item A or item A and item B.

Further, the different advantageous embodiments also may be used during maintenance and service <NUM> to assemble replacement structures, perform maintenance on existing structures, perform repairs on existing structures, and/or other suitable operations for structures in aircraft <NUM>.

With reference now to <FIG>, an illustration of an assembly environment is depicted in accordance with an advantageous embodiment. Assembly environment <NUM> is an example of an assembly environment that may be used to assemble structure <NUM>. Structure <NUM> may have exterior <NUM> and interior <NUM>.

In this illustrative example, assembly environment <NUM> may include assembly system <NUM>. In the different illustrative examples, assembly system <NUM> may be an autonomous assembly system that may reconfigure itself to perform assembly of different types of structures in a manner faster than currently available assembly systems.

Structure <NUM> may be a structure for an object such as, for example, aircraft <NUM> in <FIG>. Structure <NUM> may take various forms. For example, without limitation, structure <NUM> may be wing <NUM>, fuselage <NUM>, engine <NUM>, and/or some other suitable type of structure.

In this illustrative example, structure <NUM> may be assembled in assembly area <NUM>. Assembly area <NUM> may include floor <NUM>. In this illustrative example, floor <NUM> may not require specialized fixed structures, trenches, underground conduits, and/or other infrastructures that may be used in currently available assembly environments.

Assembly system <NUM> may include computer system <NUM>, motion control system <NUM>, wireless communications system <NUM>, plurality of mobile robotic machines <NUM>, racks <NUM>, and/or other suitable components.

In these illustrative examples, plurality of mobile robotic machines <NUM> may perform operations <NUM> to assemble structure <NUM>. In these illustrative examples, plurality of mobile robotic machines <NUM> may include, for example, without limitation, number of internal mobile robotic machines <NUM>, number of external mobile robotic machines <NUM>, number of servicing manipulators <NUM>, number of flexible fixtures <NUM>, and/or other suitable types of mobile robotic machines.

Number of internal mobile robotic machines <NUM> may be capable of performing operations <NUM> in interior <NUM> of structure <NUM>. Number of internal mobile robotic machines <NUM> may move into interior <NUM> and/or reach into interior <NUM> of structure <NUM> to perform operations <NUM>. Number of external mobile robotic machines <NUM> may perform operations <NUM> on exterior <NUM> of structure <NUM>. In these illustrative examples, one or more of operations <NUM> may be grouped together to form a task within tasks <NUM>.

Number of servicing manipulators <NUM> may provide supplies to various robotic machines, such as number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM>. Number of flexible fixtures <NUM> may be capable of holding structure <NUM> and/or parts <NUM> for structure <NUM>. Parts <NUM> may be objects and/or materials used to assemble structure <NUM>. Number of flexible fixtures <NUM> also may be capable of positioning and/or moving structure <NUM>. For example, number of flexible fixtures <NUM> may be capable of moving and/or positioning structure <NUM> within assembly area <NUM> during assembly of structure <NUM>.

Further, number of flexible fixtures <NUM> may be capable of moving structure <NUM> out of assembly area <NUM> after assembly of structure <NUM> has been completed. Parts <NUM> may include, for example, without limitation, a panel, a frame, a rib, a spar, an engine casing, and/or some other suitable type of part.

In the illustrative examples, operations <NUM> may be, for example, without limitation, clamping, drilling, fastening, sealing, painting, sanding, routing, milling, inspecting, measuring, and/or other suitable types of operations.

Wireless communications system <NUM> are used to exchange information <NUM> between plurality of mobile robotic machines <NUM> and optionally between plurality of mobile robotic machines <NUM> and computer system <NUM>. Information <NUM> may be exchanged between different machines within plurality of mobile robotic machines <NUM> as well as between computer system <NUM> and plurality of mobile robotic machines <NUM>. Information <NUM> may include, for example, without limitation, messages <NUM>, position information <NUM>, commands <NUM>, programs <NUM>, and/or other suitable types of information.

Messages <NUM> may be, for example, without limitation, status messages, requests, alerts, errors, and/or other suitable types of messages. Position information <NUM> may provide a position for one or more of plurality of mobile robotic machines <NUM> within assembly area <NUM>. For example, plurality of mobile robotic machines <NUM> may be located in number of locations <NUM>. These locations, as well as positions of various portions of plurality of mobile robotic machines <NUM>, may form position information <NUM>.

Commands <NUM> may be issued by process <NUM> executed on computer system <NUM> and/or other machines within plurality of mobile robotic machines <NUM>. Programs <NUM> may contain computer readable instructions in a functional form that can be executed by plurality of mobile robotic machines <NUM> to perform operations <NUM>.

Programs <NUM> may be sent before and/or during execution of operations <NUM>. For example, if a particular mobile robotic machine in plurality of mobile robotic machines <NUM> completes a task, a new program in programs <NUM> may be sent to that robotic machine to cause the robotic machine to perform a new task.

Motion control system <NUM> may provide position information <NUM> for communication between plurality of mobile robotic machines <NUM> and/or computer system <NUM> over wireless communications system <NUM>. Motion control system <NUM> may include controller <NUM>, sensors <NUM>, communications units <NUM>, and/or other suitable components.

Sensors <NUM> may collect information about the position of plurality of mobile robotic machines <NUM>, parts <NUM>, and/or other suitable objects. Communications units <NUM> may receive information from sensors <NUM> and/or request position information <NUM> from sensors <NUM>.

Position information <NUM> may be used to avoid collisions of plurality of mobile robotic machines <NUM> with each other and/or other objects within assembly area <NUM>. Further, position information <NUM> may be used to coordinate performing operations <NUM> between plurality of mobile robotic machines <NUM>. Communications units <NUM> may include, for example, without limitation, transmitters, receivers, transceivers, and/or other suitable types of communication devices.

Controller <NUM> may distribute position information <NUM> over wireless communications system <NUM>. Sensors <NUM> may include, for example, without limitation, a camera, a global positioning system unit, a radio frequency identifier, and/or some other suitable type of sensor. Sensors <NUM> may be located on plurality of mobile robotic machines <NUM>, on floor <NUM> in assembly area <NUM>, and/or at other locations suitable for use in generating position information <NUM>.

In assembling structure <NUM>, racks <NUM> may provide supplies <NUM>. Supplies <NUM> may include, for example, without limitation, parts <NUM>, end effectors <NUM>, power units <NUM>, tools <NUM>, fasteners <NUM>, sealant <NUM>, paint <NUM>, adhesive <NUM>, and/or other suitable materials.

Further, racks <NUM> may be mobile and may move to and/or around number of locations <NUM> to provide supplies to plurality of mobile robotic machines <NUM>. In some advantageous embodiments, number of servicing manipulators <NUM> may obtain supplies <NUM> from racks <NUM> and transport supplies <NUM> to plurality of mobile robotic machines <NUM>.

With assembly system <NUM>, plurality of mobile robotic machines <NUM> may move from home location <NUM> to number of locations <NUM> to perform operations <NUM> to assemble structure <NUM>. In the different advantageous embodiments, plurality of mobile robotic machines <NUM> may move and change locations within number of locations <NUM> during the performance of operations
<NUM>.

Further, in some advantageous embodiments, structure <NUM> may remain stationary during the performance of operations <NUM>. In yet other advantageous embodiments, number of flexible fixtures <NUM> may reposition and/or move structure <NUM> within assembly area <NUM> during the performance of operations <NUM>. This movement may be similar to that in fixed assembly systems currently used.

When operations <NUM> are completed, plurality of mobile robotic machines <NUM>, racks <NUM>, and other mobile objects in assembly system <NUM> may move to home location <NUM>. This movement may leave floor <NUM> clear and ready for other types of operations.

Further, with assembly system <NUM>, increased flexibility may be present in manufacturing different types of structures as compared to currently available manufacturing systems. For example, plurality of mobile robotic machines <NUM> may switch from assembling structure <NUM> in the form of wing <NUM> to fuselage <NUM> or to engine <NUM> by receiving new programs from programs <NUM> from computer system <NUM>.

Also, the assembly of a particular type of structure may be facilitated by the selection of needed supplies from supplies <NUM> on racks <NUM>. With programs <NUM> for a particular type of structure, number of locations <NUM> may change. Plurality of mobile robotic machines <NUM> may provide a capability to move to different locations within number of locations <NUM> needed for different types of structures.

This movement may not require rerouting of power lines, conduits, trenches, rails, and/or other suitable types of cables. Further, de-attaching and reattaching robotic machines in new locations also may be avoided. As a result, less time may be needed to change assembly system <NUM> from one type of structure to another. Making changes to assemble different types of structures may be performed with less time and cost as compared to currently available systems.

Also, assembly system <NUM> may be used to assemble other types of structures other than those for aircraft. With a change in programs <NUM> and/or supplies <NUM>, assembly system <NUM> may be used to assemble structures for other objects such as, for example, without limitation, cars, submarines, ships, tanks, and/or other suitable objects.

Computer-system <NUM> also may monitor the health of various components in assembly system <NUM>. For example, computer system <NUM> may monitor health <NUM> for plurality of mobile robotic machines <NUM>. The level and/or amount of supplies <NUM> on racks <NUM> also may be monitored by computer system <NUM>.

When portions of plurality of mobile robotic machines <NUM> become worn out, those portions may be changed during the performance of operations <NUM>. These changes may be performed using number of servicing manipulators <NUM>. In this manner, the time to exchange worn out portions of plurality of mobile robotic machines <NUM> or to replace supplies <NUM> used by plurality of mobile robotic machines <NUM> may be reduced.

+Further, process <NUM> executing on computer system <NUM> may create history <NUM> for the assembly of structure <NUM>. History <NUM> may be analyzed to identify improvements and/or changes needed for future assembly operations.

In performing assembly of structure <NUM>, computer system <NUM> may transmit programs <NUM> to plurality of mobile robotic machines <NUM>. Plurality of mobile robotic machines <NUM> may move from home location <NUM> to number of locations <NUM>. Racks <NUM> may be positioned within appropriate locations in number of locations <NUM>.

Thereafter, operations <NUM> may begin to perform assembly of structure <NUM>. After assembly of structure <NUM> has been completed, plurality of mobile robotic machines <NUM> may return to home location <NUM>.

At that time, assembly area <NUM> may be ready for the assembly of another structure. The new structure may be the same type as structure <NUM> or a different type of structure. Further, the assembly of the next structure may be performed using plurality of mobile robotic machines <NUM> or another group of mobile robotic machines.

The illustration of assembly environment <NUM> in <FIG> is not meant to imply physical or architectural limitations to the manner in which different advantageous embodiments may be implemented. Other components in addition to and/or in place of the ones illustrated may be used. Some components may be unnecessary in some advantageous embodiments. Also, the blocks are presented to illustrate some functional components. One or more of these blocks may be combined and/or divided into different blocks when implemented in different advantageous embodiments.

For example, in some advantageous embodiments, number of servicing manipulators <NUM> may be unnecessary. With this type of embodiment, plurality of mobile robotic machines <NUM> may return to racks <NUM> to obtain supplies <NUM>.

Further, in some advantageous embodiments, an additional structure, in addition to structure <NUM>, may be assembled within assembly area <NUM> by plurality of mobile robotic machines <NUM>. Plurality of mobile robotic machines <NUM> may move from location to location within number of locations <NUM> to perform assembly of both structures concurrently. Further, a particular mobile robotic machine within plurality of mobile robotic machines <NUM> may perform more than one task.

As one task is completed in assembly of structure <NUM>, a mobile robotic machine may receive a new program to perform another task needed to complete assembly of structure <NUM>. Also, in some advantageous embodiments, having both internal mobile robotic machines and external mobile robotic machines may be unnecessary. In some advantageous embodiments, a mobile robotic machine may perform both types of functions and may switch functions during the assembly of structure <NUM>.

Turning now to <FIG>, an illustration of an assembly process is depicted in accordance with an advantageous embodiment. In this depicted example, mobile robotic machine <NUM> and mobile robotic machine <NUM> may be part of plurality of mobile robotic machines <NUM> in <FIG> performing operations <NUM> on a structure.

In this illustrative example, mobile robotic machine <NUM> and mobile robotic machine <NUM> may move to location <NUM> on structure <NUM>. Structure <NUM> may be one example of a structure such as, for example, without limitation, structure <NUM> in <FIG>. In this illustrative example, mobile robotic machine <NUM>*may be located on surface <NUM> of structure <NUM>, and mobile robotic machine <NUM> may be located on surface <NUM> of structure <NUM>.

Mobile robotic machine <NUM> and mobile robotic machine <NUM> may perform clamping operations to clamp parts <NUM> to each other. Mobile robotic machine <NUM> may perform a drilling operation to drill hole <NUM> through parts <NUM>. Thereafter, mobile robotic machine <NUM> and mobile robotic machine <NUM> may install fastener <NUM> in hole <NUM> to secure parts <NUM> to each other. Mobile robotic machine <NUM> and mobile robotic machine <NUM> may then cease the clamping operation and move to another location to perform additional operations.

Turning now to <FIG>, an illustration of a data processing system is depicted in accordance with an advantageous embodiment. In this illustrative example, data processing system <NUM> includes communications fabric <NUM>, which provides communications between processor unit <NUM>, memory <NUM>, persistent storage <NUM>, communications unit <NUM>, input/output (I/O) unit <NUM>, and display <NUM>. Data processing system <NUM> may be used in computer system <NUM>, motion control system <NUM>, wireless communications system <NUM>, and within plurality of mobile robotic machines <NUM>. Depending on the particular implementation, different architectures and/or configurations of data processing system <NUM> may be used.

Processor unit <NUM> serves to execute instructions for software that may be loaded into memory <NUM>. Processor unit <NUM> may be a set of one or more processors or may be a multiprocessor core, depending on the particular implementation. Further, processor unit <NUM> may be implemented using one or more heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit <NUM> may be a symmetric multiprocessor system containing multiple processors of the same type.

Memory <NUM> and persistent storage <NUM> are examples of storage devices <NUM>. A storage device may be any piece of hardware that may be capable of storing information such as, for example, without limitation, data, program code in functional form, and/or other suitable information either on a temporary basis and/or a permanent basis. Memory <NUM>, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device.

Persistent storage <NUM> may take various forms depending on the particular implementation. For example, persistent storage <NUM> may contain one or more components or devices. For example, persistent storage <NUM> may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage <NUM> also may be removable.

Communications unit <NUM>, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit <NUM> may be a network interface card. Communications unit <NUM> may provide communications through the use of either or both physical and wireless communications links.

Input/output unit <NUM> allows for input and output of data with other devices that may be connected to data processing system <NUM>. For example, input/output unit <NUM> may provide a connection for user input through a keyboard, a mouse, and/or some other suitable input device. Further, input/output unit <NUM> may send output to a printer. Display <NUM> provides a mechanism to display information to a user.

Instructions for the operating system, applications, and/or programs may be located in storage devices <NUM>, which are in communication with processor unit <NUM> through communications fabric <NUM>. In these illustrative examples, the instructions are in a functional form on persistent storage <NUM>. These instructions may be loaded into memory <NUM> for execution by processor unit <NUM>. The processes of the different embodiments may be performed by processor unit <NUM> using computer-implemented instructions, which may be located in a memory, such as memory <NUM>.

These instructions are referred to as program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit <NUM>. The program code in the different embodiments may be embodied on different physical or tangible computer readable media, such as memory <NUM> or persistent storage <NUM>.

Program code <NUM> may be located in a functional form on computer readable media <NUM> that may be selectively removable and may be loaded onto or transferred to data processing system <NUM> for execution by processor unit <NUM>. Program code <NUM> and computer readable media <NUM> form computer program product <NUM> in these examples. In one example, computer readable media <NUM> may be in a tangible form such as, for example, an optical or magnetic disk that may be inserted or placed into a drive or other device that may be part of persistent storage <NUM> for transfer onto a storage device, such as a hard drive that may be part of persistent storage <NUM>.

In a tangible form, computer readable media <NUM> also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory that may be connected to data processing system <NUM>. The tangible form of computer readable media <NUM> may also be referred to as computer recordable storage media. In some instances, computer readable media <NUM> may not be removable.

Alternatively, program code <NUM> may be transferred to data processing system <NUM> from computer readable media <NUM> through a communications link to communications unit <NUM> and/or through a connection to input/output unit <NUM>. The communications link and/or the connection may be physical or wireless in the illustrative examples. The computer readable media also may take the form of non-tangible media, such as communications links or wireless transmissions containing the program code.

In some illustrative embodiments, program code <NUM> may be downloaded over a network to persistent storage <NUM> from another device or data processing system for use within data processing system <NUM>. For instance, program code stored in a computer readable storage medium in a server data processing system may be downloaded over a network from the server to data processing system <NUM>. The data processing system providing program code <NUM> may be a server computer, a client computer, or some other device capable of storing and transmitting program code <NUM>.

The different components illustrated for data processing system <NUM> are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system <NUM>.

Other components shown in <FIG> can be varied from the illustrative examples shown. The different embodiments may be implemented using any hardware device or system capable of executing program code. As one example, the data processing system may include organic components integrated with inorganic components and/or may be comprised entirely of organic components excluding a human being. For example, a storage device may be comprised of an organic semiconductor.

As another example, a storage device in data processing system <NUM> may be any hardware apparatus that may store data. Memory <NUM>, persistent storage <NUM>, and computer readable media <NUM> are examples of storage devices in a tangible form.

In another example, a bus system may be used to implement communications fabric <NUM> and may be comprised of one or more buses, such as a system bus or an input/output bus. Of course, the bus system may be implemented using any suitable type of architecture that provides for a transfer of data between different components or devices attached to the bus system. Additionally, a communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter. Further, a memory may be, for example, memory <NUM> or a cache such as found in an interface and memory controller hub that may be present in communications fabric <NUM>.

Turning now to <FIG>, an illustration of a mobile robotic machine is depicted in accordance with an advantageous embodiment. Mobile robotic machine <NUM> is an example of one manner in which plurality of mobile robotic machines <NUM> in <FIG> may be implemented. Mobile robotic machine <NUM> may be autonomous and may perform operations without requiring continuous instructions from different sources.

As illustrated, mobile robotic machine <NUM> may include body <NUM>, mobility system <NUM>, end effector <NUM>, position information unit <NUM>, vision system <NUM>, power system <NUM>, data processing system <NUM>, and other suitable components.

Body <NUM> may provide a structure and/or housing for which different components may be located on and/or in mobile robotic machine <NUM>. Mobility system <NUM> may provide mobility for mobile robotic machine <NUM>. Mobility system <NUM> may take various forms.

Mobility system <NUM> may include, for example, without limitation, wheels <NUM>, tracks <NUM>, feet <NUM>, and/or other suitable components. End effector <NUM> may be a component that provides mobile robotic machine <NUM> a capability to perform operations. End effector <NUM> may be manipulator <NUM> and/or tool system <NUM>. Manipulator <NUM> may hold and/or manipulate tool system <NUM>.

Tool system <NUM> may be a number of tools. For example, tool system <NUM> may include, without limitation, a drill, a fastener device, a sealing device, and/or some other suitable type of tool. In these illustrative examples, end effector <NUM> may be moved about three or more of axes <NUM>.

Position information unit <NUM> may be capable of generating position information <NUM> for number of locations <NUM> for mobile robotic machine <NUM>. For example, without limitation, number of locations <NUM> may be a location for body <NUM>, end effector <NUM>, and/or some other suitable location on mobile robotic machine <NUM>. Position information <NUM> may be in a three-dimensional space using three or more of axes <NUM>. Vision system <NUM> may include, for example, without limitation, a camera, a data processing system, and/or software capable of identifying objects, positions of objects, and/or other information needed to perform operations on a part.

Vision system <NUM> may provide mobile robotic machine <NUM> a capability to view part <NUM> and operations <NUM> being performed on part <NUM>. Power system <NUM> may provide power to operate mobile robotic machine <NUM>. Power system <NUM> may generate power using power unit <NUM>. Power unit <NUM> may be removable and/or replaceable. Power unit <NUM> may be changed when power unit <NUM> becomes depleted.

Power unit <NUM> may be, for example, without limitation, a battery and/or some other suitable type of power unit. For example, power unit <NUM> may be a wireless transfer unit capable of receiving power without using wires. In these illustrative examples, data processing system <NUM> may receive and store program <NUM>.

Data processing system <NUM> may control the operation of mobile robotic machine <NUM> by executing program <NUM> in these examples. Program <NUM> may be received through wireless communications unit <NUM> and/or some other source. In these illustrative examples, wireless communications unit <NUM> may provide the capability to transfer information, such as position information <NUM>, between mobile robotic machine <NUM> and other components within assembly environment <NUM> in <FIG>.

In these illustrative examples, mobile robotic machine <NUM> may reconfigure itself to perform various operations within operations <NUM>. This reconfiguration may be performed by receiving a new version of program <NUM> and supplies <NUM>. Supplies <NUM> may include, for example, without limitation, end effectors, tools, parts, and/or other suitable components needed to perform operations <NUM>.

Further, in executing program <NUM>, mobile robotic machine <NUM> may be capable of determining what parts of tool system <NUM>, manipulator <NUM>, and/or other components in mobile robotic machine <NUM> may begin to wear out and require replacement. Program <NUM> may provide mobile robotic machine <NUM> a capability to request supplies <NUM> as needed. Further, program <NUM> also may provide mobile robotic machine <NUM> a capability to request service and/or maintenance. Further, if mobile robotic machine <NUM> is unable to perform certain operations within operations <NUM>, mobile robotic machine <NUM> may send a request to another mobile robotic machine to perform those operations.

Mobile robotic machine <NUM> may provide a capability to move to different locations without requiring cables, fixed attachments, rails, and/or other components currently used by robotic machines in assembly systems.

The illustration of mobile robotic machine <NUM> in <FIG> is not meant to imply physical or architectural limitations to the manner in which different advantageous embodiments may be implemented. Other components in addition to and/or in place of the ones illustrated may be used. Some components may be unnecessary in some advantageous embodiments. Also, the blocks are presented to illustrate some functional components. One or more of these blocks may be combined and/or divided into different blocks when implemented in different advantageous embodiments.

For example, in some advantageous embodiments, position information unit <NUM> may be unnecessary. Position information unit <NUM> may be unnecessary if the motion control system uses only cameras to identify position information. In yet other advantageous embodiments, mobile robotic machine <NUM> may include an additional end effector in addition to end effector <NUM>.

Mobile robotic machine <NUM> is an example of a machine that may be used to implement one or more of plurality of mobile robotic machines <NUM> in <FIG>. For example, mobile robotic machine <NUM> may be used to implement an external mobile robotic machine, a servicing manipulator, a flexible fixture, an internal mobile robotic machine, and/or some other suitable type of mobile robotic machine.

Turning now to <FIG>, an illustration of an assembly environment is depicted in accordance with an advantageous embodiment. In this illustrative example, assembly environment <NUM> is an example of one implementation for assembly environment <NUM> in <FIG>. In this example, assembly area <NUM> in assembly environment <NUM> may include floor <NUM>, wall <NUM>, wall <NUM>, wall <NUM>, and wall <NUM>. In this illustrative example, wall <NUM> and wall <NUM> may be shown in an exposed view.

In this view, components for wireless communications system <NUM> and motion control system <NUM> may be seen attached to walls <NUM>, <NUM>, and <NUM>. Wireless communications system <NUM> may have wireless communications units <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. These wireless communications units may be receivers, transmitters, transceivers, and/or some other suitable type of wireless communications units.

Motion control system <NUM> may include motion control units <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. These motion control units may be, for example, without limitation, receivers, cameras, radio frequency identification readers, and/or other suitable components that may be capable of being used to generate position information.

In this illustrative example, racks <NUM>, <NUM>, and <NUM> may be located against wall <NUM>. Supplies such as, for example, batteries <NUM>, tools <NUM>, cassettes <NUM>, and effectors <NUM> may be supplied by these racks. System controller <NUM> is an example of a computer system that may be used to control the assembly of structure <NUM> in these examples.

Structure <NUM> may be wing <NUM>. Wing <NUM> may have exterior <NUM> and interior <NUM>. Flexible fixtures <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may hold wing <NUM> to perform operations to assemble wing <NUM>.

The assembly of wing <NUM>, in these examples, may be performed using external mobile robotic machines <NUM>, <NUM>, and <NUM>, which perform operations on exterior <NUM> of wing <NUM>. The assembly of wing <NUM> also may be performed using internal mobile robotic machines <NUM> and <NUM>, which may perform operations on interior <NUM> of wing <NUM>. In this illustrative example, external robotic machines <NUM> and <NUM> move on surface <NUM> of wing <NUM> to perform operations.

In this depicted example, internal mobile robotic machine <NUM> may have flexible arm <NUM>, which may allow internal mobile robotic machine <NUM> to reach into interior <NUM> of wing <NUM> to perform operations. Additionally, servicing manipulator <NUM> may provide supplies and/or maintenance for the different mobile robotic machines performing operations to assemble wing <NUM>.

Additionally, utility outlets <NUM> and <NUM> may be present on walls <NUM> and <NUM>, respectively. Utility outlets <NUM> and <NUM> may provide connections to utilities such as, for example, electricity, water, air, and/or other suitable utilities. Utility outlets <NUM> and <NUM> may be used during assembly operations and/or for maintenance after assembly operations have been completed.

Home location <NUM> may be a location in which the different mobile robotic machines may be located prior to beginning assembly operations. Home location <NUM> also may be a location that the mobile robotic machines may return to after completing operations.

Different mobile robotic machines may work in conjunction with each other to perform operations. For example, internal mobile robotic machine <NUM> may work in conjunction with external robotic machine <NUM> to perform various operations, such as drilling and/or fastener installation.

For example, external robotic machine <NUM> may have electromagnet <NUM> and may clamp portions of wing <NUM> to perform various operations in conjunction with internal mobile robotic machine <NUM>. Other mobile robotic machines may work independently such as, for example, external mobile robotic machine <NUM>, external mobile robotic machine <NUM>, and internal mobile robotic machine <NUM>.

Turning now to <FIG>, an illustration of an assembly environment is depicted in accordance with an advantageous embodiment. In this illustrative example, assembly environment <NUM> may be reconfigured for use in performing operations to assemble fuselage <NUM>. Fuselage <NUM> may have exterior <NUM> and interior <NUM>.

With this type of structure, external mobile robotic machines <NUM>, <NUM>, and <NUM> may perform operations on surface <NUM> of exterior <NUM> of fuselage <NUM>. Internal mobile robotic machines <NUM>, <NUM>, and <NUM> may perform operations on interior <NUM> of fuselage <NUM>.

The illustration of assembly environment <NUM> in <FIG> and <FIG> is only an illustrative example of one manner in which an assembly environment can be implemented to assemble a structure. Assembly environment <NUM> may provide increased flexibility in one or more of the different advantageous embodiments to assemble different types of structures. Assembly area <NUM> may be used to manufacture different types of structures, such as wing <NUM> and fuselage <NUM>.

The reconfiguration of assembly environment <NUM> may be performed quickly by changing the programs for mobile robotic machines, adding mobile robotic machines, removing mobile robotic machines, or other suitable configuration changes. These changes may be made more quickly and/or with less expense as compared to changes needed to reconfigure current assembly systems.

For example, if wing <NUM> may be assembled before fuselage <NUM>, the mobile robotic machines used to assemble wing <NUM> may be reprogrammed and/or replaced as needed with other mobile robotic machines to assemble fuselage <NUM> in assembly area <NUM>. These changes may be performed without requiring the time and/or expense needed to make changes to currently available assembly systems. Rerouting of wires, rails, trenches, and other components may be unnecessary with this type of assembly system.

With reference now to <FIG>, an illustration of an assembly area is depicted in accordance with an advantageous embodiment. In this illustrative example, assembly area <NUM> is illustrated without the different racks and/or mobile robotic machines. Assembly area <NUM> is an illustration of an area when no operations are being performed to assemble structures. A lack of fixed robotic machines, rails, trenches, conduits, cables, and other structures may allow for easy reconfiguration of assembly area <NUM> for other operations. Further, the lack of fixed structures also may allow for easier maintenance of assembly area <NUM>.

Turning now to <FIG>, an illustration of a flowchart of a process for assembling a structure is depicted in accordance with an advantageous embodiment. The process illustrated in <FIG> may be implemented in assembly environment <NUM> in <FIG>.

The process may begin by establishing communications with plurality of mobile robotic machines <NUM> (operation <NUM>). Plurality of mobile robotic machines <NUM> may be capable of moving to number of locations <NUM> and performing operations <NUM> to assemble structure <NUM> in assembly area <NUM> using wireless communications system <NUM>.

Position information <NUM> for plurality of mobile robotic machines <NUM> may be identified using position information <NUM> generated by motion control system <NUM> (operation <NUM>). Position information <NUM> may be positions of plurality of mobile robotic machines <NUM> and/or different parts of plurality of mobile robotic machines <NUM>. Information <NUM> may be sent to plurality of mobile robotic machines <NUM> using wireless communications system <NUM> (operation <NUM>). Information <NUM> may include position information. Operations <NUM> may be performed to assemble structure <NUM> using information <NUM> (operation <NUM>), with the process terminating thereafter.

With reference now to <FIG>, an illustration of a flowchart of a process for assembling a structure is depicted in accordance with an advantageous embodiment. The process illustrated in <FIG> may be implemented in assembly environment <NUM> in <FIG>. For example, the process may be implemented in process <NUM> in computer system <NUM> to control the assembly of structure <NUM> in <FIG>.

The process may begin by identifying structure <NUM> (operation <NUM>). Thereafter, the process may download programs <NUM> to plurality of mobile robotic machines <NUM> (operation <NUM>). The process may then send commands <NUM> to plurality of mobile robotic machines <NUM> and racks <NUM> to move to number of locations <NUM> (operation <NUM>). The process may then send commands <NUM> to plurality of mobile robotic machines <NUM> to begin assembly of structure <NUM> (operation <NUM>).

A determination may be made as to whether the assembly of structure <NUM> has been completed (operation <NUM>). If the assembly of structure <NUM> has not been completed, a determination may be made as to whether any of plurality of mobile robotic machines <NUM> have completed their tasks (operation <NUM>). These tasks may be tasks within tasks <NUM>.

If any of plurality of mobile robotic machines <NUM> have completed their tasks, a determination may be made as to whether additional tasks need to be performed (operation <NUM>). In some examples, some mobile robotic machines may complete tasks before other mobile robotic machines. In these examples, these mobile robotic machines may perform other tasks that may shorten the time needed to assemble structure <NUM>. Mobile robotic machines that may not have tasks may be assigned tasks that may aid other mobile robotic machines to complete their tasks more quickly. Further, if one mobile robotic machines needs maintenance or
service, another mobile robotic machine that has completed its tasks may perform tasks for the mobile robotic machine needing maintenance or service.

If additional tasks need to be performed, the process may assign the additional tasks to the identified mobile robotic machines (operation <NUM>). In operation <NUM>, commands <NUM> and/or programs <NUM> may be sent to the identified mobile robotic machines. The process may then return to operation <NUM>. With reference again to operation <NUM>, if additional tasks do not need to be performed, the process may return to operation <NUM>. The process also may return to operation <NUM> from operation <NUM> if none of plurality of mobile robotic machines <NUM> have completed their tasks.

With reference again to operation <NUM>, if the assembly of structure <NUM> has been completed, the process then may send commands <NUM> to plurality of mobile robotic machines <NUM> and racks <NUM> to leave assembly area <NUM> (operation <NUM>), with the process terminating thereafter. In operation <NUM>, some of plurality of mobile robotic machines <NUM> may return to home location <NUM>. Number of flexible fixtures <NUM> within plurality of mobile robotic machines <NUM> may move structure <NUM> to another area for further processing and/or storage.

Turning next to <FIG>, an illustration of a flowchart of a process for assembling a structure is depicted in accordance with an advantageous embodiment. In this illustrative example, the process in <FIG> may be implemented in a mobile robotic machine, such as mobile robotic machine <NUM> in <FIG>. This process may be implemented by data processing system <NUM> in <FIG>.

The process may begin by receiving a number of commands and a program for execution (operation <NUM>). The process may then select an operation from operations <NUM> for execution (operation <NUM>). A determination may be made as to whether supplies <NUM> contain supplies needed to perform the selected operation (operation <NUM>).

If supplies are present, the process may perform the selected operation (operation <NUM>). This operation may be, for example, without limitation, drilling a hole, clamping a part in coordination with another mobile robotic machine, milling a part, applying sealant, performing an inspection of a part, and/or other suitable operations.

After the operation has been performed, a determination may be made as to whether additional operations are present within operations <NUM> that have not been performed (operation <NUM>). If additional operations are present, the process may select an unperformed operation from the identified operations (operation <NUM>), with the process then returning to operation <NUM>.

If all of the operations have been completed, the process may send a message to a computer system indicating that mobile robotic machine <NUM> has completed operations <NUM> (operation <NUM>), with the process terminating thereafter. At this point, mobile robotic machine <NUM> may wait for additional commands.

With reference again to operation <NUM>, if supplies <NUM> do not contain supplies needed to perform the identified operation, the process may then send a message to number of servicing manipulators <NUM> to provide supplies <NUM> (operation <NUM>). The process may then wait for supplies <NUM> to be delivered (operation <NUM>). When supplies <NUM> have been delivered, the process may then proceed to operation <NUM> as described above. These supplies may include, for example, without limitation, fasteners, end effectors, tools, power units, and/or other suitable supplies.

With reference now to <FIG>, an illustration of a flowchart of a process for assembling an aircraft structure is depicted in accordance with an advantageous embodiment. The process illustrated in <FIG> are an example of one manner in which operations may be performed to assemble an aircraft structure. The process illustrated in <FIG> may be implemented using assembly environment <NUM> in <FIG>.

The process may begin with computer system <NUM> acquiring information needed to assemble structure <NUM> (operation <NUM>). This information may include, for example, without limitation, specifications, manufacturing plans, needed equipment, needed tools, needed parts, needed materials, and/or other suitable information. The process may then activate computer system <NUM> to assemble structure <NUM> (operation <NUM>). Computer system <NUM> may activate motion control system <NUM>, wireless communications system <NUM>, and any suitable utilities (operation <NUM>). A determination may be made as to whether all of the systems have been turned on within assembly environment <NUM> (operation <NUM>). If all of the systems have not been turned on, the process may return to operation <NUM>.

If all the systems in operation <NUM> have been turned on, computer system <NUM> may send information <NUM> to plurality of mobile robotic machines <NUM> (operation <NUM>). Information <NUM> may include, for example, without limitation, messages <NUM>, position information <NUM>, commands <NUM>, programs <NUM>, and/or other suitable information needed to perform operations <NUM> to assemble structure <NUM>.

Responses to the information sent by computer system <NUM> may be received from plurality of mobile robotic machines <NUM> (operation <NUM>). A determination may be made as to whether all of information <NUM> has been received (operation <NUM>). If all of information <NUM> has not been received, the process returns to operation <NUM>.

When all of information <NUM> has been received, computer system <NUM> queries plurality of mobile robotic machines <NUM>, racks <NUM>, and/or other suitable components to determine whether assembly system <NUM> is ready to begin assembly of structure <NUM> (operation <NUM>).

Computer system <NUM> may receive responses (operation <NUM>) and may determine whether supplies <NUM> are ready (operation <NUM>). If supplies <NUM> are not ready, supplies <NUM> are obtained and/or adjusted (operation <NUM>). Operation <NUM> may include calibrating and loading tools, end effectors, fastener cassettes, batteries, and/or other suitable supplies. The process then may return to operation <NUM>.

If supplies <NUM> are ready, the process may determine whether plurality of mobile robotic machines <NUM> is ready to perform operations <NUM> (operation <NUM>). If all of plurality of mobile robotic machines <NUM> are not ready to perform operations <NUM>, adjustments to one or more of plurality of mobile robotic machines <NUM> may be performed (operation <NUM>), with the process then returning to operation <NUM>.

Operation <NUM> may include, for example, without limitation, calibrating and/or setting up number of internal mobile robotic machines <NUM>, number of external mobile robotic machines <NUM>, number of servicing manipulators <NUM>, number of flexible fixtures <NUM>, and/or other suitable machines. When all of plurality of mobile robotic machines <NUM> are ready, computer system <NUM> may send commands <NUM> to plurality of mobile robotic machines <NUM> to move into number of locations <NUM> to perform operations <NUM> (operation <NUM>).

In response to receiving commands <NUM>, racks <NUM> may move into number of locations <NUM> (operation <NUM>). Racks <NUM> may communicate with computer system <NUM> and motion control system <NUM> to avoid collisions (operation <NUM>). A determination may then be made as to whether racks <NUM> are located in home location <NUM> (operation <NUM>). If racks <NUM> are not in home location <NUM>, the process may return to operation <NUM>.

In response to receiving commands <NUM> in operation <NUM>, number of flexible fixtures <NUM> may move into assembly area <NUM> towards a fixture position (operation <NUM>). Number of flexible fixtures <NUM> may communicate with computer system <NUM> and motion control system <NUM> to avoid collisions (operation <NUM>). A determination may then be made as to whether number of flexible fixtures <NUM> are in position for performing operations <NUM> (operation <NUM>). If number of flexible fixtures <NUM> are not in position, the process may return to operation <NUM>.

Also, in response to commands <NUM> in operation <NUM>, number of external mobile robotic machines <NUM>, number of internal mobile robotic machines <NUM>, and number of servicing manipulators <NUM> may move into assembly area <NUM> (operation <NUM>). Number of internal mobile robotic machines <NUM>, number of external mobile robotic machines <NUM>, and number of servicing manipulators <NUM> may communicate with computer system <NUM> and motion control system <NUM> to avoid collision during movement (operation <NUM>).

In operations <NUM>, <NUM>, and <NUM>, the process may wait for all of the devices to be ready to perform operations <NUM> (operation <NUM>). When all of the devices are ready to perform operations <NUM>, computer system <NUM> may send a command over wireless communications system <NUM> to begin assembly operations <NUM> (operation <NUM>). Assembly operations may be a subset of operations <NUM> and may involve positioning and securing parts to each other to form structure <NUM>.

Number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM> may communicate with number of servicing manipulators <NUM> using wireless communications system <NUM> to request supplies <NUM> (operation <NUM>). Number of servicing manipulators <NUM> may obtain supplies <NUM> from racks <NUM> and transfer supplies <NUM> to number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM> (operation <NUM>).

A determination may be made as to whether sufficient supplies from supplies <NUM> have been received by number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM> (operation <NUM>). If sufficient supplies from supplies <NUM> have not been received, the process may return to operation <NUM>. These supplies may include parts, fasteners, sealant, paint, adhesive, and/or other suitable supplies needed to assemble structure <NUM>. Once sufficient supplies have been received, parts in supplies <NUM> may be placed onto number of flexible fixtures <NUM> (operation <NUM>).

A determination may then be made as to whether all of the parts have been loaded onto number of flexible fixtures <NUM> (operation <NUM>). If all of the parts have not been loaded, the process may return to operation <NUM>. Otherwise, number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM> may move into number of locations <NUM> (operation <NUM>).

Some of number of external mobile robotic machines <NUM> may send messages <NUM> to request movement onto the top of structure <NUM> (operation <NUM>). Number of servicing manipulators <NUM> may pick up and place the machines within number of external mobile robotic machines <NUM> making the request onto structure <NUM> (operation <NUM>).

A determination may be made as to whether all of number of external mobile robotic machines <NUM> making the request have been placed on top of structure <NUM> (operation <NUM>). If all of number of external mobile robotic machines <NUM> making the request have not been placed on top of structure <NUM>, the process may return to operation <NUM>.

Otherwise, the process may then perform assembly operations <NUM> on structure <NUM> to assemble structure <NUM> (operation <NUM>). These assembly operations may include synchronized assembly operations between number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM>. Number of internal mobile robotic machines <NUM> and number of external mobile robotic machines <NUM> monitor themselves and supplies <NUM> (operation <NUM>).

A determination may be made as to whether maintenance is needed (operation <NUM>). The maintenance may require replacements of end effectors <NUM>, power units <NUM>, tools <NUM>, fasteners <NUM>, and/or other suitable forms of supplies <NUM>.

If maintenance operations are needed, messages <NUM> may be sent from the particular mobile robotic machines needing maintenance to number of servicing manipulators <NUM> (operation <NUM>). In response to receiving messages <NUM>, number of servicing manipulators <NUM> may obtain supplies <NUM> and perform maintenance using supplies <NUM> (operation <NUM>).

A determination may be made as to whether maintenance has been completed (operation <NUM>). If maintenance has not been completed, the process may return to operation <NUM>. If maintenance operations are complete, the process may continue to perform operations <NUM> on structure <NUM> (operation <NUM>). Operations <NUM> may include assembly of parts, inspections, and other suitable operations needed to assemble structure <NUM>. Thereafter, a determination may be made as to whether operations <NUM> have been completed (operation <NUM>).

If operations <NUM> have not been completed, the process may return to operation <NUM>. When operations <NUM> have been completed, computer system <NUM> may send commands <NUM> to number of flexible fixtures <NUM> to move structure <NUM> out of assembly area <NUM> (operation <NUM>). Thereafter, structure <NUM> may be moved to another assembly area for further processing (operation <NUM>), with the process then terminating.

With reference again to operation <NUM>, if maintenance is not needed, the process continues to operation <NUM> as described above.

Turning now to <FIG>, an illustration of a flowchart of a process for performing operations on a structure is depicted in accordance with an advantageous embodiment. The process illustrated in <FIG> may be implemented in an environment such as, for example, assembly environment <NUM> in <FIG>.

The process may begin by activating a first mobile robotic machine and a second mobile robotic machine (operation <NUM>). Thereafter, structure <NUM> may be identified for which an operation is to be performed (operation <NUM>). The first mobile robotic machine may be adjacent to a first surface of structure <NUM>, while the second mobile robotic machine may be adjacent to a second surface of structure <NUM>.

The first mobile robotic machine and the second mobile robotic machine may perform a clamping function to clamp parts at the location (operation <NUM>). The first mobile robotic machine may perform a drilling operation to drill a hole through the parts at the location on structure <NUM> (operation <NUM>). The first mobile robotic machine and the second mobile robotic machine may install a fastener through a hole to secure the parts to each other on structure <NUM> (operation <NUM>), with the process terminating thereafter.

The flowcharts and block diagrams in the different depicted embodiments illustrate the architecture, functionality, and operation of some possible implementations of apparatus and methods in different advantageous embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, function, and/or a portion of an operation or step.

In some alternative implementations, the function or functions noted in the blocks may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Thus, the different advantageous embodiments provide a method and apparatus for assembling structures in a manner that may provide increased flexibility to the different types of structures that may be assembled within a particular assembly area. The different advantageous embodiments may provide a capability to alter the type of structure being assembled in a manner that may be faster and/or less expensive as compared to current assembly systems. The different advantageous embodiments may avoid a need for fixed rails, fixed robotic machines, trenches, conduits in the floor, and other structures that may require time and expense to move and/or modify.

The description of the different advantageous embodiments has been presented for purposes of illustration and description, and it is not intended to be exhaustive or limited to the embodiments in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. Further, different advantageous embodiments may provide different advantages as compared to other advantageous embodiments.

Although the different advantageous embodiments have been described with respect to structures of an aircraft, other advantageous embodiments may be applied to other types of objects. For example, without limitation, other advantageous embodiments may be applied to a wing, a fuselage, an engine, a tank, a submarine hull, a spacecraft, a space station, a surface ship, and a car.

Claim 1:
An apparatus comprising:
a plurality of mobile robotic machines (<NUM>) capable of moving to a number of locations (<NUM>) in an assembly area (<NUM>) and capable of performing operations to assemble a structure (<NUM>) in the assembly area;
a wireless communications system (<NUM>) capable of providing communications with the plurality of mobile robotic machines within the assembly area; and
a motion control system (<NUM>) capable of generating position information (<NUM>) for the plurality of mobile robotic machines in the assembly area and communicating the position information to the plurality of mobile robotic machines; wherein:
performing the operations to assemble the structure uses the position information and comprises:
communicating messages between the plurality of mobile robotic machines (<NUM>); and
performing a number of operations to assemble the structure using the messages;
the wireless communications system is adapted to exchange information between the plurality of mobile robotic machines; and
the plurality of mobile robotic machines comprises:
an external mobile robotic machine (<NUM>) having an electromagnet (<NUM>) and capable of moving around an exterior (<NUM>) of the structure and capable of performing a number of first operations on the exterior of the structure; and
an internal mobile (<NUM>) robotic machine having a flexible arm (<NUM>) and capable of performing a number of second operations in an interior (<NUM>) of the structure and capable of performing the number of second operations in conjunction with the number of first operations performed by the external mobile robotic machine to assemble the structure.