Simulink+Webots基于MPC的移动机器人轨迹追踪仿真(1)

Simulink+Webots基于MPC的移动机器人轨迹追踪仿真(1)

最近在B站看到了一个使用Simulink+Webots对机器人联合仿真的视频。Simulink有许多控制箱方便用户使用,Webots作为在移动机器人仿真十分方便的软件,两者结合开发意义很大,所以最近摸索实现了使用MPC对移动机器人进行轨迹追踪的仿真。
我的思路是先在Simulink上实现使用MPC的移动机器人轨迹追踪,然后搭建Webots与MATLAB的联合仿真平台,最后再将两者结合起来。

基于mpc的移动机器人轨迹追踪

以前做过复杂一些的使用MPC移动机器人轨迹追踪,这里先使用简单的模型验证可行性即可。正好看到这位老铁的教程,所以复现了这个模型。
基于模型预测(MPC)的无人驾驶汽车轨迹跟踪
Simulink模型如下:
Simulink+Webots基于MPC的移动机器人轨迹追踪仿真(1)_第1张图片
Simulink+Webots基于MPC的移动机器人轨迹追踪仿真(1)_第2张图片
使用的MPC控制器是《无人驾驶车辆模型预测控制》一书中第四章中4_4_3的轨迹追踪控制器。
在复现上面例程的过程中,遇到如下问题。

新版MATLAB不再提供有效集法,需改为内点法。

在原版例程控制器中使用了quadrop函数的有效集法。
有效集
我是用的MATLAB版本是2019a,在例程中的quadrop函数不再提供有效集法。运行程序会报如下错误
有效集错误
我尝试修改为interior-point-convex和trust-region-reflective后还是会报错,所以直接将quadrop函数直接替换为2011的版本。quadrop函数2011版的源码可以参考下面的链接
carsim与matlab联合仿真遇到的问题汇总(龚建伟的书)

约束存在问题

按照书中的约束赋值是可以完成轨迹追踪的,但是错误的话会导致无法正常运行。
约束

设定机器人系统与carsim输出差异

在CarSim中输出为角度需要转换为弧度,但是simulink模型输出为弧度,无需转换。
角度转换

复现的效果

Simulink+Webots基于MPC的移动机器人轨迹追踪仿真(1)_第3张图片

你可能感兴趣的:(webots,matlab)