乾天驭爪——智能空中作业机器人

乾天驭爪——智能空中作业机器人

    • 1.2 研究意义
      • 1.2.1景区垃圾清理
      • 1.2.2核废料处理
      • 1.2.3抢险救援
    • 1.3 方案设计及创新点
  • 第二章 电路与通信部分实现
    • 2.1 无人机主控制电路部分
      • 2.1.1 大疆妙算
      • 2.1.2 云台电路
      • 2.1.3 无人机图传电路
    • 2.2 无人机机载机械臂
      • 2.2.1 数字舵机电路
      • 2.2.2 舵机控制板电路
  • 第三章 无人机机械设计
    • 3.1 无人机机架设计
    • 3.2 机械臂设计
    • 3.3 三轴云台设计
  • 第四章 软件部分
    • 4.1 ROS软件平台
      • 4.1.1 ROS概述
      • 4.1.2 大疆Onboard SDK开发
      • 4.1.3 SLAM激光雷达环境感知
    • 4.2 Moveit!机械臂控制部分
      • 4.2.1 机械臂3D模型搭建与设计
      • 4.2.2 机械臂模拟仿真
      • 4.2.3 机械臂底层驱动
    • 4.3 基于OpenCV的无人机双目视觉
      • 4.3.1 guidance sdk开发
      • 4.3.2 目标物体图像识别
      • 4.3.3 基于各类目标跟踪算法的物体追踪
    • 4.4 无人机地面站开发
      • 4.4.1 QGC地面站概述
      • 4.4.2 地面站航点规划
      • 4.4.3 Dronecode SDK开发
      • 4.4.4 MAVLink协议
  • 第五章 无人机全自动收纳充电仓
    • 5.1 收纳充电仓设计
      • 5.1.1 概述
      • 5.1.2 模块化设计
      • 5.1.3 收纳充电仓自动充电设备
    • 5.2 收纳充电仓视觉识别
      • 5.2.1 系统模块
      • 5.2.2 视觉识别跟踪模块
      • 5.2.3 运动控制模块
  • 第六章 市场前景以及发展意义
  • 第七章 项目总结
  • 附录1 作品说明以及推荐者
  • 附录2 机器人各模块实物图
  • 参考文献:
  • 参考文献:

摘要

当前无人机主要于航拍等消费级市场,在行业级方面开发程度很低。目前市场上存在着悬崖等危险地带垃圾清理难,核废料等危险物品清理难,抢险救援精准放置传感器难等行业痛点问题。我们针对这些问题,设计了一款智能空中作业机器人

本项目基于一台行业级六轴无人机,能够实现固定线路巡检、自动驾驶、自动识别目标物体、进行拆解抓取等复杂操作,并研发了无人机自动收纳充电仓,能够实现无人机全天候、长续航自主作业。

在自动驾驶方面,基于Guidance视觉传感导航系统激光雷达避障设备,结合Cartographer算法、生成对抗网络、强化学习中的Q学习算法实现了高可靠性的精准避障;差分双GPS定位、多目视觉、光流、超声波辅助定位等多种定位方式融合可以可以实现毫米级精确定位,定位精度领先于市面上常见消费级无人机。

在空中作业方面,机器人安装有3+6多自由度双机械臂,机械臂上搭载视觉感知模块并应用了学术界最新的IKFast算法,可自动感知周围障碍物并计算出最优运动路线。

在目标识别方面,结合无人机的机载人工智能系统,研发出基于机器学习的智能目标识别定位算法,能够准确识别定位出目标物与异常点。

在无人机充电收纳方面,结合基于计算机视觉技术的运动目标追踪和精准定位,设计了一款无人机自动充电收纳仓,并利用太阳能充电和机械臂自动更换电池实现对无人机的电量补给,扩大了空中作业的覆盖范围,打造出全天候、长续航、全覆盖式的智能空中作业机器人。

综上所述,本项目可应用用于景区悬崖等危险地带的垃圾清理,核废料、化工废料等危险物品的清理和抢险救援时传感器的精准放置等场景。能够有效解决行业痛点问题,填补市场空白,具有广阔的市场前景。

关键字:生成对抗网络 强化学习 自动驾驶 IKFas算法 长续航 全程自动化 垃圾清理
抢险救援

Abstract

At present, unmanned aerial vehicles are mainly used in the consumer market such as aerial photography, with a low level of development in the industry. At present, there are some problems in the market, such as difficult to clean up dangerous areas such as cliffs, difficult to clean up dangerous materials such as nuclear waste, and difficult to accurately place sensors for rescue and relief. Aiming at these problems, we design an intelligent aerial operation robot.

This project is based on an industry-level six-axis UAV, which can realize fixed line inspection, automatic driving, automatic identification of target objects, disassembling and grabbing and other complex operations, and has developed an automatic storage and charging bin of the uav, which can achieve all-weather, long endurance and autonomous operation of the uav.

In terms of autonomous driving, the highly reliable and accurate obstacle avoidance was realized based on the Guidance visual sensing navigation system and lidar obstacle avoidance equipment, and the Cartographer algorithm was combined with the generation of antagonistic network and the Q learning algorithm in reinforcement learning. The fusion of multiple positioning methods such as differential dual GPS positioning, multi-vision, optical flow, and ultrasound-assisted positioning can achieve millimeter-level accurate positioning, and the positioning accuracy is ahead of the common consumer UAV on the market.

In the aspect of air operation, the robot is equipped with a 3+6 degrees of freedom dual mechanical arm, which is equipped with a visual perception module and the latest IKFast algorithm in the academic circle. The robot can automatically perceive the surrounding obstacles and calculate the optimal movement path.

In the aspect of target recognition, an intelligent target recognition and positioning algorithm based on machine learning is developed by combining the airborne artificial intelligence system of UAV, which can accurately identify and locate target objects and abnormal points.

In terms of unmanned aerial vehicle (uav) charge is received, combining with the moving target tracking based on computer vision technology and precise positioning, designed a uav automatic charging receive a warehouse, and realization of automatic replacement battery charging and mechanical arm with solar energy power supply of unmanned aerial vehicle (uav), expand the coverage of air operations, create all-weather, long life, full coverage type intelligent air homework robot.

This project can be used for the scenic cliff and other dangerous areas of garbage cleaning, nuclear waste, chemical waste and other dangerous goods cleaning and rescue and other aspects of the accurate placement of sensors. Can effectively solve the industry pain points, fill the gap in the market, with broad market prospects.

Keywords: generation of antagonistic network reinforcement learning autonomous
driving IKFas algorithm

  1. 概述

    1. 方案背景

无人机自诞生至今已经100多年,但近年来在硬件,软件和数据处理方面的突破使得无人机能够成为商用主流。仅在美国,联邦航空管理局(FAA)就预测2016-2021年间商用无人机机队将从42,000增长10倍至420,000。欧洲当局预计会有类似增长。我国的无人机产业发展也极为迅速,前瞻产业研究院发布的《2018年无人机行业现状与发展趋势报告》显示,未来我国民用无人机发展较快,到2023年市场规模有望达968亿元,年复合增速超过60%,未来市场容量十分可观。

市场的迅速扩张也来了一些问题,例如:行业内存在行业规划与规范低水平重复投资、高端项目攻破困难问题;消费者存在无序甚至违法使用无人机问题,给个人、社会或者民航都带来了重大的安全隐患。我国政府积极做出调整,自2017年以来,多个部门已经连续制定了多条有关无人机的严厉规定,地方版的各类“限飞令”也已纷纷出台,北京、成都、厦门、昆明等地划分了禁飞区。在国家的合理管控下,整个行业呈现出健康、快速的发展态势。

目前,民用无人机市场主要聚焦在以航拍为主要功能的消费级无人机产品。随着无人机产业链配套逐渐成熟、硬件成本曲线不断下降和市场价格的降低,无人机市场关注度持续攀升,消费级无人机的客户群体从小众拓展至大众,客户规模呈现指数级增长。因此也点燃了创业企业及互联网巨头的热情,大量低成本同质化无人机的不断进入让市场竞争更加焦灼,整个市场呈现出一片火热的状态,产业市场已经呈现出拥挤态势。

与消费级无人机市场的火爆相比,工业级无人机市场发展略为迟缓。因为工业级市场主要侧重飞机的技术性能和行业应用,在实际运用中需要与行业客户进行反复的沟通和不断地改进方案,因此具有很强的客户粘性和壁垒。工业级无人机在行业应用的深度和广度是技术与经验长期积累的结果,每个行业应用领域的潜在需求市场空间极大。我们研发的这款带臂无人机,可看作先期技术预研。着力点主要为提高无人机智能化水平,增强无人机多用途性能。

相对于消费级无人机市场的增速放缓,具有深厚技术积淀的工业级无人机厚积薄发,定能创造更大的市场。

1.2 研究意义

1.2.1景区垃圾清理

随着生活水平的提高,旅游已经成为国民生活中不可或缺的一部分。我国旅游资源丰富,无论是自然景观还是人文景观都遍布全国各地。然而在旅游资源丰厚的前提下,我国的旅游景区却面临资源如季节性紧缺的情况,这就容易导致旅游景区的环境超载和污染高发。例如每到假期,泸沽湖、九寨沟、香格里拉古城等旅游胜地都将迎接来自全国数以百万计的游客。超负荷的游客量带来的不仅是轰动全国的数千游客滞留景区事件,还带来了严重的旅游垃圾污染问题。新京报报道,2013年国庆“黄金周”期间八达岭长城6天清理109吨垃圾;据凤凰网报道,2014年国庆假期鼓浪屿日产垃圾70吨等等,激增的垃圾对景区环境造成了极大破坏,甚至可能无法完全恢复。

[外链图片转存失败(img-pE2skL04-1564595804829)(media/1c701aab02d993f7bfaccc09802a3ecf.png)]

图1.1 华山清洁工人深入悬崖下清理垃圾

由于景区的地理环境较为复杂,景区垃圾大多需要依靠人工清理。在处理悬崖、深水区等区域的垃圾时,不仅要投入大量人力,还要面临巨大的风险。此外,在风及水流的作用下,景区垃圾分布较广,使得人工清理的效率大大降低。

近年来,小型多旋翼无人机技术日趋成熟,随着自动控制、物联网、大数据等技术的快速发展,与无人机有关的环境感知技术、通信导航技术等也得到广泛的应用。

英国较早将无人机应用于大面积区域及危险区域的垃圾处理。然而我国在无人机清理高危地带垃圾方面才刚刚起步,巨大的市场和飞速发展的技术使得无人机清理高危地带垃圾具有广阔的市场前景。

1.2.2核废料处理

利用体积小巧,机动灵活,飞行稳定的多旋翼无人机代替人工处理景区垃圾成为了一套行之有效的方法。本产品正是从这种时代背景切入,提供模块化设计的小型无人机垃圾处理系统,且整体框架设计灵活,便于针对不同的景区环境投放。

[外链图片转存失败(img-LnUba49C-1564595804831)(media/928d7b19cddd89537015c631ff155f74.jpg)]

图1.2 日本福岛核泄漏造成千里荒无人烟

在经历了日本福岛核事故沉重打击后核电正在逐步走上复苏之路。核电作为安全可靠、技术成熟的清洁能源,并且,核电作为当前唯一可大规模替代化石燃料的清洁能源,越来越受到世界各国的重视

核废料是核物质在核反应堆(原子炉)内燃烧后余留下来的核灰烬,具有极强烈的放射性,而且其半衰期长达数千年甚至几十万年。也就是说,在几十万年后,这些核废料还能伤害人类和环境。所以如何安全、永久地处理核废料是科学家们一个重大的课题。

核废料只能靠放射性核素自身的衰变而减少,核废料放出的射线通过物质时,发生电离和激发作用,对生物体会引起辐射损伤。核废料中放射性核素通过衰变放出能量,当放射性核素含量较高时,释放的热能会导致核废料的
温度不断上升,甚至使溶液自行沸腾,固体自行熔融。由于核废料的这些特征,使人工处理核废料具有极高的操作难度和安全隐患,同时随着无人机等行业的快速发展和机械化的普及,无人机等智能机械成为处理核废料的一种高效安全的方案。

随着近几年核电厂事故频发,很多早已过服役期的核电厂都面临退役的处理,越来越多的无人机和机器人也将投入到这些高危的任务中。2011年日本·福岛核电站泄漏事故发生后,有很多机器人都在核灾区进行了辐射检测和燃料清理工作,如东芝专门为检测辐射量研发的“蝎子”机器人。日立也研发了两款机器人用于一号核反应堆的事故处理,其中,“变形机器人”可在狭窄管道内蛇行,为取出熔化后掉落的核燃料进行调查,“游泳型机器人”则可在核污水中自由移动,负责调查冷却水泄漏点及燃料状态。

不过,利用机器人进行核废料清理的研究仍然十分紧迫,上述用于福岛核电站的机器人均因遭受辐射太强而出现故障,最终一去无回。
我们研发的这款智能空中作业平台,搭载多种高精设备和传感器,计划可以利用视觉识别算法和GPS定位识别定位核废料,并利用机械臂实现核废料的安全捡取和处理。

1.2.3抢险救援

灾害事件发生突然,救援活动紧急,救援力量往往无法及时了解情况并快速到达现场,无人机可以在非正常状态下及时快速有效到达现场,第一时间收集到实时数据及时向指挥部报告监测情况,为事故检测、救援指挥与决策提供科学依据。

无人机技术用途越来越广泛,具有体积小、机动灵活、使用方便等优点,在救援方面开始大显身手,汶川地震。雅安地震等突发灾害事件救援中,均表现出不可替代的作用。

国外无人机在救援方面应用较早,2011年日本福岛核泄漏事件中,美国军方派出全球鹰无人机侦查反应堆,美国使用“牵牛星”、“捕食者”参与森林大火救援,还使用无人机进行飓风监测和灾后救援。针对救援情况,国外还研制了防碰撞、防水,运送医疗药品等类型无人机。

国家政府在四川汶川地震、青海玉树地震、四川雅安地震均派出无人机前往灾区进行救援工作。电商加速普及的无人机技术也正在应用到抢险救灾中,在今年汶川抗震救灾十周年纪念日当天,京东成立了首个全国性公益无人机救援队,以应对未来可能发生的地震等重大灾害。2018年7月17日,在北京市政府和北京市应急办的指挥下,京东抽调了两架Y3货运无人机和两架侦查无人机,前往密云区和怀柔区的受灾地区,协助进行应急物资运输以及灾区勘测工作,京东无人机运输物资占当天物资的30%。

[外链图片转存失败(img-rwzg2rED-1564595804832)(media/37a1fbaf1dcc066c965551dca9e0f1e6.png)]

图1.3 无人机用于抗震救灾

救援无人机可用于对灾区进行指挥和调度、物资补给等多种用途,我们研发的这款智能空中作业平台可运用精准的GPS实现灾区检测传感器的精准放置和救灾物资的投放,运用高精度摄像头和视觉算法实现灾区的地貌测绘,运用传感器进行受灾群众识别,实现灾区救援的功能。

1.3 方案设计及创新点

本方案采用一个六旋翼无人机作为平台,该无人机可载重5kg到6kg。无人机主体结构采用碳纤维板材切割而成,强度高,密度小,有利于减轻无人机总重,连接部分采用铝合金外刷漆防锈制成,结构强度高。机臂部分采用六根20mm的碳纤管,末端连接电机和电调,既对称美观又不易在飞行过程中偏坠。无人机最上方安装有一个云台和激光雷达,用于生成障碍物点云图从而感知周围障碍物。无人机前下方倒置一个三轴云台和运动摄像机,用于操纵者观察正前方视频画面。无人机后部安装有机载电脑和机械臂舵机控制板,机载电脑用于对协助飞控对飞行过程中的各种传感器数据进行储存和分析,从而控制其他机载设备。舵机控制板采用arduino
mega
2560,通过USB串口与机载电脑连接。机械臂部分采用双机械臂设计,由一个三自由度和六自由度的机械臂组成,三自由度机械臂采用遥控器远程控制,六自由度机械臂采用机载电脑自动化控制,并且六自由度机械臂具有环境感知的功能,可自动感知周围障碍物并规划运动路线。

创新点:

1.本项目解决了景区垃圾、危险核废料难处理的行业痛点问题,正如之前背景部分所描述的,自然风景区中山区、深水区等危险区域乃至核污染区域垃圾废料处理的难题一直耗费大量的人力物力成本。本项目基于无人机、机器学习、计算机视觉、自动控制等技术,有效解决了这一难题,具有较高的市场价值和行业前景。

2.多项创新和技术融合,综合应用了精准无人机定位、无人机自动控制等技术。采用强化学习中的Q学习算法和cartographer算法实现了稳定性高的精准避障。基于机械臂控制方面,应用了学术界最新的ikFast算法,极大的提高了机械臂运动速度和工作效率。

3.本项目采用了MANIFOLD
妙算机载电脑,拥有PC独立显卡级别的绘图能力,可以充分带动图像识别、自动控制、避障算法,高效准确地完成自动化、半自动化作业。

4.本项目自动化程度高,清理效率高。本项目基于强化学习、计算机视觉、无人机自动控制等技术,拥有较高的自动化程度。可以灵活高效地完成核废料清理险情抢救时关键设备布局等任务。

5.采用3+6自由度双机械臂配合作业,具有环境感知的功能,可自动感知周围障碍物并规划运动路线。

第二章 电路与通信部分实现

2.1 无人机主控制电路部分

2.1.1 大疆妙算

妙算为DJI第一代On-board SDK开发平台,配备了NVIDIA公司的低功耗性能嵌入式芯片Tegra
K1
作为核心处理器,具备最高达到326GFLOPS的计算能力。妙算与DJI经纬M100飞行平台高度集成,可以为用户提供便捷的开发途径。并且妙算支持用户自己最大化性能。有UART
2/UART 3串口以连接经纬M100飞行平台上的UART串口。

2.1.2 云台电路

1.云台控制板

云台控制板采用stm32f103的最小系统板,基于arm
cortex-m3微处理器,主频可达到168MHz,它具有64K字节的FLASH闪存器,最大64K字节的SRAM,功耗较低,拥有共12个DMA通道,以及多达15个通信接口,包括6个USART,3个SPI,2个CAN,以及一个SDIO接口,原理图如下图所示

[外链图片转存失败(img-nlyceDKB-1564595804834)(media/668acd3c9f9d9e5b3c2f50caa5c90111.png)]

图2.1 云台控制板原理图

2.云台电机

该三轴云台具有三个小功率微型精密减速电机,主要结构由传动齿轮,无刷直流电机构成,具有相应快速,起动转矩较大等特点,在水平,横滚,俯仰三个轴,通过stm32控制板的基于经典PID的闭环控制理论对云台进行增稳控制。

2.1.3 无人机图传电路

本无人机使用了两个模拟信号图传,分别是机载电脑图传与摄像头图传

1.机载电脑图传

机载电脑通过HDMI接口同步输出高清视频与双通道音频,介于HDMI无线数字图传需要技术方面比较苛刻,本项目采用HDMI转ypbpr的方式来对HDMI信号分离,进而通过模拟图传实现信号的远距离传输,模拟图传由于没有编码过程,因此在延时方面更有优势,该图传带有LC滤波器,能有效消除图传波纹干扰,做到视频信号滤波处理,该图传自带PA放大电路,总功率为2W,采用高增益平板天线代替普通天线起到信号放大的作用。

2.摄像头图传

采用AVL58的5.8G数字传输电台,该电台具有配套的地面端和空中端,具有频率切换的功能,本项目在接收机上新增了一个专用通道用于对数传进行频道切换,从而有效地避免同频道直接的干扰。

2.2 无人机机载机械臂

2.2.1 数字舵机电路

数字舵机可以将动力脉冲发送到舵机马达之前,对输入的信号根据特定的参数进行处理,做到优化舵机性能,该舵机采用PID优化算法,具有自锁功能,确保机械臂的稳定性。

2.2.2 舵机控制板电路

舵机控制是使用stm32f103实现的,其最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ。其运行速率可以满足本产品对机械臂底层驱动的要求,实现对机械臂稳定安全的驱动。

第三章 无人机机械设计

3.1 无人机机架设计

本项目无人机机架采用碳纤维材料,无人机自上而下共有四层碳纤维切割而成的板,碳纤板与碳纤管的连接采用金属件刷上防锈漆。电机座使用激光切割机切出形状后用铣刀钻出M4螺丝孔。本项目采用铝合金连接件固定电池板,电池板下倒置双机械臂。中心碳纤板上使用尼龙柱固定主分电板和24V降压模块,飞控和PMU固定于中心碳纤板后方,并通过铝合金连接件连接上方碳纤板。上方碳纤板固定机载电脑,OSD,图传等模块。最上方的板上装有单线激光雷达,周围无障碍物,可保证激光雷达测障的准确度。

3.2 机械臂设计

由于我们开发的带臂无人机目前有两种设计用途,一种为对某些物件的夹取搬运,另一种为高空作业、设备的简单检修,因此机械臂的设计中分为两类:夹取搬运类与空中作业类,每一类则可根据物件大小更换不同的“手指”型号,两类机械臂在闲置时都被折叠于机腹,在需要使用时才被调用张开。目前暂定夹取搬运类为两个展开状态长为80cm的4自由度机械臂,空中作业类则为一个展开长度为80cm的3自由度机械臂与展开长度为70cm的6自由度带摄像头机械臂。

在执行的任务为夹取搬运的时候,考虑到两只手一起搬运东西会更为稳健,同时仅一只手容易导致重心不平衡的问题,故采用双臂方案。同样地,机械臂的末端“手部”同样采取了模块化设计,根据需要夹持的目标物体大小可以快速地更换模块,以适应不同的抓取需求。既可以是抓取拥有把手的较大物体时使用的“双括号型”(<>),亦可以是捏取小型物体的“ll型”。“双括号型”在抓取时会扣住其把手,尽可能防止晃动,如果把手过于光滑而滑落,作为补救措施其亦不会掉出机械臂“手指”所构成的环。“ll型”亦如其名,为两根平行移动的机械手指,用于精确地捏取目标物体,或与另一只机械臂一同紧抓其两端将其取走。在机械臂的右臂上装有小型摄像头,以提供精准的物体定位服务,反馈至控制板以更精准地进行抓取。

执行任务为高空作业类时,机器人所搭载的机械臂为一长一短,自由度为3(长)+6(短)。考虑到空中风向风速多变、高空作业对于悬停稳定性要求较高,而目前无人机的悬停能力远达不到可以用于高空作业的稳定性,因而需使用长机械臂紧紧地抱住作业物体,稳定机身,再进行任务要求的作业。此机械臂末端手部全部采用类似于上文的“双括号型”设计,可以根据需要更换大小,当固定物为柱形时可以将其抱住,但考虑到有可能机械臂仅能固定在较小的长条形或柱形物体上,“手指”部位进行了改进,再指根部增加了小型的平口夹,用以紧紧夹住上述物体。用于执行动作作业的机械臂要求足够灵活,故采用6自由度机械臂设计,此机械臂上同样装备了摄像头,以便于足够精准地进行各个作业动作。其所装备的“手指”部分同样可以根据任务需求更换大小、型号。考虑到可能会有类似于拧螺丝的动作,其手指部位具有旋转270°的能力,以便于快速地完成需要转动某些部件的操作。

3.3 三轴云台设计

云台采用simpleBGC俄制三轴云台,具有三个小功率微型精密减速电机,含有水平(YAW),横滚(ROLL),俯仰(PITCH)三个轴,每个轴都由无刷直流电机组成,响应速度较快。其示意图如下:

[外链图片转存失败(img-dV6Tod0J-1564595804836)(media/d7be4f5dcd05909d6a512c610e82994e.png)]

图3.1 三周云台设计示意图

本三轴云台下端附有mpu6050陀螺仪传感器,负责检测云台的实时姿态参数,原始加速度,陀螺仪数据,和温度数据,经过传递矩阵的相乘把数据传递至云台控制板。上端附有hmc5583指南针传感器,可以实时检测地磁场数据。

对三轴电机的控制采用经典pid的闭环控制理论,通过pid控制方程:Kp*e + Ki*∫edt +
Kd*(de/dt)控制从mpu6050获得的加速度和角度信息。利用加速度计所获得的角度信息
θg 与陀螺仪积分后的角度θ 进行比较,将比较的误差信号经过比例Tg
放大之后与陀螺仪输出的角速度信号叠加之后再进行积分。对于加速度计给定的角度θg
,经过比例、积分环节之后产生的角度θ必然最终等于θg
。由于加速度计获得的角度信息不会存在积累误差,所以最终将输出角度θ中的积累误差消除了。加速度计所产生的角度信息θg
中会叠加很强的有四轴运动加速度噪声信号。为了避0免该信号对于角度
的影响,因此比例系数 Tg
应该非常小。这样,加速度的噪声信号经过比例、积分后,在输出角度信息中就会非常小了。所以可以精确的得到三轴的准确重力加速度gx,gy,gz加上从系统得到的delta
T,使用一阶Runge-Kutta计算式:

[外链图片转存失败(img-QvNw8Qcy-1564595804838)(media/66e3d92b51a37bc23d87f9f431d9faeb.emf)]

式(3—1)

得到旋转四元数q1,q2,q3,q4 来表明物体的空间角位置,按照下式:

[外链图片转存失败(img-xk0H4Edt-1564595804839)(media/3e49116a7a4901ec78eed368b2b5c57c.emf)]

式(3—2)

计算出姿态阵,从而得到了云台的准确航向角,俯仰角和横滚角。

控制软件例图如下:

[外链图片转存失败(img-f7tj552V-1564595804841)(media/fae0e8c095e161bf1787ec1ad70ed620.png)]

图3.2 三轴云台软件控制

第四章 软件部分

4.1 ROS软件平台

4.1.1 ROS概述

ROS是一个用于编写机器人软件的灵活框架,它集成了大量的工具,库,协议,提供了类似操作系统所提供的功能,包括硬件抽象描述,底层驱动管理,消息传递等等。ROS被设计成为一种分布式结构,在这个框架中的每个功能模块都可以被单独设计,编译,运行时以松散耦合的方式结合在一起,而且ROS中的功能模块都封装于独立的功能包(Package)中,便于整理和编译。ROS的多语言特性使其能够支持多种语言,例如Java,Python,Lisp,C/C++等语言,使机器人的开发更为灵活便捷,并且ROS软件集成度较高,基于节点的程序设计,让模块的代码移植,复用更加便利。

ROS的架构如图所示,它并不是一个传统意义上的操作系统,而是需要依托在开源Linux系统上。Linux是一个通用系统,本身并没有针对机器人开发特殊的中间件,因此ROS在中间层做了大量工作,最重要的就是TCPROS
/UDPROS的通信系统。

本项目采用的ROS搭载于ubuntu mate 16.04开源操作系统上,ROS版本为kinetic。

4.1.2 大疆Onboard SDK开发

SDK(Software Development
Kit),即软件开发工具包,用于辅助开发某一类软件的开发工具集合。大疆的SDK开发分为三中,Mobile
SDK,Onboard SDK的Guidance SDK。

[外链图片转存失败(img-nbsQUgJz-1564595804843)(media/238787b0b89899ca276a157f9beb0480.png)]

图4.1

本项目基于ROS机器人系统使用Onboard
SDK实现对无人机的自主飞行,例如:设定目标地点后自动飞行至目标中心,故障时自动返航等等,为无人机空中作业的安全增加了一层保障。Onboard
SDK使用飞控上的API串口,与机载电脑有线连接实现双向同步通信,传输除图像以外的所有数据。同时机载电脑将所需数据通过datalink数传无线发送到地面站,必要时可通过人工远程控制,实现了无人机机械臂的半自动化工作。

Onboard SDK搭载在妙算机载电脑的ROS工作空间中,该ROS工作空间同样也有Guidance
SDK,两者通过ROS这个平台巧妙地实现了通信部分。Guidance
系统将获取到的深度相机数据以及超声数据经计算后输出点云信息至ROS,与此同时,Onboard
SDK订阅该信息并通过API串口输出相关控制信号至飞控。飞控通过对电调的精准控制从而实现避障和精准路径规划等功能。

本项目将Onboard
SDK移植到了ROS机器人系统上,通过二次开发,增加了一键自动返航,以及精准悬停等功能,并通过ROS的SLAM雷达导航的API实现了无人机的自动避障,利用机载计算机扩展了无人机的功能。

4.1.3 SLAM激光雷达环境感知

[外链图片转存失败(img-EKb8BRf0-1564595804845)(media/ace2e7cc5def7932ce31f39e5866215e.png)]

图4.2 SLAM激光雷达整体流程图

激光雷达的必要性:相比相机激光雷达的优点在于,其探测距离较远,而且能够准确获取物体的三维信息另外它的稳定性相当高,鲁棒性好。

本项目采用强化学习中的Q学习算法和RBPF的方法,效果较为稳定,根据激光雷达和里程计的信息,对环境地图进行感知构建,并实时对自身状态进行调整和估计。所以即使无人机在环境复杂的山区和灾区,也能够安全得进行飞行和空中作业。

无人机的自主化工作需要无人机对外界的环境有清晰的感知,需要利用小型机载激光雷达实现。本项目通过单线的激光雷达的实现辅助控制。并使用基于cartographer的图优化算法实现导航和SLAM即时建图等功能。

[外链图片转存失败(img-R1r5DnHl-1564595804846)(media/c0cfdb1f05b07bdd11dbd7763be2405e.png)]

图4.3 cartographer图优化算法

激光雷达采用三角测距技术,配合视觉采集处理机构,它可进行每秒 4000
次的测距动作。每次测量过程中,激光雷达发射经过调制的红外激光信号,该激光信号经目标物体漫反射后被激光雷达的视觉采集系统接收,然后激光雷达内部的
DSP
处理器实时数据处理,计算出目标物体到激光雷达的距离以及当前的夹角,通过UART通讯接口转USB输出给机载电脑。

雷达在直流无刷电机机构的驱动下,激光雷达测距核心将顺时针旋转,从而实现对周围环境的
360°全方位的扫描,从而得到所在空间的平面点云地图信息。本项目采用国产Delta-2B
激光雷达,旋转频率为 4~10hz (360rpm), 在典型旋转频率下可以实现 0.3 ~
0.8°的角度分辨率,从而实现在 2D 平面的 2m ~8m 半径范围内进行
360°全方位扫描,采样频率5KHz并产生所在空间的平面点云地图信息。这些点云地图信息被用于无人机定位导航,同时采用基于carographer的开源SLAM库以及IMU模块实现2D和3D的室外SLAM建图,辅助机器人实现对未知环境,障碍物的感知能力。

由于仅仅依赖前端(里程计)的话有积累误差,并且很难修正。所以项目采用Cartographer理论模型来消除积累误差。

[外链图片转存失败(img-ZhJQIexX-1564595804848)(media/008acb73a409fae653fd27be89b71e44.png)]

图4.4 激光雷达整体流程处理图

Cartographer主要依赖激光雷达以及惯性导航仪(IMU)实现二维和三维的SLAM建图,相对于gmapping来讲优势在于实现了相对较低的资源消耗,提高了实时优化速度,有利于无人机在高速运行时提高建图速度与质量.其算法关键点在于将分支限界算法(branch
and bound)引入到loop
closure的过程中,加快了闭环的查找,提高与之前submap比较的效率.

Cartographer的实现并没有采用以往的滤波算法,而是采用了类似图优化的模型进行姿态解算,最后通过loop
closing非线性纠偏来消除这些误差,完成闭环反馈的控制.相对于karto来讲,两者都采取图优化框架,但采取的优化库不一致,karto采取的是spa或g2o,而cartographer采用的是google的ceres构建优化,采用4线程的后端优化相对于前者的单线程同时进行前后端的优化无论是速度还是准确度,都有明显的提升。

Cartographer采取双搜索的方式进行,先用一次三维窗口遍历寻优,再构建优化等式,利用ceres求解,并采用了submap的概念,依据一定熟练的扫描初始化一个submap,依据窗口大小,插入新的扫描数据,并更新submap,有地图缓存.相对来讲,karto无submap的概念,全部以扫描的方式储存在sensorManager.无地图缓存,但每次计算地图有计算消耗。

Delta-2B 激光雷达是通过 UART TTL
电平与外部设备通信的,仅支持单工通讯(即激光雷达主动发数据帧到机载电脑的ROS系统中),ROS系统只需从数据帧中提取有效数据即可,不需要做任何回应,通讯帧中的所有数据都是
16
进制格式数据。本项目利用激光雷达的单工通讯,在机载电脑端生成点云图,再由点云图,通过Onboard
SDK
的接口辅助无人机完成对障碍物的规避。同时依赖Cartographer完成对环境地图的构建。此后,通过ROS的代码控制无人机完成和目标物体的距离控制。

任务切换:可以通过远端发送指令或在信号丢失的情况下,切换不同任务模式,从避障切换到标定静止时,在下一次任务之前可由机载电脑完全控制飞行。

通过以上的设计,最终实现对环境的感知还有无人机的自主控制。SLAM建图和和无人机的自主控制的设计,能保证无人机的安全飞行,即使在遥控信号丢失的情况下,依然能通过自主的控制保证飞行器的安全。

4.2 Moveit!机械臂控制部分

4.2.1 机械臂3D模型搭建与设计

Moveit!是ROS中一个重要的集成化开发平台,支持众多的机器人硬件平台,本项目基于ROS的Moveit!开发平台进行二次开发。本项目采用solidwork软件搭建六轴机械臂及三轴机械臂立体模型,并制作出1:1真实机械臂。本项目在这两个模型基础上,添加坐标系与转轴,设置关节运动范围,并利用solidwork导出各个组件到URDF文件中。导出后创建一个类似ROS的包,并移植到ROS机器人系统上面进行仿真与测试。

机械臂的设计采用SW2016软件,连接件通过3D打印机进行打印,其他部分为激光切割机加工的碳纤管。设计时尽可能地提高模块化,使得连接件可以通用,也便于在执行不同操作时,地面人员对于机械手的更换、维护。由于左右机械臂被一起固定在一个3D打印出的基部上,吊挂于无人机的下方,故基部与无人机的固定牢靠程度会十分地影响无人机作业时的精准度。因此除基部的拉伸筋连接固定二者之外,还留有四个槽,以连接金属结构的固定件,使得基部与无人机底盘紧密贴合、尽量减少晃动(如图)。本项目在六轴机械臂及三轴机械臂立体模型的基础上,添加坐标系与转轴,设置关节运动范围,并利用solidwork导出各个组件到URDF文件中。导出后创建一个类似ROS的包,并移植到ROS机器人系统上面进行仿真与测试,并制作出1:1真实机械臂。

[外链图片转存失败(img-389UYq9o-1564595804850)(media/a5a227df545c494cd35a43896bb7b382.png)]

图4.5 机械臂在RViz可视化环境下的测试

在设计机械臂时,由于能力内能够设计出的理论上较为坚固的机械结构都略微臃肿、拥有较大重量,可能不便于吊挂上无人机,而较为轻便的结构又容易产生晃动,不足以进行需要一定精准度才能够完成的机械任务,因而需要通过对比以进行筛选,找出更为合适的结构。过程中使用Solidworks2016软件所带插件Simulation进行受力评测,以便于尽可能地优化设计,但机械上的问题,亦必将通过最终实体实验来证明其可靠性。

4.2.2 机械臂模拟仿真

Gazebo是一个3D的动态仿真软件,基于ROS机器人系统。本项目使用gazebo仿真环境对机械臂进行物理模拟仿真,可以通过仿真各个传感器,执行器的特性,最大程度上做到仿真结果的准确。

[外链图片转存失败(img-M2oKj8YC-1564595804851)(media/b73031799b5085b99f7a788a0c8af899.png)]

图4.6 Gazebo框架

4.2.3 机械臂底层驱动

4.2.3 机械臂硬件驱动接口

ROS的moveit软件通过硬件抽象层来直接与机械臂驱动板实现双向同步通信。对于舵机手臂的位姿,我们通过编写相关功能包,直接发布规划路径的各个点数据就是在goalCB内把数据取出来,再用publisher
发布出去,实现对实体机械臂的驱动。

1.实体机械臂:STM32嵌入式控制器使用位置PID闭环算法来计算由硬件抽象层通过串口通信方式发过来的关节数据,并将计算好的数据直接发送给电机对其进行控制。

2.硬件抽象层:硬件抽象层和硬件直接打交道,通过write和read方法来完成对硬件的相关操作。硬件抽象层跟上面官方提供(红色的部分)的有一些不太一样的地方在于我并没有使用ROS
Control提供的Transmissions(数据转换)和Joint Limits(关节限位)的API。

Transmissions就是机器人每个运动关节和电机之间的数学映射。因为机械臂关节结构的不同,会导致机器人上层规划所使用的Joint与Actuator数据之间存在明显的偏差。比如说有简单齿轮和同步带驱动的,有锥齿轮差动机构,四连杆机构等。Transmissions提供的接口中包含有解决上面这些结构进行数据转换的映射公式。

Joint
Limits主要是维护了一个关节限位的数据结构,里面可以包含的数据种类不仅仅是常用的关节位置、速度、力矩、加速度等方面的限位,还可以储存具有安全作用的位置软限位、位置边界和速度边界等。

控制器管理器提供一种通用的接口来管理不同的ROS
Controllers,它可以加载、开始运行、停止运行、卸载不同的Controller,并且提供了多种工具来完成这些操作。Controller
Manager的输入就是ROS上层应用的输出。在这里面,我用到了Joint Command
Controller和Joint State
Controller,它们分别可以完成对每个关节的控制以及读取硬件接口中关节的状态。

Simulation和Hardware之上的Hardware Resource和Controller
Manager是一样的,这很清晰地体现了ROS
Control的底层无关性,即无论使用的是抽象的仿真还是具体的硬件,只要程序能继承RobotHW硬件抽象层的基类来做到数据接口的统一,Controller
Manager就可以对相应的资源进行管理。

对于Simulation和Hardware来说,它们内部架构相似,但配置以及使用方式是不一样的。Simulation的RobotHW部分,Gazebo官方已经将其实现,并且提供了相应的ROS
Control插件来从机械臂的URDF文件中载入所需的数据。用户只需写好URDF和YAML文件,并使用ROS
Launch将其整合到一起就万事大吉了。

而对于Hardware这部分来说,除了上面说到的配置之外,我们还需要自己编写C++代码来继承RobotHW基类,并在里面分别使用命令和状态硬件接口句柄对相应的关节数据进行注册,然后再将不同的硬件接口注册到RobotHW上。最后,我们还要自己编写函数完成对关节和电机数据的相互转换,并且根据指定的通信协议,实现read和write函数。

仿真部分:使用gazebo仿真环境并启动Motion
Control测试,运行后可使用键盘按键来控制机械臂每个关节的位姿.

硬件部分:

(1)创建子类继承RobotHW父类,并且声明了一些函数和变量。

(2)初始化关节和电机数据,并使用Hardware
Interface对相应的数据进行注册,最后初始化与串口通信有关的Topic。

(3)根据机械臂公式,实现关节和电机数据之间的互相转换。

(4)实现定制的read和write函数。

(5)加载关节名字到ROS的参数服务器中。

以上就是硬件接口层的全部内容了。作为整个机械臂软件架构最底层的部分,它的重要性不言而喻。根据我之前开发机械臂的经验,只有编写出稳定且鲁棒的的硬件接口层,才能为之上的运动规划提供强有力的保证。

在Rviz中,本项目使用末端执行器上的交互式Marker来移动机械臂到目标位置。接着,你可以在Planning
Library的下拉式菜单中选择OMPL库中的某个特定规划算法(KDL数值解较差,本项目采用ikfast来代替)。点击Execute按钮,MoveIt!会将上一步规划出来的机械臂关节轨迹通过FollowJointTrajectoryAction接口发送给Gazebo中对应类型的Controller,使得Gazebo中的机械臂可以移动到目标位置(驱动真实机械臂时要将launch文件中对应gazebo接口更换成hardware接口)。

[外链图片转存失败(img-8IicwdqK-1564595804852)(media/ad0825ad537248d4002001dd9c83f6e9.gif)]

图4.7 机械臂驱动控制板

stm32f103是一款较为常用的单片机,它能满足本产品的要求。本产品决定使用PWM实现对舵机的驱动。

一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位置为中间位置。其中间位置的脉冲宽度是一定的,那就是1.5ms。角度是由来自控制线的持续的脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。当舵机接收到一个小于1.5ms的脉冲,同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不大脉冲为2ms。

本项目决定使用c++在stm32f103上进行代码编译实现从而实现对舵机的控制。首先要有一个与真实机械臂相一致的机器人模型文件。使用moveit配置助手生成配置文件。上一步生成的配置文件默认控制的是虚拟机械臂,需要修改部分文件,来告诉moveit!我们想要控制的是真实机械臂。首先demo.launch文件中参数fake_execution的值改为false。然后move_group.launch文件中,moveit_controller_manager在选择参数值时,“unless”前面那个value值要修改,写一个自己机器人名称作为前缀,例如“aubo_i5”。按照原先的设置,本应该启动fake_moveit_controller_manager.launch.xml,你可以去moveit配置文件夹下去找,这个文件是存在的,而现在,一个叫做aubo_i5_moveit_controller_manager.launch.xml将会被启动,而这个文件moveit也应该已经帮我们创建好了,当我们使用先前的moveit向导加载机器人模型时,机器人模型中写明的机器人名称(属性),就会作为前缀写入这个文件的文件名,所以,“aubo_i5”这个名称源自于你模型文件里写明的机器人名称,需要前后保持统一,理解各个文件之间的调用关系。

下一步修改aubo_i5_moveit_controller_manager.launch.xml文件。最后创建controllers.yaml配置文件。经过上述操作代码最后一句指向了config目录下一个叫做controllers.yaml的文件,这个文件很重要,决定了我们所使用的moveit控制器的基本参数。我们打开配置文件夹中的config目录,发现只有fake_controllers.yaml,所以,现在要做的就是复制一份这个文件,然后将名字改为controllers.yaml,现在要做的就是复制一份这个文件,然后将名字改为controllers.yaml,打开这个新文件,将文件修改。在这时候需要对一个文件进行修改,解决机械臂轨迹执行时超时的问题,经过我们的优化可以是机械臂稳定的运动。再通过action的配置,将action客户端的指令转化为机械臂能执行的控制命令。这样就可以实现对机械臂的硬件驱动。

4.2.4 六自由度机械臂运动路径规划

一.OMPL简介

OMPL(Open Motion Planning
Library)是一个开源的运动路径规划库。OMPL由于其模块化设计,使得较复杂的多自由度运动路径规划问题简化。

