Performing printing by a surface printer according to a maximum printing speed

By optimizing printing speed based on robotic total station error characteristics, the surface printer maintains accuracy and enhances productivity by adjusting speed for different elements within a job, addressing the challenge of positioning errors in surface printing.

WO2026095940A1PCT designated stage Publication Date: 2026-05-07HEWLETT PACKARD DEVELOPMENT COMPANY LP
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HEWLETT PACKARD DEVELOPMENT COMPANY LP
Filing Date
2024-10-31
Publication Date
2026-05-07

AI Technical Summary

Technical Problem

Surface printers face challenges in optimizing printing speed without exceeding positioning error thresholds, as position measurement errors increase linearly with speed, varying based on the angle between the robotic total station's line of sight and the surface printer's direction.

Method used

The printing speed of a surface printer is optimized by setting a maximum speed based on the error characteristics of the robotic total station, using position detection systems and motion control to ensure that positioning errors do not exceed acceptable thresholds, allowing for efficient and accurate printing.

Benefits of technology

This approach enables the surface printer to maintain uniform accuracy levels and maximize productivity by adjusting printing speed for different elements within a job, ensuring that position measurement errors remain within specified limits.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024053860_07052026_PF_FP_ABST
    Figure US2024053860_07052026_PF_FP_ABST
Patent Text Reader

Abstract

A method of performing printing by a surface printer. The method includes: receiving printing destination coordinates; setting a maximum printing speed for printing of an element based on a printing direction corresponding to the printing destination coordinates; and causing the surface printer to print an element according to the maximum printing speed.
Need to check novelty before this filing date? Find Prior Art

Description

863435471PERFORMING PRINTING BY A SURFACE PRINTER ACCORDING TO AMAXIMUM PRINTING SPEEDBACKGROUND

[0001] Surface printers may be used to print to a surface by depositing printing material to the surface while traveling along a path to a printing destination. A remote guiding station may be used to obtain position measurements for tracking the position of a surface printer during printing.BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Various non-limiting examples will be described with reference to the following accompanying drawings, in which:

[0003] FIG. 1 is a block diagram of a surface printer according to an example;

[0004] FIGS. 2A-2C are views illustrating a surface printer according to an example;

[0005] FIG. 3 is a conceptual drawing illustrating a surface printer performing a print job at a job site according to an example;

[0006] FIG. 4 is a conceptual drawing illustrating a position of a robotic total station and paths which may be used to calculate position measurement errors according to an example;

[0007] FIG. 5 is a graph illustrating position measurement errors versus speed for paths according to an example;

[0008] FIG. 6 is a conceptual drawing illustrating positions of a robotic total station, a surface printer, and printing destinations according to an example;

[0009] FIG. 7 is a conceptual drawing of printing path for an element according to an example;

[0010] FIG. 8 is a flowchart illustrating performing a print job according to an example;

[0011] FIG. 9 is a block diagram illustrating a computer program product according to an example;

[0012] FIG. 10 is a block diagram illustrating an example fluid delivery apparatus according to an example; and863435472

[0013] FIG. 11 is a block diagram illustrating a hardware apparatus including a semiconductor package according to an example.DETAILED DESCRIPTION

[0014] In general, this disclosure describes various techniques for optimizing the speed at which a surface printer travels during the performance of a print job. In one example, according to the techniques herein, the speed at which a surface printer travels as the surface printer deposits printing material to the surface, which may be referred to as a printing speed, may be set according to its position with respect to a remote guiding system and the position of a printing destination. In one example, a maximum printing speed of a surface printer may be set such that a positioning error threshold is not exceeded.

[0015] Surface printers may include various types of printers for printing to a surface. Surface printers may include autonomous vehicles that print elements such as lines and symbols on surfaces (i.e. , a substrate) for applications such as construction and street marking. Such an autonomous vehicle may be referred to as a surface marking robot and may receive a floor plan and print a layout for building construction on a floor. For example, a surface printer may print elements, such as, lines, text, dashed-lines, curved lines, circumferences, points, etc., which correspond to layouts of interior walls, mechanical structures, electrical wiring, plumbing, fire protection structures, HVAC systems, or the like. Flooring materials on which a layout may be printed may include porous surfaces, such as, for example, polished and rough concrete, tarmac, and wood and non- porous surfaces, such as, for example, terrazzo, vinyl, and epoxy. Various printing fluids may be utilized. For example, a surface printer may utilize an ink type which may be permanent or semi-permanent and water-based or solvent based.

[0016] During the performance of a print job, a remote guiding system, which may include, for example, a robotic total station, may take position measurements that allow the location of a surface printer to be calculated. For example, a robotic total station may emit a measuring beam which is reflected back to the robotic total station by a reflector positioned on a surface printer. Errors in position863435473 measurements may increase linearly as the speed of a surface printer increases. Further, the rate at which the error increases as speed increases may vary based on the angle between the line of sight of the robotic total station and current location of the surface printer and the direction a surface printer is moving. For example, the rate at which the position measurement error increases with speed may vary based on whether a surface printer is traveling at a direction which is parallel to the line of sight or at a direction which perpendicular to the line of sight. Further, different models of robotic total stations may have different error characteristics. According to the techniques described herein, the printing speed of a surface printer may be optimized based on an error characteristic of a robotic total station or remote guiding system. For example, the speed at which a surface printer travels when printing an element may be increased or decreased based on error characteristics associated with a robotic total station.

