主要内容

为仓库机器人执行任务

本例演示了如何在给定地图上的三个位置之间为移动机器人执行无障碍路径。该机器人预计将访问仓库中的三个位置:充电站、装载站和卸货点。访问这些位置的顺序由调度程序指定。调度程序给每个机器人一个导航的目标姿势。机器人规划一条路径,并使用Pure Pursuit控制器根据机器人当前的姿势来跟踪路径点。的微分传动运动学模型块模型的简化运动学,它从纯追求控制器取线速度和角速度。的基础上构建此示例基于Simulink的差动驱动机器人路径规划金宝app的例子。

仓库地图

分拣或配送设施的典型仓库中有从工作站传送到存储区域的包裹。仓库可能有禁止进入的区域,如办公室和正在进行的库存,阻塞通道或走道。机器人的任务是在到达分拣站时挑选完成的包裹,并被告知存放包裹的地点。仓库还有一个充电站,在一段时间后为机器人充电。

这个示例仓库平面图可以转换为一个二进制占用图,它表示仓库设施中的所有安全区域。

加载示例映射文件。logicalMap是逻辑值的矩阵,表示仓库中的空闲空间。做一个binaryOccupancyMap从这个矩阵。

负载warehouseMaps.matlogicalMapmap = binaryoccuancymap (logicalMap);显示(图)

分配xy-充电站、分拣(装载)站的位置,以及仓库中靠近货架的卸货位置。

chargingStn = [5,5];loadingStn = [52,15];unloadingStn = [15,42];

在地图上标出各个地点

持有;text(chargingStn(1), chargingStn(2), 1,“充电”);plotTransforms([charingstn, 0], [1 0 0 0]) text(loadingStn(1), loadingStn(2), 1,“分拣站”);plot ([loadingStn, 0], [1 0 0 0]) text(unloadingStn(1), unloadingStn(2), 1,“卸货站”);plotTransforms([unloadingStn, 0],[1 0 0 0])保持

图中包含一个轴对象。标题为“二进制占用网格”的axis对象包含16个类型为patch、line、image、text的对象。

模型概述

提供金宝app了一个Simulink®模型,用于对系统的调度、规划、控制和机器人行为建模的所有方面进行建模。

打开Simulin金宝appk模型。

open_system (“warehouseTasksRobotSimulationModel.slx”

计划、控制和工厂模型

该模型使用了类似于计划、控制和工厂的模型基于Simulink的差动驱动机器人路径规划金宝app的例子。规划器从调度程序获取开始和目标位置,并根据给定的地图规划它们之间的无障碍路径。该控制器使用Pure Pursuit控制器来生成机器人的线性和角速度控制,以导航路径。这些控制被赋予植物模型,模型的行为差速驱动机器人。

机器人调度程序

Scheduler块为机器人分配开始和目标位置。机器人的当前姿态被用作开始位置,结束位置由调度程序中指定的任务序列决定。该示例演示了机器人的以下任务序列:

  1. 从充电位置开始,到装载位置。

  2. 在装载站装载包裹时暂停,并计划到卸载位置的路径。

  3. 导航到卸载站卸载包裹。重新规划通往充电站的路径。

  4. 停在充电站。

模拟机器人

运行模拟,看看机器人执行任务。

模拟= sim(“warehouseTasksRobotSimulationModel.slx”);

图中包含一个轴对象。标题为Binary Occupancy Grid的axes对象包含了21个类型为patch、line、image、text的对象。

可视化机器人轨迹

给出了一个自定义可视化工具来模拟分布式摄像机系统,并获得机器人在地图上特定位置的更详细的轨迹视图。打开可视化辅助块并使用预设的观点下拉菜单选择不同的透视图。的样品时间的可视化对机器人的仿真没有影响。

另请参阅

©版权所有2019 The MathWorks, Inc.