OBSTACLE DETECTION SYSTEM AND METHOD

A method 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. The one or more data points are removed from the plurality of data points based on a position of the one or more data points.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a working machine and an obstacle detection system and a method. More specifically, the present invention relates to a working machine and an obstacle detection system and a method that can more accurately identify obstacles that may affect a traveling route of the working machine.

2. Description of the Related Art

Conventionally, a working machine may include an object detection system that uses a sensor to detect an object around the working machine. However, a conventional object detection system is not able to determine whether or not the object is an insignificant object that the working machine can pass over or through without consequence, or an obstacle for which the traveling route of the working machine should be changed to avoid the working machine passing over or through the obstacle and prevent damage to the working machine or the obstacle. As a result, the conventional object detection system may result in the traveling route of the working machine being changed based on an insignificant object that the working machine could have passed over or through without consequence, which can undesirably add to the time and distance the working machine travels.

For the foregoing reasons, there is a need for a working machine and an obstacle detection system and method that can more accurately identify obstacles that may affect a traveling route of the working machine.

SUMMARY OF THE INVENTION

Preferred embodiments of the present invention provide a working machine and an obstacle detection system and a method.

A 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, and the one or more data points are removed from the plurality of data points based on a position of the one or more data points.

In a method according to a preferred embodiment of the present invention, the method further includes filtering the three-dimensional point cloud to remove one or more additional data points from the plurality of data points based on the one or more additional data points corresponding to a portion of a working machine, and the one or more additional data points that correspond to the portion of the working machine are determined based on a known positional relationship between a sensor used to generate the three-dimensional point cloud and the portion of the working machine.

In a method according to a preferred embodiment of the present invention, the filtering the three-dimensional point cloud includes using a voxel grid to filter the three-dimensional point cloud to remove the one or more data points from the plurality of data points, the voxel grid includes one or more activated voxels that include at least one of the plurality of data points of the three-dimensional point cloud that corresponds to an object or a portion of an object, the filtering the three-dimensional point cloud using the voxel grid includes applying a filter to the voxel grid to remove certain activated voxels from the voxel grid by changing the certain activated voxels to inactivated voxels, and when the certain activated voxels are removed from the voxel grid, the one or more data points, which are included in the certain activated voxels, are removed from the plurality of data points of the three-dimensional point cloud.

In a method according to a preferred embodiment of the present invention, the filter applied to the voxel grid removes the certain activated voxels located above or below the filter in a vertical direction of the voxel grid, and the filter is represented by a plane that is parallel to, and located a predetermined distance from, a bottom surface of the voxel grid.

In a method according to a preferred embodiment of the present invention, the filter applied to the voxel grid removes the certain activated voxels through which the filter extends and located below the filter in a vertical direction of the voxel grid, and the filter is represented by an inclined plane that starts from a point located on or adjacent to a working machine and that increases at a predetermined slope away from the point located on or adjacent to the working machine.

In a method according to a preferred embodiment of the present invention, the filter applied to the voxel grid is applied to a particular voxel column that extends in a vertical direction of the voxel grid, and the filter removes the certain activated voxels from the particular voxel column based on a number of voxels between an activated voxel with a largest value in the vertical direction and an activated voxel with a smallest value in the vertical direction within the particular voxel column.

In a method according to a preferred embodiment of the present invention, the filter determines whether or not the number of voxels between the activated voxel with the largest value in the vertical direction and the activated voxel with the smallest value in the vertical direction is less than a predetermined threshold, and the filter removes the certain activated voxels, which include all of the activated voxels included in the particular voxel column, when the number of voxels between the activated voxel with the largest value in the vertical direction and the activated voxel with the smallest value in the vertical direction is less than the predetermined threshold.

In a method according to a preferred embodiment of the present invention, the filter removes the certain activated voxels from the particular voxel column based on whether or not there are any instances of consecutive activated voxels within the particular voxel column.

In a method according to a preferred embodiment of the present invention, the filter applied to the voxel grid is applied to a particular voxel column that extends in a vertical direction of the voxel grid, and the filter removes the certain activated voxels from the particular voxel column based on whether or not an activated voxel with a smallest value in the vertical direction within the particular voxel column is spaced away from an additional filter that was previously used to remove activated voxels located below the additional filter in the vertical direction of the voxel grid.

In a method according to a preferred embodiment of the present invention, the filter is simultaneously applied to a plurality of particular voxel columns that extend in the vertical direction of the voxel grid.

In a method according to a preferred embodiment of the present invention, the method further includes converting the three-dimensional point cloud to a two-dimensional obstacle map that includes a location of one or more obstacles, and the converting the three-dimensional point cloud to the two-dimensional obstacle map includes removing a vertical coordinate from each of the plurality of data points remaining in the three-dimensional point cloud after the one or more data points have been removed from the plurality of data points.

In a method according to a preferred embodiment of the present invention, the method further includes converting the three-dimensional point cloud to a two-dimensional obstacle map that includes a location of one or more obstacles, updating an agricultural field map to include the location of the one or more obstacles based on the two-dimensional obstacle map, and determining whether or not to update a planned traveling route of a working machine based on the updated agricultural field map.

In a method according to a preferred embodiment of the present invention, the converting the three-dimensional point cloud to the two-dimensional obstacle map includes down sampling the three-dimensional point cloud by reducing a number of data points included in the three-dimensional point cloud based on a voxel grid that was used to filter the three-dimensional point cloud.

In a method according to a preferred embodiment of the present invention, the one or more data points are removed from the plurality of data points based on a distance between a first of the one or more data points with a largest vertical position within a column that extends in a vertical direction of the three-dimensional point cloud and a second of the one or more data points with a smallest vertical position within the column that extends in the vertical direction of the three-dimensional point cloud, and the one or more data points are removed from the plurality of data points when the distance between the first of the one or more data points and the second of the one or more data points is less than a predetermined threshold.

In a method according to a preferred embodiment of the present invention, the three-dimensional point cloud is generated using one or more LiDAR sensors.

A method according to a preferred embodiment of the present invention includes generating a three-dimensional point cloud including a plurality of data points, and determining whether or not to update a planned traveling route of a working machine based on a distance between a first of the plurality of data points with a largest vertical position within a column that extends in a vertical direction of the three-dimensional point cloud and a second of the plurality of data points with a smallest vertical position within the column that extends in the vertical direction of the three-dimensional point cloud.

In a method according to a preferred embodiment of the present invention, the method includes determining not to update the planned traveling route of the working machine when the distance between the first of the plurality of data points and the second of the plurality of data points is less than a predetermined threshold.

A working machine according to a preferred embodiment of the present invention includes a sensor to generate a three-dimensional point cloud including a plurality of data points, and a controller configured or programmed to control the working machine based on the three-dimensional point cloud.

In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to filter the three-dimensional point cloud to remove one or more data points from the plurality of data points based on a position of the one or more data points, the controller is configured or programmed to use a voxel grid to filter the three-dimensional point cloud to remove the one or more data points from the plurality of data points, the voxel grid includes one or more activated voxels that include at least one of the plurality of data points of the three-dimensional point cloud that corresponds to an object or a portion of an object, the controller is configured or programmed to apply a filter to the voxel grid to filter the three-dimensional point cloud using the voxel grid, the filter applied to the voxel grid removes certain activated voxels from the voxel grid by changing the certain activated voxels to inactivated voxels, and when the certain activated voxels are removed from the voxel grid, the one or more data points, which are included in the certain activated voxels, are removed from the plurality of data points of the three-dimensional point cloud.

In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to apply the filter to a particular voxel column that extends in a vertical direction of the voxel grid, and the filter removes the certain activated voxels from the particular voxel column based on a number of voxels between an activated voxel with a largest value in the vertical direction and an activated voxel with a smallest value in the vertical direction within the particular voxel column.

In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to apply the filter to a particular voxel column that extends in a vertical direction of the voxel grid, and the filter removes the certain activated voxels from the particular voxel column based on whether or not an activated voxel with a smallest value in the vertical direction within the particular voxel column is spaced away from an additional filter that was previously used to remove activated voxels located below the additional filter in the vertical direction of the voxel grid.

In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to filter the three-dimensional point cloud to remove one or more data points from the plurality of data points based on a position of the one or more data points, convert the three-dimensional point cloud to a two-dimensional obstacle map that includes a location of one or more obstacles, update an agricultural field map to include the location of the one or more obstacles based on the two-dimensional obstacle map, and determine whether or not to update a planned traveling route of the working machine based on the updated agricultural field map.

In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to filter the three-dimensional point cloud to remove one or more data points from the plurality of data points based on a position of the one or more data points, remove the one or more data points from the plurality of data points based on a distance between a first of the one or more data points with a largest vertical position within a column that extends in a vertical direction of the three-dimensional point cloud and a second of the one or more data points with a smallest vertical position within the column that extends in the vertical direction of the three-dimensional point cloud, and remove the one or more data points from the plurality of data points when the distance between the first of the one or more data points and the second of the one or more data points is less than a predetermined threshold.

In a working machine according to a preferred embodiment of the present invention, the controller is configured or programmed to determine whether or not to update a planned traveling route of the working machine based on a distance between a first of the plurality of data points with a largest vertical position within a column that extends in a vertical direction of the three-dimensional point cloud and a second of the plurality of data points with a smallest vertical position within the column that extends in the vertical direction of the three-dimensional point cloud.

The above and other features, elements, steps, configurations, characteristics, and advantages of the present invention will become more apparent from the following detailed description of preferred embodiments of the present invention with reference to the attached drawings.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG.1Aillustrates a tractor as an example of a working machine1according to a preferred embodiment. Although a tractor will be described as an example of the working machine1in the present preferred embodiment, the working machine1is not limited to a tractor and may be an agricultural machine, such as a rice transplanter, that performs agricultural work, or a construction machine, such as a backhoe, that performs construction work. In the description of the present preferred embodiment of the present invention, the forward direction (the arrow A1direction inFIG.1A) of an operator (driver) sitting on an operator's seat10of the working machine1is referred to as the front, the rearward direction (the arrow A2direction inFIG.1A) of the operator is referred to as the rear, the leftward direction of the operator is referred to as the left, and the rightward direction of the operator is referred to as the right. In the description, the horizontal direction, which is a direction orthogonal to the front-rear direction of the working machine1, is referred to as the width direction.

As illustrated inFIGS.1and3, the working machine1includes a traveling vehicle (machine body)3including a traveling device7, a prime mover4, a transmission5, and a steering device11. The traveling device7is a device that includes a front wheel7F and a rear wheel7R. The rear wheel7R includes a first wheel7R1provided on one side (left side) of the machine body3in a machine-body width direction, and a second wheel7R2provided on the other side (right side) of the machine body3in the machine-body width direction. The second wheel7R2is separated from the first wheel7R1in the machine-body width direction. The front wheel7F may be of a tire type or a crawler type. The rear wheel7R also may be of a tire type or a crawler type. The prime mover4includes an internal combustion engine, such as a gasoline engine or a diesel engine, an electric motor, or the like. In this preferred embodiment, the prime mover4is a diesel engine, for example. The transmission5can switch the propulsive force of the traveling device7by gear shifting and is able to switch between forward traveling and reverse traveling of the traveling device7. The machine body3includes a cabin9, and the operator's seat10is disposed in the cabin9.

As illustrated inFIG.1A, a rear portion of the machine body3is provided with a lifting apparatus8. A working device2is attachable to and detachable from the lifting apparatus8. The lifting apparatus8can raise and lower the working device2mounted thereon. The working device2is, for example, a cultivator to cultivate, a fertilizer spreader to spread a fertilizer, an agricultural chemical spreader to spread an agricultural chemical, a harvester to harvest, a mower to mow grass or the like, a tedder to ted grass or the like, a rake to rake grass or the like, or a baler to bale grass or the like.

As illustrated inFIG.3, the working machine1includes a display device50. The display device50is a device that includes a display unit51including a liquid crystal panel, a touch panel, or the other panel, and a storage device52. The display unit51can display various information on the working machine1, in addition to information to assist traveling of the working machine1. For example, the display unit51can display an agricultural field map M and an obstacle map OM discussed in more detail below. The storage device52is a nonvolatile memory or the like and stores information and the like to be displayed on the display unit51. The display device50is connected to a device included in the working machine1in a wired or wireless manner such that communication is enabled.

As illustrated inFIG.2, the transmission5includes a main shaft (propeller shaft)5a, a shuttle unit5b, a main transmission unit5c, a sub-transmission unit5d, a PTO power transmission unit5e, and a front transmission unit5f. The propeller shaft5ais rotatably supported by a housing case of the transmission5, and power from a crankshaft of the prime mover4is transmitted to the propeller shaft5a.

