Surface printer and obstacle avoidance

The system addresses clearance limitations by determining offset symbols and locations for surface marking robots, ensuring complete and safe printing near obstacles, thereby improving operational efficiency and user guidance.

WO2025170592A1PCT designated stage Publication Date: 2025-08-14HEWLETT PACKARD DEVELOPMENT COMPANY LP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/015209
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-02-09
Publication Date
2025-08-14

AI Technical Summary

Technical Problem

Existing surface marking robots face challenges in efficiently printing elements near obstacles due to clearance limitations, leading to incomplete or unsafe printing operations.

Method used

The system determines offset symbol types and locations to ensure printing can be performed at a safe distance from obstacles, using sensors and computational processing to adjust print paths and symbols as needed.

Benefits of technology

Ensures complete and safe printing of elements by avoiding collisions and maintaining print quality near obstacles, enhancing operational efficiency and user guidance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024015209_14082025_PF_FP_ABST
    Figure US2024015209_14082025_PF_FP_ABST
Patent Text Reader

Abstract

In an example, a surface marking robot may print an offset symbol to a surface. The offset symbol may correspond to an element representing a site feature within a threshold distance of an obstacle. An obstacle may be detected using an obstacle detection system of a surface marking robot. An obstacle may be detected from a digital representation of a site.
Need to check novelty before this filing date? Find Prior Art

Description

SURFACE PRINTER AND OBSTACLE AVOIDANCEBACKGROUND

[0001] Surface printers, including surface marking robots, may be used to draw or print lines on a surface by depositing printing material while moving.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 marking printer according to an example;

[0004] FIGS. 2A-2F are views illustrating a surface marking robot according to an example;

[0005] FIG. 3 illustrates a conceptual drawing of a representation of elements and obstacles according to an example;

[0006] FIG. 4 illustrates a conceptual drawing of a representation of elements and obstacles according to an example;

[0007] FIG. 5 is a flowchart illustrating printing symbols according to an example;

[0008] FIG. 6 illustrates a symbol and a stencil according to an example;

[0009] FIG. 7 illustrates a symbol and a stencil according to an example;

[0010] FIG. 8 illustrates an offset location for a symbol according to an example;

[0011] FIGS. 9A-9B illustrate conceptual drawings of a representation of symbols and obstacles according to an example;

[0012] FIG. 10 is a flowchart illustrating detecting obstacles and printing symbols according to an example;

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

[0014] FIG. 12 is a block diagram illustrating an example fluid delivery apparatus according to an example; and

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

[0016] Surface marking printers may include, for example, autonomous vehicles which may be used for printing images such as lines and symbols on surfaces (i.e., a substrate) for applications such as construction and street marking. For example, an autonomous vehicle may be referred to as a surface marking robot and may receive a floorplan and print a layout for building construction on a floor. For example, a surface marking robot may print elements, such as, lines, text, dashed-lines, curved lines, circumferences, points, etc., which correspond to layouts of interior walls, mechanical, electrical, plumbing, fire protection, HVAC systems, and 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 marking robot may utilize an ink type which may be permanent or semipermanent and water-based or solvent based.

[0017] In a construction application, it may be useful to utilize different points, text, and line types during printing. For example, it may be useful to print a relatively wide line having a specific color for an exterior wall layout and print a relatively narrow line having another specific color for an interior layout. In another example, a circle of a particular radius, which may be an example of a point, having a specific color and / or text label may correspond to a point where a pipe is to go through a ceiling. That is, for example, a vertically pointing laser may be placed on the circle printed to the surface to indicate the location in the ceiling at which a hole for a pipe should be drilled.

[0018] Figure 1 is a block diagram of a surface printer according to an example. A surface printer may include a surface marking robot which may be self-propelled and apply a printing material on a surface. In some examples, a surface marking robot may be propelled with user assistance. In some examples, a surface marking robot comprises a motor, for example an electric motor, and asource of energy such as a battery. A surface marking robot may be propelled by friction, for example by a movement of wheels on the surface, or may be airlifted. Surfaces may include any of the example surfaces described above. For example, a surface may be a concrete, asphalt, or a wooden or a composite material surface. Further, in some examples, a surface may include field or turf. A surface may comprise holes or obstacles. A surface marking robot may apply a printing fluid, for example, ink, to the surface while avoiding obstacles.

