fix: align modules with physical rover API

This commit is contained in:
2026-09-10 22:06:08 +03:00
parent 0a8894f3b2
commit cb5e751d15
14 changed files with 474 additions and 96 deletions
+28 -2
View File
@@ -13,7 +13,8 @@
Решение специально последовательное: это медленнее параллельного управления,
зато уменьшает риск столкновения RMC1 и RMC2. Маршруты строятся BFS по графу
ArUco 6 × 6, занятые клетки исключаются. Движение замыкается по odometry,
ArUco, занятые клетки исключаются. Для Webots используется сетка 6 × 6, для
физического поля из документации — 5 × 5. Движение замыкается по odometry,
`scan_front` вызывает остановку перед препятствием, команды скорости сглаживаются.
Соседняя парковочная точка RMC2 автоматически берётся из построенного пути к
комплектации, отдельный параметр для неё не нужен.
@@ -63,7 +64,7 @@ python3 module5/module5.py --target 1
Перед движением программа показывает все точки и маршруты. После проверки
нажмите Enter. Классы цели: `1=hammer`, `2=wrench`, `3=pliers`.
Пример с точками эксперта:
Пример с точками эксперта для Webots:
```bash
python3 module5/module5.py --target wrench \
@@ -72,6 +73,26 @@ python3 module5/module5.py --target wrench \
--delivery 5 --delivery-approach 4 --blocked 31,35
```
На физическом поле обязательно добавьте `--real` и явно передайте все семь точек
эксперта. Без них скрипт откажется запускаться, чтобы случайно не применить
симуляторный пресет 0–35 к реальным ID 0–24:
```bash
python3 module5/module5.py --real --target wrench \
--rmc1-start "$RMC1_START" --rmc2-start "$RMC2_START" \
--rack "$RACK" --assembly "$ASSEMBLY" \
--assembly-approach "$ASSEMBLY_APPROACH" \
--delivery "$DELIVERY" --delivery-approach "$DELIVERY_APPROACH" \
--blocked "$BLOCKED" --dry-run
```
Сначала присвойте переменным фактические ID и проверьте этот `--dry-run`. Затем
уберите только `--dry-run`. Реальный профиль также выбирает камеру
`/RMC1/arm95/svcam/right/image/compressed`, лифт `0.05` м и системное время.
Суффикс камеры противоречит указанному в PDF типу `sensor_msgs/Image`, поэтому
сначала выполните `ros2 topic info ... -v`; если фактический тип
`CompressedImage`, добавьте `--camera-compressed`.
Только маршруты, без ROS и движения:
```bash
@@ -118,6 +139,11 @@ Webots не имеет аппаратного watchdog: после SIGKILL до
поле: геометрия полки может отличаться. Если ARM95 пока не откалиброван,
`--skip-arm` позволяет отдельно проверить всю логистику RMC1/RMC2.
Для расчёта координат детали нужен `CameraInfo`. Если его нет в списке топиков,
передайте калибровку как `--camera-fx`, `--camera-fy`, `--camera-cx`,
`--camera-cy`. Имена frame камеры и базы проверьте через TF; базу можно заменить
аргументом `--base-frame`.
## Логи и критерии
Логи сохраняются в `module5/logs/module5_*.jsonl` и не попадают в Git. В них