[0017] Figure 1 is a block diagram of a surface printer according to an example. In Figure 1 , example surface printer 100 includes processor 102, memory 104, motion control system 106, position detection system 108, printing control system 110, printing system 1 12, sensors 114, user interface 116, calibration system 118, and communications system 120.

[0018] Although example surface printer 100 is illustrated as having distinct functional blocks, such an illustration is for descriptive purposes and does not limit surface printer 100 to a particular hardware or machine readable instruction architecture. Functions of surface printer 100 may be realized using any combination of hardware, and / or machine readable instruction implementations. In one example, surface printer 100 may include various chipsets connected via a system interface. For example, a system interface may include a chipset supporting PCI and PCIe bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, I2C, or a system interface may include any other logical and physical structure that may be used to interconnect peer devices, including chipsets.

[0019] Surface printer 100 may be self-propelled and apply printing material on a surface. In some examples, a surface printer may be propelled with user assistance. In some examples, surface printer 100 comprises a motor, for863435474 example an electric motor, and a source of energy such as a battery. Surfaces may include any of the example surfaces described above. Further, in some examples, a surface may include a field or turf or pavement or asphalt.

[0020] Processor 102 may implement functionality and / or process instructions for execution in surface printer 100. Processor 102 may include processing units(s) capable of retrieving and processing instructions, code, and / or data structures for implementing techniques described herein. Instructions may be stored on a computer readable medium, such as memory 104 or internal or external storage devices. Processor 102 may include digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Processor 102 may include multi-core central processing units. According to the techniques described herein, processor 102 may implement functionality and / or process instructions for setting a maximum printing speed.

[0021] Memory 104 may store information that may be used by surface printer 100 during operation. Memory 104 may be described as a non-transitory or tangible computer-readable storage medium. Memory 104 may include any type of memory device or storage medium capable of storing data. A storage medium may include tangible or non-transitory computer-readable media. Computer readable media may include optical discs, flash memory, magnetic memory, or any other suitable digital storage media. In some examples, a memory device or portions thereof may be described as non-volatile memory and in other examples portions of memory devices may be described as volatile memory. Examples of volatile memories may include random access memories (RAM), dynamic random access memories (DRAM), and static random access memories (SRAM). Examples of non-volatile memories may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. A device may store instructions in a suitable, non-transitory computer- readable medium and execute the instructions in hardware using processors.863435475

[0022] Motion control system 106 may propel surface printer 100. In some examples, motion control system 106 may comprise wheels driven by a motor (e.g., an electric motor), or any suitable propulsion system. In some examples, motion control system 106 may comprise control circuitry to control a motor to drive wheels to control a direction and speed of surface printer 100. In some examples, motion control system 106 may include a microcontroller following a trajectory servo in communication with a propulsion system comprising motor driver electronics to supply force to a set of wheels. According to the techniques described herein, motion control system 106 may cause surface printer 100 to move according to a maximum printing speed.

[0023] Position detection system 108 may enable a position of surface printer 100 to be detected. In some examples, a position detection system 108 takes position measurements. For example, position detection system 108 may include a Global Navigation Satellite System (GNSS) receiver. In some examples, position detection system 108 may receive position information. For example, position detection system 108 may utilize guiding system position information. A remote guiding system may permit guiding of the surface printer 100 from a reference point corresponding to the location of the remote guiding system. A remote guiding system may communicate guiding system position information with the surface printer 100. Guiding system position information may provide the location of the remote guiding system, such that the location may be used as a reference point (or beacon) to calculate or estimate an absolute position of surface printer 100. Example remote guiding systems can include a Wi-Fi access point, an ultrasound beacon, a robotic total station (RTS), which may be referred to as a total station, a laser tracker or an interferometer.

[0024] In some examples, a remote guiding system, such as, for example, a robotic total station, may be an optical guiding system. During the performance of a print job, a robotic total station may take position measurements that allow the location of a surface printer to be calculated. For example, a robotic total station may emit a measuring beam which is reflected back to the robotic total station by a reflector on a surface printer. The robotic total station may calculate863435476 the location of a surface printer and provide this location to a surface printer and / or one or more computing devices as guiding system position information.

[0025] Further, position detection system 108 may receive information from sensors 114. Sensors 114 may include sensors for use with position detection system 108, as well as additional sensors described in detail below. Sensors for use with position detection system 108 may include any kind of suitable position sensor, such as, for example, rotary encoders located on wheels of surface printer 100, a camera located on the body of surface printer 100, a Light Detection and Ranging (LIDAR) system, an inertial mechanical unit to sense accelerations and direction, a combination including at least some of the previously-mentioned position sensors, or any other suitable kind of position sensor. In some examples, position detection system 108 may compare information from sensors 114 with other position information.

[0026] In some examples, position detection system 108 and / or motion control system 106 may calculate a magnitude and direction of the difference between the current position of surface printer 100 and an intended path and may correct the path accordingly. That is, motion control system 106 and position detection system 108 may operate in conjunction to cause surface printer 100 to traverse an intended path. In some examples, position detection system 108 may comprise processing circuitry to calculate whether a detected position matches an intended path and cause motion control system 106 to make adjustments.

