Task-space control (Based on WPI RBE 502 course)

1. 基本:

  • 系统的dynamics表示为:
^dynamics
  • 问题的本质:存在两组系统参数。一组是你对系统的建模(model,假设这里记为),另一组是实际的环境(environment,假设这里记为),理想情况是二者完全一致。控制是用从环境中采样(sample)得到得状态(state,如等),带入模型,求出控制系统时为达到目标应给的输入(关节的输出,etc.)。仿真的意义在于将这个给仿真所处的环境,由得出在环境中的实际输出(加速度 ,etc.)。 特殊情况是两者真的完全一致,那么此时为特例。 ^special-case

2. Task-space control与joint-space control的区别

  • 和Joint-space的区别:e.g. 系统是一个平面上的二连杆,。在给出系统控制量的时候,task-space control的决定因素是end-effector position (,etc.),joint-space control的决定因素是每个joint的状态()。在PID control时,前者比较当前实际end-effector position和desire的差值(error in task-space),后者比较当前实际joint angle和desire的差值(error in joint-space)。但不管用哪种方式控制,系统所能接受的控制量均为施加在每个joint上的扭矩,直接反应在上。

2.1. 带gravity compensation的PD控制:

  • 由PD control:(set point tracking,,追踪到一点,停止)。是系统的Jacobian matrix(forward kinematic求偏导)。正定(why?)。直接依靠error in task-space 决定。如果满秩(没有额外的自由度),可以达到set point tracking的条件(why?)。

2.2. 用inverse dynamics的PD控制:

  • ,由系统dynamics:求导可得用Jacobian直接对求导得到)。可以变换为 对PD control而言,,得出的可带入上式进行替换,再带入eq1,得到:
  • 即为给系统的输入扭矩(真正可以控制的量)。

2.3. 对比:

ctrl method驱动公式
PD control law with gravity compensation
inverse dynamics

2.4. 流程:

  1. 获取可直接得到的系统状态(来自采样,如)e.g.,
  2. 准备对应状态下可间接得出的系统状态(计算),如end-effector
  3. 结合其它控制量及PID参数,如(如预期加速度),计算控制输入
  4. 如果使用的是Matlab ode45进行仿真,计算给定后系统产生的实际。此时
  5. Ode45将利用(由ode45自行决定)和上一状态计算出系统下一时刻的状态,并带入第一步重新开始迭代

2.5. 说明:

  • 在编程时由计算出后又代入,此时系统实际,只是因为上述原因,恰好相等。