This application claims priority under 35 U.S.C. § 119 to patent application no. DE 10 2023 203 060.8, filed on Apr. 3, 2023 in Germany, the disclosure of which is incorporated herein by reference in its entirety.
The present disclosure relates to a method for determining a trajectory, along which a mobile device, e.g. a robot or an at least partially automated guided vehicle, is intended to move in the surroundings, a computing unit, and a computer program for performing said method, as well as a mobile device.
Mobile devices, in particular robots, drones or at least partially automated guided vehicles such as AGVs (“Automated Guided Vehicles”) are used in various areas. Such mobile devices typically move along a trajectory or movement path in surroundings such as a home, a garden, a factory floor or on the road, in the air or in water. The trajectory is, e.g., planned or determined to be as short as possible if a specific destination is intended to be reached. Obstacles or objects in the vicinity are intended be taken into account in this context. It is also often desired that the mobile device reaches a specific destination as quickly as possible.
Proposed according to the disclosure are a method for determining a trajectory, a computing unit, and a computer program for performing said method, as well as a mobile device having the features set forth below. Advantageous embodiments are also set forth in the following description.
The disclosure deals with mobile devices that move or are intended to move along a trajectory in the surroundings. In this context, a trajectory in particular comprises a movement path and a velocity profile along the movement path. The trajectory can, for example, comprise positions and/or orientations of the mobile device and additionally a velocity profile, e.g. times at which these positions and/or orientations should apply. A certain velocity along or on the movement path is specified thereby. This velocity can also be variable along the movement path, e.g. lower on curves than on straight sections. One or multiple possible movement paths can be specified in this case. The trajectory should then move along one (then only the velocity is important) or one of the several movement paths (then a selection can be made).
Examples of such mobile devices include robots and/or drones and/or partially or fully automated guided vehicles (on land, water, or in the air). Robots include, for example, household robots such as vacuum and/or mopping robots, floor or street cleaning devices, or lawn mowing robots, but also other so-called service robots, as well as vehicles that are guided at least partially automatically, e.g. passenger transport vehicles or goods transport vehicles (including what are referred to industrial trucks, e.g. in warehouses, including automated forklift trucks), but also aircraft (referred to as drones or watercraft). Other possible mobile devices are parts of robots, e.g. a robot arm comprising a manipulator.
Generating movements at a minimum duration along, e.g., a specific movement path is a problem that frequently needs to be solved in this context. A mobile device that performs a task faster is generally more efficient, so fewer mobile devices are needed for operations. For automated guided vehicles (AGVs), which usually travel in straight lines on reserved lanes, the maximum velocity of the respective AGV is generally the most important criterion. When using robot arms, where the problem is very similar in principle, it becomes much more difficult due to the additional complexity of the kinematics and dynamics. Mobile devices that work in complex surroundings are generally unable to operate continuously at top velocity. This raises the question of how to determine minimum-time trajectories.
Another aspect to be considered when determining trajectories for such mobile devices concerns safety monitors. In this context, it is understood that a mobile device such as an AGV has the ability to detect the surroundings and, in particular, to recognize objects or obstacles. This is for safety reasons, for example, to avoid collisions between the mobile device and obstacles. For example, a distance from obstacles in the surroundings can be detected, e.g. using lidar or a lidar sensor. Various monitoring zones can be defined in this context, whereby each of the various monitoring zones defines an area around the mobile device, preferably in the direction of travel, in which area the mobile device is monitoring or is intended to monitor the surroundings. If an obstacle is detected in a currently assigned monitoring zone, then an action is typically performed. This action can, e.g., be a maneuver such as braking or swerving the mobile device in order to prevent a collision.
Depending on the velocity of the mobile device, one or multiple different monitoring zones can be assigned to the mobile device. The velocity can comprise a longitudinal velocity, a lateral velocity or an angular velocity, or any combination thereof. The monitoring zones to be assigned can also depend on the type of velocity. For example, when cornering, monitoring zones can be larger in the direction of the bend. A steering angle of the mobile device, if adjustable, can also have an influence on the monitoring zone to be assigned. It should be mentioned in this context that the monitoring zones may, e.g., only be two-dimensional (2D), but can also be three-dimensional (3D).
Whereas the velocity of the mobile device (at least up to maximum velocity) can generally change at will, i.e. continuously, the monitoring zones are of a discrete nature. This means that the assigned monitoring zones do not change for a certain velocity range of the mobile device, but do change abruptly if a certain velocity threshold is exceeded. For example, the monitored area is then significantly extended. One reason for this discrete nature is, for example, that only a certain number of different monitoring zones need to be taken into account when evaluating the detection of obstacles, which allows faster processing. This type of monitoring zone is also established in the field of robotics and is the most frequently used approach. It should also be noted that the choice of a finite number of zones used by algorithms to check for possible collisions helps to reduce the complexity of the safety case for the entire robot system.
However, in the case of a mobile device that is assigned such monitoring zones or uses such monitoring zones, when determining a trajectory there is a risk that a trajectory will be determined in which the mobile device later performs an unnecessary action due to an obstacle detected (at a certain distance). This would lead to unnecessary delays or even longer interruptions, which runs counter to the goal of the fastest possible trajectory.
Against this background, it is proposed that a set of different monitoring zones be provided in order to determine such a trajectory. In particular, these may be those monitoring zones that can or should be used for the mobile device in question. The number and type or size of the various monitoring zones can vary, depending on the type of mobile device, the type of monitoring functionality implemented, or the type of the surroundings in which the mobile device is intended to move. As mentioned, each of the different monitoring zones defines an area around the mobile device in which area the mobile device is monitoring or is intended to monitor the surroundings. An assignment criterion is provided, according to which a monitoring zone configuration is or is going to be assigned to the mobile device as a function of a velocity of the mobile device; a monitoring zone configuration comprises a predetermined monitoring zone of the set. A monitoring zone configuration can, for example, comprise a larger monitoring zone at higher velocities than at lower velocities. It is useful if the assigned monitoring zone is always selected starting from the mobile device (or a sensor), typically approximately in the direction of travel. Regardless of the type of assignment, however, a discretization will exist.
Furthermore, a permissibility criterion is provided that specifies a permissible zone from the set of different monitoring zones. In this case, a user can, e.g., specify which monitoring zone is intended to be accepted, e.g. also depending on the surroundings or the possible movement paths. This can be used, for example, to ensure that only those monitoring zones (and therefore also monitoring zone configurations) are permitted for which it can be guaranteed, or at least assumed, that the aforementioned action of the mobile device will not be triggered.
Furthermore, a sequence of critical velocities for the mobile device is then determined based on the set of different monitoring zones, preferably also based on the one or multiple possible specified movement paths. In particular, the one or multiple possible specified movement paths specify possible velocities for the mobile device; for example, a certain ratio of longitudinal to angular velocity can be specified for a curve or cornering. One or multiple possible steering angles for the mobile device can also be specified by the one or multiple possible specified movement paths. Regarding vehicles in which the steering angle is adjustable, a certain curve leads to, e.g., a certain required steering angle.
The critical velocities in this case indicate the maximum permissible velocity for the mobile device for each monitoring zone configuration. As mentioned, a monitoring zone configuration applies to a certain velocity range; a maximum velocity can then be determined there. During travel along a curve, the velocity can, e.g., have a longitudinal component and an angular component.
The trajectory is then determined based on the sequence of critical velocities and based on the permissibility criterion, in particular as part of an optimization or an optimization method. For this purpose, a selected, in particular maximum, critical velocity can be determined from the sequence of critical velocities so that a monitoring zone configuration to be assigned to the selected critical velocity satisfies the permissibility criterion. For example, a maximum velocity is thereby found, at which it can be assumed that the action of the mobile device will not be triggered. The trajectory is then determined based on the selected critical velocity.
The trajectory is then also provided, and the mobile device can in particular be prompted to move according to the trajectory. Based on the trajectory, movement control variables (e.g. control variables for the drive system such as torques, steering specifications and the like) can be determined and provided for the mobile device, in particular the mobile device can also be controlled based on the movement control variables. For example, a control or regulation unit for controlling a drive system can be provided for this purpose.
In programming terms, a computing unit according to the disclosure, e.g. a control device or a control unit of a mobile device, is in particular configured to perform a method according to the disclosure.
The disclosure also relates to a mobile device, e.g. a robot, a drone or an at least partially automated guided vehicle (e.g., an AGV), which is configured to receive a trajectory or movement control variables. The mobile device then comprises a drive system and a control or regulation unit for controlling the drive system based on the trajectory and/or the movement control variables. The mobile device can also comprise a computing unit according to the disclosure. As already mentioned, the mobile device can be configured to perform an action (e.g., a braking maneuver) if an obstacle is detected in the monitoring zone configuration currently assigned to the mobile device. For this purpose, the mobile device can also comprise one or multiple sensors or sensor units, e.g. lidar sensors.
The implementation of a method according to the disclosure in the form of a computer program or computer program product comprising program code for performing all of the method steps is also advantageous because this results in particularly low costs, especially if an executing control device is still used for other tasks and is therefore provided in any event. Suitable data carriers for providing the computer program are, in particular, magnetic, optical, and electric storage media, such as hard disks, flash memory, EEPROMs, DVDs, and others. Downloading a program via computer networks (Internet, intranet, etc.) is also possible.
Further advantages and embodiments of the disclosure will emerge from the description and the accompanying drawings.
It is understood that the features specified hereinabove and those to be explained hereinafter can be used not only in the combination indicated in each case, but also in other combinations or on their own, without departing from the scope of the present disclosure.
The disclosure is thoroughly illustrated schematically in the drawings on the basis of exemplary embodiments and is described hereinafter with reference to the drawings.
The mobile device 100 in this case comprises a computing unit 108 in the form of a control unit, which is connected to the higher-level computing unit 110, e.g. by wireless data transmission, as well as (by way of example) a lidar sensor 106.
The mobile device 100 further comprises a drive system 104 and a control or regulation unit 102 for controlling the drive system 104 based on trajectories or movement control variables.
In the surroundings 120, a possible movement path 132 is indicated by way of example which, e.g., the mobile device 100 can or should follow, i.e., along which it is intended to move. For this purpose, a trajectory 130 can be determined, which not only indicates the movement path to be ultimately followed by the mobile device (there could also be alternative possible movement paths), but also a velocity. An obstacle 140 in the surroundings is also shown by way of example.
All monitoring zones intended for a specific mobile device and/or specific surroundings can be combined into one set. For example, all the monitoring zones shown in
An optimization problem can then be solved to determine a trajectory for such a mobile device, which specifies a velocity profile along a movement path. This can be assumed to be possible in principle. As mentioned, however, if the possible velocity that the mobile device can assume here were to be taken as its maximum velocity, there would be a risk that a large monitoring zone configuration would occur, which would unnecessarily lead to an action by the mobile device. It is intended to be described hereinafter how this can be avoided.
The range 350 here comprises various velocity ranges, some of which are labeled 351, 352, 353, 354, 355, 356, 357 as examples. The velocity ranges are, for example, convex ranges. Depending on the velocity of the mobile device, it can then be assigned a different monitoring zone, which is specified via a monitoring zone configuration. The same monitoring zone is in this case assigned to each velocity within a velocity range. For example, if the velocity is in the velocity range 351, a smaller monitoring zone will be assigned, as the braking distance will generally be shorter than if the velocity is in the velocity range 357.
It is understood that the present situation is also not limited to the two-dimensional (2D) case, although it is the case in the present context (for the sake of easier illustration). Therefore, velocity ranges can, e.g., only be two-dimensional (2D), but can also be three-dimensional (3D).
In step 210, a permissibility criterion 212 is provided that specifies a permissible monitoring zone from the set 202 of the various monitoring zones. As a result, a user is, e.g., able to specify which monitoring zone is permitted because this is unlikely to trigger an action. For example, monitoring zone 152 could be approved. In other words, the user can specify the monitoring zone so that the mobile device meets a certain safety standard. Nevertheless, the user is motivated, for example, to use the highest possible velocities and rotation rates. Each velocity range in
In step 220, a sequence 222 of critical velocities for the mobile device is then determined based on the set 202 of different monitoring zones, as well as, e.g., also based on one or multiple possible specified movement paths, e.g. the movement path 132 in
For this purpose, boundary surfaces (or, in 2D, boundary lines or edges) of velocity ranges can be considered first.
An evaluation function is f, a permissibility criterion is g (a velocity range or the associated monitoring zone is accepted if this is true), there are two velocity ranges z1, z2, and a velocity or a velocity vector is t. Then the following applies:
(g(t,z1)==True) AND (g(t,z2)==False) implies f(z1)>f(z2)
In addition, the following applies:
(f(z1)≥f(z2)) AND (g(t,z2)==True) implies (g(t,z1)==True)
and:
(f(z1)≥f(z2)) AND (g(t,z1)==false) implied (g(t,z2)==false)
The preferred monitoring zone or velocity range is therefore one with a lower value. All values (v, ω) within the area are assigned to this velocity range. By assigning edges to velocity ranges (in this case areas), an algorithm can easily check whether the boundary lines have been exceeded or undercut and can therefore directly assign the velocity range in which velocity range the mobile device is located and thus also determine the maximum velocity in a velocity range.
In step 230, the trajectory can be determined based on the sequence of critical velocities, whereby in step 232 a selected, in particular maximum, critical velocity can be determined from the sequence of critical velocities, so that a monitoring zone configuration to be assigned to the selected critical velocity satisfies the permissibility criterion.
In the example shown, the velocity ranges 351, 352, 353, for example, can satisfy the permissibility criterion if the monitoring zones assigned to these velocity ranges would not trigger any action for a possible obstacle at a certain distance. The maximum velocity that satisfies the permissibility criterion is therefore, for example, that given by v6. In a step 234, the trajectory can then be determined at this critical velocity v6, for example as part of an optimization, and provided in step 240. It should be mentioned that such a trajectory can only be determined in advance for a certain movement path section, for example; this can then be repeated again and again.
While the above explanations apply generally and are not limited to the 2D case, certain simplifications can be made in the 2D case. In the case of 2D velocity ranges, the local movement path geometry can also be represented by a (signed) curvature K, as shown in
Number | Date | Country | Kind |
---|---|---|---|
10 2023 203 060.8 | Apr 2023 | DE | national |