Route map creation system
By receiving the coordinates of the structure and the input point at the site, the processor generates the roadmap, which solves the problem of the existing technology that is difficult to determine the road section of the construction site, and achieves the effect of safe transporting materials on the construction site.
Patent Information
- Application Number
- CN202380043462.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-08
- Filing Date
- 2023-05-23
- Publication Date
- 2025-01-24
AI Technical Summary
It is difficult to determine a set of route segments at a construction site, any of which can be navigated by the machine at a later time to reach the assigned destination at the construction site.
By receiving the coordinates of the structure and the coordinates of the drop point, the processor identifies the drop point located between the pair of structures, determines the midpoint, and generates a route map including the coordinates of the points on the indicated route segments and additional route segments and on the pairs. Paths between structures.
A roadmap that can be generated on the construction site that can be traversed by the machine to ensure that the machine can safely transport the material to the launching point on the construction site, while avoiding the structure and the inability to drive.
Smart Images

Figure CN119365876A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to generating routes that a machine can use to reach a drop point at a worksite, and more particularly, to generating a route map based on input data that identifies the location of the drop point and the locations of structures on the worksite that may be close to the drop point. Background Art
[0002] Performing work on a worksite may involve one or more machines that travel around the worksite to perform tasks, such as delivering materials to various locations at the worksite. Such machines may be autonomous machines that travel and / or perform tasks automatically. For example, an autonomous machine may be assigned to deliver solar panels to a drop point at a solar farm under construction so that the solar panels can be installed, or to deliver other types of materials to drop points at other types of worksites.
[0003] Various systems have been developed to determine routes for autonomous machines. For example, U.S. Pat. No. 11,079,755 to Schlacks et al. (hereinafter referred to as "Schlacks") describes a system that allows a user to define, on a worksite map, the boundaries of an autonomous operating area in which a machine is to operate and the boundaries of an exclusion zone that the machine is to avoid. In the system described by Schlacks, a robotic processing unit can use the user-provided boundaries to generate a path for the machine to follow to perform a task within the autonomous operating area without crossing the autonomous operating area into the user-defined exclusion zone.
[0004] However, Schlacks and other systems typically use computing elements onboard or offboard the machine to determine the exact route the machine will travel from a starting point to a destination. Such systems may use vision systems and / or other computing elements to enable the machine to navigate a specific assigned route in real time. However, such systems do not determine a set of route segments at a worksite, any of which may be navigated by the machine at a later time to reach the assigned destination at the worksite.
[0005] Therefore, there is a need to overcome one or more of the above-mentioned deficiencies. Summary of the invention
[0006] According to a first aspect, a method includes receiving, by a processor, job design data indicating first coordinates of a structure at a worksite and placement point location data indicating second coordinates of a placement point at the worksite. The method also includes identifying, by the processor, a placement point located between paired structures based on the job design data and the placement point location data. The method further includes determining, by the processor, a midpoint between the ends of the paired structures. The method further includes determining, by the processor, a route segment extending between the paired structures through the midpoint to an extended endpoint located at a position extending a distance from the ends of the paired structures. The method also includes determining, by the processor, an additional route segment extending between the extended endpoints of the route segment. The method further includes generating, by the processor, a route map. The route map includes nodes indicating third coordinates of points on the route segment and the additional route segment and edges indicating paths between paired third coordinates that can be traversed by a machine at the worksite.
[0007] According to a second aspect, a computing system includes a processor and a memory storing computer executable instructions. When the computer executable instructions are executed by the processor, the processor receives operation design data indicating a first coordinate of a structure at a construction site and a drop point location data indicating a second coordinate of a drop point at the construction site. The computer executable instructions also cause the processor to identify a drop point located between paired structures based on the operation design data and the drop point location data, and determine a midpoint between the ends of the paired structures. The computer executable instructions additionally cause the processor to determine a route segment that extends between the paired structures through the midpoint to an extended endpoint located at a position extending a distance from the ends of the paired structures. The computer executable instructions further cause the processor to determine an additional route segment extending between the extended endpoints of the route segment. The computer executable instructions also cause the processor to generate a route map, the route map including nodes indicating third coordinates of points on the route segment and the additional route segment and edges indicating paths between paired third coordinates that can be traversed by a machine at the construction site.
[0008] According to a third aspect, a non-transitory computer-readable medium stores computer-executable instructions. When the computer-executable instructions are executed by a processor, the processor receives job design data indicating first coordinates of a structure at a worksite and drop point location data indicating second coordinates of a drop point at the worksite. For a separate drop point in the drop points, the computer-executable instructions further cause the processor to determine the coordinates of the separate drop point indicated by the drop point location data. The computer-executable instructions also cause the processor to determine, for the separate drop point, a pair of structures associated with a corresponding group of first coordinates of the coordinates closest to the separate drop point. The computer-executable instructions additionally cause the processor to identify, for the separate drop point, points at the ends of the paired structures based on the first coordinates in the job design data, and determine a midpoint between the points at the ends of the paired structures. The computer-executable instructions further cause the processor to determine, for the separate drop point, a route segment extending between the paired structures through the midpoint to an extension endpoint located at an extension distance from the ends of the paired structures. The computer-executable instructions also cause the processor to determine an additional route segment extending between the extension endpoints of the route segment. The computer executable instructions additionally cause the processor to generate a route map defining the route segments and the additional route segments. The route map indicates that the route segments and the additional route segments are paths that can be traversed by a machine at the worksite. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The detailed description is described with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The same reference numbers in different drawings indicate similar or identical items.
[0010] Figure 1 An example of a computing system configured to generate a roadmap defining route segments that may be traversed by a machine at a worksite is shown.
[0011] Figure 2 An example is shown in which a roadmap creator executing on a computing system determines at least one drop point located between a pair of structures.
[0012] Figure 3 An example is shown in which the roadmap creator identifies the corner points of the pair of structures that are closest to the selected drop point.
[0013] Figure 4 An example is shown in which the route map creator extends the end of the generated route segment by an extension distance to an extension endpoint.
[0014] Figure 5 Examples are shown in which a route map creator adjusts a route segment based on determining that a no-drivable area intersects the route segment.
[0015] Figure 6A flow chart illustrating an example process for generating a roadmap is shown.
[0016] Figure 7 An example system architecture for a computing system is shown. DETAILED DESCRIPTION
[0017] Figure 1 An example 100 of a computing system 102 is shown that is configured to generate a route map 104 that defines route segments 106 that can be traversed by machines 108 at a worksite 110. During operations at the worksite 110, a fleet of one or more machines 108 can be configured to deliver materials to a set of drop points 112 at the worksite 110. For example, the worksite 110 can be a solar farm under construction. The drop points 112 can be locations where machines 108 at the worksite 110, such as autonomous compact track loaders (CTLs), are to deliver solar panels, solar panel mounting equipment, and / or other materials. Individual drop points 112 can be located near structures 114 present at the worksite 110. For example, the structures 114 can be mounting assemblies, such as assemblies including torque tubes, H-beams, and / or other elements, on which solar panels or other materials can be mounted or otherwise installed. Thus, computing system 102 may generate route map 104 to define route segment 106 that machine 108 may traverse to reach and deliver material at drop point 112 without machine 108 striking or colliding with structure 114 that may already be present at worksite 110 .
[0018] The roadmap 104 may be a data structure including representations of nodes and edges associated with the route segments 106. The nodes may correspond to locations associated with the route segments 106, such as locations at endpoints of the route segments 106, locations at midpoints of the route segments 106, locations at intersections or joins between route segments 106, and / or other locations associated with the route segments 106. For example, the data representing a particular node in the roadmap 104 may indicate global positioning system (GPS) coordinates, coordinates associated with a location or a designated reference marker on the worksite 110, or other types of location data indicating the location of a node at the worksite 110. An edge may connect a pair of nodes in the roadmap 104 to indicate a traversable route segment extending between the pair of nodes. Thus, edges in route graph 104 may represent route segments 106, and nodes in route graph 104 may represent endpoints of route segments 106, midpoints of route segments 106, intersections between route segments 106, joins between route segments 106, and / or other points on or along route segments 106.
[0019] Worksite 110 may be a construction site, a mine, a quarry, or any other type of worksite or work environment where materials may be transported to defined drop points 112. Machines 108 at worksite 110 may be CTLs, skid steer loaders, track loaders, haul trucks, wheel loaders, or any other type of machine that may transport materials from one location to another at worksite 110. Materials may be solar panels, construction materials, dirt, gravel, and / or any other type of material to be transported to drop point 112 at worksite 110.
[0020] The machine 108 may be a vehicle or other mobile machine having an engine, motor, transmission system, brake system, hydraulic components, and / or other mechanism that can move the wheels of the machine, move the work tool and / or other elements of the machine, and / or otherwise enable the operation of the machine. In some examples, one or more of the machines 108 may be a fuel-driven machine that operates based on power provided by an internal combustion engine and / or other fuel-consuming elements. In other examples, one or more of the machines 108 may be a battery electric machine (BEM), a battery electric vehicle (BEV), a hybrid vehicle, a fuel cell and a battery hybrid vehicle, or other mobile machines. For example, the machine 108 may have a battery, such as a lithium-ion (Li-ion) battery, a lithium-ion polymer battery, a nickel metal hydride (NiMH) battery, a lead-acid battery, a nickel-cadmium (Ni-Cd) battery, a zinc-air battery, a sodium-nickel chloride battery, or other types of batteries that can at least partially power the machine 108.
[0021] The machine 108 may be a semi-autonomous machine or a fully autonomous machine that operates automatically based on the roadmap 104 and / or other machine instructions generated by the computing system 102 or other computing systems. For example, the machine may have an electronic control module (ECM) 116 and / or other onboard computing device that may fully or partially control the operation of the machine (such as steering, speed adjustment, work tool movement, and / or other operations). Thus, the operation of the machine may be fully or partially controlled automatically or semi-automatically by an onboard controller (such as the ECM 116) and / or an off-board controller (such as the computing system 102). For example, the machine may have an onboard guidance system that may autonomously drive the machine, an auxiliary onboard guidance system, or an obstacle detection system that may alert a human operator to nearby objects detected by the obstacle detection system, and / or other systems that fully or partially control the operation of the machine.
[0022] In some examples, computing system 102 or another off-board computing device may use route map 104 to select a route segment 106 defined by route map 104 that should be traversed by an individual machine 108 to deliver material to a particular drop point 112. Computing system 102 or other off-board computing device may generate machine instructions for an ECM or other on-board computing device of machine 108 that causes machine 108 to autonomously travel along the selected route segment 106 toward and away from the particular drop point 112. For example, computing system 102 may generate machine instructions that instruct the machine to travel through a series of locations represented by a selected set of nodes of route map 104, make turns at locations associated with specified nodes of route map 104, and drop material at coordinates associated with a particular drop point.
[0023] In other examples, the computing system 102 or other off-board computing device may provide the route map 104 to the machine 108 and provide other machine instructions that assign the individual machine 108 to deliver the material to a specifically designated drop point 112. Thus, the ECM or other on-board computing device of the machine 108 may use the route map 104 to determine which route segments 106 to autonomously traverse to reach the drop point 112 assigned to the machine 108.
[0024] The machine 108 may also include sensors 118, such as cameras, LIDAR sensors, RADAR sensors, other optical sensors or perception systems, GPS sensors, other position and / or positioning sensors, work tool position sensors, hydraulic pressure sensors, payload sensors, speed sensors, brake temperature sensors, other temperature sensors, tire pressure sensors, battery health status (SoH) sensors, fuel sensors, tilt and drop travel sensors, and / or other types of sensors. Such sensors 118 of the machine may be operably coupled to the ECM 116 and / or other onboard computing systems of the machine. The sensors 118 may also provide corresponding sensor data to the ECM 116 and / or other onboard computing systems and / or non-onboard computing systems (such as computing system 102) of the machine, so that the sensor data can be used to determine the location of the machine, detect nearby terrain, detect nearby objects (such as vehicles, other machines or personnel), detect the location of such nearby objects relative to the machine, determine the weight of the payload carried by the machine, determine the state of charge (SoC) of the battery system, determine the amount of fuel carried by the machine, and / or perform other operations. In some examples, data provided by the machine's sensors may enable the machine's ECM 116 to enable the machine to autonomously or semi-autonomously travel and / or operate, for example, traversing one or more route segments 106 defined by the route map 104 .
[0025] The machines 108 may thus operate autonomously or semi-autonomously based on the route map 104 and / or corresponding machine instructions. For example, the machine instructions for a particular machine may indicate that the machine will load materials at a staging area 120 at a worksite 110, to which drop points 112 the machine will deliver materials, which route segments 106 the machine will traverse while loaded or unloaded, when the machine will traverse such route segments 106, which nodes of the route map 104 represent locations where the machine will turn or perform another type of operation, and / or other scheduling or route information. The machine instructions for a machine may also indicate instructions associated with machine operations that the machine will perform at locations at the worksite 110 (such as specific loading or unloading operations) or the speed at which the machine will travel when traversing certain route segments 106.
[0026] The machine 108 may have a wireless communication interface 122 that is operably coupled to the ECM of the machine 108 and allows the ECM of the machine 108 to send data to and receive route maps 104, machine instructions, and / or other data from the computing system 102 and / or other off-board controllers. Such wireless communication interface 122 may include a cellular interface, a modem, a receiver, a transmitter, an antenna, and / or other hardware or software elements configured to send and receive data (e.g., to exchange data with the computing system 102 and / or other off-board controllers). The computing system 102 and / or other off-board controllers may have or be associated with a similar wireless communication interface so that the computing system 102 and / or other off-board controllers may wirelessly exchange data with the ECM of the machine 108 and / or other on-board computing systems.
[0027] Computing system 102 may be one or more servers, computers, or other off-board computing devices that are separate from machine 108. For example, while machine 108 may be located at worksite 110, computing system 102 may be located in a back office or other location remote from machine 108 at worksite 110 or remote from worksite 110 as a whole. Computing system 102 may be configured to generate route map 104 by determining locations on the worksite associated with route segments 106 that avoid structures 114 present at worksite 110, and generating nodes and edges of route map 104 representing route segments 106. As discussed further below, Figure 7 An example system architecture for computing system 102 is described.
[0028] like Figure 1 As shown, the structure 114 at the worksite 110 can be generally straight and can be oriented along a corresponding line. For example, the structure can be associated with a polygonal shape, such as an elongated rectangular shape oriented along a line. In some examples, such as Figure 1As shown, two or more structures 114 may be parallel to each other.
[0029] For example, as discussed above, the structure can be a mounting assembly for a solar farm. Such a mounting assembly can include a series of support elements, such as H-beams, pedestals, columns, or other elements, extending generally vertically from the ground of the worksite 110. The mounting assembly can also include a torque tube or other element that extends generally horizontally from the top of the H-beam or other support element and / or between them, so that the torque tube or other element is raised above the ground of the worksite 110 and extends generally along the line associated with the mounting assembly. A series of solar panels can thus be mounted along the torque tube or other element of the mounting assembly, so that the solar panels can be mounted above the ground of the worksite 110 along the mounting assembly.
[0030] One or more drop points 112 may be located between a particular pair of structures 114. For example, a drop point for a solar panel may be located between two mounting assemblies such that the solar panel may be transported to the drop point by one or more machines 108 and may then be installed on and along the two mounting assemblies on opposite sides of the drop point. As described herein, computing system 102 may generate route map 104 such that route segment 106 extends between the pair of structures 114, and machines 108 may traverse route segment 106 to reach drop point 112 located between structures 114.
[0031] In some examples, structures 114 at worksite 110 may be arranged or grouped into blocks. As a non-limiting example, one block may include a first group of structures 114 while another block may include a second group of structures 114. Figure 1 The structure 114 shown in FIG. 1 may be part of one section of the structure 114 at worksite 110, and there may be one or more other sections (not shown) of the structure 114 at other locations at worksite 110. Computing system 102 may independently generate different route maps associated with different structures 114 at worksite 110, or may generate a route map that defines connected route segments 106 through multiple sections of the structure 114 at worksite 110.
[0032] Computing system 102 may receive input associated with worksite 110, drop point 112, and / or structure 114. For example, Figure 1 As shown, computing system 102 may receive job design data 124 , design element identifiers 126 , and / or drop point location data 128 .
[0033] Job design data 124 may be a construction design file indicating GPS coordinates and / or other location data associated with structure 114 and / or other design elements at worksite 110. For example, if worksite 110 is a solar farm construction site, job design data 124 may identify GPS coordinates of H-beams, torque tubes, and / or other elements of structure 114 located at worksite 110.
[0034] For a particular structure, the job design data 124 may indicate GPS coordinates or other location data that define the boundaries and / or orientation of the particular structure. As an example, if the particular structure has Figure 1 If the structure is an elongated rectangular shape as shown, the job design data 124 may include GPS coordinates that extend along and / or inside the boundaries of the elongated rectangular shape such that the GPS coordinates associated with a particular structure indicate the overall shape and / or orientation of the particular structure on the worksite 110.
[0035] In some examples, the work design data 124 may be a construction design file that is prepared in advance by a designer or other entity to indicate the location of the structure 114 and / or other design elements at the worksite 110. For example, if the worksite 110 is a solar farm, the construction design file may have been created during the planning of the layout and / or design of the structure 114, solar panels, or other elements at the solar farm, or after such layout and / or design is completed. Such a construction design file prepared in advance may be provided to the computing system 102 so that the computing system 102 may use the construction design file to automatically generate the route segment 106 that avoids the location of the structure 114 indicated by the construction design file.
[0036] The design element identifier 126 may indicate the name, block reference identifier, and / or other identifier of a particular design element at the worksite 110. In some examples, although the job design data 124 may indicate GPS coordinates or other location data associated with the structure 114 and / or other design elements, the job design data 124 may not directly indicate which of these GPS coordinates or location data instances are associated with which structures 114 or other design elements and / or which blocks of the structure 114. However, the design element identifier 126 may be provided as a separate file that indicates unique identifiers for different structures or other design elements. Thus, the computing system may use the design element identifier 126 and the job design data 124 to determine which GPS coordinates or location data instances are associated with corresponding structures 114 with different identifiers, and / or with different blocks of the structure 114. In some examples, although the job design data 124 and the design element identifier 126 may be provided as separate files, in other examples, the job design data 124 and the design element identifier 126 may be indicated by the same file.
[0037] The drop point location data 128 may indicate GPS coordinates or other location data defining the location of the drop point 112 at the worksite 110. The drop point location data 128 may be a spreadsheet, a comma separated value (CSV) file, or any other data indicating the location of the drop point 112. The drop point location data 128 may be provided to the computing system 102 separately from the job design data 124 and / or the design element identifier 126. For example, while the job design data 124 may indicate GPS coordinates or other location data associated with a design element such as the structure 114, the job design data 124 may lack information regarding the location of the drop point 112, and the location of the drop point 112 may be indicated in the separate drop point location data 128.
[0038] As a non-limiting example, operational design data 124 may indicate the locations of structures 114, such as solar farm mounting components, because these structures 114 will be final components of the solar farm under construction. However, drop points 112 are not intended to be final components of the solar farm, but rather are locations where solar panels are temporarily placed before they are installed on structures 114. Therefore, while operational design data 124 may indicate the locations of structures 114 and / or other design elements of the solar farm, the locations of temporary drop points 112 may be indicated by separate drop point location data 128.
[0039] In some examples, inputs such as job design data 124, design element identifiers 126, or other inputs may identify the location of a no-drive area at worksite 110. The no-drive area may be a ditch, hill, power line, obstacle, or other element that machine 108 should not drive across. For example, Figure 1 A no-drivable area 130 is shown extending through a portion of worksite 110. No-drivable area 130 may be associated with power lines extending across the ground of worksite 110, for example, to transmit energy from solar panels installed at worksite 110 and / or to provide energy to motors or other elements configured to adjust the orientation of such installed solar panels. To protect the power lines, the area around the power lines may be designated as no-drivable area 130. As described herein, computing system 102 may be configured to generate route map 104 to include route segments 106 that do not enter or cross the no-drivable area, such that route map 104 does not indicate the presence of a path that enters or crosses the no-drivable area that can be traversed by machine 108.
[0040] The computing system 102 may have an object identifier 132 configured to use one or more types of input to identify discrete objects at the worksite 110, such as individual structures 114 and non-drivable areas, and / or determine the location, shape, and / or orientation of such discrete objects. If the job design data 124 does not directly indicate which GPS coordinates included in the job design data 124 are associated with which objects, as described above, the object identifier 132 may use the design element identifier 126 to determine which groups of GPS coordinates indicated in the job design data 124 are associated with which objects.
[0041] The computing system 102 may also have a roadmap creator 134 configured to generate a roadmap 104 based on the location, shape, and / or orientation of objects at the worksite 110 determined by the object identifier 132 and the location of the drop point 112 indicated by the drop point location data 128. The roadmap creator 134 may generate the roadmap 104 to include route segments 106 that pass through or through the drop point 112 and that do not pass through objects such as structures 114 and no-drivable areas.
[0042] The route map creator 134 may generate separate route segments 106 that extend between the paired structures 114 and pass through or through one or more drop points 112. The route map creator 134 may extend the length of these route segments 106 beyond the ends of the structures 114 by at least an extension distance 136. The route map creator 134 may also create additional route segments 106 that connect the extended endpoints of the route segments 106 that pass between the paired structures 114. If any of the generated route segments 106 intersect a non-drivable area, the route map creator 134 may divide the route segments 106 and leave gaps around the non-drivable area so that the remaining route segments 106 avoid crossing the non-drivable area.
[0043] Extension distance 136 may be a predetermined distance, a distance associated with a turning radius of one or more machines 108, a distance associated with a width and / or length of machine 108, a distance from a neighboring block of structure 114, and / or any other distance. As a first example, extension distance 136 may be equal to or greater than a turning radius of machine 108 such that machine 108 has enough room to travel through a route segment between a pair of structures 114, pass beyond the ends of structures 114, turn at an endpoint of a route segment that has been extended past the ends of the pair of structures by extension distance 136, and travel past the ends of one or more structures 114.
[0044] As a second example, the job design data 124 and / or the design element identifier 126 may indicate Figure 1 The eight structures 114 shown in FIG. 1 are the first block of structures 114, but also indicate the existence of structures 114 from the distance on the worksite 110. Figure 1 The block of structure 114 shown in FIG. 10 starts at another block of structure 114. Therefore, in Figure 1 There may be a ten-meter gap between the end of the structure shown and the end of another structure in an adjacent block (not shown) that the machine 108 can traverse. In this example, the route map creator 134 may determine that the extension distance 136 may be set to a distance of up to five meters halfway between the block of structures 114 and the adjacent block of structures 114. Thus, in this example, the route segment 106 passing between the paired structures 114 may be extended up to five meters beyond the ends of those structures 114, and the endpoints of the extended route segment 106 may be connected so that the machine 108 can traverse the route segment 106 passing between the larger block of structures 114 beyond the ends of the structures 114.
[0045] As discussed above, the route map 104 can be expressed using nodes and edges. A node can indicate the GPS coordinates or other location data of the location of the endpoint of a straight route segment 106, such as a location where a route segment 106 terminates or joins with a connecting route segment 106. The edges connecting such nodes in the route map 104 can indicate that the path between the locations represented by the nodes can be traversed by the machine 108. In some examples, in order to divide the route segment to avoid crossing the non-drivable area, the route map creator 134 can define a new node on the route segment that is at least a threshold distance away from the non-drivable area. Such a new node can be a new endpoint for the divided route segment. The route map creator 134 can avoid the connection of the new node with the edge so that the route map 104 does not indicate that the path between these nodes that will cross the non-drivable area can be traversed.
[0046] The roadmap creator 134 may also generate a staging area connection 138 in the roadmap 104 that connects the staging area 120 with the route segments 106 of the roadmap 104. In some examples, the roadmap creator 134 may initially create the roadmap 104 without information indicating the location of the staging area 120. However, once the staging area 120 has been defined, such as after an over-the-road truck delivers boxes of solar panels to an undetermined location at the worksite 110, user input or other data indicating the location and / or boundaries of the staging area 120 may be provided to the roadmap creator 134. Such user input or other data may also indicate GPS coordinates or other location data associated with a path extending between the staging area 120 and at least one route segment of the roadmap 104. Thus, the nodes and edges associated with the path may be added to the roadmap 104 as staging area connections 138 so that the machine 108 may traverse the staging area connections 138 when traveling to or from the staging area 120.
[0047] As discussed above, the roadmap creator 134 can generate the roadmap 104 to include route segments 106 that pass between the pairs of structures 114 so that the machine 108 can travel to the drop point 112 between the pairs of structures 114. The roadmap 104 can define the locations of the route segments 106 and intersections between the route segments 106 that can be traversed by the machine 108 at the worksite 110. In some examples, the roadmap 104 itself may not indicate the locations of the drop points 112. However, as discussed above, if the machine is assigned to travel to a particular drop point, the roadmap 104 can indicate coordinates or other position data for the route segments 106 that the machine can traverse during travel to and / or away from the assigned drop point. As discussed further below, Figures 2 to 51 shows an example of steps that the route map creator 134 may take to generate one or more route segments 106 associated with a particular pair of structures 114 (including the structure 114-1 and the structure 114-2). Figure 6 An example process for generating roadmap 104 using computing system 102 is shown.
[0048] Figure 2 An example 200 is shown in which the roadmap creator 134 determines that at least one drop point (drop point 112-1) is located between the pair of structures 114 including structure 114-1 and structure 114-2. In some examples, the roadmap creator 134 may be configured to select a particular drop point (such as drop point 112-1) from a set of drop points indicated by the drop point location data 128, and then use the job design data 124 and / or the design element identifier 126 to identify the two structures 114 closest to the selected drop point. Thus, in these examples, the roadmap creator 134 may identify the pair of structures 114, including structure 114-1 and structure 114-2, that are closest to the selected drop point.
[0049] In other examples, roadmap creator 134 may be configured to select a pair of structures 114, such as structure 114-1 and structure 114-2. In these examples, roadmap creator 134 may determine a boundary of a polygon extending along the sides of the pair of structures 114. Roadmap creator 134 may then determine whether drop point location data 128 indicates that at least one drop point is within the boundary of the polygon. Thus, if drop point location data 128 indicates that at least one drop point is within the polygon, roadmap creator 134 may determine that at least one drop point, such as drop point 112-1, is located between the pair of structures 114.
[0050] As discussed above, the job design data 124 may indicate GPS coordinates or other location data that define a boundary 202 that indicates the location, shape, and / or orientation of the structure 114. Thus, the object identifier 132 and / or the roadmap creator 134 may determine location data representing the boundary 202 of the pair of structures 114, such as GPS coordinates that define the boundary 202-1 of the structure 114-1 and define the boundary 202-2 of the structure 114-2. The object identifier 132 and / or the roadmap creator 134 may also determine coordinates or other location data associated with corner points of the boundary 202 of the structures 114. For example, the object identifier 132 and / or the roadmap creator 134 may determine the GPS coordinates of the four corners of the structure 114-1 and the GPS coordinates of the four corners of the structure 114-2.
[0051] Figure 3An example 300 is shown in which the roadmap creator 134 identifies a corner point 302 of the pair of structures 114 that is closest to the selected placement point 112-1. Figure 2 As discussed, object identifier 132 and / or roadmap creator 134 may determine the GPS coordinates of the four corners of structure 114-1 and the GPS coordinates of the four corners of structure 114-2. Roadmap creator 134 may therefore determine which four of these corner points are closest to the GPS coordinates of drop point 112-1. For example, roadmap creator 134 may determine that, of the four corners of structure 114-1, corner points 302-1 and 302-2 are closest to the coordinates of drop point 112-1. Corner points 302-1 and 302-2 may therefore represent the ends of the line extending along the edge of structure 114-1 that is closest to drop point 112-1. Similarly, roadmap creator 134 may determine that, of the four corners of structure 114-2, corner points 302-3 and 302-4 are closest to the coordinates of drop point 112-1. Corner points 302-3 and 302-4 may thus represent the ends of the lines extending along the sides of structure 114-2 that are closest to drop point 112-1.
[0052] like Figure 3 As shown, the roadmap creator 134 may determine the location of the midpoint 304 approximately halfway between pairs of corner points 302 associated with different structures 114, such as midpoints 304-1 and 304-2. For example, the roadmap creator 134 may determine the location of the midpoint 304-1 halfway between the corner point 302-1 of the structure 114-1 and the corner point 302-3 of the structure 114-2. Similarly, the roadmap creator 134 may determine the location of the midpoint 304-2 approximately halfway between the corner point 302-2 of the structure 114-1 and the corner point 302-4 of the structure 114-2. In other examples, the roadmap creator 134 may determine the location of the midpoint 304 based on a distance approximately halfway between the corners of the structures 114-1 and 114-2 that are farthest from the coordinates of the drop point 112-1, or based on a distance approximately halfway between other points along the ends of the structures 114-1 and 114-2.
[0053] The route map creator 134 may also generate a route segment, such as route segment 106-1, that extends between the identified midpoints 304, such as midpoints 304-1 and 304-2. The generated route segment 106-1 may therefore extend between midpoints 304-1 and 304-2, and may also extend between structure 114-1 and structure 114-2. The generated route segment 106-1 may also be oriented substantially parallel to the orientation of structure 114-1 and structure 114-2. Additionally, the generated route segment 106-1 may extend through or near drop point 112-1 and any other drop points 112, if any, positioned between structure 114-1 and structure 114-2.
[0054] Figure 4 An example 400 is shown in which the route map creator 134 extends the generated route segment 106-1 by an extension distance 136 to an extension endpoint 402. As discussed above, the extension distance 136 may be a predetermined distance, a distance determined based on a turning radius or size of one or more machines, a distance based on how far the ends of the pair of structures 114 are from adjacent blocks or other obstacles of the structures, or any other distance.
[0055] In order to extend the end of route segment 106-1 by an extension distance 136 to reach the extension endpoint, roadmap creator 134 can determine an azimuth indicating the direction or orientation of route segment 106-1. Roadmap creator 134 can therefore use the inverse of the azimuth to extend the end of route segment 106-1 by an extension distance 136. As an example, roadmap creator 134 can determine that, starting at midpoint 304-1 and moving toward midpoint 304-2, route segment 106-1 extends from north to south along a direction of 180 degrees. Therefore, roadmap creator 134 can extend route segment 106-1 from midpoint 304-1 along a direction of 0 degrees to reach extension endpoint 402-1. Similarly, roadmap creator 134 can determine that, starting at midpoint 304-2 and moving toward midpoint 304-1, route segment 106-1 extends from south to north along a direction of 0 degrees. Therefore, the route map creator 134 may extend the route segment 106 - 1 from the midpoint 304 - 2 along a 180 degree direction by the extension distance 136 to the extension endpoint 402 - 2 .
[0056] like Figure 4 As shown, after the end of route segment 106-1 has been extended by an extension distance 136, route map creator 134 may generate additional route segments 106 that connect the ends of route segment 106-1 (such as extension endpoint 402-1 and extension endpoint 402-2) to other route segments 106. For example, Figure 1As shown, the route map creator 134 may connect the extended endpoints of the route segment passing between a pair of structures 114 to the extended endpoints of other adjacent route segments passing between other pairs of structures 114 .
[0057] Figure 5 An example 500 is shown in which the route map creator 134 adjusts the route segment 106-1 based on determining that the non-drivable area 130 intersects the route segment 106-1. Figures 2 to 4 After the route segment 106-1 has been generated, the route map creator 134 can determine whether any non-drivable areas, such as the non-drivable area 130, intersect the generated route segment 106-1. The location of the non-drivable area can be indicated by the job design data 124, the design element identifier 126, and / or other input data provided to the computing system 102.
[0058] like Figure 5 As shown, if the roadmap creator 134 determines that the non-drivable area 130 intersects the route segment 106-1, the roadmap creator 134 may divide the route segment 106-1 into the route segment 106-2 and the route segment 106-3, so that the route segment 106-2 and the route segment 106-3 do not cross the non-drivable area 130. For example, the roadmap creator 134 may define endpoints 502, such as the endpoint 502-1 and the endpoint 502-2, along the route segment 106-1 that are separated from the non-drivable area 130 by at least a threshold distance. The roadmap creator 134 may therefore generate the route segment 106-2 to extend between the extension endpoint 402-1 and the new endpoint 502-1, and generate the route segment 106-3 to extend between the extension endpoint 402-2 and the new endpoint 502-2.
[0059] Although in some examples, the roadmap creator 134 may generate the route segment 106-1, extend the route segment 106-1, and then divide the route segment 106-1 into the route segment 106-2 and the route segment 106-3 if the roadmap creator 134 determines that the non-drivable area 130 intersects the route segment 106-1 as discussed above, in other examples, the roadmap creator 134 may determine whether the route segment intersects the non-drivable area earlier in the process. Figure 3 After the midpoints 304-1 and 304-2 are shown, the roadmap creator 134 determines whether the route between the midpoints 304-1 and 304-2 will cross the non-drivable area 130. If so, the roadmap creator 134 can generate two route segments aligned along the route between the midpoints 304-1 and 304-2 on opposite sides of the non-drivable area 130, and then extend the ends of these routes away from the non-drivable area 130 by an extension distance 136.
[0060] For some pairs of structures 114 that have at least one drop point between the structures 114, the roadmap creator 134 may follow Figures 2 to 4 , and if the generated route segment does not cross the non-driving area, the generated route segment can be added to the route map 104. However, if the generated route segment crosses the non-driving area, the route map creator 134 can additionally follow Figure 5 The example 500 shown in FIG. 1 is used to divide the generated route segments, and then the divided route segments are added to the route map 104 .
[0061] As discussed above, route segments 106 may be represented in route graph 104 using nodes and edges. Figures 2 to 4 In the example shown in , roadmap creator 134 may represent route segment 106-1 by generating a node indicating the location of stretch endpoint 402-1 and stretch endpoint 402-2. In some examples, roadmap creator 134 may also generate one or more nodes representing locations between stretch endpoint 402-1 and stretch endpoint 402-2, such as a node indicating a location halfway between stretch endpoint 402-1 and stretch endpoint 402-2. Roadmap creator 134 may generate one or more edges in roadmap 104 connecting nodes associated with route segment 106-1.
[0062] If the route map creator 134 determines that the non-drivable area intersects the route segment, for example, as described in relation to Figure 5 As discussed above, the route map creator 134 may partition the route segments by generating additional nodes along the original route segments and omitting the edges connecting the additional nodes. Figure 5 , the roadmap creator 134 may generate nodes indicating the locations of the extension endpoint 402-1 and the endpoint 502-1, and may generate edges connecting these nodes in the roadmap 104. Similarly, to represent Figure 5 , the roadmap creator 134 may generate nodes indicating the locations of the extension endpoint 402-2 and the endpoint 502-2, and may generate edges connecting these nodes in the roadmap 104. The roadmap creator 134 may avoid generating an edge connecting the nodes representing the endpoint 502-1 and the endpoint 502-2. Therefore, the absence of an edge between the nodes representing the endpoint 502-1 and the endpoint 502-2 in the roadmap 104 may indicate that the machine 108 is not permitted to travel directly between the endpoint 502-1 and the endpoint 502-2, and therefore the machine 108 may avoid the no-drivable area 130.
[0063] Figure 6A flow chart 600 illustrating an example process for generating a roadmap 104 is shown. Figure 6 The operations shown in can be performed by computing system 102. Figure 7 An example system architecture for computing system 102 is described.
[0064] At block 602, the computing system 102 may receive input data from one or more data sources. The input data may include job design data 124, such as a construction design file, indicating coordinates associated with the structure 114. The input data may also include a design element identifier 126 indicating a name or other identifier of the structure 114. The input data may further include drop point location data 128, such as a spreadsheet or other type of data, indicating coordinates of the drop point 112. The input data may also indicate coordinates of a no-drive zone, if any, such as in the job design data 124 or in a separate input file.
[0065] At block 604, computing system 102 may select one of drop points 112 from a set of drop points 112 indicated by drop point location data 128. In some examples, computing system 102 may select the drop point associated with the first coordinate listed in drop point location data 128 during a first pass through block 604, and sequentially select other drop points indicated by drop point location data 128 during subsequent passes through block 606. In other examples, computing system 102 may randomly select a drop point during a pass through block 604 from a set of drop points that have not been selected during a previous pass through block 604. In yet other examples, computing system 102 may select a drop point at block 604 using any other selection method.
[0066] At block 606, computing system 102 may identify a pair of structures closest to the drop point selected at block 604. For example, computing system 102 may determine the coordinates of the selected drop point based on drop point location data 128. Computing system 102 may also determine a discrete set of coordinates associated with corresponding discrete structures 114 based on job design data 124 and / or design element identifiers 126. Computing system 102 may determine a distance between the coordinates of the selected drop point and the coordinates associated with different structures 114, and compare the distances to identify two structures 114 associated with the coordinates closest to the coordinates of the selected drop point. The two structures 114 associated with the coordinates closest to the coordinates of the selected drop point may be located on opposite sides of the selected drop point. Therefore, at block 606, computing system 102 may identify the two structures 114 associated with the coordinates closest to the coordinates of the selected drop point as the pair of structures 114 between which the selected drop point is located.
[0067] At block 608, the computing system 102 may identify the coordinates of the midpoint 304 between the ends of the pair of structures 114. Figure 3 As described, in some examples, computing system 102 may identify corner points of each of structures 114, identify which of these corner points are closest to the coordinates of the selected drop point, and determine the coordinates of midpoint 304 that is approximately halfway between the coordinates of the closest corner points of structures 114. However, in other examples, computing system may identify the corner point on structure 114 that is farthest from the coordinates of the selected drop point, or identify any other point along the end of structure 114, and determine the coordinates of midpoint 304 that is approximately halfway between these points.
[0068] At block 610, computing system 102 may generate a route segment extending between the coordinates of midpoints 304 identified at block 608. The generated route segment may be, for example, Figure 3 The pair of structures 114 are shown extending therebetween.
[0069] At block 612, computing system 102 may extend the ends of the route segments by extension distance 136. For example, at each end of the route segments, computing system 102 may determine the azimuth of the line along which the route segments are aligned. Thus, computing system 102 may use the inverse of the azimuth to extend the ends of the route segments by extension distance 136 to a position such as Figure 4 Extension endpoints shown.
[0070] At block 614, computing system 102 may add the route segment to roadmap 104. For example, computing system 102 may generate nodes of roadmap 104 indicating coordinates of extension endpoints of the route segment and / or other points along the route segment, and generate edges of roadmap 104 connecting the nodes.
[0071] At block 616, computing system 102 may determine whether drop point location data 128 includes coordinates associated with any other drop points that are not already associated with the route segment indicated in route map 104 or other generated route segments. For example, if drop point location data 128 indicates that there are one or more additional drop points that are also located at the coordinates between the pair of structures 114 identified during the previous pass through block 606, computing system 102 may determine that the additional drop points are associated with the same route segment that was added to route map 104 during the previous pass through block 614. Similarly, computing system 102 may determine whether, for a particular drop point having coordinates indicated in drop point location data 128, another route segment previously added to the route map has passed through those coordinates. However, if computing system 102 identifies at block 616 a drop point having coordinates that are not along any of the route segments already defined by route map 104 (block 616—yes), computing system 102 may return to block 604 to select the drop point and generate a corresponding route segment using blocks 606 through 614. If computing system 102 determines that there are no additional drop points that are not already associated with route segments already defined by route map 104 (block 616—no), computing system 102 may move to block 618.
[0072] At block 618, computing system 102 may generate additional route segments 106 in roadmap 104 that connect the extended endpoints of route segments 106 already defined in roadmap 104. For example, route segments 106 generated during the passage through blocks 604 to 614 may extend between different pairs of structures 114 and may have extended endpoints 402 at locations that extend beyond the ends of structures 114 by an extended distance 136. Thus, at block 618, computing system 102 may generate additional route segments 106 that connect the extended endpoints 402 of different route segments 106. For example, if extended endpoints 402 are represented in roadmap 104 by nodes, computing system 102 may add edges connecting pairs of these nodes in roadmap 104. Thus, extended endpoints 402 extend beyond the ends of structures 114 by an extended distance 136, so route segments 106 added at block 618 may be located away from the ends of structures 114.
[0073] At block 620, computing system 102 may determine whether the no-drivable region crosses any of route segments 106 defined in route map 104. In some examples, if one or more of route segments 106 cross the no-drivable region (block 620—yes), computing system 102 may split route segments 106 at block 622 to create gaps around the no-drivable region in route map 104, as described above with respect to Figure 5For example, computing system 102 may add additional nodes to roadmap 104 along route segments that intersect the non-drivable areas, where the nodes are positioned at least a threshold distance from the non-drivable areas. These nodes may become new endpoints 502, which computing system 102 may connect with edges to previously determined extended endpoints 402 in roadmap 104. Computing system 102 may also avoid connecting new endpoints 502 in roadmap 104 with edges, such that roadmap 104 does not indicate that a path directly between new endpoints 502 can be traversed by machine 108.
[0074] After demarcating any route segments 106 that intersect the non-drivable area at block 622, or if no route segments 106 cross the non-drivable area (block 620—NO), the computing system 102 may output the roadmap 104 at block 624. The computing system 102 may output the roadmap 104 to one or more machines 108 at the worksite, for example, via wireless transmission. In other examples, the computing system 102 may output the roadmap 104 to another computing system that provides the roadmap 104 to the machine 108 and / or generates machine instructions for the machine 108 using the roadmap 104. In some examples, for example, before outputting the roadmap 104 at block 624, once input indicating the location of the staging area 120 and / or the path for the staging area connection 138 is provided to the computing system 102, the roadmap 104 may be adjusted to add nodes and edges representing the coordinates of the staging area connection 138.
[0075] In some examples, computing system 102 may repeat the process for multiple groups of structures 114 and / or drop points 112. Figure 6 For example, the worksite 110 may be designed to have multiple blocks, each block including a different group of structures 114. For example, Figure 1 The group of structures 114 shown in the figure may be a first block of structures 114 at a solar farm construction site, and there may be additional blocks of structures 114 (not shown) at other locations at the solar farm construction site, the additional blocks having the same or different numbers of structures 114, structures of different sizes and / or orientations, different arrangements of structures 114, and / or otherwise different from the first block of structures.
[0076] Therefore, computing system 102 may use Figure 6 , such that the roadmap includes route segments that pass between different pairs of structures 114 in the first tile. The computing system 102 may repeat Figure 6104 to generate route segments 106 that pass between pairs of structures 114 located in additional tiles at worksite 110. In some examples, computing system 102 may generate a different route map for each tile of structures 114 at worksite 110. In other examples, when computing system 102 generates route segments 106 associated with a particular tile of structures 114 at worksite 110, computing system 102 may add nodes and edges representing these route segments 106 to a route map associated with a larger group of tiles or with the worksite 110 as a whole.
[0077] Figure 7 An example system architecture 700 is shown for computing system 102. Computing system 102 may include one or more servers or other computing devices including one or more processors 702, memory 704, and / or communication interface 706.
[0078] The processor(s) 702 may be operable to perform the various functions described herein. The processor(s) 702 may include one or more chips, microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) and / or other programmable circuits, central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), and / or other processing units or components known in the art. In some examples, the processor(s) 702 may have one or more arithmetic logic units (ALUs) that perform arithmetic and logical operations and / or one or more control units (CUs) that extract instructions and stored content from a processor cache and execute such instructions by making calls on the ALUs during program execution. The processor(s) 702 may also access content and computer executable instructions stored in the memory 704 and execute such computer executable instructions.
[0079] The memory 704 may be a volatile and / or non-volatile computer-readable medium, including an integrated or removable storage device, including a random access memory (RAM), a read-only memory (ROM), a flash memory, a hard drive or other disk drive, a memory card, an optical storage device, a magnetic storage device, and / or any other computer-readable medium. The computer-readable medium may be a non-transitory computer-readable medium. The computer-readable medium may be configured to store computer-executable instructions that may be executed by the processor(s) 702 to perform the operations described herein.
[0080] For example, the memory 704 may include a drive unit and / or other elements including a machine-readable medium. The machine-readable medium may store one or more sets of instructions, such as software or firmware, that embody any one or more of the methods or functions described herein. The instructions may also reside, completely or at least partially, within the processor(s) 702 and / or the communication interface(s) 706 during their execution by the computing system 102. For example, the processor(s) 702 may have a local memory that may also store program modules, program data, and / or one or more operating systems.
[0081] The memory 704 may store data and / or computer executable instructions associated with the object identifier 132, the roadmap creator 134, and / or other elements described herein. The memory 704 may also store other modules and data 708 that may be utilized by the computing system 102 to perform or enable the performance of any actions taken by the computing system 102. For example, the other modules and data 708 may include a platform, an operating system, and / or an application, and data utilized by the platform, the operating system, and / or the application.
[0082] The communication interface 706 may include a transceiver, a modem, an interface, an antenna, and / or other components that can send and / or receive data over a network or other data connection. For example, the computing system 102 may use the communication interface 706 to receive job design data 124, design element identifiers 126, drop point location data 128, and / or other types of input from one or more data sources, and output a route map 104 to one or more destinations. For example, in some examples, the communication interface 706 may include a wireless communication interface that the computing system 102 may use to transmit the route map 104 to the wireless communication interface 122 of one or more machines 108.
[0083] Industrial Applicability
[0084] As described above, the computing system 102 can generate the route map 104 to define the route segments 106 that can be traversed by one or more machines 108 at the worksite 110, so that the machines 108 can use the route map 104 to travel to the drop points 112 located between the pairs of structures 114 and deliver materials to the drop points 112. The computing system 102 can generate the route map 104 based at least in part on the job design data 124 indicating the coordinates of the structures 114 and the separate drop point location data indicating the coordinates of the drop points 112. For example, if at least one drop point is located between a particular pair of structures 114, the computing system 102 can generate the route segment that extends along the line located between the pair of structures 114. The computing system 102 can generate the route segment to extend beyond the ends of the pair of structures 114, such as an extension distance 136. The computing system 102 can also connect the extended ends of the route segments that pass between different pairs of structures 114. If any of route segments 106 intersect a no-drivable area, computing system 102 may adjust route segments 106 to include gaps around the no-drivable area such that roadmap 104 indicates gaps that cannot be traversed by machine 108 .
[0085] Job design data 124 indicating coordinates of structure 114 may be a design file prepared by a designer or other entity during planning of a construction project or other job, for example, to indicate the size and placement of structure 114 at worksite 110. Computing system 102 may reuse the design file to determine the coordinates of structure 114 at worksite 100 and automatically generate route segment 106 that avoids the coordinates of structure 114 but allows machine 108 to travel to the coordinates of a drop point indicated by separate drop point location data 128.
[0086] Compared to other systems, the systems and methods described herein can generate route maps 104 faster and / or more efficiently. For example, a person can use a satellite photo showing installed structures 114 at a worksite 110 to draw route segments that reach a hundred drop points and pass between pairs of structures 114 shown in the photo, and this process of manually drawing each individual route segment may take about 30 minutes per block of structures 114. The overall worksite 110 may have hundreds of blocks of structures 114, which together cover thousands of pairs of structures 114 and are associated with thousands of drop points, so that manually drawing route segments for the entire worksite 110 may take about 50 hours. However, the computing system 102 described herein can automatically generate a route map for each block of structures in less than a minute, so that the computing system 102 can automatically generate a route map for hundreds of blocks at the worksite 110 in a few hours or less. Therefore, the computing system 102 can automatically generate a route map for all of the blocks in the block at the worksite 110 in a significantly shorter period of time than manually creating a route map. Furthermore, because computing system 102 can automatically generate a roadmap in a relatively short period of time, computing system 102 can use fewer computing resources, such as processor cycles, memory, and bandwidth, than another computing system operated by a human could use during the more than 50 hours of manual creation of the roadmap.
[0087] Additionally, because the computing system 102 uses the actual coordinates of the structures 114 indicated by the job design data 124 to determine the position, orientation, and length of the route segments 106, the positioning of the route segments 106 defined by the route map 104 automatically generated by the computing system 102 may be more accurate and / or more consistent than route segments 106 that may be manually generated by a person. For example, if a person were to manually draw a representation of a route segment between two structures 114 based on a satellite photograph of the structures 114, human error may cause the drawn route segment to be closer to one of the structures than the other, and thus increase the chance of the machine colliding with the closer structure. However, the route segment 106 automatically generated by the computing system 102 may be positioned based on a midpoint halfway between the coordinates of the structures indicated by the job design data 124, so that the machine 108 may autonomously travel between the structures 114 with a reduced risk of collision.
[0088] Although various aspects of the present invention have been specifically shown and described with reference to the above embodiments, it will be understood by those skilled in the art that various additional embodiments may be conceived by modifying the disclosed machines, systems and methods without departing from the spirit and scope of the disclosed content. These embodiments should be understood to fall within the scope of the present invention as determined based on the claims and any equivalents thereof.
Claims
1. A method comprising: Received by processor (702): job design data (124) indicating first coordinates of a structure (114) at a worksite (110); and Drop point location data (128) indicating second coordinates of a drop point (112) at the construction site (110); The processor (702) identifies a drop point (112) located between a pair of structures (114) based on the job design data (124) and the drop point location data (128); determining, by the processor (702), a midpoint (304) between ends of the paired structures (114); determining, by the processor (702), a route segment (106) extending between the pair of structures (114) through the midpoint (304) to an extension endpoint (402) located an extension distance (136) from the ends of the pair of structures (114); determining, by the processor (702), an additional route segment (106) extending between the extension endpoints (402) of the route segment (106); as well as A route map (104) is generated by the processor (702), the route map comprising: nodes indicating third coordinates of points on the route segment (106) and the additional route segment (106), and Edges of a path between pairs of third coordinates that can be traversed by a machine (108) at the worksite (110) are indicated.
2. The method according to claim 1, wherein: The worksite is a solar farm construction site, the structure (114) is a solar panel mounting assembly, and the drop point (112) is a location where the machine (108) will deliver solar panels to be mounted on the mounting assembly.
3. The method according to claim 1, wherein: The machine (108) is an autonomous machine configured to travel along a selected route segment (106) based on corresponding nodes and corresponding edges in the roadmap (104).
4. The method according to claim 1, wherein: Identifying the delivery point (112) between the paired structures (114) includes: The processor (702) selects a delivery point (112) based on the delivery point location data (128); determining, by the processor (702), the coordinates of the drop point (112) indicated by the drop point location data (128); and A pair of structures (114) associated with the set of first coordinates that are closest to the coordinates of the drop point (112) is determined by the processor (702).
5. The method according to claim 4, wherein: The pair of structures (114) includes a first structure (114-1) and a second structure (114-2), and determining the midpoint (304) and the route segment (106) includes: The processor (702) identifies, based on the first coordinates associated with the first structure (114-1) in the job design data (124), a first corner point (302) of the first structure (114-1) that is closest to the coordinates of the placement point (112); The processor (702) identifies, based on the first coordinates associated with the second structure (114-2) in the job design data (124), a second corner point (302) of the second structure (114-2) that is closest to the coordinates of the placement point (112); Determining, by the processor (702), a first midpoint (304) between the first corner point (302) and the second corner point (302) at opposite ends of the first structure (114-1) and the second structure (114-2); generating, by the processor (702), a route segment (106) extending between the first midpoints (304) and between the first structure (114-1) and the second structure (114-2); and The processor (702) extends the route segment (106) by the extension distance (136) at opposite ends of the route segment (106).
6. The method according to claim 5, wherein: Extending the route segment (106) includes determining an azimuth of the route segment (106) and extending the route segment (106) along a line oriented based on the azimuth.
7. The method according to claim 1, further comprising: Determining, by the processor (702) and based on the job design data (124) or other input data, fourth coordinates of a no-drivable area (130) at the worksite (110); The processor (702) identifies a route segment (106) among the route segments (106) that intersects the non-drivable area (130); The processor (702) divides the route segment (106) into two route segments (106) that are spaced apart from the fourth coordinate of the non-drivable area (130) by at least a threshold distance; and The route map (104) is adjusted by the processor (702) based on dividing the route segment (106) into the two route segments (106).
8. The method according to claim 1, wherein: The operation design data (124) is a construction design file separated from the placement point location data (128).
9. A non-transitory computer-readable medium storing computer-executable instructions which, when executed by a processor (702), cause the processor (702) to: Receiving work design data (124) indicating first coordinates of a structure (114) at a worksite (110) and placement point location data (128) indicating second coordinates of a placement point (112) at the worksite (110); For a single delivery point (112) among the delivery points (112): determining the coordinates of the individual delivery point (112) indicated by the delivery point location data (128); determining a pair of structures (114) associated with a corresponding set of said first coordinates of said coordinates closest to said individual delivery point (112); identifying points at ends of the paired structures (114) based on the first coordinates in the job design data (124); determining a midpoint (304) between the points at the ends of the paired structures (114); and determining a route segment (106) extending between the pair of structures (114) through the midpoint (304) to an extension endpoint (402) located an extension distance (128) from the ends of the pair of structures (114); determining an additional route segment (106) extending between the extension endpoints (402) of the route segment (106); and A route map (104) is generated that defines the route segment (106) and the additional route segment (106), wherein the route map (104) indicates that the route segment (106) and the additional route segment (106) are paths that can be traversed by a machine (108) at the worksite (110).
10. The non-transitory computer readable medium of claim 9, wherein: The computer executable instructions further cause the processor (702): Determining coordinates of a non-drivable area (130) at the worksite (110) based on the work design data (124) or other input data; Identifying a route segment (106) among the route segments (106) that intersects the non-drivable area (130); dividing the route segment (106) into two route segments (106) spaced at least a threshold distance from the coordinates of the non-drivable area (130); and The route map (104) is adjusted based on dividing the route segment (106) into the two route segments (106).
Citation Information
Patent Citations
System and method for autonomous operation of a machine
US11079755B2