Method for planning the movement of an autonomous vehicle by constraint programming
Constraint programming optimizes vehicle route planning by constructing a matrix and applying specific constraints, ensuring efficient task completion while minimizing a metric, addressing inefficiencies in existing algorithms.
Patent Information
- Application Number
- FR2022008665
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-08-30
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2042-08-30
AI Technical Summary
Existing methods, such as Dijkstra's algorithm, are inefficient in quickly and reliably determining a sequence of movements between a starting point and an arrival point that includes passages at multiple waypoints to perform a set of tasks, and do not allow for the automatic selection of task order.
A method using constraint programming to plan vehicle movements by constructing a matrix from a graph, applying constraints like Hamiltonian path, all different nodes, passing through each task, and minimizing a predetermined metric, using a solver to calculate an optimal route.
Enables rapid, reliable, and optimal planning of vehicle routes that efficiently perform multiple tasks while adhering to constraints, with execution times reduced from 10 seconds to 2 seconds using integer values.
Smart Images

Figure 00000018_0000 
Figure 00000018_0001 
Figure 00000019_0000
Abstract
Description
Title of the invention: Method for planning the movement of an autonomous vehicle by constraint programming TECHNICAL FIELD OF THE INVENTION
[0001] The technical field of the invention is that of automatic route planning.
[0002] The present invention relates to a method for automatically planning the movement of an autonomous vehicle by constraint programming and in particular for automatically planning a route for a vehicle passing through a plurality of geographical points to carry out predetermined tasks, the planning being carried out by a solver intended to take into account particular constraints. TECHNOLOGICAL BACKGROUND OF THE INVENTION
[0003] In the context of planning autonomous vehicle movements, it is common to want to find the shortest path between two points on a graph, the graph comprising several points. In graph theory, Dijkstra's algorithm makes it possible to solve this problem, by calculating the shortest path between a starting point and all the points on the graph.
[0004] A disadvantage of Dijkstra is that it does not allow a sequence of movements between a starting point and an arrival point to be found quickly and efficiently, the sequence of movements comprising passages imposed at several waypoints, for example to carry out a set of tasks constituting a mission, the tasks being carried out at different positions. There is therefore a need for a solution which allows a sequence of movements between a starting point and an arrival point to be found quickly and efficiently, comprising passages imposed at several waypoints.
[0005] There is a need for a solution that also allows for the automatic selection of an order of tasks to be performed between the starting point and the arrival point.
[0006] [Fig.l] shows a schematic representation of a graph G comprising groups of tasks.
[0007] The graph G represented in [Fig.l] comprises a starting point D and an arrival point F. These starting points D and arrival points F are nodes (also known as “points” or “vertices”). The graph G comprises other nodes, connected by edges.
[0008] Among the other nodes, some are grouped together in the form of groups A, B and C. Groups A, B and C are therefore groups of nodes, each group of nodes being associated with a task to be performed between the starting point D and the arrival point F. Each group of nodes comprises a plurality of nodes. A task can be performed by passing through one or more of the nodes of the task group, regardless of the node chosen in this group. Thus, within the same group of nodes, the nodes are “equivalent”, that is to say that they all make it possible to achieve the goal of performing the task associated with the group of nodes. For example, for the group of nodes A, associated with the task A to be performed, the nodes A1, A2 or A3 each make it possible to perform the task A. For example, node A can represent the location of a point to be observed, and nodes A1 to A3 can represent observation points making it possible to perform the task of observing the point located at node A.
[0009] Similarly, for the group of nodes B, associated with the task B to be carried out, the nodes B1, B2, B3, B4 or B5 each allow the task B to be carried out.
[0010] Concerning the group of nodes C, associated with the task C to be carried out, the nodes Cl, C2, C3 or C4 each allow the task C to be carried out.
[0011] The objective is to go from the starting point D to the arrival point F via at least one node of each of the tasks A, B and C by taking the shortest path, for example via the nodes A2, B1 and C3, in order to observe the geographical positions associated with the observations A, B and C when the tasks are observations. The order of passage between the tasks is not determined in advance. Thus, the shortest path could start with task B, then A, then C. It is the solver which determines the order of passage of the points.
[0012] The shortest path is either the shortest path in terms of distance, or the shortest path in terms of time, i.e., the fastest path. The user chooses the minimization criterion (distance or time). This criterion is an input to the planning task.
[0013] There is a need to solve this problem in a fast and reliable manner, the solution of which is optimal and precise, i.e. not approximate. Summary of the invention
[0014] The invention offers a solution to the problems mentioned above, by making it possible to find the route allowing a set of tasks to be carried out while respecting a constraint linked to a predefined metric.
[0015] One aspect of the invention relates to a method for planning movement of a vehicle in a graph, the graph comprising a plurality of nodes, each node of the plurality of nodes having a geographical position, at least one of the nodes of the plurality of nodes being associated with a task to be carried out by the vehicle, the plurality of nodes comprising a starting node and an ending node, the planning method comprising at least the steps of: • Construction of at least one matrix from the graph, the matrix comprising, for each node of the plurality of nodes of the graph, a value of a predetermined metric for each other node of the plurality of nodes, • Calculation of a route by a solver, the solver retaining in the route nodes retained from among the plurality of nodes of the graph, the calculation being carried out from the matrix and a plurality of constraints comprising at least: • a first constraint forcing the solver to calculate as a route a Hamiltonian path for the retained nodes taking the form of a list of successive nodes and, for each node not retained in the route, to create an entry in the list for which the successive node of the non-retained node is itself, • a second constraint forcing the solver to retain only different nodes in the route, • a third constraint forcing the solver to find a route passing at least once through a node associated with each task, and passing through the starting node and the arrival node, • a minimization function forcing the solver to minimize the sum of the metric values between the nodes retained for the route. • Planning the vehicle movement according to the calculated route.
[0016] Thanks to the invention, it is possible to solve the problem posed, which is that, for a vehicle, of carrying out a plurality of tasks between a starting point and an arrival point, while carrying out the route respecting a minimum metric value, and this in a rapid, reliable and easy-to-use manner for an uninitiated user. Indeed, the use of constraint programming with the constraints of the invention to solve the problem posed allows a rapid resolution by the solver while having a result guaranteeing compliance with these constraints. Furthermore, it is easy for an uninitiated user to select a plurality of points through which the autonomous vehicle must pass, for example on a human-machine interface, and to restart the solver with the same constraints and with the new points.Moreover, the route found is optimal, that is, there is no route with a lower metric value that allows all tasks to be performed.
[0017] In addition to the characteristics which have just been mentioned in the preceding paragraph, the method according to one aspect of the invention may have one or more additional characteristics among the following, considered individually or in all technically possible combinations: • the metric between two nodes of the plurality of nodes is chosen from: • a distance between the geographical positions of the two nodes, • a journey time between the geographical positions of the two knots, • vehicle consumption between the geographical positions of the two nodes, • a difference in level between the geographical positions of the two nodes. • vehicle movement planning includes vehicle configuration with the calculated route. • the construction of the matrix from the graph includes, starting from each node of the graph, a traversal of the entire graph from near to near, sorting the positions to be considered according to the total metric value, without stopping criterion. • each task to be carried out is associated with one or more nodes of the plurality of nodes, and according to which the calculation of the route takes into account a constraint forcing the solver to obtain a route comprising at least one node associated with each of the tasks to be carried out. • the plurality of constraints for calculating the route further comprises an inverse evaluation constraint requiring the solver to evaluate successive nodes in reverse order. • the values of the matrix are integers. • tasks are chosen from observations, delivery or recovery of an object, or energy or fuel resupplies. • the graph represents roads in a geographic area and the nodes are the intersections in that area.
[0018] Another aspect of the invention relates to a vehicle, in particular an autonomous vehicle, configured to carry out the route obtained by the method according to the invention.
[0019] Yet another aspect of the invention relates to a computer program product comprising instructions which, when the program is executed by a computer, cause the latter to implement the method according to the invention.
[0020] Yet another aspect of the invention relates to a computer-readable recording medium comprising instructions which, when executed by a computer, cause the computer to implement the method according to the invention.
[0021] The invention and its various applications will be better understood by reading the following description and examining the accompanying figures. BRIEF DESCRIPTION OF THE FIGURES
[0022] The figures are presented for information purposes only and in no way limit the invention. • [Fig.l] shows a schematic representation of a graph comprising groups of tasks, • [Fig.2] shows a schematic representation of a planning method according to the invention, • [Fig.3] shows a schematic representation of a human-machine interface allowing the method according to the invention to be initiated. DETAILED DESCRIPTION
[0023] Unless otherwise specified, the same element appearing in different figures presents a unique reference.
[0024] In the following, the term “node corresponding to the task” or “node corresponding to a geographical position” means a node comprising task data or respectively location data.
[0025] [Fig.2] shows a schematic representation of a route planning method according to the invention.
[0026] The method 1 shown in [Fig.2] comprises three steps, and makes it possible to plan the route of an autonomous vehicle. An autonomous vehicle is a vehicle capable of moving autonomously, that is to say without the presence or involvement of a human being. Thus, an autonomous vehicle does not necessarily require a pilot or an online teleoperator. This concept of autonomy is applicable for example to a drone, also called "UAV" for "Unmanned Aerial Vehicle", or to a ground vehicle also called "UGV" (Unmanned Ground Vehicle), for example a car, a truck or any other vehicle capable of moving.
[0027] An autonomous vehicle is programmable, that is to say that it is possible to give it instructions by programming. Among these instructions, an autonomous vehicle is capable of following a route. A route is a set of geographical points, for example encoded in the form of geographical coordinates, for example including a latitude and a longitude (also called a navigation point). When following a route, the autonomous vehicle moves to the navigation points forming the route, in an order defined by the route. To configure an autonomous vehicle to follow a route, the autonomous vehicle comprises at least one processor and a memory, the memory comprising instructions which, when executed by the processor, cause the processor to issue commands for movement of the autonomous vehicle to follow the route.The action of providing the navigation points, constituting a coherent route in the memory of the autonomous vehicle, is programming, or configuration, of the autonomous vehicle. The action of providing a coherent route in the memory of the autonomous vehicle is also an action of planning the movement of the autonomous vehicle.
[0028] The method 1 according to the invention makes it possible to plan the movements of an autonomous vehicle in a graph. A graph is a representation comprising a set of nodes and stops connecting at least certain nodes together. A graph makes it possible to represent a real geographical situation, for example a city, a geographical region, a district or any delimited geographical area. Thus, the term "planning the movements of an autonomous vehicle in a graph" means planning the movements of a vehicle in a given geographical area represented by a graph.
[0029] In the present invention, each node of the graph represents a geographic position. The edges between the nodes represent a path that the vehicle can take, i.e., a path included in the geographic area that allows the autonomous vehicle to move from a first geographic position represented by the first node to a second geographic position represented by the second node. All geographic positions represented by the nodes are included in the geographic area represented by the graph.
[0030] The graph within which the method 1 makes it possible to plan the movements is for example the graph represented in [Fig.l]. In this graph, nodes are grouped by tasks, as explained in the prior art. The invention covers the cases in which the central node of the group of nodes is a geographical position to be observed from the external nodes of the group of nodes. For example, for the group comprising task A, the central node is node A and the external nodes are nodes A1 to A3. In this group of nodes corresponding to task A, node A represents a geographical position to be observed and nodes A1 to A3 represent geographical positions making it possible to observe the geographical position represented by node A.
[0031] The graph is obtained from a map, for example a map stored in a file such as an OpenStreetMap® type file. In a first variant of the invention, the method according to the invention comprises a preliminary step 10 of extracting the graph from a geographic map file. This step, like the rest of the method according to the invention, is implemented by computer. The extraction of the graph can be carried out by any means external to the solver. For this, a computer comprises a processor and a memory, the memory comprising instructions which, when executed by the processor, lead the computer to implement the method according to the invention.
[0032] The method 1 according to the invention makes it possible to find and plan a route starting at the departure node D and arriving at the arrival point F and passing through at least one node of each task. The route found by the invention has a minimum value of a metric. The metric is for example the distance, the route found then being the shortest in terms of distance among all possible routes. Alternatively, the metric is for example the time, the route found then being the shortest in terms of time among all possible routes. Alternatively again, the metric is a consumption of the autonomous vehicle, for example a consumption of fuel or electricity, the route found then being the route allowing the autonomous vehicle to consume the least among all possible routes. The metric is predetermined, that is to say it is determined before step 10 or during step 10, for example by an operator or by configuration of a system or a computer implementing the method 1 according to the invention. Several metrics can be evaluated.In particular, a first metric may be minimized while at least one second metric may be constrained by at least one threshold, the route then respecting the minimization of the first metric and the threshold(s) of the second metric(s). The first and second metrics and each of the other metrics, if any, may be linearly independent.
[0033] Depending on the predetermined metric, the edges of the graph are assigned a value. This value is the value of the metric between the two nodes connected by the edge. For example, when the metric is distance, the value of the edge, and therefore the value of the metric, is the distance to be traveled by the vehicle following the path separating the two nodes. When the metric is time, the value of the edge, and therefore the value of the metric, is the time taken by the vehicle following the path separating the two nodes, for example calculated relative to an average speed on this path. When the metric is the consumption of the autonomous vehicle, the value of the edge, and therefore the value of the metric, is the consumption of the vehicle following the path separating the two nodes, for example calculated relative to an average speed on this path and the type of vehicle.When the metric is the elevation difference, the value of the edge, and therefore the value of the metric, is the cumulative elevation difference between the two nodes. These values assigned to the edges are known, for example retrieved from at least one database, calculated from the map file during step 10 and / or carried out by an operator.
[0034] The method 1 according to the invention makes it possible to find a route in a graph as presented previously, that is to say in a graph comprising a starting node, an arrival node, a plurality of nodes some of which are grouped, and edges connecting the nodes, the edges comprising a metric value between the two nodes that they connect.
[0035] The method 1 according to the invention comprises a step 11 of constructing at least one matrix from the graph. Such a matrix comprises, for each node, a value of the predetermined metric with respect to each other node, i.e., a value of the predetermined metric between each node of the graph and each other node of the graph. For example, in the graph of [Fig.l], the matrix includes, on the first row, a metric value between a first observation node of a task, for example, node A1, and each other observation node of a task of the graph, i.e., the starting nodes D and arrival nodes F, and the nodes A2, A3, B1 to B5, and C1 to C4. When the metric is distance, the matrix includes, for example, on the first row, in a first column the distance of node A1 with node A2, in a second column the distance of node A1 with node A3, in a third column the distance of node A1 with node A, in a fourth column the distance of node A1 with the starting node D, etc.The matrix then includes, for example, in the second row, in a first column the distance of a second node A2 to node A1, in a second column the distance of node A2 to node A3, in a third column the distance of node A2 to node A, in a fourth column the distance of node A2 to the starting node D, etc. Alternatively, the columns and rows of the matrix may be reversed. The nodes and their respective metrics with the other nodes of the graph may be in any ordering and shape within the matrix. The matrix may alternatively take the form of several independent vectors, with a vector for each node including a metric value with respect to each of the other nodes.
[0036] To obtain each metric value between each node and the other nodes of the graph, this matrix construction step 11 comprises, starting from each node of the graph, the use of the Dijkstra algorithm, by traversing the entire graph from near to far, by sorting the positions to be considered according to the total metric value from the initial node, without stopping criterion on a target position. For a first node, the calculation of the metric value with all its nearest neighbors, called second nodes, comprises a first iteration of moving the first node to each of its neighbors, reading the metric value from the first node to each of its neighbors, and storing in the matrix, for example in a database, the value of the metric between the first node and each of its neighbors.Then a subsequent iteration involves moving from each second node, called "previous nodes", to each nearest neighbor of the second nodes, called "new nodes". At each iteration, the value of the metric between the first node and the previous node is added to the value of the metric between the previous node and the new node. Thus, for each node, we obtain the set of metric values relative to each other point in the graph, in an ascending or descending order of metric values. When the metric . is the distance, we obtain the set of distances between each node of the graph and each other node of the graph, in ascending or descending order of distances. This technique makes it possible to calculate in a single traversal of the graph the set of metric values between a node of the graph and all the other nodes of the graph. This also makes it possible to detect nodes that are not connected to each other by the graph.
[0037] According to a preferred embodiment, the metric values included in the matrix are all integers, for example rounded up or down. This allows a considerable saving of time, reducing the execution time of the next route calculation step 12, during tests carried out by the inventors, reducing the time taken by a Gecode® solver to carry out step 12 from 10 seconds to 2 seconds. This is enabled by the use of integers instead of floats as variable types in the solver to reduce the search domain of the solver.
[0038] The method 1 according to the invention comprises, after the matrix construction step, a step 12 of calculating a route. This step of calculating a route is carried out by a solver. A solver is a computer program configured to solve a posed mathematical problem. Such a solver is for example the Gecode® solver. The use of a solver is part of the present invention. The operation of the solver is not part of the present invention. Thus, the present invention can be implemented by any solver making it possible to solve a problem programmed by constraints. For the calculation of the route, the solver is based on the matrix(es) constructed in step 11, and on constraints. The constraints are predefined and are at the heart of the invention.The invention uses constraint programming to solve the difficult task of finding a route minimizing the predetermined metric while performing each task of the graph at least once and starting from the starting node D and arriving at the arrival node F. Indeed, this problem can be transformed into a problem known as "Non-Polynomial Deterministic", NP and for which the computation time is not polynomial in the worst case if we use a deterministic algorithm, of the generation-evaluation type. The computation of the route in step 12 is efficient thanks to the chosen constraints. A constraint is one or more line(s) of code defining a criterion for solving the problem. The solver is then constrained in its resolution of the problem by these constraints that it takes as input, with the constructed matrix(s).When the solver is looking for a solution to the problem posed to it, the solver retains certain nodes of the graph and does not retain certain other nodes. This is because the route calculated by the solver does not pass through all the nodes of the graph. Constraints can, for example, be expressed in the MiniZinc® programming language and tool, or in any other constraint programming language. The chosen constraints will be described below.
[0039] A first constraint is a constraint called a "subcircuit". This constraint forces the solver to calculate as a route a Hamiltonian circuit (or Hamiltonian "path"), in a subgraph, for the retained nodes taking the form of a list of successive nodes and, for each node not retained in the route, to create an entry in the list for which the successive node of the non-retained node is itself. Indeed, the solver will look for a solution of an imposed form. This form is imposed by this constraint as a list of successive nodes, also called "successors". The efficient resolution of this constraint is documented in the state of the art and in the libraries of modern solvers. The list of successive nodes can for example be in the form of an array, for which the value of a cell in the array indicates the index, in the array, of the successor.Thus, for an array x, x[i] = j indicates that node j is the successor of node i. This "sub-circuit" constraint also requires finding a Hamiltonian circuit for the selected nodes, that is, a circuit passing through each selected node only once. In trying to solve the problem, the solver will test several combinations to obtain the final route. It will not retain certain combinations because their metric values are, for example, too high. When, in obtaining a final combination, certain nodes are not used, for example because for the same task A a node A1 has already been selected, nodes A2 and A3 are not retained by the solver. The "sub-circuit" constraint then requires that, in the list of successors created by the solver, node A2 has itself as successor.Similarly, the "sub-circuit" constraint requires that, in the successor list created by the solver, node A3 has itself as a successor. Thus, for an array x, x[i] = i indicates that node i is not in the circuit. Such a constraint can be written, in the MiniZinc® language, as follows: . • constraint subcircuit(succ); with suce the list of successors.
[0040] A second constraint is a constraint called "all different" or "alldifferent" in English, forcing the solver to include in the route and therefore in the list of successive nodes only different nodes. This ensures that the route found does not create an endless loop and that each point of the mission (A1, A2, A3, B1, B2, B3, ...) is used at most once. The points of the mission are the points through which the mission must pass, while the graph can include several nodes for which it is possible to achieve the same point of the mission. Such a constraint can be written, in the MiniZinc® language, as follows: • constraint alldifferent(succ); with the list of successors.
[0041] A third constraint is a constraint that forces the solver to find a route that passes at least once through each task. Such a constraint can be written, in the MiniZinc® language, as follows:
[0042] constraint forall(obs in obs_unique_list)(
[0043] exists(i in 3..nb_waypoints) (is_used[i] A obs_list[i] == obs)
[0044] );
[0045] with obs_unique_list the list of unique tasks, for example A, B and C in the graph of [Fig.l], with A the operator "AND", with nb_waypoints the total number of nodes, usable by the solver, with is_used a list indicating whether the associated node is used in the final route found by the solver, with obs_list the list of all tasks, which must therefore be carried out in the final route by the solver. To speed up the solution search, a technique called "reification" is used here. For this, the additional boolean variable "is_used" for "is used", associated with each node that the solver must find, is added. This constraint indicates that, if "is_used" is false, then the successor of the node is itself.The constraint here searches from the third index of the list "obs_unique_list" because indices 1 and 2 are those of the start and end points which are not part of a group of nodes associated with an observation.
[0046] A fourth constraint is a constraint requiring the solver to find a route passing at least through the starting node and the arrival node. Such a constraint can be written, in the MiniZinc® language, as follows:
[0047] constraint succ[end_id] == start_id;
[0048] A minimization function, also called "objective cost," forces the solver to iteratively minimize the sum of the metric values between the nodes selected for the route. This constitutes the main loop of a separation-evaluation algorithm implemented in most modern solvers, such as MiniZinc® or GeCode®. The calculation of this sum can be written, in the MiniZinc® language, as follows:
[0049] When the metric is distance: • constraint distance_sum = sum(i in l..nb_waypoints) (dist_matrix[i, succ[i]]); with distance_sum the sum of distances, with sum a sum function, with nb_waypoints the number of retained nodes, with dist_matrix the matrix of metrics, with suce the list of successors.
[0050] When the metric is time: • constraint time_sum = sum(i in l..nb_waypoints) (time_matrix[i, succ[i]]);. With time_sum the sum of times, with sum a sum function, with nb_waypoints the number of retained nodes, with time_matrix the matrix of metrics, with suce the list of successors.
[0051] In a preferred embodiment, each node of a group of nodes of the plurality of nodes of the graph corresponds to the same task, and step 12 of calculating the route takes into account a constraint forcing the solver to obtain a route comprising at least one node of each group of nodes corresponding to the same task. The variable “is_used” of the third constraint can then be used to verify that at least one node of each group is used.
[0052] In a preferred embodiment compatible with the previously described embodiments, an additional constraint is used. This constraint is an inverse evaluation constraint forcing the solver to evaluate the list of successive nodes in inverse order. By "evaluating the list of successive nodes" is meant the fact that the solver fills the list of successive nodes. An inverse order is an order in which the solver fills the list starting from the end of the list and arriving at the beginning of the list last. Such a constraint can be written, in the MiniZinc® language, as follows: • constraint succ_inv = reverse(succ); with sucks the successor list, and reverses an array reversal function. This constraint is intended to guide the solver's search and speed up the search
[0053] To implement the invention, the solver is asked to calculate a route minimizing at least one metric. In MiniZinc® language, for distance minimization, and with an inverted successor list succ_inv and a search on integers, this request is formalized as follows:
[0054] solve:: int_search(succ_inv, input_order, indomain_max, completed)
[0055] minimize distance_sum;
[0056] with input_order an indication to follow the order of the successor list, indomain_max the indication to assign to a variable its maximum value in the search domain, completed an indication to perform an exhaustive search, and distance_sum the sum of the distances between the nodes of the route.
[0057] The invention makes it possible to find a route, i.e. a sequence of navigation points, passing at least once through each desired task, i.e. allowing the autonomous vehicle to carry out each task at least once during its route, while moving from a starting point D to an arrival point F by having a route with a minimized metric value. This route found, in the form of a list of successor navigation points, is then planned in the autonomous vehicle at a step 13. This planning includes the configuration of the autonomous vehicle directly by the computer which implements the method according to the invention and which is capable of communicating, for example via a network, with the autonomous vehicle. The configuration of the autonomous vehicle has been described previously. Alternatively, the computer which implements the method is embedded in the autonomous vehicle. This allows the vehicle, then including the invention, to find the route to follow itself, without being connected to the network, from the moment it has retrieved the graph of the routes and the positions of the objectives of its mission.
[0058] To use the invention, an operator can use a human-machine interface such as that shown in [Fig. 3]. The human-machine interface shown in [Fig. 3] is for example a screen, displaying a geographical map on which points are superimposed. These geographical points are represented in a graph by nodes, and the paths between these points are edges of the graph. An operator can then select, in the human-machine interface, a metric to minimize, a set of tasks to perform by selecting for example tasks A, B and C, and the starting and arrival points, for example points D and F respectively. A computer will then implement the method according to the invention to calculate an optimal route and to plan the route in an autonomous vehicle.
Claims
Claims
1. A computer-implemented method (1) for planning movement of an autonomous vehicle in a given geographical area represented by a graph (G), the graph (G) comprising a plurality of nodes (A1,...,A3, B1,...,B5, C1,...,C4), each node of the plurality of nodes (A1,...,A3, B1,...,B5, C1,...,C4) representing a geographical position, at least one of the nodes of the plurality of nodes (A1,...,A3, B1,...,B5, C1,...,C4) being associated with a task (A, B, C) to be performed by the autonomous vehicle, the plurality of nodes (A1,...,A3, B1,...,B5, C1,...,C4) comprising a departure node (D) and an arrival node (F), the planning method (1) comprising at least the steps of: Construction (11) of at least one matrix from the graph (G), the matrix comprising, for each node of the plurality of nodes (Al,...,A3, B1,...,B5, C1,...,C4) of the graph (G), a value of a predetermined metric for each other node of the plurality of nodes (Al,...,A3, B1,...,B5,C1,...,C4), Calculation (12) of a route by a solver, the solver retaining in the route nodes retained from among the plurality of nodes of the graph (A1,...,A3, B1,...,B5, Cl,...,C4), the calculation being carried out from the matrix and a plurality of constraints comprising at least: • a first constraint forcing the solver to calculate as a route a Hamiltonian path in a sub-graph for the retained nodes taking the form of a list of successive nodes and, for each node not retained in the route, to create an entry in the list for which the successive node of the non-retained node is itself, • a second constraint forcing the solver to retain only different nodes in the route, • a third constraint requiring the solver to find a route passing at least once through a node associated with each task (A, B, C), with an order of passage between the tasks (A, B, C) determined by the solver and starting at the departure node (D) and arriving at the arrival node (F), • a minimization function forcing the solver to minimize the sum of the metric values between the nodes retained for the route. Planning (13) the movement of the autonomous vehicle according to the calculated route including the configuration (13) of the autonomous vehicle with the calculated route.
2. Method (1) according to the preceding claim according to which the metric between two nodes of the plurality of nodes is chosen from: - a distance between the geographical positions of the two nodes, - a journey time between the geographical positions of the two nodes, - a consumption of the autonomous vehicle between the geographical positions of the two nodes, - a difference in altitude between the geographical positions of the two nodes.
3. Method (1) according to any one of the preceding claims according to which the construction of the matrix from the graph (G) comprises, starting from each node of the graph (G), a traversal of the entire graph (G) from near to far, sorting positions to be considered according to a total metric value, without stopping criterion.
4. Method (1) according to any one of the preceding claims according to which each task (A, B, C) to be carried out is associated with one or more nodes of the plurality of nodes (A1,...,A3, B1,...,B5, Cl,...,C4), and according to which the calculation of the route takes into account a constraint forcing the solver to obtain a route comprising at least one node associated with each task (A, B, C) to be carried out.
5. A method (1) according to any preceding claim wherein the plurality of constraints for route calculation further comprises an inverse evaluation constraint constraining the solver to evaluate successive nodes in reverse order.
6. Method (1) according to any one of the preceding claims wherein the values of the matrix are integers.
7. Method (1) according to any one of the preceding claims according to which the tasks are chosen from observations, delivery or recovery of an object, or refueling or energy replenishment.
8. Method (1) according to any one of the preceding claims according to which the graph (G) represents roads of a geographical area and the nodes are the intersections in this area.
9. Autonomous vehicle configured to move along the route planned by the method (1) according to any one of the preceding claims.
10. A computer program product comprising instructions which, when the program is executed by a computer, cause the latter to implement the method according to any one of claims 1 to 8.
11. A computer-readable recording medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of any one of claims 1 to 8.