学生休息室

分享技术和现实生活中的例子,学生如何在他们的日常项目中使用MATLAB和Simulink # studentsuccess万博1manbetx

机器人在仿真软件建模万博1manbetx

康奈尔大学D’索萨我们co-blogger曾与一个团队开发机器人的船只。结果显然令人印象深刻。

- - - - - -

对于今天的帖子,我想向你们介绍冈萨雷斯。亚历克斯是RoboBoat团队的一员VantTec学府de蒙特雷在蒙特雷,墨西哥。我遇见亚历克斯在2018年RoboBoat我有机会看到他的团队的创新解决方案的任务竞争——一个无人机(UAV)指导一个无人地面车辆(USV)通过这门课,我很高兴,当亚历克斯提出要写他的团队的工作与MATLAB和Simulink赛车休息室的博客!万博1manbetx亚历克斯将讨论使用机器人系统工具箱开发路径规划算法和航空航天Blockset建立动态模型的船来优化控制器。下载本文中使用的代码文件交换在MATLAB插件选项卡。让我把它传递给亚历克斯拿走它——亚历克斯,舞台是你的!

- - - - - -

我领导VantTec,一群学生机器人,我们建立一个自主机器人RoboBoat船。竞争鼓励合作无人机(UAV)和无人地面车辆(USV)对接任务——无人机告诉USV停靠的地方。我们决定进一步采取这种合作,使用无人机发展的路径USV跟进。

的挑战与自主导航机器人的三倍:

  1. 创建一个环境的地图
  2. 选择/发展路径规划算法
  3. 开发一个鲁棒控制器遵循所需的路径

那么,我们如何应对这些挑战?

创建一个环境的地图

创建一个环境的地图我们使用无人机单击一个鸟瞰图的照片。这张照片可以创建一个网格。在这里,计算机视觉和人工智能算法可以给障碍物的相对位置,参考图片尺寸或车辆本身。

为此,首先我们从上面拍照的飞行器。我们使用一个收幻影4我们使用移动应用开发自主路径导航;无人机的照片并将其发送到手机。接下来,我们把照片寄给中央地面站,神经网络,我们开发了检测浮标和创建边界框。从这些边界框,我们获得每个浮标的中心,我们安排在一个矩阵创建地图。

使用机器人系统工具箱的二进制占用网格,收集的数据创建一个机器人可以导航地图。在这里,障碍的相对坐标将网格内的位置。

下面是一个例子如何创建网格;值50米和10应该改变维度的无人机相机帧图片。然后,变量xy的障碍来自他们的中心。样例代码是一个示例应该引入的矩阵。我们的计算机视觉模块创建一个类似矩阵对应的向量的坐标为每个障碍。

robotics.BinaryOccupancyGrid (50, 10、30);xy = [3 2;8 5;13日7;20 1;25 8;32 6;38 3;40 9;42 4; 23 2; 28 5; 33 7]; setOccupancy(map, xy, 1);

然后,夸大功能可以改变障碍维度通过一个已知的或获得的半径。

充气(图0.3);

选择/发展路径规划算法

机器人系统工具箱提供了另一种解决方案,这一次使用sampling-based路径规划算法概率的路线图。在这种情况下,标签天线的车辆可以帮助识别,导致一开始位置坐标和结束位置坐标和数量的节点设置需要获取车辆需要遵循的路线。

人口、难民和移民事务局 = 机器人。人口、难民和移民事务局 prm.Map = 地图; startLocation = [3 3]; endLocation =[7] 47; 人口、难民和移民事务局。NumNodes = 25; % 搜索的开始和结束位置之间的解决方案。 路径 = findpath(人口、难民和移民事务局 startLocation, endLocation); 当 isempty(路径)     prm.NumNodes = 人口、难民和移民事务局。NumNodes + 25;     更新(人口、难民和移民事务局);     路径 = findpath(人口、难民和移民事务局, startLocation, endLocation);  结束

开发一个鲁棒控制器

开发一个鲁棒控制器的挑战更容易与车辆的模型参考。更好的模型,更好的控制器。运动学模型作为一个开始,但机器人的动力学模型更适合创建一个模拟环境。欠USV,一个3自由度动力学模型可以实现所需的环境。

万博1manbetx仿真软件是一个伟大的工具来开发这些类型的模型,更使用可用的工具箱。航天Blockset礼物实用程序块,包括数学操作,3×3矩阵,需要3自由度动态模型。

建筑模型

动态模型的方程是:

\ \τ=美元点{\ν}+ C(\ν)\ν+ D(\ν)\ν美元

或重写:

${\ν}\点= M ^{1}[\τ- C(\ν)- D(\ν)]美元

第一个矩阵方程中的惯性张量。这个M矩阵构造使用3×3矩阵从航空Blockset实用程序块。

M = \ {pmatrix}开始美元——间{\点{你}}& 0 & 0 & M - M y_G \ \ - Y_{\点{你}}& M间{G} - Y_{\点{r}} \ \ -my_ {G} & M间{G} - N_{\点{\ν}}& I_ {Z} - N_{\点{r}} \ {pmatrix} $