[0027] Printing control system 110 and printing system 112 may cause a representation of an image to be printed by surface printer 100. For example, in one example, printing control system 110 may receive print job commands and / or data corresponding to a print job (e.g., image data) and generate print data such that a print job is executed. In some examples, printing control system 110 may reproduce print data from received data. In some examples, the received data itself may already correspond to print data. In other examples, print data may be dynamically generated during printing of a print job. Further, print data may also be stored from the outset in a memory and printing control system 110 may then dynamically access the print data during execution of a print job.863435477

[0028] Printing system 112 may cause printing material to be deposited to a surface. For example, printing system 112 may include a printhead, where a printhead comprises a die forming a plurality of nozzles. A printhead may be included, for example, in a carriage including a plurality printheads or a fixed printhead array. The nozzles may be aligned in columns along the length of a printhead. Nozzles may include micro valves. For example, a printhead carriage may comprise a plurality of inkjet printheads. A printing fluid, including, for example, ink or a modelling agent, may be ejected through the nozzles of the printhead. In this manner, printheads included in printing system 112 may deposit ink onto a surface, thereby printing an image corresponding to a print job. In other examples, printing system 112 may include a thermal or piezo-electric printhead. Further, ink is used herein as an example, and in other examples, other printing fluids, such as, pre-printing (e.g., cleaning fluid) and post-printing agents (e.g. varnishes, glosses, under-treatments) may alternatively be deposited. Printing system 112 may cause printing material to be deposited according to settings. In some examples, a printing system may include the following firing settings: aperture time, ink pressure, and drop spacing, which may be adjustable. In other examples, firing settings may include energy, voltage, pulse width, etc.

[0029] As described above, in some examples, printing control system 110 may receive data corresponding to a print job. In some examples, data corresponding to a print job may correspond to a floor plan. A floor plan may include a two- dimensional or three-dimensional representation of a structure such as, for example, a building. In some examples, a floor plan comprises floor plan features corresponding to objects or characteristics, such as, for example, walls, windows, doors, staircases, elevator cases, sinks, types of finish, construction methods, materials, electrical wiring, mechanical structures, plumbing, fire protection structures, HVAC systems, gas, or water supply features, etc. In some examples, a floor plan comprises features corresponding to traffic, parking, or road surface marking, aimed at pedestrians or vehicles.

[0030] In one example, a digital data file may comprise digital data associated with a floor plan or a job site. For example, an input file, or a raw input file, may include a digital representation of a drawing provided by a user, for example in a863435478DXF (Drawing Exchange Format), DWG (DraWinG), or BIM (Building Information Modeling) format, which may include IFC (Industry Foundation Classes) and RVT (Revit) formats. In one example, an input file may be parsed in layers by surface printer 100, for example, for checking that relevant printing information is contained in the file. In one example, an input file may be processed by surface printer 100 to detect obstacles which may impact a trajectory or path to be followed by surface printer 100. In one example, an input file may be processed by surface printer 100 to sort and group clusters of graphical representations such as lines or text. In one example, an input file may be processed by surface printer 100 for path planning, for example in order to calculate an order in which graphical representation elements such as floor plan features may be printed, while avoiding obstacles and reducing a printing time. In one example, an input file may be processed by surface printer 100 for printing or marking for example by printing control system 110. In one example, an input file may be processed as described above by an external computing device (not illustrated) that is communicatively connected to surface printer 100 and be sent to surface printer 100.

[0031] Communications system 120 may enable surface printer 100 to communicate with external computing devices via networks. For example, communications system 120 may enable surface printer 100 to communicate with other computing devices connected to local area network and / or wide area network. Communications system 120 may be included as part of a network interface card and may include an optical transceiver, a radio frequency transceiver, or any other type of device that can send and receive information. Communications system 120 may operate according to communications protocols including for example, Global System Mobile Communications (GSM) standards, code division multiple access (CDMA) standards, 3rd Generation Partnership Project (3GPP) standards, European Telecommunications Standards Institute (ETSI) standards, Internet Protocol (IP) standards, Wireless Application Protocol (WAP) standards, and IEEE standards, such as, for example, IEEE 802 standards (e.g., Wireless LAN, PAN, etc.). In one example, communications system 120 may enable surface printer 100 to receive an input file from an external computing device (e.g., a laptop computer or the like). In863435479 some examples, according to the techniques described herein, communications system 120 enables surface printer to receive information corresponding setting a maximum printing speed.

[0032] As described above, in some examples, surface printer 100 may be guided using position detection system 108. In some examples, surface printer 100 may additionally be controlled using input received from a user via an external computing device in communication with surface printer 100. For example, input for controlling surface printer 100 may be generated from an input device, such as, for example, a touch-sensitive screen, a trackpad, a joystick, a mouse, or a keyboard. Input may include, for example, at least, input to control the movement of surface printer 100, input to modify printing settings, input to modify line properties, and input to modify additional controllable settings (e.g., maximum, minimum speed, error thresholds, etc.). User interface 116 may include an input device and / or a basic user interface. For example, in one example, user interface 116 may include basic manual controls (e.g., Power ON / OFF buttons and / or switches) and basic status indicators (e.g., LED lights indicating power and / or operating states).

