日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

11(3)-AirSim+四旋翼仿真-AirSim中人工势场法方法改进

發布時間:2023/12/31 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 11(3)-AirSim+四旋翼仿真-AirSim中人工势场法方法改进 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在11(2)中已經將人工勢場法避障代碼遷移至AirSim中,但是有一些待解決問題,這里一并說明后續的解決方案。

1.障礙物檢驗

之前使用了AirSim中提供的目標識別接口,主要問題在于

  • 受到可搜索目標種類的限制,無法識別的物體不會被視作障礙物;
  • 檢測距離受限,在距離小于3米時難以識別。
  • 在拿到了障礙物檢測接口后,對相關部分進行替換,以上問題得到較好的解決。這部分內容不是本人負責,相關代碼可參考:https://github.com/Kun-k/airsim_python/tree/main/ObstacleDetection。該接口可實時檢測障礙物,并返回box3D類型的障礙物信息,如下所示:

    'box3D': <Box3D> { 'max': <Vector3r> { 'x_val': 4.900000095367432, 'y_val': 0.7999999523162842, 'z_val': 0.5199999809265137}, 'min': <Vector3r> { 'x_val': 3.8999998569488525, 'y_val': -0.19999998807907104, 'z_val': 1.5199999809265137}},

    box3D類型提供了8個頂點信息,8個頂點可組成一個立方體,進而得到想要的障礙物信息。

    這里取用了x?yx-yx?y平面內的4個頂點計算斥力。需注意以下兩點:

  • 檢測障礙物時的距離閾值,與避障時的距離閾值定義不同,故計算斥力時需再次確認障礙物是否在距離閾值內。
  • 直接獲取的障礙物信息是在機體坐標系下的信息,需變換至全局坐標系再進行計算。
  • 2.無人機速率和偏航控制

    在之前使用LQR方法進行控制,能夠較好地控制無人機跟蹤目標狀態,實現無人機機頭朝向與飛行方向的一致。但為了進行速度、加速度限幅,目標狀態的速度和加速度并不匹配,控制誤差也較大,對無人機的速度限制效果一般。

    參考三維航路點跟蹤時使用的控制器限幅方法,通過當前速度對控制器輸出進行限制,進行如下調整:

    # 無障礙物時,三維航路點跟蹤的控制器輸出 U1 = np.array((K0 * Pt_matrix + K1 * A.dot(Pt_matrix)).T)[0] if np.linalg.norm(U1, ord=np.inf) > Ul_track:U1 = U1 * Ul_track / np.linalg.norm(U1, ord=np.inf) U = -(U1 + V_curr) / K2 # 有障礙物時的控制器輸出 U = Fatt + Frep if np.linalg.norm(U, ord=np.inf) > Ul_avoid:U = Ul_avoid * U / np.linalg.norm(U, ord=np.inf) U = (U - V_curr) / K2 # 改進部分

    3.改進局部極小值判斷方法

    考慮下圖所示的情況,無人機由軌跡1-2切換至軌跡2-3時,在航路點2處先減速再加速。

    此時速度較小,如加速過程中檢測到障礙物,會認為滿足航路點檢測條件,產生不必要的避障動作。

    解決方法為,只在加速運動的過程中進行局部極小值檢驗。

    4.實現效果

    改進APF方法與RRT方法結合進行避障飛行

    RRT+APF無人機避障飛行

    總結

    以上是生活随笔為你收集整理的11(3)-AirSim+四旋翼仿真-AirSim中人工势场法方法改进的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。