轨迹优化之
轨迹和控制:对单个关节的控制可能无法实现整体的最有优运动。
- model based
- Differential Dynamic Programming
- Direct Collocation
- Planning As Interface
legged robots legged locomotion
动力学
非线性系统的线性化
选择泰勒展开的参考点为 $x_{0}, u_{0}$ 对于函数 $f(x, u)$, 在点 $x_{0}, u_{0}$ 处 通过一阶泰勒展开获得它的线性化函数为 如果我们定义 $x=x_{0}+\delta x$ 和 $u=u_{0}+\delta u$, 则 $\dot{x}=\dot{x}{0}+\delta \dot{x}$,由此可以 获得 如果我们把 $\delta x=x-x\right|}$ 当做我们要研究的状态 $x, \delta u=u-u_{0}$ 为 控制量 $u$, 然后令 $A=\left.\frac{\partial f}{\partial x{x=x\right|}}$ 且 $B=\left.\frac{\partial f}{\partial u{u=u$, 则 }
二次型调节器
LQR: Linear Quadratic Regulator
如果所研究的系统是线性的,且性能指标为状态变量和控制变量的二次型函数,则最优控制问题称为线性二次型问题。 而LQR是指求解线性二次型问题常用的方法。
线性定常连续系统:
一般连续时间系统:
线性时变连续系统:
令$x$为误差,$w$为误差项系数,令$Q=w_x^Tw_x, R=w_u^Tw_u$为半正定矩阵,也是误差系数.
系统稳定时,$u(t)=-Kx(t), \dot{x}(t)=(A-B K) x(t)$,带入代价函数得到:
我们要找到这个积分的原函数, 为了找到 $K$, 假设存在一个常量矩阵 $P$, 使得 对式 $(8)$ 两边取微分 将状态方程代入 $(9):$ 这个式子要成立的话, 括号里的项必须为恒为零。
进一步化简: 为了约掉K,取 $K=R^{-1} B^{T} P$, 代入上式得:
上式为Riccati方程,解得P。最后根据反馈矩阵 $K=R^{-1}B^TP$得到K
- 选择参数矩阵Q,R
- 求解Riccati方程得到矩阵P
- 根据公式计算K
求解
离散化以后的整个问题变成 我们从 $S[N]=Q$ 开始反向求解 Riccati difference equation 然后每一个时刻的最优控制为
Differential Dynamic Programming
LQR是将状态调节到0,而轨迹跟踪是系统误差为0。
LQR是在 $\delta x \neq 0$, 期望通过控制量在一定时间以后使得$\delta x = 0$。另一个类似的问题是反过来,一开始 $\delta x =0$, 期望在一定时间以后使得 $\delta x $为某一常量。
则优化问题变为:
其中.$\delta x_{d}=x_{d}-x_{0}, Q_{f}$ 是远大于$Q$的正定矩阵. $A,B$在不同的位置需要局部线性化。
lqr 价值函数角度
- backward recursion
for $t=T$ to 1 :
ilqr
backward
因子图
- Factor graphs and GTSAM: A hands-on introduction
- Factor graphs for robot perception.
dynamics with contact
contact invariant optimization
shooting 和collocation方法能比较方便应用于无碰撞的控制过程。而对于有接触的有碰撞过程则不适用,比如机械臂和人形机器人的交互。碰撞没有梯度。
- paper
- Discovery of Complex Behaviors through Contact-Invariant Optimization
- Contact-Invariant Optimization for Hand Manipulation