Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR DUAL STAGE CONTROL OF FIELD PRINTER ROBOT
Document Type and Number:
WIPO Patent Application WO/2024/064685
Kind Code:
A1
Abstract:
A controller design for a dual input single output (DISO) system is applied to a robot for printing layouts at construction sites. The differential drive robot has a separately controlled linear actuator that moves the print head perpendicularly to the fore-aft axis of the robot. The output is the lateral position of the print head; the sum of the position of the linear actuator (faster stage) relative to a reference point on the front of the robot, which is determined by the steering of the robot (slower stage). Both are measurable. The controller coordinates the action of the separately controlled linear actuator and the differential steering to achieve fast convergence and sub-millimeter tracking. Simulations and experimental results demonstrate the effectiveness of the approach.

Inventors:
MISRA SOHUM (US)
DIMICK RYAN (US)
MESSNER WILLIAM (US)
HERGET PHILIPP (US)
Application Number:
PCT/US2023/074591
Publication Date:
March 28, 2024
Filing Date:
September 19, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DUSTY ROBOTICS INC (US)
International Classes:
G05B19/4097; B05B13/00; B41J3/36; B41J29/38; E01C23/16; G06F30/13; G01C21/20; G01D5/244
Attorney, Agent or Firm:
VAN GIESON, Edward et al. (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS: 1. A mobile printing robot for printing a layout at a construction site, comprising: a dual-stage Dual Input Single Output (DISO) controller that includes a decoupling filter to decouple deleterious dynamics between two control stages that act in combination to control a pen position, the two control stages including a differential steering stage to control a differential drive of the mobile robot and a linear actuator stage controlling a lateral position of a printer of a printhead relative to a center position, in which the printer, when activated in a print mode, acts as a pen for printing lines of a layout; the steering stage being a slower stage than the linear actuator stage; the dual stage controller filtering an output of the differential steering stage by the approximate inverse of the closed-loop dynamics of the linear actuator stage and then subtracting the result from a reference input to the linear actuator stage. 2. The system of claim 1, wherein the decoupling filter reduces a settling time. 3. The system of claim 1, wherein the decoupling filter reduces a runway for the mobile printing robot to accurately track a line in a print mode. 4. The system of claim 1, wherein the decoupling filter improves a printing position accuracy. 5. The system of claim 1, wherein the pen position is estimated from the sum of the measured relative position of the print head to a central origin of the linear actuator and the location of the origin of the linear actuator estimated from the position and orientation of the robot. 6. The system of claim 1, wherein the position and orientation of the robot is derived from sensor fusion of position data. 7. The system of claim 6 wherein the position data includes position data from a laser tracker. 8. The system of claim 1, wherein the system has the capability of measuring the movement of the slow first control stage relative to the fast second stage. 9. A mobile printing robot for printing a layout at a construction site, comprising: a differential drive to move the mobile printing robot; a printing system including a movable print carriage and a linear actuator to move a print head, having at least one printer, laterally with respect to a fore-aft axis of motion of the mobile printing robot; and a dual-stage dual input, single output (DISO) controller having a combined two stage control system to control a pen position in a print mode associated with a selected printer, including: 1) a first control stage to steer the mobile printing robot and control its velocity; 2) a second control stage to control a position of the linear actuator; a pen position associated with an active printer being a sum of the lateral position of the print head relative to a reference point of the robot determined by the steering of the mobile printing robot, the first control stage being a slower control stage than the second control stage; and the controller including a decoupling filter to filter the output of the first control stage by an approximation of the inverse of the second control stage and subtracting the result from a reference input to the control of the second control stage. 10. The system of claim 9, wherein the decoupling filter is selected to improve a settling time and convergence to a desired line location. 11. The system of claim 9, wherein the decoupling filter is selected to improve a tracking accuracy. 12. The system of claim 9, wherein the pen position is estimated from the sum of the measured relative position of the print head to a central origin of the linear actuator and the location of the origin of the linear actuator estimated from the position and orientation of the robot. 13. The system of claim 9, wherein the position and orientation of the robot is derived from sensor fusion of position data. 14. The system of claim 13 wherein the position data includes position data from a laser tracker. 15. The system of claim 9, wherein the system has the capability of measuring the movement of the slow first control stage relative to the fast second stage. 16. The system of claim 14, wherein the DISO controller comprises a closed-loop control of the fast second stage independently of the slower first stage. 17. The system of claim 9, wherein the controller has a top branch representing the closed- loop steering control, associated with the first control stage, for positioning the center of a linear actuator ^^, and a bottom branch representing the closed-loop control of ^^^, a position of the print head relative to the center of the linear actuator associated with the second control stage; wherein the slower ^^ stage receives a full reference input ^^ and the faster ^^^ receives the reference input minus the current position of ^^ plus the offset between the line a center of rotation of the robot is to follow and the line to be printed ( ^^^), with the ^^ stage settling onto the line ^^ the reference to the ^^^ loop converges to ^^^. 18. A dual input, single output (DISO) controller for a mobile printing robot, comprising: a first control stage to control steering and velocity of a differential drive of the mobile printing robot; a second control stage to control a linear actuator of a movable print head having at least one printer; the first stage being a slower stage than the second stage; the movement of the faster second stage being measured relative to the slower first stage, enable closed loop control of the faster second stage independently of the slower first stage; a decoupling filter decoupling the dynamics of the first stage and the second stage by filtering an output of the slower first stage by an approximate inverse of the closed - loop dynamics of the faster second stage and subtracting the result from a reference input to the control the second stage. 19. A method of operating a mobile printing robot, comprising: monitoring a position of the mobile printing robot; in a print mode, coordinating a position of a printer of a print head, using a dual-stage dual input, single output (DISO) controller having a first control stage to control differential steering of a differential drive of the mobile printing robot and a second control stage to control a linear actuator used laterally to position a movable print head of the mobile printing robot; using a decoupling filter to reduce deleterious interactions between the first control stage and the second control stage; and in a print mode, performing at least one phase of a printing process for a line of a construction layout.
Description:
System and Method for Dual Stage Control of Field Printer Robot TECHNICAL FIELD [0001] The present disclosure is related to controller design for a mobile printing robot, such as for a mobile printing robot to print a building layout on a construction surface. BACKGROUND [0002] Traditional manual approaches of printing a layout on a construction surface use time consuming and error prone process performed by skilled laborers using chalk lines and tape measures. Mobile printing robots may be used to print construction layouts at construction sites. One of the pioneers of such mobile printing robots is Dusty Robotics, of Mountain View, California. The printing robot created by Dusty Robotics provides faster and more accurate layouts for construction sites compared to manual methods. However, for construction using pre-fabricated walls, the robot must print lines of the layout maintaining sub-millimeter level accuracy while moving at speeds that are typically about 0.5 m/s. This poses a variety of control issues in achieving a challenging specification while also optimizing other performance metrics of a mobile printing robot, such as the time to complete a printing job. SUMMARY [0003] An improved dual-stage controller is disclosed for a mobile printing robot that reduces, or even eliminates, a deleterious interaction between stages using a decoupling filter. This improves a settling time for accurate line printing and has other advantages. [0004] In one implementation, a mobile printing robot for printing a layout at a construction site, includes a differential drive to move the mobile printing robot; a printing system including a movable print carriage and a linear actuator to move at least one print head laterally with respect to a fore-aft axis of motion of the mobile printing robot; and a dual-stage dual input, single output (DISO) controller having a combined two stage control system to control a pen position in a print mode, including: a first control stage to steer the mobile printing robot and control its speed; a second control stage to control a position of the linear actuator; a pen position associated with an active printer being a sum of the lateral position of the print head relative to a reference point of the robot determined by the steering of the mobile printing robot, the first control stage being a slower control stage than the second control stage; and the controller including a decoupling filter to filter the output of the first control stage by an approximation of the inverse of the second control stage and subtracting the result from a reference input to the control of the second control stage. [0005] In one implementation, the decoupling filter is selected to improve a settling time and convergence to a desired line location. [0006] In one implementation, the decoupling filter is selected to improve a tracking accuracy. [0007] In one implementation, the pen position is estimated from the sum of the measured relative position of the print head to a central origin of the linear actuator and the location of the origin of the linear actuator estimated from the position and orientation of the robot. [0008] In one implementation, the position and orientation of the robot is derived from sensor fusion of position data. In one implementation, the position data includes position data from a laser tracker. [0009] In one implementation, the system has the capability of measuring the movement of the slow first control stage relative to the fast second stage. [0010] In one implementation, the DISO controller comprises a closed-loop control of the fast second stage independently of the slower first stage. [0011] In one implementation, the controller has a top branch representing the closed- loop steering control, associated with the first control stage, for positioning the center of a linear actuator y 2 , and a bottom branch representing the closed-loop control of y 1 , a position of the print head relative to the center of the linear actuator associated with the second control stage; wherein the slower y 2 stage receives a full reference input r and the faster y 1 receives the reference input minus the current position of y2 plus the offset between the line a center or rotation of the robot is to follow and the line to be printed (r 0 ), with the y 2 stage settling onto the line r the reference to the y1 loop converges to ro. [0012] In one implementation a dual input, single output (DISO) controller for a mobile printing robot, includes a first control stage to control steering and velocity of a differential drive of the mobile printing robot; a second control stage to control a linear actuator of a movable print head having at least one printer; the first stage being a slower stage than the second stage; the movement of the faster second stage being measured relative to the slower first stage, enable closed loop control of the faster second stage independently of the slower first stage; and a decoupling filter decoupling the dynamics of the first stage and the second stage by filtering an output of the slower first stage by an approximate inverse of the closed-loop dynamics of the faster second stage and subtracting the result from a reference input to the control the second stage. [0013] A method of operating a mobile printing robot, including monitoring a position of the mobile print robot; coordinating a position of a print head position, using a dual-stage controller having a separately controlled linear actuator of a printer carriage and differential steering of a differential drive, including using a decoupling filter to reduce deleterious interactions between a first control stage for the differential drive and a second control stage for the linear actuator configured as a dual input, single output (DISO) controller. BRIEF DESCRIPTION OF THE DRAWINGS [0014] Fig.1 illustrates a mobile printing robot system in accordance with an implementation. [0015] Fig.2 illustrates an example of functional blocks of a mobile printing robot in accordance with an implementation. [0016] Fig.3 illustrates a general computer/server architecture for implementing a mobile robot controller in accordance with an implementation. [0017] Fig.4A illustrates a mobile printing robot having a laterally translatable print head in accordance with an implementation. [0018] Fig.4B the mobile printing robot with the print head moved to the right in accordance with an implementation. [0019] Fig.4C the mobile printing robot with the print head moved to the left in accordance with an implementation. [0020] Fig.4E illustrates the mobile printing robot and a range of lateral movement of the print head in accordance with an implementation. [0021] Fig.4E is a profile view of a mobile printing robot in accordance with an implementation. [0022] Fig.5 illustrates aspects of navigation and printing by a mobile printing robot in accordance with an implementation. [0023] Fig.6 illustrates the geometry and variables for determining a pen printing position during layout printing in accordance with an implementation. [0024] Fig.7 is a block diagram of a two-state system for pen position control (in which “cmd” stands for command) in accordance with an implementation. [0025] Fig.8 is a block diagram of closed-loop steering control (G ^మ ) in accordance with an implementation. [0026] Fig.9 is a block diagram of closed-loop heading control (G ^ ) in accordance with an implementation. [0027] Fig.10 illustrates a comparison of simple simulated step responses of single stages in accordance with an implementation. [0028] Fig.11 illustrates a block diagram of closed-loop linear stage control (G ^ୌ ) in accordance with an implementation. [0029] Fig.12 illustrates a simulated response for dual stage system of Fig 4 showing output y and signals y and y ^ in accordance with an implementation. [0030] Fig.13 illustrates a two-stage control architecture with a decoupling filter in accordance with an implementation. [0031] Fig.14 illustrates a Bode plot of ^^ ^ு and inverse of decoupling filter ^^ ௬మ^ு [0032] Fig.15 illustrates a simulated response for dual stage system with decoupling filter showing output ^^ and signals ^^ and ^^ ^ in accordance with an implementation. [0033] Fig.16 illustrates Pen location with and without the decoupling filter in accordance with an implementation. [0034] Fig.17 is a photo comparing convergence for controllers with and without a decoupling filter in accordance with an implementation. [0035] Fig.18 is a close-up photo for the same experiment as in Fig.17, showing a comparison of convergence with and without a decoupling filter in accordance with an implementation. [0036] Fig 19 shows a grid printed without a decoupling filter in accordance with an implementation. [0037] Fig.20 shows a grid printed with a decoupling filter in accordance with an implementation. DETAILED DESCRIPTION [0038] Fig.1 is a high-level illustration of a mobile printing robot system 100. A mobile printing robot 104 wirelessly communicates vis a wireless network 102 (e.g., a Bluetooth network), with an absolute positioning device 106 (e.g., a laser tracker). In some implementation, a human agent utilizes a tablet device with a UI interface 108 to perform various tasks, such as instructing the mobile robot to print a layout and displaying the status of a print job. [0039] In one implementation, a controller design for a dual input single output (DISO) system is modified and applied to a mobile printing robot used for printing layouts at construction sites. The mobile printing robot has a differential drive. The mobile printing robot also includes a linear actuator to move a print head in a direction perpendicular to the a fore-aft axis of the mobile printing robot. The linear actuator is separately controlled related to the differential drive. In other words, as the mobile printing robot moves across a construction surface, the linear actuator for the print head can be moved within a linear range of motion, which in turn moves the print head in a range of motion. [0040] Fig.2 is a block diagram of some of the major functional blocks of the mobile printing robot, which may, for example, include communication buses 201 to communicate between different functional blocks of the mobile printing robot 104. The mobile printing robot 104 may include various sensors and detectors, such as obstacle detector 220, camera system 214, inertial management unit 212, GPS sensor 210, odometry module 218, and other optional sensors 202. A Building Information Modeling (BIM) module 222 includes information about the layout to be printed. The mobile printing robot includes a differential drive mobile base 204 with a differential drive 205. [0041] A reflector 208 may be part of the mobile printing robot to aid a laser tracker to monitor the position of the mobile printing robot. The reflector 208 may, in some implementations, be rotatable to point at the laser tracker. Alternatively, in some implementations the reflector 208 may be a retroreflector. A communication device 206 is provided for the mobile printing robot to wirelessly communicate with a laser tracker and/or other devices. In one implementation, the printing system 215 includes a print head assembly 216 with at least one printer 217. An active printer printing ink along a line may also, for purposes of discussion, be referred to as a pen. In implementations having two or more printers 217, the printers may be selectively activated. For example, with two printers 217, a selected one of the two printers may be activated at a given time to print a line of a layout. The print head assembly 216 and its printer(s) 217 may have a movable carriage 218 to hold the printer(s) 217 moved by a linear actuator 219 laterally (with respect to a fore-aft direction of motion of the mobile robot) within a range of lateral movement. Each printer 217 may, for example, be an ink-jet printer. This ability to move the print head laterally 216 provides greater flexibility in printing than alternatives like fixedly mounting a print head at the center fore-aft axis of the mobile printing robot. [0042] In one implementation, a controller 290 includes a sensor fusion module 291 to fuse position data information. Fusing position data from different sources, such as a laser tracker, an IMU, wheel encoder (and any other source of relevant position data) supports six degrees of freedom (6-DOF) information on mobile robot position, pose, and velocity. [0043] A navigation mode controller 292 performs general navigation of the mobile printing robot in a navigation mode. A dual stage print mode controller 296 is included to control the mobile robot in a print mode. As discussed below in more detail, the controller 296 is a dual input, single output (DISO) controller in which the position of a pen printing a layout line first control stage 294 that controls steering of the differential drive and a second control stage 293 that controls the linear actuator. [0044] The steering control stage 294 is a slow stage in comparison with the linear actuator control stage 293. In a print mode, the printer head position (which can also be described as a pen position) depends on the position and orientation (pose) of the mobile printing robot and the lateral position (on the mobile printing robot) of the print head doing the printing. In one implementation, an additional decoupling filter stage 297 is included to improve the performance of the dual stage control system. In one implementation, the decoupling filter stage 297 has characteristics selection so that the controller 296 achieves fast convergence, a reduced runway distance, and sub-millimeter tracking. Simulations and experimental results demonstrate the effectiveness of the approach. [0045] Fig.3 illustrates a general computer architecture 300 for implementing the controller 290. The controller may be implemented as computer program instructions stored on a memory 310 and executable in a processor in a subsystem having a communication unit 304, processor 308, input device 312, output device, 314, data store 320, and communication bus 302. [0046] In one implementation, the print head has two inkjet printers (pens) mounted on either side of a translatable linear actuator. Referring to Fig.4A, a differential drive robot is provided as an illustrative but non-limiting example. It has two independently actuated drive wheels at the front and a caster in the rear (indicated in dashed lines). Two printers 402 are illustrated in a translatable print head. A linear actuator 401 supports lateral translation of the print head. In one implementation, located just forward of the drive wheels are a left print head and a right print head. In one implementation, the linear actuator 401 utilizes a single belt drive to move the printers 402 in tandem laterally relative to the fore-aft axis of the mobile printing robot. This mechanism provides the capability of printing proximate to the edge of the envelope of mobile printing robot. The mechanism may also be implemented to provide the capability of printing outside the envelope of the main body of the mobile printing robot. Fig.4B illustrates the print head translated to the right. Fig.4C illustrates the print head translated to the left. [0047] Fig.4D illustrates a range of movement of the print head. Fig.4E is a profile view of an example implementation of a mobile printing robot. [0048] Fig.5 illustrates some aspects of a print mode. The laser tracker is illustrated using a laser beam to track the mobile printing robot and provide absolute position data to the mobile printing robot. The line of motion followed by mobile printing robot is illustrated as line 520, which corresponds to movement along a center fore-aft longitudinal axis of the mobile print robot. However, in a print mode, one of the two printers may be activated to act as a pen. Moreover, its lateral movement may be controlled. There is thus a line to be printed 514 having an ink start point and an ink stop point. There is also a runway 524 in which the mobile printing robot is preparing to print a line. However, part of the reason a runway 524 is required includes control issues related to the time it takes for a control response to settle down. [0049] There are two control stages having a single output in terms of a pen position. The slower stage (which can also be described as the first stage) is the control stage for the differential drive of the robot. The faster stage (which can be described as the second stage) controls the linear actuator. The output, which corresponds to the pen position, is the sum of the lateral position of the center of the linear actuator and the print head position relative to that center. [0050] In one implementation, the output (position of the print head) is not directly measured. Instead, its position is estimated from the sum of the measured relative position of the print head to the origin of the linear actuator and the location of the origin of the linear actuator. The location of the origin of the linear actuator is estimated from the position and orientation of the robot derived from sensor fusion of the available position information from various sources, such as on-board Inertial Measurement Unit (IMU) and an Absolute Positioning Device, such as an off-board Laser Tracker tracking the position the mobile printing robot. [0051] There are several control objectives for printing layouts: (i) reduction of settling time, i.e., fast convergence of an inkjet printer pen to reach a lateral position of the line with minimal overshoot to shorten the required runway, and (ii) following the entire length of a desired printing track with high accuracy tracking, i.e., sub-millimeter level accuracy tracking of the line once converged. [0052] Example Operating Modes And Phases [0053] When consider the primary modes of operation for the mobile printing robot, the mobile printing robot operates in two modes: [0054] 1) Navigation Mode - The robot navigates through a series of waypoints to a specific point with a desired orientation. In the navigation mode, millimeter-level accuracy is not required; and [0055] 2) Print Mode - The robot follows a straight path and prints lines of a layout on the ground at desired locations with sub-millimeter level accuracy. [0056] The Print Mode includes several phases, including Prepositioning, Approach, and Tracking. In the Prepositioning phase, the robot navigates to a point located n units (where n is a unit of measure, such as a distance in centimeters) behind the Ink Start position at an angle close to the desired print angle. In the Approach phase, the robot adjusts its speed to a specified printing speed (i.e., accelerating or decelerating) and simultaneously steers itself while positioning the print head carriage so that the pen is over the desired line. In the Tracking phase, the pen continues to track the line as the robot travels from the Ink Start to the Ink Stop position at the set print speed. [0057] In the Prepositioning phase, the robot navigates to a position such that the pen is n units behind the Ink Start position to provide a "runway." The runway allows the robot to accelerate to the printing speed and to correct for lateral offsets and heading errors before reaching the Ink Start position. These errors may arise due to imperfect localization and external disturbances during Navigation Mode. [0058] Fig.6 illustrates differential drive robot during layout printing. Fig.6 shows a schematic of the differential drive robot with its linear print stage with only the left print head for clarity. Since the left and right printer positions of the print head assembly are off-center as shown in Fig.4, the line followed by the robot is translated in the world frame relative to the line to be printed depending on the selected printer and the lateral distance between the location of the origin of the print head to the center of the belt driven linear actuator (a Print Head Center (PHC)). [0059] Variable Definitions [0060] There are a number of different geometric relationships important for understanding the operation of the two-stage controller. The relevant geometry, frames of references, and associated variable definitions are illustrated in regard to Fig.6: [0061] ^^: print head lateral position (world frame) [0062] ^^: angle between line and robot heading [0063] ^^ ^ଶ : distance between the center of rotation (COR) and line to follow [0064] ^^ ^ଶ : lateral deviation of PHC from COR due to ^^ (robot frame) [0065] ^^ (≜ ^^ ^ு^ ): center of linear actuator (world frame) [0066] ^^ ^ : pen position with respect to PHC (robot frame) [0067] The vectors ^^ ^ and ^^ ^ are the start and end points of the line segment to be printed, and ^^ ^ are the start and end of the line segment followed by the robot. ^^ and ^^ ^ represent the orthogonal unit vectors that are parallel and perpendicular to the line segment ^^^^ ≜ ^^^ െ ^^^ respectively. ^ ^ ^ ^ ^^ ^ ^ ^ ^^ ^ ^ ^ is the vector from the start to the center of rotation. Thus, ^^ is the angle of the robot heading relative to ^^ ^^ . The distance between the center of rotation to the print head center (see Fig.6) is ^^. Therefore, the relations for ^^ ^ଶ , ^^ ^ଶ , and ^^ ^ு^ assuming small angle approximations are: ^ ^^ଶ^ ^^^ ൌ ^ ^^^^^ ⋅ ^ ^^^^^ ^^^^^ ^^^ ^ ^^^ ^^ ^^.1 ^ ^^ଶ^ ^^^ ൌ ^^ ^^ ^^ ^^.2 ^^^ு^ ≜ ^^ଶ ൌ ^^^ଶ ^ ^^^ଶ ^^ ^^.3 [0068] Controller Objectives [0069] As previously discussed, there are two primary control objectives. The first is to reduce the settling time for the inkjet (pen) to reach the lateral position of the line to shorten the required runway. The second is to follow the entire length of the desired print track with sub-millimeter accuracy. [0070] An aspect of the mobile printer robot is that it has the capability of measuring the movement of the fast stage relative to the slow stage. This property enables closed-loop control of the fast stage independently of the slower stage. As will be shown, a new controller approach enables the DISO system to respond as if it consisted of the closed-loop controlled fast controller stage alone. [0071] Another important aspect is that the position of the center of the linear actuator ^^ଶ is estimated using the position ^^^ଶ of the center of rotation ^ ^ ^ ^ ^^ ^ ^ ^ ^^ ^ ^ ^ and the orientation of the robot ^^, both measured with the Laser Tracker. These measurements enable closed-loop control of the slow stage independently of the fast stage. With the measured position of the pen relative to the center of the linear actuator ( ^^ ^ ), these measurements are sufficient to achieve decoupling using a decoupling filter. The decoupling filter improved performance by reducing (and in some cases largely or even completely eliminating) deleterious interactions between the control stages that reduces performance. [0072] Problems With Prior Dual Stage Controller Design [0073] Prior two-stage controllers for mobile printing robots suffered from a variety of problems. Fig.7 shows the block diagram of a previous generation of two-stage print head positioning system for pen position command in which “cmd” stands for command. The top branch represents the closed-loop steering control for positioning the center of the linear actuator ^^ , and the bottom branch represents the closed-loop control of ^^ ^ , the print head relative to the center of the linear actuator. The slower ^^ stage receives the full reference input ^^. The faster ^^ ^ receives the reference input minus the current position of ^^ plus the offset between the line the COR is to follow and the line to be printed ( ^^ ^ ). As the ^^ stage settles onto the line ^^ the reference to the ^^ ^ loop converges to ^^ ^ . Steering Control [0074] Fig.8 depicts the block diagram of the closed-loop control of ^^ . With the assumption that ^^ is small, the lateral velocity of the COR, ^^^ ^ଶ , is the product of the (constant) forward velocity ^^, and ^^. Thus, ^^ ^ଶ ^ ^^. Applying Eqns.2 and 3 gives, [0075] ^^ ൌ ൫^ ^^/ ^^^ ^^ ^ 1൯ ^^ ^ଶ Eq.4 block diagram gives the closed-loop transfer function from ^^ to ^^ ^ଶ , ೡீ 0077] ^^ ೞ ഇ ^ [ ^మ ௬^మ Eq.5 from ^^ to ^^ , [0079] ^^ ௬మ ≜ ൫^ ^^/ ^^^ ^^ ^ 1൯ ^^ ௬^మ ^ ^^^ Eq.6 inner control loop for the heading depicted in Fig.9. Block diagram reduction gives the transfer function from ^^ ^^ௗ to ^^. భ 0081] ^^ ൌ ^ ^ [ 7 for controller design is మ ൌ ఠ^ഘ 8 [0084] In one implementation, the inner-loop controller is the proportional derivative (PD) controller ^^ ൌ ^^ ^^ ^^ ^ ^^ ^^ . The proportional gain ( ^^ ^^ ) and the derivative gain ( ^^ ^^ ) are chosen such that closed-loop heading control ^^ exhibits approximately critically damped dynamics with no overshoot and 2% settling time of less than 0.6 ^^ for a step input. The DC gain of ^^ఏ is 1 because of the integration of ^^ ^ to ^^. [0085] In one implementation the outer loop controller ^^ ௬మ is a proportional controller with the gain chosen such that ^^ ௬మ exhibits about 11% overshoot and a 2% settling time of about 1.5 ^^. The integration of ^^^ ^ଶ to ^^ ^ଶ means that the DC gain of the closed-loop ^^ ௬^మ is 1. That property and Eqn.4 imply that DC gain of ^^ ௬మ also is 1. Fig.10 shows the step responses of ^^ ௬మ and ^^ ^ு . [0086] Linear Stage Control [0087] Fig.11 depicts the block diagram of the closed-loop control of ^^ ^ leading to భ^ [0088] ^^ ೞ ುಹ ^ ುಹ ^ு of ^^ ^ு is [0090] ^^ ^ு ൌ ^^ ^^ ^^ ^^ ^ ு ^^ା^^^^ା^^ [0091] where ^^ and ^^ may be optimized for a particular mobile printing robot implementation. [0092] The linear stage controller is the PD controller ^^ ^ு ൌ ^^ ^^ ^ு ^^ ^ ^^ ^^ ^ு . The proportional gain ( ^^ ^^ ^ு ) and the derivative ( ^^ ^^ ^ு ) are chosen such that the closed-loop ^^ ^ு exhibits approximately critically damped behavior with no overshoot for a step input and 2% settling time of about 0.1 ^^. The DC gain of the closed-loop is 1 for a step reference input because of the integration of ^^^ ^ to ^^ ^ . Fig.10 shows the step response of ^^ ^ு . [0093] Combined Two Stage System [0094] Using ^^ ൌ ^^ ௬మ ^^ and ^^ ^ ൌ ^^ ^ு , Fig.7 implies ^ ^ ൌ ^^ ^ ^^ ^ ൌ ^^ ^ ^^ ^ு ^ ^^ ^ ^^ ^ െ ^^ ^ Then, [0097] ^^ ൌ ^^ ௬మ ^ ^^ ^ு െ ^^ ^ு ^^ ௬మ൯ ^^ ൌ ^^ ௌூௌைିே^ ^^ [0099] Fig.12 shows the step response of ^^ ௌூௌைିே^ and the signals ^^ and ^^ ^ . The substantial overshoot and the settling time being many times longer than the settling time of ^^ ^ு suggests that better performance is possible. [0100] Two Stage Controller With Decoupling Filter To Improve Performance [0101] A two-stage control architecture with a decoupling filter is illustrated in Fig. 13. Fig.13 shows the modified controller structure where ^^ ௬మ^ு is the filter that decouples the dynamics of ^^ ௬మ and ^^ ^ு . [0102] Again, assuming that ^^ ^ ൌ 0, Fig.13 implies ^ ^ ൌ ^^ ௬మ ^^ ^ ^^ ^ு൫ ^^ െ ^^ ௬మ^ு ^^ ଶ൯ [0103] ൌ ^൫1 െ ^^ ௬మ^ு ^^ ^ு ൯ ^^ ௬మ ^ ^^ ^ு ^ ^^ ൌ ^^ ௌூௌைି^ ^^ [0104] The key insight is that if ^^ ௬మ^ு ^ ^^ ^ ^ , then 1 െ ^^ ௬మ^ு ^^ ^ு ^ 0 and ^^ ௌூௌைି^ ^ ^^ ^ு . That is, the output response will be essentially that of the fast stage. Note that to achieve a benefit in operation of the mobile printing robot that the condition ^^ ^ ^ு ^ ^^ ^ only needs to be met approximately, not exactly. For the purposes of explaining principles of operation, it is assumed that a close approximation is achieved, although in terms of real-world behavior of a mobile printing robot the approximation only needs to be close enough to improve the performance of the mobile printing robot. [0105] To create a realizable approximation to ^^ ^ ^ we fit the transfer function ଶ ^^ା௭^ [0106] ^^௬ ି^ ^ு ൌ ^ ^ ^ ^^ା^^మ [0107] ^^ ^ு of Fig.14. The parameters of the fit are ^^ ൌ 60 and ^^ ൌ 900. [0108] Fig.15 shows a simulation of the step response using this decoupling filter and the responses of the signals ^^ and ^^ ^ . Note that the output ^^ is essentially the same as the step response of ^^ ^ு while signal ^^ is unchanged from the step response of ^^ ௬ଶ in Fig.10, as the steering is unaffected by the decoupling filter. [0109] Fig.16 shows the results for the simulation of the lateral pen position ^^ versus the time of the total system. The initial conditions for the simulation were ^^ ^ 0 ^ ^ 2 , ^^ ^0^ ^ 3 ^^ ^^, and ^^ ^ ^0^ ^ 1.73 ^^ ^^. The system employing the decoupling filter ^^ ௬ଶ^ு converges with almost zero overshoot to within 0.15 ^^ ^^ of the desired position about 1.5 seconds faster than the system without the filter. Reducing the convergence time by 1.5 seconds enabled a significant reduction of the runway while improving the print quality and thus, decreasing overall print time substantially. [0110] Experimental Results [0111] To demonstrate the effectiveness of the control method, experiments were conducted. The forward velocity in the experiments was ^^ ൌ 0.5 ^^/ ^^. A convergent comparison was performed to compare convergence of the print head to a desired line. A robot printed two pairs of 5 ^^ long parallel lines with blue ink. The robot printed one pair using the previous generation of dual stage controller (without a decoupling filter) and the other with the new controller (with a decoupling filter). Then the robot attempted to print on top of the same lines in black ink starting at the halfway point of the 5 ^^ blue lines. [0112] The right side of Fig.17 shows how close the black lines are to the blue lines at the start of printing. Fig.18 is a close up view showing the rapidity of convergence. With the prior controller (without a decoupling filter), the separation is approximately 1.5 ^^ ^^ center to center with a 0.5 െ 1 ^^ ^^ gap between lines, and the separation persists for about 30 ^^ ^^. In contrast, using the new method using a decoupling filter, the black line almost completely overlays the blue reference. The center-to-center separation is less than 0.5 ^^ ^^, there is no gap, and the separation becomes undetectable in just a couple of centimeters. [0113] Experiment 2 compared the overall print quality by creating two 30 ^^ ^^ ൈ 30 ^^ ^^ grids with 5 ^^ ^^ spacing. Visual inspection of Fig. 19 (no decoupling filter) and Fig. 20 (with a decoupling filter) reveal significantly less variation in the grid when using the new controller. The largest variability between consecutive grid lines decreased from over േ2 ^^ ^^ to less than േ1 ^^ ^^ overall. The black dots of Fig.19 indicate lines with particularly large errors. Fig.20 shows more consistent grid spacing. [0114] In summary a dual-stage control method for a field printer robot decouples the dynamics of the two stages by filtering the output of the slower differential steering stage by the approximate inverse of the closed-loop dynamics of the faster linear actuator stage and then subtracting the result from the reference input to the control of the linear actuator. [0115] Simulations and experiments show the method achieves significantly faster convergence to desired line locations and maintains significantly higher tracking accuracy compared to the approach in prior use. [0116] In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it should be understood that the technology described herein can be practiced without these specific details. Further, various systems, devices, and structures are shown in block diagram form in order to avoid obscuring the description. For instance, various implementations are described as having particular hardware, software, and user interfaces. However, the present disclosure applies to any type of computing device that can receive data and commands, and to any peripheral devices providing services. [0117] In some instances, various implementations may be presented herein in terms of algorithms and symbolic representations of operations on data bits within a computer memory. An algorithm is here, and generally, conceived to be a self-consistent set of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. [0118] To ease description, some elements of the system and/or the methods are referred to using the labels first, second, third, etc. These labels are intended to help to distinguish the elements but do not necessarily imply any particular order or ranking unless indicated otherwise. [0119] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout this disclosure, discussions utilizing terms including "processing," "computing," "calculating," "determining," "displaying," or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. [0120] Various implementations described herein may relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, including, but is not limited to, any type of disk including floppy disks, optical disks, CD ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus. [0121] The technology described herein can take the form of an entirely hardware implementation, an entirely software implementation, or implementations containing both hardware and software elements. For instance, the technology may be implemented in software, which includes, but is not limited to, firmware, resident software, microcode, etc. Furthermore, the technology can take the form of a computer program object accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any non-transitory storage apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. [0122] A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input or I/O devices (including, but not limited to, keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. [0123] Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems, storage devices, remote printers, etc., through intervening private and/or public networks. Wireless (e.g., Wi- FiTM) transceivers, Ethernet adapters, and Modems, are just a few examples of network adapters. The private and public networks may have any number of configurations and/or topologies. Data may be transmitted between these devices via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, or application layer protocols. For example, data may be transmitted via the networks using transmission control protocol / Internet protocol (TCP/IP), user datagram protocol (UDP), transmission control protocol (TCP), hypertext transfer protocol (HTTP), secure hypertext transfer protocol (HTTPS), dynamic adaptive streaming over HTTP (DASH), real- time streaming protocol (RTSP), real-time transport protocol (RTP) and the real-time transport control protocol (RTCP), voice over Internet protocol (VOIP), file transfer protocol (FTP), WebSocket (WS), wireless access protocol (WAP), various messaging protocols (SMS, MMS, XMS, IMAP, SMTP, POP, WebDAV, etc.), or other known protocols. [0124] Finally, the structure, algorithms, and/or interfaces presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method blocks. The required structure for a variety of these systems will appear from the description above. In addition, the specification is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the specification as described herein. [0125] The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. As will be understood by those familiar with the art, the specification may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies, and other aspects are not mandatory or significant, and the mechanisms that implement the specification or its features may have different names, divisions and/or formats. [0126] Furthermore, the modules, routines, features, attributes, methodologies, and other aspects of the disclosure can be implemented as software, hardware, firmware, or any combination of the foregoing. Also, wherever a component, an example of which is a module, of the specification is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future. Additionally, the disclosure is in no way limited to implementation in any specific programming language, or for any specific operating system or environment.