2017-12-29 86 views
-1

enter image description hereバイパス/ベクトル速度と検出された点の間の角度は、私は、センサによって検出された点を持っている90

であり、Iは、速度ベクトル、センサ位置、ドローンの位置、センサ間の距離を持っている場合、障害物の回避および検出された点。 私は解決策のない数日を試しています。 障害物を90度でバイパスする方法はありますか?障害物と平行になるようにする。

速度と検出された点の間の角度を見つけようとしましたが、この角度でベクトルの速度を回転させても動作しませんでした。物体点と検出点との距離を計算し、それに速度のマグニチュードを掛ける。

解決してください!あなたは、単一の測定から、これを行うことができないポイント

答えて

0
  1. 数!途中で少なくとも3点/距離をサンプリングする必要があります。次にそれらを世界の世界座標(または共通の参照フレーム)に変換して、p0,p1,p2と呼ぶことができます。

  2. まずチェックなし、その後壁が平面ではないか、複数の障害物にヒットした場合は3点は、同じ行に

    u = p1-p0 
    v = p2-p1 
    | u/|u| - v/|v| | <= zero_threshold 
    

    ない場合。あなたが再び測定したり、安全のために背を向ける必要がありますので、あなたのドローンは、同じ標高にまたはその定数が飛んでいる場合は、任意のこのような場合は、あなたが...それから

  3. 角度

    を何かを推測することはできません変化(軌道が線である)なら、これを2Dとすることができる。 (3Dでも高度測定が必要です... 3D壁の法線を使用してください。#2は非常に異なって見えます)。だから、壁と速度との間の角度計算されます。

    dangle = acos(dot_product((p2-p0),velocity_vector)/(|p2-p0|*|velocity_vector|)) 
    

    dangleの兆候があなたの座標系の特性を知らなくても、距離

    if (d0>d1>d2) turn away 
    if (d0<d1<d2) turn in 
    if (d0~=d1~=d2) no turn as you are parallel 
    

    から決定されるが、よりを伝えるのは難しいです。しかし、回転速度ベクトルが0に近いdangleになるかどうかを簡単に確認できます。符号をマイナスに変更しない場合。

関連する問題