As illustrated inFIG.2, the shuttle unit5bhas a shuttle shaft5b1and a forward-reverse switching unit5b2. Power from the propeller shaft5ais transmitted to the shuttle shaft5b1. The forward-reverse switching unit5b2includes, for example, a hydraulic clutch or the like. The hydraulic clutch is turned on and off to switch the rotation direction of the shuttle shaft5b1, in other words, forward traveling and reverse traveling of the working machine1. Specifically, the forward-reverse switching unit5b2includes a forward clutch unit35and a reverse clutch unit36. The forward clutch unit35and the reverse clutch unit36include a housing37that rotates integrally with the propeller shaft5a.

As illustrated inFIG.2, the forward clutch unit35includes a cylindrical shaft35b, a friction plate35cdisposed between the housing37and the cylindrical shaft35b, and a press member35d. The press member35dis urged by an urging member such as a spring (not illustrated) in a direction away from the friction plate35c.

As illustrated inFIG.2, a first fluid passage18athrough which a hydraulic fluid is supplied and discharged is connected to the inside of the housing37on the forward clutch unit35side. As illustrated inFIG.3, the first fluid passage18ais connected to a first control valve17a. When the opening degree of the first control valve17ais changed and the hydraulic fluid is supplied to the inside of the housing37through the first fluid passage18a, the press member35dmoves against the urging force of the spring to the pressing side (connection side), thereby causing the friction plate35cto be in pressure contact with any portion on the housing37side and causing the forward clutch unit35to be in a connected state. The power of the propeller shaft5ais transmitted to a gear38that rotates integrally with the cylindrical shaft35b. When the hydraulic fluid is discharged from the inside of the housing37into the first fluid passage18a, the press member35dmoves due to the urging force of the spring to the disconnection side, thereby causing the friction plate35cto be separated from any part on the housing37side and causing the forward clutch unit35to be in a disconnected state. The power of the propeller shaft5ais not transmitted to the gear38. The gear (output gear)38on the output side of the forward clutch unit35engages with an output shaft5b3. When the forward clutch unit35is in the connected state, a driving force is transmitted to the output shaft5b3.

As illustrated inFIG.2, the reverse clutch unit36has a cylindrical shaft36b, a friction plate36cdisposed between the housing37and the cylindrical shaft36b, and a press member36d. The press member36dis urged by an urging member such as a spring (not illustrated) in a direction away from the friction plate36c.

As illustrated inFIG.2, a second fluid passage18bthrough which the hydraulic fluid is supplied and discharged is connected to the inside of the housing37on the reverse clutch unit36side. As illustrated inFIG.3, the second fluid passage18bis connected to a second control valve17b. When the opening degree of the second control valve17bis changed and the hydraulic fluid is supplied to the inside of the housing37through the second fluid passage18b, the press member36dmoves against the urging force of the spring to the pressing side (connection side), thereby causing the friction plate36cto be in pressure contact with the side of the housing37and causing the reverse clutch unit36to be in a connected state. The power of the propeller shaft5ais transmitted to a gear39that rotates integrally with the cylindrical shaft36b. When the hydraulic fluid is discharged from the side of the housing37into the second fluid passage18b, the press member36dmoves due to the urging force of the spring to the disconnection side, thereby causing the friction plate36cto be separated from any portion on the housing37side and causing the reverse clutch unit36to be in a disconnected state. The power of the propeller shaft5ais not transmitted to the gear39. The gear (output gear)39on the output side of the reverse clutch unit36engages with the output shaft5b3. When the reverse clutch unit36is in the connected state, a driving force is transmitted to the output shaft5b3.

The main transmission unit5cis a continuously variable transmission mechanism that changes input power continuously. As illustrated inFIG.2, the continuously variable transmission mechanism includes a hydraulic pump5c1, a hydraulic motor5c2, and a planetary gear mechanism5c3. The hydraulic pump5c1is rotated by the power from the output shaft5b3of the shuttle unit5b. The hydraulic pump5c1is, for example, a variable displacement pump including a swash plate12, and can change the flow rate of the hydraulic fluid output from the hydraulic pump5c1by changing the angle (swash plate angle) of the swash plate12. The hydraulic motor5c2is a motor that is rotated by the hydraulic fluid output from the hydraulic pump5c1via a fluid passage such as a pipe. The rotation speed of the hydraulic motor5c2can be changed by changing the swash plate angle of the hydraulic pump5c1or changing the power to be input to the hydraulic pump5c1.

As illustrated inFIG.2, the planetary gear mechanism5c3includes a plurality of gears (cogwheels) and power transmission shafts including input shafts, an output shaft, and the like. The planetary gear mechanism5c3includes an input shaft13to which the power of the hydraulic pump5c1is input, an input shaft14to which the power of the hydraulic motor5c2is input, and an output shaft15that outputs power. The planetary gear mechanism5c3combines the power of the hydraulic pump5c1and the power of the hydraulic motor5c2and transmits the combined power to the output shaft15.

Therefore, with the main transmission unit5c, it is possible to change the power that is to be output to the sub-transmission unit5dby changing the swash plate angle of the swash plate12of the hydraulic pump5c1, the rotation speed of the prime mover4, or the like.

In the present preferred embodiment, the angle of the swash plate12can be changed by the hydraulic fluid supplied from a third control valve17c. The swash plate12and the third control valve17care connected by, for example, a third fluid passage18cthrough which the hydraulic fluid is supplied and discharged. The third control valve17cis a two-position switching valve with a solenoid valve and can control the angle of the swash plate12, in other words, change the power that is to be output to the sub-transmission unit5dby energizing or deenergizing a solenoid of the solenoid valve to thereby control the hydraulic fluid that flows in the third fluid passage18c. The main transmission unit5c, which includes a continuously variable transmission mechanism, may be a multispeed transmission mechanism that performs gear shifting by using gears.

The sub-transmission unit5dis a transmission mechanism including multispeed gears (cogwheels) that perform gear shifting of power. The sub-transmission unit5dchanges the power input from the output shaft15of the planetary gear mechanism5c3to the sub-transmission unit5dby changing the connection (engagement) of the plurality of gears, as appropriate, and outputs the power (performs gear shifting). As illustrated inFIG.2, the sub-transmission unit5dincludes an input shaft5d1, a first gearshift clutch5d2, a second gearshift clutch5d3, and an output shaft5d4. The input shaft5d1is a shaft to which the power of the output shaft15of the planetary gear mechanism5c3is input. The input shaft5d1inputs the input power to the first gearshift clutch5d2and the second gearshift clutch5d3via a gear and the like. The input power is changed by switching between connection and disconnection of each of the first gearshift clutch5d2and the second gearshift clutch5d3and is output to the output shaft5d4. The power output to the output shaft5d4is transmitted to a rear-wheel differential20R. The rear-wheel differential20R rotatably supports a rear axle21R on which the rear wheel7R is mounted.

As illustrated inFIG.2, the PTO power transmission unit5eincludes a PTO clutch5e1, a PTO propeller shaft5e2, and a PTO gearshift unit5e3. The PTO clutch5e1includes, for example, a hydraulic clutch or the like and is switched between a state in which the power of the propeller shaft5ais transmitted to the PTO propeller shaft5e2and a state in which the power of the propeller shaft5ais not transmitted to the PTO propeller shaft5e2by connection and disconnection of the hydraulic clutch. The PTO gearshift unit5e3includes a gearshift clutch, a plurality of gears, and the like and changes and outputs the power (rotation speed) input to the PTO gearshift unit5e3from the PTO propeller shaft5e2. The power from the PTO gearshift unit5e3is transmitted to a PTO shaft16via a gear and the like.

As illustrated inFIG.2, the front transmission unit5fincludes a first front gearshift clutch5f1and a second front gearshift clutch5f2. The power from the sub-transmission unit5dcan be transmitted to the first front gearshift clutch5f1and the second front gearshift clutch5f2. For example, the power of the output shaft5d4is transmitted to the first front gearshift clutch5f1and the second front gearshift clutch5f2via a gear and a power transmission shaft. The power from the first front gearshift clutch5f1and the second front gearshift clutch5f2can be transmitted to a front axle21F via a front power transmission shaft22. Specifically, the front power transmission shaft22is connected to a front-wheel differential20F. The front-wheel differential20F rotatably supports the front axle21F on which the front wheel7F is mounted.

As illustrated inFIG.2, the first front gearshift clutch5f1and the second front gearshift clutch5f2each includes a hydraulic clutch and the like. A fourth fluid passage18dis connected to the first front gearshift clutch5f1, and the fluid passage is connected to a fourth control valve17dto which the hydraulic fluid output from the hydraulic pump is supplied, as illustrated inFIG.3. The first front gearshift clutch5f1is switched between a connected state and a disconnected state in accordance with the opening degree of the fourth control valve17d. As illustrated inFIG.2, a fifth fluid passage18eis connected to the second front gearshift clutch5f2, and is connected to a fifth control valve17e, as illustrated inFIG.3. The second front gearshift clutch5f2is switched between a connected state and a disconnected state in accordance with the opening degree of the fifth control valve17e. The fourth control valve17dand the fifth control valve17eare each, for example, a two-position switching valve with a solenoid valve and are switched to the connected state or the disconnected state by energizing or deenergizing of a solenoid of the solenoid valve.

When the first front gearshift clutch5f1is in the disconnected state and the second front gearshift clutch5f2is in the connected state, the power of the sub-transmission unit5dis transmitted to the front wheel7F through the second front gearshift clutch5f2. Consequently, four wheel drive (4WD) in which the front wheel7F and the rear wheel7R are driven by power is performed, and the rotation speeds of the front wheel7F and the rear wheel7R become equal or substantially equal to each other (4WD equal speed state, equal speed drive). When the first front gearshift clutch5f1is in the connected state and the second front gearshift clutch5f2is in the disconnected state, four-wheel drive is performed, and the rotation speed of the front wheel7F becomes faster than the rotation speed of the rear wheel7R (4WD increased speed state, increased speed drive). When the first front gearshift clutch5f1and the second front gearshift clutch5f2are in the connected state, the power of the sub-transmission unit5dis not transmitted to the front wheel7F. Thus, two wheel drive (2WD) in which the rear wheel7R is driven by power is performed. The configuration of the transmission5is not limited to the aforementioned configuration as long as the transmission5is able to switch forward traveling, reverse traveling, and the like of the traveling device7.

As illustrated inFIG.3, the working machine1includes a braking device25. The braking device25includes a left braking device25aand a right braking device25b. Each of the left braking device25aand the right braking device25bis the braking device25of a disc type and can be switched between a brake state in which braking is performed and a release state in which braking is released. The left braking device25ais provided on the left side of the rear axle21R and performs braking of the rear wheel7R (first wheel7R1) at the left. The right braking device25bis provided on the right side of the rear axle21R and performs braking of the rear wheel7R (second wheel7R2) at the right.

In the vicinity of the operator's seat10, for example, a left brake pedal (not illustrated) and a right brake pedal (not illustrated) are provided. In response to the left brake pedal being operated (stepped) by an operator that operates the working machine1, a left coupling member26acoupled to the left brake pedal moves in a braking direction and can cause the left braking device25ato enter the brake state. In response to the right brake pedal being operated (stepped) by the operator, a right coupling member26bcoupled to the right brake pedal moves in the braking direction and can cause the right braking device25bto enter the brake state.

A left hydraulic actuation unit27athat is actuated by the hydraulic fluid is coupled to the left coupling member26a. A sixth control valve17fis connected to the left hydraulic actuation unit27avia a sixth fluid passage18f. The left coupling member26acan be moved in the braking direction by actuating the left hydraulic actuation unit27aby the sixth control valve17f. A right hydraulic actuation unit27bthat is actuated by the hydraulic fluid is coupled to the right coupling member26b. A seventh control valve17gis connected to the right hydraulic actuation unit27bvia a seventh fluid passage18g. The right coupling member26bcan be moved in the braking direction by actuating the right hydraulic actuation unit27bby the seventh control valve17g.

As described above, the left braking device25aand the right braking device25bcan cause the rear wheel7R (first wheel7R1) at the left and the rear wheel7R (second wheel7R2) at the right, respectively, to be in the brake state independently not only by the operation of the left brake pedal and the right brake pedal but also by actuation of the left hydraulic actuation unit27aand the right hydraulic actuation unit27b. In the present preferred embodiment, the left braking device25ais provided on the left side of the rear axle21R, the right braking device25bis provided on the right side of the rear axle21R, and the braking device25performs braking of the rear wheel7R of the wheels7F and7R. However, instead of or in addition to the left braking device25aand the right braking device25b, the braking device25may be provided on each of the left side and the right side of the front axle21F and perform braking of each of the front wheels7F.

As illustrated inFIG.3, the lifting apparatus8includes lift arms8a, lower links8b, a top link8c, a lift rod8d, and a lift cylinder8e. A front end portion of each of the lift arms8ais supported to be swingable upward or downward at a rear upper portion of a case (transmission case) that houses the transmission5. The lift arm8ais swung (raised and lowered) by the drive of the lift cylinder8e. The lift cylinder8eincludes a hydraulic cylinder. The lift cylinder8eis connected to the hydraulic pump via an eighth control valve17h. The eighth control valve17his a solenoid valve or the like and extends and contracts the lift cylinder8e.

