Is it possible to use PRM and sequentially findpath function in Simulink?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ines Vujkovac
le 2 Oct 2019
Commenté : Ines Vujkovac
le 4 Oct 2019
With an existing robotics toolbox, creating a BinaryOccupancyGrid and PRM doesn't actually define said targets, in Simulink function blok MATLAB2019a.
0 commentaires
Réponse acceptée
Sebastian Castro
le 3 Oct 2019
It's doable in the sense that you can put the code in a MATLAB Function block (or as a MATLAB Function in Stateflow). It has its peculiarities to get it working, like passing in a fixed-size occupancy matrix as an output, hard-coding the resolution, and so on.
In the R2019b release, the Plan Path for a Differential Drive Robot in Simulink example should be quite relevant.
Now, if you don't need it to be able to generate C code, you can wrap the whole thing as an extrinsic function and get around all the issues above (but it will be slower and desktop only).
- Sebastian
3 commentaires
Sebastian Castro
le 4 Oct 2019
Modifié(e) : Sebastian Castro
le 4 Oct 2019
So Simulink today only generates C code, and not "real" C++ -- therefore the BinaryOccupancyGrid class doesn't get generated as an actual class. All its methods and properties get hard-coded in the generate code in one way or another.
For the occupancy matrix you have to pass in, you can certainly designate that as a tunable parameter so it shows up in a traceable place in the code. For example,
The findpath function is actually a method of the PRM class, so similarly it won't become its own variable or anything... but you can maybe control the scoping of functions in the generated code by architecting your model in such a way that all the path planning stuff is in a separate function. For example,
- Sebastian
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Code Generation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!