原链接: https://community.bwbot.org/topic/92
运行测试平台:小强ROS机器人
曲面方程(可以是高维)的参数通常都满足这样一个条件
参数同时放大一个倍数,曲面方程不变,以平面方程为例:
A*x+B*y+C*z+D=0
让A、B 、C 、D同时放大两倍,原方程表示的平面显然不变
用多个点来拟合一个曲面时,因为上述性质,会导致参数空间存在一个稳定的平凡解,用迭代法求解时,算法容易陷入这个无意义的平凡解,因而拟合失败。
平凡解:所有参数为零
规避这个平凡解的办法是,将平凡解从参数空间中消除,通常的实现方式是修改算法,增加参数限制条件。
本文要介绍的一个小技巧是:
直接固定一个参数,因为参数的绝对值没有意义,相对大小才是有意义的,所以可以直接将一个参数固定为1
这个技巧需要注意的地方是:参数有多个,我们需要固定的参数的真实值不能为零(零值没有比值,所以不能用)。在实际运用时,我们虽然不知道参数的真实值(知道了就不求了),但可以确定某个参数肯定不能为零,因此固定参数的选择还是很容易实现的,本方法的可行性也就得到了保障。