这个例子是一个扩展使用凉亭在仓库中模拟移动机器人例子。该示例显示将PRM路径规划器与A *策划器更改,并添加矢量字段直方图(VFH)算法以避免障碍物。
先决条件
审查这一点使用凉亭在仓库中模拟移动机器人示例设置感测和驱动元素。此示例介绍如何下载和使用虚拟机(VM)来设置模拟机器人。
审查这一点为仓库机器人执行任务仓库场景中路径规划和导航工作流程的示例。
此模型有两个主要变化为仓库机器人执行任务例子。目标是替换使用的路径规划算法,并添加一个避免环境中障碍的控制器。
这策划者MATLAB®功能块现在使用plannerastargrid.
(导航工具箱)对象运行A *路径规划算法。
这避免避免子系统现在使用一个矢量字段直方图块作为控制器的一部分。这rangereadings.
功能块当收到的数据不为空时输出范围和角度。然后,VFH块基于扫描范围内的障碍产生转向方向。对于紧密的障碍,机器人应该转向驱动它们。调整VFH参数以进行不同的障碍避免性能。
Open_System(“astarpanplanningandandobstacleavoidanceinwarehouse.slx”);
加载示例映射文件,地图
,这是指示仓库中占用空间的逻辑值矩阵。颠倒该矩阵以指示可用空间,并创建一个binaryoccupancymap.
目的。指定每米100个细胞的分辨率。
地图是基于的Appactleavoidanceworld.world.
,它在VM中加载。生成PNG文件以用作地图矩阵collision_map_creator_plugin.
插入。有关更多信息,请参阅碰撞地图创建者插件。
近图(“姓名”那“仓库地图”那“可见的”那“在”) 加载examplehelperwarehouserobotwithgazebobuses.mat加载HelperplanningandobstacleavoidancewareAvoidance.Mat地图logicalmap = map.getoccupancy;MapScalingFactor = 100;显示地图)
分配XY- 收费站,分拣站和卸货地点附近仓库附近的卸货地点。所选择的值基于凉亭的血型世界。
chargingstn = [2,13];loadingstn = [15,5];卸载= [15,15];
在地图上显示各个位置。
抓住在;localorigin = map.localoriginovorld;localtform = trvec2tform([localorigin 0]);文字(ChargingStn(1),Chargingstn(2),1,'收费');PlotTransforms([ChargingStn,0],[1 0 0 0])文本(LoadingStn(1),LoadingStn(2),1,'加载站');plottransforms([loadingstn,0],[1 0 0 0])文本(卸载Stn(1),卸载Stn(2),1,'卸下站');plottransforms([卸载stn,0],[1 0 0])保持离开;
要模拟方案,请设置与凉亭的连接。
首先,运行凉亭模拟器。在虚拟机中,单击眺望台仓库机器人障碍图标。如果凉亭模拟器无法打开,则可能需要重新安装插件。看手动安装凉亭插件在在Simulink和Gazebo之间执行共同仿真万博1manbetx。
在Si万博1manbetxmulink中,打开眺望台步行者块并单击配置凉亭网络和仿真设置。指定网络地址作为风俗那这主机名/ IP地址为了你的凉亭模拟,和一个港口的14581
,这是凉亭的默认端口。VM的桌面显示IP地址。
有关连接到凉亭的更多信息以实现共同仿真,请参阅在Simulink和Gazebo之间执行共同仿真万博1manbetx。
点击初始化模型模型顶部的按钮,以互向上面声明的所有变量。
跑模拟。机器人围绕环境驱动,避免未引发的障碍。
SIM(“astarpanplanningandandobstacleavoidanceinwarehouse.slx”);
请注意,占用地图上存在两个圆柱形障碍物。使用VFH算法检测到时,机器人仍然避免它们。
当机器人试图避免障碍时,绿灯避免亮起。