主要内容

使用Gazebo模拟仓库中的移动机器人

这个例子展示了如何在Gazebo中模拟一个仓库机器人。Gazebo使您能够模拟一个使用距离传感器的移动机器人,同时在模拟环境中执行某些任务。这个例子详细说明了如何使用模拟器来应用为仓库机器人执行任务例如,机器人在仓库场景中交付包。该机器人利用露台上模拟的距离传感器来检测和避免与动态环境可能发生的碰撞。

先决条件

模型概述

打开模型。

open_system (“simulateWarehouseRobotInGazebo.slx”)

该模型可分为以下元素:

  • 感觉:从露台上的传感器读取数据。

  • 日程安排:分配包并规划机器人传递包的路径。

  • 控制:生成命令以遵循预定义的路径并避免障碍。

  • 动作:向Gazebo发送命令,以启动环境中的机器人。

日程

机器人在机器人的引导下在充电站、装载站和卸载站之间行走调度程序.

感觉

当前机器人姿势、车轮速度和范围传感器读数是从Gazebo的模拟环境中读取的。下图是系统的展开视图从露台传感器读取子系统。

控制

控制器使用以下命令生成跟踪航路点的控制命令:单纯的追求块如果机器人上的范围传感器检测到车辆内有障碍物avoidCollisionDistance门槛,机器人停止。而且,当机器人足够接近目标时,它就会停下来。

促动

根据生成的控制命令先锋轮控制子系统为每个车轮生成一个扭矩值。力矩是作为ApplyJointTorque命令

安装程序

仓库设施

加载示例映射文件,地图,这是一个逻辑值矩阵,表示仓库中已占用的空间。将此矩阵反转以表示可用空间,并生成一个二进制职业映射对象指定每米100个单元格的分辨率。

这张地图是根据地图绘制的仓库世界文件,它是使用Building Editor在下面提到的相同缩放因子上创建的。一个.png文件的地图可以使用碰撞\u映射\u创建者\u插件插件来生成映射矩阵。关于如何安装插件的详细信息可以在碰撞贴图创建器插件.

mapScalingFactor = 100;负载gazeboWarehouseMap.mat地图logicalMap = ~地图;地图= binaryOccupancyMap (logicalMap mapScalingFactor);显示(图)

分配xy-仓库货架附近的充电站、分拣站和卸货位置。选择的值基于Gazebo中的模拟世界。

chargingStn =(12、5);loadingStn =(24、5);unloadingStn =(15日24);

在地图上显示各个位置。

持有;文本(chargingStn (1) chargingStn (2), 1,“充电”); plotTransforms([chargingStn,0],[1 0 0])文本(加载TN(1),加载TN(2),1,“分拣站”); plotTransforms([loadingStn,0],[1 0 0])文本(unloadingStn(1),unloadingStn(2),1,“卸货站”);plotTransforms([unloadingStn, 0],[1 0 0])保持

距离传感器

这个读取激光雷达扫描阻塞传感段用于从模拟的距离传感器读取距离值。这个仓库世界文件包含场景中各种模型和角色(仓库工人)的详细信息。因为<演员>标记是仅具有可视网格的静态链接,范围传感器的传感器类型为gpu_射线.

此外,距离传感器使用640范围,但默认是128。这需要修改在中使用的总线读取激光雷达扫描块。加载exampleHelperWarehouseRobotWithGazeboBuses.mat文件以获取修改后的总线Gazebo_SL_巴士_Gazebo_msgs_激光扫描范围设置为640。修改后的总线保存到小地毯文件使用总线编辑器。

负载exampleHelperWarehouseRobotWithGazeboBuses.mat

避碰

世界上的演员们正沿着预定的轨迹前进。机器人利用范围传感器检查2.0米范围内的障碍物(避免碰撞距离)距离角度(π-π/ 10日/ 10)在该范围和视图内的非零读数时,机器人停止,只有在范围清除后才恢复。“感应障碍物上的停车机器人”功能块就采用了这种逻辑。

在运行模拟时停止当机器人觉得可以继续前进时,灯就会变成绿色。如果它停止了,灯就变成红色。

避免碰撞距离=2;

模拟

为了模拟这个场景,设置到Gazebo的连接。

首先,运行Gazebo模拟器。在虚拟机中,单击露台仓库的机器人图标。如果Gazebo模拟器无法打开,您可能需要重新安装插件。请参阅安装露台插件手动在里面在Simulink和Gazebo之间执行联合仿真金宝app.

在Si金宝appmulink中,打开露台Pacer块,然后单击配置露台网络和仿真设置. 指定网络地址自定义,这个主机名/IP地址为你的凉亭模拟,和港口城市14581,这是Gazebo的默认端口。VM的桌面显示IP地址。

有关连接到Gazebo以启用联合模拟的更多信息,请参见在Simulink和Gazebo之间执行联合仿真金宝app.

单击初始化模型按钮初始化上面声明的所有变量。

模拟。机器人在周围环境中行驶,并在工人到达规定阈值内时停止。