As illustrated inFIG.3, a front end portion of each of the lower links8bis supported to be swingable upward or downward at a rear lower portion of the transmission5. A front end portion of the top link8cis supported above the lower links8bto be swingable upward or downward at a rear portion of the transmission5. The lift rod8dcouples the lift arm8aand the lower link8bto each other. The working device2is coupled to a rear portion of the lower link8band a rear portion of the top link8c. When the lift cylinder8eis driven (extended and contracted), the lift arms8aare raised or lowered, and the lower links8bcoupled to the lift arms8avia the lift rods8dare raised or lowered. Consequently, the working device2is swung (raised or lowered) upward or downward with a front portion of the lower links8bas the fulcrum.

As illustrated inFIG.3, the steering device (steering mechanism)11is able to change the orientation of the machine body3by changing the steering angle of the traveling device7. The steering device11includes a steering handle (steering wheel)11a, a rotary shaft (steering shaft)11bthat rotates along with the rotation of the steering handle11a, and an assist mechanism (power steering mechanism)11cthat assists steering of the steering handle11a. The steering handle11aoperates steering of the machine body3and is manually operated by an operator. The assist mechanism11cincludes a ninth control valve17iand a steering cylinder32. The ninth control valve17iis, for example, a three-position switching valve that can be switched by a move of a spool or the like. The ninth control valve17ican be switched also by steering of the rotary shaft11b. The steering cylinder32is connected to an arm (knuckle arm)33that changes the orientation of the front wheel7F. Therefore, when the steering handle11ais operated, the switch position and the opening degree of the ninth control valve17iare switched in response to the steering handle11a, the steering cylinder32is extended or contracted leftward or rightward in accordance with the switch position and the opening degree of the ninth control valve17i, and it is thereby possible to change the steering direction of the front wheel7F. The steering device11described above is an example and is not limited to having the configuration described above.

As illustrated inFIG.3, the working machine1includes a controller40. The controller40is a device that is configured or programmed to perform various control operations of the working machine1. In a preferred embodiment, a plurality of detectors41are connected to the controller40. The plurality of detectors41are detectors to detect states of the working machine1and include, for example, a water temperature sensor41ato detect the temperature of water, a fuel sensor41bto detect the remaining amount of fuel, a prime mover rotation sensor (rotation sensor)41cto detect the rotation speed of the prime mover4, an accelerator pedal sensor41dto detect the operation amount of an accelerator42f, a steering angle sensor41eto detect the steering angle of the steering device11, an angle sensor41fto detect the angle of the lift arm8a, a tilt detection sensor41gto detect the tilt of the machine body3in the width direction (the right direction or the left direction), a rotation speed sensor41hto detect the rotation speeds of the wheels7F and7R, a PTO rotation sensor (rotation sensor)41ito detect the rotation speed of the PTO shaft16, a battery sensor41jto detect the voltage of a storage battery such as a battery, and the like. The rotation speed sensor41hcan detect the rotation speeds of the wheels7F and7R based on, for example, the rotation speed of the front axle21F and the rotation speed of the rear axle21R. The rotation speed sensor41hcan also detect the rotation direction of any of the front axle21F, the rear axle21R, the front wheel7F, or the rear wheel7R and can also detect whether the working machine1(machine body3) performs forward traveling or reverse traveling. The detectors41described above are examples and are not limited to the sensors described above.

In a preferred embodiment, a plurality of operation members42are connected to the controller40. The plurality of operation members42include a forward-reverse switching lever (shuttle lever)42ato switch between forward traveling and reverse traveling of the machine body3, an ignition switch42bto perform starting and the like of the prime mover4, a PTO gear shift lever42cto set the rotation speed of the PTO shaft16, a gearshift switching switch42dto switch between automatic gearshift and manual gearshift, a gear shift lever42eto manually switch gear positions (gear shift levels) of the transmission5, the accelerator42fto increase and decrease vehicle speed, a raising/lowering switch42gto operate raising and lowering of the lifting apparatus8, an upper-limit setting dial42hto set the upper limit of the lifting apparatus8, a vehicle speed lever42ito set vehicle speed, a switching tool42jto perform switching operation of the equal speed drive, the increased speed drive, and the 2WD of the transmission5, and the like. The operation members42described above are examples and are not limited to the operation members42described above.

In a preferred embodiment of the present invention, the working machine1can include one or more position detectors43, one or more light detection and ranging (LiDAR) sensors54, and one or more other sensors56such as one or more of weather sensors, cameras, and the like. In a preferred embodiment, the one or more position detectors43, the one or more LiDAR sensors54, and one or more other sensors56are connected to the controller40. The one or more position detectors43can detect a position of the machine body3(a machine body position W1) including measured position information such as latitude and longitude via a satellite positioning system (positioning satellite) such as D-GPS, GPS, GLONASS, Hokuto, Galileo, Michibiki, or the like. In other words, the one or more position detectors43receive a satellite signal (the position of a positioning satellite, transmission time, correction information, and the like) transmitted from a positioning satellite and detects the position (for example, the latitude and the longitude) of the working machine1based on the satellite signal.

As illustrated inFIG.1A, the one or more position detectors43, the one or more LiDAR sensors54, and one or more other sensors56can be provided on an upper portion (roof) of the cabin9covering the operator's seat10of the working machine1. Power and/or data cables for the one or more position detectors43, the one or more LiDAR sensors54, and the one or more other sensors56can be routed through an interior of the roof. The roof can be attached to, or integrated with, support pillars of the cabin9, as shown inFIG.1A, for example. A structure including the roof and the support pillars can define a roll-over protection system (ROPS) for the working machine1. As shown inFIG.1A, the one or more LiDAR sensors54can be provided on the upper portion (roof) of the cabin9. The one or more LiDAR sensors54can be inclined with respect to the roof. Preferably, for example, the LiDAR sensors54are adjustable and can each include an adjustable mounting base. Accordingly, the LiDAR sensors54can be adjusted to optimize a LIDAR angle for any particular implementation or use of the roof. For example, the LiDAR sensors54can be set to an angle of, for example, about 40 degrees with respect to a surface of the roof, and/or can have an ultra-wide field-of-view. The mounting position and the configuration of the one or more position detectors43, the one or more LiDAR sensors54, and the one or more other sensors56are not limited to the aforementioned configurations, which each can be located on other portion of the working machine1in which the one or more position detectors43, the one or more LiDAR sensors54, and one or more other sensors56can perform their respective functions.

In a preferred embodiment of the present invention, the working machine1may include an automated-steering control unit40ato control automated steering of the machine body3based on information including the machine body position W1and information from the one or more LiDAR sensors54and/or the one or more sensors56. More specifically, as illustrated inFIG.3, the controller40includes the automated-steering control unit40a. The automated-steering control unit40aincludes an electric/electronic circuit provided in the controller40, a program stored in a CPU or the like, and the like. The automated-steering control unit40acontrols the assist mechanism11csuch that the machine body3travels along a planned traveling route L based on a control signal output from the controller40. The automated-steering control unit40aincludes a first control unit40a1. The first control unit40a1sets the steering angle of the steering device11based on the planned traveling route L. The planned traveling route L is set using a computer, such as a personal computer (PC), a smartphone (multifunctional mobile telephone), or a tablet connected to or included in the working machine1. For example, the controller40can set the planned traveling route L, as discussed in more detail below.

As illustrated inFIG.4, the planned traveling route L can be set based on an agricultural field map M that includes positional information regarding portions of the agricultural field and a location of one or more obstacles O within the agricultural field. In a preferred embodiment, the agricultural field map M can include portions that are predetermined (e.g., predetermined/stored before the working machine1enters the agricultural field) and/or portions that are updated (e.g., determined as the working machine travels in the agricultural field). For example, as illustrated inFIG.4, the agricultural field map M can include positional information on a region E1of the agricultural field including furrows and the periphery of the furrows, a region E2of the agricultural field other than the region E1, and an obstacle O located within the agricultural field. As discussed in more detail below, the one or more LiDARs54can be used to detect one or more obstacles O within the agricultural field as the working machine1travels in the agricultural field. When the one or more obstacles O are detected, the agricultural field map M can be updated to include positional information regarding the one or more obstacles O, and if needed, the planned traveling route L can be updated based on the updated agricultural field map that includes the positional information regarding the one or more obstacles O. In other words, as discussed in more detail below, the controller40is configured or programmed to determine whether or not to update a planned traveling route of a working machine based on the updated agricultural field map that includes the positional information regarding the one or more obstacles O.

The planned traveling route L can include a straight travel section L1in which the machine body3travels straight, a turn section L2in which the machine body3turns, and an avoidance section L3in which the machine body3is controlled to avoid an obstacle O. In a preferred embodiment of the present invention, the controller40generates the planned traveling route L. For example, the controller40can be configured or programmed to function as a global planner and a local planner to generate the planned traveling route L. The global planner generates an initial planned traveling route L based on desired way points on the agricultural field map M. An example of the global planner includes a Dijkstra global planner, known to one of ordinary skill in the art. The local planner will receive the initial planned traveling route L generated by the global planner, and if an obstacle is on the initial planned traveling route L, for example, if an obstacle is detected by the one or more LiDARs54as the working machine1travels in the agricultural field, then the local planner will change/update the initial planned traveling route L so that the working machine1avoids the obstacle O by traveling on an avoidance section L3. For example, the local planner is able to use Time Elastic Bands (TEB), known to one of ordinary skill in the art, to create a sequence of intermediate working machine poses1(x-coordinate, y-coordinate, and heading θ) to modify the initial planned traveling route L generated by the global planner. In this way, the controller40is configured or programmed to determine whether or not to update a planned traveling route L of a working machine based an obstacle detected by the one or more LiDARs54.

In a preferred embodiment, the first control unit40a1performs a control such that the machine body3travels along the planned traveling route L when the working machine1performs automated traveling. In other words, when the deviation between the machine body3and the planned traveling route L is less than a first set value previously set, an automated-traveling control unit of the first control unit40a1maintains the rotation angle of the rotary shaft11b. When the deviation between the machine body3and the planned traveling route L is more than or equal to the first set value, the automated-traveling control unit of the first control unit40a1rotates the rotary shaft11bsuch that the deviation is zero.

Specifically, as illustrated inFIG.5, when the deviation (position deviation) between the machine body position W1and the planned traveling route L is less than the first set value previously set, the first control unit40a1maintains the rotation angle of the rotary shaft11b. When the position deviation between the machine body position W1and the planned traveling route L is more than or equal to the first set value and when the working machine1is positioned on the left side of the planned traveling route L, the first control unit40a1rotates the rotary shaft11bsuch that the steering direction of the working machine1is the right direction. When the position deviation between the machine body position W1and the planned traveling route L is more than or equal to the first set value and when the working machine1is positioned on the right side of the planned traveling route L, the first control unit40a1rotates the rotary shaft11bsuch that the steering direction of the working machine1is the left direction.

In the preferred embodiment described above, the steering angle of the steering device11is changed based on the position deviation between the machine body position W1and the planned traveling route L. However, as illustrated inFIG.5, when the course of the planned traveling route L and the course (machine body course) F1of the running direction (traveling direction) of the working machine1(machine body3) differ from each other, in other words, when an angle (course deviation) θg of the machine body course F1with respect to the planned traveling route L is more than or equal to a second set value, the first control unit40a1may set the steering angle such that the angle θg is zero (the machine body course F1coincides with the course of the planned traveling route L). The first control unit40a1may set the final steering angle for automated traveling based on a steering angle obtained based on the deviation (position deviation) and a steering angle obtained based on the angle (course deviation) θg. Setting of the steering angle for automated traveling in the preferred embodiment described above is an example and is not limiting.

The working machine1can cause a rotational difference between the first wheel7R1and the second wheel7R2and change and turn the machine body course F1. The working machine1includes a rotational difference generating device that causes a rotation difference between the first wheel7R1and the second wheel7R2. The automated-steering control unit40ahas a second control unit40a2that controls the rotation difference generating device to cause a rotational difference between the first wheel7R1and the second wheel7R2.

The rotational difference generating device causes a rotational difference between the first wheel7R1and the second wheel7R2by performing braking of each of the first wheel7R1and the second wheel7R2independently or transmitting an independent driving force to each of the first wheel7R1and the second wheel7R2. When the rotational difference generating device increases the rotation speed of the first wheel7R1to be higher than that of the second wheel7R2, the leftward propulsive force of the machine body3becomes larger than the rightward propulsive force, and the machine body3travels such that the machine body course F1is directed to the right. When the rotational difference generating device increases the rotation speed of the second wheel7R2to be higher than that of the first wheel7R1, the rightward propulsive force of the machine body3becomes larger than the leftward propulsive force, and the machine body3travels such that the machine body course F1is directed to the left.