然后,它是一个子系统的整体动态模型,让车辆物理常数(m, X_G, Y_G I_Z)和水动力系数作为输入和矩阵(m)作为输出。

第二个矩阵系统中是一个向量的部队(\τ矩阵美元),这是程序如下所示。然后,插入一个子系统的整体模型,与船梁(B)和个人推力(Tport & Tstbd)作为输入向量的部队(T)作为输出。

$ {pmatrix} \ \τ= \开始tau_ {x} \ \ \ tau_ {y} \ \ \ tau_ {z} \ {pmatrix} = {pmatrix} \开始结束(T_}{端口识别+ T_{右舷})识别\ \ 0 \ \ 0.5 * B (T_{港口}- T_{右舷})识别识别\ {pmatrix} $

然后,插入一个子系统的整体模型,船梁和个别推力作为输入和力的矢量作为输出。

同样的,下一个矩阵是科里奥利矩阵(C矩阵)。如下所示,两个3×3矩阵的总和,因此需要使用矩阵和块。然后,创建一个子系统,作为输入,物理参数(X_G Y_G, m),水动力系数和飙升的价值和影响速度以及偏航率当地(V)和科氏力矩阵作为输出:

$ C(\ν)= \ {pmatrix}开始0 & 0 & - m (x_G r + \ν)\ \ & 0 & m - m (y_G r - u) \ \ (x_G r + \ν)& m (y_G r - u) & 0 \ {pmatrix} +结束\ {pmatrix}开始0 & 0 & \压裂{Y_{\点{\ν}}\ν+ \压裂{Y_{\点{r}} + N_{\点{\ν}}}{2}r}{200} \ \ & 0 &间{\点{你}}\ \ \ u压裂{-Y_{\点{\ν}}\ν- \压裂{Y_{\点{r}} + N_{\点{\ν}}}{2}r}{200} &间{\点{你}}u & 0 \ {pmatrix} $

下一个矩阵是阻力矩阵。像科氏力矩阵,矩阵是拖两个矩阵之和,但这一次与一个负号。创建一个子系统,所需的水动力系数,和摇摆速度,角速度作为输入和输出矩阵。

$ D(\ν)= \ {pmatrix}开始Y_u & 0 & 0 \ \ 0 & Y_{\ν}& Y_r \ \ 0 & N_{\ν}& N_r \ {pmatrix} - {pmatrix} \开始结束间{中期u中期\ \}\ u中期\中期& 0 & 0 \ \ 0 & Y_{中期\ν\中\ν\}\ \ν\中期中期+ Y_{中期\ν中期\ r \} \ r \中期中期& Y_{中期r \中\ν\}\ \ν中期\ +中期Y_{中期中期\ r \} \ r \中\ \ 0中期& Y_{中期\ν\中\ν\}\ \ν\中期中期+ Y_{中期\ν中期\ r \} \ r \中期中期& Y_{中期r \中\ν\}\ \ν中期\ +中期Y_中期{中期中期\ r \} \ r \中\ {pmatrix} $

之后,一个矩阵求和是用于第一次代数方程的一部分。

然后,合成矩阵与逆M矩阵的乘积。结果是当地的导数参考系速度矢量,并随后集成。

的变换矩阵表示如下所示,用于联系当地参考系与全球参考系:

$ J (\ eta) = \ {pmatrix}开始cos \ psi & sin \ psi & 0 \ \罪\ psi &因为\ psi & 0 0 & 0 & 1 \ \ \ \ \ {pmatrix} $

当地的速度矢量由V-local转化为全球参考系,然后综合获取x, y和取向或航向的船和存储在向量定义为“n_global”如下所示。您可以使用一个多路分配器块索引的单个元素的向量。

最后,创建一个子系统与必要的方程来获得水动力系数,引入参数后,可以测量或估计。这些水动力系数被收集到一个仿真软件总线,使数据传输模型的其他子系统。万博1manbetx

开发一个基于模型的控制器

程序方程创建一个动态的船模型基本控制器。这里的物体固定帧(v)和North-East-Down固定帧(n)是输出和推进器值或控制命令输入到模型中。你也可以设置船参数被接受为面具变量,这将给你一个参数化的模型,有生理变化,就可以修改你的船。用这个参数化模型,您可以使用控制系统工具箱和仿真软件控制设计来设计一个控制器,可以按照所需的路径生成。万博1manbetx

在这里,我给你看个例子飙升的速度和航向控制器,我们开发了。为了测试这个控制器,我们使用了信号生成器块创建一个示例正弦轨迹代表所需的标题。你可以想象,在我们的完整的系统这个轨迹生成从地图上,我们前面所讨论的,但目前我们也显示出一个测试输入。

从下面的图,我们可以看到,我们的控制器能够跟踪标题相当好。这可以提高调优控制器增益。XY下面的图表显示了船轨迹给定一个正弦航向和速度作为测试输入的一步。

* a·加西亚和h·卡斯塔涅达建模、识别和控制的无人地面车辆,“AUVSI XPONENTIAL 2019:无人驾驶,2019

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。