[0019] In some examples, the surface marking robot is operated by a computer system comprising a processor and a memory. 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 112, sensors 114, user interface 116, calibration system 118, and communications system 120. It should be noted that 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, functions of 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.

[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 integratedor discrete logic circuitry. Processor 102 may include multi-core central processing units.

[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.

[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. In some examples, motion control system 106 may also comprise a processor to receive and execute instructions defining an intended path or trajectory for surface printer 100 to follow.

[0023] Position detection system 108 may enable a position of surface printer 100 to be detected. For example, position detection system 108 may receive a guiding system signal, which may be used to detect a position of surface printer100. For example, surface printer 100 may be guided using a remote guiding system. A guiding system may permit guiding the surface printer 100 from a reference point corresponding to the location of the guiding system. A guiding system may communicate guiding system position information with the surface printer 100 using electromagnetic waves or radiation. Guiding system position information may provide the location of the guiding system, such that the guiding system may be used as a reference point (or beacon) to calculate or estimate an absolute position of surface printer 100. Example guiding systems can include a Wi-Fi access point, an ultrasound beacon, a total station, a laser tracker or an interferometer. In some examples, a guiding system may be an optical guiding system. In this case, the communication between the guiding system and surface printer 100 may take place, for example, through visible or infrared light. For example, position detection system 108 may include a reflector to reflect a measuring beam to a source. In some examples, a guiding system may include a Global Navigation Satellite System (GNSS) receiver providing an absolute position of the guiding system.

[0024] Position detection system 108 may for example, 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 marking robot 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 a servo path to detect deviations. For example, accelerations in an axis other than that defined by the servo path can indicate that surface printer 100 is not following the defined servo path. In some examples, a determination that rotary encoders on the wheels are not increasing steadily can provide an indication that surface printer 100 has deviated from the defined path.

[0025] 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.

[0026] As described above, a surface marking robot may receive a floorplan and print a layout for building construction on a surface. 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 printjob 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.

[0027] Printing system 112 may cause printing material to be deposited. 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 a length of a printhead. Nozzles may include micro valves. For example, a printhead carriage may comprise a plurality of ink-jet 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. It should be noted that in other examples, printing system 112 may include a thermal or piezoelectric printhead. Further, it should be noted that ink is used herein as anexample, and in other examples, other printing fluids, such as, pre-printing (e.g., cleaning fluid) and post-printing agents (e.g. varnishes, glosses, undertreatments) may alternatively be deposited. Printing system 112 may cause printing material to be deposited according to settings. In some examples, a print 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.

[0028] 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 floorplan. A floorplan may include a two dimensional or three dimensional representation of a structure such as, for example, a building. In some examples, a floorplan comprises floorplan features corresponding to objects or characteristics, such as, for example, walls, windows, doors, staircases, elevator cases, sinks, types of finish, construction methods, materials, symbols for electrical, mechanical, plumbing, fire protection, HVAC systems, gas, or water supply features, etc. In some examples, a floorplan comprises features corresponding to traffic, parking or road surface marking, aimed at pedestrians or vehicles.

[0029] In one example, a digital data file may comprise digital data associated with a floorplan. 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 a DXF (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 sort an order in which graphical representation elements such as floorplan features may be printed, while avoidingobstacles 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.

[0030] 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).

[0031] As described above, in some examples, surface printer 100 may be guided using a remote guiding system. 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 track pad, 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, 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).

[0032] 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 further include image capturing sensors, for example, digital cameras. Calibration system 118 may provide calibration for a printing process. For example, calibration system 118 may cause settings of printing system 112 to be adjusted based on, for example, surface properties, print material properties, environmental conditions, and the like.

[0033] As described above, a surface printer may include a surface marking robot which includes a printing system to cause printing material to be deposited to a surface while the surface marking robot traverses an intended path. Figures 2A-2F are views illustrating a surface marking robot according to an example. It should be noted that Figures 2A-2F illustrate exterior views of an example surface marking robot 200 and elements illustrated in Figures 2A-2F may operate in conjunction with elements described above with respect to Figure 1. For example, in an example, surface marking robot 200 may include a processor, a memory and other systems illustrated in Figure 1 . As illustrated in Figures 2A- 2F, surface marking robot 200 includes drive wheels 202A-202B, caster wheel 204, user interface 206, reflector 208, printhead 210, LiDAR sensors 212A-212C, safety sensors 214A-214B, and position sensing camera 216. As described above, a surface printer may include a motion control system to propel the surface marking robot. Drive wheels 202A-202B are wheels driven by a motor and caster wheel 204 rotates such that surface marking robot 200 is able to move about a direction and speed. In one example, surface marking robot 200 may have a maximum navigation speed of 1 ,440m / h and a maximum printing speed of 900m / h. As described above, a surface printer may include basic manual controls and basic status indicators. User interface 206 provides a basic user interface forsurface marking robot 200. For example, user interface 206 may include an ON / OFF button and status indication lights.

[0034] As described above, a surface printer may include a position detection system including a reflector to reflect a measuring beam to a source. Reflector 208 may reflect a measuring beam to a source. In one example, reflector 208 includes a 360 degree prism. As described above, a surface printer may include sensors for use with a position detection system. LiDAR sensors 212A-212C and position sensing camera 216 may be used with a position detection system. As further described above, a surface printer may include sensors for collision avoidance and safety sensors. Safety sensors 214A-214B include sensors for detecting cliffs or ledges to prevent surface marking robot 200 from falling over a ledge during operation. In one example, if safety sensors 214A-214B indicate surface marking robot 200 is approaching a ledge, motion of surface marking robot 200 is ceased. Further, safety sensors 214A-214B may indicate that surface marking robot 200 is approaching an obstacle, (e.g., a wall).

[0035] 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 to deposit a printing material to a surface. As described above, a surface printer may print a line having a specified width. For example, in one example, printhead 210 may print lines having a specified width in the range of 1 mm to 56mm with an accuracy tolerance of 3mm. Further, as described above, surface marking robot 200 may have a maximum printing speed of 900m / h. In other examples, surface marking robot 200 may have a maximum printing speed of 1260- 1440m / h. It should be noted that the maximum printing speed of a surface marking robot may be set according to a setting and thus, may be increased or decreased throughout the lifetime of a surface marking robot.

[0036] As illustrated in Figure 2D, printhead 210 may be centered between drive wheels 202A-202B and the distance between the outside edge of drive wheels and the center of printhead 210 may be represented as distance di. In one example, the distance between the outside of drive wheel 202A and drive wheel 202B may be approximately 32cm and di may be approximately 16cm.Further, the distance between the center of printhead 210 and the front of drive wheels 202A-202B may be represented as distance d2. In one example, d2 may be approximately 12cm. Distances di and d2 represent clearance distances and correspond to minimum distances from an obstacle at which an element may be printed. For example, in the case where di is 16cm, printhead 210 has a printing swath width of 56mm, and an outside edge of one of drive wheels 202A-202B abuts a wall, the printhead swath is approximately 13.2cm to 18.8cm from the wall. In this case, surface marking robot 200 is limited from printing any closer than 13.2cm from the wall while traveling parallel to the wall. Similarly, d2 provides a clearance limitation for surface marking robot 200 while traveling perpendicular to a wall. It should be noted that the example dimensions provided for di , d2, and the printing swath width are for illustrative purposes and other implementations of a surface marking robot may have various clearances. Further, it should be noted that the dimensions provided above correspond to mechanical clearances and in some cases, a surface marking robot may have settings which provide clearances. For example, a surface marking robot may have a setting defining a clearance distance from the center (e.g., 20cm). The techniques described herein are generally applicable to surface marking robots having various clearances.

[0037] As described above, a surface marking robot may print elements, such as, lines, text, dashed-lines, curved lines, circumferences, points, etc., which correspond to layouts of interior walls, mechanical, electrical, plumbing, fire protection, HVAC systems, and the like. As described in further detail below, according to the techniques herein, if it is determined that an element is within a threshold distance of an obstacle (e.g., a line or circle to be printed is too close to a wall), a symbol (or symbols) may be determined for the element and an offset location for printing the symbol may be determined. The symbol may provide information such that a user is able to establish the actual location of the element at the site.

[0038] As described above, a digital data file may comprise digital data associated with a floorplan, for example, in a DXF (Drawing Exchange Format), DWG (DraWinG) or BIM (Building Information Modeling) format. Figure 3illustrates a conceptual drawing of a representation of elements and obstacles according to an example. The drawing in Figure 3 may correspond to a digital data file displayed on a computing device (e.g., a tablet). As illustrated in Figure 3, the drawing includes obstacles 300, which in this example may correspond to exterior walls and support columns of a building, and elements 302A-302B and elements 304A-304B. Although not illustrated in Figure 3, each of elements 302A-302B and elements 304A-304B may have a specific color and / or text label. In the example illustrated in Figure 3, elements 302A-302B are circles and may correspond to, for example, various electrical, mechanical, plumbing, fire protection, HVAC systems, gas, or water supply features, etc. For example, as described above, a circle may correspond to a point where a pipe is to go through a ceiling. In the example illustrated in Figure 3, elements 304A-304B are lines and may correspond to walls, a pipe layout, a wire layout, etc.

[0039] As illustrated in Figure 3, element 302A is distinguished from element 302B in that element 302A is represented as a solid line and element 302B is represented as a dashed line. Similarly, element 304A is represented as a solid line and element 304B is represented as a dashed line. In one example, elements represented as a solid line may correspond to elements that are selected for printing and elements represented as a dashed line may correspond to elements that are not selected for printing. For example, in a case where the drawing in Figure 3 corresponds to a digital data file displayed on a computing device, each of the elements may be selectable by a user for printing. For example, in a case where the drawing corresponds to a relatively large floorplan, a user may wish to print elements within a specific region during a specific print run. Further, in one example, a user may wish to print elements associated with a particular task to be completed, e.g., an internal wiring layout. In this manner, surface marking robot 200 may receive a set of elements to be printed and the set of elements may correspond to a user selected set of elements.

[0040] As further illustrated in Figure 3, each of 302A-302B and elements 304A-304B are located at various distances from obstacles 300. As described above, surface marking robot 200 has clearance distances which provide limitations as to how close surface marking robot 200 can print to an obstacle.Figure 4 further illustrates a conceptual drawing of a representation of elements and obstacles according to an example. In the example illustrated in Figure 4, elements P1-P4 are examples of elements selected for printing. It should be noted that Pi is illustrated as including descriptive text, although not shown, elements P2-P4 may also include descriptive text. In the example illustrated in Figure 4, clearance distances di and d2 are illustrated. In one example, clearance distances di and d2 may correspond to clearance distances described above with respect to i. It should be noted that in general, clearance distance di may correspond to a clearance distance for surface marking robot 200 traveling parallel to an obstacle and clearance distance d2 may correspond to a clearance distance for surface marking robot 200 traveling perpendicular to an obstacle. It should be noted that while a clearance distance for the perpendicular direction may be shorter than the clearance distance for the parallel direction, in other examples, a clearance distance for the parallel direction may be shorter than the clearance distance for the perpendicular direction. Further, in some cases, for example, in the case where an element is a line, although it may be possible to print the element while surface marking robot is traveling in a direction, it may not be practical.

[0041] As illustrated in Figure 4, element Pi is located outside the area defined by clearance distances di and d2 and each of elements P2-P4 are located within the area defined by clearance distances di and d2. Thus, in this example, surface marking robot 200 may have sufficient clearance to print element Pi and not have sufficient clearance to print each of elements P2-P4 at their current locations. According to the techniques herein, if it is determined that surface marking robot does not have sufficient clearance to print an element at a particular location, a symbol (or symbols) may be determined for the element and an offset location may be determined for the symbol and the symbol may be printed to a surface at the offset location.

[0042] Figure 5 is a flowchart illustrating printing symbols according to an example. It should be noted that process 500 may be utilized in preparation for a print job and / or during the process of initiating a print job. For example, in one example, the entirety, or aspects thereof, of process 500 may be performed by acomputing device in communication with a surface marking robot and the results of process 500, for example, information pertaining to symbols and offset location may be transmitted from the computing device to a surface marking robot. Further, in one example, surface marking robot 200 may receive a print job and complete the entirety, or aspects thereof, of process 500, prior to initiating printing.

[0043] Referring to Figure 5, at 502, a set of elements is received. For example, as described above, elements may include lines, text, dashed-lines, curved lines, circumferences, points, etc., which correspond to site features and a set of elements may correspond to a user selected set of elements. At 504, a determination is made whether an element is within a threshold distance of an obstacle. For example, as described above, a threshold distance may correspond to a surface marking robot clearance distance and / or a threshold distance may be based on whether it is possible or practical for surface marking robot 200 to print the element at a location. That is, for example, an obstacle may be identified and it may detect that an element is within a threshold distance of the obstacle. As illustrated in Figure 5, if it is determined that an element is not within a threshold distance of an obstacle, process 500 proceeds to 506 where the element is set to be printed. For example, as described above, with respect to Figure 4, in the case of element Pi, element Pi is not within a clearance distance from an obstacle and in this case, can be printed at the current location using the current element symbol. That is, in this case, there is no need to modify the location of element Pi for printing.

[0044] As illustrated in Figure 5, if it is determined that an element is within a threshold distance of an obstacle, process 500 proceeds to 508. That is, in this case, it is determined that it is not possible or practical to print the element at the current location. At 508, a determination is made as to whether the element should be printed as an offset symbol. In one example, the determination may be based on predefined rules or settings. For example, particular types of symbols may be set as being printed as offset symbols and particular types of symbols may be set as not being printed as offset symbols. Further, in one example, user input may be used to set the predefined rules or settings. It shouldbe noted that as described above, the entirety of process 500, or aspects thereof, may be performed by a computing device or surfacing marking robot 200. In one example, surface marking robot 200 may be in communication with a computing device and receive an indication whether an element is to be printed as an offset symbol.

[0045] As illustrated in Figure 5, if it is determined that an element is not to be printed with an offset symbol, process 500 proceeds to 510 where the element is discarded. That is, for example, the element is set as not to be printed during the print run. Further, in one example, the element may be added to a log of elements that were not successfully printed during the print run and a notification may be provided indicating elements which were not successfully printed.

[0046] As illustrated in Figure 5, if it is determined that an element is to be printed with an offset symbol, process 500 proceeds to 512 where the offset symbol type is determined. As described above, an element may correspond to a point where a pipe is to go through a ceiling and in this case, a vertically pointing laser may be placed at the location of the element to indicate the location in the ceiling at which a hole for a pipe should be drilled. In this case, the offset symbol type is determined such that the vertically pointing laser may be placed at the proper location. Further, as described above, an element may correspond to a line, in this case, the offset symbol type, which may include multiple symbols, is determined such that the line may be drawn on the floor. That is, an offset symbol is determined such that the function of the element may be properly realized. In some cases, the offset symbol type may allow the function to be realized with additional tools and / or user intervention. That is, for example, an element may be converted into an offset symbol.

[0047] Figure 6 illustrates a symbol and a stencil according to an example. That is, in the example illustrated in Figure 6, the symbol includes text identifying a corresponding stencil (i.e., Stencil #1 ) and an offset distance and has a shape which may be aligned with a stencil. As further illustrated in Figure 6, stencil 600 includes alignment portion 602, point tip 604, and attachment 606. Stencil 600 may be constructed of metal, plastic or other suitable materials. As illustrated in Figure 6, alignment portion 602 includes a cutout corresponding to the shape ofthe illustrated symbol such that the stencil can be aligned with the printed symbol. It should be noted that other shapes may be used to align a stencil with a symbol. In some cases, an element may correspond to a location where a hole is to be drilled into a flooring. Point tip 604 provides a tip for aligning, for example, a drill bit, such that a hole may be drilled at the appropriate location. As described above, in some cases, an element may correspond to the placement of a vertically pointing laser. Attachment 606 provides a structure for mounting a vertically pointing laser (or other tools in other examples) at the proper location. In this manner, stencil 600 enables the proper function of an element to be realized in conjunction with a symbol printed at an offset location.

[0048] As described above, in some cases, an element may include a line. Figure 7 illustrates symbols corresponding to a line according to an example. As illustrated in Figure 7, offset symbols associated with a line may include a line start point symbol and a line end point symbol. That is, for example, a line may be converted to a line start point symbol and a line end point symbol each of which indicate the respective start point and end point of the line. As illustrated in the example of Figure 7, stencil 700 includes alignment portion 702 which may be aligned with respective line start point and line end point symbols (note stencil 700 may be flipped over to be aligned with a reversed symbol) and used to align point tip 704 with each of the start and the end point of the line. As such a user may mark a surface, for example, by tracing point tip, at each of the start point and the end point and draw the corresponding line on the surface.

[0049] Referring again to Figure 5, at 514, offset symbol locations are determined. Determining an offset symbol location may include determining an offset location that provides sufficient clearance such that a symbol may be printed by surface marking robot 200 and determining an offset location such that a symbol does not interfere with another element or symbol. In one example, determining a location may include determining an offset distance and determining an offset angle. For example, as described above, an offset distance may correspond to a distance for sufficient printing clearance and / or an offset provided by a stencil corresponding to a symbol. In one example, an offset angle may be determined such that the symbol is not printed over another element orsymbol or is a minimum distance from another element or symbol. For example, Figure 8 illustrates an example where an element Pi is outside of a threshold distance of obstacle 300 and element P2 is within a threshold distance of obstacle 300. In this example, an offset distance for P2 may be determined based on an offset provided by the stencil corresponding to symbol P’2. However, as illustrated in Figure 8, if symbol P’2 is simply printed in the orthogonal direction (at angle 0°) from obstacle 300 at the offset distance, symbol P’2 will be printed on top of element Pi. Thus, as provided in the example illustrated in Figure 8, an angle may be determined such that symbol P’2 does not interfere with any other elements of symbols. In this manner, an offset location may be determined. That is, for example, an offset location may be calculated. It should be noted that in the case where an offset symbol includes multiple portions, for example, in the case of a line as described above, an offset location may be determined such that neither portion interferes with another element or symbol. Further, it should be noted that in some cases, there may not be a location where it is practical to print an offset symbol (e.g., there are several other elements in a location), in this case, as described above with respect to 510, the element may be discarded.

[0050] Referring again to Figure 5, at 516 a determination is made as to whether there are more elements in a set. For example, the example illustrated in Figure 4 includes elements P1-P4, as such, with respect to this example, 504- 514 may be repeated for each of elements P1-P4. As illustrated in Figure 5, upon determining that there are no more elements in the set, at 518 printing is initiated. Figures 9A-9B illustrate conceptual drawings of a representation of symbols and obstacles according to an example. Figures 9A-9B may represent results of printing elements P1-P4 illustrated in Figure 4 according to the techniques described with respect to Figure 5. It should be noted that Figure 9A includes various lines and text for illustrative purposes and Figure 9B provides elements and symbols appearing as printed. It should be noted that in Figures 9A-9B each of symbols P’2-P’4 are printed at a sufficient clearance from obstacle 300 and do not interfere with any other elements or symbols. Further, it should be noted that generic text “abc” and “xyz” represents descriptive information that may be provided with symbols, e.g., stencil identification or instructions. As describedabove, the entirety of process 500, or aspects thereof, may be completed by a computing device or surfacing marking robot 200. In one example, Figure 9A-9B may represent results of modifying a print job according to process 500, which may for example be presented to a user for approval. In this manner, a device performing process 500 receives a set of elements, determines an element is within a threshold distance of an obstacle, determines a symbol for the element, determines an offset location for the symbol, and initiates printing of the symbol at the offset location.

[0051] As described above, surfacing marking robot 200 includes collision avoidance sensors. In one example, according to the techniques herein, surface marking robot 200 and / or a computing device in communication sensor may detect an obstacle during performance of a print job and detect whether the printing of an element or symbol is impacted by the obstacle. For example, during a print job, an obstacle (e.g., a tool box) may be inadvertently placed at a site, such that surface marking robot 200 does not have sufficient clearance to print an element or a symbol. Further, in one example, a digital data file may not include all obstacles associated with a site. Figure 10 is a flowchart illustrating detecting obstacles and printing symbols according to an example. It should be noted that process 1000 may be utilized during the performance of a print job. In one example, the entirety, or aspects thereof, of process 1000 may be performed by surface marking robot 200. Further, in one example, aspects of process 1000 may be performed by surface marking robot 200 and aspects of process 1000 may be performed by a computing device in communication with surface marking robot 200. For example, surface marking robot 200 may detect an obstacle and communicate with a computing device to perform aspects of process 1000 and the computing may communicate the results to surface marking robot 200.

[0052] As illustrated in Figure 10, at 1002, printing is initiated. That is, for example, surface marking robot 200 may begin to travel about a site and deposit printing fluid, as described above. At 1004, a determination is made as to whether an obstacle is detected for an element or a symbol. Elements and symbols may include elements and symbols described above. Determining whether an obstacle is detected for an element or a symbol may include determining whetheran element or a symbol is within a threshold distance of the obstacle. That is, for example, surface marking robot 200 may utilize sensors to detect whether it is approaching an obstacle that will impact the printing of an element or symbol. This may be similar to determining whether an element is within a threshold distance of an obstacle as described above with respect to Figure 5. As illustrated in Figure 10, in the case that is it determined that an obstacle is not detected, surface marking robot 200 resumes printing at 1006. It should be noted that 1004 and 1006 may be performed without interruption to a printing process.

[0053] As illustrated in Figure 10, in the case that is it determined that an obstacle is detected, surface marking robot 200 pauses printing at 1008. In one example, pausing printing may include surface marking robot 200 stopping and ceasing to deposit printing fluid. In the example illustrated in Figure 10, at 1010 surface marking robot 200 notifies a user. That is, for example, surface marking robot 200 may provide an audible or visual warning either through a user interface or provide communication to a computing device, such that the computing device may provide the warning to a user. It should be noted that in some examples, 1010 may be enabled or disabled. For example, in a case where a user is at a site and a detected obstacle is likely to an obstacle that can easily be removed by a user, the user may wish to simply move the obstacle and cause surface marking robot to resume printing upon the obstacle being moved. However, in a case where the user is offsite and / or a detected obstacle is not likely an obstacle that can be easily moved, the user may wish for surface marking robot 200 to resolve the issue without any or significant intervention. Further, in some cases, a user may enable settings such that a notification should be provided for some elements and symbols, but not for others. In one example, user input may be used to set the predefined rules or settings for whether a user is notified.

[0054] As illustrated in Figure 10, at 1012, a determination is made as to whether instructions to resume printing are received. That is, for example, in a case where a user receives a notification and is able to remove the obstacle, the user may provide a communication to surface marking robot 200 to resume printing and in this case surface marking robot 200 resumes printing at 1006. If an instruction to resume is not received, process 1000 proceeds to 1014. Itshould be noted that not receiving an instruction to resume may correspond to an example where a user notification is not provided or an example where a user notification is provided, but a resume instruction is not provided within a sufficient time period. Further, in one example, a user may receive a notification and verify that the obstacle cannot be removed and provide an indication for process 1000 to proceed to 1014.

[0055] At 1014, a determination is made as to whether the printing of the element or symbol within the threshold distance of the detected obstacle should be printed with an offset symbol. As illustrated in Figure 10, if it is determined that the printing issue associated with the detected obstacle should not be resolved with an offset symbol, at 1018, the symbol or element is discarded. This may be similar to discarding an element, as described above with respect to Figure 5. That is, for example, the element or symbol is set as not to be printed during the print run and in one example, the element or symbol may be added to a log of elements and symbols that were not successfully printed. Further, similar to that described above, whether a printing issue with an element or symbol is to be resolved with an offset symbol may be based on rules or settings.

[0056] As illustrated in Figure 10, if it is determined that the printing issue associated with the detected obstacle should be resolved with an offset symbol, at 1016, an offset symbol is set. In one example, setting an offset symbol may include determining an offset symbol type and determining offset and symbol location, as described above with respect to process 500. In one example, setting an offset symbol may additionally include distinguishing (for example, based on color and / or text) offset symbols that were set in preparation for a print job or set during the print job. For example, if an obstacle appears on a digital data file, it may be easier for a user to verify the obstacle (e.g., a pillar) that caused the element to be printed as an offset symbol. However, if an obstacle does not appear on a digital data file and / or is moved after an offset symbol is printed, it may be difficult for the user to discern why a particular offset symbol was printed at a particular location, in this case, the offset symbol itself, e.g., text, shape or color, may provide additional information. In this manner, a device performing process 1000 determines an element to be printed is within a threshold distanceof an obstacle, determines an offset location and symbol for the element, and prints the symbol at the offset location.

[0057] Figure 11 illustrates a block diagram of an example computer program product 1100. In some examples, as shown in Figure 11 , computer program product 1100 includes a machine-readable storage 1102 that may also include computer readable instructions 1104. In some implementations, the machine- readable storage 1102 may be implemented as a non-transitory machine- readable storage. In an example, the computer readable instructions 1104, may be executed by a processor 1106, implement aspects of process 500 (Figure 5) and / or process 1000 (Figure 10), described above. That is, printing pipeline logic illustrated Figure 11 may include aspects of process 500 (Figure 5) and / or process 1000 (Figure 10).

[0058] Figure 12 is a block diagram illustrating a hardware apparatus including a semiconductor package according to an example. Figure 12 shows an illustrative example of a printer 1200. In the illustrated example, the printer 1200 may include a processor 1202 and a memory 1204 communicatively coupled to the processor 1202. The memory 1204 may include computer readable instructions 1206. In an example, the computer readable instructions 1206, may be executed by the processor 1202, implement aspects of process 500 (Figure 5) and / or process 1000 (Figure 10), described above. That is, printing pipeline logic illustrated in Figure 12 may include aspects of process 500 (Figure 5) and / or process 1000 (Figure 10).

[0059] In some implementations, the processor 1202 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, and the processor 1202 described herein may be used to support such virtual processing.

[0060] In some examples, memory 1204 is an example of a computer- readable storage medium. For example, memory 1204 may be any memory which is accessible to the processor 1202, 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.

[0061] Figure 13 shows an illustrative semiconductor apparatus 1300 (e.g., chip and / or package). The illustrated apparatus 1300 includes substrates 1302 (e.g., silicon, sapphire, or gallium arsenide) and computer readable instructions 1304 (such as, configurable computer readable instructions) and / or fixed- functionality computer readable instructions (e.g., hardware)) coupled to the substrate(s) 1302. In an example, the computer readable instructions 1304 implement aspects of process 500 (Figure 5) and / or process 1000 (Figure 10). That is, printing pipeline logic illustrated in Figure. 13 may include aspects of process 500 (Figure 5) and / or process 1000 (Figure 10).

[0062] In some implementations, computer readable instructions 1304 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 1304 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.

[0063] 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.

[0064] 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.

[0065] 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

CLAIMSWhat is claimed is:1 . A method of operating a surface marking robot, comprising: receiving a set of elements; determining an element is within a threshold distance of an obstacle; determining a symbol for the element; determining an offset location for the symbol; and initiating printing of the symbol at the offset location.

2. The method according to claim 1 , wherein receiving a set of elements includes receiving a digital representation of a site.

3. The method according to claim 1 , wherein the threshold distance is based on a clearance of the surface marking robot.

4. The method according to claim 1 , wherein the symbol corresponds to a stencil.

5. The method according to claim 1 , wherein the element corresponds to a site feature and determining the symbol includes determining the symbol based on the site feature.

6. The method according to claim 1 , further comprising providing an indication that the element is within the threshold distance of the obstacle.

7. The method according to claim 6, wherein determining a symbol for the element and determining an offset location for the symbol are in response to receiving an indication the element is to be printed as an offset symbol.

8. The method according to claim 1 , wherein determining an offset location for the symbol includes determining the offset location based on a location of another element.

9. A surface marking robot comprising: a controller; a printing system; and an object detection system, wherein the controller: determines an element to be printed is within a threshold distance of an obstacle; determines an offset location and symbol for the element; and prints the symbol at the offset location.

10. The surface marking robot of claim 9, wherein the element corresponds to a site feature and the symbol corresponds to a stencil.11 . The surface marking robot of claim 9, wherein the controller further provides a notification that the element to be printed is within the threshold distance of the obstacle.

12. The surface marking robot of claim 9, wherein the controller further pauses printing upon determining that the element to be printed is within the threshold distance of the obstacle.

13. The surface marking robot of claim 12, wherein the controller further resumes printing upon receiving instructions to resume.

14. A non-transitory machine-readable storage medium comprising instructions stored thereon, wherein the instructions are executable by a processor of a controller of a print apparatus of a surface marking robot and include instructions to:receive a digital representation of a site including an element and an obstacle; detect the element is within a threshold distance of the obstacle; convert the element to an offset symbol; calculate an offset location for the offset symbol; and generate printing instructions based on the offset symbol being printed at the offset location.

15. The non-transitory machine-readable storage medium of claim 14, wherein the element is a line and the offset symbol includes a line start point symbol and a line end point symbol.

Citation Information

Patent Citations

  • Marking robot system and control method thereof

    JP2023147127A

  • Mobile printing robot system, apparatus, and method to automatically print construction trade information for printed layout lines

    US20220091581A1

  • Marking apparatus, control method for marking apparatus, and storage medium

    US20230098171A1

  • Mobile printing robot and printing methods with line printing pathway optimization

    WO2020219728A1