OMPL是一个大类,里面有不同的算法.OMPL能做什么?
简单说,就是提供一个运动轨迹。给定一个机器人结构(假设有N个关节),给定一个目标(比如终端移到xyz),给定一个环境,那么OMPL会提供给你一个轨迹,包含M个数组,每一个数组长度是N,也就是一个完整的关节位置。沿着这个轨迹依次移动关节,就可以最终把终端移到xyz,当然,这个轨迹应当不与环境中的任何障碍发生碰撞。

二.OMPL运动规划层设计

运动规划层在机械臂的自主抓取中扮演了非常重要的角色。而对于运动规划本身来说,里面涉及了非常多的专业知识,比如运动学正逆解算、碰撞检测算法、3D环境感知、动作规划算法等。本项目采用逆运动学求解的方式,把终端位姿变成关节角度,给定终端位姿计算关节角度,q=IK§。p是终端位姿(xyz),q是关节角度。概括来说,MoveIt!是ROS中与移动操作相关的组件包的集合。它包含了运动规划、操作控制、3D感知,运动学,碰撞检测等。当然,最重要的是MoveIt!提供了非常友好的配置和调试界面。

[外链图片转存失败(img-XTEuKzal-1564595804853)(media/8bbc471af28b8edc86f7140516a03925.png)]

图4.8 move_group架构图

move_group是MoveIT!最核心的部分,本质上还是一个ROS节点,使用参数服务器来获取以下三种信息.

URDF:
move_group需要机械臂的URDF文件来进行运动规划。

SRDF:
move_group在启动时会寻找机械臂的SRDF文件,它可以通过使用MoveIt! Setup
Assistant自动生成。

MoveIt!配置:
move_group在启动时会加载机械臂的关节限位、动力学、运动规划、感知以及其他相关信息。所有以上的配置信息都可以通过使用MoveIt!
Setup Assistant自动生成。

move_group使用ROS中的Topic和Action两种机制来与机械臂进行数据通信。它可以获取当前机械臂的位置信息,点云数据以及其他传感器数据,并且发送命令给机械臂的Controller.

关节状态信息:
move_group会监听机械臂的/joint_states主题来获取当前的状态信息。注意:move_group只管监听,你需要自己给机械臂配置好Joint
State Controller。

坐标转换信息:
move_group可以订阅机械臂的TF主题来确定机械臂内部各关节之间的位置变换关系。跟上面一样,你需要自己运行Robot
State Publier节点来发布坐标转换。

控制器接口:
move_group使用Follow Joint
Trajectory类型的Action接口来与Controller进行数据通信。move_group自己是不带Action接口的,它是使用了一个特殊的插件来发布上述Follow
Joint
Trajectory类型的Action,而对于机械臂来说,你依然需要自己配置上述类型的Controller来订阅机械臂的数据。

规划场景:
Planning Scene指的是机械臂本身以及其周围环境的表示(在Gazebo中显示)。

扩展能力:
move_group的所有组件都是以独立插件的形式实现的,而且这些插件可以通过使用ROS的参数文件或插件库来进行配置,这使得move_group拥有了强大的定制以及可扩展能力。

三.Motion Planning介绍

在MoveIt!中,运动规划算法是由运动规划器算出来的。当然,运动规划算法有很多,每一个运动规划器都是MoveIt的一个插件,可以根据需求选用不同的规划算法。MoveIt!默认使用的是OMPL。OMPL(Open
Motion Planning Library)是开源运动规划库的简写,它提供基于随机化的运动规划器。

运动规划请求:

在让运动规划器进行运动规划之前,我们要先发送一个运动规划的请求。这个请求可以是新的机械臂或末端执行器的位置。为了让运动规划器规划出来的轨迹符合要求,我们需要指定一些约束条件:

位置约束:约束机械臂Link的位置。

方向约束:约束机械臂Link的方向。

可见性约束:约束Link上的某点在某些区域的可见性。

关节约束:约束Joint的运动范围(实体机械臂取决于舵机可旋转角度,理论上小于等于机械臂可动角度)。

自定义约束:使用自定义的回调函数来指定约束条件。

四.运动规划结果

move_group节点最终将会根据上面的运动规划请求,生成一条运动轨迹。这条轨迹可以使机械臂移动到预想的目标位置。请注意:move_group输出的是一条轨迹,而不是路径。对于机械臂来说,路径是使末端执行器移动到目标位置的过程中,中间所经历的一系列独立的位置点。而轨迹则是在路径的基础上,通过加入速度、加速度约束以及时间参数来使机械臂运动的更加平滑。

五.规划请求适配器

在运动规划器的输入输出端分别有两个规划请求适配器。它们的作用分别是对规划请求和规划结果进行预处理和后期处理。MoveIt!提供了几种默认的适配器来完成一些特定的功能。

FixStartStateBounds:

当机械臂的一个或多个关节的初始状态稍微超出了URDF文件中所定义的Joint
Limits后,为了能让运动规划器可以运行,FixStartStateBounds适配器会通过将关节状态移动到Joint
Limits处来解决这个问题。不过,如果机械臂关节的偏差很大的话,这种靠软件方式修正的方式就不适用了。

以下为OMPL采用的适配器:

FixWorkspaceBounds:

这个适配器会默认地生成一个10x10x10立方米的机械臂规划空间。

FixStartStateCollision:

如果已有的关节配置文件会导致碰撞,这个适配器可以采样新的配置文件,并根据摇摆因子来修改已有的配置文件,从而保证新的机械臂不会发生碰撞(三维环境感知与此结合,实时采样周围障碍物信息)。

FixStartStatePathConstraints:

如果机械臂的初始姿态不满足路径约束,这个适配器可以找到附近满足约束的姿态作为机械臂的初始姿态。

AddTimeParameterization:

[外链图片转存失败(img-pe5J0mNu-1564595804855)(media/4986000b222f93bd44be4400bd8a6b78.png)]

这个适配器非常重要。它把从运动规划器中输出的空间路径按等距离进行划分,并在其中添加加速度、加速度约束,以及时间戳等必要信息。

图4.9

Planning
Scene用来表示机械臂周围的外部世界并且保存机械臂自己本身的状态。它通过监听对应的Topic来获取关节状态信息、传感器信息。并可以根据传感器信息和用户的输入,生成机器人周围3D世界空间的表示。

除此之外,本项目还采用了基于3D
Perception的技术,使用插件来获取点云和深度图像数据,并据此生成OctoMap,为之后机械臂的碰撞检测提供基础。

本项目使用OMPL规划机械臂的运动轨迹。对于本项目的六自由度机械臂,采用OMPL进行自动路径规划,在程序中设定终端移动到的目标,通过OMPL即可计算出一个最适合的机械臂运动轨迹路线,包含多个数组,每个数组的长度恰好等于机械臂的自由度(在这里也就是六自由度)。通过计算好的这个轨迹,依次移动关节,最终机械臂终端(手部)将移动到设定的目标。采用ikfast运动学求解器对机械臂运动过程进行求解,因为ikfast是基于解析解的,求解速度以及准确度远大于KDL,同时我们也将配合3D
Perception环境感知对路径进行优化,从而做到不与环境中的任何物体发生碰撞。

[外链图片转存失败(img-r3cgxC2W-1564595804857)(media/e0283c85c255977646f93a7e8048643b.png)]

图4.10 基于ikfast运动学求解器计算的机械臂运动路径

五.规划群

规划群(Planning Groups)是moveit的核心之一。

Kinematic Solver: 运动学求解工具,这个就是负责求解正向运动学(Forward
Kinematics)和逆运动学(IK, 见1.3节)的。 一般我们选用KDL, The Kinematics and
Dynamics
Library。这是一个运动学与动力学的库,可以很好的解决6自由度以上的单链机械结构的正逆运动学问题。当然你也可以用其他IK
Solver,
比如SRV或者IK_FAST,甚至你可以自己开发新的Solver然后插入进来,如果有空,我以后会发帖讲解如何创建新的运动学求解库并插入到MoveIt。

每一次移动标记,就运行了一次逆运动学IK求解过程.

因为OMPL是采样算法,由于其随机采样的特性,每次的路径是不同的,而且有可能失败。(因此运动学求解工具是
OMPL(开源路径规划库)的一部分,这也就相当于SIRF和opencv的关系)

Search Resolution: 关节空间的采样密度

Search TImeout: 求解时间

Solver Attempts:
求解失败尝试次数,一般来说这三项使用默认值就可以。你也可以根据具体需要做出适当调整。

机器人预设位姿(Robot Poses),默认位姿应该为直立。

终端控制器(End Effectors)就是机械臂的手,在工作环境中直接控制的部分。

被动关节(Passive Joints)不配置电机的关节。

moveit的配置文件为SRDF,配合URDF使用。

4.2.5 机械臂防碰撞系统设计

MoveIt!使用CollisionWorld对象进行碰撞检测,采用FCL(Flexible Collision
Library)功能包。碰撞检测是运动规划中最耗时的运算,往往会占用90%左右的时间,为了减少计算量,可以通过设置ACM(Allowed
Collision Matrix)来进行优化。

  1. 碰撞免检矩阵

碰撞免检矩阵(Avoid Collision Matrix,
ACM)是一个不会随环境变化而改变的检测算法.碰撞检测是非常复杂的运算过程。对于多关节机械臂或者类人机器人来说,机械结构复杂,肢体多,碰撞检测
需要涉及很多的空间几何计算。但是对于刚体机器人来说,有些肢体之间是不可能发生碰撞的,比如原本就相邻的肢体,比如类人机器人的脚和头。这里生成的
ACM就是告诉我们,这个URDF所描述的机器人,哪些肢体之间是不会发生碰撞的。那么在之后的碰撞检测算法中,我们就可以略过对这些肢体之间的检测,以提高检测效率。

  1. 三维环境感知

三维感知方式采用pointcloud2点云方式,生成一种octomap的方格三维地图,感知后的环境可以作为环境障碍物,机械臂规划路径时会主动避开有octomap地图的地方。Octomap以八叉树的的形式储存地图,地图由多个小方块构成。当分辨率较高的时候,方块很小,当分辨率较低的时候,方块较大。每个方块表示该格被占据的概率。通过查询某个方块或点“是否可以通过”,从而实现三维的路径规划。

OctoMap:一种基于八叉树的占据网格型地图,像是很多个小方块组成,可以在查询某一点能否通过时切换分辨率(方块大小)从而实现不同层次的导航,其设计思路具有以下几个优点

1.完整的3D模型:octomap不需要任何预设就可以为任意环境搭建模型。该模型同时包含了被占据空间和自由空间。即使是环境中的未知区域也包含在地图之中。我们知道,在机器人进行自主环境探索时未知空间的信息是非常重要的