In the present preferred embodiment, the rotational difference generating device is the braking device25described above. The braking device25causes a rotational difference between the first wheel7R1and the second wheel7R2by switching at least one of the left braking device25aand the right braking device25bbetween the brake state in which braking is performed and the release state in which braking is not performed. For example, when the braking force of the right braking device25bis increased to be higher than the braking force of the left braking device25aby controlling the left braking device25aand the right braking device25b, the propulsive force of the first wheel7R1becomes higher than the propulsive force of the second wheel7R2, and a rotational difference is generated between the first wheel7R1and the second wheel7R2. When the braking force of the left braking device25ais increased to be higher than the braking force of the right braking device25bby controlling the left braking device25aand the right braking device25b, the propulsive force of the second wheel7R2becomes higher than the propulsive force of the first wheel7R1, and a rotational difference is generated between the first wheel7R1and the second wheel7R2.

The rotational difference generating device25is not limited to having the aforementioned configuration. As long as the rotational difference generating device25is able to cause a rotational difference between the first wheel7R1and the second wheel7R2, the rotational difference generating device25is not limited to the braking device25and may be the transmission5that transmits an independent driving force to each of the first wheel7R1and the second wheel7R2by, for example, switching of a gear.

As illustrated inFIG.3, the working machine1includes a state acquisition unit40dthat acquires the state of the transmission5. The state acquisition unit40dincludes, for example, an electric/electronic circuit included in the controller40, a program stored in a CPU or the like, and the like. The state acquisition unit40dacquires information on operation of the switching tool42jand acquires, based on the information, information on which one of the equal speed drive, the increased speed drive, and the 2WD the transmission5is switched to. Consequently, the pumping setting unit60determines whether the transmission5is switched to the increased speed drive or the equal speed drive based on the state of the transmission5acquired by the state acquisition unit40d.

As illustrated inFIG.3, the working machine1includes a speed acquisition unit40cthat acquires the machine body speed. The speed acquisition unit40cincludes, for example, an electric/electronic circuit included in the controller40, a program stored in a CPU or the like, and the like. The speed acquisition unit40cacquires information on the machine body3from a sensor included in the working machine1and acquires the machine body speed based on the information. For example, the speed acquisition unit40cacquires the machine body speed by calculating the machine body speed based on the rotation speeds of the wheels7F and7R or acquires the machine body speed by calculating an actual machine body speed based on the machine body position W1detected by the position detector43and the time of the detection. Consequently, the pumping setting unit60sets the duty ratio based on the machine body speed acquired by the speed acquisition unit40c.

As illustrated inFIG.3, the working machine1includes a steering-angle acquisition unit40ethat acquires the steering angle of the steering device11. The steering-angle acquisition unit40eincludes, for example, an electric/electronic circuit included in the controller40, a program stored in a CPU or the like, and the like. The steering-angle acquisition unit40eacquires the steering angle based on, for example, a signal acquired from the steering angle sensor41e. The method of acquiring the steering angle is not limited to the aforementioned method. The steering-angle acquisition unit40emay acquire the steering angle set by the first control unit40a1from the first control unit40a1. Consequently, based on the steering angle acquired by the steering-angle acquisition unit40e, the pumping setting unit60determines whether the steering angle is more than or equal to a predetermined steering angle. The steering angle is a value that is previously stored in the storage unit or the like and may be changeable optionally.

In a preferred embodiment of the present invention, the one or more LiDARs54are used to detect one or more obstacles around the working machine1. The one or more LiDARs54can include an Ouster OS0-32 Lidar sensor which has a vertical field of view of 90° (±45°), for example. Alternatively, the one or more LiDARs54can include a different LiDAR sensor or LIDAR camera and/or have a different field of view.FIG.6shows a flowchart that includes steps included in a process according to a preferred embodiment of the present invention. In a preferred embodiment, the one or more LiDARs54include a controller541that is configured or programmed to perform the steps shown inFIG.6. Alternatively, the controller40can be configured or programmed to perform the steps shown inFIG.6.

In step S6-1, the one or more LiDARs54are used to generate a three-dimensional point cloud in the range and field of view of the one or more LiDARs54. The three-dimensional point cloud includes data points that represent the objects and space surrounding the working machine1. Each of the data points included in the three-dimensional point cloud includes an x-coordinate, a y-coordinate, and a z-coordinate. In a preferred embodiment, an averaging horizontal convolution filter can be used to stabilize a shift in the data points.

In a preferred embodiment, the three-dimensional point cloud includes data points that represent the objects and space surrounding the entire perimeter of the working machine1, but the three-dimensional point cloud can alternatively include data points that represent only a portion of the objects and space surrounding the perimeter of the working machine1. For example, the three-dimensional point cloud can include data points that represent the objects and space surrounding a front portion of the working machine1(e.g., 90 degrees or 180 degrees at the front of the working machine1), or the three-dimensional point cloud can include data points that represent the objects and space surrounding a front portion and a rear portion of the working machine1(e.g., 90 degrees at the front portion and the rear portion of the working machine1). In the example shown inFIG.1B, a front LiDAR54is used to generate data points of the three-dimensional point cloud in the range and field of view54-1of the front LIDAR54, and a rear LiDAR54is used to generate data points of the three-dimensional point cloud in the range and field of view54-2of the rear LiDAR54.

In step S6-2, the three-dimensional point cloud is filtered to remove data points of the three-dimensional point cloud that correspond to portions of the working machine1. For example, data points of the three-dimensional point cloud that correspond to portions of the working machine1such as the hood and the rear fender of the main body3, the traveling device7, the lifting apparatus8, and the working device2are removed from the three-dimensional point cloud to generate a filtered three-dimensional point cloud. In a preferred embodiment, the data points of the three-dimensional point cloud that correspond to portions of the working machine1such as the hood and the rear fender of the main body3, the traveling device7, the lifting apparatus8, and the working device2can be determined based on a known positional relationship between the one or more LiDARs54and the portions of the working machine1such as the hood and the rear fender of the main body3, the traveling device7, the lifting apparatus8, and the working device2. In other words, because the one or more LiDARs54and the portions of the working machine1such as the hood and the rear fender of the main body3, the traveling device7, the lifting apparatus8, and the working device2have a fixed positional relationships with respect to each other, the fixed positional relationships can be used to determine which points of the three-dimensional point cloud correspond to the portions of the working machine1.

For example, inFIG.1B, the three-dimensional point cloud data points generated in the range and field of view51-1of the front LiDAR54can be filtered to remove the data points that correspond to the hood of the main body3and the front wheel7F based on the known positional relationship between the front LiDAR54and each of the hood of the main body3and the front wheel7F. InFIG.1B, the data points that correspond to the hood of the main body3and the front wheel7F are surrounded by a heavy dotted line. Similarly, the three-dimensional point cloud data points generated in the range and field of view51-2of the rear LIDAR54can be filtered to remove the data points that correspond to the rear fender of the main body3, the rear wheel7R, the lifting apparatus8, and the working device2based on the known positional relationship between the rear LiDAR54and each of the rear fender of the main body3, the rear wheel7R, the lifting apparatus8, and the working device2. InFIG.1B, the points that correspond to the rear fender of the main body3, the rear wheel7R, the lifting apparatus8, and the working device2are surrounded by a heavy dotted line.

In steps S6-3and S6-4, the filtered three-dimensional point cloud that was generated in step S6-2is further filtered to eliminate/remove additional data points from the three-dimensional point cloud.

In a preferred embodiment, step S6-3includes using a voxel grid70to process and filter the three-dimensional point cloud that was generated in step S6-2. A voxel grid70is a three-dimensional grid organized into layers of rows and columns. Each row, column, and layer intersection in the voxel grid70is called a voxel701, and is represented by a three-dimensional cube, as shown inFIG.7, for example. The size of the voxels701included in the voxel grid70can be set, for example, based on factors such as the size of the working machine1and the environment in which the working machine1operates. For example, the size of each voxel701can be set to 0.1 meters, and can alternatively be set to 0.3 meters, 0.5 meters, or another value.

FIG.7illustrates an example of a voxel grid70used to process and filter the three-dimensional point cloud that was generated in step S6-2. In the example shown inFIG.7, the voxel grid70is used to process and filter the three-dimensional point cloud that was generated in step S6-2, which includes data points that represent the objects and space surrounding a front portion of the working machine1. As discussed above, the three-dimensional point cloud can include data points that represent the objects and space surrounding other portions, or an entirety of, the perimeter of the working machine1.

In a preferred embodiment, the voxel grid70includes one or more activated voxels701a. An activated voxel701ais a voxel701that includes a data point of the three-dimensional point cloud that corresponds to an object or a portion of an object. For example, an activated voxel701ais a voxel701which is occupied by at least one data point of the three-dimensional point cloud that corresponds to an object such as an agricultural item, the ground, a person, another object, or a portion thereof. The activated voxels701ainFIG.7are represented by the voxels that include a dot within the voxel701. For illustrative purposes,FIG.7only shows the activated voxels701aincluded in the voxel columns on a side surface of the voxel grid70. That is, although activated voxels701amay exist throughout the voxel grid70,FIG.7only shows the activated voxels701aincluded in the voxel columns on a side surface of the voxel grid70.

In a preferred embodiment of the present invention, a filter72is applied to the voxel grid70in step S6-3. The filter72eliminates/removes certain activated voxels701afrom the voxel grid70by changing the certain activated voxels701ato empty/inactivated voxels701. In steps S6-3and S6-4, when activated voxels701aare eliminated/removed from the voxel grid70by changing the activated voxels701ato empty/inactivated voxels701, the data points of the three-dimensional point cloud that are included in the activated voxels701aare eliminated/removed from the three-dimensional point cloud when the activated voxels701aare eliminated/removed from the voxel grid70. In this way, the voxel grid70is used to process and filter the three-dimensional point cloud in steps S6-3and S6-4.

In a preferred embodiment of the present invention, the filter72applied in step S6-3can eliminate/remove activated voxels701afrom the voxel grid70by changing the activated voxels701alocated below the filter72in the z-direction of voxel grid70(a vertical direction of the voxel grid70) to empty/inactivated voxels701. The filter72can be represented by a plane that is parallel to, and located a predetermined distance from, the bottom surface of the voxel grid70. For example, inFIG.7, the filter72is represented by a plane72athat is parallel to, and located a predetermined distance of three voxels from, the bottom surface of the voxel grid70. The predetermined distance of the plane72afrom the bottom surface of the voxel grid70can be a predetermined distance other than three voxels, such as one voxel or five voxels, for example.

FIG.8Ais a side view that shows an example of the voxel grid70used to process and filter the three-dimensional point cloud that was generated in step S6-2. That is,FIG.8Ashows a side view of the voxel grid70fromFIG.7before the filter72has eliminated/removed any activated voxels701afrom the voxel grid70.FIG.8Bis a side view that shows the voxel grid70after the filter72has eliminated/removed activated voxels701afrom the voxel grid70. More specifically,FIG.8Bshows an example in which the filter72has eliminated/removed activated voxels701afrom the voxel grid70by changing the activated voxels701alocated below the plane72ain the z-direction of voxel grid70to empty/inactivated voxels701.

The filter72is not limited to being represented by a plane that is parallel to the bottom surface of the voxel grid70. For example, the filter72can be represented by an inclined plane72bthat starts from a point located on or adjacent to the working machine1and that increases at a predetermined slope away from the point located on or adjacent to the working machine1. For example, as shown inFIG.7, the filter72can be represented by an inclined plane72bthat starts from a point that is located at a bottom surface of the work machine1and that increases at a predetermined slope away from the point.

FIG.9Ais a side view that shows an example of the voxel grid70used to process and filter the three-dimensional point cloud when the filter72is represented by an inclined plane72b. That is,FIG.9Ashows a side view of the voxel grid70fromFIG.7before the filter72has eliminated/removed any activated voxels701a.FIG.9Bis a side view that shows the voxel grid70after the filter72has eliminated/removed activated voxels701a. More specifically,FIG.9Bshows an example in which the filter72has eliminated/removed activated voxels701afrom the voxel grid70by changing the activated voxels701athrough which the plane72bextends, and the activated voxels701awhich are located below the plane72bin the z-direction of voxel grid70, to empty/inactivated voxels701. Alternatively, the filter72may not eliminate/remove activated voxels701athrough which plane72bextends, and only eliminate/remove activated voxels701awhich are located below the plane72bin the z-direction of voxel grid70.

In examples discussed above, the filter72represented by the plane72aeliminates/removes activated voxels701alocated below the plane72ain the z-direction of voxel grid70, and the filter72represented by the inclined plane72beliminates/removes activated voxels701athrough which plane72bextends and which are located below the plane72bin the z-direction of voxel grid70. In this way, in step S6-3, the filter72represented by the plane72aor the filter72represented by the inclined plane72bcan eliminate/remove activated voxels701athat correspond to portions of the ground surrounding the working machine1and/or small agricultural items located on the ground surrounding the working machine1. Therefore, in step S6-3, the data points of the three-dimensional point cloud that are included in the activated voxels701athat correspond to portions of the ground surrounding the working machine1and/or small agricultural items located on the ground surrounding the working machine1are eliminated/removed from the three-dimensional point cloud when the activated voxels701aare eliminated/removed from the voxel grid70.