[0033] As described above, sensors 114 may include sensors for use with position detection system 108. Sensors 114 may further include collision avoidance and safety sensors. For example, LiDAR sensors may be used for collision avoidance and safety sensors may be used to detect cliffs or ledges to prevent surface printer 100 from falling during operation. Sensors 114 may additionally include sensors to measure environmental conditions, for example, temperature sensors, humidity sensors, and optical sensors for measuring an amount sunlight shining on a surface. Sensors 114 may include sensors corresponding to the execution of a print job and / or the operation of surface printer 100. For example, sensors 114 may include counters for indicating how long surface printer 100 has been in a particular operating state and / or how much of a printing material has been deposited. Sensors 114 may further include image capturing sensors, for example, digital cameras, for scanning printed images. Calibration system 1 18 may provide calibration for a printing process. For example, calibration system 118 may cause settings of printing system 112 to be8634354710 adjusted based on, for example, surface properties, printing material properties, environmental conditions, and the like.

[0034] Figures 2A-2C are views illustrating a surface printer according to an example. Figures 2A-2C illustrate exterior views of an example surface printer 200 and elements illustrated in Figures 2A-2C may operate in conjunction with elements described above with respect to Figure 1. For example, in an example, surface printer 200 may include a processor, a memory and other components illustrated in Figure 1. As illustrated in Figures 2A-2C, surface printer 200 includes drive wheels 202A-202B, caster wheel 204, user interface 206, reflector 208, and printhead 210. Surface printer 200 may include LiDAR sensors, safety sensors, and a position sensing camera, which are not explicitly illustrated in Figures 2A- 2C. As described above, a surface printer may include a motion control system to propel the surface printer. Drive wheels 202A-202B are wheels driven by a motion control system and caster wheel 204 rotates such that surface printer 200 is able to move about a direction and at a particular speed. As described above, a surface printer may include basic manual controls and basic status indicators. User interface 206 provides a basic user interface for surface printer 200. For example, user interface 206 may include an ON / OFF button and status indication lights.

[0035] As described above, a surface printer may be guided by utilizing a remote guiding system. For example, a robotic total station may emit visible or infrared light and a surface printer may include a reflector to reflect a measuring beam back to the robotic total station. Reflector 208 is an example of a reflector which may reflect a measuring beam to a source. In one example, reflector 208 includes a 360-degree prism.

[0036] As described above, a surface printer may include a printing system including a printhead, where a printhead comprises a die forming a plurality of nozzles. Printhead 210 represents an example of a printhead having nozzles 211A-211 N arranged in a column to deposit a printing material to a surface. In one example, a printhead may include 32 rows of nozzles (which may also be referred to as nozzle rows). In other examples, printhead 210 may include more or fewer rows of nozzles. Although Figure 2C illustrates an example including a8634354711 single column of nozzles, a printhead may include multiple columns of nozzles (which may also be referred to as nozzle columns).

[0037] As described above, during the performance of a print job, a robotic total station may take position measurements that allow the location of a surface printer to be calculated. Figure 3 is a conceptual drawing illustrating a surface printer performing a print job according to an example. In the example illustrated in Figure 3, surface printer 200 is to print elements, illustrated as dashed lines, to a surface. The example illustrated in Figure 3 may correspond to surface printer 200 printing parking spaces and directional arrows to a surface in a parking garage. That is, a job site corresponding to the example illustrated in Figure 3 includes a parking garage. In the example illustrated in Figure 3, a robotic total station 300 and corresponding control points 350A-350B are illustrated within the job site. Robotic total station 300 may include any suitable robotic total station, for example, a robotic total station manufactured by Leica, Trimble, or Topcon, or other type station of a remote guiding system. Control points 350A-350B may include known points within a job site as measured by robotic total station 300. For example, control point 350A-350B may correspond to stationary reflector locations.

[0038] In the example illustrated in Figure 3, surface printer 200 may print an element by depositing printing material to the surface while traveling to printing destination E. The location of a printing destination within a job site may be specified according to printing destination coordinates. Thus, in order to print an element, surface printer 200 travels along a path from its current location to a location defined by printing destination coordinates. The direction surface printer 200 travels while depositing printing material to the surface may be referred to as a printing direction or a printing path and the speed at which surface printer 200 travels may be referred to as a printing speed. The current location of surface printer 200 may be specified relative to the location of robotic total station 300. That is, for example, a line between a current location of a surface printer 200 and robotic total station 300 may be referred to as a line of sight and may correspond to a line of sight of a measuring beam. Further, an angle between a line of sight and a line corresponding to a printing path may be defined.8634354712

[0039] Figure 4 is a conceptual drawing illustrating a position of a robotic total station and paths which may be used to calculate position measurement errors according to an example. In the example illustrated in Figure 4, the location of a robotic total station is specified as RTS (XRTS, YRTS, ZRTS). Figure 4 illustrates three lines of sight between the robotic total station and a reflector, i.e., rO, r1 , and r2. Figure 4 illustrates three respective paths for each line of sight, i.e., Patho, Pathi, and Path2. Further, Figure 4 illustrates example angles between the lines of sight and paths. As illustrated in Figure 4, for a first line of sight, rO, and a first printing direction path, Patho, the angle, cpo, is equal to 0 degrees; for a second line of sight, r1 , and a second printing direction path, Pathi, the angle, <pi , is equal to 45 degrees; and for a third line of sight, r2, and a third printing direction path, Path2, the angle, cp2, is equal to 90 degrees.