2.可实时更新:octomap可以随时增加新信息或者传感器。建模和更新是以概率的方式进行的。这样可以解决由于物体运动引起的测量问题。同时,octomap还支持多个机器人共建一个地图,而以前记录的地图在探索新区域时可以进行扩展

3.灵活性:在简介中提到过,octomap支持实时切换分辨率实现不同层次导航,例如,高级规划可以使用粗映射,而本地规划则可以使用细分辨率操作,随时在粗分辨率视图和细分辨率特写之间切换

4.紧凑:octomap文件可以在内存和硬盘中高效存储,可以生成压缩文件。

本项目在Gazebo中给机器人的头部添加了深度传感器的插件,所以当障碍物放到深度相机前方的时候,MoveIt!可以立马从点云Topic中获取物体的信息,并在Rviz中生成可视化的OctoMap。在下一次做运动规划的时候,MoveIt!会将由正方体组成的OctoMap看成障碍物并考虑在内。

[外链图片转存失败(img-13jclfjg-1564595804858)(media/39d6914914939a41e1b389d4a3fd4413.jpg)]

图4.11 基于octomap的方格三维地图

4.3 基于OpenCV的无人机双目视觉

OpenCV是
一个基于BSD许可(开源)发行的跨平台计算机视觉库,可用于Linux,Windows以及Mac
OS等等操作系统上。它轻量级且高效,提供了MATLAB,Python等多种语言的接口,实现了图像处理和计算机视觉方面的很多统用算法。本项目基于ROS机器人系统并采用Opencv
4.0.0最新版本,通过guidance
sdk以及Moveit等软件的API实现了无人机的目标图像识别,特征物体云台追踪以及三维环境感知等功能。

4.3.1 guidance sdk开发

Guidance是一套视觉导航传感系统,可感知附近的障碍物,让飞行器主动躲避。它配备有五组超声双目视觉传感器,在guidance系统的控制下,可实现分别调用五组视觉深度数据以及超声波感知距离参数等等。Guidance采用的高精度立体视觉算法,近地面精度可达厘米级别,在飞行器高速飞行状态下仍能提供准确的障碍物深度信息,距离等参数,为无人机的避障,三维环境感知提供了强有力的工具。

通过Guidance SDK,可以从 Guidance
硬件上获取到各种输出数据,包括实时三维速度、IMU
数据,五向超声波距离等等。可实时输出的数据如下:

1.实时机体状态数据,包括机体坐标系下的飞机三维速度以及三维位置,实时输出由图像和超声波数据融合得到的与最近障碍物的距离。

2.Guidance模块传感器数据,包括机体坐标系下的IMU数据,以及三自由度加速度和三自由度的陀螺仪角度,实时输出机体坐标系下到最近5个方向的超声波距离
(0.1m - 8m)。

3.图像数据,包括输出双目摄像头的8比特灰度图,分辨率为320*240,以及输出双目摄像头的16比特深度图,分辨率为320*240。

[外链图片转存失败(img-iDsrXMft-1564595804860)(media/306d2336112046c8363b4cf58d96970b.jpg)]

4.相机参数,包括双目摄像头的标定参数,获取并设置双目摄像头的曝光模式以及曝光参数。

图4.12 Guidance视觉导航传感系统

Guidance模块通过UART和USB串口传输相关数据(若使用UART串口则传输除图像外的全部数据),该模块自带高精度视觉里程计,用于描述Guidance在环境中的运动,对速度的测量精度高达厘米级别。本项目的SDK开发基于这些数据提升空中机器人应用的精度,以更好地适应更多的空中作业应用领域。

由FPGA硬件加速模块和两个ARM
Cortex-A9核心构成了Guidance系统强大的计算平台,可实时处理多达10路摄像头数据,并且可以重新配置以便未来升级。Guidance模块通过CAN总线与manifold机载计算机连接,在Nvidia
TK1的GPU上面通过获取稠密深度图来实时进行三维环境感知与全向障碍物动态分析,从而引导飞控系统及时修正轨迹,避免发生碰撞事故,为无人机在严酷的环境作业提供了强有力的安全保障。

[外链图片转存失败(img-jMTY9Dsg-1564595804861)(media/947629f491b6d0f39714873916b49c5a.jpg)]

本项目将guidance处理器通过CAN总线连接N3飞控,并通过USB连接至妙算机载计算机,guidance处理器将结合多组超声和深度相机数据并通过CAN连接N3,在飞控实现避障的同时,guidance处理器读取四个方位的黑白深度相机数据并通过USB/UART串口发送给妙算机载电脑,在opencv中调取各个方向的深度摄像头数据完成三维环境感知与未知地形探索等功能。

图4.13 无人机guidance处理器3

4.3.2 目标物体图像识别

使用python语言编译,结合机器学习进行视觉识别。主要通过与环境的交互并在其中进行学习,用极大化的从环境获得的评价性反馈信号为学习目标。较为陌生的环境下仍然具有较好的自适应性和鲁棒性。处理器提取对摄像头的关键帧图像进行提取、识别与匹配,当与目标匹配率达到一定程度时,即认为检测到了目标物体(垃圾、核废料等)。

[外链图片转存失败(img-IBv0cldj-1564595804863)(media/48a6e94d3dd83e87fb086588806539bd.png)]

图4.14 具体物体的识别

4.3.3 基于各类目标跟踪算法的物体追踪

目前OpenCV有几种追踪算法,我们对以下五种算法进行了比较。

[外链图片转存失败(img-SgXhLief-1564595804865)(media/42a69a847c02e21f3efbbd6b5a3170d3.png)]

表4.1 几种追踪算法比较

由于不同算法在不同环境下的跟踪效果不同。由于本项目应用于景区垃圾、危险核废料难处理,对于部分遮挡的要求较高,并且空中识别的速度要求不高,因此本项目采用TLD追踪算法进行物体追踪,同时传回跟踪物体的坐标信息,便于机械臂进行路径规划。

图4.15 TLD追踪算法

[外链图片转存失败(img-PnO3JYQD-1564595804866)(media/2f71cb481b60b17aabfd8d225d5a691e.jpg)]

4.4 无人机地面站开发

4.4.1 QGC地面站概述

本项目无人机地面站基于QGroundControl(以下简称为QGC)进行二次开发而成。该地面站可通过无线数传将机载计算机以及飞控的信息传回地面站PC/移动端,实现对无人机的精准降落以及航点规划等,也可通过地面站控制机载stm32控制板,进而控制云台实现目标追踪或机械臂精准控制,也可通过地面站搭配机载HDMI图传实现实时视频广播等等。

图4.18 QGC软件开发测试图

[外链图片转存失败(img-hE9acMjH-1564595804867)(media/b97ea40e20ee68c25a83341ee65d3577.jpg)]

QGC地面站可用于为无人机自主规划航线,空中作业时可自动飞向目标地点指定高度,从而减轻飞手的任务,提高作业效率。如上图所示,该截图显示了一个任务规划,该计划从规划起始位置起飞,飞过指定三个航点,然后落在最后一个航路点。

QGC地面站功能丰富,主工具栏上面提供对不同应用程序试图的访问,以及无人机的状态信息,包括IMU信息,磁罗盘信息,电池信息,遥测信号强度等等。也可通过地面站上的一键返航按钮实现自动返回起飞点。右上角的仪表板在无人机起飞后会实时更新当前无人机信息。QGC也可通过无人机飞控的UDP通讯协议连接支持RTP和RTSP视频流接收器,同时接收多路视频信号,实现飞手,机械臂操作手以及地面分析人员各自享有一路视频,互不干扰,最大程度上提高无人机作业效率。

4.4.2 地面站航点规划

对于本项目使用的无人机,遥控器上映射一个通道用于无人机一键返航。当操作者触发此通道按键时,无人机将调用GPS确定当前位置,并将起飞点(地面站若开启返航点刷新则以地面站GPS位置为准)与当前位置进行比较从而确定返航方向并自动规划返航航线,也可通过设置返航高度,在高精度气压计的监测下实现无人机定高返航,同时配合guidance视觉避障模块实现无人机返航过程的安全。QGC地面站可通过终端命令的方式通过数传实时修改无人机的航线,实现精准规划作业轨迹,提高了智能空中作业机器人自动化作业效率。

[外链图片转存失败(img-c1cJbqvE-1564595804868)(media/10bb121e15ab0348445d01672a8bedcf.png)]

图4.19 QGC地面站航点规划图

终端可输入航路点和其他命令,也可以用地面站的功能映射创建任务(Auto
grid),飞机会来回在规划的任务区域飞行进行拍照收集照片,实现无人机的程序化自动控制。

Default
Alt(默认高度):进入新航路点的默认高度,同事也是返航时候飞机的高度,返航时如果飞机没有达到这个高度,会先升高到这个默认的高度再返回,如果高过这个高度,飞机会保持当前高度飞到返航的位置,下降着陆。

Verify
height(验证高度):就是地面站用谷歌地图拓扑数据调整你想期望的在每个航路点的高度去反映离地面的高度。因此如果你的航路点在一个小山上,你选择了验证高度在地面站上,设置的高度将会加上小山的高度,使用这种方式将会保证你的飞机不撞上山峰。

设置好你的航路点然后点击右边的“写入”,任务就写入了APM并寄存在存储器中,删除所有航路点,点击“读取”查看确定规划的航路点是否写入,如果写入,会在地图上显示你规划的路径。

4.4.3 Dronecode SDK开发

Dronecode
是一个开源无人机航空操作系统,基于Linux开发,可以根据VTOL,固定翼,直升机以及多旋翼等特性进行二次开发。QGC也可根据Dronecode进行定制型开发,也可通过MAVLink协议与无人机天空端通信。Dronecode框架与ROS类似,其模块化设计可经修改后作为ROS节点运行,同时辅助其他软件包(例如guidance
SDK,onboard SDK以及lidar
SDK等等)实现机载计算机全自动控制,也可将Dronecode在Gazebo仿真环境下进行仿真与测试,确定无人机各项功能是否有异常等等。

Dronecode源码主要语言为C++,可以使用插件扩展SDK,以添加任何其他所需的MAVLink
API,也可通过API扩展dronecode从而实现遥测等功能。

4.4.4 MAVLink协议