In an alternative preferred embodiment, the filter72can eliminate/remove activated voxels701alocated above a plane72ain the z-direction of voxel grid70, or eliminate/remove activated voxels701athrough which a plane72bextends and which are located above the plane72bin the z-direction of voxel grid70. In this way, based on the location of the plane72aor the plane72bin the z-direction of voxel grid70, in step S6-3, the filter72represented by the plane72aor the inclined plane72bcan eliminate/remove activated voxels701athat correspond to portions of a canopy or other agricultural items above the working machine1.

In another alternative preferred embodiment, more than one filter72can be used to eliminate/remove activated voxels701afrom the voxel grid70. For example, a first filter72can be used to eliminate/remove activated voxels701alocated below a first plane72a1in the z-direction of voxel grid70, and a second filter72can be used to eliminate/remove activated voxels701alocated above a second plane72a2in the z-direction of voxel grid70.FIG.10Ais a side view that shows an example of the voxel grid70fromFIG.7generated based on the filtered three-dimensional point cloud that was generated in step S6-2, andFIG.10Bis a side view that shows the voxel grid70after the first filter72and the second filter72have been used to eliminate/remove activated voxels701a.

In a preferred embodiment of the present invention, step S6-4includes applying an object filter to the voxel grid70. For example, step S6-4includes applying an object filter to the voxel grid70after step S6-3has been completed. The object filter eliminates/removes certain activated voxels701afrom the voxel grid70by changing the activated voxels701ato empty/inactivated voxels701.

In a preferred embodiment of the present invention, the object filter is applied to an individual voxel column that extends in the z-direction of the voxel grid70. For example, the object filter is applied to an individual voxel column such as voxel column C1, voxel column C2, and voxel column C3, shown inFIG.7.

FIG.11is flowchart that shows steps performed by the object filter during step S6-4. In step S11-1, the object filter identifies a particular voxel column included in the voxel grid70. For example, in step S11-1, the object filter can identify voxel column C1as the particular voxel column. In step S11-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S11-1. If, in step S11-2, the object filter determines that there are no activated voxels701aincluded in the particular voxel column identified in step S11-1, then the process ends. If, on the other hand, the object filter determines that there is at least one activated voxel701aincluded in the particular voxel column identified in step S11-1, then the process proceeds to step11-3. In step S11-3, the object filter determines a number of voxels (a distance) between the activated voxel with the largest value in the z-direction and the activated voxel with the smallest value in the z-direction within the particular voxel column. In step S11-3, if the object filter determines that there is a single activated voxel701aincluded in the particular voxel column, then the object filter interprets the number of voxels between the activated voxel with the largest value in the z-direction and the activated voxel with the smallest value in the z-direction within the particular voxel column as being one voxel.

In step S11-4, the object filter determines whether or not the number of voxels determined in step S11-3is less than a predetermined distance threshold. In a preferred embodiment, the predetermined distance threshold can be a predetermined number of voxels, such as three voxels, for example. If the object filter determines that the number of voxels determined in step S11-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the number of voxels determined in step S11-3is less than the predetermined distance threshold, then the process proceeds to step S11-5. In step S11-5, the object filter eliminates/removes all of the activated voxels701aincluded in the particular voxel column by changing the activated voxels701ato empty/inactivated voxels701.

As mentioned above, the object filter is applied to the individual voxel columns that extend in the z-direction of the voxel grid70. Examples of the object filter being applied to individual voxel columns will be discussed in more detail below.

FIG.12Ashows a side view of the voxel grid70fromFIG.7after the filter72has eliminated/removed activated voxels701afrom the voxel grid70by changing the activated voxels701alocated below the plane72ain the z-direction of voxel grid70to empty/inactivated voxels701. In a first example, in step S11-1, the object filter identifies a particular voxel column within the voxel grid70. For example, in step S11-1, the object filter can identify voxel column C1shown inFIG.7andFIG.12Aas the particular voxel column. In step S11-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S11-1. For example, in step S11-2, the object filter determines that there is at least one activated voxel701aincluded in the voxel column C1because the voxel column C1includes two activated voxels701a. In step S11-3, the object filter determines a number of voxels (a distance) between the activated voxel with the largest value in the z-direction (the highest activated voxel) and the activated voxel with the smallest value in the z-direction (the lowest activated voxel) within the voxel column C1. For example, in step S11-3, the object filter determines that the number of voxels between the activated voxel with the largest value in the z-direction and the activated voxel with the smallest value in the z-direction within the voxel column C1is six voxels (including the highest activated voxel and the lowest activated voxel). In step S11-4, the object filter determines whether or not the number of voxels determined in step S11-3is less than the predetermined distance threshold. If the object filter determines that the number of voxels determined in step S11-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the number of voxels determined in step S11-3is less than the predetermined distance threshold, then the process proceeds to step S11-5. In the present example, if the predetermined distance threshold is set to three voxels, then the object filter determines that the number of voxels of six voxels determined in step S11-3is equal to or greater than the predetermined distance threshold of three voxels, and the process ends.

In a second example, in step S11-1, the object filter can identify voxel column C2shown inFIG.12Aas the particular voxel column. In step S11-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S11-1. For example, in step S11-2, the object filter determines that there is not at least one activated voxels701aincluded in voxel column C2, and the process ends.

In a third example, in step S11-1, the object filter can identify voxel column C4shown inFIG.12Aas the particular voxel column. In step S11-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S11-1. For example, in step S11-2, the object filter determines that there is at least one activated voxel701aincluded in voxel column C4because the voxel column C4includes four activated voxel701a. In step S11-3, the object filter determines a number of voxels between the activated voxel with the largest value in the z-direction (the highest activated voxel) and the activated voxel with the smallest value in the z-direction (the lowest activated voxel) within the voxel column C4. For example, in step S11-3, the object filter determines that the number of voxels between the activated voxel with the largest value in the z-direction and the activated voxel with the smallest value in the z-direction within the voxel column C4is four voxels. In step S11-4, the object filter determines whether or not the number of voxels determined in step S11-3is less than the predetermined distance threshold. If the object filter determines that the number of voxels determined in step S11-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the number of voxels determined in step S11-3is less than the predetermined distance threshold, then the process proceeds to step S11-5. In the present example, if the predetermined distance threshold is set to three voxels, then the object filter determines that the number of voxels of four voxels determined in step S11-3is equal to or greater than the predetermined distance threshold of three voxels, and the process ends.

In a fourth example, in step S11-1, the object filter can identify voxel column C6shown inFIG.12Aas the particular voxel column. In step S11-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S11-1. For example, in step S11-2, the object filter determines that there is at least one activated voxel701aincluded in voxel column C6because voxel column C6includes two activated voxels. In step S11-3, the object filter determines a number of voxels (a distance) between the activated voxel with the largest value in the z-direction (the highest activated voxel) and the activated voxel with the smallest value in the z-direction (the lowest activated voxel) within the voxel column C6. For example, in step S11-3, the object filter determines that the number of voxels between the activated voxel with the largest value in the z-direction and the activated voxel with the smallest value in the z-direction within the voxel column C6is two voxels. In step S11-4, the object filter determines whether or not the number of voxels determined in step S11-3is less than the predetermined distance threshold. If the object filter determines that the number of voxels determined in step S11-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the number of voxels determined in step S11-3is less than the predetermined distance threshold, then the object filter eliminates/removes all of the activated voxels701aincluded in the particular voxel column by changing the activated voxels701ato empty/inactivated voxels701in step S11-5. In the present example, if the predetermined distance threshold is set to three voxels, then the object filter determines that the number of voxels of two voxels determined in step S11-3is less than the predetermined distance threshold of three voxels. Therefore, in step S11-5, the object filter eliminates/removes all of the activated voxels701aincluded in the voxel column C6by changing the activated voxels701ato empty/inactivated voxels701.

FIG.12Bshows a side view of the voxel grid70after the object filter has been applied to each of the individual voxel columns of the voxel grid70shown inFIG.12Ato eliminate/remove certain activated voxels701afrom the voxel grid70in step6-4when the predetermined distance threshold is set to three voxels. As discussed above, the object filter is applied to an individual voxel column that extends in the z-direction of the voxel grid70. In a preferred embodiment, the object filter can be applied to more than one of the individual voxel columns of the voxel grid70in parallel/simultaneously. For example, the object filter can be applied to each of the individual voxel columns of the voxel grid70in parallel/simultaneously. Alternatively, the object filter can be applied to the individual voxel columns of the voxel grid70in series or in groups of voxel columns.

Additional examples of the object filter being applied to voxel columns in step6-4will be discussed below with respect toFIGS.13and14.

FIG.13Ashows a side view of the voxel grid70fromFIG.7after the filter72has eliminated/removed activated voxels701afrom the voxel grid70by changing the activated voxels701alocated below the plane72bin the z-direction of voxel grid70to empty/inactivated voxels701in step S6-3.FIG.13Bshows a side view of the voxel grid70after step S6-4in which the object filter has been applied to each of the individual voxel columns of the voxel grid70shown inFIG.13Ato eliminate/remove certain activated voxels701afrom the voxel grid70when the predetermined distance threshold is set to three voxels.

FIG.14Ashows a side view of the voxel grid70fromFIG.7after the first filter72has eliminated/removed activated voxels701alocated below a first plane72a1in the z-direction of voxel grid70, and a second filter72has eliminated/removed activated voxels701alocated above a second plane72a2in the z-direction of the voxel grid70.FIG.14Bshows a side view of the voxel grid70after step S6-4in which the object filter has been applied to each of the individual voxel columns of the voxel grid70shown inFIG.14Ato eliminate/remove certain activated voxels701afrom the voxel grid70when the predetermined distance threshold is set to three voxels.

In a preferred embodiment of the present invention, the object filter can eliminate/remove activated voxels701afrom the voxel grid70that correspond to objects that the working machine1can pass through (e.g., pass through or over) and for which the planned traveling route L should not be changed/updated. For example, the examples of the object filter discussed above can eliminate/remove activated voxels701athat correspond to objects such as small agricultural items such as branches or vegetation that extend in front of the working machine1in a horizontal manner (e.g., intersect the planned traveling route L) but through which the working machine1can easily pass through. On the other hand, the activated voxels701athat correspond to objects that are obstacles such as significant agricultural items, a person, or another non-passable objects are maintained within the voxel grid70.

Therefore, in step S6-4, the data points of the three-dimensional point cloud that are included in the activated voxels701athat correspond to objects that the working machine1can pass through and for which the planned traveling route L should not be changed/updated are eliminated/removed from the three-dimensional point cloud when the activated voxels701aare eliminated/removed from the voxel grid70, and the data points of the three-dimensional point cloud that are included in the activated voxels701athat correspond to objects that are obstacles such as significant agricultural items, a person, or another non-passable objects are maintained within the three-dimensional point cloud. In this way, the object filter is an example of a filter that filters the three-dimensional point cloud to eliminate/remove one or more data points corresponding to an object through which the working machine1can pass based on a vertical position of the one or more data points.

In a preferred embodiment of the present invention, the steps performed by the object filter during step S6-4can be changed or modified from the steps shown inFIG.11. For example,FIG.15is a flowchart that shows a first modification to the steps shown inFIG.11, which are performed by the object filter during step S6-4. More specifically,FIG.15shows that the object filter is able to perform an additional step, step S15-3. The steps included inFIG.15other than step S15-3are the same as the steps included inFIG.11.

In step S15-3, the object filter determines whether or not the lowest activated voxel in the voxel column is spaced away from the filter72used to filter the voxel grid70in step S6-3. For example, the object filter determines whether or not the lowest activated voxel in the voxel column is spaced away from the plane72aused to filter the voxel grid70in step S6-3. If the lowest activated voxel in the voxel column is not spaced away from the filter72used to filter the voxel grid70in step S6-3, then the process ends. If, on the other hand, the lowest activated voxel in the voxel column is spaced away from the filter72used to filter the voxel grid70in step S6-3, then the process proceeds to step S15-4.