[0040] Errors in position measurements may increase linearly as the speed of a surface printer increases. That is, referring to the example illustrated in Figure 4, an error in position measurement by the robotic total station may increase as the speed at which a reflector (e.g., a reflector mounted to a surface printer) travels along one of Patho, Pathi , or Path2. For example, if a surface printer is traveling at 0.3 m / s, an error in position measurement may be 5.0 mm and if a surface printer is traveling at 0.6 m / s, an error in position measurement may be 10.0 mm. Different models of robotic total stations may have different error characteristics. Further, the rate at which the position measurement error increases as speed increases may vary based on the angle between the line of sight of the robotic total station and the direction a surface printer is moving. That is, referring to the example illustrated in Figure 4, the rate at which the error increases as speed increases may vary for each of <po, < i , and cp2.

[0041] In one example, according to techniques herein, particular rates at which a position measurement error increases as speed increases for angles may be measured in order determine an error characteristics for a robotic total station. For example, referring to the example illustrated in Figure 4, a robotic total station may be placed at location RTS(XRTS, YRTS, ZRTS) and a reflector may be forced to travel along respective paths, Patho, Pathi, or Path2 at various speeds and corresponding position errors may be measured. For example, a reflector may be8634354713 mounted to a linear actuator corresponding to a path, such that the reflector can be controlled to travel along the path at various speeds.

[0042] Figure 5 is a graph illustrating position measurement error versus speed for paths according to an example. In the example illustrated in Figure 5, for each of Patho, Pathi, or Path2, a standard deviation of a position error measurements in millimeters is provided for various speeds in meters per second. Thus, Figure 5 provides an example error characteristic for a robotic total station. For each path, the error may be characterized by the slope of the position error versus speed. This slope may be represented as a variable KT<P. For example, Figure 5 provides: for Patho, KTOO is approximately 10.3 mm / (m / s); for Pathi, KT45 is approximately 13.4 mm / (m / s); and for Path2, Kra is approximately 16.6 mm / (m / s). Thus, the error characteristic illustrated in Figure 5 provides the rate at which the position measurement error increases as speed increases for each of cpo, q>i, and q>2. That is, in one example, an error characteristic may provide the slope of a standard deviation of the position measurement error versus speed for an angle of the trajectory with respect to the robotic total station.

[0043] According to the techniques, herein an error characteristic may be used to set a maximum printing speed. For example, for a particular print job (or the printing of a particular element within a print job), a position measurement error of 15 mm may be considered acceptable and for another print job a position measurement error 10 mm may considered acceptable. Thus, in this case, if the rate at which the position measurement error increases as speed increases along a path is 15 mm / (m / s), a maximum printing speeds could be respectively set such that the printing speed of a surface printer does not exceed 1 m / s and 0.66 m / s. An acceptable position measurement error may be based on a print job. For example, a print job may specify an acceptable position measurement error. For example, a print job corresponding to a building layout may have a smaller acceptable position measurement error than a print job corresponding to pavement marking. Further, in some examples, a user of a surface printer may set an acceptable position measurement error.

[0044] As described above with respect to Figure 4 and Figure 5, the rate at which the position measurement error increases as speed increases may be8634354714 measured for an angle between a line of sight and a path. During the printing of an element, the angle between the line of sight of a robotic total station and a surface printer and path may include various angles. That is, the angle will not necessarily be equal to an angle used to calculate the error characteristic. According to the techniques herein, a rate at which a position measurement error increases with speed for an arbitrary angle corresponding to a printing path may be calculated based on the error characteristic. That is, a position measurement error for an arbitrary printing path may be calculated based on measured errors. The calculated rate at which a position measurement error increases with speed for an arbitrary angle may be used to set a maximum printing speed.

[0045] Referring again to Figure 4, for a line of sight rN and a PathN, the angle q>N may be calculated as:

[0046] That is, a line of sight rN and a PathN may be represented as vectors and the cosine of the angle between two vectors is equal to the dot product of the vectors divided by the product of their magnitudes. Thus, for a robotic total station located at RTS (XRTS, yRTs, ZRTS), a current location of a surface printer at R (XR, yR, ZR), and a printing destination E located at E (XE, yE, ZE), the angle cp may be calculated. It should be noted that ZRTS may be fixed (i.e., at a set height) during a print job, and ZR and ZE are generally the same, (i.e., at the same height on the same level surface), as such, in some examples, the location coordinates may be simplified to two-dimensional coordinates corresponding to a printing surface.

[0047] For a calculated angle <p, the rate at which position measurement error increases with speed may be calculated based on an error characteristic. In one example, according the techniques herein, the expected position error that occurs during printing may be specified as follows:8634354715Where,KT< is a rate of an error versus speed for an angle <p; and VT is a printing speed.

