feat: min-ref-distance
This commit is contained in:
47
main.py
47
main.py
@@ -120,11 +120,11 @@ def build(name: str, map_name: str, lat: float, lon: float):
|
|||||||
sleep(15)
|
sleep(15)
|
||||||
online_map.destroy()
|
online_map.destroy()
|
||||||
|
|
||||||
def run(name: str, map_name: str):
|
def run(name: str, map_name: str, ref_min_distance: float):
|
||||||
dir = Path('trajectories')
|
dir = Path('trajectories')
|
||||||
assert dir.exists()
|
assert dir.exists()
|
||||||
dir /= name
|
dir /= name
|
||||||
assert dir.exists()
|
assert dir.exists(), "Укажите корректное название маршрута"
|
||||||
dir_chunks = dir / 'chunks'
|
dir_chunks = dir / 'chunks'
|
||||||
file_positions = dir / 'positions.pkl'
|
file_positions = dir / 'positions.pkl'
|
||||||
|
|
||||||
@@ -140,9 +140,11 @@ def run(name: str, map_name: str):
|
|||||||
|
|
||||||
chunks: list[VisionChunk] = []
|
chunks: list[VisionChunk] = []
|
||||||
for i in range(len(data['chunk_positions'])):
|
for i in range(len(data['chunk_positions'])):
|
||||||
chunk = VisionChunk.load_image(dir_chunks / f"chunk_{i}.png")
|
pos = data['chunk_positions'][i]
|
||||||
chunk.pos = data['chunk_positions'][i] / online_map.pixel_ratio
|
if len(chunks) == 0 or np.hypot(chunks[-1].pos.x - pos.x, chunks[-1].pos.y - pos.y) > ref_min_distance:
|
||||||
chunks.append(chunk)
|
chunk = VisionChunk.load_image(dir_chunks / f"chunk_{i}.png")
|
||||||
|
chunk.pos = data['chunk_positions'][i] / online_map.pixel_ratio
|
||||||
|
chunks.append(chunk)
|
||||||
|
|
||||||
points = data['points'] / online_map.pixel_ratio
|
points = data['points'] / online_map.pixel_ratio
|
||||||
print("READ POINTS:", points)
|
print("READ POINTS:", points)
|
||||||
@@ -214,16 +216,6 @@ def run(name: str, map_name: str):
|
|||||||
print("Average FPS:", 1 / proc_time.mean())
|
print("Average FPS:", 1 / proc_time.mean())
|
||||||
vis_manager.show_final()
|
vis_manager.show_final()
|
||||||
|
|
||||||
def main(mode: str, name: str, lat: float, lon: float, ref: str, sim: str):
|
|
||||||
if name is None:
|
|
||||||
name = utility.generate_folder_name()
|
|
||||||
|
|
||||||
if mode == 'build' or mode == 'standalone':
|
|
||||||
build(name, ref, lat, lon)
|
|
||||||
|
|
||||||
if mode == 'run' or mode == 'standalone':
|
|
||||||
run(name, sim)
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
"""Парсер аргументов командной строки"""
|
"""Парсер аргументов командной строки"""
|
||||||
parser = argparse.ArgumentParser(description='Обработка траекторий')
|
parser = argparse.ArgumentParser(description='Обработка траекторий')
|
||||||
@@ -241,7 +233,8 @@ def parse_args():
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--name',
|
'--name',
|
||||||
type=str,
|
type=str,
|
||||||
help='Название траектории (обязательно для режимов build и run)'
|
default=utility.generate_folder_name(),
|
||||||
|
help='Название траектории'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Координаты
|
# Координаты
|
||||||
@@ -277,6 +270,14 @@ def parse_args():
|
|||||||
help='Где проводится симуляция: google или yandex (по умолчанию yandex)'
|
help='Где проводится симуляция: google или yandex (по умолчанию yandex)'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Место проведения симуляции
|
||||||
|
parser.add_argument(
|
||||||
|
'--ref-min-distance',
|
||||||
|
type=float,
|
||||||
|
default=100,
|
||||||
|
help='Минимальное расстояние между эталонами'
|
||||||
|
)
|
||||||
|
|
||||||
# Парсим аргументы
|
# Парсим аргументы
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -289,4 +290,16 @@ def parse_args():
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
main(args.mode, args.name, args.lat, args.lon, args.reference, args.simulation)
|
name = args.name
|
||||||
|
mode = args.mode
|
||||||
|
sim: str = args.simulation
|
||||||
|
ref: str = args.reference
|
||||||
|
lat: float = args.lat
|
||||||
|
lon: float = args.lon
|
||||||
|
rmd: float = args.ref_min_distance
|
||||||
|
|
||||||
|
if mode == 'build' or mode == 'standalone':
|
||||||
|
build(name, ref, lat, lon)
|
||||||
|
|
||||||
|
if mode == 'run' or mode == 'standalone':
|
||||||
|
run(name, sim, rmd)
|
||||||
|
|||||||
Reference in New Issue
Block a user