嵌入式需要使用C/C++集成,开发使用Matlab,然后使用 coder 生成函数‘referencePathFrenet’ 生成了对应的C/C++代码,然而C代码含有大量超大数组导致嵌入式无法集成:
分析Matlab 源代码发现是'dclothoid.m' 里面路径插值的时候默认使用了10次迭代,导致数组过大:
解决方法:
在'clothoidG2fitCourse.m'里面找到调用'dclothoid'处,手动输入迭代次数,这里写了6次。注意要同步修改上面up值,计算方法我写了注释。
结果:
数组大幅缩小,满足嵌入式集成要求。Done!