此示例演示如何在Simulink®的给定地图上执行两个位置之间的障碍路径。金宝app该路径使用概率路线图(PRM)规划算法(Mobilerobotprm)
。使用该路径的控制命令使用纯粹的追求控制器块。差分驱动运动型运动模型基于这些命令模拟机器人运动。
加载占用映射,定义地图中的地图限制和障碍物。examplemapsmat.
包含多个地图,包括简单映射
,此示例使用。
加载examplemapsmat.
在地图中指定一个开始和结束LOCATON。
startloc = [5 5];Goalloc = [20 20];
打开Simulin金宝appk模型。
Open_System('pathplanning金宝appsimulinkmodel.slx'的)
该模型由三个主要部分组成:
规划
控制
植物模型
这策划者MATLAB®功能块使用Mobilerobotprm.
Path Planner并占用起始位置,目标位置和作为输入的地图。块输出机器人遵循的WAPOINTES数组。计划的航点在下游使用纯粹的追求控制器块。
这纯粹的追求控制器块基于机器人的航点和当前姿势产生线性速度和角度速度命令。
这检查到目标的距离子系统计算到目标的当前距离,如果它在阈值范围内,则仿真停止。
这差动驱动运动型号块创建了一种用于模拟简化车辆运动学的车辆模型。该块将线性和角速度从中获取线性和角速度作为来自的命令输入纯粹的追求控制器块,并输出当前位置和速度状态。
仿真= SIM('pathplanning金宝appsimulinkmodel.slx');
在模拟模型后,可视化机器人驱动地图中无障碍路径的机器人。
地图= Binaryoccupancap(SimpleMap);RobotPosite =仿真。Thetaidx = 3;% 翻译XYZ =机器人;XYZ(:,θ)= 0;XYZ欧拉角度旋转Theta = Robotpose(:,Thetaidx);TheTaeuler =零(尺寸(机器人,1),3 *尺寸(Theta,2));TheTaeuler(:,结束)=θ;%绘制机器人在每第10步姿势摆姿势。为了k = 1:10:大小(XYZ,1)显示(地图)保持在;%绘制起始位置。plottransforms([startloc,0],eul2quat([0,0,0]))文本(startloc(1),startloc(2),2,'开始');%绘制目标位置。plottransforms([goalloc,0],eul2quat([0,0,0])文本(果实(1),goalloc(2),2,'目标');%绘制XY位置。绘图(Recootpose(:,1),Recootpose(:,2),'-b'的)当它遍历路径时,%绘制机器人姿势。quat = eul2quat(thetaeuler(k,:),'XYZ');plottransforms(xyz(k,:),quat,'meshfilepath'那......'roundvehicle.stl');光;drawn抓住离开;结尾
©版权所有2019 Mathworks,Inc。