引言
在当今机器人技术迅速发展的背景下,优化问题求解成为了该领域的关键技能之一。本系列旨在帮助读者掌握解决一般非凸、光滑、非光滑、有约束、无约束,以及具有特殊结构的凸问题和非凸问题的方法。
一、参考书籍推荐
- 《最优化:建模、算法与理论》 北大的文再文团队编著,中文版,提供很多算法的理论和具体流程,适合入门。
- 《数值优化》(Numerical Optimization) 关注程序中的浮点数表示引发的稳健性数值问题,给出工程实践上比较有用的技巧。
- 《凸优化教程》(Lectures on Convex Optimization) 聚焦在凸优化理论,从光滑到非光滑到结构优化,思路清晰。
- 《现代凸优化分析、算法和工程应用教程》(LECTURES ON MODERN CONVEX OPTIMIZATION ANALYSIS, ALGORITHMS, AND ENGINEERING APPLICATIONS) 针对一类特殊的凸优化——锥优化,对锥规划以及多项式时间复杂度的内敛算法都有比较好的整体分析和应用。
二、数值优化的定义与组成
数值优化是机器人技术中一种重要的算法,它通过数学模型和算法来找到使机器人系统性能最优的参数值。这种优化通常涉及最小化目标函数,该函数反映了机器人性能的某些度量,如能耗、轨迹精度、响应时间等。
2.1 数值优化组成部分
数学优化一般由几个部分组成: min f(x) s.t. g(x) ≤ 0 h(x) = 0
(1) 优化变量
x = (x_1, ..., x_n) ∈ R^n x 是 n 维的向量,称为优化变量(Optimization Variables)。
(2) 目标函数
f : R^n → R 评价 x 是否更优,要看目标函数(objective function) f 为 x 赋予了值,值是越小越好的。
(3) 不等式约束
g : R^n → R^m_g 比如 g(x) = (x_1 - 1)^2 + x_2^2 - 1 ≤ 0 描述的就是以 (1, 0) 为圆心,1 为半径的圆形区域。
(4) 等式约束
h : R^n → R^m_h 比如在三维空间的曲面上,所寻找的 x 要在曲面上滑动,它不应该在曲面之外,所以曲面可以用等式 h 表述。
定义最优值 x*,要满足所有约束,在感兴趣的区域内,所有满足约束的 x,称作可行解(Feasible Solution)。 最优解是可行解中具有最低目标函数 f(x) 值的解的集合。
2.2 数值优化前提假设
在机器人数值优化中,假设目标函数一定满足以下两点:
- 假设 1:目标函数具有下界,即 f(x) ≥ α。
- 假设 2:目标函数具有有界子级集,即当目标函数 f(x) ≤ β 时,x 有界。
对于有约束优化的情况,即 g(x) 和 h(x) 存在时,定义 f~(x) = { f(x) 满足约束时; +∞ 不满足约束时 }。则在有约束优化或无约束优化时,f~(x) 作为目标函数是有下界且具有有界子级集。
三、数值优化在机器人中的应用
3.1 平滑与映射:非线性最小二乘法
很多时候 SLAM 同步定位与地图构建里面的很多问题,要恢复出整个位置的轨迹,都可以写为非线性函数 min ∑ f_i^2(x),其中,约束条件为 l_x ≤ x ≤ u_x。
3.2 轨迹规划:非线性问题
在轨迹规划或者运动规划里通常会解非线性问题。只要 f(x), g(x), h(x) 都是非性的,它就是非线性问题,需要把火箭的一系列的状态 x 随着时间变化的轨迹优化出来。
3.3 点云配置:半定规划
在点云配置领域,要找最优的 R 和 T,其中,R 为旋转(rotation),T 为平移(translating),使得两帧点云中间的距离度量尽可能的最小。因为 R、T 有特殊的性质,可以通过牺牲精度来把对应的问题变成半定规划(SDP)。
3.4 时间最优路径参数化:二阶锥规划
在多关节机器人、无人车、无人机、无人船里都有时间最优路径参数化的问题。给定连续可导的路径 A 到 B,一定要严格按照路径走,要在满足机器人驱动限制的前提下,使其最快地从 A 到 B 沿这条路径完成路径跟踪。这样的问题可以变成一类二阶锥规划(SOCP) 问题。
四、数值优化基础
要掌握这一领域的数值优化,需要以下基础知识:


