1.资源分配算法:通过一个中心算法来协调机器人之间的资源哗氏拿竞争,具体方法是要求每个机器人在占用一个共享资源之前,必须请求它,并且其他机器人必须等待其请求完成后才能占用该资源。
2.过程阻塞算法:当一个机器人找不到足够的资源时,它将等待直到有足够的资源,如果其中一个机器人等待太久,那么整个进程将会阻塞,进入死锁状态。然后,系统会将其中一个机器人释放,以解除阻塞,并允许其他机器人进行工作。
3.超时算法:如果一个机器人等待对另一个机器人核衫的资源请求超过了一个设定的时间段,那么系统可以自动释放该机器人等待的资源,并允许其他机器人进行工作。
4.视图算法:这个算法会在机器人调度期间创建一个任务视图,它会监控每个任务的进展情况,如资源占用情况乱搭、任务状态等,并通过视图将这些信息发送给所有参与者,以便及时检测和解除死锁。
总的来说,机器人调度解死锁算法主要依赖于资源分配、过程阻塞、超时机制和任务视图等方法,以检测和解除机器人调度中的死锁问题。同时,您可以根据具体的问题要求,选择适合的算法进行实现和优化。
目前服务机器人发展迅猛,送餐机器人成为胡细化场景下的热门,以前的送餐都是沿着固定磁导线行走,只能是先简单的定障,送餐效率低,不能动态规划等特点。目前市场上主流的送餐机器人大多数都是采用的无轨导航模式,即低成本的激光slam 的方案游毁。激光slam基于激光雷达扫描地图,并生成餐厅的二维图,精度大概在5cm,激光slam的导航精度取决于激光的精度。通过保存的地图,机器人可以在地图的二维坐标上行走。
随着需求的增大,送餐机器人在单个餐厅的数量也不仅仅只是一台,这样就存在多台同时运行的场景。其实机器人的无轨导航加上动态的避障,其实是完全可以达到一个简单的调度的效果,即相向运动的时候,可以动态的相互避开,(定轨模式另讨论)。
目前送餐机器人的成本都不高,因为是替代人工,低成本也是设备选型的主打,低成本会给激光slam在运动过程中带来很多副作用。比如在相向运动中,激光雷达会相互产生干扰,会让雷达采集到的数据是失真的数据,接收的红外光并不是自己发射并被障碍物反射回来的,雷达把数据给slam之后,slam会一直重新规划路线,直到对方的干扰结束。如果slam过程中参考其他的sensor,比如超声,红外逼近,低成本的sensor并不会去处理这种干扰的问题。其实如果能解决掉这个相向干扰的问题,用激光雷达的方式,也是能简单达到调度的效果。
调度系统在送餐过程中最主要的目的是十字路口的解决方案,调度系统相当于一个红绿灯,因为机器人在餐饮的使用中都是以单一功能展现,你不能让送餐机器人去收盘子,这样浪费了资源。对于送餐场景来说,机器的起点和终点相对固定,功能单一,能快速的去和回才是提高效率的方式,因为在机器人回来之前,已经安排好他下一个的目的地。
调度系统在定轨模式下其实有可行性,但是要解决几个问题,1.所有机器人必须是基于同一张地图 2.所有机器人必须实时上报自己所处的位置 3.调度系统必须要结合导航控制 4.必须把派菜系统接入到调度系统才有意义,不然州碰就只是个红绿灯。和前面说的一样,解决掉相向运动激光干扰导致的地图可能飘和定位不准问题才行。
AGV可以使用调度系统,是因为AGV是工业产品,所用的sensor,都是工业级的比如sick、倍加福册磨谈这种。工业级别的sensor稳定和抗干扰能力强,但是成本高,一个sick的激光雷达1w+,是正常雷达的10倍不止。
所以消费机器人的调度可以通过简单的rfid固定点为标志来实现,比如在拥堵路段前后加上4个RfID表示位置,同时只允许一个机器人通过,只需要做一个简单的位置控制就行,进去一个之后,其他的等待就行。只需要每个机器人佩戴rfid扫描设备,一些标签就行,实现简单,成本低。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)