FIGS.16A and16Bshow an example of the object filter being applied to individual voxel columns in accordance with the steps shown inFIG.15.FIG.16Ashows a side view of the voxel grid70fromFIG.7after the filter72has eliminated/removed activated voxels701afrom the voxel grid70by changing the activated voxels701alocated below the plane72ain the z-direction of voxel grid70to empty/inactivated voxels701. In step S15-1, the object filter identifies a particular voxel column within the voxel grid70. For example, in step S15-1, the object filter can identify voxel column C8shown inFIG.16Aas the particular voxel column. In step S15-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S15-1. For example, in step S15-2, the object filter determines that there is at least one activated voxel701aincluded in the voxel column C8because the voxel column C8includes two voxels. In step S15-3, the object filter determines whether or not the lowest activated voxel in the voxel column is spaced away from the filter72that was used to filter the voxel grid70in step S6-3. For example, the object filter determines whether or not the lowest activated voxel in the voxel column is spaced away from the plane72athat was used to filter the voxel grid70in step S6-3. In the present example, as shown inFIG.16A, the lowest activated voxel in the voxel column C8is not spaced away from the filter72(plane72a) used to filter the voxel grid70in step S6-3because the lowest activated voxel in the voxel column C8is adjacent to the filter72(plane72a), so the process ends. However, if the lowest activated voxel in the voxel column C8had been spaced away from the filter72used to filter the voxel grid70in step S6-3, then the process would have proceeded to step S15-4.FIG.16Bshows a side view of the voxel grid70after the object filter has been applied to each of the individual voxel columns of the voxel grid70shown inFIG.16Ain accordance with the steps shown inFIG.15and when the predetermined distance threshold is set to three voxels.

In a preferred embodiment of the present invention, the example of the object filter discussed above with respect toFIGS.15,16A, and16Bcan eliminate/remove activated voxels701athat correspond to objects that the working machine1can easily pass through and for which the planned traveling route L should not be changed/updated. On the other hand, the activated voxels701athat correspond to objects that are obstacles such as significant agricultural items, a person, or another object are maintained within the voxel grid70. Additionally, by ending the process and not eliminating/removing any activated voxels701afrom the voxel column when the lowest activated voxel in the voxel column is not spaced away from the filter72used to filter the voxel grid70in step S6-3, the activated voxels701athat are more likely to correspond to an object that is connected to the ground are maintained within the voxel grid70because they are more likely to correspond to objects that are obstacles such as a significant agricultural items, a person, or another non-passable objects connected to the ground. In this way, activated voxels701athat are more likely to correspond to an object that is connected to the ground, and thus should not be passed through or over by the working machine1, are maintained within the voxel grid70. In this way, the object filter is an example of a filter that filters the three-dimensional point cloud to eliminate/remove one or more data points corresponding to an object through which the working machine1can pass based on a vertical position of the one or more data points.

In a preferred embodiment of the present invention, the steps performed by the object filter during step S6-4can be changed or modified from the steps shown inFIG.11. For example,FIG.17is a flowchart that shows a second modification to the steps shown inFIG.11, which are performed by the object filter during step S6-4. More specifically,FIG.17shows that the object filter is able to perform an additional step, step S17-5. The steps included inFIG.17other than step S17-5are the same as the steps included inFIG.11.

In step S17-5, the object filter determines whether or not there are any instances of consecutive activated voxels within the voxel column if the number of voxels determined in step17-4is equal to or greater than the predetermined distance threshold. If, in step S17-5, the object filter determines that there is at least one instance of consecutive activated voxels within the voxel column, then the process ends. On the other hand, if, in step S17-5, the object filter determines that there is not at least one instance of consecutive activated voxels within the voxel column, then the process proceeds to step S17-6in which the object filter eliminates/removes all of the activated voxels701aincluded in the particular voxel column by changing the activated voxels701ato empty/inactivated voxels701.

FIGS.18A and18Bshow an example of the object filter being applied to the individual voxel columns in accordance with the steps shown inFIG.17.FIG.18Ashows a side view of the voxel grid70fromFIG.7after the filter72has eliminated/removed activated voxels701afrom the voxel grid70by changing the activated voxels701alocated below the plane72ain the z-direction of voxel grid70to empty/inactivated voxels701. In step S17-1, the object filter identifies a particular voxel column within the voxel grid70. For example, in step S17-1, the object filter can identify voxel column C1shown inFIG.18Aas the particular voxel column. In step S17-2, the object filter determines whether or not there are any activated voxels701aincluded in the particular voxel column identified in step S17-1. For example, in step S17-2, the object filter determines that there is at least one activated voxel701aincluded in the voxel column C1because voxel column C1includes two activated voxels701a. In step S17-3, the object filter determines a number of voxels (a distance) between the activated voxel with the largest value in the z-direction and the activated voxel with the smallest value in the z-direction within the particular voxel column. In step S17-4, the object filter determines whether or not the number of voxels determined in step S17-3is less than a predetermined distance threshold. If, in step S17-4, the object filter determines that the number of voxels determined in step S17-3is less than the predetermined distance threshold, then the process proceeds to step S17-6in which the object filter eliminates/removes all of the activated voxels701aincluded in the particular voxel column by changing the activated voxels701ato empty/inactivated voxels701. On the other hand, if the object filter determines that the number of voxels determined in step S17-3is equal to or greater than the predetermined distance threshold, then the process proceeds to step S17-5. In the present example, in step S17-4, the object filter determines that the number of voxels of six determined in step S17-3is equal to or greater than the predetermined distance threshold, so the process proceeds to step S17-5.

In step S17-5, the object filter determines whether or not there are any instances of consecutive voxels within the voxel column C1. In the present example, in step S17-5, the object filter determines that there is not at least one instance of consecutive activated voxels within the voxel column C1because the only two activated voxels within the voxel column C1are spaced apart from each other. Thus, the process proceeds to step S17-6in which the object filter eliminates/removes all of the activated voxels701aincluded in the particular voxel column C1by changing the activated voxels701ato empty/inactivated voxels701.FIG.18Bshows a side view of the voxel grid70after the object filter has been applied to each of the individual voxel columns of the voxel grid70shown inFIG.18Ain accordance with the steps shown inFIG.17and when the predetermined distance threshold is set to three voxels.

In a preferred embodiment of the present invention, the example of the object filter discussed above with respect toFIGS.17,18A, and18Bcan eliminate/remove activated voxels701athat correspond to objects that the working machine1can easily pass through and for which the planned traveling route L should not be changed/updated. On the other hand, the activated voxels701athat correspond to objects that are obstacles such as significant agricultural items, a person, or another object are maintained within the voxel grid70. Additionally, by eliminating/removing all of the activated voxels701aincluded in the particular voxel column when the object filter determines that there is not at least one instance of consecutive activated voxels within the voxel column in step S17-5it is possible to eliminate/remove activated voxels701athat correspond to two or more small objects such as agricultural items such as branches or vegetation that extend in front of the working machine1in a horizontal manner (e.g., intersect the planned traveling route L) and are spaced apart from each other in the vertical direction (z-direction), through which the working machine1can easily pass. In this way, the object filter is an example of a filter that filters the three-dimensional point cloud to eliminate/remove one or more data points corresponding to an object through which the working machine1can pass based on a vertical position of the one or more data points.

In preferred embodiments of the present invention discussed above, step S6-3and step S6-4include using a voxel grid70to process and filter the three-dimensional point cloud that was generated in step S6-2. However, in other preferred embodiments of the present invention discussed in more detail below, step S6-3and step S6-4can include filtering the three-dimensional point cloud that was generated in step S6-2to eliminate/remove additional data points from the three-dimensional point cloud without use of a voxel grid. For example, in the other preferred embodiments of the present invention, in step S6-3, a filter92can be applied (e.g., directly applied) to the three-dimensional point cloud to filter the three-dimensional point cloud by removing data points of the three-dimensional point cloud, and in step S6-4an object filter can be applied (e.g., directly applied) to the three-dimensional point cloud to filter the three-dimensional point cloud by removing data points of the three-dimensional point cloud.

In a preferred embodiment of the present invention, step S6-3includes processing and filtering (e.g., directly filtering) the three-dimensional point cloud that was generated in step S6-2.FIG.19illustrates an example of a three-dimensional point cloud90that was generated in step S6-2, which includes data points that represent the objects and space surrounding a front portion of the working machine1. As discussed above, the three-dimensional point cloud can include data points that represent the objects and space surrounding other portions, or an entirety of, the perimeter of the working machine1. InFIG.19, the three-dimensional point cloud90is shown overlaid a three-dimensional grid for ease of illustration. In a preferred embodiment, the three-dimensional point cloud90includes data points901athat correspond to an object or a portion of an object such as an agricultural item, the ground, a person, another object, or a portion thereof.

In a preferred embodiment of the present invention, a filter92is applied to the three-dimensional point cloud90in step S6-3. The filter92eliminates/removes certain data points901afrom the three-dimensional point cloud90. The filter92applied in step S6-3can eliminate/remove certain data points901afrom the three-dimensional point cloud90by eliminating/removing the data points901alocated below the filter92in the z-direction of the three-dimensional point cloud90(a vertical direction of the three-dimensional point cloud90). The filter92can be represented by a plane that is parallel to, and located a predetermined distance from, the bottom surface of the three-dimensional point cloud90. For example, inFIG.19, the filter92is represented by a plane92athat is parallel to, and located a predetermined distance (e.g., about 0.3 meters or about 0.5 meters) from, the bottom surface of the three-dimensional point cloud90. For example, each cube included in the three-dimensional grid, on which the three-dimensional point cloud90is overlaid inFIG.19for ease of illustration, can be about 0.1 meters.

FIG.20Ais a side view that shows an example of the three-dimensional point cloud90generated in step S6-2. That is,FIG.20Ashows a side view of the three-dimensional point cloud90fromFIG.19before the filter92has eliminated/removed any data points901afrom the three-dimensional point cloud90.FIG.20Bis a side view that shows the three-dimensional point cloud90after the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90. More specifically,FIG.20Bshows an example in which the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90by eliminating/removing the data points901alocated below the plane92ain the z-direction of the three-dimensional point cloud90.

The filter92is not limited to being represented by a plane that is parallel to the bottom surface of the three-dimensional point cloud90. For example, the filter92can be represented by an inclined plane92bthat starts from a point located on or adjacent to the working machine1and that increases at a predetermined slope away from the point located on or adjacent to the working machine1. For example, as shown inFIG.19, the filter92can be represented by an inclined plane92bthat starts from a point that is located at a bottom surface of the work machine1and that increases at a predetermined slope away from the point.

FIG.21Ais a side view that shows an example of the three-dimensional point cloud90when the filter92is represented by an inclined plane92b. That is,FIG.21Ashows a side view of the three-dimensional point cloud90fromFIG.19before the filter92has eliminated/removed any data points901a.FIG.21Bis a side view that shows the three-dimensional point cloud90after the filter92has eliminated/removed data points901a. More specifically,FIG.21Bshows an example in which the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90by eliminating/removing the data points through which the plane92bextends, and the data points901awhich are located below the plane92bin the z-direction of the three-dimensional point cloud90. Alternatively, the filter92may not eliminate/remove the data points901athrough which the plane92bextends, and only eliminate/remove the data points901awhich are located below the plane92bin the z-direction of the three-dimensional point cloud90.

In the examples discussed above, the filter92represented by the plane92aeliminates/removes data points901alocated below the plane92ain the z-direction of the three-dimensional point cloud90, and the filter92represented by the inclined plane92beliminates/removes data points901athrough which plane92bextends and which are located below the plane92bin the z-direction of the three-dimensional point cloud90. In this way, in step S6-3, the filter92represented by the plane92aor the filter92represented by the inclined plane92bcan eliminate/remove data points901athat correspond to portions of the ground surrounding the working machine1and/or small agricultural items located on the ground surrounding the working machine1. Therefore, in step S6-3, the data points of the three-dimensional point cloud that correspond to portions of the ground surrounding the working machine1and/or small agricultural items located on the ground surrounding the working machine1are eliminated/removed from the three-dimensional point cloud.

In another preferred embodiment, the filter92can eliminate/remove data points901alocated above a plane92ain the z-direction of the three-dimensional point cloud90, or eliminate/remove data points through which a plane92bextends and which are located above the plane92bin the z-direction of the three-dimensional point cloud90. In this way, based on the location of the plane92aor the plane92bin the z-direction of the three-dimensional point cloud90, in step S6-3, the filter92represented by the plane92aor the inclined plane92bcan eliminate/remove data points901athat correspond to portions of a canopy or other agricultural items above the working machine1.

In another preferred embodiment, more than one filter92can be used to eliminate/remove data points901afrom the three-dimensional point cloud90. For example, a first filter92can be used to eliminate/remove data points901alocated below a first plane92a1in the z-direction of the three-dimensional point cloud90, and a second filter92can be used to eliminate/remove data points901alocated above a second plane92a2in the z-direction of the three-dimensional point cloud90.FIG.22Ais a side view that shows an example of the three-dimensional point cloud90fromFIG.19generated based on the filtered three-dimensional point cloud that was generated in step S6-2, andFIG.22Bis a side view that shows the three-dimensional point cloud90after the first filter92a1(92) and the second filter92a2(92) have been used to eliminate/remove data points901a.

In a preferred embodiment of the present invention, step S6-4includes applying an object filter to the three-dimensional point cloud90. For example, step S6-4includes applying an object filter to the three-dimensional point cloud90after step S6-3has been completed. The object filter eliminates/removes certain data points901afrom the three-dimensional point cloud90.

