竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)

这篇具有很好参考价值的文章主要介绍了竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)

无名小哥 2023年6月10日

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

用户通过对前面两讲中全国大学生电子设计竞赛真题植保无人机(2021)、送货无人机(2022)完整方案的学习。细心一点的客户可以发现:在激光雷达SLAM/T265双目相机提供全局定位数据的情况下,无人机的自主飞行部分的程序设计,基本都是通过飞控代码二次开发模式中已有的飞行控制API函数,即自动飞行支持函数和导航控制函数实现。

同时需要结合底部/前向的机器视觉传感器以及激光雷达传感器对目标特征进行视觉/距离定位。比如送货无人机赛题中,达到目标航点上方后,通过视觉实现无人机的精准目标定位。通过视觉实现无人机位置的二次对准,其实就是用到的前些年赛题中的追踪移动色块的功能;

另外在植保无人机发挥部分要求中,需要识别到塔杆和条形码信息。通过激光雷达传感器识别道塔杆的水平位置、相对无人机机头方向的角度,对无人机偏航方向和机头与杆之间的距离进行控制,进而实现机头对准塔杆并调整与杆之间的间距并通过视觉识别特征这一复合的运动,这里用的就是基础飞行控制函数中的偏航控制API和速度控制API函数予以实现。

为了方便萌新用户针对具体竞赛内容实现快速的二次开发,我们新增加了用户自定义航点飞行功能,用户可以不需要自己编程去改飞控代码,就可以实现航点参数的录入,无人机能按照用户录入的航点动作进行自主飞行。这里需要注意的是默认提供的自定义航点自动飞行函数中飞行动作只是对航点的依次遍历,尚不涉及中间动作,比如需要结合视觉/激光雷达进行视觉定位、距离定位。

用户自定义航点自动飞行功能提供的是一个精简化的自主飞行框架,用户可以快速实现飞行动作的修改和编排。针对某一比赛任务设计中航点飞行任务部分用户可以无需重复设计,直接参考本框架就可以轻松实现多航点目标自动飞行任务,留足更多的时间去着手机器视觉部分和更为精细化的任务设计。另外电赛国赛测评中要求参赛者去现场编程,快速实现某一飞行动作要求变得不再有任何压力。

12_用户通过ADC按键录入自定义航点飞行功能——支持现场设置坐标参数(全局定位,指哪打哪)

演示视频:https://www.bilibili.com/video/BV1wP411z7jo/

1 五向按键的检测设计与航点参数调节界面设计

根据用户需要现场高效率的录入航点参数的这一具体要求,我们将上一版本ADC安全绳按键进行了升级,在保留原有解锁、开发、上锁、降落四个独立按键的功能的同时,新增加了一路独立的五向按键采集ADC通道,一个IO口实现了5个方向按键的检测,并可配备有短按、长按、持续按、多次点动触发等,进一步丰富了按键键值。五向按键配合扩展版上OLED显示屏可方便实现多个参数的修改与保存。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

1.1ADC按键检测原理

ADC按键的检测原理为每个按键串入不同的电阻值,按键按下后偏置电压经过电阻分压作用后,由单片机的ADC端口采集,飞控程序可以通过采集到的ADC值在某个区间范围来判断是哪个按键按下,并对按下的持续时间、次数灯进行逻辑处理,实现按键事件的响应。这部分原理以往教程有详细的讲解和分析,不属于本文重点,这里不再展开,用户可以参照以下链接自行学习。

电赛飞行器安全绳+无遥控器按键控制方案 https://www.bilibili.com/read/cv11399668

电赛禁止“无线通讯及遥控”解决方案 https://www.bilibili.com/read/cv7897817

电赛神器ADC安全绳按键无遥控器控制方案https://www.bilibili.com/video/BV1Gq4y1E7XM

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

1.2 航点参数界面设计

OLED显示屏参数显示分为8行,第1行显示内容为页面和页码提示,第2行至第8行数据为1-7个航点的ENU(等效东北天)方向的坐标信息,其中EN方向的输入参数表示相对初始基准点的位置增/减量。它是一个相对位置坐标参数,并非实际无人机内部实时位置,二者在水平位置上相差一个初始基准点的坐标(base_position.x,base_position.y)。U方向输入的是绝对坐标信息,即无人机离地面的高度值。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

五向按键的中的上下按键短按可以实现某一参数的选中,*提示光标会移动到待调整参数的前面。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

五向按键的中的左右按键短按/长按可以实现某一参数的选中的自加、自减,其中短按是自加/减1,长按是自加/减50。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

五向按键里面的中按键长按可以实现当前页面所有参数写入到EEPROM实现掉电存储。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

2 航点自动飞行功能软件实现

用户录入的航点参数存储在飞控EEPROM内,飞控每次上电时会从EEPROM中读取航点参数并保存在param_value参数数组内,第一个航点的参数存储在该变量的第51维开始的三个变量内,航点生成函数的作用是判断param_value数组航点字节段区间的数据是否全为0,来判断航点数据是否有效。当前能录入的最大航点数量为28个,针对不同的赛题任务,客户可以自己灵活调整。

2.1第一阶段——自动起飞到航巡高度方法uint8_t Auto_Takeoff(float target)

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

函数输入参数target为目标高度,自动起飞任务分为两个线程,第一步为记录当前3维位置信息,作为导航初始原点位置。并且通过导航控制函数设置期望目标高度位置。第二步为实时检测高度偏差值,连续2S满足位置偏差在10cm以内后,函数返回值置1后,自动起飞到目标高度任务完成,用法参照Developer_Mode.c开发者模式中case 18用法,自主起飞任务完成后会进入case 19执行航点自动飞行功能。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

