项目作者: JTEnglish

项目描述 :
A*-based collision avoidance for UAV path planning
高级语言: Python
项目地址: git://github.com/JTEnglish/UAVHeading-CollisionAvoidance.git
创建时间: 2019-04-03T16:16:06Z
项目社区:https://github.com/JTEnglish/UAVHeading-CollisionAvoidance

开源协议:MIT License

下载


UAVHeading-CollisionAvoidance

A*-based collision avoidance for UAV path planning

Table of Contents

Required Modules

Avoidance Scenarios

Head-On Collision

Head-On Collision Path Planning

Non-Head-On Collision

Non-Head-On Collision Path Planning

Simulation Results

50 m/s Head-On Collision

50 m/s Head-On

50 m/s Head-On Collision (Targeted)

50 m/s Targeted Head-On

50 m/s Perpendicular Collision Scenario

50 m/s Perpendicular

Testing

UAVHcfg.py

Configuration file for UAVHeading Class

  1. INTERVAL_SIZE = 0.0012 # defines resolution for A* search
  2. DISTANCE_THRESHOLD = 0.01 # upper bound distance for running UAVHeading.avoid(UAVHeading) function
  3. DECISION_WEIGHTS = [ # weights for sidedWeightDecision in head-on avoidance scenario
  4. 1.0, # UAV-0
  5. 6.0, # Goal Position for UAV-0
  6. 0.75, # Other UAVs
  7. 0.25 # KeepOut Zoness
  8. ]
  9. SHOW_ANIMATION = False # graph path planning search animation in avoidance function

example.py

Example Test Script

  • Import UAVHeading Class
    1. from UAVHeading import UAVHeading
  • Initialize UAV Objects
    ```python
    1. # (pos, waypt, speed, heading, tPossible)
    uav0 = UAVHeading((1.515593587271553, -132.53722833033987),
    1. (1.5156, -132.5111),
    2. 50.0,
    3. 90.0,
    4. 30.0)

uav1 = UAVHeading((1.5098039166143598, -132.531099),
(1.5267, -132.531),
50.0,
0.0,
30.0)

  1. * Run Avoidance Algorithm
  2. ```python
  3. waypoints, _ = uav0.avoid(uav1)