主要内容

计划路径自行车机器人仿真软件万博1manbetx

这个案例展示了如何执行一个地图上一个给定的两个地点之间的无障碍路径模型®。万博1manbetx使用生成的路径概率路线图(人口、难民和移民事务局)规划算法(mobileRobotPRM)。这条路径导航的控制命令生成使用单纯的追求控制器。自行车运动运动模型模拟机器人运动基于这些命令。

加载地图和仿真软件模型万博1manbetx

MATLAB的工作区中加载地图

负载exampleMaps.mat

输入开始和目标位置

startLoc = 5 [5];goalLoc = 12 [3];

导入的地图:simpleMap,complexMapternaryMap

打开模型模型万博1manbetx

open_system (“pathPlanningBicycle万博1manbetxSimulinkModel.slx”)

模型概述

模型由四个主要操作:

  • 规划

  • 控制

  • 工厂模式

规划

规划师MATLAB®功能块使用mobileRobotPRM路径规划,并开始位置、目标位置,地图作为输入。路径点,机器人的模块输出数组。使用锚点下游的计划单纯的追求控制器。

控制

单纯的追求

单纯的追求控制器块生成基于路径点的线速度和角速度命令和当前的机器人。

检查目标是否达成

检查距离目标子系统计算当前距离目标,如果是在一个阈值,仿真停止。

工厂模式

自行车运动模型块创建一个汽车模型来模拟简化车辆运动学。块以线速度和角速度为命令的输入单纯的追求控制器,和输出当前的位置和速度。

运行模型

模拟模型

模拟= sim卡(“pathPlanningBicycle万博1manbetxSimulinkModel.slx”);

想象运动的机器人

的姿势:

地图= binaryOccupancyMap (simpleMap)
地图= binaryOccupancyMap属性:LayerName mapLayer属性:“binaryLayer”数据类型:“逻辑”DefaultValue: 0 GridLocationInWorld: [0 0] GridOriginInLocal: [0 0] LocalOriginInWorld:[0 0]分辨率:1 GridSize: [26 27] XLocalLimits: 27 [0] YLocalLimits: 26 [0] XWorldLimits: 27 [0] YWorldLimits:[0] 26日
robotPose = simulation.BicyclePose
robotPose =362×35.0000 - 5.0000 0 5.0001 5.0000 -0.0002 5.0007 5.0000 -0.0012 5.0036 5.0000 -0.0062 5.0181 4.9997 -0.0313 5.0902 4.9929 -0.1569 5.4081 4.8311 -0.7849 5.5189 4.6758 -1.1170 5.5366 4.6356 -1.1930 5.5512 4.5942 -1.2684⋮
numRobots =大小(robotPose, 2) / 3;thetaIdx = 3;%的翻译xyz = robotPose;xyz (:, thetaIdx) = 0;%在XYZ欧拉角旋转θ= robotPose (:, thetaIdx);thetaEuler = 0(大小(robotPose, 1), 3 *大小(θ,2));thetaEuler(:,结束)=θ;k = 1:尺寸(xyz, 1)显示(map);%的阴谋开始位置plotTransforms ([startLoc 0], eul2quat((0, 0, 0)))文本(startLoc (1) startLoc (2), 2,“开始”);%绘制目标位置plotTransforms ([goalLoc 0], eul2quat((0, 0, 0)))文本(goalLoc (1) goalLoc (2), 2,“目标”);%情节机器人的XY的位置情节(robotPose (: 1) robotPose (:, 2),“- b”)%情节机器人的姿势在遍历路径皮疹= eul2quat (thetaEuler (k,:)“xyz”);plotTransforms (xyz (k,:),皮疹,“MeshFilePath”,“groundvehicle.stl”);暂停(0.01);结束

图包含一个坐标轴对象。坐标轴对象与标题二进制占用网格包含16块类型的对象,线,图像、文本。

版权©2019 - 2020 MathWorks公司。