机器人相关
文章平均质量分 83
白色冰激凌
这个作者很懒,什么都没留下…
展开
-
OpenTCS打造移动机器人交通管制系统(一)
OpenTCS是一个存在已经很久的开源的交通管制系统,之前一直没有认真研究,最近由于项目需要,着重研究了下此系统,发现内核设计的的确不错。本文记录本人在使用OpenTCS二次开发过程中的一些琐事,供有需要的工程师参考。首先要使用OpenTCS,首先要具备JAVA语言的开发能力,JAVA是一门非常优秀的语言,用户数量庞大.........首先我们从官网下载源码(目前的最新版本为v4.1...原创 2020-03-03 16:22:02 · 4710 阅读 · 3 评论 -
OpenTCS打造移动机器人交通管制系统(十)
最近实在有点忙,都有点忙昏头的感觉,没来得及更新TCS系列文章。本篇文章算是一个TCS系列博文的完结篇。(后续如果有一些新的东西有可能会继续更新,但可能会是以专题的形式发布。)这里顺便提一下,现在官网的TCS5版本也出来了,但是遗憾的是,本人没有发现有新的突破性的东西,其实挺失望的。本文其实没有什么新的东西可记录,但是后台有很多伙伴给我留言,想知道基于TCS的Web客户端怎么去实现,我想大概是TCS自带的客户端太丑了吧,哈哈,但其实PlantView个人觉得还是挺实用的。那么本文就来谈一下基于O原创 2020-07-14 19:43:42 · 2607 阅读 · 3 评论 -
OpenTCS打造移动机器人交通管制系统(九)
上一篇文章探讨了如何拓展Kernel。本文来讲下如何为OpenTCS增加WebAPI。由于OpenTCS有MES系统或别的第三方系统对接时通常都是使用WebAPI进行交互的。OpenTCS系统的WebAPI遵循RestAPI的设计,提供了一系列API接口,这些API接口通过Documente可以查看到。如何测试这些API?可以通过浏览器来测试(推荐使用Google浏览器),比如这里要获取全部的车辆信息,可以在浏览器中输入如下地址:http://localhost:55200/v1...原创 2020-06-23 11:18:56 · 2475 阅读 · 7 评论 -
OpenTCS打造移动机器人交通管制系统(八)
上一篇文章记录了下如何在OpenTCS框架下拓展数据库(点此查看上一篇),本篇来探讨下如何拓展Kernel。OpenTCS框架主要的作用是提供一个交通管制的框架,但是通常来说,一个完整的调度系统(这里指的是广义的调度系统),是不仅仅只有交通管制的,通常还会有业务层、逻辑层等相关模块一起和OpenTCS构成一个实际可用的系统。一般来说实际项目的架构至少应该是下面的样子:那么很显然,要想系统更紧凑,OpenTCS-Kernel需要拓展,其实OpenTCS在设计之初就预留了拓展的接口(...原创 2020-05-17 17:29:11 · 2338 阅读 · 6 评论 -
OpenTCS打造移动机器人交通管制系统(七)
在一个实际的项目中(非实验室),数据是至关重要的。本篇讲下OpenTCS的数据存储问题,OpenTCS的关键数据主要是Vehicle数据和TransportOrder的数据。然而这些数据OpenTCS没有做专门的持久化处理,也就是说只要Kernel一重启,之前发生的事就一无所知了。为了将数据持久化,本文提出一种基于redis数据库的存储方案来存储Transportorder数据(如果要...原创 2020-04-27 19:46:56 · 2764 阅读 · 5 评论 -
OpenTCS打造移动机器人交通管制系统(六)
上一篇谈到了OpenTCS的调度策略问题。并提出了关于自带算法的"死锁"的问题。1、错开订单的下发。2、改进调度资源分配算法,将双向路径考虑到资源分配的过程当中。 方法1显然是可以解决的前文提到的死锁问题的,但是有点别扭,也有点low,因此笔者尝试从算法层次着手改进。我们拓展上一篇文章提出的地图,将其拓展如下:(地图画的有点乱,懒得整理了,...原创 2020-04-16 20:16:10 · 2849 阅读 · 14 评论 -
OpenTCS打造移动机器人交通管制系统(五)
本文来谈一谈OpenTCS的调度问题。OpenTCS默认的算法是基于"前馈锁路"的方式进行交通管制的。所谓的“前馈锁路”,意思是当某辆车需要运动时,在运动之前会将MovementCommand转换成一种交通管制资源向系统中注册。只有当该资源被系统接受时,车辆才会运动,大致的逻辑如下所示:OpenTCS的这种默认交通管制策略其实比较简单,也容易理解,那么这种方式是否在实际项目中...原创 2020-04-11 18:16:53 · 3993 阅读 · 0 评论 -
OpenTCS打造移动机器人交通管制系统(四)
先分析下OpenTCS的一些策略方面的东西,这是OpenTCS的基础。首先需要先明确下OpenTCS内核中的三个概念:路由(Route) : 决定了车辆通过什么样的方式和算法来获得一段路径,未来车辆将沿着此路径运行。派遣(Dispacher): 决定了一个订单应该关联哪一辆小车,即为订单分配车辆和为车辆分配订单。调度(schedule):狭义上的调度,交通管制的核心,决定了何时分配...原创 2020-03-26 20:05:55 · 4493 阅读 · 13 评论 -
OpenTCS打造移动机器人交通管制系统(三)
本章主要介绍下如何开发一个新的VehicleAdapter模块(车辆驱动适配对象)。OpenTCS是一个开放的系统,从内核到模块组件全部是挂载式设计,这得益于Java语言的反射机制(JAVA从语言级就支持反射)。在介绍驱动开发之前有必要说明下IOC和DI。即所谓的依赖注入和控制反转,网络上有很多关于这两个技术的介绍,其实这是一种设计模式。(个人觉得IOC时DI的一种实现)。OpenTCS使...原创 2020-03-13 20:50:20 · 4786 阅读 · 0 评论 -
OpenTCS打造移动机器人交通管制系统(二)
OpenTCS从使用上来说主要分为三个模块(基于4.17版本的系统)。分为:openTCS-Kernel:交通管制的内核系统,主要算法均集中在此模块。openTCS-KernelControlCenter:内核配置的桌面图形化窗口系统,主要是对驱动进行设置。openTCS-PlantOverview:建模用的的图形化桌面程序。主要用于创建地图模型和做简单的监控。桌面软件均使用JAV...原创 2020-03-07 17:15:12 · 4599 阅读 · 9 评论 -
对角安装的双舵轮AGV运动学核心算法
我们在控制移动机器人时,比较核心和基础的问题是机构的运动学建模,一般常规可看到的AGV都是差速轮的机构,此种机构控制较为简单,运动学算法也很容易。但是此种结构的AGV不适合在重载的场合,抗打滑的性能也较为不理想。双舵轮的AGV能有效的弥补上述问题,这种双舵轮的AGV一般使用对角安装的方式安装,具有很高的灵活性,不仅承载能力强,而且可以全向移动,是一种非常不错的重载AGV机构方案,在...原创 2019-11-27 19:01:52 · 12425 阅读 · 8 评论