OpenUAV:CPS 和机器人社区的无人机测试平台
转载 2022-07-04 10:24 飞思实验室 来源:飞思实验室开源 PX4 项目和QGroundControl等工具创建了可以简化多旋翼控制和基本飞行的自动驾驶仪。为了使编程更容易,创建了ROS 包MAVROS 来与PX4通信。MAVROS允许用户在更高级别控制多旋翼,因此程序员可以专注于算法实现而不是基本飞行。为了开发自动化控制、特定任务的多旋翼飞行器以及未来无人机的额外开发,需要新的工具和模拟器。
图1 在浏览器上看到的模拟DJIf450多旋翼飞行器,通过openuav模拟器上的gzweb启用
目前,为了开发无人机软件或进行无人机实验,开发人员或研究人员从模拟开始,然后转向真正的机器人。图2显示了一个示例仿真环境。对于模拟,用户(即开发人员或研究人员)通常使用流行的工具ROS和Gazebo,使用ROS与Gazebo中的模拟机器人进行通信。要运行可视化,用户可以使用Gazebo或rviz。
图 2 openuav 仿真界面截图
设置这些工具的过程需要精通 UNIX(或 Linux)系统并使用功能强大的台式计算机。这种进入壁垒会抑制研究人员并阻碍现场系统的创新。这里,描述了OpenUAV,一种专为无人机设计的开源、基于Web的仿真测试平台。据我们所知,这是第一个开源的、支持云的无人机测试平台。通过使用如图2所示的基于云的模拟,由Ansible自动化,我们减轻了用户在设置和昂贵的计算机硬件要求方面的先前Linux知识,这共同降低了进入门槛。
图3 openuav 测试平台概述。用户(白色)与前端界面(蓝色)交互,前端界面调用必要的脚本以在后端 openuav 服务器(红色)上使用用户设置运行程序
Openuav 服务器组件
OpenUAV Server组件负责运行模拟并将可视化和模拟数据报告回前端界面。服务器组件满足可部署性、多用户支持、易用性、速度和少量设置的要求。这些要求主要通过使用Docker和Ansible满足。
图4 容器的可视化表示:A、B 和 C。Docker比虚拟机更轻量级,因为它只复制运行应用程序所需的文件,而不是将整个操作系统复制到每个容器中
PX4和Mavros通过提供与Gazebo一起使用的软件在环 (SITL) 和硬件在环 (HITL) 模拟,缩小了模拟与真实世界测试之间的差距。SITL允许用户使用与真实无人机相同的代码进行测试,HITL 在无人机计算机上运行该代码,但在测试计算机上进行模拟以测试计算时间。这项工作的重点是SITL,因为用户在远程机器上,如果必须将一系列HITL计算机连接到模拟机器,则测试平台将无法扩展。我们能够将我们自己的基于DJI Flame Wheel F450框架的多旋翼飞行器添加到基本模拟中,如图5所示,该多旋翼飞行器用于2016年度NSF CPS UAV学生挑战赛,并扩展了测试系统。
图5 在opendav模拟器中使用的DJIf450机身和基于英特尔NUC i5的多旋翼无人机模型
前端接口
前端接口负责用户身份验证和与模拟的干净接口。前端界面满足测试平台的云可访问性要求,因为它托管在Cyber-Physical Systems Virtual Organization (CPS-VO) 网站上。CPS-VO是一个来自学术界和工业界的虚拟组织,其目标是增加关于网络物理系统的知识。图6是通过前端界面的可视化视图。
图6 CPS-VO 允许用户在通过 VO 网站进行身份验证后访问基于云的 openuav 模拟堆栈
通信架构和 CPS-VO 接口
图7显示了后端 OpenUAV 服务器和前端接口之间的通信。通信分两个阶段进行。首先,从Docker容器到运行Ansible的主机 OpenUAV服务器之间存在通信。其次,存在从主机、OpenUAV服务器到CPS-VO接口并返回的通信。为了提供安全性,SSL加密与前端的用户身份验证一起使用。模拟通过VO接口调用Ansible脚本来控制。模拟期间的可视化通过Gzweb发回。仿真后,ROSbags即 ROS日志将发送给用户进行评估。
图7 openuav 服务器、CPS-VO 网页和研究人员/学生之间的通信。如图所示,ansible 正在管理每个 docker 容器,并且容器通过转发端口连接到主机。
我们能够通过TensorBoard在 Internet上持续监控代理的进度。Tensorboard允许持续实时监控学习统计数据。此外,它允许用户查看原始数据和网络结构。Tensorboard托管在模拟容器内,并通过从不断更新的日志文件中读取数据来获取数据。Tensorboard的主要挑战是确保它可以从容器外部访问。我们能够通过转发到主机的端口来实现这一点。图 8显示了避障模拟中的Tensorboard浏览器界面。
图 8 来自避障模拟的张量板浏览器界面
多无人机案例研究的目标是确定使用我们改进的PX4控件设置和控制多架无人机的难易程度。PX4不是为了控制多个无人机而创建的。我们修改了PX4来模拟多个UAV,每个UAV都独立控制。我们选择了一个使用多架无人机进行计划优化的用例。这种编队已被证明对长途飞行的鸟类来说是节能的,如图 9 所示。
图 9 V 形队形中的最佳位置:每只鸟的视野清晰、速度匹配和上洗效益,除了没有获得上洗效益的鸡群领头羊
为了使用OpenUAV堆栈,我们编写了一个订阅Matlab代码发布的多无人机姿态数组的节点。然后,OpenUAV ROS节点将所需的位置和偏航(设置为固定值)发布到每架无人机上的PX4位置控制器。可以在Gzweb上的任务期间监控模拟(图10),然后可以收集一个rosbag文件进行分析。
图 10 屏幕截图显示了简化的 2D 可视化(顶部),以及 openuav 模拟器上四个无人机编队的 gzweb 视图
OpenUAV可以作为无人机仿真的有效测试平台。虽然案例研究在测试平台上是有效的,但因为与前端界面的通信正在开发中,缺乏简单的用户界面。用户必须通过ssh连接,同时还要在不同的url上查看Gzweb和Tensorboard。尽管如此,用户远程连接,几乎不需要安装,并且远程用户不需要本地计算机来进行测试。此外,多个模拟可以同时运行而不受干扰。
源自:2018 9th ACM/IEEE International Conference on Cyber-Physical Systems