无人机架构

2023-05-16

无人机架构

基本设计需求,如:

(1)慎思规划和反应式行为;

(2)容许不确定性;

(3)考虑危险;

(4)灵活性强。

闭环控制解决方案推荐用于不处理复杂外部事件的简单机器人系统。分层构架能很好实现构件的组织,但是在实时环境中处理外部事件时其反应过慢。推荐 TCA 用于较复杂的机器人项目,并已在众多移动机器人上得到应用。TCA 为性能、容 错、安全性和并发性提供了一套完整的任务协调机制和规定。TCA 架构由位于同一层次的任务或任务树组成。在运行过程中任务树会作很多动态调整以适应环境条件和机器人状态的改变。第四种解决方案黑板构架由一个中心黑板或 数据库构成,负责接收和发送命令、共享数据和解决冲突。它支持并发性且有异常处理程序来处理不确定性。

图1 移动机器人架构类型

接下来是具体架构演变从A-->D

A. 开放控制平台

OCP包括:

1)中间件基于实时CORBA ,提供一个通信网络将对象按client/server关系连接至组件;

2)仿真环境;

3)工具集成支持;

4)控制应用程序接口 (Application Programmer Interface ,API)。OCP中间件采用C++编写,并提供一个publish/subscribe环境,可在主机或其他分布式计算机运行而不必修改源代码

图2 OCP层级结构

B. WITAS分布式UAV架构

此设计的软件架构包括一个慎思、反应和控制部分,因此不再是一个分层递阶 结构而是一个“以反应为中心”的架构。此反应中心的架构是一个高度分布、松散耦合、并发的架构,具有很多反应控制和并发运行的服务进程。CORBA是一个 将对象和组件连接起来的中间件,它通过一个通讯服务建立client/server关系。图3所示为WITAS架构的一些上层软件组件。

图 3 分布式UAV WITAS架构的软件组件

 C. ARL/PSU智能控制器

ARL/PSU共分为三个层级,顶层为任务管理层,它响应中间层行为(如攻击规划实施)的控制请求。底 层行为层生成输出指令(例如给自动驾驶仪、传感器、发送信息)。只要不发生冲突,可执行多个行为。Long 等9指 出,IC架构的一些关键特性包括应对意外情况、自动实时动态规划、态势感知、常见的多机协作体系结构,以及列入新功能的灵活性和在任何层级可选的人机互 动。测试模型是一个固定翼的SIG Kadet Senior (总重14lbs),具有稳定的飞行特性和缓慢的飞行速度。

图4 ARL/PSU 智能控制器高层架构(2008)5

 D. SheLion UAV系统

他们的软件实现了以下功能,如硬件驱动、输入/输出、控制律实施、设备操作管理、多任务调度以及事件调度。他们称使用 了一种新型软件系统/行为架构,为新的模块和控制功能提供了灵活性和可扩展性。他们指出此架构可以普遍应用到无人机,包括机载软件系统和地面控制站的软件 系统。

  机上软件系统使用一个实时操作系统(RTOS),其中包括一个飞行控制和一个视觉处理模块,基于航电系统的硬件配置如图5所示。

图5 SheLion UAV系统的硬件配置

  飞行控制模块使用多线程框架,用于操作导航传感器和伺服作动器、日志记录飞行数据、与地面站通信以及实施自动控制算法。自动控制采用基于行为的体系结构8。SheLion飞行控制系统的框架如图6所示。

图6 SheLion飞行控制软件系统框架

 一 个类似的框架用于板载视觉计算机的实时图像处理。图6飞行控制的软件框架将每个设备或任务画成框图形式。NAV块与GPS辅助姿态航向参考系统 (AHRS)进行交互,提供飞行测量数据并估计无法直接测量的飞行状态(自动控制所必需的)。CTL块实施自动飞行控制律。它由NAV块所生成的全局共享 数据得到飞行状态,根据飞行状态执行控制算法,并生成控制信号驱动伺服执行机构。任务管理使用多线程架构,在这种架构中,每个线程是一个单独的任务。任务 调度由MAIN线程执行,由高精度定时器(纳秒精度)发出一个脉冲信号,按照预定义的频率激活MAIN线程。根据功能的复杂性,分配给每个线程一个时间范围/槽。

  Cai等16使 用基于行为的飞行调度块来区分不同的飞行模式。飞行计划可以存储在无人直升机的飞行调度块里或由地面站生成。任何无人机直升机的作业都被认为是带有特定参 数的特定行为(如控制信号和执行时间限制)。分层控制系统块(CTL)用于识别行为和实施相应的自动控制算法,驱动伺服执行机构。

