-
Hello, I am currently a Ph.D. student working in trajectory planning for aerial robots. Concretely, the goal of the optimisation is to pass one (the main one is related to my topic of research) or several objectives (other could be curve regularisation, time minimisation, energy minimisation, and so forth), to design a trajectory that is to be followed by a quadcopter UAV. The reference trajectories are defined by piecewise Béziers curves, where each piece is defined by the start and end waypoints, and the time of each waypoint. Each waypoint defines a 4D output (x, y, z, yaw) in position, speed, and acceleration. From this, two successive waypoints are enough to define a piece. The optimisation is also subject to constraints that are specific to the system:
Before, I was using the algorithm COBYLA from NLOPT, but it seems that the optimizer fails to do what I want, thus I am now trying to switch to pymoo which seems very promising for the problem I try to solve. Currently, the function I use for the optimisation is the following, where the constraints (ieq and eq) are each defined by a wrapper function that outputs the flattened constraints: '''
''' For now, my problem is that I have an error when trying to start the optimisation, with the following error message: Does someone have an hint on what is going on ? I can't seem to understand why the concatenation is not correct, but I probably misunderstand how to correctly write the constraints for pymoo. Thank you for your time, best, Pascal |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hello, To whoever would be reading this post, just in case you come across the same problem, I have been able to find a solution, by redefining the evaluate function of the functional problem, as follows: '''
''' Now, both the inequality and equality constraints are changed to a flat vector before concatenation, and are therefore properly handled by the algorithm. Pascal |
Beta Was this translation helpful? Give feedback.
Hello,
To whoever would be reading this post, just in case you come across the same problem, I have been able to find a solution, by redefining the evaluate function of the functional problem, as follows:
'''
class SensitivityProblem(FunctionalProblem):