是否可以在真实机器人上在线使用这种gekko MPC 方法?

Is it possible to use this gekko MPC method online on a real robot?

我想在真实的机器人上做一些轨迹跟踪,我想用MPC,所以我找到了这个gekko。我可以模拟我的机器人和其他东西,但是否可以实时使用它,因为我发现计算最佳解决方案需要一些时间,而且我不太确定如何明智地编码,如果你只需获取第一个输入并将其提供给真实系统,然后使用传感器读数更新状态值,然后再次使用 m.solve() 函数,依此类推。

提前致谢

是的,Gekko 确实可以进行实时控制,但您需要注意一些事项:

  • 周期时间:应用程序必须读取传感器,计算模型更新(估计),优化未来的移动计划(控制),并实施移动计划在规定的周期时间内。如果您的循环时间快于 10 Hz,您可能需要查看 LQR 控制器或其他更快的方法。
  • 模型形式:非线性模型的计算时间会更长,或者可能不会收敛。线性模型通常用于许多行业,因为它快速可靠。
  • 水平长度:您需要足够长的水平长度来预测影响当前移动的未来约束
  • 水平分辨率:控制器第一步需要与循环时间一致。未来的预测步骤可以是任何步长。
  • 本地解决: 如果您在 Raspberry Pi 等嵌入式硬件上实现 MPC,本地解决可能比远程解决慢。您可以使用远程解决到 public 服务器 (remote=True),在 Windows 或 Linux (remote=True server='http://10.0.0.10') 中设置您自己的本地服务器,否则在嵌入式硬件上本地求解 (remote=False)。您在创建 gekko 对象 (m=GEKKO(remote=False)) 时设置 remoteserver

有很多实时MPC代码和一个应用Temperature Control Lab (TCLab) on the course for Machine Learning and Dynamic Optimization。下面是 MPC 的实际应用。

这是设备: