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 test cases with the boat not starting from Victoria, but from arbitrary positions. Then run full virtual Vic-Maui races #23

Open tylerlum opened 4 years ago

tylerlum commented 4 years ago

When we run ./build/bin/pathfinder_cli -p 10 --navigate 48 235 20 206, we are always testing the system from Victoria to Maui. For our journey, the destination will always be Maui. However, our starting point will move as the boat progresses throughout the journey. We want to have test cases that test that this still works from different start positions.

From there, we can do a practice run.

  1. Start boat at Victoria
  2. Run pathfinding.
  3. Move boat forward X number of waypoints forward along its path.
  4. Note any times we did something bad, like go into good or bad wind, or go out of bounds.
  5. Update wind conditions (either with live data, stored data, hand crafted data, etc.)
  6. Repeat steps 2-5 until it reaches Maui

We want to be able to understand what happened on these journeys. Visualizing the movement would be best.

tylerlum commented 3 years ago

Ideas:

start = 48 235
end =  21 203
output=./build/bin/pathfinder_cli -p 8 --navigate $start $end
start=get the tenth line output + 360
output=./build/bin/pathfinder_cli -p 8 --navigate $start $end

while start != end: output = run_pathfinding(start, end ....) start = output.second waypoint? + noise?

tylerlum commented 3 years ago

Need to modify storage of Path.kml and Wind.kml so that

tylerlum commented 3 years ago

Right now, it just saves to "Path.kml" wherever the terminal is located. Now want to make it in an output directory like "output_kmls" or "outputkmls" with the kmls inside. Make sure code is resilient. eg. if output directory exists, don't destroy it or cause fault. If output directory does not exist, do not cause fault but create the directory.

tylerlum commented 3 years ago

Creates Path.kml here src/pathfinding/PathfinderResultPrinter.cpp

tylerlum commented 3 years ago

With existing bash script, can run pathfinding multiple times moving forward along path. However, we want to have the option of changing the weather at each iteration. To do this we must:

  1. Change the input argument from -g csv (csv hardcoded value) to -g input_csvs1 or -g input_csvs2, where input_csvs1 and input_csvs2 are folders that contain the csv files to be used at each iteration. Then the bash script can simply add a -g input_csvs${iteration} into the arguments