计划路径差动驱动机器人仿真软件金宝app
这个案例展示了如何执行一个地图上一个给定的两个地点之间的无障碍路径模型®。金宝app使用生成的路径概率路线图(人口、难民和移民事务局)规划算法(mobileRobotPRM)
。这条路径导航的控制命令生成使用单纯的追求控制器。差动驱动运动学运动模型模拟机器人运动基于这些命令。
加载地图和仿真软件模型金宝app
加载入住率地图,它定义了地图在地图上的限制和障碍。exampleMaps.mat
包含多个地图包括simpleMap
这个示例使用。
负载exampleMaps.mat
指定一个开始和结束locaiton在地图。
startLoc = 5 [5];goalLoc = (20 20);
模型概述
打开仿真软件模型。金宝app
open_system (“pathPlanning金宝appSimulinkModel.slx”)
该模型由三个主要部分组成:
规划
控制
工厂模式
规划
的规划师MATLAB®功能块使用mobileRobotPRM
路径规划,并开始位置、目标位置,地图作为输入。路径点,机器人的模块输出数组。使用锚点下游的计划单纯的追求控制器。
控制
单纯的追求
的单纯的追求控制器块生成基于路径点的线速度和角速度命令和当前的机器人。
检查目标是否达成
的检查距离目标子系统计算当前距离目标,如果是在一个阈值,仿真停止。
工厂模式
的差动传动运动学模型块创建一个汽车模型来模拟简化车辆运动学。块以线速度和角速度为命令的输入单纯的追求控制器,和输出当前的位置和速度。
运行模型
模拟= sim卡(“pathPlanning金宝appSimulinkModel.slx”);
想象运动的机器人
模拟模型后,想象机器人驾驶的无障碍路径映射。
地图= binaryOccupancyMap (simpleMap);robotPose = simulation.Pose;thetaIdx = 3;%的翻译xyz = robotPose;xyz (:, thetaIdx) = 0;%在XYZ欧拉角旋转θ= robotPose (:, thetaIdx);thetaEuler = 0(大小(robotPose, 1), 3 *大小(θ,2));thetaEuler(:,结束)=θ;%画出机器人每十步。为k = 1:10:尺寸(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-locations。情节(robotPose (: 1) robotPose (:, 2),“- b”)%情节机器人位姿的遍历路径。皮疹= eul2quat (thetaEuler (k,:)“xyz”);plotTransforms (xyz (k,:),皮疹,“MeshFilePath”,…“groundvehicle.stl”);淡定;drawnow;持有从;结束
版权©2019年MathWorks公司。