作者:Murtaza Bohra,Quanser无人驾驶系统工程师
几个月前,我与人合作了一篇白皮书阐述了为什么思考(计算)和交谈(沟通)是集群生态系统里的两个至关重要的原则。此外,白皮书还提供了一些在集群系统中实现计算和通信框架的常用方法。下面是一个使用Quanser的QDrone(来自自动驾驶车辆研究实验室应用的飞行器)的实例。
系统
我们集群系统的构成是一个地面控制站(GSC)PC,路由器,Optitrack定位系统,以及一组无人机。下图表示了一个正运行通信的高级视图。GCS PC和所有的QDrone都连接到一个路由器,并通过无线通信相互通信。GCS PC运行MATLAB/Simulink,与此同时运行的还有Quanser的快速控制原型软件QUARC。所有的代码都是在Simulink的标准的图形用户界面上开发的。
架构
为了提高多机器研究效率,我们确定了研究人员在群组应用中所需要的关键功能,并以Simulink/QUARC的子系统的形式实现他们:
- 稳定器子系统提供了低等级的快速速率姿态稳定和对QDrone的读写访问。
- 控制器通过有限状态机来提供高等级位置控制和飞行安全。
- 任务服务器包含一个用户界面,用于为任意数量的机器设定所需的位置指令。它也从在Optitrack系统中获取位置预估的数据服务器中读取本地数据。
- 视觉传感器从摄像机中读取图像数据并进行处理。
最后,通过向QDrone和GCS PC发送和接收信息来将一系列块作为通信包装器。这是通过一个双向的TCP/IP流服务器/客户端设置完成的。
通过组合不同的功能,可以开发不同的应用。下图阐明了三种应用:手动飞行,目标跟踪以及集群。对于集群应用,我在伴有任务服务器和数据服务器在GCS PC上运行的QDrone上部署了控制器-稳定器子系统对。
集群
有了这个设置,我们可以开始组合子系统来让集群飞行。我在单一Simulink/QUARC模型中放置了稳定器和控制器,并在它周围(流客户端)放置了通信包装子系统。在单独的Simulink/QUARC模型中,我放置了一个任务服务器以及更多的通信包装器子系统(作为流服务器)。这在任务服务器和控制器-稳定器对建立通信渠道。这个功能在控制器-稳定器对中的应用是与目标无关的。因此,我能同一时间在以下视频里的所有六个QDrone中部署相同的代码,并为六个QDrone设置任务服务器来发送统一的三维闭合螺旋路径。
这种集群结构是拉格朗日式的,其中一些计算发生在GCS PC(路径规划和避碰),剩下的发生在每一个QDrone(位置控制,姿态稳定和飞行监控)。每个机器的行为都彼此独立。但是集群行为却是集体发生的。为了实现欧拉集群,所有的计算都发生在GCS-PC上,在PC上布置指令和任务服务器(带有正确配置的通信包装器)。此外,在所有的QDrone上设置了稳定器。
因此,不管你对集群采用何种方式,这个系统都工作,并且完美无缺的运行(当然,在经过测试和微调以后)。
Cheers.
翻译:Edison Zhong
本文地址:http://www.chinaai2.com/?p=16764
原文地址:https://www.quanser.com/blog/swarm-of-qdrones/
相关产品链接:http://www.chinaai2.com/?post_type=products&page_id=10860