UBCSailbot / raye-global-pathfinding

UBC Sailbot's Global Pathfinding Repository: A* pathfinding that creates sailing paths with minimized length and desirable wind speeds throughout.
MIT License
5 stars 1 forks source link

Create hand-crafted wind behaviour task cases to ensure quality behavior in common/important situations #25

Open tylerlum opened 4 years ago

tylerlum commented 4 years ago

As of right now, when we run: ./build/bin/pathfinder_cli -p 10 --navigate 48 235 20 206, it simply grabs the CURRENT weather information and then creates a path.

While this is helpful to see how the pathfinding would do RIGHT NOW, we want to be able to have consistent test cases that are:

  1. Repeatable - this allows us to run the pathfinding on the same conditions multiple times to properly compare changes to the system as it improves throughout the weeks/months

  2. Test for specific situations - we want to ensure that the system works as expected in all cases. Although we may not see a storm when we run, we want to have confidence that if there was a huge wind storm in the center or the far right, we would find a path around it. If there was an area with zero wind in the center or far left, we would find a path around it. If the straight line has perfect wind throughout, we should take that straight shortest path.

This issue is for 2 above. #22 is for 1.

tylerlum commented 3 years ago

PYGRIB library to read and write grib files https://jswhit.github.io/pygrib/docs/

tylerlum commented 3 years ago
  1. Big wind in middle
  2. No wind in middle
  3. Big wind everywhere except for specific curve
  4. No wind everywhere except for specific curve
  5. Patch big near beginning, and bad patch in corner
  6. Bad patch in irrelevant corner
  7. Everywhere high or low, go in straight line.
  8. Small patch in very specific area (storms aren't in huge areas)

Ensure use of realistic numbers (no 100's)