高博SLAM14讲ceres实战问题调试记录

        最近在学高博的14讲,跟着教程的实战内容自己敲代码,到ceres实战的部分遇到了问题。程序是用ceres解决一个最小二乘问题,来拟合曲线,程序编译运行都通过了,但是优化结果与预期有很大差异,如图:

 教程中优化结果应该接近a = 1, b = 2, c = 1,而我的结果是2 -1 1。

        于是用gdb调试程序,发现数据点的x值居然全部是0!

 

         于是看x生成的代码,发现问题:i是整形,100是整形,商会被强转为整形,于是得到一堆0。改为 i / 100.0,这时商是double类型,最后运行成功,结果正确。

         这次的错误虽然很基本,但是由此得到教训,程序出问题要勤调试,今后要多多提升自己debug能力。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值