对多智能体感兴趣欢迎+Wangzaixiaolatiao(VX)沟通。
一、引言
1.1、概述
多智能体协同控制系统即多个智能体组成的集合,它的目标是将大而复杂的系统集成设成小的、彼此互相通信和协调的、易于管理的系统。多智能体协同控制系统在表达实际系统时,通过各智能体间的通讯、合作、互解、协调、调度、管理及控制来表达系统的机构、功能及行为特性。
多智能体系统控制具有自主性、分布性、协调性,并具有自组织能力、学习能力和推理能力。采用多智能体协同控制系统解决实际应用问题,具有很强的鲁棒性和可靠性,并具有较高的问题求解效率。
多智能体协同控制系统是智能体技术应用及研究的一个质的飞跃,不同行业的专家学者对之进行了深入的研究并从多个角度阐述了多智能体系统用于解决实际问题的优势,归纳起来,主要有以下几点:
1、在多智能体协同控制系统中,每个智能体具有独立性和自主性,能够解决给定的子问题,自主地推理和规划并选择适当的策略,并以特定的方式影响环境;
2、多智能体协同控制系统支持分布式应用,所以要具有良好的模块性、易于扩展性和设计灵活简单,克服了建设一个庞大的系统所造成的管理和扩展的困难,应有效降低系统的总成本;
3、在多智能体协同控制系统实现过程中,不追求单个庞大复杂的体系,而是按面向对象的方法构造多层次、多元化的“狼蜂”智能体,要降低系统的复杂性,也要降低各智能体问题求解的复杂性;
4、多智能体协同控制系统是一个讲究协调的系统,各智能体通过互相协调去解决大规模的复杂问题;“狼蜂”智能体空地一体系统多智能体协同控制系统也是一个集成系统,它采用信息集成技术,将各子系统的信息集成在一起,完成复杂系统的集成;
5、在多智能体协同控制系统中,各智能体之间互相通信,彼此协调,并行地求解问题,因此能有效地提高问题求解的能力。
多智能体协同控制系统是在多无人车、无人机运动中,各个无人车及无人机之间能够保持一定的相对距离,并在速度及位置上按照预设路线或命令进行运动的过程。基于MATLAB/Simulink进行硬件在环控制算法开发和验证,可通过MATLAB/Simulink软件直接获取高精度的姿态数据和图像数据,并提供多无人车、无人机协同控制的OEMO程序。
多智能体协同控制系统主要做以下三个方面的研究:
1、编队队形的设计:多个无人车及无人机在指令下运行至指定的位置,并最终实现既定的编队形态,除了需要考虑无人机气动力影响外之外,还要考虑任务要求及无人车、无人机间信息交换的冗余度,同时保证无人车及无人机之间不会发生碰撞;
2、编队队形的保持,在无人车及无人机执行指令过程中能克服来自系统内部或外在环境干扰,进而保持整个队形不变;
3、编队队形的变换:在无人车及无人机行进过程中能够适应来自系统内部或外在环境干扰而对编队做出适当且合理的改变。
多智能体协同控制系统需要通过对无人车、无人机的定位,获取其在空间中的位姿,这种位置位姿信息主要是六自由度姿态数据,进行多智能体之间通讯的建立,最后通过控制决策系统根据智能体空间内的位姿完成系统控制。
定位无人车、无人机的空间位姿,是多智能体协同控制系统研究、实验最为重要的部分,只有获取准确稳定的定位信息,才能良好的控制无人车、无人机。作为定位的传统方法,惯性测量单元(IMU)和惯导模块(INS)存在陀螺仪零点漂移严重,导致获取的姿态、速度等数据精度不够,存在误差累计,很难长时间独立工作。
多智能体协同控制系统采用光学动捕技术(定位精度可达亚毫米级别),并通过WiFi网络实现多机间的通信,能够将MATLAB/Simulink开发的无人车及无人机编队仿真算法直接生成代码下载到无人车及无人机中,在室内环境下进行多车、多机分布式编队算法的验证。
1.2、多智能体协同控制系特点
● 室内定位系统:采用室内光学动捕技术,定位范围6m*6m,支持亚毫米级定位,能够最多同时捕捉12架左右的无人车或无人机;
● 被控制对象:2台无人车及4架无人机进行编队。
● 无人机飞控:无人机STM32F427(180MHZ)主控及STM32F100协处理器,内置三组IMU冗余设计,外置GPS和光流模块,支持TCP/UDP通讯协议。
● 视觉导航:256颗CUDA核心,CPU选用Quad ARM A57,4G内存,16G存储,要拥有丰富的外设资源和强大的运算能力。
● 无人车控制器:需配置NVIDIA TX2主板,打在激光雷达和视觉传感器与识别SDK,能够进行SLAM建模和图像跟踪。
● 基础开发平台:可在MATLAB/Simulink软件平台进行控制算法研究,支持自动生成代码,通过无线WiFi下载到无人车控制板和无人机飞控板。
● 扩展开发语言:支持C、C++、Python编程,适合有一定代码开发能力的学生,进一步锤炼代码编程能力;
● 基于模型(MBD)的设计:MATLAB/Simulink中提供了ROS的支持包,可试验Simulink控制模型到ROS系统代码的自动生成,降低了ROS系统控制模型的开发难度,适合大众化本科教学实验;
● 可用于无人系统的动态建模和控制研究、运动规划、避障控制、多信息融合、编队控制、多智能体协同控制、无人系统自主控制、足型机器人步态分析等。
二、多智能体协同控制系统
2.1、总体架构
多智能体协同控制系统包括实时定位系统、实时控制系统、多智能体协同控制系统,以及与之配套的无线网络通信装置。
实时定位系统采用光学动捕技术,主要由红外光学动作捕捉镜头、操作及分析处理软件和配件组成,可捕捉输出智能体精准的三维空间数据,系统精度可达亚毫米级。
实时控制系统是一台高性能台式服务器,运行Windows7以上操作系统,部署用于图像处理、定位跟踪、算法开发、模型编译下载以及进行数据坚实分析的软件,可同时作为开发主机和Windows目标机使用。
多智能体协同控制系统是指在上位机MATLAB/Simulink软件平台上进行控制算法开发,通过无线通信完成对若干无人车、无人机的集群协同控制。
2.2、系统布置
多智能体协同控制系统实验平台的实验室布置主要包括人机操作区和设备实验区,具体如下图所示:
● 人机操作区:该区域主要用于研究人员进行上位机操作开发,可在该区域控制和观察实验设备区内的实验对象,主要设备包括卓翼、上位机、路由器及必要的实验设施。
● 设备实验区:该区域主要用来进行图像获取、无人车及无人机的编队控制实验,进行实验时实验人员禁止进入,主要有8台摄像头、2台无人车、4架无人机以及必要的保护设施。
2.3、硬件架构
上图为平台系统硬件构成图,主要包括如下:
1、实时定位系统通过多个摄像头完成无人车、无人机的图形采集,将采集到的数据进行处理分析获得无人车、无人机精确的位置和姿态信息,并将处理结果发送给开发主机。
2、实时控制系统开发主机主要完成算法开发和Windows实时目标机功能:算法开发主要基于MATLAB/Simulink实现,结合实时控制软件,可实现代码生成、编译和部署;开发主机可作为Windows实时目标机,运行Simulink生成的Windows Target目标代码。
3、多智能体协同控制系统包括若干无人车、无人机,每个无人车、无人机上安装高性能计算单元和外围传感器,兼容MATLAB/Simulink,能够基于 MATLAB/Simulink进行控制器开放式硬件,实现多智能体协同控制、视觉SLAM等复杂算法研究。
备注:为保障实验、学习人员的安全,进行编队控制、控制开发、步态分析、运动规划等实验时,实验、学习人员智能在开发主机端操作,不可进入编队活动工作区域,确认无人机、无人机车、足型机器人停止后才能到工作目标工作、连接线缆、调试设备等操作。
2.4、软件架构
系统软件分为“上-下位机”两部分,主要包括:
1、上位机软件:基于Windows操作系统个,提供图像定位处理的软件、ROS实时示例软件、地面站软件、实时控制软件;
2、下位机软件:基于ROS系统,提供无人车/无人机控制板的硬件驱动、实时仿真引擎以及控制模型实时代码。
三、多智能体协同控制系统组成
3.1、实时定位系统
实时定位系统采用光学动作捕捉技术,主要由红外光学动作捕捉镜头、操作及分析处理软件和配件组成,可捕捉输出物体精准的三维空间6DoF位姿信息,系统精度可达亚毫米。
3.1.1、硬件组成
优势:
亚毫米级精度:基于专用的SoC芯片和高效三维重建引擎,每一帧动作的捕捉精度都可以达到0.1毫米级精度;
多种标记点配置:Goku™支持被动标记点、主动标记点、全局时码同步标记点的系统配置,方便使用和运维;
易于部署:数据、供电、同步只需共用一根RJ45网线,部署简单;
极低系统延时:得益于Goku™的超高采样率,光学系统延时<4ms,光惯融合模式延时更低至1ms*;
支持光惯融合:可以提供6自由度、高精度、高可靠性、高采样率的空间捕捉数据。
3.1.2、软件组成
室内定位软件基于计算机视觉原理,通过布置在空间中的多个红外摄像机,将捕捉区域内物体上反光标识点的运动信息以图像的形式记录下来,然后对该图像数据进行处理,实时地解算出运动物体的六自由度位置和姿态。室内图像定位软件可实时和准确地解算捕捉区域内单个或多个刚体的六自由度位置和姿态,可为各类型的小飞机和地面小车、机器人、机器狗、机械手臂等运动体的控制提供六自由度姿态和位置的准确测量信息。支持一键式标定。一键式创建刚体、全三维界面展示,软件使用友好。
一键式标定、一键式创建刚体、界面全三维展示、软件使用友好
2、系统标定
1)内置ZVR Calib高效多目视觉标定算法,使用T型工具进行高精度自动标定
2)使用L型工具进行地平面标定
3)Goku™ Tracker视觉惯性内参及外参自动标定
3、支持数据格式
• RAW
• BVH
• C3D
• FBX
• OpenVR
• VRPN
• TCP/UDP Streaming
4、丰富的第三方接口
3.2、实时控制系统地面控制系统
3.2.1、硬件组成
实时控制系统硬件是一台高性能台式服务器,运行Windows7以上操作系统,可同时作为开发主机和Windows目标机使用。
具体参数:惠普(HP)Z440台式机 工作站 E5-1603V/8GB ECC/1TB SATA/P600 2G 独显/DVD-RW/24吋显示器。
3.2.3、软件组成
实时控制软件包为Simulink增加了强大的工具和功能,使复杂的实时机电一体化和控制应用的开发和部署变得更加容易,支持直接从Simulink设计的控制器生成实时代码,并在Windows目标机、VxWorks、嵌入式Linux、Ubuntu等多种目标机上实时运行,所有这些都无需数字信号处理或无需写任何代码。
可以让学生把关注点放到控制概念上,而不是繁琐的代码辨析。用户界面易于理解,这意味着学生不需要任何广泛的培训。它们试用清晰的控制模板,并与教科书中试用的标准系统框图相匹配。学生可以通过更改Simulink途中的块参数来调整运行模型的参数,查看模型中信号的状态,并将数据流传输到MATLAB工作区或文件以进行离线分析。
§ 友好的用户界面
● 完全支持Simulink®外部模式,包括示波器、浮动示波器、显示器、工作空间、在线参数调整等;
● 支持模型引用,允许模块化面向对象的模式设计和增量编译和链接,以加速大型模型的开发;
● 支持范围出发和数据归档,以实现复杂、大容量的数据采集;
● 将数据记录到MAT文件和M文件;
● Simulink Coder代码优化支持;
● 性能诊断,例如,样本时间的测量,计算时间,经过的时间等;
● 用于监视模型的标准I/O的控制台,可用于远程目标机;
● 能够使用MATLAB GUI,LabVIEW面板,Altia等连接控制器。
§ 丰富的硬件接口
● 支持National Instruments等多个厂商的数据采集办卡;
● 支持多种类型的目标机;
● 支持用户自定义采集卡。
§ 与协议无关的通信框架
● 全套数据流块,用于与正在运行的控制器外部的锦城进行任何同步或异步通信;
● 支持TCP/IP、UDP、串行、共享内容、明明管道、SPI、I2C、CAN等其他协议;
● 可扩展的框架,支持控制器与本地远程应用程序之间的分布式控制,设备接口、远程操作和一般进程间通信;
● 外部通信接口以C/C++、MATLAB和NET语言提供。
§ 支持多线程,多速率和异步模型
● 多处理器支持,可提高采样率和性能;
● 支持多线程和多速率模型;
● 支持Simulink模型中的异步线程,非常适合异步通信等;
● 在本地和/或远程同时在单位目标或多个目标运行多个模型;
● 控制模型可部署到嵌入式单板目标机,设置为开机自启动。
实时控制软件包安装后,集成在MATLAB/Simulink环境下,主要包括Links Simulinkib工具箱和Links Coder代码生成模块。
3.2.2.1、Links SimulinkLib工具箱
Links SimulinkLib工具箱提供多种类型的Simulink模块封装,包括数据采集模块(AIO、DIO),通讯模块(SIO、TCP、UDP、I2C等),计数器模块和常用工具模块等。用户通过添加硬件接口模块到Simulink模型中,可完成真实硬件的访问。
● 无人机控制开发工具箱
无人机控制开发工具箱包括IMU传感器模块、电池电量测量模块、RGB摄像头模块和深度摄像头模块等,模型编译时可生成相应的C、C++代码。
● 无人车控制开发工具箱
树莓派工具箱包括GPIO读写模块、I2C读写模块、PWM输出、UART读写、SPI读写模块、UDP收发模块、TCP收发模块和摄像头模块等,模型编译时可生成相应的C、C++代码。
● PX4工具箱
PX4公爵想包括传感器、执行结构、uORB通讯、ADC和UART模块等,模型编译时生成相应C、C++代码。
● Windows Target工具箱
Windows Target工具箱包括多种类型的数采和通信模块,其中Packet Input和Packet Output中封装了UDP等多种类型的通信接口,配合不同的解包组包可完成Windows Target和无人机、无人车之间的SDK仿真,获得远程节点上的传感器数据,控制远程节点上的执行机构。
● ROS工具箱
ROS工具箱包括发订阅信息、发布消息、修改参数、读取参数、解析图像、解折点云图模块。
3.2.2.2、Links Coder代码生成模块
Links Coder代码生成模块的功能是将Simulink模型转换为C、C++代码,并进一步编译成可执行文件。Links Coder模块支持多个目标硬件平台,包括Windows Target、NVIDIA TX2、树莓派、ROS、PX4、VxWorks等,在模型编译时可针对不同目标硬件平台进行配置。
3.3、多智能体协同控制系统
多智能体协同控制系统是指在上位机MATLAB/Simulink软件平台进行控制算法开发,通过无线通信完成对若干无人机、无人车的集群协同控制。
3.3.1、硬件组成
多智能体协同控制包括若干无人机、无人车(标配为4个无人机、2个无人车),每个无人机、无人车上安装有高性能计算单元和丰富的外围传感器,完全兼容MATLAB/Simulink,能够基于MATLAB/Simulink进行控制开放式硬件在环设计,可实现多智能体协同控制、视觉SLAM等复杂算法研究。
3.3.1.1、四旋翼无人机
四旋翼无人机,控制部分硬件采用高性能控制板NVDIA TX2+飞行控制PX4的成熟架构,结构上设计了一套碳纤维防护框架,确保室内飞行时无人机和实验人员的安全性。
无人机配置参数如下:
● 尺寸:不大于520mm*520mm*220mm,带碳纤防护框;
● 起飞重量:不大于1.8kg,其中空机1.0kg,负载重量0.8kg;
● 续航时间:不小于15分钟;
● 飞控:采用STM32F427(180MHZ)主控及STM32F100协处理器,内置三组IMU冗余设计,5路UART,1路12C,PPM/SBUS遥控器输入,1路CAN总线,1路ADC,12路PWM,外置GPS和光流模块;
● 视觉导航板:256颗CUDA核心,CPU集群双核丹佛2处理器和四核ARM Cortex-A57,8G内存,16G存储,1路无线WIFI接口,1路千兆网口,1路HDMI接口,1个TF卡座,2路RS232串口,1路3.3V SPI接口,4路3.3V GPIO;
● RGB-D相机(前置):深度流输出分辨率1280*720,帧率可达90fps,深度距离0.11m-10m,RGB传感器分辨率和帧速率1920*1080 30fps,USB接口;
● 普通单目镜头(下视):720 30fps,视野60度;
3.3.1.2、无人车
无人车控制部分硬件采用NVIDIA TX2+OpenCR的成熟架构,动力部分也保持原有的配置。主要针对结构部分进行定制,预留(机械手安装位置。软件部分进行了Simulink工具箱的集成开发。)
无人车配置参数如下:
● 控制器:SBC单板电脑1个:NVIDIA TX2 核心板,运行Ubuntu操作系统;
● 摄像头:Kinect v2.0深度传感器1个,深度探测范围:0.5m-4.5m;
● 移动底座1个;
● 传感器:激光雷达RPliar A2 1个;
● 最大速度:75cm/s,最大旋转速度:195度/s,最大承载:5kg;尺寸:直径351mm,高度124mm,爬高:怕生门槛12mm;
● 预估惭怍时间:3.5h;
● IMU包括:3轴陀螺仪1个,3轴加速度计1个,3轴磁力计1个;
● 碰撞传感器:左侧1个,中部1个,右侧1个。
3.3.2、软件组成
控制开发软件包NVIDIA处理器板软件和PX4飞控板软件,其中NVIDIA主要实现任务规划、决策以及视觉处理,PX4费用主要实现飞行控制功能,两个处理器之间通过高速UART接口通信,使用Mavlink通信协议。两种处理器完全与MATLAB/Simulink兼容,能够基于MATLAB/Simulink进行控制器开放式硬件在环设计。
§ NVIDIA处理器软件
NVIDIA处理器软件包括操作系统、硬件驱动模块和目标机管理模块,其中操作系统支持Ubuntu 16.04两种,能够实现内存管理、任务调度都能功能,提供软件基础运行环境;硬件驱动模块包括PWM、SPI、I2C、AD等,用户可通过Simulink模型中对应的模块完成地城硬件驱动的调用。
目标机管理模块Simulink主机和NVIDIA目标机之间的桥梁,主要实现目标代码下载功能、目标代码加载到内存功能和仿真控制台功能。
§ 飞控板软件
PX4飞控软件主要包括操作系统、硬件驱动模块和PX4开源协议栈,其中操作系统支持Nuttx操作系统,能够实现内存管理、任务调度等功能,提供软件基础运行环境;硬件驱动模块包括PWM、SPI、I2C、AD等,用户可通过Simulink模型中对应的模块完成底层硬件驱动的调用;应用层包括Simulink实时代码和PX4开源协议栈,Simulink实时代码可通过UORB通讯机制完成与飞控协议栈之间的交互,可替换协议栈中姿态控制、数据融合、导航等控制算法。
3.4、配套设备
3.4.1、千兆以太网交换机
以太网交换机采用TP-LINK公司生产的TL-SG1024T,具体参数如下:
● 网络标准:IEEE 802.3、IEEE 802.3u、IEEE 802.3ab、IEEE 802.3x;
● 端口:24个10/100/1000Mbps RJ45端口;
● 尺寸:294mm*180mm*44mm。
3.4.2、操作台
本方案提供两个双联操作台,为实验人员提供操作平台,主要功能如下:
● 安装部署定位系统主机和实时控制主机;
● 存放无人机和无人车;
● 存放一些备品备件和常用实验工具。
四、多智能体协同控制系统功能实现
4.1、实时定位
实时定位原理是外部光学镜头辅助定位,试用ZVR成熟的动作捕捉系统,可实现多运动体的精确定位,并支持实时控制软件包调用SDK实时获取最新6DoF位姿数据。
● 硬件环境:一套动作捕捉系统、1台开发主机、若干空中节点、路由器;
● 软件环境:开发主机上安装MATLAB2017A以上版本,实时控制软件包;动作捕捉系统主机上安装操作及分析处理软件;
● 操作流程:
1、准备好软件硬件开发环境;
2、运行动作捕捉操作及分析处理软件,使用标定工具对Goku™ 130矩阵进行校准并对齐地平面;
3、为每个智能体部署一个唯一的标记点刚体组合;
4、搭建Simulink仿真模型,添加动作捕捉模块,设置多智能体数量、目标机IP地址、动作捕捉主机IP地址;
5、在Active Center中注册所有智能体;
6、使用实时控制软件包完成模型编译,支持Windows Target、NVIDIA和树莓派三种类型的目标机;
7、在Simulink环境下使用外部模式控制模型运行,在Windows Target、空中地点上可直接获取最新6DoF位姿信息。
4.2、节点控制
节点控制可通过三种方式实现,第一种控制方式Simulink生成代码下载到Windows Target上,Windows Target运行实时仿真模型,通过网络SDK接口与空中节点进行通讯,实现空中节点的控制;第二种方式是Simulink生成代码下载到NVIDIA Target上,NVIDIA Target运行实时仿真模型,可直接访问硬件接口数据,不受网络通讯的影响,运行过程不依赖主机;第三种方式是Simulink生成ROS代码下载到NCIDIA Target上,NVIDIA Target运行实时仿真模型,可通过ROS接口访问硬件接口数据。
三种方式的软硬件环境是相同的,实现流程有一定差异。
● 硬件环境:Host开发主机、NVIDIA控制板;
● 软件环境:MATLAB/Simulink开发环境、实时控制软件包。
4.2.1、Windows Target实时控制
1、Simulink建模包括两个步骤,第一步建立出数字仿真模型,第二步从Windows Target工具箱中选择实时通讯接口模块加入到模型中;
2、模型配置包括文件配置文件配置和外部模式配置,目标文件选择sldrt.tlc,外部模式选择TCP连接;
3、单击Simulink模型编译按钮,自动完成模型编译和下载到Windows Target;
4、模型调试:选择external模式,单击连接目标机、启东模型按钮后模型处于运行状态,可通过Simulink Scope控件直接读取模型数据,通过滑块或者旋钮等控件修改模型参数。
4.2.2、NVIDIA Target实时控制
1、Simulink建模包括两个步骤:第一步建立纯数字仿真模型,第二步从工具箱中选择NVIDIA硬件接口模块加入到模型中;
2、模型配置包括目标文件配置和外部模式配置,目标文件选择ert.tlc,Hardware board选择NVIDIA,外部模式选择TCP连接;
3、单击Simulink模型编译按钮,自动完成代码生成、代码上传、模型编译及下载过程;
4、模型调试:选择external模式,单击连接目标机、启东模型按钮后模型处于运行状态,可通过Simulink Scope控件直接读取模型数据,通过滑块或者旋钮等控件修改模型参数。
4.2.3、ROS Target实时控制
1、Simulink建模包括两个步骤,第一步建立纯数字仿真模型,第二步从从巨响中选择ROS接口模块加入到模型中;
2、模型配置包括目标文件配置和外部模式配置,目标文件选择ert.tlc,Hardware board选择ROS,外部模式选择TCP连接;
3、单击Simulink模型编译按钮,自动完成代码生成、代码上传、模型编译及下载过程;
4、模型调试:选择external模式,单击连接目标机、启东模型按钮后模型处于运行状态,可通过Simulink Scope控件直接读取模型数据,通过滑块或者旋钮等控件修改模型参数。
4.3、视觉SLAM
视觉SLAM主要依赖相机完成团乡采集机,通过算法完成建图和定位。视觉SLAM方案可按照传感器的不同(单目、双目、RGBD、与IMU的组合等)、前段方法的不同(主要分为直接法和特征点法)、后端优化方案的不同(铝箔或者非线性优化)、生成地图形式的不同(稀疏地图、稠密地图等)具有不同的划分。这里主要以传感器的不同对SLAM方案进行简单的介绍。
1、单目SLAM。只使用一个摄像头采集信息,在尺度完成初始化的情况下(即相机初始阶段进行了一段唯一且确定了该段位的实际大小作为参考),能够完成连续图像间相机位姿的计算与建图。优点在于设备简单,成本低。缺点在于存在尺度漂移现象;图像的深度信息只能通过三角测量计算得到,对环境适应性差;在相机唯一较小时计算误差较大,建图精度不高。
2、双目SLAM。使用双目相机采集信息,双目相机可以通过立体视觉原理计算得到像素深度,这样就不存在单目SLAM中深度未知的情况。优点在于环境的适应性要高于单目SLAM,且能够计算得到像素真实深度;缺点碍于像素深度计算量较大,一般通过FPGA或者GPU加速实现实时计算输出。
3、RGBD SLAM。RGBD相机是指能够同时输出RGB图像和对应的深度图像的相机,其测量像素深度不在通过耗时的被动双目匹配计算,而是通过激光散斑增加图像文理急速计算或者硬件测量(结构光、TOF等)实现。因此它可以看做见笑了计算量的双目SLAM,但是RGBD相机普遍在室外表现效果不佳,更多用于室内环境。
4、今年来有学者提出单目/双目+IMU的SLAM方案,其中IMU主要起到的作用包括(a)解决单目SLAM的初始化尺度问题;(b)追踪中提供较好的初始位姿;(c)提供中立方向;(d)提供一个时间误差项一共优化。理论上来说IMU体用了冗余的运动信息,通过数据融合可以得到更加精确的运动估计。
本系统主要针对舍内运动体进行研究,空中节点的视觉传感器用了Intel RealSense R200,包括了一个深度摄像头的可见光摄像头,属于RGBD相机。下面介绍空中节点实现RGBD SLAM的硬件环境、软件环境和操作流程。
● 硬件环境:1台开发主机、路由器;
● 软件环境:空中节点预装Ubuntu16.04、ROS核心包、MAVROS包、RealSense包;开发主机上安装MATLAB2017A以上版本,实时控制软件包。ROS网络启动后,可以查看如下topic:
● 操作流程:
1、准备好软件硬件开发环境;
2、运行MATLAB/Simulink,基于ROS工具箱和实时控制软件包,搭建SLAM模型:试用两个ROS subscribe模块订阅可见光相机和红外相机的数据,经过SLAM算法处理得到空中节点的位姿信息;增加一个动作捕捉系统模块,属高精度位置信息,可作为我位置真值与SLAM算法结果进行分析比对;
3、模型代码生成配置、选择ert.tlc,Hardware board配置为ROS,设置空中节点IP地址、登录用户密码、ROS目录和catkin workspace;
4、检查空中节点的相关ROS节点是否正常启动;
5、模型编译生成ROS代码,自动部署到目标硬件上运行Simulink SLAM ROS节点;
6、在Simulink环境下使用外部模式控制模型运动,通过在线改参和实时监视功能完成模型调试。
4.4、协同控制
多智能体协同控制时当前的研究热点,多智能体之间通过相对信息交互及协同工作来完成某些特定的任务,本方案包括6个空中节点,节点之间采用无线WIFI作为信息交换媒介。
以下介绍分布式协同控制的软硬件环境和实现过程。
● 硬件环境:一套动作捕捉系统、1台开发主机、若干空中节点、路由器;
● 软件环境:开发主机上安装MATLAB2017A以上版本,实现控制软件包;动作捕捉系统主机上装操作及分析处理软件;
● 操作流程:
1、准备好软硬件开发环境;
2、运行动作捕捉操作及分析处理软件,使用标定工具对Goku™ 130矩阵进行校准并对齐地平面;
3、为每个智能体部署一个唯一的标记点刚体组合;
4、搭建空中节点Simulink仿真模型,添加动作捕捉模块,获得自身和其他智能体的位姿信息;搭建协同控制算法模块,计算结果输出到空中节点的执行结构模块;
5、使用实时控制软件包完成模型编译,分别将模型加载到空中节点;
6、在Simulink环境下使用外部模式控制模型运行,通过在线改参和实时监视功能完成模型调试。
4.5、节点间自主通信
通过无人机编队飞行,可以大幅度提高作战效率。由于编队中各成员之间的通信信息利用不充分以及传感器测量误差导致控制精度低的问题。通过一致性理论充分利用机间通信信息,并使用协同修正技术抑制测量误差和协同误差以提高队形保持的精度。
空中节点自组网通信是实现一致性编队的基础,本方案选择ZigBee作为自组网通信截止,ZigBee可以实现点对点和多节点的分组通信,组网方式非常灵活,可满足本系统的需求。
ZigBee模块和飞控板之间通过串口进行通信,飞控板基于PX4开源协议栈,开放全部源代码,支持ZigBee驱动的移植开发,同时提供ZigBee的Simulink疯转,可通过Simulink建模方式完成应用程序的开发。
五、实验内容
§ 基于Simulink书写仿真实验
● 单机姿态控制实验;
● 单机位置控制实验;
● 多机编队实验。
§ 定位系统试验
● 运动捕捉系统定位实验;
● 地面标记定位实验。
§ 单机飞行实验
● IMU数据采集实验;
● 摄像头数据采集和光流处理实验;
● IMU和市局传感器数据融合实验;
● 单机定高控制实验;
● 单机光流悬停实验;
● 单机姿态控制实验;
● 单机位置控制实验。
§ 无人车:
● 硬件组成认识;
● 软件开发环境学习和使用;
● 基于激光SLAM的机器人的自主定位导航;
● 基于3D摄像机的视觉深度处理及图像跟随。
§ 多机编队飞行实验
● 基于运动捕捉定位的多机编队飞行实验;
● 基于地面标记定位的多机编队飞行实验。
§ 多车编队运行实验
● 基于激光SLAM定位的多车编队运行实验;
● 基于地面标记物的多车编队运行实验。
§ 多智能体协同编队运行实验
● 基于运动捕捉系统定位的多车、多机编队运行实验;
● 基于期望目标任务的多车、多机编队运行实验。