Unloading control method and device, mower and computer readable storage medium
By acquiring and utilizing the position and offset of the mobile robot's last unloading point, the current unloading point is determined and the unloading operation is performed, thus solving the problem of low utilization of the unloading area in traditional methods and achieving more efficient utilization of the unloading area.
Patent Information
- Application Number
- CN202411540782.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-30
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2044-10-30
AI Technical Summary
In traditional unloading control methods, the volume of grass scraps loaded by the mobile robot varies before each unloading, resulting in low utilization of the unloading point and problems such as idleness or excessive accumulation.
By obtaining the location and offset of the last unloading point of the mobile robot, the location of the current unloading point is determined, and the robot is controlled to move to that location to perform the unloading operation until the task is completed.
This improves the utilization rate of the unloading area, ensuring that each unloading point can fully accommodate the objects to be unloaded, thus solving the problem of low utilization rate of the unloading area.
Smart Images

Figure CN119414843B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of automatic control technology, and in particular to an unloading control method, device, lawnmower, and computer-readable storage medium. Background Technology
[0002] With the development of automation control technology, automatic lawn mowing equipment, such as automatic lawnmowers and automatic lawn mowing robots, has been widely used in people's lives. Automatic lawn mowing equipment is mainly used for trimming, harvesting, and clearing lawns.
[0003] During the automatic lawn mowing process, cut grass clippings remain on the lawn. These clippings need to be collected by a mobile robot's grass-collecting device. After mowing is complete, the mobile robot unloads the clippings. When the automatic lawn mowing equipment is covering a large area, the mobile robot needs to perform multiple unloading operations. Traditional unloading control methods involve setting multiple unloading points and controlling the mobile robot to unload the clippings sequentially at each point.
[0004] However, since the volume of grass scraps loaded by the mobile robot varies each time it unloads, setting all unloading points in advance may result in multiple unloading points being idle or multiple unloading points accumulating to a certain height, leading to low utilization of the unloading area. Summary of the Invention
[0005] To address the aforementioned problems in the prior art, embodiments of this application provide an unloading control method, apparatus, lawnmower, and computer-readable storage medium. Based on the position and offset of the first unloading point where the mobile robot previously completed an unloading operation, the position of the second unloading point where the mobile robot is currently performing an unloading operation is determined. This allows the mobile robot to be controlled to proceed to the second unloading point to perform the unloading operation until the unloading task is completed. Since the unloading point for each unloading operation is determined based on the position and offset of the previous unloading point, the utilization rate of the unloading area is improved.
[0006] In a first aspect, embodiments of this application provide an uninstallation control method, including:
[0007] Get the location of the first unloading point where the mobile robot last completed an unloading operation;
[0008] The location of the second unloading point where the mobile robot is currently performing the unloading operation is determined based on the location and offset of the first unloading point.
[0009] Based on the location of the second unloading point, the mobile robot is controlled to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
[0010] Secondly, embodiments of this application provide an unloading control device, the device comprising:
[0011] The acquisition module is used to obtain the location of the first unloading point where the mobile robot last completed an unloading operation;
[0012] The processing module is used to determine the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset.
[0013] The control module is used to control the mobile robot to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed, based on the location of the second unloading point.
[0014] Thirdly, embodiments of this application provide a lawnmower, which includes: a mowing device, a grass collecting device, a traveling device, and a control device; the mowing device is used to perform mowing operations, the grass collecting device is used to collect the cut grass debris, the traveling device is used to drive the lawnmower forward, and the control device is used to execute computer program instructions to cause the control device to perform the following steps:
[0015] Obtain the position of the first unloading point where the lawnmower previously completed its unloading operation;
[0016] The location of the second unloading point where the lawnmower is currently performing the unloading operation is determined based on the location of the first unloading point and the unloading offset.
[0017] Based on the location of the second unloading point, the lawnmower is controlled to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
[0018] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program that is executed by a processor to implement the method described in the first aspect.
[0019] Fifthly, embodiments of this application provide a computer program product comprising a computer program that is executed by a processor to implement the method described in the first aspect.
[0020] Implementing the embodiments of this application has the following beneficial effects:
[0021] In this embodiment, the mobile robot's controller first obtains the position of the first unloading point where the mobile robot previously completed an unloading operation. Then, based on the position of the first unloading point and its offset, it determines the position of the second unloading point where the mobile robot is currently performing the unloading operation. Finally, based on the position of the second unloading point, it controls the mobile robot to move to that location to perform the unloading operation until the unloading task is completed. Therefore, each time the mobile robot performs an unloading operation, it can determine the position of the current unloading point based on the position and offset of the unloading point where the previous unloading operation was completed. By determining a reasonable offset, the mobile robot can fully place the objects to be unloaded into the unloading area of each unloading point, solving the problem of low utilization of the unloading area caused by pre-setting all unloading points and improving the utilization rate of the unloading area. Attached Figure Description
[0022] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0023] Figure 1 This is a schematic diagram illustrating an application scenario of an unloading control method provided in an embodiment of this application;
[0024] Figure 2 A flowchart illustrating an unloading control method provided in an embodiment of this application;
[0025] Figure 3 A schematic diagram illustrating a scenario for an offset determination method provided in an embodiment of this application;
[0026] Figure 4 A schematic diagram illustrating a scenario for an unloading point determination method provided in an embodiment of this application;
[0027] Figure 5 A schematic diagram of a scenario for a second direction determination method provided in an embodiment of this application;
[0028] Figure 6 This is a schematic diagram of an unloading control device provided in an embodiment of this application;
[0029] Figure 7 This is a schematic diagram of the structure of a lawnmower provided in an embodiment of this application. Detailed Implementation
[0030] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0031] The terms "first," "second," "third," and "fourth," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.
[0032] In this document, the term "embodiment" means that a particular feature, result, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.
[0033] First, refer to Figure 1 , Figure 1 This is a schematic diagram illustrating an application scenario of an unloading control method provided in an embodiment of this application. For example... Figure 1 The application scenario shown includes an unloading control system, which comprises a mobile robot, a controller for the mobile robot, and a lawnmower.
[0034] In this embodiment, the controller is an electronic device that receives, processes, sends, and executes instructions. It can interact with the mobile robot to control the robot to move to the appropriate location for unloading and receive the robot's reported work status to monitor the unloading process in real time. The controller can be a processor integrated within the mobile robot for instruction reading, sending, receiving, and execution, including: a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), etc. This application does not specifically limit its capabilities in this regard. The controller can also be a server for receiving, sending, storing, and executing program execution instructions, including: a rack server, an application server, a cloud server, a Virtual Private Server (VPS), etc. This application also does not specifically limit its capabilities in this regard. When the controller is a server, it can interact with the mobile robot's processing chip to control the robot's unloading process through the processing chip.
[0035] In this embodiment, the mobile robot is an automated robot that works in conjunction with a lawnmower. The lawnmower is an intelligent gardening tool that can automatically perform tasks such as mowing lawns and cutting weeds within its work area. Optionally, the lawnmower can also be an automatic lawnmower cart or an automatic lawnmower robot; this application does not specifically limit this. The lawnmower is equipped with a mowing device, a traveling device, and a control device. The mowing device includes mowing blades for mowing. The traveling device includes wheels for driving the lawnmower. The control device can execute computer program instructions to control the lawnmower to complete mowing operations within the work area. The mobile robot can work in conjunction with the lawnmower to collect the cut grass debris. The mobile robot is equipped with a grass collection device to collect the grass debris cut by the lawnmower. When the grass debris in the collection device reaches a preset volume, or when the mobile robot's controller receives an unloading command, the controller can control the mobile robot to proceed to the unloading area to unload the grass debris from the collection device. Optionally, the mobile robot and the lawnmower can be integrated into a single device, namely an automatic lawnmower and unloader robot, thereby combining the functions of mowing, collecting, and unloading grass into one unit. This application does not limit this aspect.
[0036] Optionally, users can remotely control the mobile robot and lawnmower using remote control devices, including smartphones, computers, etc. Users can set the lawnmower's operating area, the mobile robot's unloading area, etc., on the remote control device. The remote control device communicates with the mobile robot's controller via radio communication technologies, such as 5G, Wi-Fi, Bluetooth, Ethernet, etc., to enable the controller to determine the mobile robot's unloading area. The remote control device can also receive real-time updates on the mobile robot's operating status from the controller to monitor its performance, such as the volume of the object to be unloaded, the volume of the unloaded object, etc.
[0037] It should be noted that existing unloading control methods typically pre-define all unloading points in the unloading area and the unloading order of each point, thereby controlling the mobile robot to sequentially proceed to each unloading point to perform the unloading operation. However, the volume of the objects to be unloaded in the grass collection device varies each time the mobile robot performs an unloading operation, resulting in situations where the area corresponding to an unloading point is not fully utilized and objects are piled up too high at the unloading point, leading to low utilization of the unloading area.
[0038] Therefore, in the above scenario, in the unloading control method provided in the embodiments of this application, the controller of the mobile robot obtains the position of the first unloading point where the mobile robot last completed the unloading operation;
[0039] The mobile robot's controller determines the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset.
[0040] The mobile robot's controller moves the mobile robot to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
[0041] As can be seen, in the above scenario, the mobile robot's controller can determine the current unloading point based on the location and offset of the unloading point from the previous operation each time it performs an unloading operation. It then controls the mobile robot to move to the current unloading point to perform the unloading operation until the task is completed. By determining an appropriate offset, the area corresponding to each unloading point can be fully utilized to accumulate the objects to be unloaded, thereby improving the utilization rate of the unloading area.
[0042] See Figure 2 , Figure 2This is a flowchart illustrating an unloading control method provided in an embodiment of this application. The method is applied to the controller of a mobile robot in the above-described application scenario. The method includes, but is not limited to, the following steps:
[0043] 201: Get the location of the first unloading point where the mobile robot last completed the unloading operation.
[0044] In this embodiment, the real-time position of the mobile robot can be sent to the mobile robot's controller to monitor the robot's trajectory. Before performing the unloading operation, the mobile robot's controller can obtain the position of the first unloading point where the robot last completed the unloading operation. Optionally, the position of the first unloading point can be a two-dimensional planar coordinate system. For example, when the projected area of the work area on the horizontal plane is a rectangular area, a two-dimensional planar coordinate system is established with one side of the rectangular area as the horizontal axis and the adjacent side as the vertical axis, thereby determining the coordinates of the first unloading point in this two-dimensional planar coordinate system as the position of the first unloading point. The position of the first unloading point can also be a three-dimensional spatial coordinate system. For example, when the projected area of the work area on the horizontal plane is a rectangular area, a three-dimensional spatial coordinate system is established with one side of the rectangular area as the horizontal axis, the adjacent side as the vertical axis, and the direction perpendicular to the horizontal plane as the vertical axis direction, thereby determining the coordinates of the first unloading point in this three-dimensional spatial coordinate system as the position of the first unloading point. This application does not specifically limit this.
[0045] It should be noted that the unloading point at any completed unloading operation is within the preset unloading area, which can be pre-set according to the lawnmower's working path. Optionally, the preset unloading area can be located within or outside the working area. Optionally, the preset unloading area can be automatically divided based on the user-preset initial unloading point position and the shape of the preset unloading area. For example, if the preset unloading area is square, then the preset unloading area will be automatically divided based on one vertex of the square preset unloading area with the preset initial unloading point, according to the length and width set by the user.
[0046] When the mobile robot last performed an unloading operation at the first unloading point, it unloaded the objects to be unloaded by piling them up in the corresponding piling area at the first unloading point. These objects could be, for example, grass clippings cut by a lawnmower.
[0047] For example, the method may further include:
[0048] If the currently executed uninstallation operation is the first uninstallation operation in the uninstallation task, then obtain the location of the preset initial uninstallation point;
[0049] Based on the location of the preset initial unloading point, control the mobile robot to move to the preset initial unloading point to perform the unloading operation.
[0050] In this embodiment of the application, the location of the preset initial unloading point when the mobile robot performs the unloading operation for the first time can be preset according to user needs.
[0051] Specifically, if the mobile robot's controller cannot obtain the location of the first unloading point from the previous unloading operation, it determines that the currently executed unloading operation is the first unloading operation in the unloading task, and the mobile robot's controller obtains the location of the preset initial unloading point. Then, based on the location of the preset initial unloading point, it controls the mobile robot to move to the preset initial unloading point to execute the first unloading operation. Thus, when the mobile robot executes the second unloading operation in the unloading task, the mobile robot's controller can obtain the location of the preset initial unloading point from the first completed unloading operation.
[0052] 202: Determine the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset.
[0053] In this embodiment, the offset represents the distance from the location of the first unloading point to the location of the second unloading point. The mobile robot can determine the location of the second unloading point based on the location of the first unloading point and the offset. Optionally, the offset can be preset by the user, that is, the distance between the unloading points corresponding to any two sequentially adjacent unloading operations is the preset offset.
[0054] For example, the offset can also be determined based on the volume of the object to be unloaded during the previous unloading process of the mobile robot. Before determining the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset, the process may further include:
[0055] Based on the current volume of the object to be unloaded and the preset unloading thickness, determine the unloading area of the object to be unloaded.
[0056] The offset is determined based on the unloading area.
[0057] In this embodiment of the application, the preset unloading thickness is the height of the object to be unloaded stacked at each unloading point relative to the ground.
[0058] Specifically, the mobile robot's controller can acquire the volume of the collected objects to be unloaded. Then, based on the volume of the objects and a preset unloading thickness, the unloading area corresponding to the objects to be unloaded is determined. The unloading area represents the base area of the stacking region corresponding to the second unloading point. Optionally, when the mobile robot stacks the objects to be unloaded into cylindrical objects, such as cylinders, cuboids, or cubes, the mobile robot's controller can use the ratio of the volume of the objects to be unloaded to the preset unloading thickness as the unloading area corresponding to the objects to be unloaded.
[0059] Furthermore, the mobile robot's controller can determine the stacking area corresponding to the second unloading point based on the unloading area. For example, when the mobile robot stacks the object to be unloaded into a cylinder, the controller can determine the first radius of the cylinder's base circle based on the unloading area. If the radius of the base circle of the stacking area corresponding to the first unloading point is a second radius, the controller can use the sum of the first and second radii as the offset between the second and first unloading points. It should be noted that this application only uses the example of the mobile robot stacking the object to be unloaded into a cylinder for illustration. The processing method for the mobile robot stacking the object to be unloaded into other shapes is similar to the embodiments of this application, and will not be repeated here.
[0060] It can be seen that the mobile robot's controller can determine the unloading area of the object to be unloaded based on its volume and a preset unloading thickness. Then, based on the unloading area, it determines the offset between the second unloading point and the first unloading point. Therefore, the second unloading point, where the unloading operation is currently being performed, is determined based on the volume of the object to be unloaded, allowing the object to fully utilize the stacking area corresponding to the second unloading point, thereby improving the utilization rate of the unloading area.
[0061] In one feasible embodiment, determining the offset based on the unloading area may include, for example, the following steps:
[0062] Get the mass of the object to be unloaded;
[0063] Based on the mass and volume of the object to be unloaded, determine the target stacking volume required for the object to be unloaded;
[0064] Based on the target stacking volume, adjust the unloading area to obtain the target unloading area of the object to be unloaded;
[0065] Based on the target unloading area, determine the stacking area of the second unloading point;
[0066] The offset is determined based on the stacking area of the second unloading point and the position of the first unloading point.
[0067] It should be noted that the objects to be unloaded loaded in the grass-collecting device of the mobile robot may be relatively loose. When unloading the objects at the second unloading point, the mobile robot will compress and pile them up, resulting in a large amount of unused space in the stacking area corresponding to the second unloading point, leading to low utilization of the unloading area. Therefore, in order to make full use of the stacking area corresponding to the second unloading point, in this embodiment, the controller of the mobile robot can obtain the mass of the objects to be unloaded in the grass-collecting device. For example, the grass-collecting device of the mobile robot can be equipped with pressure sensors, gravity sensors, etc., to monitor the mass of the objects to be unloaded. The controller of the mobile robot can obtain the mass of the objects to be unloaded from the aforementioned sensors.
[0068] Then, the mobile robot's controller determines the density of the objects to be unloaded in the grass-collecting device based on their mass and volume. If the density of the objects to be unloaded does not match the target density, the required target stacking volume of the objects to be unloaded is determined based on the target density and the mass of the objects. The target density can be preset based on user requirements. Furthermore, the mobile robot's controller can adjust the unloading area according to the target stacking volume to obtain the target unloading area of the objects to be unloaded. For example, when the mobile robot stacks the objects to be unloaded into a column, the ratio of the target stacking volume to the preset unloading thickness can be used as the target unloading area.
[0069] Furthermore, the mobile robot's controller can determine the stacking area of the second unloading point based on the target unloading area. For example, when the mobile robot stacks the objects to be unloaded into a cylinder, the stacking area of the second unloading point can be determined based on the target unloading area and the preset unloading thickness. Finally, the offset can be determined based on the stacking area of the second unloading point and the position of the first unloading point. For example, when the mobile robot stacks the objects to be unloaded into a cylinder, the mobile robot's controller can use the sum of the base radius of the stacking area corresponding to the first unloading point and the base radius of the stacking area corresponding to the second unloading point as the offset.
[0070] As can be seen, the mobile robot's controller can determine the target stacking volume of the object to be unloaded based on its mass and volume. Then, based on this target stacking volume, the unloading area is adjusted to obtain the target unloading area. Next, based on the target unloading area, the stacking area corresponding to the second unloading point is determined. Finally, based on the stacking area corresponding to the second unloading point and the position of the first unloading point, the offset is determined. Therefore, based on the mass of the object to be unloaded, the target stacking volume when the object's density is the target density can be determined. This allows the mobile robot to fully utilize the stacking area corresponding to the second unloading point to unload the object, improving the utilization rate of the stacking area at the second unloading point, and thus improving the overall utilization rate of the unloading area.
[0071] In another feasible embodiment, the offset is determined based on the unloading area, which may include, for example:
[0072] Obtain the first stacking area corresponding to the first unloading point;
[0073] Based on the unloading area, determine the second stacking area adjacent to the first stacking area;
[0074] Obtain the flatness of the second stacking area;
[0075] Adjust the second stacking area according to the flatness to obtain the target stacking area;
[0076] Determine the location of the offset point within the target stacking area;
[0077] The offset is determined based on the location of the first unloading point and the location of the offset point.
[0078] It should be noted that, due to the different terrain at each location within the unloading area, the flatness of the stacking area corresponding to different unloading points may vary. When the flatness of the stacking area at an unloading point is low, the object to be unloaded may not be completely unloaded within that stacking area. Therefore, in this embodiment, the mobile robot's controller needs to adjust the size of each stacking area according to its flatness.
[0079] Specifically, the mobile robot's controller first acquires the first stacking area corresponding to the first unloading point. Based on the unloading area, it determines a second stacking area adjacent to the first stacking area. For example, ... Figure 3 As shown, when the mobile robot stacks the objects to be unloaded into a cylinder, the first stacking area corresponding to the first unloading point is the cylindrical area. This can be understood as... Figure 3 Only a side view of the cylindrical region is shown. The mobile robot's controller can determine a second stacking region adjacent to the first stacking region corresponding to the first unloading point based on the unloading area of the object to be unloaded. For example, the diameter of the base circle of the second stacking region can be determined based on the unloading area, such as... Figure 3 As shown, the diameter of the bottom circle of the second stacking area is D1. Based on the diameter D1 of the bottom circle of the second stacking area, the second stacking area adjacent to the first stacking area can be determined.
[0080] Then, the mobile robot's controller acquires the flatness of the second stacking area, which characterizes the degree of flatness of the lawn within the second stacking area relative to the horizontal plane. For example, the mobile robot is also equipped with a lidar system. The controller can emit laser pulses towards the second stacking area via the lidar and determine the point cloud data of the second stacking area based on the reflected light pulses. The point cloud data includes the spatial coordinates of each point within the second stacking area. A terrain model of the second stacking area is constructed based on the point cloud data. The height variation data of the raised and recessed areas within the second stacking area are determined based on the terrain model. The volume of the raised and recessed areas can be determined based on the height variation data of the raised and recessed areas. The mobile robot's controller then determines the difference between the volumes of the raised and recessed areas, obtaining the deviation volume. The ratio of the deviation volume to the volume of the second stacking area is used as the flatness of the second stacking area. Based on the flatness of the second stacking area, the mobile robot's controller can adjust the second stacking area to determine the target stacking area. Specifically, the mobile robot's controller can determine the initial stacking volume corresponding to the second stacking area based on the flatness of the second stacking area, that is, the difference between the volume of the second stacking area and the offset volume.
[0081] If the initial stacking volume is not equal to the target stacking volume, it means that the second stacking area cannot hold all the objects to be unloaded. The mobile robot's controller will determine the diameter of the bottom circle of the target stacking area based on the flatness of the second stacking area and the target stacking volume. Figure 3 As shown, the diameter of the bottom circle of the target stacking area is D2. Based on the diameter D2, the target stacking area can be determined.
[0082] If the initial stacking volume is equal to the target stacking volume, it means that the second stacking area can hold all the objects to be unloaded, and the mobile robot's controller determines the second stacking area as the target stacking area.
[0083] Finally, the mobile robot's controller determines the location of the offset point within the target stacking area, using the distance between the location of the first unloading point and the offset point as the aforementioned offset. The offset point could, for example, be the intersection of the central axis of the target stacking area and the lawn.
[0084] As can be seen in this embodiment, the mobile robot's controller first obtains the first stacking area corresponding to the first unloading point. Based on the unloading area, a second stacking area adjacent to the first stacking area can be determined. Then, the second stacking area is adjusted according to its flatness to obtain the target stacking area, and the position of the offset point is determined within the target stacking area. Based on the position of the first unloading point and the position of the offset point, the offset amount can be determined. Thus, based on the flatness of the second stacking area, the stacking area corresponding to the second unloading point can be adjusted so that the object to be unloaded can be completely unloaded within the target stacking area corresponding to the second unloading point without having to go to the next unloading point, thereby improving unloading efficiency.
[0085] Furthermore, after determining the offset, the mobile robot's controller can determine the position of the second unloading point based on the position of the first unloading point and the offset. It should be noted that each unloading point is located within a preset unloading area. If the determined second unloading point is located outside the preset unloading area, a new second unloading point needs to be determined based on the position and offset of the first unloading point, until the second unloading point is within the preset unloading area.
[0086] For example, determining the location of the second unloading point where the mobile robot is currently performing the unloading operation based on the location of the first unloading point and its offset may include, for example:
[0087] Obtain the preset unloading area and the working route of the mobile robot within the work area;
[0088] Determine the first direction corresponding to the work route;
[0089] Based on the location, direction, and offset of the first unloading point, the location of the first candidate unloading point is determined;
[0090] If the location of the first candidate unloading point is within the preset unloading area, then the location of the first candidate unloading point will be used as the location of the second unloading point.
[0091] If the location of the first candidate unloading point is outside the preset unloading area, then a second direction different from the first direction is determined. Based on the location of the first unloading point, the second direction, and the offset, the location of the second candidate unloading point is determined until the location of the second candidate unloading point is within the preset unloading area. The location of the second candidate unloading point within the preset unloading area is then determined as the location of the second unloading point.
[0092] In this embodiment, the mobile robot's controller can acquire the mobile robot's working route within the work area. This working route can be preset by the user. Figure 4As shown, the controller of the mobile robot can determine the first direction corresponding to the working route, and the movement route of the mobile robot along the first direction is the working route of the mobile robot in the working area.
[0093] Then, the mobile robot's controller determines the location of the first candidate unloading point based on the position of the first unloading point, the first direction, and the offset. For example... Figure 4 As shown, the first direction at this time is Figure 4 Moving horizontally to the right from the first unloading point along the first direction by the aforementioned offset distance, the position of the first candidate unloading point can be obtained. For example, if the coordinates of the first unloading point are (x1, y1), and the offset is D, and if the first direction is the positive half-axis of the x-axis, then the coordinates of the first candidate unloading point are (x1+D, y1).
[0094] In one optional embodiment, the location of the first candidate unloading point is determined based on the location of the first unloading point, the first direction, and the offset. This may include, for example, the following:
[0095] Move the offset from the position of the first unloading point in the first direction to obtain the position of the initial candidate unloading point;
[0096] If the location of the initial candidate unloading point is within the passable area, then the location of the initial candidate unloading point is determined as the location of the first candidate unloading point;
[0097] If the initial candidate unloading point is located in an impassable area, a third direction different from the first direction is determined. The offset is moved from the location of the first unloading point to the third direction to obtain the location of the target candidate unloading point. This process continues until the location of the target candidate unloading point is located in an impassable area. The location of the target candidate unloading point located in the impassable area is then determined as the location of the first candidate unloading point.
[0098] It should be noted that there may be impassable areas within the preset unloading area, such as obstacles, buildings, pools, etc. When the mobile robot's controller determines that the location of the first candidate unloading point is within an impassable area, the mobile robot cannot reach that area to perform the unloading operation. Therefore, it is necessary to determine the location of the target candidate unloading point until the target candidate unloading point is located within a passable area.
[0099] Specifically, the mobile robot's controller moves an offset from the position of the first unloading point in a first direction to obtain the position of the initial candidate unloading point. For example, if the coordinates of the position of the first unloading point are (x2, y2), the offset is R, and the first direction is the positive half-axis of the x-axis, then the coordinates of the position of the initial candidate unloading point are (x2+R, y2).
[0100] If the location of the initial candidate unloading point is within the passable area, it means that the mobile robot can go to the location of the initial candidate unloading point to perform the unloading operation. The controller of the mobile robot determines the location of the initial candidate unloading point as the location of the first candidate unloading point.
[0101] If the initial candidate unloading point is located within an impassable area, the mobile robot cannot proceed to that point to perform the unloading operation. The robot's controller needs to determine a third direction different from the first direction. For example, the first direction can be rotated counter-clockwise by a preset angle to obtain the third direction. Then, the robot moves an offset from the first unloading point towards this third direction to obtain the target candidate unloading point's location. The process of moving an offset from the first unloading point towards the third direction to obtain the target candidate unloading point's location is similar to the process of moving an offset from the first unloading point towards the first direction to obtain the first candidate unloading point's location, and will not be elaborated upon here.
[0102] Furthermore, the mobile robot's controller continues to determine whether the location of the target candidate unloading point is within the passable area. If so, the location of the target candidate unloading point is taken as the location of the first candidate unloading point. Otherwise, the third direction is rotated counterclockwise by a preset angle to obtain a new third direction, and the location of the new target candidate unloading point is determined, until the location of the target candidate unloading point is within the passable area. The location of the target candidate unloading point within the passable area is then determined as the location of the first candidate unloading point.
[0103] Therefore, the mobile robot's controller can determine that all unloading points within the preset unloading area are located in the passable area, enabling the mobile robot to go to each unloading point to perform the unloading operation. This solves the problem that the mobile robot cannot go to unloading points in the inaccessible area to perform the unloading operation, thus affecting subsequent unloading tasks and improving unloading efficiency.
[0104] It should be noted that each unloading point determined by the mobile robot's controller must be within a preset unloading area. The mobile robot's controller needs to determine whether the location of the first candidate unloading point is within the preset unloading area. If the location of the first candidate unloading point is within the preset unloading area, then the location of the first candidate unloading point is used as the location of the second unloading point.
[0105] If the location of the first candidate unloading point is outside the preset unloading area, the mobile robot's controller determines a second direction different from the first direction. For example... Figure 4 As shown, the location of the first candidate unloading point is located outside the preset unloading area. The controller of the mobile robot can determine a second direction different from the first direction, and determine the location of the second unloading point located within the preset unloading area based on the second direction.
[0106] For example, determining a second direction different from the first direction may include, for instance:
[0107] Determine the shortest distance from the location of the first unloading point to the boundary of the preset unloading area;
[0108] Rotate the first direction by a preset angle to obtain the first candidate direction;
[0109] Based on the shortest distance, determine the position of the first candidate point in the first candidate direction of the first unloading point;
[0110] Based on the unloading area, the first candidate stacking area corresponding to the first candidate point is determined with the location of the first candidate point as the area center.
[0111] If the first candidate stacking area is located within the preset unloading area, then the first candidate direction is determined to be the second direction;
[0112] If the first candidate stacking area intersects with the boundary of the preset unloading area, the first candidate direction is rotated by a preset angle to obtain the second candidate direction. The second candidate stacking area is determined according to the second candidate direction until the second candidate stacking area is located within the preset unloading area. The second candidate direction corresponding to the second candidate stacking area located within the preset unloading area is determined as the second direction.
[0113] It should be noted that while each unloading point is located within the preset unloading area, in order to ensure that the mobile robot can perform unloading operations at each unloading point, the stacking area corresponding to each unloading point also needs to be located within the preset unloading area.
[0114] Specifically, the mobile robot's controller first determines the shortest distance from the location of the first unloading point to the boundary of the preset unloading area. For example... Figure 5 As shown, the boundary of the preset unloading area that is closest to the position of the first unloading point is the right boundary, and the shortest distance from the position of the first unloading point to the right boundary of the preset unloading area is d.
[0115] Then, the mobile robot's controller rotates the first direction by a preset angle to obtain the first candidate direction. For example... Figure 5 As shown, with a preset angle of 'a', the mobile robot's controller rotates the first direction counterclockwise by the preset angle 'a' to obtain the first candidate direction. Moving the robot from the first unloading point towards the first candidate direction along the shortest distance 'd', the position of the first candidate point is obtained; that is, the distance between the first unloading point and the first candidate point is 'd'. Based on the unloading area, with the position of the first candidate point as the region center, the first candidate stacking area corresponding to the first candidate point is determined. For example... Figure 5 As shown, the first candidate stacking area is circular in shape. The controller of the mobile robot will determine the first candidate stacking area based on the unloading area, with the position of the first candidate point as the center.
[0116] If the first candidate stacking area is located within the preset unloading area, then the first candidate direction is determined as the second direction. For example... Figure 5 As shown, if the first candidate stacking area corresponding to the first candidate point is located within the preset unloading area, then the first candidate direction is determined as the second direction.
[0117] If the first candidate stacking area intersects with the boundary of the preset unloading area, the first candidate direction is rotated counterclockwise by a preset angle to obtain the second candidate direction. The second candidate stacking area corresponding to the second candidate point is determined based on the second candidate direction, until the second candidate stacking area is located within the preset unloading area, at which point the second candidate direction is determined as the second direction. The process of determining the second candidate stacking area corresponding to the second candidate point based on the second candidate direction is similar to the process of determining the first candidate stacking area of the first candidate point in the above embodiments, and will not be repeated here.
[0118] It should be noted that since the distance between the first candidate point and the first unloading point is the shortest distance from the first unloading point to the boundary of the preset unloading area, after rotating by a preset angle, the first candidate point will definitely be within the preset unloading area. Therefore, the first candidate stacking area can only be located within the preset unloading area or intersect with the boundary of the preset unloading area, and will not be located outside the preset unloading area.
[0119] Therefore, in this embodiment of the application, the mobile robot can determine a second direction different from the first direction, and thus determine a second unloading point located within the preset unloading area based on the second direction. This ensures that each unloading point is located within the preset unloading area, while also making full use of the preset unloading area and improving the utilization rate of the unloading area.
[0120] In one possible embodiment, the preset angle can be, for example, 90 degrees. For instance, when the preset unloading area is a rectangular area, a coordinate system is established with the lower left vertex of the preset unloading area as the origin, a side corresponding to the length of the preset unloading area as the horizontal axis, and a side corresponding to the width adjacent to that side as the vertical axis. When the coordinates corresponding to the position of the first unloading point are (x0, y0) and the offset is k, the coordinates corresponding to the position of the first candidate unloading point are (x0+k, y0). If (x0+k) is less than or equal to the length of the preset unloading area, then the position of the first candidate unloading point is taken as the position of the second unloading point.
[0121] If (x0+k) is greater than the length of the preset unloading area, then the coordinates corresponding to the position of the second candidate unloading point are determined to be (x0, y0+k). If (y0+k) is less than or equal to the width of the preset unloading area, then the position of the second candidate unloading point is determined to be the position of the second unloading point.
[0122] If (y0+k) is greater than the width of the preset unloading area, it means that the number of unloading points in the preset unloading area has reached the maximum number, and a new unloading point cannot be determined.
[0123] Therefore, the unloading points within the preset unloading area can be concentrated in each row of the preset unloading area, thus making full use of the preset unloading area and improving its utilization rate. Furthermore, only a 90-degree rotation in the first direction is needed each time, eliminating the need for multiple rotations, reducing the computational load of the algorithm and improving the efficiency of unloading point determination.
[0124] Furthermore, the mobile robot's controller moves an offset from the first unloading point in the second direction to obtain the position of the second candidate unloading point. If the position of the second candidate unloading point is within a preset unloading area, then the position of the second candidate unloading point is determined as the position of the second unloading point. If the position of the second candidate unloading point is outside the preset unloading area, then the second direction is rotated by a preset angle to obtain a new position of the second candidate unloading point, until the new position of the second candidate unloading point is within the preset unloading area. The position of the second candidate unloading point within the preset unloading area is then determined as the position of the second unloading point.
[0125] As can be seen, the mobile robot's controller can determine the first direction corresponding to the working path within the work area. Based on the position of the first unloading point, the first direction, and the offset, the position of the first candidate unloading point can be determined. When the position of the first candidate unloading point is within the preset unloading area, it is used as the position of the second unloading point. When the position of the first candidate unloading point is outside the preset unloading area, a second direction different from the first direction is determined, and the position of the second candidate unloading point is determined based on the second direction, until the position of the second candidate unloading point is within the preset unloading area. The position of the second candidate unloading point within the preset unloading area is then determined as the position of the second unloading point. Thus, each unloading point is located within the unloading area, and based on the rotation of the first and second directions, unloading points can be determined in the empty areas within the preset unloading area, making full use of the preset unloading area and improving its utilization rate.
[0126] 203: Based on the location of the second unloading point, control the mobile robot to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
[0127] In this embodiment, the mobile robot's controller can use the determined location of the second unloading point as the location of the unloading point where the mobile robot is currently performing the unloading operation. Based on the location of the second unloading point, the controller moves the mobile robot to that location to unload the object. Using this method, the mobile robot's controller can control the mobile robot to perform each unloading operation in the unloading task until the unloading task is completed.
[0128] In summary, in this embodiment, the mobile robot controller first obtains the position of the first unloading point where the mobile robot previously completed an unloading operation. Then, based on the position of the first unloading point and its offset, it determines the position of the second unloading point where the mobile robot is currently performing the unloading operation. Finally, based on the position of the second unloading point, it controls the mobile robot to move to the second unloading point to perform the unloading operation until the unloading task is completed. Therefore, each time the mobile robot performs an unloading operation, it can determine the position of the current unloading point based on the position and offset of the unloading point where the previous unloading operation was completed. By determining a reasonable offset, the mobile robot can fully place the objects to be unloaded into the unloading area of each unloading point, solving the problem of low utilization of the unloading area caused by pre-setting all unloading points and improving the utilization rate of the unloading area.
[0129] In one embodiment of this application, taking the unloading control method of a lawnmower as an example, when the lawnmower performs each unloading operation, the control device of the lawnmower can obtain the position of the first unloading point where the lawnmower previously completed the unloading operation; then, based on the position of the first unloading point and the unloading offset, the position of the second unloading point where the lawnmower is currently performing the unloading operation is determined; finally, based on the position of the second unloading point, the lawnmower is controlled to move to the position of the second unloading point to perform the unloading operation until the unloading task is completed.
[0130] For example, the unloading offset can be determined based on the volume of grass debris collected in the grass collection device of the lawnmower, or it can be preset by the user; the method for determining the unloading offset is similar to the method for determining the offset in the above embodiment, and will not be repeated here.
[0131] For example, both the first and second unloading points are located within a preset unloading area. Specifically, if the offset direction of the first unloading point is a first offset direction, the control device of the lawnmower moves the unloading offset distance in the first offset direction according to the position of the first unloading point to obtain the position of the first candidate unloading point. When the position of the first candidate unloading point is within the preset unloading area, the position of the first candidate unloading point is determined as the position of the second unloading point. When the first candidate unloading point is located outside the preset unloading area, the first offset direction is rotated by a preset angle to the second offset direction. This preset angle can be 30 degrees, 60 degrees, 90 degrees, etc. Taking 90 degrees as an example, if the first offset direction is along the positive half-axis of the X-axis, and after multiple unloading operations, the position of the first candidate unloading point exceeds the boundary of the preset unloading area, then the first offset direction is rotated 90 degrees to the second offset direction. At this time, the second offset direction is along the positive half-axis of the Y-axis. After offsetting the unloading offset by the unloading offset amount along the second offset direction from the position of the first unloading point, the position of the second candidate unloading point is obtained. The position of the second candidate unloading point is used as the position of the first candidate unloading point, and the second offset direction is used as the first offset direction, until the position of the first candidate unloading point is located within the preset unloading area. The position of the candidate unloading point located within the preset unloading area is used as the position of the second unloading point. Finally, the control device of the mower controls the mower to move to the position of the second unloading point, and unloads the grass clippings from the grass collection device through the rotation of the mower itself, completing the current unloading operation. The above method can be used to perform each unloading operation until all unloading operations in the unloading task are completed. Optionally, the initial unloading point for the first unloading operation can be preset by the user.
[0132] For example, the first offset direction and the second offset direction can be directions parallel or perpendicular to the boundary of the preset unloading area. Taking the first offset direction being parallel to the first boundary of the preset unloading area and the second offset direction being parallel to the second boundary of the preset unloading area as an example, where the first boundary and the second boundary are adjacent, the control device of the lawnmower moves the unloading offset distance in the first offset direction according to the position of the first unloading point, thereby determining the position of the first candidate unloading point along the direction of the first boundary. When the position of the first candidate unloading point is within the preset unloading area, the position of the first candidate unloading point is taken as the position of the second unloading point. After multiple unloading operations, if the position of the first candidate unloading point along the direction of the first boundary exceeds the second boundary of the preset unloading area, at this time, the control device of the lawnmower rotates the first offset direction to be parallel to the direction of the second boundary, thus obtaining the second offset direction. After offsetting the position of the first unloading point by the unloading offset distance along the second offset direction, the position of the second candidate unloading point is obtained. This second candidate unloading point is then used as the position of the first candidate unloading point. The second offset direction is used as the first offset direction, and the second boundary is used as the first boundary. The boundary adjacent to the second boundary is used as the second boundary, until the position of the first candidate unloading point is within a preset unloading area. The positions of candidate unloading points within this preset unloading area are then used as the positions of the second unloading points. Finally, the mower's control device moves the mower to the second unloading point, unloading the hay from the collection device through the mower's rotation, completing the current unloading operation. This method can be used to perform each unloading operation until all unloading operations in the unloading task are completed. Optionally, the initial unloading point for the first unloading operation can be preset by the user.
[0133] It is understood that the above unloading control method is only an example. The method of determining the position of the second unloading point of the lawnmower currently performing the unloading operation based on the position of the first unloading point and the unloading offset is similar to the method of determining the position of the second unloading point of the mobile robot currently performing the unloading operation based on the position of the first unloading point and the offset in any of the above embodiments, and will not be described again here.
[0134] Therefore, the unloading point for each lawnmower operation can be determined based on the location and offset of the previous unloading point. By determining the unloading offset corresponding to the haystacks to be unloaded, the haystacks can be fully accumulated in the unloading area corresponding to each unloading point, improving the utilization rate of the unloading area.
[0135] See Figure 6 , Figure 6This is a schematic diagram of an unloading control device provided in an embodiment of this application. The unloading control device 600 can be the controller of the mobile robot in any of the above embodiments. The unloading control device 600 includes an acquisition module 601, a processing module 602, and a control module 603.
[0136] The acquisition module 601 is used to acquire the position of the first unloading point where the mobile robot last completed the unloading operation;
[0137] Processing module 602 is used to determine the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset.
[0138] The control module 603 is used to control the mobile robot to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
[0139] In one possible embodiment, the offset is determined based on the volume of the object to be unloaded during the previous unloading process of the mobile robot. Before determining the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset, the processing module 602 is further configured to:
[0140] Based on the current volume of the object to be unloaded and the preset unloading thickness, determine the unloading area of the object to be unloaded.
[0141] The offset is determined based on the unloading area.
[0142] In one possible embodiment, in determining the location of the second unloading point where the mobile robot is currently performing an unloading operation based on the location of the first unloading point and the offset, the processing module 602 is specifically configured to:
[0143] Obtain the preset unloading area and the working route of the mobile robot within the work area;
[0144] Determine the first direction corresponding to the work route;
[0145] Based on the location, direction, and offset of the first unloading point, the location of the first candidate unloading point is determined;
[0146] If the location of the first candidate unloading point is within the preset unloading area, then the location of the first candidate unloading point will be used as the location of the second unloading point.
[0147] If the location of the first candidate unloading point is outside the preset unloading area, then a second direction different from the first direction is determined. Based on the location of the first unloading point, the second direction, and the offset, the location of the second candidate unloading point is determined until the location of the second candidate unloading point is within the preset unloading area. The location of the second candidate unloading point within the preset unloading area is then determined as the location of the second unloading point.
[0148] In one possible embodiment, in determining a second direction different from the first direction, the processing module 602 is specifically configured to:
[0149] Determine the shortest distance from the location of the first unloading point to the boundary of the preset unloading area;
[0150] Rotate the first direction by a preset angle to obtain the first candidate direction;
[0151] Based on the shortest distance, determine the position of the first candidate point in the first candidate direction of the first unloading point;
[0152] Based on the unloading area, the first candidate stacking area corresponding to the first candidate point is determined with the location of the first candidate point as the area center.
[0153] If the first candidate stacking area is located within the preset unloading area, then the first candidate direction is determined to be the second direction;
[0154] If the first candidate stacking area intersects with the boundary of the preset unloading area, the first candidate direction is rotated by a preset angle to obtain the second candidate direction. The second candidate stacking area is determined according to the second candidate direction until the second candidate stacking area is located within the preset unloading area. The second candidate direction corresponding to the second candidate stacking area located within the preset unloading area is determined as the second direction.
[0155] In one possible embodiment, in determining the offset based on the unloading area, the processing module 602 is specifically configured to:
[0156] Get the mass of the object to be unloaded;
[0157] Based on the mass and volume of the object to be unloaded, determine the target stacking volume required for the object to be unloaded;
[0158] Based on the target stacking volume, adjust the unloading area to obtain the target unloading area of the object to be unloaded;
[0159] Based on the target unloading area, determine the stacking area of the second unloading point;
[0160] The offset is determined based on the stacking area of the second unloading point and the position of the first unloading point.
[0161] In one possible embodiment, in determining the offset based on the unloading area, the processing module 602 is specifically configured to:
[0162] Obtain the first stacking area corresponding to the first unloading point;
[0163] Based on the unloading area, determine the second stacking area adjacent to the first stacking area;
[0164] Obtain the flatness of the second stacking area;
[0165] Adjust the second stacking area according to the flatness to obtain the target stacking area;
[0166] Determine the location of the offset point within the target stacking area;
[0167] The offset is determined based on the location of the first unloading point and the location of the offset point.
[0168] In one possible embodiment, the acquisition module 601 is further configured to: if the currently executed uninstallation operation is the first uninstallation operation in the uninstallation task, then acquire the location of the preset initial uninstallation point;
[0169] The control module 603 is also used to: control the mobile robot to go to the location of the preset initial unloading point to perform the unloading operation according to the location of the preset initial unloading point.
[0170] See Figure 7 , Figure 7 This is a schematic diagram of a lawnmower provided in an embodiment of this application. Figure 7 As shown, the lawnmower includes a mowing device 701, a grass collecting device 702, a traveling device 703, and a control device 704. The lawnmower includes the mobile robot and lawnmower of any of the above embodiments, and can automatically mow, collect, and unload grass. The control device 704 can be the controller of the mobile robot in any of the above embodiments. The control device 704 can also be the unloading control device 600 of the above embodiments.
[0171] The lawnmower 701 is equipped with lawnmower blades for mowing or cutting the lawn. The grass collection device 702 collects the cut grass debris from the lawnmower 701 and unloads it during unloading operations. The traveling device 703 is equipped with wheels for driving the lawnmower. The control device 704 includes a memory and a processor. The memory stores computer program instructions and data, while the processor reads and executes the computer program instructions from the memory to control the lawnmower 701, the grass collection device 702, and the traveling device 703. The lawnmower 701 is located at the bottom of the lawnmower and is only shown as a note in the figure.
[0172] The processor reads computer program instructions from memory and can perform the following operations:
[0173] Get the location of the first unloading point where the lawnmower last completed its unloading operation;
[0174] The location of the second unloading point, where the mower is currently performing the unloading operation, is determined based on the location and offset of the first unloading point.
[0175] Based on the location of the second unloading point, control the mower to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
[0176] The lawn mowing device 701 can have disc-shaped rotary blades that cut grass using centrifugal force as the blades rotate. Alternatively, it can have roller-shaped blades composed of multiple blades that trim the lawn through rolling cuts. The height of the lawn mowing device 701 is adjustable to control the cutting height of the lawn.
[0177] The grass collecting device 702 includes a grass collecting box for loading cut grass debris. The grass collecting device has a structure capable of collecting grass debris into the grass collecting device 702. For example, a fan is installed inside the grass collecting box. After the fan is started, the rotation of the fan lowers the internal pressure of the grass collecting box to a level lower than the air pressure, thereby drawing the cut grass debris into the grass collecting box and collecting the grass debris; or a roller brush is installed at the location of the grass collecting device 702, and by driving the roller brush to rotate, the grass debris is swept into the grass collecting device.
[0178] The traveling device 703 mainly includes a drive unit and wheels. The drive unit may include an engine or a motor to drive the wheels to rotate, thereby driving the lawnmower forward, backward and turning.
[0179] The control device 704 controls the speed of the lawnmower by controlling the rotation speed of the engine or motor of the traveling device 703. Simultaneously, it controls the travel path of the lawnmower by controlling the steering of the wheels of the traveling device 703. The control device 704 can also control the starting and stopping of the mowing device 701, which cuts the grass along its travel path after starting. The control device 704 can also adjust the height of the mowing device 701 to control the cutting height. The control device 704 can also control the starting and stopping of the fan on the grass collection device 702, which collects the grass debris in the collection box after starting. During unloading, the control device 704 can turn off the fan, then control the traveling wheels to turn in one direction, and drive the lawnmower to rotate via the drive device to unload the grass debris from the collection box, completing the unloading operation.
[0180] The above mainly describes the solutions of the embodiments of this application from the perspective of the method execution process. It is understood that, in order to achieve the above functions, the lawnmower includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments provided herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0181] This application also provides a computer-readable storage medium storing a computer program that is executed by a processor to implement some or all of the steps of any of the unloading control methods described in the above method embodiments.
[0182] This application also provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program operable to cause a computer to perform some or all of the steps of any of the unloading control methods described in the above method embodiments.
[0183] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are all optional embodiments, and the actions and modules involved are not necessarily essential to this application.
[0184] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions in other embodiments.
[0185] In the several embodiments provided in this application, it should be understood that the disclosed apparatus can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical or other forms.
[0186] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0187] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software program module.
[0188] If the integrated unit is implemented as a software program module and sold or used as an independent product, it can be stored in a computer-readable storage device (CMD). Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned memory includes various media capable of storing program code, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0189] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, which may include: flash drive, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.
[0190] The embodiments of this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The description of the above embodiments is only for the purpose of helping to understand the method and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.
Claims
1. An unloading control method, characterized in that, include: Get the location of the first unloading point where the mobile robot last completed an unloading operation; The position of the second unloading point where the mobile robot is currently performing the unloading operation is determined based on the position of the first unloading point and the offset. The offset is determined based on the volume of the object to be unloaded during the previous unloading process of the mobile robot. Based on the location of the second unloading point, the mobile robot is controlled to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
2. The method according to claim 1, characterized in that, Before determining the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position and offset of the first unloading point, the method further includes: Based on the current volume of the object to be unloaded and the preset unloading thickness, the unloading area of the object to be unloaded is determined. The offset is determined based on the unloading area.
3. The method according to claim 1 or 2, characterized in that, Determining the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position and offset of the first unloading point includes: Obtain the preset unloading area and the working route of the mobile robot within the working area; Determine the first direction corresponding to the work route; Based on the location of the first unloading point, the first direction, and the offset, the location of the first candidate unloading point is determined; If the location of the first candidate unloading point is within the preset unloading area, then the location of the first candidate unloading point is taken as the location of the second unloading point; If the position of the first candidate unloading point is outside the preset unloading area, then a second direction different from the first direction is determined. Based on the position of the first unloading point, the second direction, and the offset, the position of the second candidate unloading point is determined until the position of the second candidate unloading point is within the preset unloading area. The position of the second candidate unloading point within the preset unloading area is then determined as the position of the second unloading point.
4. The method according to claim 3, characterized in that, Determining a second direction different from the first direction includes: Determine the shortest distance from the location of the first unloading point to the boundary of the preset unloading area; Rotate the first direction by a preset angle to obtain the first candidate direction; Based on the shortest distance, determine the position of the first candidate point in the first candidate direction of the first unloading point; Based on the unloading area, the first candidate stacking area corresponding to the first candidate point is determined with the location of the first candidate point as the area center. If the first candidate stacking area is located within the preset unloading area, then the first candidate direction is determined to be the second direction; If the first candidate stacking area intersects with the boundary of the preset unloading area, the first candidate direction is rotated by the preset angle to obtain the second candidate direction. The second candidate stacking area is determined according to the second candidate direction until the second candidate stacking area is located within the preset unloading area. The second candidate direction corresponding to the second candidate stacking area located within the preset unloading area is determined as the second direction.
5. The method according to claim 2, characterized in that, Determining the offset based on the unloading area includes: Obtain the mass of the object to be unloaded; Based on the mass and volume of the object to be unloaded, determine the target stacking volume required for the object to be unloaded; Based on the target stacking volume, the unloading area is adjusted to obtain the target unloading area of the object to be unloaded. Based on the target unloading area, determine the stacking area of the second unloading point; The offset is determined based on the stacking area of the second unloading point and the position of the first unloading point.
6. The method according to claim 2, characterized in that, Determining the offset based on the unloading area includes: Obtain the first stacking area corresponding to the first unloading point; Based on the unloading area, a second stacking area adjacent to the first stacking area is determined; Obtain the flatness of the second stacking area; The second stacking area is adjusted according to the flatness to obtain the target stacking area; Determine the location of the offset point within the target stacking area; The offset is determined based on the position of the first unloading point and the position of the offset point.
7. The method according to claim 1 or 2, characterized in that, The method further includes: If the currently executed uninstallation operation is the first uninstallation operation in the uninstallation task, then obtain the location of the preset initial uninstallation point; Based on the location of the preset initial unloading point, the mobile robot is controlled to move to the location of the preset initial unloading point to perform the unloading operation.
8. An unloading control device, characterized in that, The device includes: The acquisition module is used to obtain the location of the first unloading point where the mobile robot last completed an unloading operation; The processing module is used to determine the position of the second unloading point where the mobile robot is currently performing the unloading operation based on the position of the first unloading point and the offset. The offset is determined based on the volume of the object to be unloaded during the previous unloading process of the mobile robot. The control module is used to control the mobile robot to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed, based on the location of the second unloading point.
9. A lawnmower, characterized in that, The lawnmower includes: a mowing device, a grass collecting device, a traveling device, and a control device; the mowing device is used to perform mowing operations, the grass collecting device is used to collect the cut grass debris, the traveling device is used to drive the lawnmower forward, and the control device is used to execute computer program instructions to cause the control device to perform the following steps: Obtain the location of the first unloading point where the lawnmower previously completed its unloading operation; The location of the second unloading point of the lawnmower is determined based on the location of the first unloading point and the unloading offset. The unloading offset is determined based on the volume of the grass to be unloaded during the unloading process of the lawnmower in one operation. Based on the location of the second unloading point, the mower is controlled to move to the location of the second unloading point to perform the unloading operation until the unloading task is completed.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that is executed by a processor to implement the method as described in any one of claims 1-7.
Citation Information
Patent Citations
Logistics vehicle management method and device, electronic equipment and storage medium
CN117057701A
Material unloading
WO2024175177A1