SheLion的地面控制站是一个监控和指挥无人直升机的无线用户终端。在飞行测试中,数据由板载系统传输到地面站并显示。SheLion地面控制站框架如图7所示。

图7 SheLion地面控制站软件框架 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无人机架构 的相关文章

  • YOLOv2代码分析_读取labels[by zhangzexuan]

    YOLOv2代码分析 读取labels by zhangzexuan YOLOv2代码分析 读取labelsby zhangzexuan YOLOv2的输入代码阅读 嗯 现在参与的项目要求在人脸检测步骤直接连同人脸特征点一起预测出来 xff
  • 【企业微信】获取token & 发送应用消息

    企业微信获取token 存入redis 设置时长2小时 amp amp 发送企业应用消息接口 1 常量类 span class token keyword package span span class token namespace co
  • 学习笔记--HTTP-字段总结(一)-与传输实体相关的报文字段总结

    目录 一 概述 二 介绍一些常用字段 三 传输实体的一些属性 1 传输的数据类型 2 实体的语言类型和编码 3 编码类型 四 文件类型和压缩编码字段 1 Accept 2 Content Type 3 Accept Encoding 4 C
  • C/C++ 去掉宏定义__FILE__路径

    一 问题 在日志模块中往往带着文件信息 xff0c 有的源文件是加载其他路径下的源文件 xff0c 但是不想让别人看到文件路径信息 xff0c 只显示源文件的名字和行数即可 如下图所示 xff0c 有烦人的相对路径 二 解决方案 自定义一个
  • C语言提高(一)

    C语言提高 CS和BS的区别函数封装和数组形参退化为指针数据类型本质变量的本质内存分区模型全局区以文字常量区为例分析全局区 栈区堆区 函数的调用模型函数调用变量传递分析静态局部变量的使用栈地址的生长方向堆地址的生长方向内存的存放方向 以数组
  • ROS Gazebo(三):启动gazebo/URDF

    打开Gazebo的方式主要有两种 xff1a rosrun 和 roslaunch 1 启动ROS节点 启动ROS节点 bring up 机器人的标准工具是roslaunch 打开一个空的Gazebo世界命令如下 xff1a roslaun
  • Windows与Ubuntu之间通过网线传输文件

    一 windows与Ubuntu之间网线直连搭建局域网 把网线连好后 xff0c 在两个系统中做以下设置 Windows下的配置 右键右下角的网络图标 xff08 或者右键网络 属性 xff09 更改适配器设置 以太网 右键属性 TCP I
  • Jetson TX2——CAN口的使用

    Jetson TX2 之CAN口的使用 TX2上有2个CAN控制器 xff0c CAN控制器需要通过CAN收发器连接到物理总线上 具体参阅原理图和相关技术参考手册 下载地址 xff1a https developer nvidia com
  • Jetson TX2——串口的使用(TTL-RS485)

    Jetson TX2之串口的使用 xff08 TTL RS485 xff09 TX2串口设备 TX2 有5个 UARTs 到主连接器 其中UART3 用于 WLAN BT 有关 UARTs 的典型任务 请参见下表 查看可用串口设备 xff1
  • 面试题知识点全纪录---容器

    注意 xff1a 该博客仅是本人对掌握知识的测试 xff0c 具体内容请移步guide哥网站 xff01 xff01 xff01 https snailclimb gitee io javaguide 链接 JAVA集合框架 https w
  • 高并发-消息队列

    一 消息队列 消息队列在分布式系统中主要是为了解耦和削峰 什么是消息队列 我们可以把消息队列看作是一个存放消息的容器 xff0c 当我们需要使用消息的时候 xff0c 直接从容器中取出消息供自己使用即可 消息队列是分布式系统中重要的组件之一
  • Ublox-M8N GPS接收机UBX协议解析

    Ublox M8N GPS接收机UBX协议解析 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • Java清空List方法

    1 用list clear 方法清空list xff1b 用此方法 xff0c 其它引用该list的值也会变成空 2 用list 61 null来清空list 3 new ArrayList 来清空list
  • fastjson用java转json时间的格式化

    一 项目中需求遇到需要接收其他应用数据 xff0c 通过 64 RequestBody注解接收参数后 xff0c 到本地利用fastJson把json格式化 需要注意一下几点 xff1a 需要在调用JSON toJSONString 的时候
  • 工具类里面调用service接口或者mapper接口

    我们在开发中经常会遇到需要将一些频繁进行的操作抽取封装到工具类中 xff0c springboot不支持注入静态属性 所以在工具类中使用 64 Autowired或者其他注解自动注入会失败 xff0c 才用如下方法这可以避免注入失败 spa
  • windows下停止【kill】nginx命令

    杀死nginx taskkill fi 34 imagename eq nginx EXE 34 f taskkill f t im nginx exe stop bat taskkill f t im nginx exe pause
  • 基本类型对应的缓冲池

    基本类型对应的缓冲池如下 xff1a boolean values true and false all byte values short values between 128 and 127 int values between 128
  • 记录JVM中Eden区、Survivor from区和Survivor to区及Minor GC和Major GC的理解

    仅做学习笔记 JVM中Eden区 Survivor from区和Survivor to区 本文主要根据 深入理解JVM 中内存回收策略 xff0c 主要关注如下五个方面 xff1a 1 xff1a Eden区分配 2 xff1a 大对象直接
  • ubuntu下修改python默认版本的方法

    Ubuntu安装之后会面临多个python版本共存的问题 xff08 python2和python3 xff09 xff0c 但是有时候安装其他库的时候会安装在默认的python版本环境下 xff08 比如 xff0c 通常默认版本是pyt
  • C++:C语言实现HTTP的GET和POST请求

    https www cnblogs com diligenceday p 6255788 html

