Материалы статьи «Передача команд и выполнение маршрутов группы БПЛА при смене ретранслятора радиосвязи в застроенной среде», редакция v7.
Пять ArduPilot SITL, Gazebo/DART и ns-3.48. Сравниваются fixed и failover при geometry и LOS-only. Основная серия — 40 запусков; чувствительность к показателю NLOS — 12; два граничных сценария — 4. Измерительное окно — 240 с.
| Файл | Содержание |
|---|---|
| source.tar.gz | Исходники стенда, шесть конфигураций, модели БПЛА и анализаторы |
| reproduce.py | Загрузка архивов, пересчёт таблиц и запуск новой серии |
| results.csv | Основные числа таблиц 1 и 3 для сопоставимых пар |
| artifacts.json | Ссылки, размеры и SHA-256 архивов журналов и среды |
| CITATION.cff | Сведения для цитирования пакета |
Архивы данных и среды находятся в релизе urban-article-v7-20261104. Исходники упакованы с сохранением рабочих путей и имён модулей. В архив не входят переписка, планы разработки, внутренние ревью, черновики статьи и другие серии.
После python3 reproduce.py source основные части кода доступны по путям:
| Реализация | Путь |
|---|---|
| Полномочия ретранслятора и допуск команд | network/coordination/policy.py, service.py |
| Маршруты и преобразование ENU/NED | scripts/product/urban_mission.py |
| Управление экспериментом | scripts/product/relay_experiment.py |
| LOS/NLOS и потери радиосигнала | network/ns3/scratch/native-geometry-loss.h |
| Показатели запуска и парные оценки | scripts/product/analyze_urban_experiment.py, analyze_urban_study.py |
| Шесть экспериментальных условий | network/config/urban_*.json |
Нужны Python 3.10+, tar, zstd и доступ в интернет. Симуляторы для пересчёта
не требуются. Команды выполняются из каталога клонированного репозитория:
git clone https://github.com/AFETZ/bas_v2.git
cd bas_v2
git checkout urban-article-v7-20261104
python3 reproduce.py fetch journals
python3 reproduce.py tables
python3 reproduce.py replaytables выводит средние по сопоставимым парам и суммы O/C/A/U/T.
replay заново рассчитывает парные эффекты, bootstrap-интервалы и границы для
отсутствующего наблюдения по сохранённым результатам отдельных запусков.
python3 reproduce.py replay --raw сначала пересчитывает отдельные запуски
по исходным журналам. Выходной каталог — recalculated/; существующий результат
не перезаписывается.
Значения отдельного опыта с двухсекундным нарушением связи из раздела 5.4
сохранены в data/short_interruption.csv внутри архива исходников. Они относятся
к другой серии и не включаются в 56 городских запусков.
В журнале каждого запуска сохранены команды и события допуска, координаты, геометрические состояния радиолиний, параметры автопилотов, настройки и измеренные сетевые показатели. Также сохранены исходный порядок серии, контроллеры и результаты обработки. Файлы этой серии взяты с ПК4 без изменения наблюдений. PCAP и двоичные DataFlash не включены; архив предназначен для воспроизведения показателей статьи, а не полного покадрового аудита радиообмена.
Нужен выделенный Linux x86-64 хост с Docker, Python 3.10+, PyYAML, flock,
tar, zstd, доступом к Docker и достаточным местом для образа, зависимостей и
новых журналов. Исходная машина: Ubuntu 24.04, Ryzen 9 9950X, около 60 ГБ RAM.
Контейнер использует host network и privileged-доступ для TAP и сетевых пространств
имён; параллельные запуски стенда на одном хосте не предусмотрены.
python3 reproduce.py fetch runtime
python3 reproduce.py repeat urban-repeat-01Предварительно должны быть загружены журналы: из них берутся исходный план и
настройки. Новая серия получает отдельные идентификаторы. Сохранённые наблюдения
не заменяются новыми. Образ содержит ArduCopter 4.8.0-dev, Gazebo 8.14 и DART
6.13.2; архив native-runtime содержит используемый ns-3, исполняемый файл и
внешние зависимости. Неиспользуемые в городской радиомодели зависимости исходного
образа сохранены для совместимости. Sionna RT в эксперименте не вызывается.
Небольшой архив native-version сохраняет идентификатор исходной версии ns-3,
который читает существующий скрипт запуска.
Перед новой серией скрипт создаёт локальную установку ROS-пакета через colcon;
каталоги разработки с абсолютными ссылками на ПК4 не переносятся.
Лицензия исходников — GPL-3.0; права сторонних компонентов определяются их собственными лицензиями. Исходные журналы и таблицы распространяются как сопровождающие материалы этого программного пакета на условиях GPL-3.0.