多机器人系统的通信是研究多机器人系统的基础,由个体机器人组成一个群体系统,通信是必不可少的。多机器人系统在执行某项任务时,为了实现协调与合作,个体机器人的传感器必须提供足够的环境描述信息和其他机器人的信息,因此机器人个体之间或者上层控制和下层合作之间的通信是必要的[7]。机器人之间的通信方式主要有两种,即直接通信和间接通信。直接通信要求发送和接收信息能保持一致性,因此机器人之间需要一种通信协议,而且直接通信时发送方和接收方必须同时在线,间接通信没有此项要求。一般来说,直接通信存在于有智能的机器人之间,而间接通信存在的范围就比较大,如个体和个体通信、个体和群体通信、个体和环境通信等。目前,大部分关于多机器人的通信主要采用广播的方式,即个体机器人将自己的位置和传感器信息以及自己从事的工作信息广播出去,其他个体机器人可以按自己的需要选择信息,或主控机器人通过广播分配任务等。
与分层体系结构相对应,多机器人系统的通信模型也采用分层结构。为了便于集中管理,客户机/服务器模型示意图如图4-12所示。
图4-12 分层通信模型示意图
在图4-12中,通信模型总体上采用两层客户机/服务器C/S结构。控制中心与各机器人的通信服务器构成第一层,机器人通信服务器与功能模块构成第二层。控制中心的通信服务器负责与各机器人的通信服务器交互,实现信息的传递。当收到机器人通信服务器的连接请求时,总控制中心通信服务器开启线程为之服务,同时为其分配端口号,将机器人名称和端口号存入地址表中备查;机器人通信服务器是控制中心的客户端,而对功能模块而言,它是服务器,负责各功能模块间的数据交互,实现分布式计算;通信接口仅为客户端,负责指令的生成和解释,功能模块通过通信接口发送和接收数据。(www.daowen.com)
为了提高系统适应环境的能力,整个系统动态可扩充。关于模型的动态可扩充能力,我们可以将其分成两层理解,一是机器人系统的动态接入,由于采用了便于管理的C/S结构模型,在系统运行过程中需要接入机器人系统时,该机器人的调度进程向控制中心进程发出接入请求,控制中心进程启动新线程为之服务,当机器人系统退出时,控制中心进程结束相应的服务线程,释放资源:与此类似,在机器人系统内部,由于机器人的状态改变,需要启动或停止部分工作进程(线程)。启动工作进程时,该进程所在机器人的调度进程向工作进程发出启动命令;停止工作进程时,则发出命令将该工作进程挂起。工作进程如图4-13所示。
图4-13 工作进程结构
每个工作进程都包含两部分:网络接口和功能算法实现,算法实现部分并不需要考虑通信问题,它仅关注功能的算法实现,通过定义接口规范,可以保证功能算法部分的较强封装性,从而使算法的可移植性等功能大幅度加强。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。