Skip to content
AFETZPublic

About

ArduPilot multiagent drone simulation sandbox with ROS 2, Gazebo, sensors, worlds, and devcontainer setup.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

229 Commits

Folders and files

Repository files navigation

Передача команд группе БПЛА при смене ретранслятора

Материалы статьи «Передача команд и выполнение маршрутов группы БПЛА при смене ретранслятора радиосвязи в застроенной среде», редакция 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 replay

tables выводит средние по сопоставимым парам и суммы 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.

About

ArduPilot multiagent drone simulation sandbox with ROS 2, Gazebo, sensors, worlds, and devcontainer setup.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages