1. 硬约束 & 软约束
通常轨迹优化问题通常会有目标函数,然后我们会为决策变量设置一些约束条件,这些约束条件缩小了可行域的范围,约束条件会存在以下几种可能性:
(1)约束合适,简化了目标函数的求解,去掉了鞍点留下来最值点(正常约束)
(2)约束过多,发现不可能满足所有的约束条件,可行域为空集(过约束)
(3)约束不足,发现可行域太大,搜索算法很费时(欠约束)
对于后两种情况,欠约束一般可以增加约束,过约束怎么办呢?
最直接的想法是:我去掉多余的约束不就行啦! 然后问题来了:去掉哪个?去掉之后不满足可行解怎么办?
针对上面的问题,我们先讨论一下两种约束:
Ø硬约束(hard-constraint):在任何时候都“必须”满足的约束(比方说:动力学,关节硬限位等)
Ø软约束(soft-constraint):一种尽可能满足的“希望”(比方说:关节尽量偏离限位,机器人尽量偏离障碍物等)
换言之,硬约束是严格满足的约束,软约束并不是严格满足而是表达一种“优先”和“偏好”
太抽象了,我们先举个例子吧:《矩阵论》求解矩阵的广义逆
从下图可以看出:
(1)有解,我们如何在解中寻找偏好(软约束)
(2)无解,我们如何把硬约束变为软约束
(3)软约束的一种表达——最小二乘,偏好的一种表达——最小范数
求解硬约束和软约束的方法如下所示:
2. 硬约束
- 首先是简化模型,此处盗用高飞老师深蓝学院的一点东西:可以将NLP问题转化为凸优化问题,因为有如下优点:
(1) 局部最优解的全局特性 (2) 存在高效的求解算法
而凸优化问题中又有几个特例:LP和QP
注意:QP问题的二次型系数的对称正定性
既然谈到了凸优化的高效求解算法,那么接着给出求解优化问题的计算机工具:
- 其次是启发式算法与搜索算法
这块太偏数值优化和现代优化了,我当初是看这两本书的,大家可以参考一下,不多介绍
- 接下来是上一节的Lagrange和Hamilton
3. 软约束
- 松弛条件与部分约束
这一块其实水很深,简单总结了一下,具体可以参考文献5
- 其次是罚函数
可以认为硬约束和软约束都是罚函数,只不过思路不一致
硬约束是通过 Lagrange 乘子保证约束严格满足
软约束是通过权重和范数保证约束优先满足(但是,软约束会存在无约束问题的病态性的问题)
软约束的实现手段一般是通过范数来实现的
而罚函数又分为外点罚函数和内点罚函数:
外点罚函数:最优解序列从可行域外部逼近约束最优化问题的最优解
内点罚函数:最优解序列从可行解内部逼近约束最优化问题的最优解,适宜于不等式约束
外点罚函数如上,内点罚函数如下:
到此为止,大家可以考虑一下一些软约束的实现:如关节极限,障碍物势函数等
- 最后,也是最重要的:任务优先级
重要的两句话:
任务优先级原则:低任务优先级的执行不应该干扰高任务优先级的执行
任务优先级算法:任务优先级分层,将低优先级任务的解投影到高优先级任务的零空间
具体的例子如下:
~~~祝大家牛年大吉,新年里工作顺顺利利,工资涨涨涨涨;学业进进步步,paper发发发发!
Reference
- 高飞. 移动机器人中的运动规划. 深蓝学院. 2019.
- Bemporad. Model Preditive Control. 2020.
- 郁磊. MATLAB智能算法30个案例分析(第2版). 北京航空航天大学出版社.
- 高立. 数值最优化方法. 北京大学出版社.
- Bartak R. Modelling soft constraints: A survey[J]. Neural Network World, 2002, 12(5): 421-432
- Flacco F, De Luca A, Khatib O. Control of redundant robots under hard joint constraints: Saturation in the null space[J]. IEEE Transactions on Robotics, 2015, 31(3): 637-654.
评论(0)
您还未登录,请登录后发表或查看评论