主要内容

Simulink中差动驱动机器人的路径规划金宝app

此示例演示如何在Simulink®中的给定地图上的两个位置之间执行无障碍路径。使用概率路线图(PRM)规划算法生成路径(金宝app移动机器人(PRM)。用于导航此路径的控制命令是使用纯粹的追求控制器。基于这些指令,建立了差动驱动运动学模型来模拟机器人的运动。

加载地图和Simulink模型金宝app

载入占用地图,它定义地图范围和地图内的障碍。exampleMaps.mat包含多个地图,包括单纯形映射,此示例使用。

负载exampleMaps.mat

在地图中指定起点和终点位置。

STARTOC=[5];goalLoc=[20];

模型概述

打开Simulin金宝appk模型。

开放式系统('路径规划Simulink金宝appModel.slx')

该模型由三个主要部分组成:

  • 计划

  • 控制

  • 植物模型

计划

这个计划者MATLAB®功能块使用移动机器人路径规划器,并将起始位置、目标位置和映射作为输入。块输出机器人跟随的波点数组。规划的路径点在下游被使用纯粹的追求控制器。

控制

纯粹的追求

这个纯粹的追求控制器块根据航路点和机器人的当前姿势生成线速度和角速度命令。

检查是否达到目标

这个检查距离目标的距离子系统计算到目标的当前距离,如果该距离在阈值内,则模拟停止。

植物模型

这个差动传动运动学模型block创建车辆模型以模拟简化的车辆运动学。block将线性速度和角速度作为来自纯粹的追求控制器块,并输出当前位置和速度状态。

运行模型

模拟=模拟('路径规划Simulink金宝appModel.slx');

将机器人的运动形象化

模拟模型后,在地图上显示机器人驾驶无障碍路径。

map=binarycoccuncymap(simpleMap);robotPose=simulation.Pose;thetaIdx=3;%翻译xyz=机器人姿势;xyz(:,thetaIdx)=0;%以XYZ欧拉角旋转θ=机器人姿势(:,θ);thetaEuler=零(大小(机器人姿势,1),3*大小(theta,2));θ(:,end)=θ;%绘制机器人每10步的姿势。对于k=1:10:尺寸(xyz,1)显示(地图)保持;%绘制起始位置。plotTransforms([StartOC,0],eul2quat([0,0,0]))文本(StartOC(1),StartOC(2),2,“开始”);%绘制目标位置。plotTransforms([goalLoc,0]、eul2quat([0,0,0]))文本(goalLoc(1)、goalLoc(2)、2、,“目标”);%绘制xy位置。绘图(机器人姿势(:,1),机器人姿势(:,2),“-b”)%绘制机器人穿过路径时的姿势。quat=eul2quat(thetaEuler(k,:),“xyz”);plotTransforms (xyz (k,:),皮疹,“MeshFilePath”,...'groundvehicle.stl'); 光现在抽;持有;终止

图中包含一个轴对象。标题为“二进制占用栅格”的轴对象包含16个类型为面片、线、图像和文本的对象。

©版权所有2019 MathWorks,Inc。