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

7 ビュー (過去 30 日間)
Joost
Joost 2021 年 10 月 11 日
コメント済み: Joost 2021 年 10 月 26 日
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

採用された回答

Darshan Ramakant Bhat
Darshan Ramakant Bhat 2021 年 10 月 11 日
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.

その他の回答 (1 件)

Elad Kivelevitch
Elad Kivelevitch 2021 年 10 月 11 日
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 件のコメント
Elad Kivelevitch
Elad Kivelevitch 2021 年 10 月 11 日
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 2021 年 10 月 26 日
You are most welcome, your answers help us as well.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by