Is it possible to make MATLAB Coder generate C++ code with tunable parameters?

7 vues (au cours des 30 derniers jours)
Hello,
We are using the MATLAB Coder to generate C++ code of the TOMHT algorithm from the Sensor Fusion and Tracking Toolbox. However, most parameters are labeled as non-tunable in MATLAB, and because of this, these parameters are lost in the C++ code after the code generation and are hard-coded into values.
We would like to be able to use different parameter configurations for different projects within our company. It would be very cumbersome to have to do a new code generation for each different parameter configuration. Is there any way we can still change these parameters outside of Matlab? We do not mean to change the parameters while the tracker is running, but we do want to be able to configure different parameter settings, based on for instance the available computing power or the amount of radars in the project.
Kind Regards,
Joost

Réponse acceptée

Darshan Ramakant Bhat
Darshan Ramakant Bhat le 11 Oct 2021
Unfortunately I dont think it is possible right now with MATLAB Coder. Non-tunable properties are treated as compile time constants in MATLAB Coder and internal optimizations can constand fold this value.
I have notified this as a request to the development team.

Plus de réponses (1)

Elad Kivelevitch
Elad Kivelevitch le 11 Oct 2021
Joost,
If you could please list which parameters you would like to make tunable, we can consider whether it would be possible to make them tunable given how the tracker is set up.
Thanks,
Elad
  4 commentaires
Elad Kivelevitch
Elad Kivelevitch le 11 Oct 2021
To elaborate more on my previous answer:
When you generate code for an object, MATLAB Coder optimizes certain things like memory allocation and code paths that are used by the generated code. Therefore, certain things like the internal memory of the tracker need to be fully defined at compile time, which requires you to modify the generated code if you change them.
The following properties are involved in determining the memory allocated for the tracker and its internal components in code generation. Therefore, they must be nontunable:
  • MaxNumTracks
  • MaxNumHypotheses
  • MaxNumTrackBranches
  • MaxNumHistoryScans
The other properties (in trackerTOMHT) are currently nontunable but in a future release we may be able to make tunable because they are not directly involved in memory allocation:
  • AssignmentThreshold (all 4 parameters)
  • ConfirmationThreshold
  • DeletionThreshold
  • DetectionProbability
  • FalseAlarmRate
  • MinBranchProbability
Your answer helps us with understanding what is important to you, and I truly appreciate it.
Joost
Joost le 26 Oct 2021
You are most welcome, your answers help us as well.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by