無人機跟隨一維高度避障場景--邏輯分析

無人機跟隨一維高度避障場景--邏輯分析

  • 1. 源由
  • 2. 視頻
  • 3. 問題
    • 3.1 思維發散
    • 3.2 問題收斂
  • 4. 圖示
    • 4.1 水平模式
    • 4.2 下坡模式
    • 4.3 上坡模式
    • 4.4 碰撞分析
  • 5. 總結
    • 5.1 一維高度避障場景
    • 5.2 業界跟隨產品
    • 5.3 APM集成跟隨
    • 示意圖一:
    • 示意圖二:
    • 示意圖三:
  • 6. 參考資料
  • 7. 補充資料 - 大疆智能跟隨
    • 7.1 炸機
    • 7.2 成功

1. 源由

最近拿到一臺測試樣機,功能很多,就不多贅述。

這里針對跟隨功能進行下吐槽和分析,當然由于成本或者技術問題,該機不配備3D/2D避障功能。

2. 視頻

首先,上視頻,不廢話。

HoverX1 同樣的路不一定好走,但低頭走路一定不行

3. 問題

問題就是我走的好好的,結果這個跟隨的飛機碰到樹的枝葉了。

頭腦風暴開始需要發散,然而實際問題需要收斂。

3.1 思維發散

通常認為【在指定時刻】,【3維空間】無人機對主體目標的【可視無遮擋】【相對位置】。

這里將幾個比較關鍵的描述用“【】”給加強出來。

所以該問題實際上存在幾個分析點:

  • 兩個相對物體(無人機,主體目標)同一時刻下
  • 在三維空間坐標系統下的坐標和速度
  • 在可視區域,中間無遮擋的情況下
  • 相對位置在可控范圍(視頻能看清/跟蹤信號良好等)

3.2 問題收斂

接下來,比較務實的來收斂這個問題,假設如下:

  • 地面物體低速運動(< 10m/s)場景 // 100米奧運世界紀錄是9.58秒,由博爾特創造的記錄。
  • 路徑規劃xy跟隨目標行進路線
  • 不提升硬件規格或者設計前提

基于以上假設,可以認為:

  • 無人機速度能夠跟得上低速運動跟隨目標。
  • 在目標運動xy軌跡與橫截面構成的空間區域可以定義為無障礙空間。

此時,需要考慮如下幾個場景

  • 常規異常情況【電池耗盡、目標丟失等等】
  • 當飛行高度超過目標高度時,在飛行高度上出現障礙物
  • 跟隨飛行過程中,在目標與無人機之間突然出現障礙物
  • 跟隨飛行過程中,目標高度出現變化(比如:人彎腰行進等)

綜合上面場景,將問題收斂到在原有策略基礎上增加一維高度維度的障礙物感知分析。

4. 圖示

測試視頻是設置平拍模式。

按照本人的理解平拍是在某個高度(智能的角度,VIO自動測定的一個跟蹤目標的高度)。

注:鑒于測試樣機是可以選擇跟隨高度:高、中(平拍)、低。

4.1 水平模式

在這里插入圖片描述

4.2 下坡模式

在這里插入圖片描述

4.3 上坡模式

在這里插入圖片描述

4.4 碰撞分析

視頻在上坡時發生與樹枝的碰撞,如圖所示。

如此時能在Z方向的高度維度進行視頻障礙物檢查,降低高度,同時跟隨攝像頭抬高視角,走到S位置,將可以規避該風險。

在這里插入圖片描述
從實際視頻效果看,小飛機跟隨策略是始終保持頭部高度以上一點的位置,因此,下坡就沒有類似問題。

在這里插入圖片描述

5. 總結

5.1 一維高度避障場景

這里僅僅針對上橋跟隨視頻出現樹枝遮擋這種障礙物場景進行了簡單的分析。

從邏輯的角度,如果沒有3D避障傳感器支持的情況下,需要通過單目攝像頭測距,平面解析幾何,來做出高度方向的規劃。

作為有保護圈的小型無人機,可以考慮降低以安全避開此類障礙物,因為低空通過性會更好,更安全(需要考慮最低高度,越低出現突然障礙物的可性能就會大幅度提高,比如:小孩)。

在公園或者小樹林,其實這種場景是很多的。如果沒有很好的3D避障傳感器,那么做一個跟隨一維高度避障就顯得很有意義。

以下是設置平拍(勉強在這個公園能通過,不過一些角落是沒有去的),如果設置高,那么100%會碰到樹枝。

HoverX1 城北公園散步

5.2 業界跟隨產品

目前,市場上比較成熟的產品可以參考下以下視頻:

Top 5 best follow me drone 2023

