Patent Publication Number: US-2020284135-A1

Title: Surface steerable drilling system for use with rotary steerable system

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 15/250,575, filed Aug. 29, 2016, entitled SURFACE STEERING DRILLING SYSTEM FOR USE WITH ROTARY STEERABLE SYSTEM, which is a continuation of U.S. patent application Ser. No. 14/874,169, filed Oct. 2, 2015, entitled SURFACE STEERABLE DRILLING SYSTEM FOR USE WITH ROTARY STEERABLE SYSTEM, now U.S. Pat. No. 9,428,961, issued on Aug. 30, 2016, which is a continuation-in-part of U.S. patent application Ser. No. 14/314,697, filed Jun. 25, 2014, entitled SYSTEM AND METHOD FOR SURFACE STEERABLE DRILLING, and claims benefit of U.S. Provisional Application No. 62/058,950, filed Oct. 2, 2014, entitled SURFACE STEERABLE DRILLING SYSTEM FOR USE WITH ROTARY STEERABLE SYSTEM, the specifications of each of which are incorporated by reference herein in their entirety. 
    
    
     TECHNICAL FIELD 
     This application is directed to the creation of wells, such as oil wells, and more particularly to the planning and drilling of such wells. 
     BACKGROUND 
     Drilling a borehole for the extraction of minerals has become an increasingly complicated operation due to the increased depth and complexity of many boreholes, including the complexity added by directional drilling. Drilling is an expensive operation and errors in drilling add to the cost and, in some cases, drilling errors may permanently lower the output of a well for years into the future. Current technologies and methods do not adequately address the complicated nature of drilling. Accordingly, what is needed are a system and method to improve drilling operations and minimize drilling errors. 
    
    
     
       For a more complete understanding, reference is now made to the following description taken in conjunction with the accompanying drawings in which: 
         FIG. 1A  illustrates one embodiment of a drilling environment in which a surface steerable system may operate; 
         FIG. 1B  illustrates one embodiment of a more detailed portion of the drilling environment of  FIG. 1A ; 
         FIG. 1C  illustrates one embodiment of a more detailed portion of the drilling environment of  FIG. 1B ; 
         FIG. 2A  illustrates one embodiment of the surface steerable system of  FIG. 1A  and how information may flow to and from the system; 
         FIG. 2B  illustrates one embodiment of a display that may be used with the surface steerable system of  FIG. 2A ; 
         FIG. 3  illustrates one embodiment of a drilling environment that does not have the benefit of the surface steerable system of  FIG. 2A  and possible communication channels within the environment; 
         FIG. 4  illustrates one embodiment of a drilling environment that has the benefit of the surface steerable system of  FIG. 2A  and possible communication channels within the environment; 
         FIG. 5  illustrates one embodiment of data flow that may be supported by the surface steerable system of  FIG. 2A ; 
         FIG. 6  illustrates one embodiment of a method that may be executed by the surface steerable system of  FIG. 2A ; 
         FIG. 7A  illustrates a more detailed embodiment of the method of  FIG. 6 ; 
         FIG. 7B  illustrates a more detailed embodiment of the method of  FIG. 6 ; 
         FIG. 7C  illustrates one embodiment of a convergence plan diagram with multiple convergence paths; 
         FIG. 8A  illustrates a more detailed embodiment of a portion of the method of  FIG. 7B ; 
         FIG. 8B  illustrates a more detailed embodiment of a portion of the method of  FIG. 6 ; 
         FIG. 8C  illustrates a more detailed embodiment of a portion of the method of  FIG. 6 ; 
         FIG. 8D  illustrates a more detailed embodiment of a portion of the method of  FIG. 6 ; 
         FIG. 9  illustrates one embodiment of a system architecture that may be used for the surface steerable system of  FIG. 2A ; 
         FIG. 10  illustrates one embodiment of a more detailed portion of the system architecture of  FIG. 9 ; 
         FIG. 11  illustrates one embodiment of a guidance control loop that may be used within the system architecture of  FIG. 9 ; 
         FIG. 12  illustrates one embodiment of an autonomous control loop that may be used within the system architecture of  FIG. 9 ; 
         FIG. 13  illustrates one embodiment of a computer system that may be used within the surface steerable system of  FIG. 2A ; 
         FIG. 14  illustrates the use of a surface steerable system with a rotary steerable system; and 
         FIG. 15  illustrates one embodiment of a rotary steerable drilling rig. 
     
    
    
     DETAILED DESCRIPTION 
     Referring now to the drawings, wherein like reference numbers are used herein to designate like elements throughout, the various views and embodiments of a system and method for surface steerable drilling are illustrated and described, and other possible embodiments are described. The figures are not necessarily drawn to scale, and in some instances the drawings have been exaggerated and/or simplified in places for illustrative purposes only. One of ordinary skill in the art will appreciate the many possible applications and variations based on the following examples of possible embodiments. 
     Referring to  FIG. 1A , one embodiment of an environment  100  is illustrated with multiple wells  102 ,  104 ,  106 ,  108 , and a drilling rig  110 . In the present example, the wells  102  and  104  are located in a region  112 , the well  106  is located in a region  114 , the well  108  is located in a region  116 , and the drilling rig  110  is located in a region  118 . Each region  112 ,  114 ,  116 , and  118  may represent a geographic area having similar geological formation characteristics. For example, region  112  may include particular formation characteristics identified by rock type, porosity, thickness, and other geological information. These formation characteristics affect drilling of the wells  102  and  104 . Region  114  may have formation characteristics that are different enough to be classified as a different region for drilling purposes, and the different formation characteristics affect the drilling of the well  106 . Likewise, formation characteristics in the regions  116  and  118  affect the well  108  and drilling rig  110 , respectively. 
     It is understood the regions  112 ,  114 ,  116 , and  118  may vary in size and shape depending on the characteristics by which they are identified. Furthermore, the regions  112 ,  114 ,  116 , and  118  may be sub-regions of a larger region. Accordingly, the criteria by which the regions  112 ,  114 ,  116 , and  118  are identified is less important for purposes of the present disclosure than the understanding that each region  112 ,  114 ,  116 , and  118  includes geological characteristics that can be used to distinguish each region from the other regions from a drilling perspective. Such characteristics may be relatively major (e.g., the presence or absence of an entire rock layer in a given region) or may be relatively minor (e.g., variations in the thickness of a rock layer that extends through multiple regions). 
     Accordingly, drilling a well located in the same region as other wells, such as drilling a new well in the region  112  with already existing wells  102  and  104 , means the drilling process is likely to face similar drilling issues as those faced when drilling the existing wells in the same region. For similar reasons, a drilling process performed in one region is likely to face issues different from a drilling process performed in another region. However, even the drilling processes that created the wells  102  and  104  may face different issues during actual drilling as variations in the formation are likely to occur even in a single region. 
     Drilling a well typically involves a substantial amount of human decision making during the drilling process. For example, geologists and drilling engineers use their knowledge, experience, and the available information to make decisions on how to plan the drilling operation, how to accomplish the plan, and how to handle issues that arise during drilling. However, even the best geologists and drilling engineers perform some guesswork due to the unique nature of each borehole. Furthermore, a directional driller directly responsible for the drilling may have drilled other boreholes in the same region and so may have some similar experience, but it is impossible for a human to mentally track all the possible inputs and factor those inputs into a decision. This can result in expensive mistakes, as errors in drilling can add hundreds of thousands or even millions of dollars to the drilling cost and, in some cases, drilling errors may permanently lower the output of a well, resulting in substantial long term losses. 
     In the present example, to aid in the drilling process, each well  102 ,  104 ,  106 , and  108  has corresponding collected data  120 ,  122 ,  124 , and  126 , respectively. The collected data may include the geological characteristics of a particular formation in which the corresponding well was formed, the attributes of a particular drilling rig, including the bottom hole assembly (BHA), and drilling information such as weight-on-bit (WOB), drilling speed, and/or other information pertinent to the formation of that particular borehole. The drilling information may be associated with a particular depth or other identifiable marker so that, for example, it is recorded that drilling of the well  102  from 1000 feet to 1200 feet occurred at a first ROP through a first rock layer with a first WOB, while drilling from 1200 feet to 1500 feet occurred at a second ROP through a second rock layer with a second WOB. The collected data may be used to recreate the drilling process used to create the corresponding well  102 ,  104 ,  106 , or  108  in the particular formation. It is understood that the accuracy with which the drilling process can be recreated depends on the level of detail and accuracy of the collected data. 
     The collected data  120 ,  122 ,  124 , and  126  may be stored in a centralized database  128  as indicated by lines  130 ,  132 ,  134 , and  136 , respectively, which may represent any wired and/or wireless communication channel(s). The database  128  may be located at a drilling hub (not shown) or elsewhere. Alternatively, the data may be stored on a removable storage medium that is later coupled to the database  128  in order to store the data. The collected data  120 ,  122 ,  124 , and  126  may be stored in the database  128  as formation data  138 , equipment data  140 , and drilling data  142  for example. Formation data  138  may include any formation information, such as rock type, layer thickness, layer location (e.g., depth), porosity, gamma readings, etc. Equipment data  140  may include any equipment information, such as drilling rig configuration (e.g., rotary table or top drive), bit type, mud composition, etc. Drilling data  142  may include any drilling information, such as drilling speed, WOB, differential pressure, toolface orientation, etc. The collected data may also be identified by well, region, and other criteria, and may be sortable to enable the data to be searched and analyzed. It is understood that many different storage mechanisms may be used to store the collected data in the database  128 . 
     With additional reference to  FIG. 1B , an environment  160  (not to scale) illustrates a more detailed embodiment of a portion of the region  118  with the drilling rig  110  located at the surface  162 . A drilling plan has been formulated to drill a borehole  164  extending into the ground to a true vertical depth (TVD)  166 . The borehole  164  extends through strata layers  168  and  170 , stopping in layer  172 , and not reaching underlying layers  174  and  176 . The borehole  164  may be directed to a target area  180  positioned in the layer  172 . The target  180  may be a subsurface point or points defined by coordinates or other markers that indicate where the borehole  164  is to end or may simply define a depth range within which the borehole  164  is to remain (e.g., the layer  172  itself). It is understood that the target  180  may be any shape and size, and may be defined in any way. Accordingly, the target  180  may represent an endpoint of the borehole  164  or may extend as far as can be realistically drilled. For example, if the drilling includes a horizontal component and the goal is to follow the layer  172  as far as possible, the target may simply be the layer  172  itself and drilling may continue until a limit is reached, such as a property boundary or a physical limitation to the length of the drillstring. A fault  178  has shifted a portion of each layer downwards. Accordingly, the borehole  164  is located in non-shifted layer portions  168 A- 176 A, while portions  168 B- 176 B represent the shifted layer portions. 
     Current drilling techniques frequently involve directional drilling to reach a target, such as the target  180 . The use of directional drilling generally increases the amount of reserves that can be obtained and also increases production rate, sometimes significantly. For example, the directional drilling used to provide the horizontal portion shown in  FIG. 1B  increases the length of the borehole in the layer  172 , which is the target layer in the present example. Directional drilling may also be used alter the angle of the borehole to address faults, such as the fault  178  that has shifted the layer portion  172 B. Other uses for directional drilling include sidetracking off of an existing well to reach a different target area or a missed target area, drilling around abandoned drilling equipment, drilling into otherwise inaccessible or difficult to reach locations (e.g., under populated areas or bodies of water), providing a relief well for an existing well, and increasing the capacity of a well by branching off and having multiple boreholes extending in different directions or at different vertical positions for the same well. Directional drilling is often not confined to a straight horizontal borehole, but may involve staying within a rock layer that varies in depth and thickness as illustrated by the layer  172 . As such, directional drilling may involve multiple vertical adjustments that complicate the path of the borehole. 
     With additional reference to  FIG. 1C , which illustrates one embodiment of a portion of the borehole  164  of  FIG. 1B , the drilling of horizontal wells clearly introduces significant challenges to drilling that do not exist in vertical wells. For example, a substantially horizontal portion  192  of the well may be started off of a vertical borehole  190  and one drilling consideration is the transition from the vertical portion of the well to the horizontal portion. This transition is generally a curve that defines a build up section  194  beginning at the vertical portion (called the kick off point and represented by line  196 ) and ending at the horizontal portion (represented by line  198 ). The change in inclination per measured length drilled is typically referred to as the build rate and is often defined in degrees per one hundred feet drilled. For example, the build rate may be 6°/100 ft, indicating that there is a six degree change in inclination for every one hundred feet drilled. The build rate for a particular build up section may remain relatively constant or may vary. 
     The build rate depends on factors such as the formation through which the borehole  164  is to be drilled, the trajectory of the borehole  164 , the particular pipe and drill collars/BHA components used (e.g., length, diameter, flexibility, strength, mud motor bend setting, and drill bit), the mud type and flow rate, the required horizontal displacement, stabilization, and inclination. An overly aggressive built rate can cause problems such as severe doglegs (e.g., sharp changes in direction in the borehole) that may make it difficult or impossible to run casing or perform other needed tasks in the borehole  164 . Depending on the severity of the mistake, the borehole  164  may require enlarging or the bit may need to be backed out and a new passage formed. Such mistakes cost time and money. However, if the build rate is too cautious, significant additional time may be added to the drilling process as it is generally slower to drill a curve than to drill straight. Furthermore, drilling a curve is more complicated and the possibility of drilling errors increases (e.g., overshoot and undershoot that may occur trying to keep the bit on the planned path). 
     Two modes of drilling, known as rotating and sliding, are commonly used to form the borehole  164 . Rotating, also called rotary drilling, uses a topdrive or rotary table to rotate the drillstring. Rotating is typically used when drilling is to occur along a straight path. However, directional drilling can also be accomplished with rotary steerable drilling, as described hereinbelow. Sliding, also called steering, uses a downhole mud motor with an adjustable bent housing and does not rotate the drillstring. Instead, sliding uses hydraulic power to drive the downhole motor and bit. Sliding is used in order to control well direction. 
     To accomplish a slide, the rotation of the drill string is stopped. Based on feedback from measuring equipment such as a MWD tool, adjustments are made to the drill string. These adjustments continue until the downhole toolface that indicates the direction of the bend of the motor is oriented to the direction of the desired deviation of the borehole. Once the desired orientation is accomplished, pressure is applied to the drill bit, which causes the drill bit to move in the direction of deviation. Once sufficient distance and angle have been built, a transition back to rotating mode is accomplished by rotating the drill string. This rotation of the drill string neutralizes the directional deviation caused by the bend in the motor as it continuously rotates around the centerline of the borehole. 
     Referring again to  FIG. 1A , the formulation of a drilling plan for the drilling rig  110  may include processing and analyzing the collected data in the database  128  to create a more effective drilling plan. Furthermore, once the drilling has begun, the collected data may be used in conjunction with current data from the drilling rig  110  to improve drilling decisions. Accordingly, an on-site controller  144  is coupled to the drilling rig  110  and may also be coupled to the database  128  via one or more wired and/or wireless communication channel(s)  146 . Other inputs  148  may also be provided to the on-site controller  144 . In some embodiments, the on-site controller  144  may operate as a stand-alone device with the drilling rig  110 . For example, the on-site controller  144  may not be communicatively coupled to the database  128 . Although shown as being positioned near or at the drilling rig  110  in the present example, it is understood that some or all components of the on-site controller  144  may be distributed and located elsewhere in other embodiments. 
     The on-site controller  144  may form all or part of a surface steerable system. The database  128  may also form part of the surface steerable system. As will be described in greater detail below, the surface steerable system may be used to plan and control drilling operations based on input information, including feedback from the drilling process itself. The surface steerable system may be used to perform such operations as receiving drilling data representing a drill path and other drilling parameters, calculating a drilling solution for the drill path based on the received data and other available data (e.g., rig characteristics), implementing the drilling solution at the drilling rig  110 , monitoring the drilling process to gauge whether the drilling process is within a defined margin of error of the drill path, and/or calculating corrections for the drilling process if the drilling process is outside of the margin of error. 
     Referring to  FIG. 2A , a diagram  200  illustrates one embodiment of information flow for a surface steerable system  201  from the perspective of the on-site controller  144  of  FIG. 1A . The surface steerable system  201  may be used in directional drilling operations employing either rotary steerable drilling or slide drilling. In the present example, the drilling rig  110  of  FIG. 1A  includes drilling equipment  216  used to perform the drilling of a borehole, such as top drive or rotary drive equipment that couples to the drill string and BHA and is configured to rotate the drill string and apply pressure to the drill bit. The drilling rig  110  may include control systems such as a WOB/differential pressure control system  208 , a positional/rotary control system  210 , and a fluid circulation control system  212 . The control systems  208 ,  210 , and  212  may be used to monitor and change drilling rig settings, such as the WOB and/or differential pressure to alter the ROP or the radial orientation of the toolface, change the flow rate of drilling mud, and perform other operations. 
     The drilling rig  110  may also include a sensor system  214  for obtaining sensor data about the drilling operation and the drilling rig  110 , including the downhole equipment. For example, the sensor system  214  may include measuring while drilling (MWD) and/or logging while drilling (LWD) components for obtaining information, such as toolface and/or formation logging information, that may be saved for later retrieval, transmitted with a delay or in real time using any of various communication means (e.g., wireless, wireline, or mud pulse telemetry), or otherwise transferred to the on-site controller  144 . Such information may include information related to hole depth, bit depth, inclination, azimuth, true vertical depth, gamma count, standpipe pressure, mud flow rate, rotary rotations per minute (RPM), bit speed, ROP, WOB, and/or other information. It is understood that all or part of the sensor system  214  may be incorporated into one or more of the control systems  208 ,  210 , and  212 , and/or in the drilling equipment  216 . As the drilling rig  110  may be configured in many different ways, it is understood that these control systems may be different in some embodiments, and may be combined or further divided into various subsystems. 
     The on-site controller  144  receives input information  202 . The input information  202  may include information that is pre-loaded, received, and/or updated in real time. The input information  202  may include a well plan, regional formation history, one or more drilling engineer parameters, MWD tool face/inclination information, LWD gamma/resistivity information, economic parameters, reliability parameters, and/or other decision guiding parameters. Some of the inputs, such as the regional formation history, may be available from a drilling hub  216 , which may include the database  128  of  FIG. 1A  and one or more processors (not shown), while other inputs may be accessed or uploaded from other sources. For example, a web interface may be used to interact directly with the on-site controller  144  to upload the well plan and/or drilling engineer parameters. The input information  202  feeds into the on-site controller  144  and, after processing by the on-site controller  144 , results in control information  204  that is output to the drilling rig  110  (e.g., to the control systems  208 ,  210 , and  212 ). The drilling rig  110  (e.g., via the systems  208 ,  210 ,  212 , and  214 ) provides feedback information  206  to the on-site controller  144 . The feedback information  206  then serves as input to the on-site controller  144 , enabling the on-site controller  144  to verify that the current control information is producing the desired results or to produce new control information for the drilling rig  110 . 
     The on-site controller  144  also provides output information  203 . As will be described later in greater detail, the output information  203  may be stored in the on-site controller  144  and/or sent offsite (e.g., to the database  128 ). The output information  203  may be used to provide updates to the database  128 , as well as provide alerts, request decisions, and convey other data related to the drilling process. 
     Referring to  FIG. 2B , one embodiment of a display  250  that may be provided by the on-site controller  144  is illustrated. The display  250  provides many different types of information applicable to rotary steerable drilling or slide drilling in an easily accessible format. For example, the display  250  may be a viewing screen (e.g., a monitor) that is coupled to or forms part of the on-site controller  144 . 
     The display  250  provides visual indicators such as a hole depth indicator  252 , a bit depth indicator  254 , a GAMMA indicator  256 , an inclination indicator  258 , an azimuth indicator  260 , and a TVD indicator  262 . Other indicators may also be provided, including a ROP indicator  264 , a mechanical specific energy (MSE) indicator  266 , a differential pressure indicator  268 , a standpipe pressure indicator  270 , a flow rate indicator  272 , a rotary RPM indicator  274 , a bit speed indicator  276 , and a WOB indicator  278 . 
     Some or all of the indicators  264 ,  266 ,  268 ,  270 ,  272 ,  274 ,  276 , and/or  278  may include a marker representing a target value. For purposes of example, markers are set as the following values, but it is understood that any desired target value may be representing. For example, the ROP indicator  264  may include a marker  265  indicating that the target value is fifty ft/hr. The MSE indicator  266  may include a marker  267  indicating that the target value is thirty-seven ksi. The differential pressure indicator  268  may include a marker  269  indicating that the target value is two hundred psi. The ROP indicator  264  may include a marker  265  indicating that the target value is fifty ft/hr. The standpipe pressure indicator  270  may have no marker in the present example. The flow rate indicator  272  may include a marker  273  indicating that the target value is five hundred gpm. The rotary RPM indicator  274  may include a marker  275  indicating that the target value is zero RPM (due to sliding). The bit speed indicator  276  may include a marker  277  indicating that the target value is one hundred and fifty RPM. The WOB indicator  278  may include a marker  279  indicating that the target value is ten klbs. Although only labeled with respect to the indicator  264 , each indicator may include a colored band  263  or another marking to indicate, for example, whether the respective gauge value is within a safe range (e.g., indicated by a green color), within a caution range (e.g., indicated by a yellow color), or within a danger range (e.g., indicated by a red color). Although not shown, in some embodiments, multiple markers may be present on a single indicator. The markers may vary in color and/or size. 
     A log chart  280  may visually indicate depth versus one or more measurements (e.g., may represent log inputs relative to a progressing depth chart). For example, the log chart  280  may have a y-axis representing depth and an x-axis representing a measurement such as GAMMA count  281  (as shown), ROP  283  (e.g., empirical ROP and normalized ROP), or resistivity. An autopilot button  282  and an oscillate button  284  may be used to control activity. For example, the autopilot button  282  may be used to engage or disengage an autopilot, while the oscillate button  284  may be used to directly control oscillation of the drill string or engage/disengage an external hardware device or controller via software and/or hardware. 
     A circular chart  286  may provide current and historical toolface orientation information (e.g., which way the bend is pointed). For purposes of illustration, the circular chart  286  represents three hundred and sixty degrees. A series of circles within the circular chart  286  may represent a timeline of toolface orientations, with the sizes of the circles indicating the temporal position of each circle. For example, larger circles may be more recent than smaller circles, so the largest circle  288  may be the newest reading and the smallest circle  289  may be the oldest reading. In other embodiments, the circles may represent the energy and/or progress made via size, color, shape, a number within a circle, etc. For example, the size of a particular circle may represent an accumulation of orientation and progress for the period of time represented by the circle. In other embodiments, concentric circles representing time (e.g., with the outside of the circular chart  286  being the most recent time and the center point being the oldest time) may be used to indicate the energy and/or progress (e.g., via color and/or patterning such as dashes or dots rather than a solid line). 
     The circular chart  286  may also be color coded, with the color coding existing in a band  290  around the circular chart  286  or positioned or represented in other ways. The color coding may use colors to indicate activity in a certain direction. For example, the color red may indicate the highest level of activity, while the color blue may indicate the lowest level of activity. Furthermore, the arc range in degrees of a color may indicate the amount of deviation. Accordingly, a relatively narrow (e.g., thirty degrees) arc of red with a relatively broad (e.g., three hundred degrees) arc of blue may indicate that most activity is occurring in a particular toolface orientation with little deviation. For purposes of illustration, the color blue extends from approximately 22-337 degrees, the color green extends from approximately 15-22 degrees and 337-345 degrees, the color yellow extends a few degrees around the 13 and 345 degree marks, and the color red extends from approximately 347-10 degrees. Transition colors or shades may be used with, for example, the color orange marking the transition between red and yellow and/or a light blue marking the transition between blue and green. 
     This color coding enables the display  250  to provide an intuitive summary of how narrow the standard deviation is and how much of the energy intensity is being expended in the proper direction. Furthermore, the center of energy may be viewed relative to the target. For example, the display  250  may clearly show that the target is at ninety degrees but the center of energy is at forty-five degrees. 
     Other indicators may be present, such as a slide indicator  292  to indicate how much time remains until a slide occurs and/or how much time remains for a current slide. For example, the slide indicator may represent a time, a percentage (e.g., current slide is fifty-six percent complete), a distance completed, and/or a distance remaining. The slide indicator  292  may graphically display information using, for example, a colored bar  293  that increases or decreases with the slide&#39;s progress. In some embodiments, the slide indicator may be built into the circular chart  286  (e.g., around the outer edge with an increasing/decreasing band), while in other embodiments the slide indicator may be a separate indicator such as a meter, a bar, a gauge, or another indicator type. 
     In another embodiment, the slide indicator  292  is not an indicator that slide drilling is being utilized to accomplish the directional drilling operation. Rather, the drilling rig might be set up to undertake directional drilling operations employing rotary steerable drilling. In such an embodiment, the slide indicator  292  would still function in a similar manner, i.e., to detail the time remaining until a directional change occurs and/or how much time remains for a direction currently being drilled. The slide indicator  292  could also indicate a vector direction for the drilling direction change and a force vector indicating the amount of force to be applied in the vector direction. Thus, the slide indicator  292  may represent a time, a percentage, a distance completed, and/or distance remaining for a particular drilling direction. For example, if the slide indicator  292  displays a percentage, and the percentage is intended in the particular embodiment to display the percent complete for the current drilling direction, once the percentage reaches 100% there may then occur a directional change performed by the rotary steerable system wherein the direction of the current drilling operation is altered according to methods specific to rotary steerable drilling operations, as described hereinbelow. Additionally, the slide indicator  292  may display a different tag for the parameter other than that of “slide” as shown in  FIG. 2B , such as “directional” or other tags. 
     An error indicator  294  may be present to indicate a magnitude and/or a direction of error. For example, the error indicator  294  may indicate that the estimated drill bit position is a certain distance from the planned path, with a location of the error indicator  294  around the circular chart  286  representing the heading. For example,  FIG. 2B  illustrates an error magnitude of fifteen feet and an error direction of fifteen degrees. The error indicator  294  may be any color but is red for purposes of example. It is understood that the error indicator  294  may present a zero if there is no error and/or may represent that the bit is on the path in other ways, such as being a green color. Transition colors, such as yellow, may be used to indicate varying amounts of error. In some embodiments, the error indicator  294  may not appear unless there is an error in magnitude and/or direction. A marker  296  may indicate an ideal slide direction. Although not shown, other indicators may be present, such as a bit life indicator to indicate an estimated lifetime for the current bit based on a value such as time and/or distance. 
     It is understood that the display  250  may be arranged in many different ways. For example, colors may be used to indicate normal operation, warnings, and problems. In such cases, the numerical indicators may display numbers in one color (e.g., green) for normal operation, may use another color (e.g., yellow) for warnings, and may use yet another color (e.g., red) if a serious problem occurs. The indicators may also flash or otherwise indicate an alert. The gauge indicators may include colors (e.g., green, yellow, and red) to indicate operational conditions and may also indicate the target value (e.g., an ROP of 100 ft/hr). For example, the ROP indicator  264  may have a green bar to indicate a normal level of operation (e.g., from 10-300 ft/hr), a yellow bar to indicate a warning level of operation (e.g., from 300-360 ft/hr), and a red bar to indicate a dangerous or otherwise out of parameter level of operation (e.g., from 360-390 ft/hr). The ROP indicator  264  may also display a marker at 100 ft/hr to indicate the desired target ROP. 
     Furthermore, the use of numeric indicators, gauges, and similar visual display indicators may be varied based on factors such as the information to be conveyed and the personal preference of the viewer. Accordingly, the display  250  may provide a customizable view of various drilling processes and information for a particular individual involved in the drilling process. For example, the surface steerable system  201  may enable a user to customize the display  250  as desired, although certain features (e.g., standpipe pressure) may be locked to prevent removal. This locking may prevent a user from intentionally or accidentally removing important drilling information from the display. Other features may be set by preference. Accordingly, the level of customization and the information shown by the display  250  may be controlled based on who is viewing the display and their role in the drilling process. 
     Referring again to  FIG. 2A , it is understood that the level of integration between the on-site controller  144  and the drilling rig  110  may depend on such factors as the configuration of the drilling rig  110  and whether the on-site controller  144  is able to fully support that configuration. One or more of the control systems  208 ,  210 , and  212  may be part of the on-site controller  144 , may be third-party systems, and/or may be part of the drilling rig  110 . For example, an older drilling rig  110  may have relatively few interfaces with which the on-site controller  144  is able to interact. For purposes of illustration, if a knob must be physically turned to adjust the WOB on the drilling rig  110 , the on-site controller  144  will not be able to directly manipulate the knob without a mechanical actuator. If such an actuator is not present, the on-site controller  144  may output the setting for the knob to a screen, and an operator may then turn the knob based on the setting. Alternatively, the on-site controller  144  may be directly coupled to the knob&#39;s electrical wiring. 
     However, a newer or more sophisticated drilling rig  110 , such as a rig that has electronic control systems, may have interfaces with which the on-site controller  144  can interact for direct control. For example, an electronic control system may have a defined interface and the on-site controller  144  may be configured to interact with that defined interface. It is understood that, in some embodiments, direct control may not be allowed even if possible. For example, the on-site controller  144  may be configured to display the setting on a screen for approval, and may then send the setting to the appropriate control system only when the setting has been approved. 
     Referring to  FIG. 3 , one embodiment of an environment  300  illustrates multiple communication channels (indicated by arrows) that are commonly used in existing directional drilling operations that do not have the benefit of the surface steerable system  201  of  FIG. 2A . The communication channels couple various individuals involved in the drilling process. The communication channels may support telephone calls, emails, text messages, faxes, data transfers (e.g., file transfers over networks), and other types of communications. 
     The individuals involved in the drilling process may include a drilling engineer  302 , a geologist  304 , a directional driller  306 , a tool pusher  308 , a driller  310 , and a rig floor crew  312 . One or more company representatives (e.g., company men)  314  may also be involved. The individuals may be employed by different organizations, which can further complicate the communication process. For example, the drilling engineer  302 , geologist  304 , and company man  314  may work for an operator, the directional driller  306  may work for a directional drilling service provider, and the tool pusher  308 , driller  310 , and rig floor crew  312  may work for a rig service provider. 
     The drilling engineer  302  and geologist  304  are often located at a location remote from the drilling rig (e.g., in a home office/drilling hub). The drilling engineer  302  may develop a well plan  318  and may make drilling decisions based on drilling rig information. The geologist  304  may perform such tasks as formation analysis based on seismic, gamma, and other data. The directional driller  306  is generally located at the drilling rig and provides instructions to the driller  310  based on the current well plan and feedback from the drilling engineer  302 . The driller  310  handles the actual drilling operations and may rely on the rig floor crew  312  for certain tasks. The tool pusher  308  may be in charge of managing the entire drilling rig and its operation. 
     The following is one possible example of a communication process within the environment  300 , although it is understood that many communication processes may be used. The use of a particular communication process may depend on such factors as the level of control maintained by various groups within the process, how strictly communication channels are enforced, and similar factors. In the present example, the directional driller  306  uses the well plan  318  to provide drilling instructions to the driller  310 . The driller  310  controls the drilling using control systems such as the control systems  208 ,  210 , and  212  of  FIG. 2A . During drilling, information from sensor equipment such as downhole MWD equipment  316  and/or rig sensors  320  may indicate that a formation layer has been reached twenty feet higher than expected by the geologist  304 . This information is passed back to the drilling engineer  302  and/or geologist  304  through the company man  314 , and may pass through the directional driller  306  before reaching the company man  314 . 
     The drilling engineer  302 /well planner (not shown), either alone or in conjunction with the geologist  306 , may modify the well plan  318  or make other decisions based on the received information. The modified well plan and/or other decisions may or may not be passed through the company man  314  to the directional driller  306 , who then tells the driller  310  how to drill. The driller  310  may modify equipment settings (e.g., toolface orientation) and, if needed, pass orders on to the rig floor crew  312 . For example, a change in WOB may be performed by the driller  310  changing a setting, while a bit trip may require the involvement of the rig floor crew  312 . Accordingly, the level of involvement of different individuals may vary depending on the nature of the decision to be made and the task to be performed. The proceeding example may be more complex than described. Multiple intermediate individuals may be involved and, depending on the communication chain, some instructions may be passed through the tool pusher  308 . 
     The environment  300  presents many opportunities for communication breakdowns as information is passed through the various communication channels, particularly given the varying types of communication that may be used. For example, verbal communications via phone may be misunderstood and, unless recorded, provide no record of what was said. Furthermore, accountability may be difficult or impossible to enforce as someone may provide an authorization but deny it or claim that they meant something else. Without a record of the information passing through the various channels and the authorizations used to approve changes in the drilling process, communication breakdowns can be difficult to trace and address. As many of the communication channels illustrated in  FIG. 3  pass information through an individual to other individuals (e.g., an individual may serve as an information conduit between two or more other individuals), the risk of breakdown increases due to the possibility that errors may be introduced in the information. 
     Even if everyone involved does their part, drilling mistakes may be amplified while waiting for an answer. For example, a message may be sent to the geologist  306  that a formation layer seems to be higher than expected, but the geologist  306  may be asleep. Drilling may continue while waiting for the geologist  306  and the continued drilling may amplify the error. Such errors can cost hundreds of thousands or millions of dollars. However, the environment  300  provides no way to determine if the geologist  304  has received the message and no way to easily notify the geologist  304  or to contact someone else when there is no response within a defined period of time. Even if alternate contacts are available, such communications may be cumbersome and there may be difficulty in providing all the information that the alternate would need for a decision. 
     Referring to  FIG. 4 , one embodiment of an environment  400  illustrates communication channels that may exist in a directional drilling operation having the benefit of the surface steerable system  201  of  FIG. 2A . In the present example, the surface steerable system  201  includes the drilling hub  216 , which includes the regional database  128  of  FIG. 1A  and processing unit(s)  404  (e.g., computers). The drilling hub  216  also includes communication interfaces (e.g., web portals)  406  that may be accessed by computing devices capable of wireless and/or wireline communications, including desktop computers, laptops, tablets, smart phones, and personal digital assistants (PDAs). The on-site controller  144  includes one or more local databases  410  (where “local” is from the perspective of the on-site controller  144 ) and processing unit(s)  412 . 
     The drilling hub  216  is remote from the on-site controller  144 , and various individuals associated with the drilling operation interact either through the drilling hub  216  or through the on-site controller  144 . In some embodiments, an individual may access the drilling project through both the drilling hub  216  and on-site controller  144 . For example, the directional driller  306  may use the drilling hub  216  when not at the drilling site and may use the on-site controller  144  when at the drilling site. 
     The drilling engineer  302  and geologist  304  may access the surface steerable system  201  remotely via the portal  406  and set various parameters such as rig limit controls. Other actions may also be supported, such as granting approval to a request by the directional driller  306  to deviate from the well plan and evaluating the performance of the drilling operation. The directional driller  306  may be located either at the drilling rig  110  or off-site. Being off-site (e.g., at the drilling hub  216  or elsewhere) enables a single directional driller to monitor multiple drilling rigs. When off-site, the directional driller  306  may access the surface steerable system  201  via the portal  406 . When on-site, the directional driller  306  may access the surface steerable system via the on-site controller  144 . 
     The driller  310  may get instructions via the on-site controller  144 , thereby lessening the possibly of miscommunication and ensuring that the instructions were received. Although the tool pusher  308 , rig floor crew  312 , and company man  314  are shown communicating via the driller  310 , it is understood that they may also have access to the on-site controller  144 . Other individuals, such as a MWD hand  408 , may access the surface steerable system  201  via the drilling hub  216 , the on-site controller  144 , and/or an individual such as the driller  310 . 
     As illustrated in  FIG. 4 , many of the individuals involved in a drilling operation may interact through the surface steerable system  201 . This enables information to be tracked as it is handled by the various individuals involved in a particular decision. For example, the surface steerable system  201  may track which individual submitted information (or whether information was submitted automatically), who viewed the information, who made decisions, when such events occurred, and similar information-based issues. This provides a complete record of how particular information propagated through the surface steerable system  201  and resulted in a particular drilling decision. This also provides revision tracking as changes in the well plan occur, which in turn enables entire decision chains to be reviewed. Such reviews may lead to improved decision making processes and more efficient responses to problems as they occur. 
     In some embodiments, documentation produced using the surface steerable system  201  may be synchronized and/or merged with other documentation, such as that produced by third party systems such as the WellView product produced by Peloton Computer Enterprises Ltd. of Calgary, Canada. In such embodiments, the documents, database files, and other information produced by the surface steerable system  201  is synchronized to avoid such issues as redundancy, mismatched file versions, and other complications that may occur in projects where large numbers of documents are produced, edited, and transmitted by a relatively large number of people. 
     The surface steerable system  201  may also impose mandatory information formats and other constraints to ensure that predefined criteria are met. For example, an electronic form provided by the surface steerable system  201  in response to a request for authorization may require that some fields are filled out prior to submission. This ensures that the decision maker has the relevant information prior to making the decision. If the information for a required field is not available, the surface steerable system  201  may require an explanation to be entered for why the information is not available (e.g., sensor failure). Accordingly, a level of uniformity may be imposed by the surface steerable system  201 , while exceptions may be defined to enable the surface steerable system  201  to handle various scenarios. 
     The surface steerable system  201  may also send alerts (e.g., email or text alerts) to notify one or more individuals of a particular problem, and the recipient list may be customized based on the problem. Furthermore, contact information may be time-based, so the surface steerable system  201  may know when a particular individual is available. In such situations, the surface steerable system  201  may automatically attempt to communicate with an available contact rather than waiting for a response from a contact that is likely not available. 
     As described previously, the surface steerable system  201  may present a customizable display of various drilling processes and information for a particular individual involved in the drilling process. For example, the drilling engineer  302  may see a display that presents information relevant to the drilling engineer&#39;s tasks, and the geologist  304  may see a different display that includes additional and/or more detailed formation information. This customization enables each individual to receive information needed for their particular role in the drilling process while minimizing or eliminating unnecessary information. 
     Referring to  FIG. 5 , one embodiment of an environment  500  illustrates data flow that may be supported by the surface steerable system  201  of  FIG. 2A . The data flow  500  begins at block  502  and may move through two branches, although some blocks in a branch may not occur before other blocks in the other branch. One branch involves the drilling hub  216  and the other branch involves the on-site controller  144  at the drilling rig  110 . 
     In block  504 , a geological survey is performed. The survey results are reviewed by the geologist  304  and a formation report  506  is produced. The formation report  506  details formation layers, rock type, layer thickness, layer depth, and similar information that may be used to develop a well plan. In block  508 , a well plan is developed by a well planner  524  and/or the drilling engineer  302  based on the formation report and information from the regional database  128  at the drilling hub  216 . Block  508  may include selection of a BHA and the setting of control limits. The well plan is stored in the database  128 . The drilling engineer  302  may also set drilling operation parameters in step  510  that are also stored in the database  128 . 
     In the other branch, the drilling rig  110  is constructed in block  512 . At this point, as illustrated by block  526 , the well plan, BHA information, control limits, historical drilling data, and control commands may be sent from the database  128  to the local database  410 . Using the receiving information, the directional driller  306  inputs actual BHA parameters in block  514 . The company man  314  and/or the directional driller  306  may verify performance control limits in block  516 , and the control limits are stored in the local database  410  of the on-site controller  144 . The performance control limits may include multiple levels such as a warning level and a critical level corresponding to no action taken within feet/minutes. 
     Once drilling begins, a diagnostic logger (described later in greater detail)  520  that is part of the on-site controller  144  logs information related to the drilling such as sensor information and maneuvers and stores the information in the local database  410  in block  526 . The information is sent to the database  128 . Alerts are also sent from the on-site controller  144  to the drilling hub  216 . When an alert is received by the drilling hub  216 , an alert notification  522  is sent to defined individuals, such as the drilling engineer  302 , geologist  304 , and company man  314 . The actual recipient may vary based on the content of the alert message or other criteria. The alert notification  522  may result in the well plan and the BHA information and control limits being modified in block  508  and parameters being modified in block  510 . These modifications are saved to the database  128  and transferred to the local database  410 . The BHA may be modified by the directional driller  306  in block  518 , and the changes propagated through blocks  514  and  516  with possible updated control limits. Accordingly, the surface steerable system  201  may provide a more controlled flow of information than may occur in an environment without such a system. 
     The flow charts described herein illustrate various exemplary functions and operations that may occur within various environments. Accordingly, these flow charts are not exhaustive and that various steps may be excluded to clarify the aspect being described. For example, it is understood that some actions, such as network authentication processes, notifications, and handshakes, may have been performed prior to the first step of a flow chart. Such actions may depend on the particular type and configuration of communications engaged in by the on-site controller  144  and/or drilling hub  216 . Furthermore, other communication actions may occur between illustrated steps or simultaneously with illustrated steps. 
     The surface steerable system  201  includes large amounts of data specifically related to various drilling operations as stored in databases such as the databases  128  and  410 . As described with respect to  FIG. 1A , this data may include data collected from many different locations and may correspond to many different drilling operations. The data stored in the database  128  and other databases may be used for a variety of purposes, including data mining and analytics, which may aid in such processes as equipment comparisons, drilling plan formulation, convergence planning, recalibration forecasting, and self-tuning (e.g., drilling performance optimization). Some processes, such as equipment comparisons, may not be performed in real time using incoming data, while others, such as self-tuning, may be performed in real time or near real time. Accordingly, some processes may be executed at the drilling hub  216 , other processes may be executed at the on-site controller  144 , and still other processes may be executed by both the drilling hub  216  and the on-site controller  144  with communications occurring before, during, and/or after the processes are executed. As described below in various examples, some processes may be triggered by events (e.g., recalibration forecasting) while others may be ongoing (e.g., self-tuning). 
     For example, in equipment comparison, data from different drilling operations (e.g., from drilling the wells  102 ,  104 ,  106 , and  108 ) may be normalized and used to compare equipment wear, performance, and similar factors. For example, the same bit may have been used to drill the wells  102  and  106 , but the drilling may have been accomplished using different parameters (e.g., rotation speed and WOB). By normalizing the data, the two bits can be compared more effectively. The normalized data may be further processed to improve drilling efficiency by identifying which bits are most effective for particular rock layers, which drilling parameters resulted in the best ROP for a particular formation, ROP versus reliability tradeoffs for various bits in various rock layers, and similar factors. Such comparisons may be used to select a bit for another drilling operation based on formation characteristics or other criteria. Accordingly, by mining and analyzing the data available via the surface steerable system  201 , an optimal equipment profile may be developed for different drilling operations. The equipment profile may then be used when planning future wells or to increase the efficiency of a well currently being drilled. This type of drilling optimization may become increasingly accurate as more data is compiled and analyzed. 
     In drilling plan formulation, the data available via the surface steerable system  201  may be used to identify likely formation characteristics and to select an appropriate equipment profile. For example, the geologist  304  may use local data obtained from the planned location of the drilling rig  110  in conjunction with regional data from the database  128  to identify likely locations of the layers  168 A- 176 A ( FIG. 1B ). Based on that information, the drilling engineer  302  can create a well plan that will include the build curve of  FIG. 1C . 
     Referring to  FIG. 6 , a method  600  illustrates one embodiment of an event-based process that may be executed by the on-site controller  144  of  FIG. 2A . For example, software instructions needed to execute the method  600  may be stored on a computer readable storage medium of the on-site controller  144  and then executed by the processor  412  that is coupled to the storage medium and is also part of the on-site controller  144 . 
     In step  602 , the on-site controller  144  receives inputs, such as a planned path for a borehole, formation information for the borehole, equipment information for the drilling rig, and a set of cost parameters. The cost parameters may be used to guide decisions made by the on-site controller  144  as will be explained in greater detail below. The inputs may be received in many different ways, including receiving document (e.g., spreadsheet) uploads, accessing a database (e.g., the database  128  of  FIG. 1A ), and/or receiving manually entered data. 
     In step  604 , the planned path, the formation information, the equipment information, and the set of cost parameters are processed to produce control parameters (e.g., the control information  204  of  FIG. 2A ) for the drilling rig  110 . The control parameters may define the settings for various drilling operations that are to be executed by the drilling rig  110  to form the borehole, such as WOB, flow rate of mud, toolface orientation, and similar settings. In some embodiments, the control parameters may also define particular equipment selections, such as a particular bit. In the present example, step  604  is directed to defining initial control parameters for the drilling rig  110  prior to the beginning of drilling, but it is understood that step  604  may be used to define control parameters for the drilling rig  110  even after drilling has begun. For example, the on-site controller  144  may be put in place prior to drilling or may be put in place after drilling has commenced, in which case the method  600  may also receive current borehole information in step  602 . 
     In step  606 , the control parameters are output for use by the drilling rig  110 . In embodiments where the on-site controller  144  is directly coupled to the drilling rig  110 , outputting the control parameters may include sending the control parameters directly to one or more of the control systems of the drilling rig  110  (e.g., the control systems  210 ,  212 , and  214 ). In other embodiments, outputting the control parameters may include displaying the control parameters on a screen, printing the control parameters, and/or copying them to a storage medium (e.g., a Universal Serial Bus (USB) drive) to be transferred manually. 
     In step  608 , feedback information received from the drilling rig  110  (e.g., from one or more of the control systems  210 ,  212 , and  214  and/or sensor system  216 ) is processed. The feedback information may provide the on-site controller  144  with the current state of the borehole (e.g., depth and inclination), the drilling rig equipment, and the drilling process, including an estimated position of the bit in the borehole. The processing may include extracting desired data from the feedback information, normalizing the data, comparing the data to desired or ideal parameters, determining whether the data is within a defined margin of error, and/or any other processing steps needed to make use of the feedback information. 
     In step  610 , the on-site controller  144  may take action based on the occurrence of one or more defined events. For example, an event may trigger a decision on how to proceed with drilling in the most cost effective manner. Events may be triggered by equipment malfunctions, path differences between the measured borehole and the planned borehole, upcoming maintenance periods, unexpected geological readings, and any other activity or non-activity that may affect drilling the borehole. It is understood that events may also be defined for occurrences that have a less direct impact on drilling, such as actual or predicted labor shortages, actual or potential licensing issues for mineral rights, actual or predicted political issues that may impact drilling, and similar actual or predicted occurrences. Step  610  may also result in no action being taken if, for example, drilling is occurring without any issues and the current control parameters are satisfactory. 
     An event may be defined in the received inputs of step  602  or defined later. Events may also be defined on site using the on-site controller  144 . For example, if the drilling rig  110  has a particular mechanical issue, one or more events may be defined to monitor that issue in more detail than might ordinarily occur. In some embodiments, an event chain may be implemented where the occurrence of one event triggers the monitoring of another related event. For example, a first event may trigger a notification about a potential problem with a piece of equipment and may also activate monitoring of a second event. In addition to activating the monitoring of the second event, the triggering of the first event may result in the activation of additional oversight that involves, for example, checking the piece of equipment more frequently or at a higher level of detail. If the second event occurs, the equipment may be shut down and an alarm sounded, or other actions may be taken. This enables different levels of monitoring and different levels of responses to be assigned independently if needed. 
     Referring to  FIG. 7A , a method  700  illustrates a more detailed embodiment of the method  600  of  FIG. 6 , particularly of step  610 . As steps  702 ,  704 ,  706 , and  708  are similar or identical to steps  602 ,  604 ,  606 , and  608 , respectively, of  FIG. 6 , they are not described in detail in the present embodiment. In the present example, the action of step  610  of  FIG. 6  is based on whether an event has occurred and the action needed if the event has occurred. 
     Accordingly, in step  710 , a determination is made as to whether an event has occurred based on the inputs of steps  702  and  708 . If no event has occurred, the method  700  returns to step  708 . If an event has occurred, the method  700  moves to step  712 , where calculations are performed based on the information relating to the event and at least one cost parameter. It is understood that additional information may be obtained and/or processed prior to or as part of step  712  if needed. For example, certain information may be used to determine whether an event has occurred, and additional information may then be retrieved and processed to determine the particulars of the event. 
     In step  714 , new control parameters may be produced based on the calculations of step  712 . In step  716 , a determination may be made as to whether changes are needed in the current control parameters. For example, the calculations of step  712  may result in a decision that the current control parameters are satisfactory (e.g., the event may not affect the control parameters). If no changes are needed, the method  700  returns to step  708 . If changes are needed, the on-site controller  144  outputs the new parameters in step  718 . The method  700  may then return to step  708 . In some embodiments, the determination of step  716  may occur before step  714 . In such embodiments, step  714  may not be executed if the current control parameters are satisfactory. 
     In a more detailed example of the method  700 , assume that the on-site controller  144  is involved in drilling a borehole and that approximately six hundred feet remain to be drilled. An event has been defined that warns the on-site controller  144  when the drill bit is predicted to reach a minimum level of efficiency due to wear and this event is triggered in step  710  at the six hundred foot mark. The event may be triggered because the drill bit is within a certain number of revolutions before reaching the minimum level of efficiency, within a certain distance remaining (based on strata type, thickness, etc.) that can be drilled before reaching the minimum level of efficiency, or may be based on some other factor or factors. Although the event of the current example is triggered prior to the predicted minimum level of efficiency being reached in order to proactively schedule drilling changes if needed, it is understood that the event may be triggered when the minimum level is actually reached. 
     The on-site controller  144  may perform calculations in step  712  that account for various factors that may be analyzed to determine how the last six hundred feet is drilled. These factors may include the rock type and thickness of the remaining six hundred feet, the predicted wear of the drill bit based on similar drilling conditions, location of the bit (e.g., depth), how long it will take to change the bit, and a cost versus time analysis. Generally, faster drilling is more cost effective, but there are many tradeoffs. For example, increasing the WOB or differential pressure to increase the rate of penetration may reduce the time it takes to finish the borehole, but may also wear out the drill bit faster, which will decrease the drilling effectiveness and slow the drilling down. If this slowdown occurs too early, it may be less efficient than drilling more slowly. Therefore, there is a tradeoff that must be calculated. Too much WOB or differential pressure may also cause other problems, such as damaging downhole tools. Should one of these problems occur, taking the time to trip the bit or drill a sidetrack may result in more total time to finish the borehole than simply drilling more slowly, so faster may not be better. The tradeoffs may be relatively complex, with many factors to be considered. 
     In step  714 , the on-site controller  144  produces new control parameters based on the solution calculated in step  712 . In step  716 , a determination is made as to whether the current parameters should be replaced by the new parameters. For example, the new parameters may be compared to the current parameters. If the two sets of parameters are substantially similar (e.g., as calculated based on a percentage change or margin of error of the current path with a path that would be created using the new control parameters) or identical to the current parameters, no changes would be needed. However, if the new control parameters call for changes greater than the tolerated percentage change or outside of the margin of error, they are output in step  718 . For example, the new control parameters may increase the WOB and also include the rate of mud flow significantly enough to override the previous control parameters. In other embodiments, the new control parameters may be output regardless of any differences, in which case step  716  may be omitted. In still other embodiments, the current path and the predicted path may be compared before the new parameters are produced, in which case step  714  may occur after step  716 . 
     Referring to  FIG. 7B  and with additional reference to  FIG. 7C , a method  720  ( FIG. 7B ) and diagram  740  ( FIG. 7C ) illustrate a more detailed embodiment of the method  600  of  FIG. 6 , particularly of step  610 . As steps  722 ,  724 ,  726 , and  728  are similar or identical to steps  602 ,  604 ,  606 , and  608 , respectively, of  FIG. 6 , they are not described in detail in the present embodiment. In the present example, the action of step  610  of  FIG. 6  is based on whether the drilling has deviated from the planned path. 
     In step  730 , a comparison may be made to compare the estimated bit position and trajectory with a desired point (e.g., a desired bit position) along the planned path. The estimated bit position may be calculated based on information such as a survey reference point and/or represented as an output calculated by a borehole estimator (as will be described later) and may include a bit projection path and/or point that represents a predicted position of the bit if it continues its current trajectory from the estimated bit position. Such information may be included in the inputs of step  722  and feedback information of step  728  or may be obtained in other ways. It is understood that the estimated bit position and trajectory may not be calculated exactly, but may represent an estimate the current location of the drill bit based on the feedback information. As illustrated in  FIG. 7C , the estimated bit position is indicated by arrow  743  relative to the desired bit position  741  along the planned path  742 . 
     In step  732 , a determination may be made as to whether the estimated bit position  743  is within a defined margin of error of the desired bit position. If the estimated bit position is within the margin of error, the method  720  returns to step  728 . If the estimated bit position is not within the margin of error, the on-site controller  144  calculates a convergence plan in step  734 . With reference to  FIG. 7C , for purposes of the present example, the estimated bit position  743  is outside of the margin of error. 
     In some embodiments, a projected bit position (not shown) may also be used. For example, the estimated bit position  743  may be extended via calculations to determine where the bit is projected to be after a certain amount of drilling (e.g., time and/or distance). This information may be used in several ways. If the estimated bit position  743  is outside the margin of error, the projected bit position  743  may indicate that the current bit path will bring the bit within the margin of error without any action being taken. In such a scenario, action may be taken only if it will take too long to reach the projected bit position when a more optimal path is available. If the estimated bit position is inside the margin of error, the projected bit position may be used to determine if the current path is directing the bit away from the planned path. In other words, the projected bit position may be used to proactively detect that the bit is off course before the margin of error is reached. In such a scenario, action may be taken to correct the current path before the margin of error is reached. 
     The convergence plan identifies a plan by which the bit can be moved from the estimated bit position  743  to the planned path  742 . It is noted that the convergence plan may bypass the desired bit position  741  entirely, as the objective is to get the actual drilling path back to the planned path  742  in the most optimal manner. The most optimal manner may be defined by cost, which may represent a financial value, a reliability value, a time value, and/or other values that may be defined for a convergence path. 
     As illustrated in  FIG. 7C , an infinite number of paths may be selected to return the bit to the planned path  742 . The paths may begin at the estimated bit position  743  or may begin at other points along a projected path  752  that may be determined by calculating future bit positions based on the current trajectory of the bit from the estimated bit position  752 . In the present example, a first path  744  results in locating the bit at a position  745  (e.g., a convergence point). The convergence point  745  is outside of a lower limit  753  defined by a most aggressive possible correction (e.g., a lower limit on a window of correction). This correction represents the most aggressive possible convergence path, which may be limited by such factors as a maximum directional change possible in the convergence path, where any greater directional change creates a dogleg that makes it difficult or impossible to run casing or perform other needed tasks. A second path  746  results in a convergence point  747 , which is right at the lower limit  753 . A third path  748  results in a convergence point  749 , which represents a mid-range convergence point. A third path  750  results in a convergence point  751 , which occurs at an upper limit  754  defined by a maximum convergence delay (e.g., an upper limit on the window of correction). 
     A fourth path  756  may begin at a projected point or bit position  755  that lies along the projected path  752  and result in a convergence point  757 , which represents a mid-range convergence point. The path  756  may be used by, for example, delaying a trajectory change until the bit reaches the position  755 . Many additional convergence options may be opened up by using projected points for the basis of convergence plans as well as the estimated bit position. 
     A fifth path  758  may begin at a projected point or bit position  760  that lies along the projected path  750  and result in a convergence point  759 . In such an embodiment, different convergence paths may include similar or identical path segments, such as the similar or identical path shared by the convergence points  751  and  759  to the point  760 . For example, the point  760  may mark a position on the path  750  where a slide segment begins (or continues from a previous slide segment) for the path  758  and a straight line path segment begins (or continues) for the path  750 . The surface steerable system  144  may calculate the paths  750  and  758  as two entirely separate paths or may calculate one of the paths as deviating from (e.g., being a child of) the other path. Accordingly, any path may have multiple paths deviating from that path based on, for example, different slide points and slide times. 
     Each of these paths  744 ,  746 ,  748 ,  750 ,  756 , and  758  may present advantages and disadvantages from a drilling standpoint. For example, one path may be longer and may require more sliding in a relatively soft rock layer, while another path may be shorter but may require more sliding through a much harder rock layer. Accordingly, tradeoffs may be evaluated when selecting one of the convergence plans rather than simply selecting the most direct path for convergence. The tradeoffs may, for example, consider a balance between ROP, total cost, dogleg severity, and reliability. While the number of convergence plans may vary, there may be hundreds or thousands of convergence plans in some embodiments and the tradeoffs may be used to select one of those hundreds or thousands for implementation. The convergence plans from which the final convergence plan is selected may include plans calculated from the estimated bit position  743  as well as plans calculated from one or more projected points along the projected path. 
     In some embodiments, straight line projections of the convergence point vectors, after correction to the well plan  742 , may be evaluated to predict the time and/or distance to the next correction requirement. This evaluation may be used when selecting the lowest total cost option by avoiding multiple corrections where a single more forward thinking option might be optimal. As an example, one of the solutions provided by the convergence planning may result in the most cost effective path to return to the well plan  742 , but may result in an almost immediate need for a second correction due to a pending deviation within the well plan. Accordingly, a convergence path that merges the pending deviation with the correction by selecting a convergence point beyond the pending deviation might be selected when considering total well costs. 
     It is understood that the diagram  740  of  FIG. 7C  is a two dimensional representation of a three dimensional environment. Accordingly, the illustrated convergence paths in the diagram  740  of  FIG. 7C  may be three dimensional. In addition, although the illustrated convergence paths all converge with the planned path  742 , is it understood that some convergence paths may be calculated that move away from the planned path  742  (although such paths may be rejected). Still other convergence paths may overshoot the actual path  742  and then converge (e.g., if there isn&#39;t enough room to build the curve otherwise). Accordingly, many different convergence path structures may be calculated. 
     Referring again to  FIG. 7B , in step  736 , the on-site controller  144  produces revised control parameters based on the convergence plan calculated in step  734 . In step  738 , the revised control parameters may be output. It is understood that the revised control parameters may be provided to get the drill bit back to the planned path  742  and the original control parameters may then be used from that point on (starting at the convergence point). For example, if the convergence plan selected the path  748 , the revised control parameters may be used until the bit reaches position  749 . Once the bit reaches the position  749 , the original control parameters may be used for further drilling. Alternatively, the revised control parameters may incorporate the original control parameters starting at the position  749  or may re-calculate control parameters for the planned path even beyond the point  749 . Accordingly, the convergence plan may result in control parameters from the bit position  743  to the position  749 , and further control parameters may be reused or calculated depending on the particular implementation of the on-site controller  144 . 
     Referring to  FIG. 8A , a method  800  illustrates a more detailed embodiment of step  734  of  FIG. 7B . It is understood that the convergence plan of step  734  may be calculated in many different ways, and that  800  method provides one possible approach to such a calculation when the goal is to find the lowest cost solution vector. In the present example, cost may include both the financial cost of a solution and the reliability cost of a solution. Other costs, such as time costs, may also be included. For purposes of example, the diagram  740  of  FIG. 7C  is used. 
     In step  802 , multiple solution vectors are calculated from the current position  743  to the planned path  742 . These solution vectors may include the paths  744 ,  746 ,  748 , and  750 . Additional paths (not shown in  FIG. 7C ) may also be calculated. The number of solution vectors that are calculated may vary depending on various factors. For example, the distance available to build a needed curve to get back to the planned path  742  may vary depending on the current bit location and orientation relative to the planned path. A greater number of solution vectors may be available when there is a greater distance in which to build a curve than for a smaller distance since the smaller distance may require a much more aggressive build rate that excludes lesser build rates that may be used for the greater distance. In other words, the earlier an error is caught, the more possible solution vectors there will generally be due to the greater distance over which the error can be corrected. While the number of solution vectors that are calculated in this step may vary, there may be hundreds or thousands of solution vectors calculated in some embodiments. 
     In step  804 , any solution vectors that fall outside of defined limits are rejected, such as solution vectors that fall outside the lower limit  753  and the upper limit  754 . For example, the path  744  would be rejected because the convergence point  745  falls outside of the lower limit  753 . It is understood that the path  744  may be rejected for an engineering reason (e.g., the path would require a dogleg of greater than allowed severity) prior to cost considerations, or the engineering reason may be considered a cost. 
     In step  806 , a cost is calculated for each remaining solution vector. As illustrated in  FIG. 7C , the costs may be represented as a cost matrix (that may or may not be weighted) with each solution vector having corresponding costs in the cost matrix. In step  808 , a minimum of the solution vectors may be taken to identify the lowest cost solution vector. It is understood that the minimum cost is one way of selecting the desired solution vector, and that other ways may be used. Accordingly, step  808  is concerned with selecting an optimal solution vector based on a set of target parameters, which may include one or more of a financial cost, a time cost, a reliability cost, and/or any other factors, such as an engineering cost like dogleg severity, that may be used to narrow the set of solution vectors to the optimal solution vector. 
     By weighting the costs, the cost matrix can be customized to handle many different cost scenarios and desired results. For example, if time is of primary importance, a time cost may be weighted over financial and reliability costs to ensure that a solution vector that is faster will be selected over other solution vectors that are substantially the same but somewhat slower, even though the other solution vectors may be more beneficial in terms of financial cost and reliability cost. In some embodiments, step  804  may be combined with step  808  and solution vectors falling outside of the limits may be given a cost that ensures they will not be selected. In step  810 , the solution vector corresponding to the minimum cost is selected. 
     Referring to  FIG. 8B , a method  820  illustrates one embodiment of an event-based process that may be executed by the on-site controller  144  of  FIG. 2A . It is understood that an event may represent many different scenarios in the surface steerable system  201 . In the present example, in step  822 , an event may occur that indicates that a prediction is not correct based on what has actually occurred. For example, a formation layer is not where it is expected (e.g., too high or low), a selected bit did not drill as expected, or a selected mud motor did not build curve as expected. The prediction error may be identified by comparing expected results with actual results or by using other detection methods. 
     In step  824 , a reason for the error may be determined as the surface steerable system  201  and its data may provide an environment in which the prediction error can be evaluated. For example, if a bit did not drill as expected, the method  820  may examine many different factors, such as whether the rock formation was different than expected, whether the drilling parameters were correct, whether the drilling parameters were correctly entered by the driller, whether another error and/or failure occurred that caused the bit to drill poorly, and whether the bit simply failed to perform. By accessing and analyzing the available data, the reason for the failure may be determined. 
     In step  826 , a solution may be determined for the error. For example, if the rock formation was different than expected, the database  128  may be updated with the correct rock information and new drilling parameters may be obtained for the drilling rig  110 . Alternatively, the current bit may be tripped and replaced with another bit more suitable for the rock. In step  828 , the current drilling predictions (e.g., well plan, build rate, slide estimates) may be updated based on the solution and the solution may be stored in the database  128  for use in future predictions. Accordingly, the method  820  may result in benefits for future wells as well as improving current well predictions. 
     Referring to  FIG. 8C , a method  830  illustrates one embodiment of an event-based process that may be executed by the on-site controller  144  of  FIG. 2A . The method  830  is directed to recalibration forecasting that may be triggered by an event, such as an event detected in step  610  of  FIG. 6 . It is understood that the recalibration described in this embodiment may not be the same as calculating a convergence plan, although calculating a convergence plan may be part of the recalibration. As an example of a recalibration triggering event, a shift in ROP and/or GAMMA readings may indicate that a formation layer (e.g., the layer  170 A of  FIG. 1B ) is actually twenty feet higher than planned. This will likely impact the well plan, as build rate predictions and other drilling parameters may need to be changed. Accordingly, in step  832 , this event is identified. 
     In step  834 , a forecast may be made as to the impact of the event. For example, the surface steerable system  201  may determine whether the projected build rate needed to land the curve can be met based on the twenty foot difference. This determination may include examining the current location of the bit, the projected path, and similar information. 
     In step  836 , modifications may be made based on the forecast. For example, if the projected build rate can be met, then modifications may be made to the drilling parameters to address the formation depth difference, but the modifications may be relatively minor. However, if the projected build rate cannot be met, the surface steerable system  201  may determine how to address the situation by, for example, planning a bit trip to replace the current BHA with a BHA capable of making a new and more aggressive curve. 
     Such decisions may be automated or may require input or approval by the drilling engineer  302 , geologist  304 , or other individuals. For example, depending on the distance to the kick off point, the surface steerable system  201  may first stop drilling and then send an alert to an authorized individual, such as the drilling engineer  302  and/or geologist  304 . The drilling engineer  302  and geologist  304  may then become involved in planning a solution or may approve of a solution proposed by the surface steerable system  201 . In some embodiments, the surface steerable system  201  may automatically implement its calculated solution. Parameters may be set for such automatic implementation measures to ensure that drastic deviations from the original well plan do not occur automatically while allowing the automatic implementation of more minor measures. 
     It is understood that such recalibration forecasts may be performed based on many different factors and may be triggered by many different events. The forecasting portion of the process is directed to anticipating what changes may be needed due to the recalibration and calculating how such changes may be implemented. Such forecasting provides cost advantages because more options may be available when a problem is detected earlier rather than later. Using the previous example, the earlier the difference in the depth of the layer is identified, the more likely it is that the build rate can be met without changing the BHA. 
     Referring to  FIG. 8D , a method  840  illustrates one embodiment of an event-based process that may be executed by the on-site controller  144  of  FIG. 2A . The method  840  is directed to self-tuning that may be performed by the on-site controller  144  based on factors such as ROP, total cost, and reliability. By self-tuning, the on-site controller  144  may execute a learning process that enables it to optimize the drilling performance of the drilling rig  110 . Furthermore, the self-tuning process enables a balance to be reached that provides reliability while also lowering costs. Reliability in drilling operations is often tied to vibration and the problems that vibration can cause, such as stick-slip and whirling. Such vibration issues can damage or destroy equipment and can also result in a very uneven surface in the borehole that can cause other problems such as friction loading of future drilling operations as pipe/casing passes through that area of the borehole. Accordingly, it is desirable to minimize vibration while optimizing performance, since over-correcting for vibration may result in slower drilling than necessary. It is understood that the present optimization may involve a change in any drilling parameter and is not limited to a particular piece of equipment or control system. In other words, parameters across the entire drilling rig  110  and BHA may be changed during the self-tuning process. Furthermore, the optimization process may be applied to production by optimizing well smoothness and other factors affecting production. For example, by minimizing dogleg severity, production may be increased for the lifetime of the well. 
     Accordingly, in step  842 , one or more target parameters are identified. For example, the target parameter may be an MSE of 50 ksi or an ROP of 100 ft/hr that the on-site controller  144  is to establish and maintain. In step  844 , a plurality of control parameters are identified for use with the drilling operation. The control parameters are selected to meet the target MSE of 50 ksi or ROP of 100 ft/hr. The drilling operation is started with the control parameters, which may be used until the target MSE or ROP is reached. In step  846 , feedback information is received from the drilling operation when the control parameters are being used, so the feedback represents the performance of the drilling operation as controlled by the control parameters. Historical information may also be used in step  846 . In step  848 , an operational baseline is established based on the feedback information. 
     In step  850 , at least one of the control parameters is changed to modify the drilling operation, although the target MSE or ROP should be maintained. For example, some or all of the control parameters may be associated with a range of values and the value of one or more of the control parameters may be changed. In step  852 , more feedback information is received, but this time the feedback reflects the performance of the drilling operation with the changed control parameter. In step  854 , a performance impact of the change is determined with respect to the operational baseline. The performance impact may occur in various ways, such as a change in MSE or ROP and/or a change in vibration. In step  856 , a determination is made as to whether the control parameters are optimized. If the control parameters are not optimized, the method  840  returns to step  850 . If the control parameters are optimized, the method  840  moves to step  858 . In step  858 , the optimized control parameters are used for the current drilling operation with the target MSE or ROP and stored (e.g., in the database  128 ) for use in later drilling operations and operational analyses. This may include linking formation information to the control parameters in the regional database  128 . 
     Referring to  FIG. 9 , one embodiment of a system architecture  900  is illustrated that may be used for the on-site controller  144  of  FIG. 1A . The system architecture  900  includes interfaces configured to interact with external components and internal modules configured to process information. The interfaces may include an input driver  902 , a remote synchronization interface  904 , and an output interface  918 , which may include at least one of a graphical user interface (GUI)  906  and an output driver  908 . The internal modules may include a database query and update engine/diagnostic logger  910 , a local database  912  (which may be similar or identical to the database  410  of  FIG. 4 ), a guidance control loop (GCL) module  914 , and an autonomous control loop (ACL) module  916 . It is understood that the system architecture  900  is merely one example of a system architecture that may be used for the on-site controller  144  and the functionality may be provided for the on-site controller  144  using many different architectures. Accordingly, the functionality described herein with respect to particular modules and architecture components may be combined, further separated, and organized in many different ways. 
     For instance, the on-site controller  144  may be configured to be placed downhole somewhere along the drill string in order to provide for the functions described hereinabove as part of an embedded downhole system, such as in the embodiment shown in  FIG. 15 , described hereinbelow. The on-site controller  144  may perform methods such as the methods  600  of  FIG. 6, 700  of  FIG. 7A, 720  of  FIG. 7B, 800  of  FIG. 8A, 820  of  FIG. 8B, 830  of  FIG. 8C, and 840  of  FIG. 8D . Thus, the embedded downhole on-site controller  144  would execute downhole instead of at the surface to provide for rapid calculations concerning drilling path adjustments, economic cost analysis, and other calculations included in the methods described hereinabove. 
     It is understood that the computer steerable system  144  may perform certain computations to prevent errors or inaccuracies from accumulating and throwing off calculations. For example, as will be described later, the input driver  902  may receive Wellsite Information Transfer Specification (WITS) input representing absolute pressure, while the surface steerable system  144  needs differential pressure and needs an accurate zero point for the differential pressure. Generally, the driller will zero out the differential pressure when the drillstring is positioned with the bit off bottom and full pump flow is occurring. However, this may be a relatively sporadic event. Accordingly, the surface steerable system  144  may recognize when the bit is off bottom and target flow rate has been achieved and zero out the differential pressure. 
     Another computation may involve block height, which needs to be calibrated properly. For example, block height may oscillate over a wide range, including distances that may not even be possible for a particular drilling rig. Accordingly, if the reported range is sixty feet to one hundred and fifty feet and there should only be one hundred feet, the surface steerable system  144  may assign a zero value to the reported sixty feet and a one hundred foot value to the reported one hundred and fifty feet. Furthermore, during drilling, error gradually accumulates as the cable is shifted and other events occur. The surface steerable system  144  may compute its own block height to predict when the next connection occurs and other related events, and may also take into account any error that may be introduced by cable issues. 
     Referring specifically to  FIG. 9 , the input driver  902  provides output to the GUI  906 , the database query and update engine/diagnostic logger  910 , the GCL  914 , and the ACL  916 . The input driver  902  is configured to receive input for the on-site controller  144 . It is understood that the input driver  902  may include the functionality needed to receive various file types, formats, and data streams. The input driver  902  may also be configured to convert formats if needed. Accordingly, the input driver  902  may be configured to provide flexibility to the on-site controller  144  by handling incoming data without the need to change the internal modules. In some embodiments, for purposes of abstraction, the protocol of the data stream can be arbitrary with an input event defined as a single change (e.g., a real time sensor change) of any of the given inputs. 
     The input driver  902  may receive various types of input, including rig sensor input (e.g., from the sensor system  214  of  FIG. 2A ), well plan data, and control data (e.g., engineering control parameters). For example, rig sensor input may include hole depth, bit depth, toolface, inclination, azimuth, true vertical depth, gamma count, standpipe pressure, mud flow rate, rotary RPMs, bit speed, ROP, and WOB. The well plan data may include information such as projected starting and ending locations of various geologic layers at vertical depth points along the well plan path, and a planned path of the borehole presented in a three dimensional space. The control data may be used to define maximum operating parameters and other limitations to control drilling speed, limit the amount of deviation permitted from the planned path, define levels of authority (e.g., can an on-site operator make a particular decision or should it be made by an off-site engineer), and similar limitations. The input driver  902  may also handle manual input, such as input entered via a keyboard, a mouse, or a touch screen. In some embodiments, the input driver  902  may also handle wireless signal input, such as from a cell phone, a smart phone, a PDA, a tablet, a laptop, or any other device capable of wirelessly communicating with the on-site controller  144  through a network locally and/or offsite. 
     The database query and update engine/diagnostic logger  910  receives input from the input driver  902 , the GCL  914 , and ACL  916 , and provides output to the local database  912  and GUI  906 . The database query and update engine/diagnostic logger  910  is configured to manage the archiving of data to the local database  912 . The database query and update engine/diagnostic logger  910  may also manage some functional requirements of a remote synchronization server (RSS) via the remote synchronization interface  904  for archiving data that will be uploaded and synchronized with a remote database, such as the database  128  of  FIG. 1A . The database query and update engine/diagnostic logger  910  may also be configured to serve as a diagnostic tool for evaluating algorithm behavior and performance against raw rig data and sensor feedback data. 
     The local database  912  receives input from the database query and update engine/diagnostic logger  910  and the remote synchronization interface  904 , and provides output to the GCL  914 , the ACL  916 , and the remote synchronization interface  904 . It is understood that the local database  912  may be configured in many different ways. As described in previous embodiments, the local database  912  may store both current and historic information representing both the current drilling operation with which the on-site controller  144  is engaged as well as regional information from the database  128 . 
     The GCL  914  receives input from the input driver  902  and the local database  912 , and provides output to the database query and update engine/diagnostic logger  910 , the GUI  906 , and the ACL  916 . Although not shown, in some embodiments, the GCL  906  may provide output to the output driver  908 , which enables the GCL  914  to directly control third party systems and/or interface with the drilling rig alone or with the ACL  916 . An embodiment of the GCL  914  is discussed below with respect to  FIG. 11 . 
     The ACL  916  receives input from the input driver  902 , the local database  912 , and the GCL  914 , and provides output to the database query and update engine/diagnostic logger  910  and output driver  908 . An embodiment of the ACL  916  is discussed below with respect to  FIG. 12 . 
     The output interface  918  receives input from the input driver  902 , the GCL  914 , and the ACL  916 . In the present example, the GUI  906  receives input from the input driver  902  and the GCL  914 . The GUI  906  may display output on a monitor or other visual indicator. The output driver  908  receives input from the ACL  916  and is configured to provide an interface between the on-site controller  144  and external control systems, such as the control systems  208 ,  210 , and  212  of  FIG. 2A . 
     It is understood that the system architecture  900  of  FIG. 9  may be configured in many different ways. For example, various interfaces and modules may be combined or further separated. Accordingly, the system architecture  900  provides one example of how functionality may be structured to provide the on-site controller  144 , but the on-site controller  144  is not limited to the illustrated structure of  FIG. 9 . 
     Referring to  FIG. 10 , one embodiment of the input driver  902  of the system architecture  900  of  FIG. 9  is illustrated in greater detail. In the present example, the input driver  902  may be configured to receive input via different input interfaces, such as a serial input driver  1002  and a Transmission Control Protocol (TCP) driver  1004 . Both the serial input driver  1002  and the TCP input driver  1004  may feed into a parser  1006 . 
     The parser  1006  in the present example may be configured in accordance with a specification such as WITS and/or using a standard such as Wellsite Information Transfer Standard Markup Language (WITSML). WITS is a specification for the transfer of drilling rig-related data and uses a binary file format. WITS may be replaced or supplemented in some embodiments by WITSML, which relies on eXtensible Markup Language (XML) for transferring such information. The parser  1006  may feed into the database query and update engine/diagnostic logger  910 , and also to the GCL  914  and GUI  906  as illustrated by the example parameters of block  1010 . The input driver  902  may also include a non-WITS input driver  1008  that provides input to the ACL  916  as illustrated by block  1012 . 
     Referring to  FIG. 11 , one embodiment of the GCL  914  of  FIG. 9  is illustrated in greater detail. In the present example, the GCL  914  may include various functional modules, including a build rate predictor  1102 , a geo modified well planner  1104 , a borehole estimator  1106 , a slide estimator  1108 , an error vector calculator  1110 , a geological drift estimator  1112 , a slide planner  1114 , a convergence planner  1116 , and a tactical solution planner  1118 . In the following description of the GCL  914 , the term external input refers to input received from outside the GCL  914  (e.g., from the input driver  902  of  FIG. 9 ), while internal input refers to input received by a GCL module from another GCL module. 
     The build rate predictor  1102  receives external input representing BHA and geological information, receives internal input from the borehole estimator  1106 , and provides output to the geo modified well planner  1104 , slide estimator  1108 , slide planner  1114 , and convergence planner  1116 . The build rate predictor  1102  is configured to use the BHA and geological information to predict the drilling build rates of current and future sections of a well. For example, the build rate predictor  1102  may determine how aggressively the curve will be built for a given formation with given BHA and other equipment parameters. In a rotary steerable system, the slide estimator  1108  and the slide planner  1114  may still be utilized in a similar fashion as that described hereinbelow in order to estimate and plan a directional drilling path. In a rotary steerable system, the slide estimator  1108  and the slide planner  1114  may be referred to as “direction estimator,” “direction planner,” or something else that denotes that the components deal with rotary steerable directional drilling, but not slide drilling. 
     The build rate predictor  1102  may use the orientation of the BHA to the formation to determine an angle of attack for formation transitions and build rates within a single layer of a formation. For example, if there is a layer of rock with a layer of sand above it, there is a formation transition from the sand layer to the rock layer. Approaching the rock layer at a ninety degree angle may provide a good face and a clean drill entry, while approaching the rock layer at a forty-five degree angle may build a curve relatively quickly. An angle of approach that is near parallel may cause the bit to skip off the upper surface of the rock layer. Accordingly, the build rate predictor  1102  may calculate BHA orientation to account for formation transitions. Within a single layer, the build rate predictor  1102  may use BHA orientation to account for internal layer characteristics (e.g., grain) to determine build rates for different parts of a layer. 
     The BHA information may include bit characteristics, mud motor bend setting, stabilization and mud motor bit to bend distance. The geological information may include formation data such as compressive strength, thicknesses, and depths for formations encountered in the specific drilling location. Such information enables a calculation-based prediction of the build rates and ROP that may be compared to both real-time results (e.g., obtained while drilling the well) and regional historical results (e.g., from the database  128 ) to improve the accuracy of predictions as the drilling progresses. Future formation build rate predictions may be used to plan convergence adjustments and confirm that targets can be achieved with current variables in advance. 
     The geo modified well planner  1104  receives external input representing a well plan, internal input from the build rate predictor  1102  and the geo drift estimator  1112 , and provides output to the slide planner  1114  and the error vector calculator  1110 . The geo modified well planner  1104  uses the input to determine whether there is a more optimal path than that provided by the external well plan while staying within the original well plan error limits. More specifically, the geo modified well planner  1104  takes geological information (e.g., drift) and calculates whether another solution to the target may be more efficient in terms of cost and/or reliability. The outputs of the geo modified well planner  1104  to the slide planner  1114  and the error vector calculator  1110  may be used to calculate an error vector based on the current vector to the newly calculated path and to modify slide predictions. 
     In some embodiments, the geo modified well planner  1104  (or another module) may provide functionality needed to track a formation trend. For example, in horizontal wells, the geologist  304  may provide the surface steerable system  144  with a target inclination that the surface steerable system  144  is to attempt to hold. For example, the geologist  304  may provide a target to the directional driller  306  of 90.5-91 degrees of inclination for a section of the well. The geologist  304  may enter this information into the surface steerable system  144  and the directional driller  306  may retrieve the information from the surface steerable system  144 . The geo modified well planner  1104  may then treat the target as a vector target, for example, either by processing the information provided by the geologist  304  to create the vector target or by using a vector target entered by the geologist  304 . The geo modified well planner  1104  may accomplish this while remaining within the error limits of the original well plan. 
     In some embodiments, the geo modified well planner  1104  may be an optional module that is not used unless the well plan is to be modified. For example, if the well plan is marked in the surface steerable system  201  as non-modifiable, the geo modified well planner  1104  may be bypassed altogether or the geo modified well planner  1104  may be configured to pass the well plan through without any changes. 
     The borehole estimator  1106  receives external inputs representing BHA information, measured depth information, survey information (e.g., azimuth and inclination), and provides outputs to the build rate predictor  1102 , the error vector calculator  1110 , and the convergence planner  1116 . The borehole estimator  1106  is configured to provide a real time or near real time estimate of the actual borehole and drill bit position and trajectory angle. This estimate may use both straight line projections and projections that incorporate sliding. The borehole estimator  1106  may be used to compensate for the fact that a sensor is usually physically located some distance behind the bit (e.g., fifty feet), which makes sensor readings lag the actual bit location by fifty feet. The borehole estimator  1106  may also be used to compensate for the fact that sensor measurements may not be continuous (e.g., a sensor measurement may occur every one hundred feet). 
     The borehole estimator  1106  may use two techniques to accomplish this. First, the borehole estimator  1106  may provide the most accurate estimate from the surface to the last survey location based on the collection of all survey measurements. Second, the borehole estimator  1106  may take the slide estimate from the slide estimator  1108  (described below) and extend this estimation from the last survey point to the real time drill bit location. Using the combination of these two estimates, the borehole estimator  1106  may provide the on-site controller  144  with an estimate of the drill bit&#39;s location and trajectory angle from which guidance and steering solutions can be derived. An additional metric that can be derived from the borehole estimate is the effective build rate that is achieved throughout the drilling process. For example, the borehole estimator  1106  may calculate the current bit position and trajectory  743  in  FIG. 7C . 
     The slide estimator  1108  receives external inputs representing measured depth and differential pressure information, receives internal input from the build rate predictor  1102 , and provides output to the borehole estimator  1106  and the geo modified well planner  1104 . The slide estimator  1108 , which may operate in real time or near real time, is configured to sample toolface orientation, differential pressure, measured depth (MD) incremental movement, MSE, and other sensor feedback to quantify/estimate a deviation vector and progress while sliding. 
     Traditionally, deviation from the slide would be predicted by a human operator based on experience. The operator would, for example, use a long slide cycle to assess what likely was accomplished during the last slide. However, the results are generally not confirmed until the MWD survey sensor point passes the slide portion of the borehole, often resulting in a response lag defined by the distance of the sensor point from the drill bit tip (e.g., approximately fifty feet). This lag introduces inefficiencies in the slide cycles due to over/under correction of the actual path relative to the planned path. 
     With the slide estimator  1108 , each toolface update is algorithmically merged with the average differential pressure of the period between the previous and current toolfaces, as well as the MD change during this period to predict the direction, angular deviation, and MD progress during that period. As an example, the periodic rate may be between ten and sixty seconds per cycle depending on the tool face update rate of the MWD tool. With a more accurate estimation of the slide effectiveness, the sliding efficiency can be improved. The output of the slide estimator  1108  is periodically provided to the borehole estimator  1106  for accumulation of well deviation information, as well to the geo modified well planner  1104 . Some or all of the output of the slide estimator  1108  may be output via a display such as the display  250  of  FIG. 2B . 
     The error vector calculator  1110  receives internal input from the geo modified well planner  1104  and the borehole estimator  1106 . The error vector calculator  1110  is configured to compare the planned well path to the actual borehole path and drill bit position estimate. The error vector calculator  1110  may provide the metrics used to determine the error (e.g., how far off) the current drill bit position and trajectory are from the plan. For example, the error vector calculator  1110  may calculate the error between the current position  743  of  FIG. 7C  to the planned path  742  and the desired bit position  741 . The error vector calculator  1110  may also calculate a projected bit position/projected path representing the future result of a current error as described previously with respect to  FIG. 7B . 
     The geological drift estimator  1112  receives external input representing geological information and provides outputs to the geo modified well planner  1104 , slide planner  1114 , and tactical solution planner  1118 . During drilling, drift may occur as the particular characteristics of the formation affect the drilling direction. More specifically, there may be a trajectory bias that is contributed by the formation as a function of drilling rate and BHA. The geological drift estimator  1112  is configured to provide a drift estimate as a vector. This vector can then be used to calculate drift compensation parameters that can be used to offset the drift in a control solution. 
     The slide planner  1114  receives internal input from the build rate predictor  1102 , the geo modified well planner  1104 , the error vector calculator  1110 , and the geological drift estimator  1112 , and provides output to the convergence planner  1116  as well as an estimated time to the next slide. The slide planner  1114  is configured to evaluate a slide/drill ahead cost equation and plan for sliding activity, which may include factoring in BHA wear, expected build rates of current and expected formations, and the well plan path. During drill ahead, the slide planner  1114  may attempt to forecast an estimated time of the next slide to aid with planning. For example, if additional lubricants (e.g., beads) are needed for the next slide and pumping the lubricants into the drill string needs to begin thirty minutes before the slide, the estimated time of the next slide may be calculated and then used to schedule when to start pumping the lubricants. 
     Functionality for a loss circulation material (LCM) planner may be provided as part of the slide planner  1114  or elsewhere (e.g., as a stand-alone module or as part of another module described herein). The LCM planner functionality may be configured to determine whether additives need to be pumped into the borehole based on indications such as flow-in versus flow-back measurements. For example, if drilling through a porous rock formation, fluid being pumped into the borehole may get lost in the rock formation. To address this issue, the LCM planner may control pumping LCM into the borehole to clog up the holes in the porous rock surrounding the borehole to establish a more closed-loop control system for the fluid. 
     The slide planner  1114  may also look at the current position relative to the next connection. A connection may happen every ninety to one hundred feet (or some other distance or distance range based on the particulars of the drilling operation) and the slide planner  1114  may avoid planning a slide when close to a connection and/or when the slide would carry through the connection. For example, if the slide planner  1114  is planning a fifty foot slide but only twenty feet remain until the next connection, the slide planner  1114  may calculate the slide starting after the next connection and make any changes to the slide parameters that may be needed to accommodate waiting to slide until after the next connection. This avoids inefficiencies that may be caused by starting the slide, stopping for the connection, and then having to reorient the toolface before finishing the slide. During slides, the slide planner  1114  may provide some feedback as to the progress of achieving the desired goal of the current slide. 
     In some embodiments, the slide planner  1114  may account for reactive torque in the drillstring. More specifically, when rotating is occurring, there is a reactional torque wind up in the drillstring. When the rotating is stopped, the drillstring unwinds, which changes toolface orientation and other parameters. When rotating is started again, the drillstring starts to wind back up. The slide planner  1114  may account for this reactional torque so that toolface references are maintained rather than stopping rotation and then trying to adjust to an optimal tool face orientation. While not all MWD tools may provide toolface orientation when rotating, using one that does supply such information for the GCL  914  may significantly reduce the transition time from rotating to sliding. 
     The convergence planner  1116  receives internal inputs from the build rate predictor  1102 , the borehole estimator  1106 , and the slide planner  1114 , and provides output to the tactical solution planner  1118 . The convergence planner  1116  is configured to provide a convergence plan when the current drill bit position is not within a defined margin of error of the planned well path. The convergence plan represents a path from the current drill bit position to an achievable and optimal convergence target point along the planned path. The convergence plan may take account the amount of sliding/drilling ahead that has been planned to take place by the slide planner  1114 . The convergence planner  1116  may also use BHA orientation information for angle of attack calculations when determining convergence plans as described above with respect to the build rate predictor  1102 . The solution provided by the convergence planner  1116  defines a new trajectory solution for the current position of the drill bit. The solution may be real time, near real time, or future (e.g., planned for implementation at a future time). For example, the convergence planner  1116  may calculate a convergence plan as described previously with respect to  FIGS. 7C and 8 . 
     The tactical solution planner  1118  receives internal inputs from the geological drift estimator  1112  and the convergence planner  1116 , and provides external outputs representing information such as toolface orientation, differential pressure, and mud flow rate. The tactical solution planner  1118  is configured to take the trajectory solution provided by the convergence planner  1116  and translate the solution into control parameters that can be used to control the drilling rig  110 . For example, the tactical solution planner  1118  may take the solution and convert the solution into settings for the control systems  208 ,  210 , and  212  to accomplish the actual drilling based on the solution. The tactical solution planner  1118  may also perform performance optimization as described previously. The performance optimization may apply to optimizing the overall drilling operation as well as optimizing the drilling itself (e.g., how to drill faster). 
     Other functionality may be provided by the GCL  914  in additional modules or added to an existing module. For example, there is a relationship between the rotational position of the drill pipe on the surface and the orientation of the downhole toolface. Accordingly, the GCL  914  may receive information corresponding to the rotational position of the drill pipe on the surface. The GCL  914  may use this surface positional information to calculate current and desired toolface orientations. These calculations may then be used to define control parameters for adjusting the top drive or Kelly drive to accomplish adjustments to the downhole toolface in order to steer the well. 
     For purposes of example, an object-oriented software approach may be utilized to provide a class-based structure that may be used with the GCL  914  and/or other components of the on-site controller  144 . In the present embodiment, a drilling model class is defined to capture and define the drilling state throughout the drilling process. The class may include real-time information. This class may be based on the following components and sub-models: a drill bit model, a borehole model, a rig surface gear model, a mud pump model, a WOB/differential pressure model, a positional/rotary model, an MSE model, an active well plan, and control limits. The class may produce a control output solution and may be executed via a main processing loop that rotates through the various modules of the GCL  914 . 
     The drill bit model may represent the current position and state of the drill bit. This model includes a three dimensional position, a drill bit trajectory, BHA information, bit speed, and toolface (e.g., orientation information). The three dimensional position may be specified in north-south (NS), east-west (EW), and true vertical depth (TVD). The drill bit trajectory may be specified as an inclination and an azimuth angle. The BHA information may be a set of dimensions defining the active BHA. The borehole model may represent the current path and size of the active borehole. This model includes hole depth information, an array of survey points collected along the borehole path, a gamma log, and borehole diameters. The hole depth information is for the current drilling job. The borehole diameters represent the diameters of the borehole as drilled over the current drill job. 
     The rig surface gear model may represent pipe length, block height, and other models, such as the mud pump model, WOB/differential pressure model, positional/rotary model, and MSE model. The mud pump model represents mud pump equipment and includes flow rate, standpipe pressure, and differential pressure. The WOB/differential pressure model represents drawworks or other WOB/differential pressure controls and parameters, including WOB. The positional/rotary model represents top drive or other positional/rotary controls and parameters including rotary RPM and spindle position. The active well plan represents the target borehole path and may include an external well plan and a modified well plan. The control limits represent defined parameters that may be set as maximums and/or minimums. For example, control limits may be set for the rotary RPM in the top drive model to limit the maximum RPMs to the defined level. The control output solution represents the control parameters for the drilling rig  110 . 
     The main processing loop can be handled in many different ways. For example, the main processing loop can run as a single thread in a fixed time loop to handle rig sensor event changes and time propagation. If no rig sensor updates occur between fixed time intervals, a time only propagation may occur. In other embodiments, the main processing loop may be multi-threaded. 
     Each functional module of the GCL  914  may have its behavior encapsulated within its own respective class definition. During its processing window, the individual units may have an exclusive portion in time to execute and update the drilling model. For purposes of example, the processing order for the modules may be in the sequence of geo modified well planner  1104 , build rate predictor  1102 , slide estimator  1108 , borehole estimator  1106 , error vector calculator  1110 , slide planner  1114 , convergence planner  1116 , geological drift estimator  1112 , and tactical solution planner  1118 . It is understood that other sequences may be used. 
     In the present embodiment, the GCL  914  may rely on a programmable timer module that provides a timing mechanism to provide timer event signals to drive the main processing loop. While the on-site controller  144  may rely purely on timer and date calls driven by the programming environment (e.g., java), this would limit timing to be exclusively driven by system time. In situations where it may be advantageous to manipulate the clock (e.g., for evaluation and/or testing), the programmable timer module may be used to alter the time. For example, the programmable timer module may enable a default time set to the system time and a time scale of 1.0, may enable the system time of the on-site controller  144  to be manually set, may enable the time scale relative to the system time to be modified, and/or may enable periodic event time requests scaled to the time scale to be requested. 
     Referring to  FIG. 12 , one embodiment of the ACL  916  provides different functions to the on-site controller  144 . The ACL  916  may be considered a second feedback control loop that operates in conjunction with a first feedback control loop provided by the GCL  914 . The ACL  916  may also provide actual instructions to the drilling rig  110 , either directly to the drilling equipment  216  or via the control systems  208 ,  210 , and  212 . The ACL  916  may include a positional/rotary control logic block  1202 , WOB/differential pressure control logic block  1204 , fluid circulation control logic block  1206 , and a pattern recognition/error detection block  1208 . 
     One function of the ACL  916  is to establish and maintain a target parameter (e.g., an ROP of a defined value of ft/hr) based on input from the GCL  914 . This may be accomplished via control loops using the positional/rotary control logic block  1202 , WOB/differential pressure control logic block  1204 , and fluid circulation control logic block  1206 . The positional/rotary control logic block  1202  may receive sensor feedback information from the input driver  902  and set point information from the GCL  914  (e.g., from the tactical solution planner  1118 ). The differential pressure control logic block  1204  may receive sensor feedback information from the input driver  902  and set point information from the GCL  914  (e.g., from the tactical solution planner  1118 ). The fluid circulation control logic block  1206  may receive sensor feedback information from the input driver  902  and set point information from the GCL  914  (e.g., from the tactical solution planner  1118 ). 
     The ACL  916  may use the sensor feedback information and the set points from the GCL  914  to attempt to maintain the established target parameter. More specifically, the ACL  916  may have control over various parameters via the positional/rotary control logic block  1202 , WOB/differential pressure control logic block  1204 , and fluid circulation control logic block  1206 , and may modulate the various parameters to achieve the target parameter. The ACL  916  may also modulate the parameters in light of cost-driven and reliability-driven drilling goals, which may include parameters such as a trajectory goal, a cost goal, and/or a performance goal. It is understood that the parameters may be limited (e.g., by control limits set by the drilling engineer  306 ) and the ACL  916  may vary the parameters to achieve the target parameter without exceeding the defined limits. If this is not possible, the ACL  916  may notify the on-site controller  144  or otherwise indicate that the target parameter is currently unachievable. 
     In some embodiments, the ACL  916  may continue to modify the parameters to identify an optimal set of parameters with which to achieve the target parameter for the particular combination of drilling equipment and formation characteristics. In such embodiments, the on-site controller  144  may export the optimal set of parameters to the database  128  for use in formulating drilling plans for other drilling projects. 
     Another function of the ACL  916  is error detection. Error detection is directed to identifying problems in the current drilling process and may monitor for sudden failures and gradual failures. In this capacity, the pattern recognition/error detection block  1208  receives input from the input driver  902 . The input may include the sensor feedback received by the positional/rotary control logic block  1202 , WOB/differential pressure control logic block  1204 , and fluid circulation control logic block  1206 . The pattern recognition/error detection block  1208  monitors the input information for indications that a failure has occurred or for sudden changes that are illogical. 
     For example, a failure may be indicated by an ROP shift, a radical change in build rate, or any other significant changes. As an illustration, assume the drilling is occurring with an expected ROP of 100 ft/hr. If the ROP suddenly drops to 50 ft/hr with no change in parameters and remains there for some defined amount of time, an equipment failure, formation shift, or another event has occurred. Another error may be indicated when MWD sensor feedback has been steadily indicating that drilling has been heading north for hours and the sensor feedback suddenly indicates that drilling has reversed in a few feet and is heading south. This change clearly indicates that a failure has occurred. The changes may be defined and/or the pattern recognition/error detection block  1208  may be configured to watch for deviations of a certain magnitude. The pattern recognition/error detection block  1208  may also be configured to detect deviations that occur over a period of time in order to catch more gradual failures or safety concerns. 
     When an error is identified based on a significant shift in input values, the on-site controller  201  may send an alert. This enables an individual to review the error and determine whether action needs to be taken. For example, if an error indicates that there is a significant loss of ROP and an intermittent change/rise in pressure, the individual may determine that mud motor chunking has likely occurred with rubber tearing off and plugging the bit. In this case, the BHA may be tripped and the damage repaired before more serious damage is done. Accordingly, the error detection may be used to identify potential issues that are occurring before they become more serious and more costly to repair. 
     Another function of the ACL  916  is pattern recognition. Pattern recognition is directed to identifying safety concerns for rig workers and to provide warnings (e.g., if a large increase in pressure is identified, personnel safety may be compromised) and also to identifying problems that are not necessarily related to the current drilling process, but may impact the drilling process if ignored. In this capacity, the pattern recognition/error detection block  1208  receives input from the input driver  902 . The input may include the sensor feedback received by the positional/rotary control logic block  1202 , WOB/differential pressure control logic block  1204 , and fluid circulation control logic block  1206 . The pattern recognition/error detection block  1208  monitors the input information for specific defined conditions. A condition may be relatively common (e.g., may occur multiple times in a single borehole) or may be relatively rare (e.g., may occur once every two years). Differential pressure, standpipe pressure, and any other desired conditions may be monitored. If a condition indicates a particular recognized pattern, the ACL  916  may determine how the condition is to be addressed. For example, if a pressure spike is detected, the ACL  916  may determine that the drilling needs to be stopped in a specific manner to enable a safe exit. Accordingly, while error detection may simply indicate that a problem has occurred, pattern recognition is directed to identifying future problems and attempting to provide a solution to the problem before the problem occurs or becomes more serious. 
     Referring to  FIG. 13 , one embodiment of a computer system  1300  is illustrated. The computer system  1300  is one possible example of a system component or device such as the on-site controller  144  of  FIG. 1A . In scenarios where the computer system  1300  is on-site, such as at the location of the drilling rig  110  of  FIG. 1A , the computer system may be contained in a relatively rugged, shock-resistant case that is hardened for industrial applications and harsh environments. 
     The computer system  1300  may include a central processing unit (“CPU”)  1302 , a memory unit  1304 , an input/output (“I/O”) device  1306 , and a network interface  1308 . The components  1302 ,  1304 ,  1306 , and  1308  are interconnected by a transport system (e.g., a bus)  1310 . A power supply (PS)  1312  may provide power to components of the computer system  1300 , such as the CPU  1302  and memory unit  1304 . It is understood that the computer system  1300  may be differently configured and that each of the listed components may actually represent several different components. For example, the CPU  1302  may actually represent a multi-processor or a distributed processing system; the memory unit  1304  may include different levels of cache memory, main memory, hard disks, and remote storage locations; the I/O device  1306  may include monitors, keyboards, and the like; and the network interface  1308  may include one or more network cards providing one or more wired and/or wireless connections to a network  1314 . Therefore, a wide range of flexibility is anticipated in the configuration of the computer system  1300 . 
     For instance, if the computer system  1300  is the on-site controller  144 , it may be configured to be placed downhole somewhere along the drill string in order to provide for the functions described hereinabove as part of an embedded downhole system, such as in the embodiment shown in  FIG. 15 , described hereinbelow. If the computer system is indeed the on-site controller  144 , the computer system  1300  may perform methods such as the methods  600  of  FIG. 6, 700  of  FIG. 7A, 720  of  FIG. 7B, 800  of  FIG. 8A, 820  of  FIG. 8B, 830  of  FIG. 8C, and 840  of  FIG. 8D . Thus, the embedded downhole computer system  1300  would be execute downhole instead of at the surface to provide for rapid calculations concerning drilling path adjustments, economic cost analysis, and other calculations included in the methods described hereinabove. 
     The computer system  1300  may use any operating system (or multiple operating systems), including various versions of operating systems provided by Microsoft (such as WINDOWS), Apple (such as Mac OS X), UNIX, and LINUX, and may include operating systems specifically developed for handheld devices, personal computers, and servers depending on the use of the computer system  1300 . The operating system, as well as other instructions (e.g., software instructions for performing the functionality described in previous embodiments) may be stored in the memory unit  1304  and executed by the processor  1302 . For example, if the computer system  1300  is the on-site controller  144 , the memory unit  1304  may include instructions for performing methods such as the methods  600  of  FIG. 6, 700  of  FIG. 7A, 720  of  FIG. 7B, 800  of  FIG. 8A, 820  of  FIG. 8B, 830  of  FIG. 8C, and 840  of  FIG. 8D . 
     Referring now to  FIG. 14 , there is illustrated a surface steerable system  1402  providing information to a drilling rig  1404  that implements a rotary steerable system  1406 . The surface steerable system  1402  provides input  1408  to the rotary steerable system  1406  and receives feedback  1410  from the rotary steerable system  1406  in manners similar to that discussed hereinabove. In this manner, the surface steerable system  1402  may provide continuous control of the rotary steerable system  1406  in order to achieve desired directional steering results. The steerable system  1406  may comprise any number of configurations of rotary steerable systems and steerable system tools, one example of this is illustrated in U.S. Pat. No. 8,590,636, which is incorporated herein by reference in its entirety. 
     A rotary steerable system  1406  is a form of drilling technology used in directional drilling. A rotary steerable system  1406  employs the use of a specialized down-hole equipment to replace conventional directional tools such as mud motors. The rotary steerable tools are generally programmed by a directional driller which transmits commands to the rotary steerable system  1406  using, for example, pressure fluctuations within the mud column or variations within the drill string rotations to transmit the information. The rotary steerable system  1406  responds to these instructions and gradually steers into the desired direction. The rotary steerable system  1406  may continue drilling while rotating the drill string from the surface eliminating the need to slide a mud motor utilizing slide directional drilling techniques. 
     The surface steerable system  1402  and the drilling rig  1404  may communicate in a similar manner as shown in  FIG. 2A  concerning the communication between the surface steerable system  201  and the drilling rig  110 . Additionally, the surface steerable system  1402  may have similar components to the surface steerable system  201 , such as the on-site controller  144  and the drilling hub  216 , with the input information  202  being sent from the drilling hub  216  to the on-site controller  144  and the output information  203  being sent from the on-site controller to the drilling hub  216 . Further, the drilling rig  1404  may contain similar components as that of the drilling rig  110  shown in  FIG. 2A , such as the WOB/differential pressure control system  208 , the positional/rotary control system  210 , the fluid circulation control system  212 , the sensor system  214 , and the drilling equipment  216 . 
     The methods used within rotary steerable systems fall into two broad categories. These include the “push the bit” and “point the bit” techniques. Push the bit tools use pads on the outside of the tool which press against the wellbore thereby causing the bit to press on the opposite side of the wellbore causing a directional change. The pads are typically installed on the outer portion of the drill string somewhere above the drill bit. The pads may be actuated using hydraulic pistons that push the pad against the wall of the wellbore. Point the bit techniques cause the direction of the bit to change relative to the rest of the tool by bending a main shaft running through the tool. The point the bit techniques require some type of non-rotating housing or reference housing in order to create this deflection within the shaft. In some cases, a down-hole rotary steerable system tool can be programmed to maintain an angle and utilize downhole sensors and actuators to maintain the drilling direction, while in other situations, a user on the surface must decide magnitude and direction of the tool bias while drilling. These instructions adjust forces exerted by the tool to turn the well or overcome geo drift. The surface steerable system  1402  can also pre-compensate for torsional and spatial influences caused by the actuator forces to point or push the bit. As an example, in many cases Rotary Steerable System  1406  induced forces to gain inclination or induce a build in angle may cause left walk due to the side forces on the bit combined with the clockwise rotation of the drill bit. By forecasting the influences of those forces a more ideal deviation vector can be programmed into the downhole tool by the Surface Steerable System  1402 . 
     The advantage of rotary steerable system tools is that they may be continuously rotated while creating a bias. Continuous rotation of the drill string allows for improved transportation of drilling cuttings to the surface resulting in better hydraulic performance, better weight transfer and allows a more complex bore to be drilled while reducing bore tortuosity due to utilizing a more steady steering model. The well geometry is therefore less aggressive, and the wellbore is smoother than those drilled using a mud motor. The disadvantages of rotary system tools arise from the fact that they are much more expensive and generally less reliable due to their added complexity. 
     The surface steerable system  1402  enables the rotary steerable system  1406  downhole tools to be told when to rotate in line and when to deviate in a similar manner that a mud motor is controlled. The need to manage dog legs and prioritize economic decisions within the wellbore may be controlled through the surface steerable system  1402  controlling the rotary steerable system  1406 . The surface steerable system  1402  can improve the decisions made at every reevaluation which happens on a survey path. The surface steerable system  1402  can also provide more accurate projections, and the position of the bit benefits control of the rotatable steerable system tools  1406 . Existing configurations of rotary steerable system  1406  require directional drillers on location to make the 3D geometry decisions and operating parameter adjustments. The surface steerable system  1402  can optimize both decisions and simultaneously enable communication and collaboration on and offsite. 
     All geo steering tools provided by the surface steerable system  1402  are applicable to both mud motors and rotary steerable system tools and if rotary steerable system tools provide additional sensors such as bit inclination, the surface steerable system  1404  can utilize the additional data points to further optimize its instructions. Control of the Rotary Steerable System  1406  can be by indirect recommendation to a directional driller or direct control by inducing mud pulse telemetry, pump cycling or other means to downlink to the Rotary Steerable System tool and change to the desired configuration. 
     By placing this complex control logic in a surface environment, failures due to temp, vibration and other challenges can be significantly reduced. Additionally, new forms of rotary steerable system targeting a lower cost of operation rely more heavily on surface decisions made by humans. These tools can be optimized by using the methodology of the surface steerable system by removing the variability of the human competency and simultaneously making all decision based on the best economic solution for the operator. 
     In some modes of operation, variation of forces is needed to accomplish deviation of the BHA using the rotary steerable activation mechanism (i.e. the push pads). The relative forces needed to accomplish the deviation provides information about the formation being drilled, the effectiveness or health of the BHA and drill bit as well as information about the relative position of the downhole tools to the formations bed dip. Interfaces to harder zones or stringers can be recognized with this approach as well. 
     The potential deviation rate of the rotary steerable system can be evaluated while drilling to continuously calibrate the potential of the BHA and provide an accurate projection to the bit on a continuous basis from the last survey station to the location of the bit. This allows for an accurate starting point for future directional tasks but also allows early warning when a desired deviation is not possible. 
     All value driven functions of the surface steerable system are applicable with use of rotary steerable systems. For example, the decision to deviate the well and the aggressiveness of that deviation can be balanced with the proximity to ideal pay zone defined by cost curves. Likewise planning to avoid hard limits, property lines or high risk zones in 3D space can be factored into all steering decisions being made. 
     It is common amongst rotary steerable tools that a slower RPM or Rate Of Penetration is needed when deviation the well and so there is a drilling time tradeoff linked to the amount of deviation required of the rotary steerable tools. This manifests itself as a time impact to steering decisions similar to that when using a traditional mud motor assembly in a rotary vs slide mode. 
     Tortuosity driven costs/risks can also be factored in as deviation of a well using rotary steerable tools creates doglegs or tortuosity similar to a mud motor when sliding. Although the impacts are still generally less with a continuous arc on a rotary steerable tool, there is still a rate of change that can be set to be more or less aggressive. This tortuosity can be evaluated as a cost/risk for the operator and used to select an ideal convergence plan. 
     With these examples of key surface steerable cost components, Time Cost, Tortuosity Cost, and Proximity to Pay zone Cost, are all applicable when using high end and low cost rotary steerable system. 
     Referring now to  FIG. 15 , there is illustrated one embodiment of a rotary steerable drilling rig  1500 . In the present embodiment, the rotary steerable drilling rig  1500  includes a derrick  1502  on a surface  1504 . The derrick  1502  includes a crown block  1506 . A top drive  1508  is coupled to the crown block  1506  via a drilling line  1510 . The top drive  1508  provides the rotational force needed for drilling and rotates a drill string  1512 . The rotating drill string  1512  in turn rotates a drill bit  1514  of a BHA  1516  in a borehole  1518  in a formation  1520 . In this particular embodiment, the rotary steerable drilling rig  1500  further includes a plurality of hydraulic pads  1522 . The plurality of hydraulic pads  1522  serves to provide a “push the bit” rotary steerable technique. To accomplish the technique, each of the plurality of hydraulic pads  1522  includes a plurality of pistons  1524  that actuate when needed in order to push the particular pad against the borehole  1518 . For example, if a drilling operation was currently drilling straight down into the formation  1520 , and a decision was made to begin drilling in a horizontal direction, one of the plurality of hydraulic pads  1522  would have its plurality of pistons  1524  actuated in order to push the hydraulic pad against the wall of the borehole  1518 . This would angle the drill string  1512 , and thus the drill bit  1514 , in a direction away from the wall of the borehole  1518  that was pressed by the actuated hydraulic pad. It will be appreciated by those skilled in the art that other methods of performing rotary steerable drilling may be employed, such as “point the bit” techniques, without deviating from the present inventive concept. It will be further appreciated by those skilled in the art that other components may be included in the rotary steerable drilling rig  1500  in order to perform drilling operations and that the current described embodiment is for illustrative purposes. 
     As described hereinabove, the computer system  1300 , or the on-site controller  144 , may be configured to be placed downhole as part of the BHA  1516  or somewhere else along the drill string in order to provide for the functions described hereinabove as part of an embedded downhole system. If the computer system is indeed the on-site controller  144 , the computer system  1300  may perform methods such as the methods  600  of  FIG. 6, 700  of  FIG. 7A, 720  of  FIG. 7B, 800  of  FIG. 8A, 820  of  FIG. 8B, 830  of  FIG. 8C, and 840  of  FIG. 8D . Thus, still referring to  FIG. 15 , a controller  1526  akin to the computer system  1300  or the on-site controller  144  may also be included as part of the BHA  1516  of the rotary steerable drilling rig  1500 . Thus, the controller  1526  could execute various methods downhole instead of at the surface to provide for rapid calculations concerning drilling path adjustments, economic cost analysis, and other calculations included in the methods described hereinabove. The controller  1526  may control the plurality of hydraulic pads  1524  as well, actuating one or more of the plurality of hydraulic pads  1524  when methods performed by the controller  1526  call for a change in drilling direction. In other embodiments that do not utilize hydraulic pads for rotary steering, the controller  1526  may similarly control the particular steering component, such as a bendable main shaft in other rotary steering embodiments, or other steering methods. As the controller  1526  may be akin to the computer system  1300  or the on-site controller  144 , the controller  1526  may further be configured to communicate, either by a wired or wireless connection, with the network  1314  and/or other components shown in the surface steerable system  201 , and the drilling rig  110 . It will be appreciated that such a configuration utilizing the controller  1526  is not limited to the embodiment shown in  FIG. 15 , and may also be incorporated into other embodiments described hereinabove. 
     It will be appreciated by those skilled in the art having the benefit of this disclosure that this system and method for surface steerable drilling provides a way to plan a drilling process and to correct the drilling process when either the process deviates from the plan or the plan is modified. It should be understood that the drawings and detailed description herein are to be regarded in an illustrative rather than a restrictive manner, and are not intended to be limiting to the particular forms and examples disclosed. On the contrary, included are any further modifications, changes, rearrangements, substitutions, alternatives, design choices, and embodiments apparent to those of ordinary skill in the art, without departing from the spirit and scope hereof, as defined by the following claims. Thus, it is intended that the following claims be interpreted to embrace all such further modifications, changes, rearrangements, substitutions, alternatives, design choices, and embodiments.