2.2第二阶段——自定义航点飞行Navigation_User_Setpoint(void)

第一步将高度期望设置成第一作业高度150cm,水平位置期望为初始起飞时候的水平位置,在起飞点上方悬停时间设置为1S,悬停时间可以根据实际需要调整。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

起飞点上方悬停1S后,会根据按键录入航点数据进行判断,如果航点数据有效则将此航点设置成目标航点,并且线程计数器flight_subtask_cnt[n]会赋值为2,随后进入航点任务执行线程。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

在线程2中执行航点飞行任务,并实时判断无人机的三维位置偏差,连续N次满足偏差小于某一阈值时,可以认为当前航点已抵达,继续刷新下一航点信息。当所有航点遍历完毕后,跳到第3 线程中,结束整个航点遍历过程。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机

最后执行线程3中的原地下降任务,无人机降落到地面后会触发地面检测条件无人机会自动上锁,结束整个飞行过程。

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪),无人机文章来源地址https://www.toymoban.com/news/detail-528867.html

到了这里,关于竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【2023年五一数学建模竞赛A题】无人机定点投放问题研究-完整论文+代码

    2.1 问题一的分析 问题一假设无人机以平行于水平面的方式飞行并投放物资,可以将物资的运动 类比成平抛运动,由于物资的重量较大,因此不能简单的看成质点,还要考虑物资 的重量。 2.1.1本题要求给出无人机投放距离与其飞行高度、飞行速度、空气阻力的影响。物 资刚

    2024年02月11日
    浏览(35)
  • 【数模】2023年第二十届五一数学建模竞赛题目 A题:无人机定点投放问题

            随着科学技术的不断发展,无人机在许多领域都有着广泛的应用。对于空中执行定点投放任务的无人机,其投放精度不仅依赖于无人机的操作技术,而且还与无人机执行任务时所处状态和环境有关,例如在接近投放点时无人机的高度、速度,无人机所处位置的风速

    2024年02月11日
    浏览(36)
  • 第十四届“中关村青联杯”全国研究生数学建模竞赛-A题:无人机在抢险救灾中的优化运用

    目录 摘 要: 1 问题重述 1.1 问题背景 1.2 待解决的问题 2 模型假设及符号说明

    2024年02月20日
    浏览(40)
  • 从ROS1到ROS2无人机编程实战指南

    亲爱的读者们,我今天非常荣幸地向大家推荐一本本人的全新力作——《从ROS1到ROS2无人机编程实战指南》。这本书站在初学者的角度,从入门到进阶,再到实战,循序渐进,是学习ROS1和ROS2的最佳选择。如今已在全国范围内上市,购书即可享受次日达的快捷服务! 本书的创

    2024年02月10日
    浏览(35)
  • 无人机禁飞区地图更新!图新地球全国限飞区自定义地图免费分享!

    随着无人机的普及,人们越来越容易拥有一台无人机。但很多用户并不了解无人机的飞行规则和禁飞限制。对于没有严格遵守规定的人来说,无人机飞行往往会构成公共安全和私人财产的潜在危害。 为此,政府和航空管理机构陆续出台了一系列限制无人机飞行的规定和条例,

    2024年02月04日
    浏览(35)
  • 2022数模国赛B题无人机第一题第一小问的简单编程

    2022年国赛B题是关于无人机定位的抽象模型,总体难度不大。接下来简单介绍一下第一题第一小问的程序实现,当时国赛仓促,写的比较简略,仅供参考。 无源定位 第一个是无源定位,无源定位可以理解为需要通过计算才能求解出具体位置,位置不能直接测出。具备隐

    2024年02月06日
    浏览(43)
  • 【PX4&Simulink&Gazebo联合仿真】在Simulink中使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化

    本篇文章介绍如何使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。 环境: MATLAB : R2022b Ubuntu :20.04 LTS Windows :Windows 10 ROS :ROS2 Foxy Python: 3.8.2 Visual Studio :Visual Studio 2019 PX4 :1.13.0 ROS2的应用程序管道非常简单,这要

    2024年02月22日
    浏览(47)
  • 反无人机系统技术分析,无人机反制技术理论基础,无人机技术详解

    近年来,经过大疆、parrot、3d robotics等公司不断的努力,具有强大功能的消费级无人机价格不断降低,操作简便性不断提高,无人机正快速地从尖端的军用设备转入大众市场,成为普通民众手中的玩具。 然而,随着消费级无人机市场的快速增长,功能越来越先进的新式无人机

    2024年02月19日
    浏览(38)
  • 无人机数据链技术,无人机数据链路系统技术详解,无人机数传技术

    早期的无人机更多的为军事应用服务,如军事任务侦查等,随着技术和社会的发展,工业级无人机和民用无人机得到快速的发展,工业级无人机用于农业植保、地理测绘、电力巡检、救灾援助等;民用无人机用于航拍、物流等等领域。 无人机数据链 数据链系统是飞行器与地

    2024年02月20日
    浏览(32)
  • 无人机巡检技术要点解读,无人机巡检方案实现

    随着技术的不断发展,无人机巡检已经成为一种新兴的技术,它为巡检提供了更加高效、安全且可持续的解决方案。无人机巡检源于人们对更高效、安全的巡检方式的需求,源自行业对于巡检数据的采集和传输有了更高的要求,以及传统巡检从业人员渴望更安全的操作环境。

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包