fix(module2): use 6x6 grid in simulator

This commit is contained in:
2026-09-14 21:18:44 +03:00
parent f39462330a
commit 6937ce6782
2 changed files with 13 additions and 5 deletions
+5 -2
View File
@@ -92,8 +92,9 @@ python3 module2/module_b.py --target 14 --sim
python3 module2/module_b.py --target 14
```
По умолчанию используется поле 5×5, ID 0–24 и шаг 1 м. Закрытые ячейки
передаются через `--blocked`:
Без `--sim` используется площадочное поле 5×5, ID 0–24. Флаг `--sim`
включает старый Webots 6×6, ID 0–35. Закрытые ячейки передаются через
`--blocked`:
```bash
python3 module2/module_b.py --target 14 --blocked 7 8 13 --sim
@@ -103,6 +104,7 @@ python3 module2/module_b.py --target 14 --blocked 7 8 13 --sim
- `--target` — целевой ArUco ID;
- `--blocked` — закрытые ячейки;
- `--sim` — профиль симулятора 6×6;
- `--rows`, `--columns`, `--spacing` — геометрия сетки;
- `--speed` — линейная скорость, по умолчанию 0.35 м/с, предел RMC2 0.5 м/с;
- `--angular` — скорость поворота, по умолчанию 0.6 рад/с;
@@ -128,6 +130,7 @@ workspace RMC2 управляется через `/RMC2/cmd_vel`; Nav2 наст
```bash
python3 module2/module_b.py --target 14 --start 0 --dry-run
python3 module2/module_b.py --target 8 --start 0 --sim --dry-run
python3 module2/module_b.py --target 24 --start 6 --blocked 7 8 --dry-run
```
+8 -3
View File
@@ -98,8 +98,8 @@ def shortest_path(start, goal, rows, columns, blocked, forbidden=()):
def arguments():
parser = argparse.ArgumentParser()
parser.add_argument("--target", type=int, required=True)
parser.add_argument("--rows", type=int, default=ROWS)
parser.add_argument("--columns", type=int, default=COLUMNS)
parser.add_argument("--rows", type=int)
parser.add_argument("--columns", type=int)
parser.add_argument("--spacing", type=float, default=SPACING)
parser.add_argument("--blocked", type=int, nargs="*", default=[])
parser.add_argument("--speed", type=float, default=MAX_SPEED)
@@ -107,11 +107,16 @@ def arguments():
parser.add_argument("--stop-distance", type=float, default=STOP_DISTANCE)
parser.add_argument("--tolerance", type=float, default=TOLERANCE)
parser.add_argument("--scan-topic", default="/RMC2/scan_front")
parser.add_argument("--sim", action="store_true")
parser.add_argument("--sim", action="store_true", help="Симулятор с сеткой 6x6")
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--start", type=int, default=0)
args = parser.parse_args()
if args.rows is None:
args.rows = 6 if args.sim else ROWS
if args.columns is None:
args.columns = 6 if args.sim else COLUMNS
count = args.rows * args.columns
if args.rows < 1 or args.columns < 1:
parser.error("rows и columns должны быть больше нуля")