Obstacle detection system and method
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- KUBOTA CORP
- Filing Date
- 2024-05-17
- Publication Date
- 2026-05-29
Smart Images

Figure 2026517439000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a work machine, an obstacle detection system, and a method. More specifically, the present invention relates to a work machine, an obstacle detection system, and a method that can more accurately identify obstacles that may affect the travel route of the work machine.
Background Art
[0002] Some conventional work machines include an object detection system that detects objects around the work machine using sensors. However, in conventional object detection systems, it is impossible to determine whether the object is a trivial object that the work machine can pass over or through without problems, or an obstacle that should cause the work machine to change its travel route in order to avoid passing over or through the obstacle and prevent damage to the work machine or the obstacle. As a result, in conventional object detection systems, the travel route of the work machine may be changed based on trivial objects that the work machine could have passed over or through, potentially increasing the travel time and distance of the work machine unduly.
[0003] For the above reasons, there is a need for a work machine, an obstacle detection system, and a method that can more accurately identify obstacles that may affect the travel route of the work machine.
Summary of the Invention
[0004] Preferred embodiments of the present invention provide a work machine, an obstacle detection system, and a method.
[0005] The method according to a preferred embodiment of the present invention includes generating a three-dimensional point cloud including a plurality of data points, and filtering the three-dimensional point cloud to remove one or more data points from the plurality of data points, wherein the one or more data points are removed from the plurality of data points based on the positions of the one or more data points.
[0006] In a method according to a preferred embodiment of the present invention, the method further includes filtering a three-dimensional point cloud to remove one or more additional data points corresponding to a portion of a work machine from a plurality of data points based on the one or more additional data points, wherein the one or more additional data points corresponding to a portion of a work machine are identified based on a known positional relationship between the sensor used to generate the three-dimensional point cloud and the portion of the work machine.
[0007] In a method according to a preferred embodiment of the present invention, filtering a three-dimensional point cloud includes filtering the three-dimensional point cloud using a voxel grid to remove one or more data points from a plurality of data points, wherein the voxel grid includes one or more active voxels, each containing at least one data point corresponding to an object or a portion of an object, among the plurality of data points of the three-dimensional point cloud, and filtering the three-dimensional point cloud using the voxel grid includes removing a particular active voxel from the voxel grid by applying a filter to the voxel grid to change that particular active voxel into an inactive voxel, wherein when a particular active voxel is removed from the voxel grid, one or more data points contained in that particular active voxel are removed from the plurality of data points of the three-dimensional point cloud.
[0008] In a method according to a preferred embodiment of the present invention, a filter applied to a voxel grid removes specific active voxels located above or below the filter in the vertical direction of the voxel grid, and the filter is represented by a plane parallel to the bottom surface of the voxel grid and at a predetermined distance from the bottom surface.
[0009] In a preferred embodiment of the present invention, a filter applied to a voxel grid removes specific active voxels through which the filter passes and specific active voxels located below the filter in the vertical direction of the voxel grid, and the filter is represented by an inclined surface that rises at a predetermined gradient from a point on or adjacent to the workpiece and away from that point on or adjacent to the workpiece.
[0010] In a method according to a preferred embodiment of the present invention, a filter applied to a voxel grid is applied to a specific voxel column extending vertically in the voxel grid, and the filter removes a specific active voxel from the specific voxel column based on the number of voxels in the specific voxel column between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction.
[0011] In a method according to a preferred embodiment of the present invention, the filter determines whether the number of voxels between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction is less than a predetermined threshold, and if the number of voxels between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction is less than the predetermined threshold, the filter removes a specific active voxel that includes all active voxels contained in a specific voxel column.
[0012] In a method according to a preferred embodiment of the present invention, the filter removes specific active voxels from a particular voxel sequence based on whether or not there are consecutive active voxels within that sequence.
[0013] In a method according to a preferred embodiment of the present invention, a filter applied to a voxel grid is applied to a specific voxel column extending vertically in the voxel grid, and the filter removes a specific active voxel from a specific voxel column based on whether the active voxel having the minimum value vertically in the specific voxel column is separated from another filter, the other filter being a filter previously used to remove active voxels located below the other filter vertically in the voxel grid.
[0014] In a preferred embodiment of the present invention, the filter is applied simultaneously to a plurality of specific voxel columns extending vertically in the voxel grid.
[0015] In a preferred embodiment of the present invention, the method further comprises converting a three-dimensional point cloud into a two-dimensional obstacle map including the locations of one or more obstacles, wherein converting the three-dimensional point cloud into a two-dimensional obstacle map includes removing vertical coordinates from each of the multiple data points remaining in the three-dimensional point cloud after one or more data points have been removed from the multiple data points.
[0016] In a preferred embodiment of the present invention, the method further includes: converting a three-dimensional point cloud into a two-dimensional obstacle map including the locations of one or more obstacles; updating a field map to include the locations of one or more obstacles based on the two-dimensional obstacle map; and determining whether or not to update the planned travel path of the implement based on the updated field map.
[0017] In a method according to a preferred embodiment of the present invention, converting a three-dimensional point cloud to a two-dimensional obstacle map includes downsampling the three-dimensional point cloud by reducing the number of data points contained in the three-dimensional point cloud based on a voxel grid used to filter the three-dimensional point cloud.
[0018] In a method according to a preferred embodiment of the present invention, one or more data points are removed from a plurality of data points based on the distance between a first data point having the maximum vertical position in a vertically extending column of the three-dimensional point cloud and a second data point having the minimum vertical position in a vertically extending column of the three-dimensional point cloud, and one or more data points are removed from a plurality of data points if the distance between the first data point and the second data point of the one or more data points is less than a predetermined threshold.
[0019] In a method according to a preferred embodiment of the present invention, a three-dimensional point cloud is generated using one or more LiDAR sensors.
[0020] A preferred embodiment of the present invention includes generating a three-dimensional point cloud containing a plurality of data points, and determining whether or not to update the planned travel path of the work machine based on the distance between a first data point having the maximum vertical position in a vertically extending column of the three-dimensional point cloud and a second data point having the minimum vertical position in a vertically extending column of the three-dimensional point cloud.
[0021] In a preferred embodiment of the present invention, the method includes determining not to update the planned travel path of the work machine if the distance between a first data point and a second data point among a plurality of data points is less than a predetermined threshold.
[0022] A work machine according to a preferred embodiment of the present invention comprises a sensor that generates a three-dimensional point cloud including a plurality of data points, and a controller configured or programmed to control the work machine based on the three-dimensional point cloud.
[0023] In a work machine according to a preferred embodiment of the present invention, the controller is configured or programmed to filter a three-dimensional point cloud to remove one or more data points from a plurality of data points based on the position of one or more data points, the controller is configured or programmed to filter a three-dimensional point cloud using a voxel grid to remove one or more data points from a plurality of data points, the voxel grid includes one or more active voxels, each containing at least one data point from a plurality of data points in the three-dimensional point cloud that corresponds to an object or a part of an object, the controller is configured or programmed to filter a three-dimensional point cloud using a voxel grid by applying a filter to the voxel grid, the filter applied to the voxel grid removes a particular active voxel from the voxel grid by changing that particular active voxel to an inactive voxel, and when a particular active voxel is removed from the voxel grid, one or more data points contained in that particular active voxel are removed from a plurality of data points in the three-dimensional point cloud.
[0024] In a work machine according to a preferred embodiment of the present invention, the controller is configured or programmed to apply a filter to a specific voxel column extending vertically in a voxel grid, the filter removes a specific active voxel from the specific voxel column based on the number of voxels in the specific voxel column between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction.
[0025] In a work machine according to a preferred embodiment of the present invention, the controller is configured or programmed to apply a filter to a specific voxel column extending vertically in a voxel grid, the filter removes a specific active voxel from a specific voxel column based on whether the active voxel having the minimum value vertically in that particular voxel column is separated from another filter, and the other filter removes a specific active voxel in the vertical direction of the voxel grid. It is a filter that was previously used to remove active voxels located below the other filter.
[0026] In a working machine according to a preferred embodiment of the present invention, the controller filters a three-dimensional point cloud, removes one or more data points from the plurality of data points based on the positions of one or more data points, converts the three-dimensional point cloud into a two-dimensional obstacle map including the positions of one or more obstacles, updates a field map so as to include the positions of one or more obstacles based on the two-dimensional obstacle map, and determines whether to update a planned travel route of the working machine based on the updated field map, and is configured or programmed to do so.
[0027] In a working machine according to a preferred embodiment of the present invention, the controller filters a three-dimensional point cloud, removes one or more data points from the plurality of data points based on the positions of one or more data points, and based on the distance between a first data point having a maximum vertical position in a column extending in the vertical direction of the three-dimensional point cloud and a second data point having a minimum vertical position in a column extending in the vertical direction of the three-dimensional point cloud among the one or more data points, removes one or more data points from the plurality of data points, and when the distance between the first data point and the second data point among the one or more data points is less than a predetermined threshold value, removes one or more data points from the plurality of data points, and is configured or programmed to do so.
[0028] In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to determine whether to update a planned travel route of the working machine based on the distance between a first data point having a maximum vertical position in a column extending in the vertical direction of the three-dimensional point cloud and a second data point having a minimum vertical position in a column extending in the vertical direction of the three-dimensional point cloud among the plurality of data points.
[0029] The above and other features, elements, steps, configurations, characteristics, and effects of the present invention will become more apparent from the following detailed description of the preferred embodiments of the present invention with reference to the accompanying drawings.
Brief Description of the Drawings
[0030] [Figure 1A] It is a side view of a working machine according to a preferred embodiment of the present invention. [Figure 1B] It is a side view of a working machine according to a preferred embodiment of the present invention. [Figure 2] It is a configuration diagram of a transmission included in a working machine according to a preferred embodiment of the present invention. [Figure 3] It is a control block diagram of a working machine according to a preferred embodiment of the present invention. [Figure 4] It shows a planned travel route according to a preferred embodiment of the present invention. [Figure 5] It is a diagram showing automatic driving according to a preferred embodiment of the present invention. [Figure 6] It is a flowchart showing a process executed in a preferred embodiment of the present invention. [Figure 7] It is a perspective view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 8A] It is a side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 8B] It is a side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 9A] It is a side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 9B] It is a side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 10A] It is a side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 10B] It is a side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 11]This flowchart shows the process performed in a preferred embodiment of the present invention. [Figure 12A] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 12B] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 13A] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 13B] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 14A] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 14B] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 15] This flowchart shows the process performed in a preferred embodiment of the present invention. [Figure 16A] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 16B] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 17] This flowchart shows the process performed in a preferred embodiment of the present invention. [Figure 18A] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 18B] A side view of an example of a voxel grid according to a preferred embodiment of the present invention. [Figure 19] This is a perspective view showing an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 20A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 20B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 21A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 21B]This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 22A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 22B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 23] This flowchart shows the process performed in a preferred embodiment of the present invention. [Figure 24A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 24B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 25A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 25B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 26A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 26B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 27] This flowchart shows the process performed in a preferred embodiment of the present invention. [Figure 28A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 28B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 29] This flowchart shows the process performed in a preferred embodiment of the present invention. [Figure 30A] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 30B] This is a side view of an example of a three-dimensional point cloud according to a preferred embodiment of the present invention. [Figure 31] An example of an obstacle map according to a preferred embodiment of the present invention is shown. [Modes for carrying out the invention]
[0031] Figure 1A shows a tractor as an example of a work implement 1 according to a preferred embodiment. In a suitable embodiment, a tractor is described as an example of the implement 1, but the implement 1 is not limited to a tractor and may be agricultural machinery such as a rice transplanter used for farm work, or construction machinery such as a backhoe used for construction work. In the description of a preferred embodiment of the present invention, the area in front of the operator (driver) sitting in the driver's seat 10 of the implement 1 (direction of arrow A1 in Figure 1A) is referred to as the front, the area behind the operator (direction of arrow A2 in Figure 1A) is referred to as the rear, the area to the left of the operator is referred to as the left, and the area to the right of the operator is referred to as the right. In this specification, the horizontal direction, which is perpendicular to the front-rear direction of the implement 1, is referred to as the width direction.
[0032] As shown in Figures 1 and 3, the work machine 1 includes a running vehicle (machine body) 3 which includes a running device 7, a prime mover 4, a transmission 5, and a steering device 11. The running device 7 is a device which includes front wheels 7F and rear wheels 7R. The rear wheels 7R include a first wheel 7R1 provided on one side (left side) in the width direction of the machine body 3 and a second wheel 7R2 provided on the other side (right side) in the width direction of the machine body 3. The second wheel 7R2 is spaced apart from the first wheel 7R1 in the width direction of the machine body. The front wheels 7F may be of the tire type or the crawler type. The rear wheels 7R may also be of the tire type or the crawler type. The prime mover 4 includes an internal combustion engine such as a gasoline engine or a diesel engine, an electric motor, etc. In this preferred embodiment, the prime mover 4 is, for example, a diesel engine. The transmission 5 can switch the propulsion force of the running device 7 by shifting gears, and can switch the running device 7 between forward and reverse travel. Aircraft 3 includes cabin 9, and the cockpit 10 is located inside cabin 9.
[0033] As shown in Figure 1A, a lifting device 8 is provided at the rear of the machine body 3. The work device 2 is detachable from the lifting device 8. The lifting device 8 can raise and lower the attached work device 2. Examples of work devices 2 include tillers for tilling, fertilizer spreaders for spreading fertilizer, pesticide sprayers for spraying pesticides, harvesters for harvesting, grass cutters for mowing, weed pullers for pulling weeds, rakes for raking, balers for forming grass into bales, etc.
[0034] As shown in Figure 3, the implement 1 includes a display device 50. The display device 50 is a device that includes a display unit 51, which includes a liquid crystal panel or touch panel, and a storage device 52. The display unit 51 can display various information about the implement 1, as well as information that supports the operation of the implement 1. For example, the display unit 51 can display a field map M and an obstacle map OM, which will be described in detail below. The storage device 52 is a non-volatile memory, etc., and stores information to be displayed on the display unit 51. The display device 50 is connected to the devices included in the implement 1 via wired or wireless communication.
[0035] As shown in Figure 2, the transmission 5 includes a main shaft (drive shaft) 5a, a shuttle section 5b, a main transmission section 5c, a sub-transmission section 5d, a PTO power transmission section 5e, and a front transmission section 5f. The drive shaft 5a is rotatably supported in the housing case of the transmission 5, and power from the crankshaft of the prime mover 4 is transmitted to the drive shaft 5a.
[0036] As shown in Figure 2, the shuttle unit 5b comprises a shuttle shaft 5b1 and a forward / reverse switching unit 5b2. Power from the drive shaft 5a is transmitted to the shuttle shaft 5b1. The forward / reverse switching unit 5b2 includes, for example, a hydraulic clutch. By engaging and disengaging the hydraulic clutch, the rotation direction of the shuttle shaft 5b1, i.e., the forward and reverse movement of the work machine 1, is switched. Specifically, the forward / reverse switching unit 5b2 includes a forward clutch unit 35 and a reverse clutch unit 36. The forward clutch unit 35 and the reverse clutch unit 36 include a housing 37 that rotates integrally with the drive shaft 5a.
[0037] As shown in Figure 2, the forward rotation clutch section 35 includes a cylindrical shaft 35b, a friction plate 35c positioned between the housing 37 and the cylindrical shaft 35b, and a pressing member 35d. The pressing member 35d is biased away from the friction plate 35c by a biasing member (not shown), such as a spring.
[0038] As shown in Figure 2, a first fluid passage 18a, through which hydraulic fluid is supplied and discharged, is connected to the inside of the housing 37 on the forward-rotating clutch section 35 side. As shown in Figure 3, the first fluid passage 18a is connected to the first control valve 17a. When the opening degree of the first control valve 17a is changed and hydraulic fluid is supplied to the inside of the housing 37 via the first fluid passage 18a, the pressing member 35d moves to the pressing side (connecting side) against the biasing force of the spring, causing the friction plate 35c to press against any part on the housing 37 side, and the forward-rotating clutch section 35 becomes connected. The power of the drive shaft 5a is transmitted to the gear 38 which rotates integrally with the cylindrical shaft 35b. When the hydraulic fluid is discharged from inside the housing 37 into the first fluid passage 18a, the pressing member 35d moves to the disconnecting side due to the biasing force of the spring, causing the friction plate 35c to separate from any part on the housing 37 side, and the forward-rotating clutch section 35 becomes disconnected. The power of the drive shaft 5a is not transmitted to the gear 38. The output gear (output gear) 38 of the forward rotation clutch unit 35 meshes with the output shaft 5b3. When the forward rotation clutch unit 35 is engaged, driving force is transmitted to the output shaft 5b3.
[0039] As shown in Figure 2, the reversing clutch section 36 comprises a cylindrical shaft 36b, a friction plate 36c positioned between the housing 37 and the cylindrical shaft 36b, and a pressing member 36d. The pressing member 36d is biased away from the friction plate 36c by a biasing member (not shown), such as a spring.
[0040] As shown in Figure 2, a second fluid passage 18b, through which hydraulic fluid is supplied and discharged, is connected to the inside of the housing 37 on the reverse clutch section 36 side. As shown in Figure 3, the second fluid passage 18b is connected to the second control valve 17b. When the opening degree of the second control valve 17b is changed and hydraulic fluid is supplied to the inside of the housing 37 via the second fluid passage 18b, the pressing member 36d moves to the pressing side (connecting side) against the biasing force of the spring, causing the friction plate 36c to press against the side surface of the housing 37, and the reverse clutch section 36 becomes connected. The power of the drive shaft 5a is transmitted to the gear 39 which rotates integrally with the cylindrical shaft 36b. When hydraulic fluid is discharged from the housing 37 side to the second fluid passage 18b, the pressing member 36d moves to the disconnecting side due to the biasing force of the spring, causing the friction plate 36c to separate from any part on the housing 37 side, and the reverse clutch section 36 becomes disconnected. The power of the drive shaft 5a is not transmitted to the gear 39. The output gear (output gear) 39 of the reverse clutch unit 36 meshes with the output shaft 5b3. When the reverse clutch unit 36 is engaged, driving force is transmitted to the output shaft 5b3.
[0041] The main transmission unit 5c is a continuously variable transmission mechanism that continuously changes the input power. As shown in Figure 2, the continuously variable transmission mechanism includes a hydraulic pump 5c1, a hydraulic motor 5c2, and a planetary gear mechanism 5c3. The hydraulic pump 5c1 is rotated by power from the output shaft 5b3 of the shuttle unit 5b. The hydraulic pump 5c1 is a variable displacement pump that includes, for example, a swash plate 12, and the flow rate of the hydraulic fluid output from the hydraulic pump 5c1 can be changed by changing the angle of the swash plate 12 (swash plate angle). The hydraulic motor 5c2 is a motor that is rotated by the hydraulic fluid output from the hydraulic pump 5c1 via a fluid passage such as a pipe. The rotational speed of the hydraulic motor 5c2 can be changed by changing the swash plate angle of the hydraulic pump 5c1 or by changing the power input to the hydraulic pump 5c1.
[0042] As shown in Figure 2, the planetary gear mechanism 5c3 includes multiple gears (hedral gears) and power transmission shafts, including input shafts and output shafts. The planetary gear mechanism 5c3 includes an input shaft 13 to which power from the hydraulic pump 5c1 is input, an input shaft 14 to which power from the hydraulic motor 5c2 is input, and an output shaft 15 to which power is output. The planetary gear mechanism 5c3 combines the power from the hydraulic pump 5c1 and the power from the hydraulic motor 5c2 and transmits the combined power to the output shaft 15.
[0043] Therefore, in the main transmission unit 5c, it is possible to change the power output to the sub-transmission unit 5d by changing the swash plate angle of the swash plate 12 of the hydraulic pump 5c1, the rotational speed of the prime mover 4, etc. .
[0044] In this preferred embodiment, the angle of the swash plate 12 can be changed by the hydraulic fluid supplied from the third control valve 17c. The swash plate 12 and the third control valve 17c are connected, for example, by a third fluid passage 18c through which hydraulic fluid is supplied and discharged. The third control valve 17c is a two-position switching valve equipped with a solenoid valve, and by controlling the hydraulic fluid flowing through the third fluid passage 18c by energizing / de-energizing the solenoid of the solenoid valve, the angle of the swash plate 12 can be controlled, in other words, the power output to the sub-transmission unit 5d can be changed. The main transmission unit 5c, which includes a continuously variable transmission mechanism, may be a multi-speed transmission mechanism that uses gears to change speeds.
[0045] The sub-transmission unit 5d is a transmission mechanism that includes a multi-stage speed gear (hedron gear) that changes the speed of the power. The sub-transmission unit 5d outputs the power input from the output shaft 15 of the planetary gear mechanism 5c3 by appropriately changing the connection (meshing) of multiple gears (performing speed changes). As shown in Figure 2, the sub-transmission unit 5d includes an input shaft 5d1, a first speed clutch 5d2, a second speed clutch 5d3, and an output shaft 5d4. The input shaft 5d1 is the shaft to which the power from the output shaft 15 of the planetary gear mechanism 5c3 is input. The input shaft 5d1 inputs power to the first speed clutch 5d2 and the second speed clutch 5d3 via gears, etc. The input power changes by switching the connection and disconnection of the first speed clutch 5d2 and the second speed clutch 5d3, respectively, and is output to the output shaft 5d4. The power output from the output shaft 5d4 is transmitted to the rear differential gear 20R. The rear differential gear 20R rotatably supports the rear axle 21R to which the rear wheels 7R are attached.
[0046] As shown in Figure 2, the PTO power transmission unit 5e includes a PTO clutch 5e1, a PTO drive shaft 5e2, and a PTO speed change unit 5e3. The PTO clutch 5e1 includes, for example, a hydraulic clutch, and by engaging and disengaging the hydraulic clutch, it is possible to switch between a state in which power from the drive shaft 5a is transmitted to the PTO drive shaft 5e2 and a state in which power from the drive shaft 5a is not transmitted to the PTO drive shaft 5e2. The PTO speed change unit 5e3 includes a speed change clutch and multiple gears, and changes the speed of the power (rotational speed) input from the PTO drive shaft 5e2 to the PTO speed change unit 5e3 and outputs it. The power from the PTO speed change unit 5e3 is transmitted to the PTO shaft 16 via gears, etc.
[0047] As shown in Figure 2, the front transmission unit 5f includes a first front transmission clutch 5f1 and a second front transmission clutch 5f2. Power from the sub-transmission unit 5d can be transmitted to the first front transmission clutch 5f1 and the second front transmission clutch 5f2. For example, power from the output shaft 5d4 is transmitted to the first front transmission clutch 5f1 and the second front transmission clutch 5f2 via gears and a power transmission shaft. Power from the first front transmission clutch 5f1 and the second front transmission clutch 5f2 can be transmitted to the front axle 21F via the front power transmission shaft 22. Specifically, the front power transmission shaft 22 is connected to the front differential 20F. The front differential 20F rotatably supports the front axle 21F to which the front wheels 7F are mounted.
[0048] As shown in Figure 2, the first front transmission clutch 5f1 and the second front transmission clutch 5f2 each include a hydraulic clutch, etc. A fourth fluid passage 18d is connected to the first front transmission clutch 5f1, and this fluid passage is connected to a fourth control valve 17d to which hydraulic fluid output from a hydraulic pump is supplied, as shown in Figure 3. The first front transmission clutch 5f1 is switched between an connected state and an disconnected state depending on the opening degree of the fourth control valve 17d. As shown in Figure 2, a fifth fluid passage 18e is connected to the second front transmission clutch 5f2, and as shown in Figure 3, the fifth fluid passage 18e is connected to a fifth control valve 17e. The second front transmission clutch 5f2 is switched between an connected state and an disconnected state depending on the opening degree of the fifth control valve 17e. The fourth control valve 17d and the fifth control valve 17e are each, for example, two-position switching valves equipped with solenoid valves, and are switched between an connected state and an disconnected state by energizing or deenergizing the solenoid of the solenoid valve.
[0049] When the first front transmission clutch 5f1 is disengaged and the second front transmission clutch 5f2 is engaged, power from the sub-transmission unit 5d is transmitted to the front wheels 7F via the second front transmission clutch 5f2. As a result, four-wheel drive (4WD) is performed, with the front wheels 7F and rear wheels 7R driven by power, and the rotational speeds of the front wheels 7F and rear wheels 7R are equal or substantially equal (4WD constant speed state, constant speed drive). When the first front transmission clutch 5f1 is engaged and the second front transmission clutch 5f2 is disengaged, four-wheel drive is performed, and the rotational speed of the front wheels 7F becomes faster than the rotational speed of the rear wheels 7R (4WD increased speed state, increased speed drive). When the first front transmission clutch 5f1 and the second front transmission clutch 5f2 are engaged, power from the sub-transmission unit 5d is not transmitted to the front wheels 7F. In this way, two-wheel drive (2WD) is performed, with the rear wheels 7R driven by power. The configuration of the transmission 5 is not limited to the above configuration, as long as it can switch between forward rotation, reverse rotation, etc., of the running gear 7.
[0050] As shown in Figure 3, the work machine 1 includes a braking device 25. The braking device 25 includes a left braking device 25a and a right braking device 25b. Each of the left braking device 25a and the right braking device 25b is a disc-type braking device 25 that can be switched between a braking state and a release state. The left braking device 25a is located on the left side of the rear axle 21R and brakes the left rear wheel 7R (first wheel 7R1). The right braking device 25b is located on the right side of the rear axle 21R and brakes the right rear wheel 7R (second wheel 7R2).
[0051] Near the driver's seat 10, for example, a left brake pedal (not shown) and a right brake pedal (not shown) are provided. In response to the operator operating the work machine 1 by pressing down on the left brake pedal, the left connecting member 26a connected to the left brake pedal moves in the braking direction, and the left braking device 25a can be put into a braking state. In response to the operator operating down on the right brake pedal by pressing down on the right brake pedal, the right connecting member 26b connected to the right brake pedal moves in the braking direction, and the right braking device 25b can be put into a braking state.
[0052] The left hydraulic actuation unit 27a, which is operated by hydraulic fluid, is connected to the left connecting member 26a. The sixth control valve 17f is connected to the left hydraulic actuation unit 27a via the sixth fluid passage 18f. By operating the left hydraulic actuation unit 27a with the sixth control valve 17f, the left connecting member 26a can be moved in the braking direction. The right hydraulic actuation unit 27b, which is operated by hydraulic fluid, is connected to the right connecting member 26b. The seventh control valve 17g is connected to the right hydraulic actuation unit 27b via the seventh fluid passage 18g. By operating the right hydraulic actuation unit 27b with the seventh control valve 17g, the right connecting member 26b can be moved in the braking direction.
[0053] As described above, the left brake device 25a and the right brake device 25b can independently apply braking to the left rear wheel 7R (first wheel 7R1) and the right rear wheel 7R (second wheel 7R2), respectively, not only by operating the left and right brake pedals, but also by operating the left hydraulic actuation unit 27a and the right hydraulic actuation unit 27b. In this preferred embodiment, the left brake device 25a is provided on the left side of the rear axle 21R, the right brake device 25b is provided on the right side of the rear axle 21R, and the brake device 25 applies braking to the rear wheel 7R of the wheels 7F, 7R. However, instead of or in addition to the left brake device 25a and the right brake device 25b, the brake device 25 may be provided on the left and right sides of the front axle 21F, respectively, to apply braking to each front wheel 7F.
[0054] As shown in Figure 3, the lifting device 8 includes a lift arm 8a, a lower link 8b, a top link 8c, a lift rod 8d, and a lift cylinder 8e. The front end of each lift arm 8a is supported so as to be able to swing up and down on the rear upper part of the case (transmission case) housing the transmission 5. The lift arm 8a swings (rises and falls) by the drive of the lift cylinder 8e. The lift cylinder 8e includes a hydraulic cylinder. The lift cylinder 8e is connected to a hydraulic pump via an eighth control valve 17h. The eighth control valve 17h is a solenoid valve or the like, and extends and retracts the lift cylinder 8e.
[0055] As shown in Figure 3, the front end of each lower link 8b is supported so as to be able to swing up and down at the rear lower part of the transmission 5. The front end of the top link 8c is supported so as to be able to swing up and down above the lower links 8b and at the rear of the transmission 5. The lift rod 8d connects the lift arm 8a and the lower links 8b to each other. The working device 2 is connected to the rear of the lower links 8b and the rear of the top link 8c. When the lift cylinder 8e is driven (extends), the lift arm 8a moves up and down, and the lower links 8b, which are connected to the lift arm 8a via the lift rod 8d, also move up and down. As a result, the working device 2 swings up and down (moves up and down) with the front of the lower links 8b as the pivot point.
[0056] As shown in Figure 3, the steering device (steering mechanism) 11 can change the direction of the machine 3 by changing the steering angle of the running gear 7. The steering device 11 includes a steering handle (steering wheel) 11a, a steering shaft 11b that rotates in conjunction with the rotation of the steering handle 11a, and an assist mechanism (power steering mechanism) 11c that assists the steering of the steering handle 11a. The steering handle 11a operates the steering of the machine 3 and is operated manually by the operator. The assist mechanism 11c includes a ninth control valve 17i and a steering cylinder 32. The ninth control valve 17i is a three-position switching valve that can be switched, for example, by moving a spool. The ninth control valve 17i can also be switched by steering the steering shaft 11b. The steering cylinder 32 is connected to an arm (knuckle arm) 33 that changes the direction of the front wheel 7F. Therefore, when the steering handle 11a is operated, the opening position and degree of the ninth control valve 17i are switched accordingly, and the steering cylinder 32 extends or retracts to the left or right according to the opening position and degree of the ninth control valve 17i, thereby changing the steering direction of the front wheels 7F. Note that the steering device 11 described above is just one example and is not limited to having the above configuration.
[0057] As shown in Figure 3, the work machine 1 includes a controller 40. The controller 40 is a device configured or programmed to perform various control operations of the work machine 1. In a preferred embodiment, a plurality of detectors 41 are connected to the controller 40. The plurality of detectors 41 are detectors that detect the state of the work machine 1, and include, for example, a water temperature sensor 41a for detecting water temperature, a fuel sensor 41b for detecting the remaining amount of fuel, a prime mover rotation sensor (rotation sensor) 41c for detecting the rotational speed (rotational speed) of the prime mover 4, an accelerator pedal sensor 41d for detecting the amount of operation of the accelerator 42f, a steering angle sensor 41e for detecting the steering angle of the steering device 11, an angle sensor 41f for detecting the angle of the lift arm 8a, a tilt detection sensor 41g for detecting the tilt of the machine body 3 in the width direction (rightward or leftward), a rotational speed sensor 41h for detecting the rotational speed (rotational speed) of the wheels 7F, 7R, a PTO rotation sensor (rotation sensor) 41i for detecting the rotational speed (rotational speed) of the PTO shaft 16, and a battery sensor 41j for detecting the voltage of a storage battery such as a battery. The rotation speed sensor 41h can detect the rotation speeds of wheels 7F and 7R based, for example, on the rotation speeds of the front axle 21F and the rear axle 21R. Furthermore, the rotation speed sensor 41h can detect the rotation direction of any of the front axle 21F, rear axle 21R, front wheel 7F, or rear wheel 7R, and can also detect whether the work machine 1 (machine body 3) is moving forward or backward. The detector 41 described above is just one example and is not limited to the sensor described above.
[0058] In a preferred embodiment, a plurality of operating members 42 are connected to the controller 40. The plurality of operating members 42 include a forward / reverse switching lever (shuttle lever) 42a for switching between forward and reverse movement of the machine 3, an ignition switch 42b for starting the prime mover 4, and a PT The operating components include a PTO shift lever 42c for setting the rotational speed of the O-axis 16, a shift switch 42d for switching between automatic and manual shifting, a shift lever 42e for manually switching the gear position (gear stage) of the transmission 5, an accelerator 42f for increasing and decreasing vehicle speed, a lifting switch 42g for operating the lifting device 8, an upper limit setting dial 42h for setting the upper limit of the lifting device 8, a vehicle speed lever 42i for setting the vehicle speed, and a switching device 42j for switching the transmission 5 between constant speed drive, increased speed drive, and 2WD. Note that the operating components 42 described above are examples and are not limited thereto.
[0059] In a preferred embodiment of the present invention, the work machine 1 may include one or more position detectors 43, one or more LiDAR sensors 54, and one or more other sensors 56 such as a weather sensor or a camera. In a preferred embodiment, one or more position detectors 43, one or more LiDAR sensors 54, and one or more other sensors 56 are connected to a controller 40. One or more position detectors 43 can detect the position of the machine 3 (machine position W1), including measured position information such as latitude and longitude, via a satellite positioning system (positioning satellite) such as D-GPS, GPS, GLONASS, Beidou, Galileo, or Michibiki. That is, one or more position detectors 43 receive satellite signals (positioning satellite position, transmission time, correction information, etc.) transmitted from the positioning satellite and detect the position of the work machine 1 (e.g., latitude and longitude) based on the satellite signals.
[0060] As shown in Figure 1A, one or more position detectors 43, one or more LiDAR sensors 54, and one or more other sensors 56 can be mounted on the upper part (roof) of the cabin 9 that covers the driver's seat 10 of the work machine 1. Power cables and / or data cables for one or more position detectors 43, one or more LiDAR sensors 54, and one or more other sensors 56 can be routed through the inside of the roof. The roof may be attached to or integrated with the struts of the cabin 9, for example, as shown in Figure 1A. The structure including the roof and struts may constitute a rollover protection structure (ROPS) for the work machine 1. As shown in Figure 1A, one or more LiDAR sensors 54 can be mounted on the upper part (roof) of the cabin 9. One or more LiDAR sensors 54 can be tilted relative to the roof. Preferably, for example, the LiDAR sensors 54 may be adjustable and each may include an adjustable mounting base. Thus, the LiDAR sensors 54 can be adjusted to optimize the LiDAR angle to suit a particular mounting configuration or use of the roof. For example, the LiDAR sensor 54 can be set at an angle of approximately 40 degrees to the surface of the roof and / or can have an ultra-wide field of view. The mounting positions and configurations of one or more position detectors 43, one or more LiDAR sensors 54, and one or more other sensors 56 are not limited to the configuration described above, and may be placed in other parts of the work machine 1 where each of the one or more position detectors 43, one or more LiDAR sensors 54, and one or more other sensors 56 can perform their respective functions.
[0061] In a preferred embodiment of the present invention, the work machine 1 may include an automatic steering control unit 40a that controls the automatic steering of the machine body 3 based on information including the machine body position W1 and information from one or more LiDAR sensors 54 and / or one or more sensors 56. More specifically, as shown in Figure 3, the controller 40 includes the automatic steering control unit 40a. The automatic steering control unit 40a includes electrical / electronic circuits provided in the controller 40, a program stored in a CPU, etc. The automatic steering control unit 40a controls the assist mechanism 11c so that the machine body 3 travels along a planned travel path L based on a control signal output from the controller 40. The automatic steering control unit 40a includes a first control unit 40a1. The first control unit 40a1 sets the steering angle of the steering device 11 based on the planned travel path L, and the planned travel path L is set using a computer such as a PC (Personal Computer), smartphone (multifunctional mobile phone), or tablet connected to or included in the work machine 1. It is determined. For example, as detailed below, the controller 40 can set the planned travel route L.
[0062] As shown in Figure 4, the planned travel route L can be set based on a field map M which includes location information for parts of the field and the locations of one or more obstacles O within the field. In a preferred embodiment, the field map M may include predetermined (e.g., predetermined / stored before the implement 1 enters the field) and / or updated (e.g., determined as the implement travels through the field). For example, as shown in Figure 4, the field map M may include location information for a field area E1 including ridges and the areas around the ridges, a field area E2 other than area E1, and obstacles O located within the field. As will be described in more detail below, one or more LiDARs 54 may be used to detect one or more obstacles O within the field as the implement 1 travels through the field. When one or more obstacles O are detected, the field map M may be updated to include location information for one or more obstacles O, and if necessary, the planned travel route L may be updated based on the updated field map including location information for one or more obstacles O. In other words, as will be described in more detail later, the controller 40 is configured or programmed to determine whether or not to update the planned travel route of the implement based on the updated field map including location information for one or more obstacles O.
[0063] The planned travel route L may include a straight section L1 in which the machine 3 travels in a straight line, a turning section L2 in which the machine 3 turns, and an avoidance section L3 in which the machine 3 is controlled to avoid an obstacle O. In a preferred embodiment of the present invention, the controller 40 generates the planned travel route L. For example, the controller 40 may be configured or programmed to function as a global planner and a local planner that generate the planned travel route L. The global planner generates an initial planned travel route L based on desired waypoints on a field map M. An example of a global planner is the Dijkstra Global Planner, which is known to those skilled in the art. The local planner receives the initial planned travel route L generated by the global planner and modifies / updates the initial planned travel route L so that if there is an obstacle on the initial planned travel route L, for example, if an obstacle is detected by one or more LiDARs 54 as the implement 1 travels through the field, the implement 1 avoids the obstacle O by traveling through the avoidance section L3. For example, a local planner can use a time elastic band (TEB), known to those skilled in the art, to create a sequence of intermediate work machine poses (pose) 1 (x coordinate, y coordinate, azimuth θ) in order to modify the initial planned travel path L generated by the global planner. Thus, the controller 40 is configured or programmed to determine whether or not to update the planned travel path L of the work machine based on obstacles detected by one or more LiDARs 54.
[0064] In a preferred embodiment, the first control unit 40a1 controls the machine body 3 to travel along a planned travel path L when the work machine 1 is performing automatic travel. That is, if the deviation between the machine body 3 and the planned travel path L is less than a preset first set value, the automatic travel control unit of the first control unit 40a1 maintains the rotation angle of the rotating shaft 11b. If the deviation between the machine body 3 and the planned travel path L is greater than or equal to the first set value, the automatic travel control unit of the first control unit 40a1 rotates the rotating shaft 11b so that the deviation becomes zero.
[0065] Specifically, as shown in Figure 5, if the deviation (position deviation) between the machine position W1 and the planned travel path L is less than a preset first set value, the first control unit 40a1 maintains the rotation angle of the rotation axis 11b. If the position deviation between the machine position W1 and the planned travel path L is greater than or equal to the first set value, and the work machine 1 is located to the left of the planned travel path L, the first control unit 40a1 rotates the rotation axis 11b so that the steering direction of the work machine 1 is to the right. If the position deviation between the machine position W1 and the planned travel path L is greater than or equal to the first set value, and the work machine 1 is located to the left of the planned travel path L If it is located on the right side, the first control unit 40a1 rotates the rotation shaft 11b so that the steering direction of the work machine 1 is to the left.
[0066] In the preferred embodiment described above, the steering angle of the steering device 11 is changed based on the positional deviation between the machine position W1 and the planned travel path L. However, as shown in Figure 5, if the course of the planned travel path L and the course (machine path) F1 of the travel direction (direction of travel) of the work machine 1 (machine 3) are different, in other words, if the angle (course deviation) θg of the machine path F1 with respect to the planned travel path L is greater than or equal to the second set value, the first control unit 40a1 may set the steering angle so that the angle θg becomes zero (machine path F1 matches the course of the planned travel path L). The first control unit 40a1 may set the final steering angle for automatic driving based on the steering angle obtained based on the deviation (positional deviation) and the steering angle obtained based on the angle (path deviation) θg. The setting of the steering angle for automatic driving in the preferred embodiment described above is just an example and is not limiting.
[0067] The work machine 1 can change and turn its course F1 by creating a rotational difference between the first wheel 7R1 and the second wheel 7R2. The work machine 1 is equipped with a rotational difference generating device that creates a rotational difference between the first wheel 7R1 and the second wheel 7R2. The automatic steering control unit 40a has a second control unit 40a2 that controls the rotational difference generating device to create a rotational difference between the first wheel 7R1 and the second wheel 7R2.
[0068] The rotational difference generating device generates a rotational difference between the first wheel 7R1 and the second wheel 7R2 by independently braking each of the first wheel 7R1 and the second wheel 7R2, or by independently transmitting driving force to each of the first wheel 7R1 and the second wheel 7R2. When the rotational difference generating device makes the rotational speed of the first wheel 7R1 higher than that of the second wheel 7R2, the thrust force of the machine 3 to the left becomes greater than the thrust force to the right, and the machine 3 travels with its course F1 pointing to the right. When the rotational difference generating device makes the rotational speed of the second wheel 7R2 higher than that of the first wheel 7R1, the thrust force of the machine 3 to the right becomes greater than the thrust force to the left, and the machine 3 travels with its course F1 pointing to the left.
[0069] In this preferred embodiment, the rotation difference generating device is the braking device 25 described above. The braking device 25 generates a rotation difference between the first wheel 7R1 and the second wheel 7R2 by switching at least one of the left braking device 25a and the right braking device 25b between a braking state in which braking is performed and a release state in which braking is not performed. For example, if the left braking device 25a and the right braking device 25b are controlled to make the braking force of the right braking device 25b greater than the braking force of the left braking device 25a, the thrust of the first wheel 7R1 becomes greater than the thrust of the second wheel 7R2, and a rotation difference is generated between the first wheel 7R1 and the second wheel 7R2. By controlling the left brake 25a and the right brake 25b to make the braking force of the left brake 25a greater than the braking force of the right brake 25b, the thrust of the second wheel 7R2 becomes greater than the thrust of the first wheel 7R1, and a rotational difference is created between the first wheel 7R1 and the second wheel 7R2.
[0070] Furthermore, the rotation difference generating device 25 is not limited to the configuration described above. The rotation difference generating device 25 is not limited to the braking device 25, as long as it can generate a rotation difference between the first wheel 7R1 and the second wheel 7R2. For example, it could be a transmission 5 that transmits independent driving force to the first wheel 7R1 and the second wheel 7R2 by switching gears.
[0071] As shown in Figure 3, the work machine 1 includes a state acquisition unit 40d that acquires the state of the transmission 5. The state acquisition unit 40d includes, for example, electrical / electronic circuits included in the controller 40, a program stored in the CPU, etc. The state acquisition unit 40d acquires operation information of the switching device 42j and, based on that information, switches the transmission 5 to either constant speed drive, increased speed drive, or 2WD. Information is obtained on whether the transmission is in operation. Then, the pumping setting unit 60 determines, based on the state of the transmission 5 obtained by the state acquisition unit 40d, whether the transmission 5 is switched to acceleration drive or constant speed drive.
[0072] As shown in Figure 3, the work machine 1 includes a speed acquisition unit 40c that acquires the machine speed. The speed acquisition unit 40c includes, for example, electrical / electronic circuits included in the controller 40, a program stored in the CPU, etc. The speed acquisition unit 40c acquires information about the machine 3 from sensors provided on the work machine 1 and acquires the machine speed based on that information. For example, the speed acquisition unit 40c may acquire the machine speed by calculating the machine speed based on the rotational speed of the wheels 7F and 7R, or by calculating the actual machine speed based on the machine position W1 detected by the position detector 43 and the time of detection. The pumping setting unit 60 then sets the duty cycle based on the machine speed acquired by the speed acquisition unit 40c.
[0073] As shown in Figure 3, the work machine 1 includes a steering angle acquisition unit 40e that acquires the steering angle of the steering device 11. The steering angle acquisition unit 40e includes, for example, electrical / electronic circuits included in the controller 40, a program stored in the CPU, etc. The steering angle acquisition unit 40e acquires the steering angle based on a signal acquired from, for example, the steering angle sensor 41e. The method of acquiring the steering angle is not limited to the method described above. The steering angle acquisition unit 40e can acquire the steering angle set by the first control unit 40a1 from the first control unit 40a1. Then, based on the steering angle acquired by the steering angle acquisition unit 40e, the pumping setting unit 60 determines whether the steering angle is greater than or equal to a predetermined steering angle. The steering angle is a value stored in advance in a memory device, etc., and can be changed arbitrarily.
[0074] In a preferred embodiment of the present invention, one or more LiDARs 54 are used to detect one or more obstacles around the work machine 1. One or more LiDARs 54 may include, for example, an Ouster OS0-32 lidar sensor having a vertical field of view of 90° (±45°). Alternatively, one or more LiDARs 54 may include different LiDAR sensors or LiDAR cameras and / or have different fields of view. Figure 6 shows a flowchart including steps included in a process according to a preferred embodiment of the present invention. In a preferred embodiment, one or more LiDARs 54 include a controller 541 configured or programmed to perform the steps shown in Figure 6. Alternatively, the controller 40 may be configured or programmed to perform the steps shown in Figure 6.
[0075] In step S6-1, a three-dimensional point cloud is generated using one or more LiDAR 54s within the range and field of view of one or more LiDAR 54s. The three-dimensional point cloud includes data points representing objects and space around the work machine 1. Each data point included in the three-dimensional point cloud includes x, y, and z coordinates. In a preferred embodiment, an averaged horizontal convolution filter may be used to stabilize changes in the data points.
[0076] In a preferred embodiment, the three-dimensional point cloud includes data points representing objects and space around the entire circumference of the work machine 1; however, alternatively, the three-dimensional point cloud may include data points representing only a portion of the objects and space around the work machine 1. For example, the three-dimensional point cloud may include data points representing objects and space around the front portion of the work machine 1 (e.g., 90 degrees or 180 degrees in front of the work machine 1), or it may include data points representing objects and space around the front and rear portions of the work machine 1 (e.g., 90 degrees between the front and rear of the work machine 1). In the example shown in Figure 1B, the front LiDAR 54 is used to generate data points for the three-dimensional point cloud in the range / field of view 54-1 of the front LiDAR 54, and the rear LiDAR 54 is used to generate data points for the three-dimensional point cloud in the range / field of view 54-2 of the rear LiDAR 54.
[0077] In step S6-2, the three-dimensional point cloud is filtered to remove data points from the three-dimensional point cloud that correspond to a part of the work machine 1. For example, data points from the three-dimensional point cloud that correspond to parts of the work machine 1, such as the bonnet and rear fender of the main body 3, the traveling device 7, the lifting device 8, and the work machine 2, are removed from the three-dimensional point cloud to generate a filtered three-dimensional point cloud. In a preferred embodiment, data points from the three-dimensional point cloud that correspond to parts of the work machine 1, such as the bonnet and rear fender of the main body 3, the traveling device 7, the lifting device 8, and the work machine 2, can be identified based on a known positional relationship between one or more LiDARs 54 and parts of the work machine 1, such as the bonnet and rear fender of the main body 3, the traveling device 7, the lifting device 8, and the work machine 2. In other words, one or more LiDAR 54s and parts of the work machine 1 such as the bonnet and rear fender of the main body 3, the travel device 7, the lifting device 8, and the work device 2 have a certain positional relationship with each other. Therefore, using this fixed positional relationship, it is possible to determine which point in the three-dimensional point cloud corresponds to which part of the work machine 1.
[0078] For example, in Figure 1B, based on the known positional relationships between the front LiDAR 54 and the bonnet and front wheel 7F of the main unit 3, the three-dimensional point cloud data points generated within the range / field of view 51-1 of the front LiDAR 54 may be filtered to remove the data points corresponding to the bonnet and front wheel 7F of the main unit 3. In Figure 1B, the data points corresponding to the bonnet and front wheel 7F of the main unit 3 are enclosed by thick dotted lines. Similarly, based on the known positional relationships between the rear LiDAR 54 and the rear fender, rear wheel 7R, lifting device 8, and working device 2 of the main unit 3, the three-dimensional point cloud data points generated within the range / field of view 51-2 of the rear LiDAR 54 may be filtered to remove the data points corresponding to the rear fender, rear wheel 7R, lifting device 8, and working device 2 of the main unit 3. In Figure 1B, the points corresponding to the rear fender, rear wheel 7R, lifting device 8, and working device 2 of the main unit 3 are enclosed by thick dotted lines.
[0079] In steps S6-3 and S6-4, the filtered three-dimensional point cloud generated in step S6-2 is further filtered to eliminate / remove additional data points from the three-dimensional point cloud.
[0080] In a preferred embodiment, step S6-3 includes processing and filtering the three-dimensional point cloud generated in step S6-2 using a voxel grid 70. The voxel grid 70 is a three-dimensional grid organized into layers of rows and columns. The intersection of each row, column, and layer of the voxel grid 70 is referred to as a voxel 701, which is represented as a three-dimensional cube, for example, as shown in Figure 7. The size of the voxels 701 included in the voxel grid 70 can be set based on factors such as the size of the work machine 1 or the environment in which the work machine 1 operates. For example, the size of each voxel 701 can be set to 0.1 meters, or it can be set to 0.3 meters, 0.5 meters, or other values.
[0081] Figure 7 shows an example of a voxel grid 70 used for processing and filtering the three-dimensional point cloud generated in step S6-2. In the example shown in Figure 7, the voxel grid 70 is used to process and filter the three-dimensional point cloud generated in step S6-2, which includes data points representing objects and space around the front of the work machine 1. As mentioned above, the three-dimensional point cloud may also include data points representing objects and space around other parts or the entire circumference of the work machine 1.
[0082] In a preferred embodiment, the voxel grid 70 includes one or more active (hereinafter "active") voxels 701a. An active voxel 701a is a voxel 701 containing data points from a three-dimensional point cloud corresponding to an object or a part of an object. For example, an active voxel 701a is a voxel 701 occupied by at least one data point from a three-dimensional point cloud corresponding to an object such as agricultural equipment, ground, a person, other objects, or parts thereof. In Figure 7, an active voxel 701a is represented by a voxel containing a dot within the voxel 701. For illustrative purposes, Figure 7 shows only the active voxels 701a included in the voxel rows on the side of the voxel grid 70. That is, active voxels 701a may be present throughout the entire voxel grid 70, but Figure 7 shows only the active voxels 701a included in the voxel rows on the side of the voxel grid 70.
[0083] In a preferred embodiment of the present invention, in step S6-3, the filter 72 is applied to the voxel grid 70. The filter 72 erases / removes a specific active voxel 701a from the voxel grid 70 by changing that active voxel 701a to an empty / inactive voxel 701 (hereinafter referred to as "inactive"). In steps S6-3 and S6-4, when the active voxel 701a is erased / removed from the voxel grid 70 by changing it to an empty / inactive voxel 701, the data points of the three-dimensional point cloud contained in the active voxel 701a are erased / removed from the three-dimensional point cloud when the active voxel 701a is erased / removed from the voxel grid 70. In this way, the voxel grid 70 is used for processing and filtering the three-dimensional point cloud in steps S6-3 and S6-4.
[0084] In a preferred embodiment of the present invention, the filter 72 applied in step S6-3 can erase / remove active voxels 701a from the voxel grid 70 by changing active voxels 701a located below the filter 72 in the z-direction (vertical direction of the voxel grid 70) of the voxel grid 70 to empty / inactive voxels 701. The filter 72 can be represented by a plane parallel to the bottom surface of the voxel grid 70 and located at a predetermined distance from the bottom surface. For example, in Figure 7, the filter 72 is represented by a plane 72a parallel to the bottom surface of the voxel grid 70 and located at a predetermined distance of 3 voxels from the bottom surface of the voxel grid 70. The predetermined distance of the plane 72a from the bottom surface of the voxel grid 70 may be a predetermined distance other than 3 voxels, such as 1 voxel or 5 voxels.
[0085] Figure 8A is a side view showing an example of a voxel grid 70 used for processing and filtering the three-dimensional point cloud generated in step S6-2. Specifically, Figure 8A shows a side view of the voxel grid 70 in Figure 7 before the filter 72 erases / removes the active voxel 701a from the voxel grid 70. Figure 8B is a side view showing the voxel grid 70 after the filter 72 erases / removes the active voxel 701a from the voxel grid 70. More specifically, Figure 8B shows an example in which the filter 72 erases / removes the active voxel 701a from the voxel grid 70 by changing the active voxel 701a located below the plane 72a in the z direction of the voxel grid 70 to an empty / inactive voxel 701.
[0086] The filter 72 is not limited to being represented by a plane parallel to the bottom surface of the voxel grid 70. For example, the filter 72 can be represented by an inclined surface 72b that rises at a predetermined gradient in the direction away from the work implement 1 or a point adjacent to the work implement 1, starting from that point. For example, as shown in Figure 7, the filter 72 can be represented by an inclined surface 72b that starts at a point located on the bottom surface of the work implement 1 and rises at a predetermined gradient as it moves away from that point.
[0087] Figure 9A is a side view showing an example of a voxel grid 70 used for processing and filtering a three-dimensional point cloud when the filter 72 is represented by an inclined surface 72b. Specifically, Figure 9A shows a side view of the voxel grid 70 of Figure 7 before the filter 72 erases / removes the active voxels 701a. Figure 9B is a side view showing the voxel grid 70 after the filter 72 erases / removes the active voxels 701a. More specifically, Figure 9B shows an example in which the filter 72 erases / removes the active voxels 701a from the voxel grid 70 by changing the active voxels 701a that the surface 72b passes through, and the active voxels 701a located below the surface 72b in the z-direction of the voxel grid 70, into empty / inactive voxels 701. Alternatively, the filter 72 may not erase / remove the active voxels 701a that the surface 72b passes through, but only erase / remove the active voxels 701a located below the surface 72b in the z-direction of the voxel grid 70.
[0088] In the example described above, the filter 72 represented by the plane 72a erases / removes the active voxels 701a located below the plane 72a in the z-direction of the voxel grid 70, and the filter 72 represented by the inclined surface 72b erases / removes the active voxels 701a that the surface 72b passes through and the active voxels 701a located below the surface 72b in the z-direction of the voxel grid 70. In this way, in step S6-3, the filter 72 represented by the plane 72a or the filter 72 represented by the inclined surface 72b can erase / remove the active voxels 701a corresponding to the portion of the ground around the implement 1 and / or the portion of small agricultural-related objects located on the ground around the implement 1. Therefore, in step S6-3, when deleting / removing the active voxel 701a from the voxel grid 70, data points from the three-dimensional point cloud contained in the active voxel 701a that correspond to the portion of the ground around the implement 1 and / or small agricultural-related objects located on the ground around the implement 1 are deleted / removed from the three-dimensional point cloud.
[0089] In an alternative, preferred embodiment, the filter 72 may erase / remove active voxels 701a located above the plane 72a in the z-direction of the voxel grid 70, or it may erase / remove active voxels 701a located above the plane 72b in the z-direction of the voxel grid 70 and through the plane 72b. In this way, in step S6-3, based on the position of the plane 72a or plane 72b in the z-direction of the voxel grid 70, the filter 72 represented by the plane 72a or inclined plane 72b can erase / remove active voxels 701a corresponding to the canopy or other agricultural equipment above the implement 1.
[0090] In another alternative preferred embodiment, two or more filters 72 may be used to erase / remove active voxels 701a from the voxel grid 70. For example, a first filter 72 may be used to erase / remove active voxels 701a located below the first plane 72a1 in the z-direction of the voxel grid 70, and a second filter 72 may be used to erase / remove active voxels 701a located above the second plane 72a2 in the z-direction of the voxel grid 70. Figure 10A is a side view showing an example of the voxel grid 70 of Figure 7 generated based on the filtered three-dimensional point cloud generated in step S6-2, and Figure 10B is a side view showing the voxel grid 70 after the active voxels 701a have been erased / removed using the first and second filters 72.
[0091] In a preferred embodiment of the present invention, step S6-4 includes applying an object filter to the voxel grid 70. For example, step S6-4 includes applying an object filter to the voxel grid 70 after step S6-3 has been completed. The object filter clears / removes a particular active voxel 701a from the voxel grid 70 by changing the active voxel 701a to an empty / inactive voxel 701.
[0092] In a preferred embodiment of the present invention, the object filter is applied to individual voxel columns extending in the z direction of the voxel grid 70. For example, as shown in Figure 7, voxel column C1 An object filter is applied to individual voxel columns, such as voxel column C2 and voxel column C3.
[0093] Figure 11 is a flowchart showing the steps performed by the object filter in step S6-4. In step S11-1, the object filter identifies a specific voxel column contained in the voxel grid 70. For example, in step S11-1, the object filter may identify voxel column C1 as the specific voxel column. In step S11-2, the object filter determines whether or not there is an active voxel 701a in the specific voxel column identified in step S11-1. If the object filter determines in step S11-2 that there is no active voxel 701a in the specific voxel column identified in step S11-1, the process ends. On the other hand, if the object filter determines that there is at least one active voxel 701a in the specific voxel column identified in step S11-1, the process proceeds to step 11-3. In step S11-3, the object filter identifies the number of voxels (distance) between the active voxel with the maximum value in the z direction and the active voxel with the minimum value in the z direction within a given voxel sequence. In step S11-3, if the object filter determines that there is only one active voxel 701a in the given voxel sequence, the object filter interprets the number of voxels between the active voxel with the maximum value in the z direction and the active voxel with the minimum value in the z direction within that given voxel sequence as 1 voxel.
[0094] In step S11-4, the object filter determines whether the number of voxels identified in step S11-3 is less than a predetermined distance threshold. In a preferred embodiment, the predetermined distance threshold may be a predetermined number of voxels, such as 3 voxels. If the object filter determines that the number of voxels identified in step S11-3 is greater than or equal to the predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the number of voxels identified in step S11-3 is less than the predetermined distance threshold, the process proceeds to step S11-5. In step S11-5, the object filter deletes / removes all active voxels 701a included in a particular voxel column by changing the active voxels 701a to empty / inactive voxels 701.
[0095] As mentioned above, the object filter is applied to individual voxel columns extending in the z-direction of the voxel grid 70. An example of applying the object filter to individual voxel columns is described in detail below.
[0096] Figure 12A shows a side view of the voxel grid 70 of Figure 7 after the filter 72 has erased / removed the active voxel 701a from the voxel grid 70 by changing the active voxel 701a located below the plane 72a in the z direction of the voxel grid 70 to an empty / inactive voxel 701. In the first example, in step S11-1, the object filter identifies a particular voxel column in the voxel grid 70. For example, in step S11-1, the object filter may identify voxel column C1 shown in Figures 7 and 12A as a particular voxel column. In step S11-2, the object filter determines whether or not there is an active voxel 701a in the particular voxel column identified in step S11-1. For example, in step S11-2, since voxel column C1 contains two active voxels 701a, the object filter determines that voxel column C1 contains at least one active voxel 701a. In step S11-3, the object filter determines the active voxel with the maximum value in the z direction (highest active voxel) and the active voxel with the minimum value in the z direction (lowest active voxel) within voxel column C1. The number of voxels (distance) between active voxels is determined. For example, in step S11-3, the object filter determines that the number of voxels between the active voxel with the maximum value in the z direction and the active voxel with the minimum value in the z direction in voxel column C1 is 6 voxels (including the highest active voxel and the lowest active voxel). In step S11-4, the object filter determines whether the number of voxels determined in step S11-3 is less than a predetermined distance threshold. If the object filter determines that the number of voxels determined in step S11-3 is greater than or equal to the predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the number of voxels determined in step S11-3 is less than the predetermined distance threshold, the process proceeds to step S11-5. In this embodiment, if the predetermined distance threshold is set to 3 voxels, the object filter determines that the number of voxels of 6 voxels determined in step S11-3 is greater than or equal to the predetermined distance threshold of 3 voxels, and the process ends.
[0097] In the second example, in step S11-1, the object filter may identify voxel column C2, shown in Figure 12A, as a specific voxel column. In step S11-2, the object filter determines whether or not there are active voxels 701a in the specific voxel column identified in step S11-1. For example, in step S11-2, the object filter determines that voxel column C2 does not contain at least one active voxel 701a and terminates the process.
[0098] In the third example, in step S11-1, the object filter may identify voxel column C4 shown in Figure 12A as a specific voxel column. In step S11-2, the object filter determines whether or not there are active voxels 701a in the specific voxel column identified in step S11-1. For example, in step S11-2, since voxel column C4 contains four active voxels 701a, the object filter determines that voxel column C4 contains at least one active voxel 701a. In step S11-3, the object filter identifies the number of voxels between the active voxel with the maximum value in the z direction (highest active voxel) and the active voxel with the minimum value in the z direction (lowest active voxel) within voxel column C4. For example, in step S11-3, the object filter determines that the number of voxels between the active voxel with the maximum value in the z direction and the active voxel with the minimum value in the z direction within voxel column C4 is 4 voxels. In step S11-4, the object filter determines whether the number of voxels determined in step S11-3 is less than a predetermined distance threshold. If the object filter determines that the number of voxels determined in step S11-3 is greater than or equal to the predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the number of voxels determined in step S11-3 is less than the predetermined distance threshold, the process proceeds to step S11-5. In this embodiment, if the predetermined distance threshold is set to 3 voxels, the object filter determines that the number of voxels of 4 voxels determined in step S11-3 is greater than or equal to the predetermined distance threshold of 3 voxels, and the process ends.
[0099] In the fourth example, in step S11-1, the object filter may identify voxel column C6 shown in Figure 12A as a specific voxel column. In step S11-2, the object filter determines whether or not there is an active voxel 701a in the specific voxel column identified in step S11-1. For example, in step S11-2, since voxel column C6 contains two active voxels, the object filter determines that voxel column C6 contains at least one active voxel 701a. In step S11-3, the object filter determines the number of voxels (distance) between the active voxel with the maximum value in the z direction (highest active voxel) and the active voxel with the minimum value in the z direction (lowest active voxel) within voxel column C6. For example, in step S11-3, the object filter determines that the number of voxels between the active voxel with the maximum value in the z direction and the active voxel with the minimum value in the z direction within voxel column C6 is 2 voxels. In step S11-4, the object filter determines whether the number of voxels obtained in step S11-3 is less than a predetermined distance threshold. If the object filter determines that the number of voxels obtained in step S11-3 is greater than or equal to the predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the number of voxels obtained in step S11-3 is less than a predetermined distance threshold, in step S11-5, it deletes / removes all active voxels 701a included in a particular voxel column by changing the active voxel 701a to an empty / inactive voxel 701. In this embodiment, if a predetermined distance threshold is set to 3 voxels, the object filter determines that the number of voxels in the 2-voxel sequence obtained in step S11-3 is less than the predetermined distance threshold of 3 voxels. Therefore, in step S11-5, the object filter deletes / removes all active voxels 701a contained in voxel column C6 by changing the active voxel 701a to an empty / inactive voxel 701.
[0100] Figure 12B shows a side view of the voxel grid 70 after a specific active voxel 701a has been erased / removed from the voxel grid 70 in step 6-4 by applying an object filter to each of the individual voxel columns of the voxel grid 70 shown in Figure 12A, when a predetermined distance threshold is set to 3 voxels. As described above, the object filter is applied to each individual voxel column of the voxel grid 70 extending in the z direction. In a preferred embodiment, the object filter may be applied in parallel / simultaneously to two or more of the individual voxel columns of the voxel grid 70. For example, the object filter may be applied in parallel / simultaneously to each of the individual voxel columns of the voxel grid 70. Alternatively, the object filter may be applied in series to individual voxel columns of the voxel grid 70, or to groups of voxel columns.
[0101] For an example of adding an object filter to the voxel column in step 6-4, refer to Figures 13 and 14 below.
[0102] Figure 13A shows a side view of the voxel grid 70 of Figure 7 after step S6-3, in which the filter 72 erases / removes active voxels 701a located below the surface 72b in the z direction of the voxel grid 70 by changing them to empty / inactive voxels 701. Figure 13B shows a side view of the voxel grid 70 of Figure 7 after step S6-4, in which an object filter is applied to each of the individual voxel columns of the voxel grid 70 shown in Figure 13A to erase / remove specific active voxels 701a from the voxel grid 70, when a predetermined distance threshold is set to 3 voxels.
[0103] Figure 14A is a side view of the voxel grid 70 of Figure 7 after the first filter 72 has erased / removed active voxels 701a located below the first plane 72a1 in the z direction of the voxel grid 70, and the second filter 72 has erased / removed active voxels 701a located above the second plane 72a2 in the z direction of the voxel grid 70. Figure 14B is a side view of the voxel grid 70 after step S6-4, in which an object filter is applied to each of the individual voxel columns of the voxel grid 70 shown in Figure 14A to erase / remove specific active voxels 701a from the voxel grid 70, when a predetermined distance threshold is set to 3 voxels.
[0104] In a preferred embodiment of the present invention, the object filter allows the work machine 1 to pass through (e.g., pass over or climb over) the voxel grid 70 and changes the planned travel path L. Active voxels 701a corresponding to objects that should not be updated can be deleted / removed. For example, in the object filter example described above, active voxels 701a corresponding to small agricultural objects such as branches and vegetation that extend horizontally in front of the implement 1 (e.g., intersecting the planned travel path L) but can be easily passed over by the implement 1 can be deleted / removed. On the other hand, active voxels 701a corresponding to obstacles such as important agricultural objects, people, or other objects that cannot be passed are retained within the voxel grid 70.
[0105] Therefore, in step S6-4, when deleting / removing the active voxel 701a from the voxel grid 70, data points from the three-dimensional point cloud included in the active voxel 701a that correspond to objects that the work machine 1 can pass through and that do not require changes / updates to the planned travel path L are deleted / removed from the three-dimensional point cloud. Data points from the three-dimensional point cloud included in the active voxel 701a that correspond to obstacles such as important agricultural objects, people, and other objects that cannot be passed are retained in the three-dimensional point cloud. Thus, the object filter is an example of a filter that performs filtering on the three-dimensional point cloud to delete / remove one or more data points that correspond to objects that the work machine 1 can pass through, based on the vertical position of said one or more data points.
[0106] In preferred embodiments of the present invention, the steps performed by the object filter in step S6-4 can be changed or modified from the steps shown in Figure 11. For example, Figure 15 is a flowchart showing a first modified example of the steps shown in Figure 11, performed by the object filter in step S6-4. More specifically, Figure 15 shows that the object filter can perform an additional step S15-3. The steps in Figure 15, other than step S15-3, are the same as the steps in Figure 11.
[0107] In step S15-3, the object filter determines whether the lowest active voxel in the voxel column is separated from the filter 72 used to filter the voxel grid 70 in step S6-3. For example, the object filter determines whether the lowest active voxel in the voxel column is separated from the plane 72a used to filter the voxel grid 70 in step S6-3. If the lowest active voxel in the voxel column is not separated from the filter 72 used to filter the voxel grid 70 in step S6-3, the process ends. On the other hand, if the lowest active voxel in the voxel column is separated from the filter 72 used to filter the voxel grid 70 in step S6-3, the process proceeds to step S15-4.
[0108] Figures 16A and 16B show an example of applying an object filter to individual voxel columns according to the steps shown in Figure 15. Figure 16A shows a side view of the voxel grid 70 of Figure 7 after the filter 72 has erased / removed active voxels 701a from the voxel grid 70 by changing active voxels 701a located below the plane 72a in the z direction of the voxel grid 70 to empty / inactive voxels 701. In step S15-1, the object filter identifies a particular voxel column within the voxel grid 70. For example, in step S15-1, the object filter may identify voxel column C8 shown in Figure 16A as a particular voxel column. In step S15-2, the object filter determines whether or not there are active voxels 701a in the particular voxel column identified in step S15-1. For example, in step S15-2, since voxel column C8 contains two voxels, the object filter determines that voxel column C8 contains at least one active voxel 701a. In step S15-3, the object filter determines whether the lowest active voxel in the voxel column is separated from the filter 72 used to filter the voxel grid 70 in step S6-3. For example, the object filter determines whether the lowest active voxel in the voxel column is separated from the plane 72a used to filter the voxel grid 70 in step S6-3. In this embodiment, as shown in Figure 16A, the lowest active voxel of voxel column C8 is adjacent to the filter 72 (plane 72a) used to filter the voxel grid 70 in step S6-3, so it is not separated, and the process is terminated. However, if the least active voxel in voxel column C8 is separated from the filter 72 used to filter the voxel grid 70 in step S6-3, the process proceeds to step S15-4.Figure 16B shows a side view of the voxel grid 70 after an object filter has been applied to each of the individual voxel columns of the voxel grid 70 shown in Figure 16A, following the steps shown in Figure 15, and a predetermined distance threshold has been set to 3 voxels.
[0109] In a preferred embodiment of the present invention, the object filter example described above with respect to Figures 15, 16A, and 16B can clear / remove active voxels 701a corresponding to objects that the implement 1 can easily pass over and that do not require alteration / update of the planned travel path L. On the other hand, active voxels 701a corresponding to obstacles such as important agricultural objects, people, or other objects are retained within the voxel grid 70. Furthermore, in step S6-3, if the lowest active voxel in the voxel column is not separated from the filter 72 used to filter the voxel grid 70, the process is terminated and active voxels 701a are not cleared / removed from the voxel column, thereby retaining active voxels 701a that are likely to correspond to objects leading to the ground within the voxel grid 70. This is because these active voxels 701a are likely to correspond to obstacles such as important agricultural objects, people, or other objects that cannot be passed over to the ground. In this way, active voxels 701a that are likely to correspond to objects connected to the ground and that the work machine 1 should not pass over or go over are maintained within the voxel grid 70. Thus, the object filter is an example of a filter that performs filtering on a three-dimensional point cloud to erase / remove one or more data points that correspond to objects that the work machine 1 can pass over, based on the vertical position of those one or more data points.
[0110] In a preferred embodiment of the present invention, the steps performed by the object filter in step S6-4 can be changed or modified from the steps shown in Figure 11. For example, Figure 17 is a flowchart showing a second modification of the steps shown in Figure 11, performed by the object filter in step S6-4. More specifically, Figure 17 shows that the object filter can perform an additional step S17-5. The steps in Figure 17, other than step S17-5, are the same as the steps in Figure 11.
[0111] In step S17-5, the object filter determines whether there are any consecutive active voxels in a voxel sequence if the number of voxels obtained in step 17-4 is greater than or equal to a predetermined distance threshold. If the object filter determines in step S17-5 that there is at least one consecutive active voxel in a voxel sequence, the process ends. On the other hand, if the object filter determines in step S17-5 that there is no consecutive active voxel in a voxel sequence, the process proceeds to step S17-6, in which step S17-6 the object filter deletes / removes all active voxels 701a contained in a particular voxel sequence by changing the active voxels 701a to empty / inactive voxels 701.
[0112] Figures 18A and 18B show an example of applying an object filter to individual voxel columns according to the steps shown in Figure 17. Figure 18A shows a side view of the voxel grid 70 of Figure 7 after the filter 72 has erased / removed the active voxel 701a from the voxel grid 70 by changing the active voxel 701a located below the plane 72a in the z direction of the voxel grid 70 to an empty / inactive voxel 701. In step S17-1, the object filter identifies a particular voxel column within the voxel grid 70. For example, in step S17-1, the object filter may identify voxel column C1 shown in Figure 18A as a particular voxel column. In step S17-2, the object filter determines whether or not there is an active voxel 701a in the particular voxel column identified in step S17-1. For example, in step S17-2, since voxel column C1 contains two active voxels 701a, the object filter determines that voxel column C1 contains at least one active voxel 701a. In step S17-3, the object filter identifies the number of voxels (distance) between the active voxel with the maximum value in the z direction and the active voxel with the minimum value in the z direction within a particular voxel column. In step S17-4, the object filter determines whether the number of voxels determined in step S17-3 is less than a predetermined distance threshold. If the object filter determines in step S17-4 that the number of voxels determined in step S17-3 is less than a predetermined distance threshold, the process proceeds to step S17-6, where the object filter deletes / removes all active voxels 701a contained in the particular voxel column by changing the active voxels 701a to empty / inactive voxels 701. On the other hand, if the object filter determines that the number of voxels obtained in step S17-3 is greater than or equal to a predetermined distance threshold, the process proceeds to step S17-5.In this embodiment, in step S17-4, the object filter determines that the number of voxels, 6, obtained in step S17-3, is greater than or equal to a predetermined distance threshold, so the process proceeds to step S17-5.
[0113] In step S17-5, the object filter determines whether or not there are any contiguous voxels within voxel column C1. In this embodiment, in step S17-5, since there are only two active voxels separated from each other within voxel column C1, the object filter determines that there is no contiguous area of active voxels within voxel column C1. Therefore, the process proceeds to step S17-6, where the object filter deletes / removes all active voxels 701a contained in the specific voxel column C1 by changing the active voxels 701a to empty / inactive voxels 701. Figure 18B shows a side view of the voxel grid 70 after the object filter has been applied to each of the individual voxel columns of the voxel grid 70 shown in Figure 18A, according to the steps shown in Figure 17, and a predetermined distance threshold is set to 3 voxels.
[0114] In a preferred embodiment of the present invention, the object filter example described above with respect to Figures 17, 18A, and 18B can erase / remove active voxels 701a corresponding to objects that the implement 1 can easily pass over and that do not require changes / updates to the planned travel path L. On the other hand, active voxels 701a corresponding to obstacles such as important agricultural objects, people, or other objects are maintained within the voxel grid 70. Furthermore, in step S17-5, if the object filter determines that there is no location where active voxels are consecutive within a voxel row, it is possible to erase / remove all active voxels 701a included in a particular voxel row, thereby erasing / removing active voxels 701a corresponding to two or more small objects, such as agricultural objects like branches and plants, that extend horizontally in front of the implement 1 (for example, in a direction intersecting the planned travel path L) and are spaced apart from each other in the vertical direction (z direction), and which the implement 1 can easily pass over. Thus, the object filter is an example of a filter that performs filtering on a three-dimensional point cloud, deleting / removing one or more data points corresponding to objects that the work machine 1 can pass through, based on the vertical position of those one or more data points.
[0115] In the preferred embodiments of the present invention described above, steps S6-3 and S6-4 include processing and filtering the three-dimensional point cloud generated in step S6-2 using a voxel grid 70. However, in other preferred embodiments of the present invention, which will be described in detail later, steps S6-3 and S6-4 may also include filtering the three-dimensional point cloud generated in step S6-2 to eliminate / remove further data points from the three-dimensional point cloud without using a voxel grid. For example, in other preferred embodiments of the present invention, in step S6-3, the three-dimensional point cloud can be filtered by applying a filter 92 to the three-dimensional point cloud (e.g., directly) to remove data points from the three-dimensional point cloud, and in step S6-4, the three-dimensional point cloud can be filtered by applying an object filter to the three-dimensional point cloud (e.g., directly) to remove data points from the three-dimensional point cloud.
[0116] In a preferred embodiment of the present invention, step S6-3 includes processing and filtering (e.g., direct filtering) the three-dimensional point cloud generated in step S6-2. Figure 19 is a diagram showing an example of the three-dimensional point cloud 90 generated in step S6-2, which includes data points representing objects and space around the front of the work machine 1. As described above, the three-dimensional point cloud may also include data points representing objects and space around other parts or the entire circumference of the work machine 1. In Figure 19, the three-dimensional point cloud 90 is shown superimposed on a three-dimensional grid for ease of explanation. In a preferred embodiment, the three-dimensional point cloud 90 includes data points 901a corresponding to objects or parts of objects such as agricultural objects, the ground, people, other objects, or parts thereof.
[0117] In a preferred embodiment of the present invention, in step S6-3, a filter 92 is applied to the three-dimensional point cloud 90. The filter 92 erases / removes specific data points 901a from the three-dimensional point cloud 90. The filter 92 applied in step S6-3 can erase / remove specific data points 901a from the three-dimensional point cloud 90 by erasing / removing data points 901a located below the filter 92 in the z-direction (vertical direction of the three-dimensional point cloud 90) of the three-dimensional point cloud 90. The filter 92 can be represented by a plane parallel to the bottom surface of the three-dimensional point cloud 90 and located at a predetermined distance from the bottom surface. For example, in Figure 19, the filter 92 is represented by a plane 92a parallel to the bottom surface of the three-dimensional point cloud 90 and located at a predetermined distance (e.g., about 0.3 meters or about 0.5 meters) from the bottom surface. For example, in Figure 19, each cube included in the three-dimensional grid overlaid with the three-dimensional point cloud 90 for illustrative purposes may be about 0.1 meters.
[0118] Figure 20A is a side view showing an example of the three-dimensional point cloud 90 generated in step S6-2. Specifically, Figure 20A shows a side view of the three-dimensional point cloud 90 of Figure 19 before the filter 92 erases / removes the data point 901a from the three-dimensional point cloud 90. Figure 20B is a side view showing the three-dimensional point cloud 90 after the filter 92 erases / removes the data point 901a from the three-dimensional point cloud 90. More specifically, Figure 20B shows an example in which the filter 92 erases / removes the data point 901a from the three-dimensional point cloud 90 by erasing / removing the data point 901a located below the plane 92a in the z direction of the three-dimensional point cloud 90.
[0119] The filter 92 is not limited to being represented by a plane parallel to the bottom surface of the three-dimensional point cloud 90. For example, the filter 92 is defined by an inclined surface 92b that starts from a point on or adjacent to the work machine 1 and rises at a predetermined gradient in the direction away from the point on or adjacent to the work machine 1. It may also be represented as follows. For example, as shown in Figure 19, the filter 92 may be represented as an inclined surface 92b that starts from a point located on the bottom surface of the work machine 1 and rises at a predetermined gradient as it moves away from that point.
[0120] Figure 21A is a side view showing an example of a three-dimensional point cloud 90 when the filter 92 is represented by an inclined surface 92b. That is, Figure 21A shows a side view of the three-dimensional point cloud 90 of Figure 19 before the filter 92 erases / removes the data point 901a. Figure 21B is a side view showing the three-dimensional point cloud 90 after the filter 92 erases / removes the data point 901a. More specifically, Figure 21B shows an example in which the filter 92 erases / removes from the three-dimensional point cloud 90 the data point through which the surface 92b passes and the data point 901a located below the surface 92b in the z direction of the three-dimensional point cloud 90. Alternatively, the filter 92 may not erase / remove the data point 901a through which the surface 92b passes, but only erase / remove the data point 901a located below the surface 92b in the z direction of the three-dimensional point cloud 90.
[0121] In the example described above, the filter 92 represented by the plane 92a erases / removes data points 901a located below the plane 92a in the z-direction of the three-dimensional point cloud 90, while the filter 92 represented by the inclined surface 92b erases / removes data points 901a that the surface 92b passes through, as well as data points 901a located below the surface 92b in the z-direction of the three-dimensional point cloud 90. In this way, in step S6-3, the filter 92 represented by the plane 92a or the filter 92 represented by the inclined surface 92b can erase / remove data points 901a corresponding to the portion of the ground around the implement 1 and / or small agricultural objects located on the ground around the implement 1. Therefore, in step S6-3, data points in the three-dimensional point cloud corresponding to the portion of the ground around the implement 1 and / or small agricultural objects located on the ground around the implement 1 are erased / removed from the three-dimensional point cloud.
[0122] In another preferred embodiment, the filter 92 can erase / remove data points 901a located above the plane 92a in the z-direction of the three-dimensional point cloud 90, or it can erase / remove data points through which the surface 92b passes and data points located above the surface 92b in the z-direction of the three-dimensional point cloud 90. In this way, in step S6-3, based on the position of the plane 92a or inclined surface 92b in the z-direction of the three-dimensional point cloud 90, the filter 92 represented by the plane 92a or inclined surface 92b can erase / remove data points 901a corresponding to a canopy or other agricultural object located above the work machine 1.
[0123] In another preferred embodiment, multiple filters 92 can be used to erase / remove data points 901a from the three-dimensional point cloud 90. For example, a first filter 92 can be used to erase / remove data points 901a located below the first plane 92a1 in the z-direction of the three-dimensional point cloud 90, and a second filter 92 can be used to erase / remove data points 901a located above the second plane 92a2 in the z-direction of the three-dimensional point cloud 90. Figure 22A is a side view showing an example of the three-dimensional point cloud 90 of Figure 19 generated based on the filtered three-dimensional point cloud generated in step S6-2, and Figure 22B is a side view showing the three-dimensional point cloud 90 after data points 901a have been erased / removed using the first filter 92a1(92) and the second filter 92a2(92).
[0124] In a preferred embodiment of the present invention, step S6-4 includes applying an object filter to the three-dimensional point cloud 90. For example, step S6-4 includes applying an object filter to the three-dimensional point cloud 90 after step S6-3 is completed. The object filter erases / removes specific data points 901a from the three-dimensional point cloud 90.
[0125] In a preferred embodiment of the present invention, the object filter is applied to individual point cloud sequences extending in the z-direction of the three-dimensional point cloud 90. For example, point cloud sequences PC1, PC2, and point cloud sequence shown in Figure 19. An object filter is applied to individual point cloud sequences, such as sequence PC3. In a preferred embodiment, each point cloud sequence extends in the z-direction of the three-dimensional point cloud 90 and can be defined by the x-coordinate (e.g., range of the X-coordinate) and y-coordinate (e.g., range of the y-coordinate) of the three-dimensional point cloud 90. For example, in the example shown in Figure 19, point cloud sequence PC1 extends in the z-direction of the three-dimensional point cloud 90 and can be defined by the x-coordinate (e.g., start and end points of point cloud sequence PC1 in the X-direction) and y-coordinate (start and end points of point cloud sequence PC1 in the Y-direction) of the three-dimensional point cloud 90. For example, point cloud sequence PC1 in Figure 19 may be square or substantially square, extending 0.1 meters in the x-direction and 0.1 meters in the y-direction of the three-dimensional point cloud 90. However, the size and shape of point cloud sequences can vary. For example, the point cloud sequence may extend approximately 0.3 or 0.5 meters in the x-direction and 0.3 or 0.5 meters in the y-direction of the three-dimensional point cloud 90.
[0126] Figure 23 is a flowchart showing the steps that can be performed by the object filter in step S6-4. In step S23-1, the object filter identifies a specific point cloud sequence included in the three-dimensional point cloud 90. For example, in step S23-1, the object filter may identify point cloud sequence PC1 as a specific point cloud sequence.
[0127] In step S23-2, the object filter determines whether or not there is a data point 901a included in the specific point cloud sequence identified in step S23-1. If the object filter determines in step S23-2 that there is no data point 901a included in the specific point cloud sequence identified in step S23-1, the process ends. On the other hand, if the object filter determines that there is at least one data point 901a included in the specific point cloud sequence identified in step S23-1, the process proceeds to step S23-3. In step S23-3, the object filter determines the distance between the data point with the maximum value in the z direction (maximum vertical position) and the data point with the minimum value in the z direction (minimum vertical position) within the specific point cloud sequence. If the object filter determines in step S23-3 that there is one data point 901a included in the specific point cloud sequence, the object filter interprets that the distance between the data point with the maximum value in the z direction and the data point with the minimum value in the z direction within the specific voxel sequence is smaller than a predetermined distance threshold (details described later).
[0128] In step S23-4, the object filter determines whether the distance identified in step S23-3 is less than a predetermined distance threshold. In a preferred embodiment, the predetermined distance threshold can be a predetermined distance such as 0.3 meters. If the object filter determines that the distance identified in step S23-3 is greater than or equal to the predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the distance identified in step S23-3 is less than the predetermined distance threshold, the process proceeds to step S23-5. In step S23-5, the object filter deletes / removes all data points 901a included in the specific point cloud sequence.
[0129] As mentioned above, the object filter is applied to individual point cloud sequences extending in the z-direction of the three-dimensional point cloud 90. An example of how the object filter is applied to individual point cloud sequences is described in detail below.
[0130] Figure 24A is a side view of the three-dimensional point cloud 90 of Figure 19 after the filter 92 has erased / removed data points 901a located below the plane 92a in the z direction of the three-dimensional point cloud 90 from the three-dimensional point cloud 90. In the first example, in step S23-1, the object filter identifies a specific point cloud sequence within the three-dimensional point cloud 90. For example, in step S23-1, the object filter may identify the point cloud sequence PC1 shown in Figures 19 and 24A as a specific point cloud sequence. In step S23-2, the object filter performs the following steps Step S23-2 determines whether there is a data point 901a in the specific point cloud sequence identified in step 23-1. For example, in step S23-2, the object filter determines that at least one data point 901a is included in the point cloud sequence PC1. In step S23-3, the object filter calculates the distance d between the data point 901a with the maximum value in the z direction (highest data point) and the data point 901a with the minimum value in the z direction (lowest data point) within the point cloud sequence PC1. For example, in step S23-3, the object filter determines that the distance d between the data point with the maximum value in the z direction and the data point with the minimum value in the z direction within the point cloud sequence PC1 is 0.6m (including the highest and lowest data points). In step S23-4, the object filter determines whether the distance identified in step S23-3 is less than a predetermined distance threshold. If the object filter determines that the distance identified in step S23-3 is greater than or equal to the predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the distance identified in step S23-3 is less than a predetermined distance threshold, the process proceeds to step S23-5. In this embodiment, if the predetermined distance threshold is set to 0.3m, the object filter determines that the distance of 0.6m identified in step S23-3 is greater than or equal to the predetermined distance threshold of 0.3m, and terminates the process.
[0131] In the second example, in step S23-1, the object filter may identify the point cloud sequence PC2 shown in Figure 24A as a specific point cloud sequence. In step S23-2, the object filter determines whether or not there is a data point 901a in the specific point cloud sequence identified in step S23-1. For example, in step S23-2, the object filter determines that the point cloud sequence PC2 does not contain at least one data point 901a and terminates the process.
[0132] In the third example, in step S23-1, the object filter may identify the point cloud sequence PC4 shown in Figure 24A as a specific point cloud sequence. In step S23-2, the object filter determines whether or not there is a data point 901a included in the specific point cloud sequence identified in step S23-1. For example, in step S23-2, the object filter determines that at least one data point 901a is included in the point cloud sequence PC4. In step S23-3, the object filter calculates the distance between the data point with the maximum value in the z direction (highest data point) and the data point with the minimum value in the z direction (lowest data point) within the point cloud sequence PC4. For example, in step S23-3, the object filter determines that the distance between the data point with the maximum value in the z direction and the data point with the minimum value in the z direction within the point cloud sequence PC4 is 0.4m. In step S23-4, the object filter determines whether or not the distance identified in step S23-3 is less than a predetermined distance threshold. If the object filter determines that the distance identified in step S23-3 is greater than or equal to a predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the distance identified in step S23-3 is less than the predetermined distance threshold, the process proceeds to step S23-5. In this embodiment, if the predetermined distance threshold is set to 0.3m, the object filter determines that the distance of 0.4m identified in step S23-3 is greater than or equal to the predetermined distance threshold of 0.3m, and terminates the process.
[0133] In the fourth example, in step S23-1, the object filter may identify the point cloud sequence PC6 shown in Figure 24A as a specific point cloud sequence. In step S23-2, the object filter determines whether or not there is a data point 901a included in the specific point cloud sequence identified in step S23-1. For example, in step S23-2, the object filter determines that at least one data point 901a is included in the point cloud sequence PC6. In step S23-3, the object filter calculates the distance between the data point with the maximum value in the z direction (highest data point) and the data point with the minimum value in the z direction (lowest data point) within the point cloud sequence PC6. For example, in step S23-3, the object filter determines that the distance between the data point with the maximum value in the z direction and the data point with the minimum value in the z direction within the point cloud sequence PC6 is 0.2m. In step S23-4, the object filter determines whether or not the distance identified in step S23-3 is less than a predetermined distance threshold. If the object filter determines that the distance identified in step S23-3 is greater than or equal to a predetermined distance threshold, the process ends. On the other hand, if the object filter determines that the distance obtained in step S23-3 is less than the predetermined distance threshold, in step S23-5, all data points 901a included in the specific point cloud sequence are deleted / removed. In this embodiment, if the predetermined distance threshold is set to 0.3m, the object filter determines that the distance of 0.2m identified in step S23-3 is less than the predetermined distance threshold of 0.3m. Therefore, in step S23-5, the object filter deletes / removes all data points 901a included in the point cloud sequence PC6.
[0134] Figure 24B shows a side view of the three-dimensional point cloud 90 after an object filter has been applied to each of the individual point cloud sequences of the three-dimensional point cloud 90 shown in Figure 24A, with a predetermined distance threshold set to 0.3 meters, thereby erasing / removing specific data points 901a from the three-dimensional point cloud 90 in step 6-4. As described above, the object filter is applied to each individual point cloud sequence extending in the z direction of the three-dimensional point cloud 90. In a preferred embodiment, the object filter may be applied in parallel / simultaneously to multiple individual point cloud sequences of the three-dimensional point cloud 90. For example, the object filter may be applied in parallel / simultaneously to each individual point cloud sequence of the three-dimensional point cloud 90. Alternatively, the object filter may be applied in series to individual point cloud sequences of the three-dimensional point cloud 90, or to groups of point cloud sequences.
[0135] An example of adding an object filter to the point cloud sequence in Step 6-4 will be described later, referring to Figures 25 and 26.
[0136] Figure 25A is a side view of the three-dimensional point cloud 90 shown in Figure 19 after step S6-3, in which the filter 92 modifies the data point 901a located below the surface 92b in the z-direction of the three-dimensional point cloud 90, thereby erasing / removing the data point 901a from the three-dimensional point cloud 90. Figure 25B is a side view of the three-dimensional point cloud 90 after step S6-4, in which an object filter is applied to each of the individual point cloud sequences of the three-dimensional point cloud 90 shown in Figure 25A to erase / remove the data point 901a from the three-dimensional point cloud 90, when a predetermined distance threshold is set to 0.3m.
[0137] Figure 26A is a side view of the three-dimensional point cloud 90 of Figure 19 after the first filter 92 has erased / removed data points 901a located below the first plane 92a1 in the z direction of the three-dimensional point cloud 90, and the second filter 92 has erased / removed data points 901a located above the second plane 92a2 in the z direction of the three-dimensional point cloud 90. Figure 26B is a side view of the three-dimensional point cloud 90 after step S6-4, in which an object filter is applied to each of the individual point cloud sequences of the three-dimensional point cloud 90 shown in Figure 26A to erase / remove specific data points 901a from the three-dimensional point cloud 90, when a predetermined distance threshold is set to 0.3m.
[0138] In a preferred embodiment of the present invention, the object filter can erase / remove data points 901a from the three-dimensional point cloud 90 that correspond to objects that the implement 1 can pass through (e.g., pass over or go over) and that should not alter / update the planned travel path L. For example, in the object filter example described above, data points 901a corresponding to objects such as small agricultural objects (e.g., branches and vegetation) that extend horizontally in front of the implement 1 (e.g., intersect the planned travel path L) but that the implement 1 can easily pass through can be erased / removed. On the other hand, data points 901a corresponding to obstacles such as important agricultural objects, people, or other objects that cannot be passed are retained in the three-dimensional point cloud 90.
[0139] Therefore, in step S6-4, when deleting / removing data points 901a from the three-dimensional point cloud 90, data points in the three-dimensional point cloud corresponding to objects that the work machine 1 can pass through and that do not require changes / updates to the planned travel path L are deleted / removed from the three-dimensional point cloud, while data points in the three-dimensional point cloud corresponding to obstacles such as important agricultural objects, people, and other objects that cannot be passed are retained in the three-dimensional point cloud 90. Thus, the object filter is an example of a filter that performs filtering on the three-dimensional point cloud to delete / remove one or more data points corresponding to objects that the work machine 1 can pass through, based on the vertical position of those one or more data points.
[0140] In a preferred embodiment of the present invention, the steps performed by the object filter in step S6-4 can be changed or modified from the steps shown in Figure 23. For example, Figure 27 is a flowchart showing a first modification of the steps shown in Figure 23, performed by the object filter in step S6-4. More specifically, Figure 27 shows that the object filter can perform an additional step S27-3. The steps in Figure 27, other than step S27-3, are the same as the steps in Figure 23.
[0141] In step S27-3, the object filter determines whether the lowest data point of the point cloud sequence is separated from the filter 92 used to filter the three-dimensional point cloud 90 in step S6-3 by at least a predetermined distance (e.g., 0.1 meters). For example, the object filter determines whether the lowest data point of the point cloud sequence is separated from the plane 92a used to filter the three-dimensional point cloud 90 in step S6-3 by at least a predetermined distance. If the lowest data point of the point cloud sequence is not separated from the filter 92 used to filter the three-dimensional point cloud 90 in step S6-3 by at least a predetermined distance, the process ends. On the other hand, if the lowest data point of the point cloud sequence is separated from the filter 92 used to filter the three-dimensional point cloud 90 in step S6-3 by at least a predetermined distance, the process proceeds to step S27-4.
[0142] Figures 28A and 28B show an example of applying an object filter to individual point cloud sequences according to the steps shown in Figure 27. Figure 28A shows a side view of the three-dimensional point cloud 90 of Figure 19 after the filter 92 has erased / removed data point 901a located below the plane 92a in the z-direction of the three-dimensional point cloud 90 from the three-dimensional point cloud 90. In step S27-1, the object filter identifies a specific point cloud sequence within the three-dimensional point cloud 90. For example, in step S27-1, the object filter may identify point cloud sequence PC8 shown in Figure 28A as a specific point cloud sequence. In step S27-2, the object filter determines whether or not there is a data point 901a in the specific point cloud sequence identified in step S27-1. For example, in step S27-2, the object filter determines that point cloud sequence PC8 contains at least one data point 901a. In step S27-3, the object filter determines whether the lowest data point of the point cloud sequence is separated by at least a predetermined distance from the filter 92 used to filter the three-dimensional point cloud 90 in step S6-3. For example, the object filter determines whether the lowest data point of the point cloud sequence is separated by at least a predetermined distance from the plane 92a used to filter the three-dimensional point cloud 90 in step S6-3. In this embodiment, as shown in Figure 28A, the lowest data point 901a of the point cloud sequence PC8 is adjacent to the filter 92 (plane 92a) used to filter the three-dimensional point cloud 90 in step S6-3, so it is not separated by at least a predetermined distance (e.g., 0.1 meters), and the process is terminated. However, if the lowest data point of the point cloud sequence PC8 is separated by at least a predetermined distance from the filter 92 used to filter the three-dimensional point cloud 90 in step S6-3, the process proceeds to step S27-4. Figure 28B shows a side view of the three-dimensional point cloud 90 after an object filter has been applied to each point cloud sequence of the three-dimensional point cloud 90 shown in Figure 28A, following the steps shown in Figure 27, and a predetermined separation distance has been set to 0.1 meters (one cube on the grid shown in Figure 28A).
[0143] In a preferred embodiment of the present invention, the object filter example described above with respect to Figures 27, 28A, and 28B can erase / remove data points 901a corresponding to objects that the implement 1 can easily pass over and that do not require changes / updates to the planned travel path L. On the other hand, data points 901a corresponding to obstacles such as important agricultural objects, people, and other objects are maintained within the three-dimensional point cloud 90. Furthermore, in step S6-3, if the lowest data point in the point cloud sequence is not separated by a predetermined separation distance from the filter 92 used to filter the three-dimensional point cloud 90, the process is terminated and data points 901a are not erased / removed from the point cloud sequence, thereby maintaining data points 901a that are likely to correspond to objects connected to the ground within the three-dimensional point cloud 90. This is because these data points are likely to correspond to obstacles such as important agricultural objects, people, or other impassable objects connected to the ground. In this way, data points 901a that are likely to correspond to objects connected to the ground that the implement 1 should not pass over or go over are maintained within the three-dimensional point cloud 90. Thus, the object filter is an example of a filter that performs filtering on a three-dimensional point cloud, deleting / removing one or more data points corresponding to objects that the work machine 1 can pass through, based on the vertical position of those one or more data points.
[0144] In a preferred embodiment of the present invention, the steps performed by the object filter in step S6-4 can be changed or modified from the steps shown in Figure 23. For example, Figure 29 is a flowchart showing a second modification of the steps shown in Figure 23, performed by the object filter during step S6-4. More specifically, Figure 29 shows that the object filter can perform an additional step S29-5. The steps in Figure 29, other than step S29-5, are the same as the steps in Figure 23.
[0145] If the distance identified in step 29-4 is greater than or equal to a predetermined distance threshold, in step S29-5, the object filter determines whether the two closest data points (or two closest groups of data points in the point cloud sequence) in the point cloud sequence are separated by a predetermined distance or more. As will be described in more detail below, the first group of data points and the second group of data points can be defined / identified based on the density level of data points 901a within a given volume (e.g., 0.1 cubic meters).
[0146] In step S29-5, if the object filter determines that two data points (or groups of data points) that are closest to each other in the point cloud sequence are not more than a predetermined distance apart (e.g., 0.1 meters or 0.2 meters), the process ends. On the other hand, if the object filter determines in step S29-5 that two data points (or groups of data points) that are closest to each other in the point cloud sequence are more than a predetermined distance apart, the process proceeds to step S29-6, where the object filter erases / removes all data points 901a included in a particular point cloud sequence from the three-dimensional point cloud 90.
[0147] Figures 30A and 30B show an example of applying an object filter to individual point cloud sequences according to the steps shown in Figure 29. Figure 30A shows a side view of the three-dimensional point cloud 90 of Figure 19 after the filter 92 has erased / removed data point 901a located below the plane 92a in the z direction of the three-dimensional point cloud 90 from the three-dimensional point cloud 90. In step S29-1, the object filter identifies a specific point cloud sequence within the three-dimensional point cloud 90. For example, in step S29-1, the object filter may identify point cloud sequence PC1 shown in Figure 30A as a specific point cloud sequence. In step S29-2, the object filter determines whether or not there is a data point 901a in the specific point cloud sequence identified in step S29-1. For example, in step S29-2, the object filter determines that point cloud sequence PC1 contains at least one data point 901a. In step S29-3, the object filter determines the distance between the data point with the maximum value in the z direction and the data point with the minimum value in the z direction within a specific point cloud sequence. In step S29-4, the object filter determines whether the distance determined in step S29-3 is less than a predetermined distance threshold. If the object filter determines in step S29-4 that the distance determined in step S29-3 is less than the predetermined distance threshold, the process proceeds to step S29-6, where the object filter deletes / removes all data points 901a included in the specific point cloud sequence. On the other hand, if the object filter determines that the distance determined in step S29-3 is greater than or equal to the predetermined distance threshold, the process proceeds to step S29-5. In this embodiment, in step S29-4, the object filter determines that the distance of 0.6m determined in step S29-3 is greater than or equal to the predetermined distance threshold, so the process proceeds to step S29-5.
[0148] In step S29-5, the object filter determines whether two data points (or two groups of data points) that are closest to each other in the point cloud sequence PC1 are separated by a predetermined distance (e.g., 0.2 meters). In the example shown in Figure 30A, the point cloud sequence PC1 includes a first group of data points 901a1 and a second group of data points 901a2, which may be defined / identified based on the density level of data points 901a within a predetermined volume (e.g., 0.1 cubic meters). In this example, if the predetermined distance is 0.2 meters (two cubes in Figure 30A), then in step S29-5, the object filter determines that two groups of data points that are closest to each other in the point cloud sequence PC1 (the first data point group 901a1 and the second data point group 901a2) are separated by a predetermined distance. Therefore, the process proceeds to step S29-6, where the object filter erases / removes all data points 901a included in the specific point cloud sequence PC1. Figure 30B is a side view of the three-dimensional point cloud 90 after the object filter has been applied to each of the individual point cloud sequences of the three-dimensional point cloud 90 shown in Figure 30A, according to the steps shown in Figure 29.
[0149] In a preferred embodiment of the present invention, the object filter example described above with respect to Figures 29, 30A, and 31B can erase / remove data points 901a corresponding to objects that the implement 1 can easily pass over and that should not alter / update the planned travel path L. On the other hand, data points 901a corresponding to obstacles such as important agricultural objects, people, and other objects are retained in the three-dimensional point cloud 90. Furthermore, in step S29-5, if the object filter determines that two data points (or two groups of data points that are closest to each other in the point cloud sequence PC1) are farther apart than a predetermined distance, it can erase / remove all data points 901a included in a particular point cloud sequence, thereby erasing / removing data points 901a corresponding to two or more small objects that the implement 1 can easily pass over, such as agricultural objects like branches and vegetation that extend horizontally in front of the implement 1 (for example, in a direction intersecting the planned travel path L) and are spaced apart vertically (in the Z direction). Thus, the object filter is an example of a filter that performs filtering on a three-dimensional point cloud, deleting / removing one or more data points corresponding to objects that the work machine 1 can pass through, based on the vertical position of those one or more data points.
[0150] In a preferred embodiment of the present invention, the three-dimensional point cloud generated in step S6-2 is further filtered in steps S6-3 and S6-4, and then in step S6-5, the three-dimensional point cloud is transformed / compressed to generate a two-dimensional obstacle map OM. For example, in step S6-5, the three-dimensional point cloud is transformed / compressed into a two-dimensional obstacle map OM by removing the z-coordinate from each data point remaining in the three-dimensional point cloud. By removing the z-coordinate from each data point included in the three-dimensional point cloud, each data point included in the three-dimensional point cloud is placed on a two-dimensional plane extending in the x and y directions, thereby representing the two-dimensional obstacle map OM. Figure 31 is an example of a two-dimensional obstacle map OM. The two-dimensional obstacle map includes the locations of one or more obstacles O that the work machine 1 cannot pass through and which require the planned travel path L to be changed / updated.
[0151] In a preferred embodiment of the present invention, steps S6-5 may include downsampling the three-dimensional point cloud by reducing the number of data points included in the three-dimensional point cloud based on the voxel grid 70. For example, since the data point density of the voxel grid 70 is smaller than that of the three-dimensional point cloud, the three-dimensional point cloud can be downsampled by representing the three-dimensional point cloud using the active voxels 701a and empty / inactive voxels of the voxel grid 70 instead of all the data points from the three-dimensional point cloud. In other words, multiple data points in the three-dimensional point cloud that include at least one data point corresponding to an obstacle can be represented by the active voxels 701a, and multiple data points in the three-dimensional point cloud that do not include at least one data point corresponding to an obstacle can be represented by the empty / inactive voxels 701a. However, steps S6-5 are not limited to downsampling the three-dimensional point cloud using the voxel grid 70, and it is also possible to retain the data points included in the three-dimensional point cloud.
[0152] In a preferred embodiment of the present invention, the field map M is updated to include positional information for one or more obstacles O based on a two-dimensional obstacle map OM. For example, the two-dimensional obstacle map OM shown in Figure 31 is continuously updated (e.g., at predetermined time intervals) as the implement 1 travels across the field, and the field map M shown in Figure 4 is updated to include the positions of one or more obstacles O included in the two-dimensional obstacle map OM.
[0153] As described above, in a preferred embodiment of the present invention, the controller 40 is configured or programmed to determine whether or not it is necessary to update the planned travel route L based on an updated field map M which includes location information of one or more obstacles O detected using one or more LiDARs 54. For example, as shown in Figure 4, the controller 40 is configured or programmed to decide to update the planned travel route L to include an avoidance section L3 in which the vehicle 3 is controlled to avoid obstacles O detected using one or more LiDARs 54. On the other hand, the controller 40 is configured or programmed to decide not to update the planned travel route L if no obstacles O are detected.
[0154] In the preferred embodiment of the present invention described above, the three-dimensional point cloud generated in step S6-1 is generated using one or more LiDARs 54. However, the generation of the three-dimensional point cloud in step S6-1 is not limited to using one or more LiDARs 54. For example, a laser scanner other than LiDAR or photogrammetry can be used to generate the three-dimensional point cloud in step S6-1. For example, in step S6-1, an image captured using a camera included in one or more other sensors 56 may be processed by photogrammetry to generate the three-dimensional point cloud.
[0155] In one preferred embodiment of the present invention, each of the controllers 541 and 40, and / or part or all of their functional units or blocks, as described herein with respect to various preferred embodiments of the present invention, can be realized by one or more integrated circuits or LSIs (large-scale integrated circuits) or other circuits or networks. Each of the functional units or blocks of the controllers 541 and 40 may be individual integrated circuit chips. Alternatively, part or all of the functional units or blocks may be integrated to form an integrated circuit chip. Furthermore, the method of forming the circuits or networks that define each of the controllers 541 and 40 is not limited to LSIs, and the integrated circuit may be realized by a dedicated circuit or a general-purpose processor or controller specially programmed to define a dedicated processor or controller. Furthermore, if advances in semiconductor technology lead to the development of technologies for forming integrated circuits that can replace LSIs, integrated circuits formed by such technologies may be used.
[0156] Furthermore, the programs operating in each of the controllers 541 and 40 and / or other elements of the various preferred embodiments of the present invention are programs that control the controllers (programs that cause a computer to perform one or more functions) in order to realize the functions of the various preferred embodiments of the present invention, including each of the various circuits or networks described herein and in the claims. Therefore, the information handled by the controller is temporarily stored in RAM during processing. Subsequently, the information is stored in various circuits such as ROM and HDD, and is read, modified, or written to as needed by circuits within the controller or combined with the controller. As the recording medium for storing the program, any of the following can be used: semiconductor media (e.g., ROM, non-volatile memory card, etc.), optical recording media (e.g., DVD, MO, MD, CD, BD, etc.), or magnetic recording media (e.g., magnetic tape, flexible disk, etc.). Furthermore, the functions of the various preferred embodiments of the present invention may be realized not only by executing the loaded program, but also by processing the loaded program in combination with an operating system or other application programs based on the program's instructions.
[0157] Furthermore, when distributing the product in the market, it may be stored on a portable recording medium and distributed, or it may be transferred and distributed to a server computer connected via a network such as the Internet. In this case, a preferred embodiment of the present invention also includes a storage device for the server computer. Moreover, in the preferred embodiment described above, some or all of the various functional units or blocks may be implemented as LSIs, which are typically integrated circuits. Each functional unit or block of the controller may be individually chipped, a part thereof may be chipped, or the whole thereof may be integrated and chipped. When each functional block or unit is an integrated circuit, an integrated circuit controller for controlling the integrated circuit may be added.
[0158] Furthermore, the manufacturing method of integrated circuits is not limited to LSIs; they may also be implemented using single-purpose circuits or general-purpose processors programmable to perform the aforementioned functions to define special-purpose computers. Additionally, if advances in semiconductor technology lead to the development of technologies for creating integrated circuits that replace LSIs, integrated circuits corresponding to those technologies may be used.
[0159] Finally, it should be noted that the terms and descriptions in the claims of this application, meaning “controller,” “circuit,” or “network,” are not limited to those implemented in hardware, but rather include any combination of hardware and software that can operate the controller, circuit, or network based on any form of machine-readable program, software, or other instructions available for use in operating the controller, circuit, or network.
[0160] It should be understood that the above description is merely illustrative of the present invention. Those skilled in the art can devise various modifications and variations without departing from the present invention. Therefore, the present invention encompasses all such modifications, variations, and changes within the scope of the appended claims. This is intended.
Claims
1. The process involves generating a three-dimensional point cloud containing multiple data points, This includes filtering the three-dimensional point cloud to remove one or more data points from the plurality of data points, A method for removing one or more data points from a plurality of data points based on the position of the one or more data points.
2. The three-dimensional point cloud is further filtered to remove one or more additional data points corresponding to a portion of the work machine from the plurality of data points based on said one or more additional data points, The method according to claim 1, wherein the one or more further data points corresponding to a portion of the work machine are identified based on a known positional relationship between the sensor used to generate the three-dimensional point cloud and the portion of the work machine.
3. Filtering the three-dimensional point cloud includes filtering the three-dimensional point cloud using a voxel grid and removing one or more data points from the plurality of data points, The voxel grid includes one or more active voxels, each containing at least one data point from the plurality of data points of the three-dimensional point cloud that corresponds to an object or a part of an object. Filtering the three-dimensional point cloud using the voxel grid includes applying a filter to the voxel grid to remove specific active voxels from the voxel grid by changing them to inactive voxels, The method according to claim 1, wherein when the specific active voxel is removed from the voxel grid, the one or more data points included in the specific active voxel are removed from the plurality of data points of the three-dimensional point cloud.
4. The filter applied to the voxel grid removes the specific active voxels located above or below the filter in the vertical direction of the voxel grid. The method according to claim 3, wherein the filter is represented by a plane that is parallel to the bottom surface of the voxel grid and located at a predetermined distance from the bottom surface.
5. The filter applied to the voxel grid removes the specific active voxels through which the filter passes and the specific active voxels located below the filter in the vertical direction of the voxel grid. The method according to claim 3, wherein the filter is represented by an inclined surface that rises at a predetermined gradient in a direction away from the work machine or a point adjacent to the work machine, starting from the work machine or the point adjacent to the work machine.
6. The filter applied to the voxel grid is applied to a specific voxel column extending vertically in the voxel grid, The method according to claim 3, wherein the filter removes a specific active voxel from a specific voxel column based on the number of voxels between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction within that specific voxel column.
7. The filter has the active voxel having the maximum value in the vertical direction and the vertical direction It is determined whether the number of voxels between the active voxel having the minimum value is less than a predetermined threshold. The method according to claim 6, wherein the filter removes a specific active voxel, including all active voxels included in the specific voxel column, when the number of voxels between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction is less than the predetermined threshold.
8. The method according to claim 6, wherein the filter removes a specific active voxel from a specific voxel sequence based on whether or not there are consecutive active voxels within that specific voxel sequence.
9. The filter applied to the voxel grid is applied to a specific voxel column extending vertically in the voxel grid, The method according to claim 3, wherein the filter removes a particular active voxel from a particular voxel column based on whether the active voxel having the minimum value in the vertical direction within that particular voxel column is separated from another filter, and the other filter is a filter previously used to remove an active voxel located below the other filter in the vertical direction of the voxel grid.
10. The method further includes converting the three-dimensional point cloud into a two-dimensional obstacle map that includes the locations of one or more obstacles. The method according to claim 1, wherein converting the three-dimensional point cloud into a two-dimensional obstacle map includes removing the vertical coordinates from each of the plurality of data points remaining in the three-dimensional point cloud after one or more data points have been removed from the plurality of data points.
11. Converting the aforementioned three-dimensional point cloud into a two-dimensional obstacle map including the locations of one or more obstacles, Based on the aforementioned two-dimensional obstacle map, the field map is updated to include the locations of one or more obstacles. The method according to claim 1, further comprising determining whether or not to update the planned travel route of the implement based on the updated field map.
12. The one or more data points are removed from the plurality of data points based on the distance between the first data point having the maximum vertical position in the vertically extending column of the three-dimensional point cloud and the second data point having the minimum vertical position in the vertically extending column of the three-dimensional point cloud. The method according to claim 1, wherein if the distance between the first data point and the second data point among the one or more data points is less than a predetermined threshold, the one or more data points are removed from the plurality of data points.
13. The process involves generating a three-dimensional point cloud containing multiple data points, A method comprising determining whether or not to update the planned travel path of the work machine based on the distance between a first data point, which has the maximum vertical position in a column extending vertically in the three-dimensional point cloud, and a second data point, which has the minimum vertical position in the column extending vertically in the three-dimensional point cloud.
14. A sensor that generates a three-dimensional point cloud containing multiple data points, A work machine comprising a controller configured or programmed to control the work machine based on the three-dimensional point cloud.
15. The controller is configured or programmed to filter the three-dimensional point cloud and remove one or more data points from the plurality of data points based on the position of one or more data points. The controller is configured or programmed to filter the three-dimensional point cloud using a voxel grid and remove one or more data points from the plurality of data points. The voxel grid includes one or more active voxels, each containing at least one data point from the plurality of data points of the three-dimensional point cloud that corresponds to an object or a part of an object. The controller is configured or programmed to filter the three-dimensional point cloud using the voxel grid by applying a filter to the voxel grid. The filter applied to the voxel grid removes the specific active voxels from the voxel grid by changing the specific active voxels to inactive voxels. The work machine according to claim 14, wherein when the specific active voxel is removed from the voxel grid, the one or more data points included in the specific active voxel are removed from the plurality of data points of the three-dimensional point cloud.
16. The controller is configured or programmed to apply the filter to a specific voxel column extending vertically in the voxel grid. The work machine according to claim 15, wherein the filter removes a specific active voxel from a specific voxel column based on the number of voxels between the active voxel having the maximum value in the vertical direction and the active voxel having the minimum value in the vertical direction within that specific voxel column.
17. The controller is configured or programmed to apply the filter to a specific voxel column extending vertically in the voxel grid. The machine according to claim 15, wherein the filter removes a particular active voxel from a particular voxel column based on whether the active voxel having the minimum value in the vertical direction within that particular voxel column is separated from another filter, and the other filter is a filter previously used to remove an active voxel located below the other filter in the vertical direction of the voxel grid.
18. The aforementioned controller, The three-dimensional point cloud is filtered to remove one or more data points from the plurality of data points based on the position of one or more data points. The three-dimensional point cloud is converted into a two-dimensional obstacle map that includes the locations of one or more obstacles. Based on the two-dimensional obstacle map, the field map is updated to include the locations of one or more obstacles. Based on the updated field map, a decision is made as to whether or not to update the planned route of the implement. The work machine according to claim 14, configured or programmed in such a way.
19. The aforementioned controller, The three-dimensional point cloud is filtered to remove one or more data points from the plurality of data points based on the position of one or more data points. A first data point among the one or more data points that has the maximum vertical position within a column extending vertically in the three-dimensional point cloud, and within a column extending vertically in the three-dimensional point cloud Based on the distance between the data point having the minimum vertical position and the second data point, one or more data points are removed from the plurality of data points. If the distance between the first data point and the second data point among the one or more data points is less than a predetermined threshold, remove the one or more data points from the plurality of data points. The work machine according to claim 14, configured or programmed in such a way.
20. The work machine according to claim 14, wherein the controller is configured or programmed to determine whether or not to update the planned travel path of the work machine based on the distance between a first data point having the maximum vertical position in a vertically extending column of the three-dimensional point cloud and a second data point having the minimum vertical position in a vertically extending column of the three-dimensional point cloud.