OpenTCS打造移动机器人交通管制系统(四)

本文深入探讨了OpenTCS的路由策略,包括迪杰斯特拉、贝尔曼-福特和弗洛伊德三种默认算法,以及如何为不同类型的机器人自定义路由算法。同时,文章指出了OpenTCS仅支持静态路由的局限性,并提出了动态规划的改进方向。

先分析下OpenTCS的一些策略方面的东西,这是OpenTCS的基础。

首先需要先明确下OpenTCS内核中的三个概念:

路由(Route) : 决定了车辆通过什么样的方式和算法来获得一段路径,未来车辆将沿着此路径运行。

派遣(Dispacher): 决定了一个订单应该关联哪一辆小车,即为订单分配车辆和为车辆分配订单。

调度(schedule):狭义上的调度,交通管制的核心,决定了何时分配共享资源,何时释放拥有的资源。

以上是来自内核的约定,即如果二次开发,必须要按照这样的概念进行设计,当然OpenTCS提供了默认的算法实现(可修改和替换)。这些默认实现包含在openTCS-Strategies-Default子项目中。

 

本节先来分析下OpenTCS提供的默认Route策略,按照我的理解记录如下:

1、路由算法。

主要是实现了最短路径算法,OpenTCS提供了三种路由算法供选择,分别是:

迪杰斯特拉算法

贝尔曼-福特算法

弗洛伊德算法。

一般来说我们直接使用迪杰斯特拉算法就行了,因为我们的移动机器人一般只需要计算单源最短路径(机器人到目标点),也不需要处理负权边。

这里有意思的是,OpenTCS支持为每一台机器人设置不同的路由计算器,存在类似这样的结构:

//只做示意,OpenTCS中并未存在这样的代码
Map<Vehicle,Router> vehicleToRouter;

这样当我们在项目中

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值