随机推荐

  • Linux C/C++ UDP Socket 网络通信

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 昨晚 Vv 让
  • Xcode工程创建多个target

    Xcode工程创建多个target 小菜本人有时候会在一个Xcode工程中新建多个包含main函数的 m文件用于用于学习Objective C xff0c 于是要用到target这个东西 target对应于一个可运行文件和一些编译配置 点击
  • JLINK简介

    一 什么是JLINK JLINK是一个兼容JTAG的仿真器 xff0c 作用是烧入程序和Debug 二 JLINK是如何处理数据的 xff1f 1 PC端应用程序将数据以某种协议格式 xff0c 通过USB接口发送给J Link 2 J L
  • 蓝桥杯单片机-DS1302时钟模块

    一 简介 1 采用SPI三线接口通信 xff08 SCK SDA RST xff09 上升沿数据被写入DS1302 xff0c 下降沿被读出 二 应用 1 在ds1302 c文件中定义三个数组 unsigned char code READ
  • 蓝桥杯单片机-定时器

    一 简介 有三个寄存器与定时器相关 xff08 TMOD xff0c TCON xff0c 数值设置寄存器TH TL xff09 1 定时器工作方式设置寄存器TMOD GATE 门控制位 GATE 61 0时 定时器 计数器启动与停止仅受T
  • 蓝桥杯单片机-NE555模块

    一 简介 1 NE555在开发板中用于输出频率可变 xff0c 占空比不变的方波 2 NE555是纯硬件的设计 xff0c 通过电位器RB3可改变其信号输出频率 不需要编程实现其功能 考点 xff1a 使用定时器的计数模式测量NE555输出
  • C语言学习笔记(基于单片机)

    目录 一 关键字部分 static code const extern bit sbit sft struct xff08 结构体 xff09 1 结构体的初始化 2 结构体的赋值 3 应用 data idata pdata xdata 与
  • 蓝桥杯单片机-赛前总结

    目录 一 省赛中开发平台涉及的模块 xff1a 1 IIC驱动 2 DS1302驱动 3 onewire驱动 4 定时器读取NE555频率 二 一些功能性操作 1 外部中断 2 矩阵按键 3 PWM输出 4 毫秒延时函数 三 需要注意的一些
  • 相互依赖的so库,在编译时如何解耦

    有时候 xff0c 我们写的程序 xff0c 会涉及到相互引用的问题 比如frameworks av media libstagefright下的这个libstagefright xff0c 被frameworks av media lib
  • boost库学习总结

    第一次使用boost库是因为网络编程 xff0c 由于时间比较紧 xff0c 没有时间每个库都学 xff0c 所以前期想找个专门的boost库网络教程 xff08 以前自己就用过socket写过 xff0c 但是为了跨平台 xff0c 而且
  • C51单片机判断点亮的是奇数位还是偶数位

    学单片机的时候想到一个问题 xff1a 如何判断单片机点亮的LED灯是奇数位还是偶数位 xff1f 在网上搜了一圈没找到 xff0c 于是打算自己写一个 单片机型号 xff1a AT89C52 xff0c LED为低电平有效接法 xff0c
  • Linux学习笔记——如何在交叉编译时使用共享库

    0 前言 在较为复杂的项目中会利用到交叉编译得到的共享库 xff08 so文件 xff09 在这种情况下便会产生以下疑问 xff0c 例如 xff1a 1 交叉编译时的共享库是否需要放置于目标板中 xff0c 如果需要放置在哪个目录中 2
  • 实例变量(instance var)与属性(@property)的关系

    实例变量 instance var 与属性 64 property 的关系 Objective C 2 0之后 xff0c 声明一个 64 property name自动产生一个实例变量 xff0c 名为 name xff0c 因此省去实例
  • VS+CUDA+Matlab环境配置经验 (达到用matlab使用nvcc进行gpu并行加速)

    前前后后配了一个多星期的环境 xff0c 终于完成了 xff0c 梳理一下我的经验给大家分享也留作以后参考 一 版本兼容性问题 一开始安装的时候我并不懂 xff0c 没有什么顺序和版本的概念 xff0c 所以各种组件不能相互支持 首先明确
  • 华为无线WiFi配置802.1x认证

    一 拓扑 xff1a 二 简介 xff1a 本篇主要介绍华为交换机设备配合Windows server 2019配置的802 1x 43 NPS协同做的有线网络认证 xff08 可跟做 xff09 现有的华为6605无线AC配置 xff1a
  • 寝室一伙计

    我们寝室一伙计 xff0c 昨天晚上睡觉的时候 xff0c 说梦话 xff0c 笑 xff0c 磨牙 xff0c 还有吃奶 xff0c 等等等等 xff0c 我服了
  • Qt学习笔记(五)重定向

    实时获取程序中qt所输出的信息 xff0c 并显示到QTextBrowser上 1 在main文件中添加以下内容 xx为你的界面类名 xx clk 61 NULL void myMessageOutput QtMsgType type co
  • 串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)

    利用串口进行通信 xff0c 当发送方 xff08 A xff09 将数据写入串口后 xff0c 通过无线或有线方式将数据传送给接收方 xff08 B xff09 xff0c B通过调用串口读方法comm read 参数 即可将数据读出 原
  • robomaster电控究极学习教程(以哨兵为例)------一、串口dma和遥控器

    robomaster电控究极学习教程 xff08 以哨兵为例 xff09 一 串口dma和遥控器 文章目录 robomaster电控究极学习教程 xff08 以哨兵为例 xff09 一 串口dma和遥控器 一 串口DMA的作用二 步骤1 c
  • 无人机架构

    无人机架构 基本设计需求 xff0c 如 xff1a xff08 1 xff09 慎思规划和反应式行为 xff1b xff08 2 xff09 容许不确定性 xff1b xff08 3 xff09 考虑危险 xff1b xff08 4 xf