[0048] As described above, with respect to Figure 4, an angle (p may be set and a KT<P may be calculated by measuring the position errors at various speeds. For example, in the example of Figure 5, KTO is calculated as 16.6 mm / (m / s) and KTW is calculated as 10.3 mm / (m / s). Calculated KT<P values may be used to calculate any KT<P. For example, in one example, a calculated KTO and KT9O may be used to calculate KT<P, for an angle cp as follows:

[0049] Thus, in this example, if KTO is calculated as 16.6 mm / (m / s) and KTOO is calculated as 10.3 mm / (m / s), and an angle <p is 35 degrees, KTSS may be calculated according to the equation above as 14.8 mm / (m / s). In this case, measured limit cases of KTO and KTOO are used to calculate KT<P for any arbitrary angle cp. It should be noted, as described above, different robotic total stations may have different error characteristics. Thus, depending on the particular robotic total station, the minimum measured KT<P may not correspond to KTO and / or the maximum measured KT< may not correspond to KTOO. However, according to the techniques herein, any number of measured KT<P values may be used to set values of KTO and KTOO. Further, any number of measured KT<P values may be fit to a line such that an equation for KT<P may be defined.

[0050] In other examples, other techniques may be used for calculating a KT<P for an angle <p. For example, a KT<P may be interpolated based on one or more calculated KT<P values and / or a KT<P may be specified by a manufacturer of a robotic total station. For example, a manufacturer may specify a maximum KT< value and provide the corresponding value for <p where the maximum KT<P occurs. In one example, in this case for any angle cp, KT<P may be set to the specified8634354716 maximum KT<P. In this manner, according to the techniques herein, there may be several way to calculate a KT<P for an angle (p.

[0051] As described above, a calculated rate at which a position measurement error increases with speed for an arbitrary angle may be used to set a maximum printing speed. That is, for an angle q>, KT<P may calculated and used to set a maximum printing speed. Figure 6 is a conceptual drawing illustrating positions of a surface printer, R, a robotic total station, and print destinations according to an example. In the example illustrated in Figure 6, a location of a robotic total station is at RTS (XRTS, yRTs) and a current location of a surface printer is at R (XR, yR). Ei (XEI , yEi) and E2 (XE2, yE2) represent possible printing destinations. That is, a surface printer, for example, surface printer 100, may print a first element (e.g., a line) by traveling from its current location to E1 and / or print a second element by traveling from its current location to E2. As illustrated, respective angles between a line formed by the location of the robotic total station and a current location of the surface printer and a line formed by the current location of the surface printer and E1 and E2 are epi and <p2. As described above, for each of cpi and (p2, KT<PI and KT<P2 may be calculated. For example, depending on an error characteristic of the robotic total station KT<PI may be calculated as 10 mm / (m / s) and KT<P2 may be calculated as 12 mm / (m / s).

[0052] In one example, each of KT<PI and KT<P2 may be used for setting respective maximum printing speeds for printing respective elements for E1 and E2. For example, if an acceptable position error is 8 mm, KT<PI is 10 mm / (m / s), and KT<P2 is 12 mm / (m / s), a surface printer, for example, surface printer 100, may print an element from its current location to E1 while traveling at a printing speed of up to 0.8 m / s and print a line from its current location to E2 while traveling at a printing speed of up to 0.66 m / s without expecting to exceed the 8 mm position error. Thus, a maximum printing speed may be set to 0.8 m / s for E1 and may be set to 0.66 m / s m / s for E2. In this manner, according to the techniques herein, for printing a first element within a print job, a first maximum printing speed may be set and for printing a second element within the print job, a second maximum print speed may be set. Setting different maximum printing speeds is an example of8634354717 optimizing the speed at which a surface printer travels during the performance of a print job.

[0053] It should be noted that in some cases, a maximum printing speed may be set according to a particular margin of error. For example, for the example above, each of 0.8 m / s and 0.66 m / s may be reduced by 0.05 m / s to account for a margin of error. Further, a maximum printing may be set according to a likelihood that a position measurement error threshold is not exceeded. For example, if a value of a maximum permissible error is set by a user and a statistical probability of a particular position error occur at a printing speed is known, the maximum printing speed may be set such that the probability that the maximum permissible error is exceeded is relatively low. For example, the maximum speed may be set such that there is a probability of 99.7% (which corresponds to three standard deviations) that the maximum permissible error is not exceeded.

[0054] As described above, different maximum printing speeds may be set for printing respective elements within a print job In this manner, according to the techniques herein, the printing speed of a surface printer may be optimized. This is in contrast to a case where a surface printer travels at the same printing speed or attempts to travel at a target speed while printing elements of a print job. It should be noted that if a surface printer is traveling at the same target printing speed independent of a <p corresponding to an element, position measurement errors vary as elements are being printed. Thus, according to the techniques herein, printing speed may be optimized in that for each element a print speed may be set such that a position error threshold is not expected to be exceeded. That is, by setting a maximum printing speed according to a permissible error, the maximum printing speed may be optimized for printing various elements within a print job. That is, the maximum printing speed may be higher in some directions without expecting to exceed a maximum permissible error. In this manner, productivity may be maximized (i.e., time to complete a print job may be minimized), while maintaining a set accuracy level.

[0055] Further, using the techniques described herein enables uniform accuracy levels to be maintained among various robotic total stations. That is, as described8634354718 above, error characteristics of robotic total stations may be used to determine KT<P for all cp and a maximum permissible error may be set. Further, in some examples, a KT<P or other error characteristics may be specified by a manufacturer of a robotic total station or measured. For example, a maximum KT<P value, for all directions may be specified or measured. In some examples, according to the techniques herein, a maximum print speed for a print job may be set based on a specified and / or measured position measurement error of a particular robotic total station. As described above, surface printer 100 may include input for modifying controllable settings and may further include a communications system to enable surface printer to receive information corresponding setting a maximum printing speed. In some examples, surface printer 100 may receive one or more of error characteristics corresponding to a robotic total station and a maximum permissible error, for example from user input and / or from a communications system, and set maximum printing speed. In other examples, an external computing device may set a maximum printing speed and send the maximum printing speed to surface printer 100. Motion control system 106 of surface printer 100 may cause surface printer 100 to print an element according to the set maximum printing speed.

[0056] As described above, elements may include elements, such as, lines, text, dashed-lines, curved lines, circumferences, points, etc. That is, for example, cp may vary for a particular element. For example, if an element is an arc, cp varies along the arc. Figure 7 is a conceptual drawing where an element, 702 is an arc. According to the techniques herein, as illustrated in Figure 7, an element may be decomposed into a set of printing destinations such that respective angles between a line of sight and a line corresponding to a printing path may be defined and used for setting maximum printing speeds. In the example of Figure 7, printing destinations Ei (XEI , VEI. ZEI), E2(XE2, yE2, ZE2), Es (XE3, yE3, ZE3), and E4(XE4, yE4, ZE4) are print destinations corresponding to element 702, RTS (XRTS, yRTs, ZRTS) is the position of a robotic total station, and R (XRO, yRo, ZRO) an initial position of a surface printer, that is at the initiation of printing element. Referring to Figure 7, although a surface printer would print by traveling along the arc corresponding to the element 702, a printing path before element 702 is approximated as a set8634354719 of four linear printing paths, Pathi, Path?, Paths, and Path4, and the printing speed may be set for each of Pathi, Path?, Paths, and Path4, according to the techniques described above. Further, according to the techniques herein, there may be numerous ways to decompose various elements into a set of approximate printing paths. For example, element 702 may be approximated using more or fewer printing paths.

[0057] Figure 8 is a flowchart illustrating performing printing by a surface printer according to an example. Referring to Figure 8, the entirety, or aspects thereof, of process 800 may be performed by surface printer 100. For example, aspects of process 800 may be performed by processor 102 and / or other components of surface printer 100. Further, in one example, aspects of process 800 may be performed by an external computing device in communication with a surface printer. For example, in one example, an external computing device may set a maximum printing speed and send the maximum printing speed to surface printer 100.

[0058] At 802, printing destination coordinates are received. That is, for example, at 802, surface printer 100 or an external computing device may parse printing destination coordinates from digital data associated with a print job. At 804, a maximum printing speed for printing an element based on a printing direction corresponding to the printing destination coordinates may be set. That is, for example, as described above, in one example, an angle between a line formed by a location of a remote guiding station and a current location of surface printer 100 and a line formed by the current location of the surface printer 100 and a location of the printing destination as provided by the destination coordinates may be calculated. In one example, a rate at which a position measurement error increases with speed for the calculated angle may be derived. In one example, a maximum speed may be set such that an acceptable position measurement error is not expected to be exceeded according to the rate at which a position measurement error increases with speed for the calculated angle.

[0059] At 806, surface printer 100 is caused to print an element according to the maximum printing speed. That is, for example, as described above, surface8634354720 printer 100 may deposit printing material to a surface while traveling at a printing speed that does not exceed that maximum printing speed.

[0060] In this manner, surface printer 100 represents an example of a device to receive printing destination coordinates, set a maximum printing speed based on a printing direction corresponding to the printing destination coordinates, and to print an element according to the maximum printing speed.

[0061] Figure 9 illustrates a block diagram of an example computer program product 900. In some examples, as shown in Figure 9, computer program product 900 includes a machine-readable storage 902 that may also include computer readable instructions 904. In some implementations, the machine-readable storage 902 may be implemented as a non-transitory machine-readable storage. In an example, the computer readable instructions 904 may be executed by a processor 906 and implement aspects of process 800, described above. That is, printing pipeline logic illustrated Figure 9 may include aspects of process 800.

[0062] Figure 10 is a block diagram illustrating a hardware apparatus including a semiconductor package according to an example. Figure 10 shows an illustrative example of a printer 1000. In the illustrated example, the printer 1000 may include a processor 1002 and a memory 1004 communicatively coupled to the processor 1002. The memory 1004 may include computer readable instructions 1006. In an example, the computer readable instructions 1006, may be executed by the processor 1002 and implement aspects of process 800, described above. That is, printing pipeline logic illustrated in Figure 10 may include aspects of process 800.

[0063] In some implementations, the processor 1002 may include a general purpose controller, a special purpose controller, a storage controller, a storage manager, a memory controller, a micro-controller, a general purpose processor, a special purpose processor, a central processor unit (CPU), the like, and / or combinations thereof. Further, implementations may include distributed processing, component / object distributed processing, parallel processing, the like, and / or combinations thereof. For example, virtual computer system processing may implement the methods or functionalities as described herein,8634354721 and the processor 1002 described herein may be used to support such virtual processing.

[0064] In some examples, memory 1004 is an example of a computer-readable storage medium. For example, memory 1004 may be any memory which is accessible to the processor 1002, including, but not limited to RAM memory, registers, and register files, the like, and / or combinations thereof. References to “computer memory” or “memory” should be interpreted as possibly being multiple memories. The memory may for instance be multiple memories within the same computer system. The memory may also be multiple memories distributed amongst multiple computer systems or computing devices.

[0065] Figure 11 shows an illustrative semiconductor apparatus 1100 (e.g., chip and / or package). The illustrated apparatus 1100 includes substrates 1 102 (e.g., silicon, sapphire, or gallium arsenide) and computer readable instructions 1104 (such as, configurable computer readable instructions) and / or fixed-functionality computer readable instructions (e.g., hardware)) coupled to the substrate(s) 1102. In an example, the computer readable instructions 1104 implement aspects of process 800. That is, printing pipeline logic illustrated in Figure 11 may include aspects of process 800.

[0066] In some implementations, computer readable instructions 1104 may include transistor array and / or other integrated circuit / IC components. For example, configurable logic and / or fixed-functionality hardware logic implementations of the computer readable instructions 1104 may include configurable computer readable instructions such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or fixed-functionality computer readable instructions (e.g., hardware) using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, the like, and / or combinations thereof.

[0067] All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and / or ordinary meanings of the defined terms.8634354722

[0068] Furthermore, for ease of understanding, certain functional blocks may have been delineated as separate blocks; however, these separately delineated blocks should not necessarily be construed as being in the order as discussed or otherwise presented herein. For example, some blocks may be able to be performed in an alternative ordering, simultaneously, etc.

[0069] Although a number of illustrative examples are described herein, it should be understood that numerous other modifications and examples can be devised that will fall within the spirit and scope of the principles of the foregoing disclosure. More particularly, reasonable variations and modifications are possible in the component parts and / or arrangements of the subject combination arrangement within the scope of the foregoing disclosure, the drawings and the appended claims without departing from the spirit of the foregoing disclosure. In addition to variations and modifications in the component parts and / or arrangements, alternative uses will also be apparent. The examples may be combined to form additional examples.

Claims

8634354723CLAIMSWhat is claimed is:1 . A method of performing printing by a surface printer, comprising: receiving printing destination coordinates; setting a maximum printing speed for printing of an element based on a printing direction corresponding to the printing destination coordinates; and causing the surface printer to print the element according to the maximum printing speed.

2. The method according to claim 1 , wherein setting a maximum printing speed includes: calculating an angle between a line formed by a location of a remote guiding station and a current location of the surface printer and a line formed by the current location of the surface printer and the printing destination coordinates, and deriving a rate at which a position measurement error increases with speed for the calculated angle.

3. The method according to claim 2, wherein deriving a rate at which a position measurement error increases with speed for the calculated angle includes deriving the rate based on an error characteristic of the remote guiding station.

4. The method according to claim 3, wherein the remote guiding station is a robotic total station and an error characteristic indicates a rate at which a position measurement error increases with speed for an angle between a line of sight and a moving direction.

5. The method of claim 1 , wherein setting a maximum printing speed includes setting a maximum speed according to a maximum permissible error.86343547246. The method of claim 5, wherein the maximum permissible error is specified according to a print job.

7. The method according to claim 1 , wherein the element is a line or a dashed- line and printing the element includes the surface printer traveling a linear printing path as depositing printing material to a surface.

8. A surface printer comprising: a processor to: receive printing destination coordinates; set a maximum printing speed for printing of an element based on a printing direction corresponding to the printing destination coordinates; and a motion control system to: control the surface printer to travel at a printing speed not exceeding the maximum speed during printing of the element.

9. The surface printer of claim 8, wherein setting a maximum printing speed includes setting the maximum printing speed based on a rate at which a position measurement error increases with speed for an angle between a line formed by a location of a remote guiding station and a current location of the surface printer and a line formed by the current location of the surface printer and the printing destination coordinates.

10. The surface printer of claim 9, wherein setting a maximum printing speed includes setting a maximum speed according to a maximum permissible error.

11. The surface printer of claim 10, wherein the maximum permissible error is specified according to a print job.

12. The surface printer of claim 8, wherein the element is a line or a dashed line and printing the element includes depositing printing material to a surface.863435472513. A non-transitory computer readable medium comprising instructions stored thereon that, when executed, cause one or more processors of a device to: calculate an angle between a line formed by a location of a remote guiding station and a current location of a surface printer and a line formed by the current location of the surface printer and a location of a printing destination; calculate a rate at which a position measurement error increases with speed for the calculated angle; and cause a surface printer to print while traveling at a maximum printing speed based on the calculated rate.

14. The non-transitory computer readable medium of claim 13, wherein calculating a rate at which a position measurement error increases with speed for the calculated angle includes deriving the rate based on an error characteristic of the remote guiding station.

15. The non-transitory computer readable medium of claim 13, wherein the maximum printing speed is based on maximum permissible error.

Citation Information

Patent Citations

  • Marking robot system and control method of marking robot

    JP2024038617A

  • Robotic assembly of transport structures using on-site additive manufacturing

    US20180339456A1

  • Autonomous mobile coating applicator

    US20190255551A1

  • System and method for dual stage control of field printer robot

    US20240092077A1

  • Mobile Printing Robot & Related Methods

    US20240149464A1