MAVLink是为微型飞行器MAV(Micro Air
Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control
Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission
Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。

MAVLink传输时,以消息包作为基本单位,数据长度为8~263字节。消息数据包的结构如下:

[外链图片转存失败(img-cpG5DKF0-1564595804870)(media/8b54ba24c89d75f1c0f7bebf5756ca26.png)]

图4.20 消息数据包结构图

MAVLink采用校验的功能,当两个通讯终端之间(飞行器和地面站,或飞行器和飞行器)使用不同版本的MAVLink协议时,双方计算得到的校验码会不同,则不同版本的MAVLink协议之间将无法通讯。MAVLINK_MESSAGE_CRCS中存储了每种消息包对应的MAVLINK_CRC_EXTRA。这个MAVLINK_CRC_EXTRA在用python生成MAVLink代码时在common.h头文件中自动生成。

MAVLink定义了一些通用消息集,是大多数地面控制站(包括QGC)和自动驾驶仪实现的参考消息集。该消息集分为两部分:MAVLink
Type Enumerations(MAVLink类型枚举 )和MAVLink
Messages(MAVLink消息包)。这些消息在每个消息包的头文件#define中定义。

MAVLink采用心跳包的方式来判断该设备是否活跃,(一般以1Hz发送),消息接收端会根据是否及时收到了心跳包来判断是否和消息发送端失去了联系。

心跳包由6个数据成员组成,占用9个字节。

1、type:飞行器类型,表示了当前发消息的是什么飞行器,如四旋翼,直升机等。type的取值对应枚举类型MAV_TYPE(如四旋翼,对应数值2)。

2、autopilot:飞控类型,如apm,Pixhawk等,发送心跳包的飞行器的飞控类型。autopilot的取枚举类型MAV_AUTOPILOT。

3、base
mode(基本模式):飞控现在所处的飞行模式,这个参数要看各个飞控自己的定义方式,会有不同的组合、计算方式。

4、custom
mode(用户模式):飞控现在所处的飞行模式,这个参数要看各个飞控自己的定义方式,会有不同的组合、计算方式。

5、system status:系统状态,见MAV_STATE枚举变量。

6、mavlink version:消息发送端的MAVLink版本。

其余的消息也是类似的结构,基本消息的定义可以查看官方网页的说明(具体说明以各个飞控为准),也可查看各个消息包头文件的定义。

[外链图片转存失败(img-EpFbQMso-1564595804871)(media/7662c6acbccaf006ddaa126bc6e3ab63.png)]

图4.21 mavlink version消息定义图

第五章 无人机全自动收纳充电仓

5.1 收纳充电仓设计

5.1.1 概述

通过 GPS 定位无人机飞行到地面中继站附近;固定在地面中继站上的摄像头对无人机进行
Kalman
滤波、定位捕捉、背景差分等操作;结合无人机和地面中继站回传的差分信息,确定无人机的精确位置,引导无人机自主降落。

图5.1 收纳充电仓机械外观图

收纳充电仓机载计算机为树莓派3B+,通过树莓派搭建 OpenCV
环境,运行计算机视觉相关的代码,
读取处理“三目摄像头”搜集的信息,然后计算出无人机的空间
坐标位置。最后实现树莓派和智龙 1C2000
主控板之间的串口。通过主控板控制树莓派的运行,读取树莓派传输的数据。对无人机的飞行位置做出调整。

5.1.2 模块化设计

电机模块由电机和电机控制电路组成,实现智龙 1C2000
主控板小信号控制大电机的功能,以大功率电机带动无人机回收舱系统的主要活动单元,保证无人机稳定的工作性能。

校正模块是通过无人机回收舱内部的机械结构,实现对已经降落到无人机回收舱中的无人机位置的机械校正,对降落后的无人机进行位置姿态的微调,方便后续的充电补给功能。

5.1.3 收纳充电仓自动充电设备

收纳充电仓的自动充电功能,分为机械式自动充电和太阳能自动充电,可以有效提高无人机的续航功能,并有效降低收纳充电仓能耗,起到节能,环保的作用。

通过对无人机充电接口的改装,在无人机降落校正后的地点安装受主控板控制的机械式自动充电装置,
对无人机的电量进行补给。无人机电池经改装使用专用充电接口,在易于插拔的同时增加其牢固性,与此同时,无人机电池仓设计成可抽取式结构,内卡扣的设计可使其更好地使电池卡在电池仓内避免滑落。同时抽取机械爪经过巧妙设计使其夹取电池两边时能同时将卡扣弹开,平滑地将电池取出又不至于跌落。

电池抽取机械爪被安置在一个可升降平台上。该升降平台可通过电动推杆实现连续升降,平台可由地面升至无人机电池仓下板处,在机械爪的推动下电池被平稳地推入电池仓,需要抓取时机械爪的两端会同时夹住电池两卡扣处使其松开,之后将电池取下,平台缓慢地降下来,而后机械爪将电池推入充电座处进行充电。

收纳充电仓外表面装有多块太阳能电池板。在光线充足时可对平台内通信设备及传感器充电,最大程度上做到节能,环保。

5.2 收纳充电仓视觉识别

5.2.1 系统模块

系统由3个部分组成:识别跟踪模块、运动控制模块、通信模块。

由识别跟踪识别模块识别目标,并以图像中心为原点,将目标的坐标作为输入传递给运动控制模块;运动控制模块将坐标转换为云台需要转过的相对角度并且要减少云台在目标附近的摆动;运动控制模块得到的角度作为串口通信模块的输入,后者对角度进行编码得到相应的字节流,以多个字节为一帧并加入帧校验字节。最终,数据通过串口传递给云台主控板。

[外链图片转存失败(img-xflZ0NVr-1564595804874)(media/4c0e77b8402b97cfe26d01254669b208.png)]

图5.2起降流程图

5.2.2 视觉识别跟踪模块

该模块模块实现两个功能:识别和跟踪。

[外链图片转存失败(img-U5CNR9K5-1564595804876)(media/28fe4d87e1e357f850769cb0da50596d.png)]

图5.3视觉识别追踪模块流程图

识别的目的是在程序首次运行或者跟踪失败的时候能够重新找回目标,一旦在视野中检测到了目标的存在,就进入跟踪模块。此后,检测模块不会再介入到跟踪模块的运行直到跟踪失败。

收纳充电仓上表面由红色LED灯柱围成一圈,中间由蓝色LED灯组成H型,并将其作为无人机识别收纳充电仓的依据

[外链图片转存失败(img-LC2mqIsu-1564595804877)(media/208a19efdafaae12ffcb002c35260a90.png)]

图5.4 收纳充电仓识别图样

1.识别

目标检测模块将输入的彩色图像进行色彩空间变换,对转换后的HSV图像中的Hue分量阈值分割,得到二值图像,再通过形态学运算滤去噪声,最后找到目标。

[外链图片转存失败(img-DLPXMlox-1564595804878)(media/b1dd3ea658e0ccdfc0e7bc38d7ac57ac.png)]

[外链图片转存失败(img-ijPaU6n6-1564595804880)(media/571e20a997393d7fb86db8b2ac8a5d59.png)]

图5.5 去噪过程

2.形成目标的轮廓矩形

由摄像头输入的彩色图像经上述处理后得到了一个二值图像。进行比对后根据连通区域之间的距离和颜色相似性,将距离接近且相似性高的连通区域进行合并。通过不断迭代后,最后得到若干个连通合并后的矩形区域。

3.跟踪

跟踪模块选择采用KCF跟踪器进行跟踪。KCF是一种鉴别式追踪方法,通过不断的更新位置,保证无人机准确地降落在收纳充电仓中。

5.2.3 运动控制模块

运动控制模块的主要功能是将输入的坐标转换为云台须要转动的相对角度信息,主要的问题是克服云台在目标附近摆动,加快稳定速度,同时云台转动要足够迅速。为了解决这一问题,我们主要采取了两个措施:使用分段的线性函数进行坐标变换;提供快速和慢速两种工作模式。

[外链图片转存失败(img-rM0uTgAK-1564595804881)(media/18e3cd472a0dc107efd2a3de0ba1397a.png)]

如下图所示,x轴为输入坐标值,y轴为角度。当目标距离图像中心较近时,云台转动速度减慢,有利于云台的稳定;当目标较远时,快速转动,加快锁定目标的速度。当云台开始出现摆动现象时进入慢速模式。

图5.6 坐标-角度两种工作模式对比图

这里使用简单的分段线性函数而不采用拟合度更高的非线性函数(如指数函数)的原因是,线性函数的参数调整更加方便,便于不断通过测试进行调优。

5.2.4 串口通信模块

该模块将float类型的角度编码为帧,并通过串口发送至云台主控。float类型数据最终须要存储到uchar类型的数组中,这一转换由如下语句完成。

unsigned char *x1=(unsigned char*)&nHangle;

tmpchar[0] = *(x1);

第六章 市场前景以及发展意义

2010年之前,我国民用无人机市场规模小,增长速度也比较缓慢,运用领域也基本只是在灾害救援、地图测绘等领域。但在2010年之后,我国工业无人机的市场规模扩张迅速:2015年中国民用无人机市场销售规模为24.0亿元;2016年中国工业无人机市场销售规模为42.0亿元;2017年中国工业无人机市场销售规模达67.3亿元,同比增长60.2%。

因为前几年工业级无人机技术较为高端,对发动机、飞控/航电系统、任务载荷要求很高,传统航空制造企业凭借配套齐全的产业体系和有人驾驶飞机多年的研发经验,具备能力基础。而随着技术门槛下降,工业级无人机研发难度下降,同时中低端无人机具有机身结构简单、制造周期短的特点,科研院校相对优势明显。

2017年6月,工信部联合国家标准化管理委员会、科技部、公安部、农业部、国家体育总局、国家能源局、民航局等部门发布了《无人驾驶航空器系统标准体系建设指南(2017-2018年版)》。2017年12月,工信部正式印发《关于促进和规范民用无人机制造业发展的指导意见》,提出到2020年,我国民用无人机产业产值达到600亿元,年均增速40%以上。2025年,民用无人机产值达到1800亿元。随着国家政策逐步落地,市场发展愈发成熟,我国无人机产业或将迎来新一轮爆发。

表6.1 2015-2018年中国民用无人机市场规模情况

[CHART]

民用无人机市场的迅速发展,正是因为无人机+行业应用,是无人机真正的刚需;目前在航拍、农业、植保、微型自拍、快递运输、灾难救援、观察野生动物、监控传染病、测绘、新闻报道、电力巡检、救灾、影视拍摄、制造浪漫等等领域的应用,大大的拓展了无人机本身的用途。相比消费级无人机的火爆,工业级无人机市场虽然发展缓慢,但前景巨大。

下图是近年来中国垃圾清理行业总花费量趋势图:

表6.2 2016-2018年中国垃圾清理行业总花费

[CHART]

从图中可以看出,近三年来城市垃圾清运量分别为2.38、2.49、2.61亿吨,乡村垃圾清运量稳定在0.71亿吨左右,但是由于国内劳动力价格的增加,垃圾清运单价随之提高,到2018年,城乡垃圾清理总费用分别为208.8和35.5亿元,比2015年花费提高了50亿元左右。而景区由于其危险的地形,垃圾清理费用远高于生活区。据报道,全国各大自然类5A级景区每年垃圾清理费用都在1000万元以上。

在巨大的市场和逐年提高的人工成本中,本项目提出的能够自动化识别并清理垃圾的带臂作业机器人无疑是一种高效、安全而市场需求极大的解决方案。

另外,核废料清理一直是困扰世界的难题,据统计,英国的Serrafid核废料处理厂在核废料清理上花费为700亿英镑;到2016年底,美国Hanford核废料处理厂累计投入了168亿美元,每天有1万左右工人参与清理工作;日本福岛核电站反应堆报废预计需要高达8万亿日元(约合人民币5000亿元)的巨额费用。显然,核废料清理是一项极其危险而高花费的任务。本项目利用计算机视觉结合3+6自由度机械臂,实现核废料拆解、分类与回收的自动化完成,对于解决这一世界级的难题无疑有着极大的帮助。

第七章 项目总结

本项目经过我们的团队不懈努力,经过对许多国内外科研机构的

无人机和机械臂的研究状况的了解,我们掌握了一定的无人机研究现状方面的信息,并未发现和我们的作品有完全相似的国内外作品。在本产品开发的前中段,我们对机械爪进行了多次更换,最终确定使用可更换的机械爪,以适应不同的工作环境和工作功能。并不断优化无人机的稳定性,确保机械臂工作时无人机的稳定性,保证产品工作时候的安全性。我们对六自由度的性能进行大幅度的优化,使六自由度机械臂具有环境感知的功能,可自动感知周围障碍物并规划运动路线,

提高了本产品对不同工作环境的适应性。

本作品可以应用于多种不同领域。它即可用于平时生活完成高楼检修外机,进行高楼的玻璃擦拭等。又可用于国防领域进行窃听器的安装,炸弹放置等高危工作,减少了对人员的安全隐患,同时也一定程度上提高了空中作业效率。无人机与机械臂的组合已经不仅仅是进行一个拍摄任务,而是直接用机械臂进行一个飞行作业,打破了地面机械臂作业范围窄,无法高空作业等问题,一定程度上推动了无人空中智能机器人的发展。

综上所述,根据我们对市场需求的分析,由于本产品在民用生活有重大意义而且其具有很强的扩展性,可以应用于国防安全等更多的领域。因此,我们有理由相信,本作品有很好的市场前景以及广大的消费人群,若本作品投入生产,定有良好的经济效益。

附录1 作品说明以及推荐者

推荐人评语:

该系统在指导老师指导下由学生独立自主完成,实现所有描述功能,达成了描述的技术指标,作品真实可信。

本项目将无人机与机械臂相结合,充分发挥无人机机动性好,作业无死角;以及机械臂操作灵活,应用领域广两方面的优势,同时利用计算机视觉、激光雷达测距等技术,将无人机打造成“空中机器人”。本项目具有较好的技术创新性,成果适用于工业,物联网,物流,安防等多种场景,在未来的无人机市场中有很大需求。

[外链图片转存失败(img-Dg1NeoGr-1564595804883)(media/5a43559e38000ea8f313fa4ec8ad5447.jpg)]

附录2 机器人各模块实物图

[外链图片转存失败(img-3tQJ14Px-1564595804883)(media/db051fbb3fa594a3c592a654a856cf95.jpg)]

(图为带臂无人机整体外观)

[外链图片转存失败(img-caixJnL7-1564595804884)(media/f1f4fb48cbcafaa9bb33a2eac15a0881.png)]

(图为折叠状态下的无人机)

图为无人机,上面搭载机载计算最终方案为大疆妙算,独立的运算系统可以支持opencv视觉算法,不需要地面站的支持。摄像机三轴云台是通过STM32F103实现经典PID
控制,基于TLD视觉算法,完成对目标物体的镜头追踪。机械臂的控制部分将由STM32F103通过USB-TTL与妙算机载电脑连接,配合机械臂末端的微型摄像头,完成对目标的作业。考虑到无人机飞行控制的稳定。我们的飞控使用大疆N3飞控并通过SDK与其他硬件通信。在避障方面,我们采用的是guidance五向视觉超声避障系统。通过五组深度相机结合五组超声模块实现对诸如墙壁或树木等物体的障碍检测。同时机载的单线激光雷达实现了无人机的SLAM未知环境探索功能,在一定程度上实现了无人机的自主性与灵活性。

[外链图片转存失败(img-mTSVCKWf-1564595804887)(media/cdc12df4582b08fa39a02b56106649ea.png)]

(图为云台特写)

带臂无人机作业平台的应用内容广泛:

在今年央视春节联欢晚会深圳分会场上空,三朵美丽大气的“牡丹花”绚烂夺目。三朵3D牡丹花,其实是由无人机编队而成。这并非无人机第一次走进春晚,早在2016年,就有29架民用无人机参与春晚演出。近年来,中国民用无人机制造快速发展,在空中摄影、农林植保、灾害救援、快递投送、艺术表演等领域得到广泛应用,正成为中国“智”造的一张靓丽名片。

[外链图片转存失败(img-pAMR5Kqd-1564595804887)(media/1b97a7d01e8945fd7f5e85b6c5378913.jpg)]

(图为无人机在电力行业的应用)

如今本项目通过对STM32的硬件开发以及ROS软件方面的设计以及多次对无人机机械结构,机械臂的强度测试,制造一种具有可移植性的飞行平台,能够实现多种任务的无人机,具有广泛的应用前景。该无人机将会朝着多功能化的方向发展,一定程度上开拓了无人机在工业方面的市场,具有良好的市场效益和较好的市场前景。一个无人机作业平台不仅仅能满足单一任务,配合具有一定载荷能力的无人机平台能实现“一个无人机多种任务”的构想。我们的无人机机械臂有很强的可开发性,在未来工业无人机市场中定会取得良好的收效。

安全性测试:

我们在安装机翼以前对无人机进行各种形式的测试。包括,在室内的电机功率的测算,还有对其重量和升力的参数有基本了解。在进行实际飞行以前,我们还请指导老师还有学长对其安全性进行评估。在关键连接点处,我们采用多点固定的方法,以求降低飞行过程中的震动,从而很大程度上减小了飞行事故概率。

[外链图片转存失败(img-Mi3MkQs2-1564595804889)(media/cef125bff572d896dfefafd35cfcebc3.jpg)]

(视觉与雷达避障硬件特写图)

便携性:

[外链图片转存失败(img-MEAeWJ1S-1564595804890)(media/54c33114ada768738d85f1bba460659c.png)]

(此图为可收放轴的连接处)

便携性对于一个移动的工作平台尤为重要,所以我们团队设计出的可以收放的机械结构,在运输中能提高便携性,同时能在狭小空间内完成运输,提高了无人机的可利用价值。

结构硬件的加工以及质量保证:

在我们的无人机的制作过程中结构硬件为了兼顾飞行性能和安全性。我们的主题构架都采用了碳纤维材料,运用激光切割技术对进行加工。整个结构拥有质量轻和坚固的特点。同时这样可以保证无人机拥有更多的载荷。

后期处理过程中为了整体的美观实用,我们对材料表面采用了抛光处理。金属材料表面经过防锈喷漆处理,充分提高了整体的耐用性。

双摄像头设计的优点:

我们的无人机搭载两个摄像头,同时兼顾前方和下方的目标识别,最大限度的保证视觉模块的可靠性。即使在其中一台失效的情况下也能完成任务。这样设计的优点还有在高空找寻目标时,能够有更加广阔的视野。同时采用5.8GHZ的图传模块,保证了图像传输的稳定和高效,能即使的反应处无人机周边的环境状态,有利于应对突发情况。

参考文献:

  1. 我国民用无人机产业市场现状与发展趋势

  2. 基于STM32的四旋翼飞行器控制系统设计——杨萌;雷建和;胡廷轩;宫汝林 -
    《微型机与应用 》- 2015

  3. 工信部:进一步促进规范民用无人机制造业发展

  4. 无人机产业及标准化

  5. 基于陀螺仪与加速度计的二轮自平衡控制系统设计——孟腾;章政 - 《传感器与微系统
    》- 2014

  6. 复杂环境下高效物体跟踪级联分类器——江伟坚;郭躬德 - 《中国图象图形 学报 》-
    2014

  7. 基于角动量交换的手机防摔系统——李凯;高成龙;乔杨;范迪 - 《电子科学技术 》-
    2017

  8. 基于arduino平台的足球机器人在RCJ中的应用——李嘉秀 - 《物联网技术 》- 2015

  9. 基于图像识别与雷达测距技术的开车看手机安全预警系统——胡智超;吕亮 - 《科技资讯
    》- 2017

  10. 基于激光雷达的气浮台定位系统设计与实现——徐振宇;张永康;董文博 -
    《传感技术学报 》- 2016

  11. 视频中多目标车辆的检测与跟踪方法研究——张礼雄;张忠林 - 《计算机技术与发展 》-
    2018

  12. 国家标准委联合工信部、科技部、民航局等8部委发布《无人驾驶航空器系统标准体系建设指南》

    • 《航空标准化与质量 》- 2017
  13. 无人驾驶航空器系统标准体系建设与发展——舒振杰;朱晓飞;曾佳;胡应东;何志凯 -
    《航空标准化与质量 》- 2017
    5.8GHZ的图传模块,保证了图像传输的稳定和高效,能即使的反应处无人机周边的环境状态,有利于应对突发情况。

参考文献:

  1. 我国民用无人机产业市场现状与发展趋势

  2. 基于STM32的四旋翼飞行器控制系统设计——杨萌;雷建和;胡廷轩;宫汝林 -
    《微型机与应用 》- 2015

  3. 工信部:进一步促进规范民用无人机制造业发展

  4. 无人机产业及标准化

  5. 基于陀螺仪与加速度计的二轮自平衡控制系统设计——孟腾;章政 - 《传感器与微系统
    》- 2014

  6. 复杂环境下高效物体跟踪级联分类器——江伟坚;郭躬德 - 《中国图象图形 学报 》-
    2014

  7. 基于角动量交换的手机防摔系统——李凯;高成龙;乔杨;范迪 - 《电子科学技术 》-
    2017

  8. 基于arduino平台的足球机器人在RCJ中的应用——李嘉秀 - 《物联网技术 》- 2015

  9. 基于图像识别与雷达测距技术的开车看手机安全预警系统——胡智超;吕亮 - 《科技资讯
    》- 2017

  10. 基于激光雷达的气浮台定位系统设计与实现——徐振宇;张永康;董文博 -
    《传感技术学报 》- 2016

  11. 视频中多目标车辆的检测与跟踪方法研究——张礼雄;张忠林 - 《计算机技术与发展 》-
    2018

  12. 国家标准委联合工信部、科技部、民航局等8部委发布《无人驾驶航空器系统标准体系建设指南》

    • 《航空标准化与质量 》- 2017
  13. 无人驾驶航空器系统标准体系建设与发展——舒振杰;朱晓飞;曾佳;胡应东;何志凯 -
    《航空标准化与质量 》- 2017

你可能感兴趣的:(Phillweston,无人机,空中作业)