In a preferred embodiment of the present invention, the object filter is applied to an individual point cloud column that extends in the z-direction of the three-dimensional point cloud90. For example, the object filter is applied to an individual point cloud column such as point cloud column PC1, point cloud column PC2, and point cloud column PC3, shown inFIG.19. In a preferred embodiment, each of the point cloud columns extends in the z-direction of the three-dimensional point cloud90and can be defined by x-coordinates (e.g., a range of x-coordinates) and y-coordinates (e.g., a range of y-coordinates) of the three-dimensional point cloud90. For example, in the example shown inFIG.19, the point cloud column PC1extends in the z-direction of the three-dimensional point cloud90and can be defined by x-coordinates (e.g., a starting point and an ending point of the point cloud column PC1in the x-direction) and y-coordinates (a starting point and an ending point of the point cloud column PC1in the y-direction) of the three-dimensional point cloud90. For example, the point cloud column PC1inFIG.19can be square-shaped or substantially square-shaped and extend 0.1 meters in the x-direction of the three-dimensional point cloud90and extend 0.1 meters in the y-direction of the three-dimensional point cloud90. However, the point cloud columns can be sized and shaped differently. For example, the point cloud columns can extend about 0.3 or 0.5 meters in the x-direction of the three-dimensional point cloud90and extend 0.3 or 0.5 meters in the y-direction of the three-dimensional point cloud90.

FIG.23is a flowchart that shows steps that can be performed by the object filter during step S6-4. In step S23-1, the object filter identifies a particular point cloud column included in the three-dimensional point cloud90. For example, in step S23-1, the object filter can identify point cloud column PC1as the particular point cloud column.

In step S23-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S23-1. If, in step S23-2, the object filter determines that there are no data points901aincluded in the particular point cloud column identified in step S23-1, then the process ends. If, on the other hand, the object filter determines that there is at least one data point901aincluded in the particular point cloud column identified in step S23-1, then the process proceeds to step23-3. In step S23-3, the object filter determines a distance between the data point with the largest value in the z-direction (largest vertical position) and the data point with the smallest value in the z-direction (smallest vertical position) within the particular point cloud column. In step S23-3, if the object filter determines that there is a single data point901aincluded in the particular point cloud column, then the object filter interprets the distance between the data point with the largest value in the z-direction and the data point with the smallest value in the z-direction within the particular voxel column as being a value less than a predetermined distance threshold (discussed in more detail below).

In step S23-4, the object filter determines whether or not the distance determined in step S23-3is less than a predetermined distance threshold. In a preferred embodiment, the predetermined distance threshold can be a predetermined distance, such as 0.3 meters, for example. If the object filter determines that the distance determined in step S23-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the distance determined in step S23-3is less than the predetermined distance threshold, then the process proceeds to step S23-5. In step S23-5, the object filter eliminates/removes all of the data points901aincluded in the particular point cloud column.

As mentioned above, the object filter is applied to the individual point cloud columns that extend in the z-direction of the three-dimensional point cloud90. Examples of the object filter being applied to individual point cloud columns will be discussed in more detail below.

FIG.24Ashows a side view of the three-dimensional point cloud90fromFIG.19after the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90by eliminating/removing the data points901alocated below the plane92ain the z-direction of the three-dimensional point cloud90. In a first example, in step S23-1, the object filter identifies a particular point cloud column within the three-dimensional point cloud90. For example, in step S23-1, the object filter can identify point cloud column PC1shown inFIG.19andFIG.24Aas the particular point cloud column. In step S23-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S23-1. For example, in step S23-2, the object filter determines that there is at least one data point901aincluded in the point cloud column PC1. In step S23-3, the object filter determines a distance d between the data point901awith the largest value in the z-direction (the highest data point) and the data point901awith the smallest value in the z-direction (the lowest data point) within the point cloud column PC1. For example, in step S23-3, the object filter determines that the distance d between the data point with the largest value in the z-direction and the data point with the smallest value in the z-direction within the point cloud column PC1is 0.6 meters (including the highest data point and the lowest data point). In step S23-4, the object filter determines whether or not the distance determined in step S23-3is less than the predetermined distance threshold. If the object filter determines that the distance determined in step S23-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the distance determined in step S23-3is less than the predetermined distance threshold, then the process proceeds to step S23-5. In the present example, if the predetermined distance threshold is set to 0.3 meters, then the object filter determines that the distance of 0.6 meters determined in step S23-3is equal to or greater than the predetermined distance threshold of 0.3 meters, and the process ends.

In a second example, in step S23-1, the object filter can identify point cloud column PC2shown inFIG.24Aas the particular point cloud column. In step S23-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S23-1. For example, in step S23-2, the object filter determines that there is not at least one data point901aincluded in point cloud column PC2, and the process ends.

In a third example, in step S23-1, the object filter can identify point cloud column PC4shown inFIG.24Aas the particular point cloud column. In step S23-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S23-1. For example, in step S23-2, the object filter determines that there is at least one data point901aincluded in point cloud column PC4. In step S23-3, the object filter determines a distance between the data point with the largest value in the z-direction (the highest data point) and the data point with the smallest value in the z-direction (the lowest data point) within the point cloud column PC4. For example, in step S23-3, the object filter determines that the distance between the data point with the largest value in the z-direction and the data point with the smallest value in the z-direction within the point cloud column PC4is 0.4 meters. In step S23-4, the object filter determines whether or not the distance determined in step S23-3is less than the predetermined distance threshold. If the object filter determines that the distance determined in step S23-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the distance determined in step S23-3is less than the predetermined distance threshold, then the process proceeds to step S23-5. In the present example, if the predetermined distance threshold is set to 0.3 meters, then the object filter determines that the distance of 0.4 meters determined in step S23-3is equal to or greater than the predetermined distance threshold of 0.3 meters, and the process ends.

In a fourth example, in step S23-1, the object filter can identify point cloud column PC6shown inFIG.24Aas the particular point cloud column. In step S23-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S23-1. For example, in step S23-2, the object filter determines that there is at least one data point901aincluded in point cloud column PC6. In step S23-3, the object filter determines a distance between the data point with the largest value in the z-direction (the highest data point) and the data point with the smallest value in the z-direction (the lowest data point) within the point cloud column PC6. For example, in step S23-3, the object filter determines that the distance between the data point with the largest value in the z-direction and the data point with the smallest value in the z-direction within the point cloud column PC6is 0.2 meters. In step S23-4, the object filter determines whether or not the distance determined in step S23-3is less than the predetermined distance threshold. If the object filter determines that the distance determined in step S23-3is equal to or greater than the predetermined distance threshold, then the process ends. If, on the other hand, the object filter determines that the distance determined in step S23-3is less than the predetermined distance threshold, then the object filter eliminates/removes all of the data points901aincluded in the particular point cloud column in step S23-5. In the present example, if the predetermined distance threshold is set to 0.3 meters, then the object filter determines that the distance of 0.2 meters determined in step S23-3is less than the predetermined distance threshold of 0.3 meters. Therefore, in step S23-5, the object filter eliminates/removes all of the data points901aincluded in the point cloud column PC6.

FIG.24Bshows a side view of the three-dimensional point cloud90after the object filter has been applied to each of the individual point cloud columns of the three-dimensional point cloud90shown inFIG.24Ato eliminate/remove certain data points901afrom the three-dimensional point cloud90in step6-4when the predetermined distance threshold is set to 0.3 meters. As discussed above, the object filter is applied to an individual point cloud column that extends in the z-direction of the three-dimensional point cloud90. In a preferred embodiment, the object filter can be applied to more than one of the individual point cloud columns of the three-dimensional point cloud90in parallel/simultaneously. For example, the object filter can be applied to each of the individual point cloud columns of the three-dimensional point cloud90in parallel/simultaneously. Alternatively, the object filter can be applied to the individual point cloud columns of the three-dimensional point cloud90in series or in groups of point cloud columns.

Additional examples of the object filter being applied to point cloud columns in step6-4will be discussed below with respect toFIGS.25and26.

FIG.25Ashows a side view of the three-dimensional point cloud90fromFIG.19after the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90by changing the data points901alocated below the plane92bin the z-direction of the three-dimensional point cloud90in step S6-3.FIG.25Bshows a side view of the three-dimensional point cloud90after step S6-4in which the object filter has been applied to each of the individual point cloud columns of the three-dimensional point cloud90shown inFIG.25Ato eliminate/remove data points901afrom the three-dimensional point cloud90when the predetermined distance threshold is set to 0.3 meters.

FIG.26Ashows a side view of the three-dimensional point cloud90fromFIG.19after the first filter92has eliminated/removed data points901alocated below a first plane92a1in the z-direction of the three-dimensional point cloud90, and a second filter92has eliminated/removed data points901alocated above a second plane92a2in the z-direction of the three-dimensional point cloud90.FIG.26Bshows a side view of the three-dimensional point cloud90after step S6-4in which the object filter has been applied to each of the individual point cloud columns of the three-dimensional point cloud90shown inFIG.26Ato eliminate/remove certain data points901afrom the three-dimensional point cloud90when the predetermined distance threshold is set to 0.3 meters.

In a preferred embodiment of the present invention, the object filter can eliminate/remove data points901afrom the three-dimensional point cloud90that correspond to objects that the working machine1can pass through (e.g., pass through or over) and for which the planned traveling route L should not be changed/updated. For example, the examples of the object filter discussed above can eliminate/remove data points901athat correspond to objects such as small agricultural items (e.g., branches or vegetation) that extend in front of the working machine1in a horizontal manner (e.g., intersect the planned traveling route L) but through which the working machine1can easily pass. On the other hand, the data points901athat correspond to objects that are obstacles such as significant agricultural items, a person, or another non-passable objects are maintained within the three-dimensional point cloud90.

Therefore, in step S6-4, the data points of the three-dimensional point cloud that correspond to objects that the working machine1can pass through and for which the planned traveling route L should not be changed/updated are eliminated/removed from the three-dimensional point cloud when the data points901aare eliminated/removed from the three-dimensional point cloud90, and the data points of the three-dimensional point cloud that correspond to objects that are obstacles such as significant agricultural items, a person, or another non-passable objects are maintained within the three-dimensional point cloud90. In this way, the object filter is an example of a filter that filters the three-dimensional point cloud to eliminate/remove one or more data points corresponding to an object through which the working machine1can pass based on a vertical position of the one or more data points.

In a preferred embodiment of the present invention, the steps performed by the object filter during step S6-4can be changed or modified from the steps shown inFIG.23. For example,FIG.27is a flowchart that shows a first modification to the steps shown inFIG.23, which are performed by the object filter during step S6-4. More specifically,FIG.27shows that the object filter is able to perform an additional step, step S27-3. The steps included inFIG.27other than step S27-3are the same as the steps included inFIG.23.

In step S27-3, the object filter determines whether or not the lowest data point in the point cloud column is spaced away from the filter92used to filter the three-dimensional point cloud90in step S6-3by at least a predetermined spacing distance (e.g., 0.1 meters). For example, the object filter determines whether or not the lowest data point in the point cloud column is spaced away from the plane92aused to filter the three-dimensional point cloud90in step S6-3by at least a predetermined spacing distance. If the lowest data point in the point cloud column is not spaced away from the filter92used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance, then the process ends. If, on the other hand, the lowest data point in the point cloud column is spaced away from the filter92used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance, then the process proceeds to step S27-4.

FIGS.28A and28Bshow an example of the object filter being applied to individual point cloud columns in accordance with the steps shown inFIG.27.FIG.28Ashows a side view of the three-dimensional point cloud90fromFIG.19after the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90by eliminating/removing the data points901alocated below the plane92ain the z-direction of the three-dimensional point cloud90. In step S27-1, the object filter identifies a particular point cloud column within the three-dimensional point cloud90. For example, in step S27-1, the object filter can identify point cloud column PC8shown inFIG.28Aas the particular point cloud column. In step S27-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S27-1. For example, in step S27-2, the object filter determines that there is at least one data point901aincluded in the point cloud column PC8. In step S27-3, the object filter determines whether or not the lowest data point in the point cloud column is spaced away from the filter92that was used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance. For example, the object filter determines whether or not the lowest data point in the point cloud column is spaced away from the plane92athat was used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance. In the present example, as shown inFIG.28A, the lowest data point901ain the point cloud column PC8is not spaced away from the filter92(plane92a) used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance (e.g., 0.1 meters) because the lowest data point in the point cloud column PC8is adjacent to the filter92(plane92a), so the process ends. However, if the lowest data point in the point cloud column PC8had been spaced away from the filter92used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance, then the process would have proceeded to step S27-4.FIG.28Bshows a side view of the three-dimensional point cloud90after the object filter has been applied to each of the point cloud columns of the three-dimensional point cloud90shown inFIG.28Ain accordance with the steps shown inFIG.27and when the predetermined spacing distance is set to 0.1 meter (one cube on the grid shown inFIG.28A).