5.3 APM集成跟隨

當然目前業界排名前列的產品也并非做到了非常好的跟隨效果,尤其是在避障方面。

通過對Ardupilot的了解,如果能將ROS在避障方面的智能集成進來,也未嘗不是一種很好的解決方案。

示意圖一:

在這里插入圖片描述

示意圖二:

在這里插入圖片描述

示意圖三:

在這里插入圖片描述
上述方案可能或多或少都會涉及到新增飛行模式(當然也看飛控和傳感器的物理連接方式,這里主要是針對ArduPilot),關于飛行模式可以參考:ArduPilot開源飛控之飛行模式


  • Object Avoidance
  • ROS and VIO tracking camera for non-GPS Navigation
  • Follow
  • FollowMe
  • Adding a New Flight Mode to Copter

Drone based follow

6. 參考資料

【1】ArduPilot開源飛控系統之簡單介紹

7. 補充資料 - 大疆智能跟隨

總的來看,避障方面做的都不太好。所以有所突破就是產品亮點。

7.1 炸機

【損失槳葉一套】MNI 3 PRO智能跟隨炸機了

大疆mini3pro自動跟隨模式炸機啦!視頻結尾處~

大疆御3,萌新自動跟隨炸機

大疆御3自動跟隨炸機,撞樹。維修費用自理。大家看看是否正常。宣傳片里可以穿林,在樹梢穿越。是否屬于虛假宣傳?

DJI Mini 3 Pro 自動跟隨炸機

7.2 成功

mini3pro智能跟隨

大疆無人機智能跟隨,避障功能無敵了,結果真沒想到……

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43507.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43507.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43507.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java算法_ 驗證二叉搜索樹(LeetCode_Hot100)

題目描述&#xff1a; 給你一個二叉樹的根節點 &#xff0c;判斷其是否是一個有效的二叉搜索樹。root 有效 二叉搜索樹定義如下&#xff1a; 節點的左子樹只包含 小于 當前節點的數。 節點的右子樹只包含 大于 當前節點的數。 所有左子樹和右子樹自身必須也是二叉搜索樹。 獲得…

【TypeScript】tsc -v 報錯 —— 在此系統上禁止運行腳本

在 VS Code 終端中執行 tsc -v &#xff0c;報錯 —— 在此系統上禁止運行腳本 然后 windows x &#xff0c;打開終端管理員&#xff0c;出現同樣的問題 解決方法&#xff1a; 終端&#xff08;管理員&#xff09;執行以下命令&#xff1a; 出現 RemoteSigned 則代表更改成功…

11,模板泛化、模板特化、所占字節數、繼承實現模板展開、using循環命名展開可變參數

模板泛化、模板特化、所占字節數、繼承實現模板展開、using循環命名展開可變參數 模板泛化模板特化模板全特化通過模板偏特化獲取類型所占字節數通過模板偏特化和宏獲取類型所占字節數...ParamTypes和ParamTypes...的區別 通過繼承實現模板展開using 通過using循環命名的方式來…

開發一個文生圖的功能

文章目錄 效果開發環境原理核心代碼代碼倉庫問題效果 開發環境 Python 3.10PyCharm原理 借助開源項目stable-diffusion,通過該項目封裝python庫diffusers,可以輕易的實現文生圖的功能。 關于更多diffusers的功能請訪問:https://huggingface.co/docs/diffusers/index 核心代…

css樣式表屬性

文章目錄 css樣式表屬性colorbackground-colorfont-sizefont-weightfont-familyfont-styletext-decorationtext-indentline-height(line-height的概念)width、heightletter-spacingtext-aligndirectionwriting-modefont-variantborder-radiusopacitycursorvertical-alignmin-wi…

【數據結構與算法】十大經典排序算法-歸并排序

&#x1f31f;個人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知識導航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ?如有問題&#xff0c;歡迎指正&#…

如何用輸入函數為數組賦值

在編寫程序時我們經常使用數組&#xff0c;而數組的大小可能是很大的但是我們并不需要為每個元素都自己賦值&#xff0c;我們可能會自定義輸入數組元素個數&#xff0c;我們應該如何實現通過輸入函數為數組賦值呢&#xff1f; 目錄 第一種&#xff1a; 第二種&#xff1a; 第一…

大數據bug-sqoop(二:sqoop同步mysql數據到hive進行字段限制。)

一&#xff1a;sqoop腳本解析。 #&#xff01;/bin/sh mysqlHost$1 mysqlUserName$2 mysqlUserPass$3 mysqlDbName$4 sql$5 split$6 target$7 hiveDbName$8 hiveTbName$9 partFieldName${10} inputDate${11}echo ${mysqlHost} echo ${mysqlUserName} echo ${mysqlUserPass} ec…

OpenCV之remap的使用

OpenCV中使用remap實現圖像的重映射。 重映射是指將圖像中的某一像素值賦值到指定位置的操作&#xff1a;g(x,y) f ( h(x,y) )&#xff0c; 在這里&#xff0c; g( ) 是目標圖像, f() 是源圖像, 而h(x,y) 是作用于 (x,y) 的映射方法函數。為了完成映射過程, 需要獲得一些插值為…

TypeError: a bytes-like object is required, not ‘str‘

raceback (most recent call last): File "D:\pycharmcode\client.py", line 12, in <module> tcp_socket.send(send_data) TypeError: a bytes-like object is required, not str 使用socket進行ubuntu與windows通信時&#xff0c;發送數據時報了以上錯…

LeetCode 面試題 01.04. 回文排列

文章目錄 一、題目二、C# 題解 一、題目 給定一個字符串&#xff0c;編寫一個函數判定其是否為某個回文串的排列之一。 回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。 回文串不一定是字典當中的單詞。 點擊此處跳轉題目。 示例1&#xff1a; 輸入&…

CSS3:圖片邊框

簡介 圖片也可以作為邊框&#xff0c;以下是實例演示 注意 實現該效果必須添加border樣式&#xff0c;且必須位于border-image-socure之前否則不會生效 實例 <html lang"en"><head><style>p {width: 600px;margin: 200px auto;border: 30px soli…

maven工具-maven的使用-鏡像倉庫、本地倉、IDEA使用maven

Maven 一、為什么使用maven 添加第三方jar包jar包之間的依賴關系處理jar包之間的沖突獲取第三方jar包將項目拆分成多個工程模塊實現項目的分布式部署 二、maven簡介 ? Maven項目對象模型(POM)&#xff0c;可以通過一小段描述信息來管理項目的構建&#xff0c;報告和文檔的…

2023.8 - java - 對象和類

public class Dog {String breed;int size;String colour;int age;void eat() {}void run() {}void sleep(){}void name(){} } 一個類可以包含以下類型變量&#xff1a; 局部變量&#xff1a;在方法、構造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方…

基于STM32標準庫智能風扇設計

目錄 一&#xff0c;前言 二&#xff0c;系統方案選擇 三&#xff0c;實體展示 工程分類 四&#xff0c;相關代碼 PWM.c PWM.h AD.c AD.h 電機驅動程序 舵機驅動 一&#xff0c;前言 當今生活中&#xff0c;風扇已成為人們解暑的重要工具&#xff0c;然而使用風扇緩解…

CentOS系統環境搭建(九)——centos系統下使用docker部署項目

centos系統環境搭建專欄&#x1f517;點擊跳轉 關于Docker-compose安裝請看CentOS系統環境搭建&#xff08;三&#xff09;——Centos7安裝Docker&Docker Compose&#xff0c;該文章同樣收錄于centos系統環境搭建專欄。 Centos7部署項目 采用前后端分離的形式部署。使用Do…

【Sklearn】基于隨機梯度下降算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于隨機梯度下降算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 隨機梯度下降(Stochastic Gradient Descent,SGD)是一種優化算法,用于訓練模型的參數以最小化損失函數。在分…

QT學習筆記-QT5.15編譯及安裝谷歌拼音輸入法(QtInputMethod_GooglePinyin)

QT學習筆記-QT5.15編譯及安裝谷歌拼音輸入法&#xff08;QtInputMethod_GooglePinyin&#xff09; 0、背景1、環境2、下載QtInputMethod_GooglePinyin源碼3、使用MinGW64構建套件編譯3.1 編譯QtInputMethod_GooglePinyin源碼3.2、部署tgtsmlInputContextPlugin輸入法插件3.3、運…

Lombok注解在JSON化中,JSON生成額外生成字段問題

問題描述&#xff1a; 定義如下對象 Dataclass A{private String A;public String getC() {return "abab";}} 執行如下邏輯 Autowiredprivate ObjectMapper objectMapper;Testpublic void test4() throws Exception {A a new A();a.setA("a");System.ou…

分布式 - 服務器Nginx:一小時入門系列之負載均衡

文章目錄 1. 負載均衡2. 負載均衡策略1. 輪詢策略2. 最小連接策略3. IP 哈希策略4. 哈希策略5. 加權輪詢策略 1. 負載均衡 跨多個應用程序實例的負載平衡是一種常用技術&#xff0c;用于優化資源利用率、最大化吞吐量、減少延遲和確保容錯配置。?使用 nginx 作為非常有效的HT…