In a preferred embodiment of the present invention, the example of the object filter discussed above with respect toFIGS.27,28A, and28Bcan eliminate/remove data points901athat correspond to objects that the working machine1can easily pass through and for which the planned traveling route L should not be changed/updated. On the other hand, the data points901athat correspond to objects that are obstacles such as significant agricultural items, a person, or another object are maintained within the three-dimensional point cloud90. Additionally, by ending the process and not eliminating/removing data points901afrom the point cloud column when the lowest data point in the point cloud column is not spaced away from the filter92used to filter the three-dimensional point cloud90in step S6-3by at least the predetermined spacing distance, the data points901athat are more likely to correspond to an object that is connected to the ground are maintained within the three-dimensional point cloud90because they are more likely to correspond to objects that are obstacles such as a significant agricultural items, a person, or another non-passable objects connected to the ground. In this way, data points901athat are more likely to correspond to an object that is connected to the ground, and thus should not be passed through or over by the working machine1, are maintained within the three-dimensional point cloud90. In this way, the object filter is an example of a filter that filters the three-dimensional point cloud to eliminate/remove one or more data points corresponding to an object through which the working machine1can pass based on a vertical position of the one or more data points.

In a preferred embodiment of the present invention, the steps performed by the object filter during step S6-4can be changed or modified from the steps shown inFIG.23. For example,FIG.29is a flowchart that shows a second modification to the steps shown inFIG.23, which are performed by the object filter during step S6-4. More specifically,FIG.29shows that the object filter is able to perform an additional step, step S29-5. The steps included inFIG.29other than step S29-5are the same as the steps included inFIG.23.

If the distance determined in step29-4is equal to or greater than the predetermined distance threshold, then in step S29-5, the object filter determines whether or not the two data points closest to each other within the point cloud column (or two groups of data points closest to each other within the point cloud column) are spaced apart from each other by more than a predetermined distance. As discussed in more detail below, a first group of data points and a second group of data points can be defined/identified based on a density level of data points901awithin a predetermined volume (e.g., 0.1 cubic meters).

If, in step S29-5, the object filter determines that the two data points closest to each other within the point cloud column (or two groups of data points closest to each other within the point cloud column) are not spaced apart from each other by more than a predetermined distance (e.g., 0.1 meters or 0.2 meters) then the process ends. On the other hand, if, in step S29-5, the object filter determines that the two data points closest to each other within the point cloud column (or two groups of data points closest to each other within the point cloud column) are spaced apart from each other by more than a predetermined distance, then the process proceeds to step S29-6in which the object filter eliminates/removes all of the data points901aincluded in the particular point cloud column by eliminating/removing the data points901afrom the three-dimensional point cloud90.

FIGS.30A and30Bshow an example of the object filter being applied to the individual point cloud columns in accordance with the steps shown inFIG.29.FIG.30Ashows a side view of the three-dimensional point cloud90fromFIG.19after the filter92has eliminated/removed data points901afrom the three-dimensional point cloud90by eliminating/removing the data points901alocated below the plane92ain the z-direction of the three-dimensional point cloud90. In step S29-1, the object filter identifies a particular point cloud column within the three-dimensional point cloud90. For example, in step S29-1, the object filter can identify point cloud column PC1shown inFIG.30Aas the particular point cloud column. In step S29-2, the object filter determines whether or not there are any data points901aincluded in the particular point cloud column identified in step S29-1. For example, in step S29-2, the object filter determines that there is at least one data point901aincluded in the point cloud column PC1. In step S29-3, the object filter determines a distance between the data point with the largest value in the z-direction and the data point with the smallest value in the z-direction within the particular point cloud column. In step S29-4, the object filter determines whether or not the distance determined in step S29-3is less than a predetermined distance threshold. If, in step S29-4, the object filter determines that the distance determined in step S29-3is less than the predetermined distance threshold, then the process proceeds to step S29-6in which the object filter eliminates/removes all of the data points901aincluded in the particular point cloud column. On the other hand, if the object filter determines that the distance determined in step S29-3is equal to or greater than the predetermined distance threshold, then the process proceeds to step S29-5. In the present example, in step S29-4, the object filter determines that the distance of 0.6 meters determined in step S29-3is equal to or greater than the predetermined distance threshold, so the process proceeds to step S29-5.

In step S29-5, the object filter determines whether or not the two data points closest to each other within the point cloud column PC1(or two groups of data points closest to each other within the point cloud column PC1) are spaced apart from each other by more than a predetermined distance (e.g., 0.2 meters). In the example shown inFIG.30A, the point cloud column PC1includes a first group of data points901a1and a second group of data points901a2, which can be defined/identified based on a density level of the data points901awithin a predetermined volume (e.g., 0.1 cubic meters). In the present example, if the predetermined distance is 0.2 meters (two cubes inFIG.30A), in step S29-5, the object filter determines that the two groups of data points closest to each other within the point cloud column PC1(the first group of data points901a1and a second group of data points901a2) are spaced apart from each other by more than the predetermined distance. Thus, the process proceeds to step S29-6in which the object filter eliminates/removes all of the data points901aincluded in the particular point cloud column PC1.FIG.30Bshows a side view of the three-dimensional point cloud90after the object filter has been applied to each of the individual point cloud columns of the three-dimensional point cloud90shown inFIG.30Ain accordance with the steps shown inFIG.29.

In a preferred embodiment of the present invention, the example of the object filter discussed above with respect toFIGS.29,30A, and31Bcan eliminate/remove data points901athat correspond to objects that the working machine1can easily pass through and for which the planned traveling route L should not be changed/updated. On the other hand, the data points901athat correspond to objects that are obstacles such as significant agricultural items, a person, or another object are maintained within the three-dimensional point cloud90. Additionally, by eliminating/removing all of the data points901aincluded in the particular point cloud column when the object filter determines that the two data points closest to each other within the point cloud column (or two groups of data points closest to each other within the point cloud column PC1) are spaced apart from each other by more than the predetermined distance in step S29-5, it is possible to eliminate/remove data points901athat correspond to two or more small objects such as agricultural items such as branches or vegetation that extend in front of the working machine1in a horizontal manner (e.g., intersect the planned traveling route L) and are spaced apart from each other in the vertical direction (z-direction), through which the working machine1can easily pass. In this way, the object filter is an example of a filter that filters the three-dimensional point cloud to eliminate/remove one or more data points corresponding to an object through which the working machine1can pass based on a vertical position of the one or more data points.

In a preferred embodiment of the present invention, after the three-dimensional point cloud generated in step S6-2is further filtered in steps S6-3and S6-4, the three-dimensional point cloud is converted/compressed to generate a two-dimensional obstacle map OM in step S6-5. For example, in step S6-5, the three-dimensional point cloud is converted/compressed into a two-dimensional obstacle map OM by removing the z-coordinate from each of the data points remaining in the three-dimensional point cloud. By removing the z-coordinate from each of the data points included in the three-dimensional point cloud, each of the data points that is included in the three-dimensional point cloud is placed onto a two-dimensional plane that extends in the x-direction and the y-direction and represents the two-dimensional obstacle map OM.FIG.31shows an example of a two-dimensional obstacle map OM. The two-dimensional obstacle map includes the location of the one or more obstacles O that the work machine1cannot pass through and for which the planned traveling route L may have to be changed/updated.

In a preferred embodiment of the present invention, step S6-5can include down sampling the three-dimensional point cloud by reducing the number of data points included in the three-dimensional point cloud based on the voxel grid70. For example, the three-dimensional point cloud can be down sampled by representing the three-dimensional point cloud using the activated voxels701aand the empty/inactivated voxels of the voxel grid70instead of all of the data points from the three-dimensional point cloud, because the data point density of the voxel grid70is less than the data point density of the three-dimensional point cloud. In other words, a plurality of data points of the three-dimensional point cloud that include at least one data point that corresponds to an obstacle can be represented by an activated voxel701a, and a plurality of data points of the three-dimensional point cloud that do not include at least one data point that corresponds to an obstacle can be represented by an empty/inactivated voxel701. However, step S6-5is not limited to down sampling the three-dimensional point cloud using the voxel grid70, and the data points included in the three-dimensional point cloud can be maintained.

In a preferred embodiment of the present invention, the agricultural field map M is updated to include positional information regarding the one or more obstacles O based on the two-dimensional obstacle map OM. For example, the two-dimensional obstacle map OM shown inFIG.31is continuously updated (e.g., updated at a predetermined time interval) as the working machine1travels through the agricultural field, and the agricultural field map M shown inFIG.4is updated to include the location of the one or more obstacles O included in the two-dimensional obstacle map OM.

As mentioned above, in a preferred embodiment of the present invention, the controller40is configured or programmed to determine whether or not the planned traveling route L needs to be updated based on the updated agricultural field map M that includes the positional information regarding the one or more obstacles O detected using the one or more LiDARs54. For example, as shown inFIG.4, the controller40is configured or programmed to determine to update the planned traveling route L to include an avoidance section L3in which the machine body3is controlled to avoid an obstacle O detected using the one or more LiDARs54. On the other hand, the controller40is configured or programmed to determine not to update the planned traveling route L if the obstacle O had not been detected.

In a preferred embodiment of the present invention discussed above, the three-dimensional point cloud generated in step S6-1is generated using the one or more LiDARs54. However, generating the three-dimensional point cloud in step S6-1is not limited to using the one or more LiDARs54. For example, a laser scanner other than a LIDAR or a photogrammetry method can be used to generate the three-dimensional point cloud in step S6-1. For example, images captured using a camera included in the one or more other sensors56can be processed using a photogrammetry method to generate the three-dimensional point cloud in step S6-1.

In a preferred embodiment of the present invention, a portion or an entirety of each of the controller541and the controller40and/or the functional units or blocks thereof as described herein with respect to the various preferred embodiments of the present invention can be implemented in one or more circuits or circuitry, such as an integrated circuit(s) or as an LSI (large scale integration). Each functional unit or block of each of the controller541and the controller40may be individually made into an integrated circuit chip. Alternatively, a portion or an entirety of the functional units or blocks may be integrated and made into an integrated circuit chip. Additionally, the method of forming a circuit or circuitry defining each of the controller541and the controller40is not limited to LSI, and an integrated circuit may be implemented by a dedicated circuit or a general-purpose processor or controller that is specifically programed to define a special-purpose processor or controller. Further, if technology of forming an integrated circuit, which replaces LSI, arises as a result of advances in semiconductor technology, an integrated circuit formed by that technology may be used.

Furthermore, a program which is operated in each of the controller541and the controller40and/or other elements of various preferred embodiments of the present invention, is a program (program causing a computer to perform a function or functions) controlling a controller, in order to realize functions of the various preferred embodiments according to the present invention, including each of the various circuits or circuitry described herein and recited in the claims. Therefore, information which is handled by the controller is temporarily accumulated in a RAM at the time of the processing. Thereafter, the information is stored in various types of circuitry in the form of ROMs and HDDs, and is read out by circuitry within, or included in combination with, the controller as necessary, and modification or write-in is performed thereto. As a recording medium storing the program, any one of a semiconductor medium (for example, the ROM, a nonvolatile memory card or the like), an optical recording medium (for example, a DVD, an MO, an MD, a CD, a BD or the like), and a magnetic recording medium (for example, a magnetic tape, a flexible disc or the like) may be used. Moreover, by executing the loaded program, the functions of the various preferred embodiments of the present invention are not only realized, but the functions of preferred embodiments of the present invention may be realized by processing the loaded program in combination with an operating system or other application programs, based on an instruction of the program.

Moreover, in a case of being distributed in a market, the program can be distributed by being stored in the portable recording medium, or the program can be transmitted to a server computer which is connected through a network such as the Internet. In this case, a storage device of the server computer is also included in preferred embodiments of the present invention. In addition, in the preferred embodiments described above, a portion or an entirety of the various functional units or blocks may be realized as an LSI which is typically an integrated circuit. Each functional unit or block of the controller may be individually chipped, or a portion thereof, or the whole thereof may be chipped by being integrated. In a case of making each functional block or unit as an integrated circuit, an integrated circuit controller that controls the integrated circuits, may be added.

Additionally, the method for making an integrated circuit is not limited to the LSI, and may be realized by a single-purpose circuit or a general-purpose processor that is programmable to perform the functions described above to define a special-purpose computer. Moreover, in a case of an appearance of a technology for making an integrated circuit which replaces the LSI due to an advance of a semiconductor technology, it is possible to use an integrated circuit depending on the technology.

Finally, it should be noted that the description and recitation in claims of this patent application referring to “controller”, “circuit”, or “circuitry” is in no way limited to an implementation that is hardware only, and as persons of ordinary skill in the relevant art would know and understand, such descriptions and recitations of “controller”, “circuit”, or “circuitry” include combined hardware and software implementations in which the controller, circuit, or circuitry is operative to perform functions and operations based on machine readable programs, software or other instructions in any form that are usable to operate the controller, circuit, or circuitry.