Интеграция авторской модификации алгоритма уклонения от препятствий БПЛА в систему ROS

Автор: Мокронос К.К., Еремина В.В.

Журнал: Международный журнал гуманитарных и естественных наук @intjournal

Рубрика: Технические науки

Статья в выпуске: 10-5 (97), 2024 года.

Бесплатный доступ

В данной статье представлена интеграция модифицированного алгоритма уклонения от препятствий в робототехническую операционную систему (ROS) для беспилотных летательных аппаратов (БПЛА). В статье рассматривается взаимодействие трех ключевых компонентов: фильтра Калмана, динамической системной модуляции (DSM) и адаптивного алгоритма 3DVFH+. Эти компоненты обеспечивают точную оценку состояния, адаптивное управление и эффективное планирование траектории движения БПЛА, что повышает его маневренность и безопасность в условиях сложной среды. Особое внимание уделено реализации взаимодействия компонентов через ROS, что способствует модульности и масштабируемости системы.

Еще

Бпла, фильтр калмана, динамическая системная модуляция, уклонение от препятствий, автономное управление

Короткий адрес: https://sciup.org/170207052

IDR: 170207052   |   DOI: 10.24412/2500-1000-2024-10-5-16-20

Текст научной статьи Интеграция авторской модификации алгоритма уклонения от препятствий БПЛА в систему ROS

Автономная навигация и уклонение от препятствий являются фундаментальными задачами при разработке систем управления для беспилотных летательных аппаратов (БПЛА). В условиях динамичной и непредсказуемой среды безопасность и надежность выполнения полетных заданий зависят от способности БПЛА быстро реагировать на изменения окружающей обстановки. В рамках данного исследования рассматривается интеграция трех основных компонентов системы управления с использованием ROS. Эти компоненты включают фильтр Калмана, динамическую системную модуляцию (DSM) и адаптивный алгоритм 3DVFH+, что позволяет повысить точность навигации и надежность управления БПЛА в изменяющихся условиях окружающей среды [1-3].

Фильтр Калмана используется для повышения точности оценки состояния БПЛА, что критически важно для обеспечения надежного управления. Динамическая системная модуляция отвечает за адаптивную корректировку управляющих воздействий, а алгоритм 3DVFH+ обеспечивает эффективное планирование пути и обход препятствий в реальном времени. ROS, будучи открытой платформой для разработки робототехнических систем, предоставляет мощные средства для интеграции данных компонентов, что упрощает их взаимодействие и тестирование.

Интеграция модулей в систему ROS

Для эффективной интеграции фильтра Калмана в среду ROS создается отдельный узел, который обрабатывает данные сенсоров и публикует уточненные оценки состояния. Основным элементом является класс KalmanFilter, реализующий методы предсказания и обновления состояния на основе данных сенсоров и процессного шума. Важной особенностью фильтра Калмана является его способность минимизировать влияние шумов и неточностей в данных, что особенно актуально при работе с БПЛА, где сенсоры часто подвергаются воздействию неблагоприятных внешних факторов.

Теперь создадим узел ROS, который будет использовать класс KalmanFilter для обработки данных датчиков и публикации оценок состояния (рис. 1).

^include

^include

#include

#include "kalman_fliter.h"

class KalmanFilterNode { public:

KalmanFilterNode(ros::NodeHandle pose_sub = nh.subscribe("uav/pose"3 1000, SKalmanFilterNode::poseCallback3 this);

state_pub = nh.advertise<:posestamped>("uav/state_estimate"3 1000);

Eigen::Vector3d acceleration(msg->linear_acceleration.x, msg->linear_acceleration.y., msg->linear_acceleration.z);

Eigen::VectorXd u(3);

u << acceleration^)., acceleration(1), acceleration^);

kf.predict(u);

Eigen::Vector3d position(msg->pose.position.x, msg->pose.position.y, msg->pose.position.z);

Eigen::Vectored z(3);

z << position(0), position(l), position(2);

publishStateEstimate();

} void publishStateEstimate() {

Eigen::VectorXd state = kf.getState();

geometry_msgs::PoseStamped state_msg;

statepub.publish(statemsg);

} private:

ros::Subscriber imusub;

ros::Subscriber posesub;

ros::Publisher statepub;

KalmanFilter kf;

Рис. 1. Листинг узла ROS для фильтра Калмана

Созданный узел ROS подписывается на данные с инерциального измерительного блока (IMU) и позиционные данные, обрабатывает их с помощью фильтра Калмана и публикует оценки состояния в виде сообщений PoseStamped.

Основные функции узла включают:

  • -    Обработку данных с IMU и позиционных сенсоров.

  • -    Публикацию уточненных оценок состояния.

Для интеграции DSM в ROS создается класс DynamicSystemModulation, который подписывается на оценки состояния, публикуемые фильтром Калмана, и публикует модулированные команды управления.

Создадим узел ROS , который будет использовать класс DynamicSystemModulation (рис. 2).

^include

«include

«include

«include "dynamic_system_modulation.h"

class DSMNode { public:

DSMNode(ros::NodeHandle control_pub = nh.advertise<:twist>("uav/control", 1000);

dsm.setControlPublisher(controlpub);

Eigen::VectorXd state(6);

state << msg->pose.position.x, msg->pose.position.y, msg->pose.position.z, 0, 0, 0;

// Placeholder для входных данных управления (это будет рассчитываться из другого источника) Eigen::VectorXd control_input(3);

control_input << 0, 0, 0;

// Корректировка входных данных управления на основе состояния dsm.predictAndAdjust(state, control_input);

private:

ros::Subscriber state_sub;

ros::Publisher control_pub;

DynamicSystemModulation dsm;

Рис. 2. Листинг узла ROS для динамической системной модуляции

Узел ROS, использующий класс DynamicSystemModulation, подписывается на оценки состояния, предсказывает будущее поведение БПЛА и корректирует управляющие воздействия, публикуя команды управления в виде сообщений Twist. Такой подход позволяет адаптивно корректировать траекторию движения аппарата в зависимости от внешних условий, таких как наличие препятствий или изменения в погоде.

Основные функции узла включают:

  • -    Получение оценок состояния от фильтра Калмана.

  • -    Предсказание будущего состояния БПЛА.

  • -    Корректировку управляющих воздействий.

  • -    Публикацию модулированных команд управления.

Интеграция DSM позволяет улучшить устойчивость системы управления, обеспечивая высокую точность выполнения управляющих команд и минимизируя вероятность возникновения ошибок, связанных с задержками или неточностями в данных.

Адаптивный алгоритм 3DVFH+ интегрируется в ROS для реализации функции обхода препятствий в реальном времени. Класс Adaptive3DVFHPlus обрабатывает данные сенсоров, строит гистограмму направлений и выбирает оптимальное направление движения.

Создадим узел ROS , который будет использовать класс Adaptive3DVFHPlus для обработки данных сенсоров и публикации навигационных команд (рис. 3).

^include

^include

^include

^include "adaptive_3dvfh_plus. h"

class VFHPlusNode { public:

VFHPlusNode(ros: :NodeHandle &nh) : vfh_plus(l.0, 0.1) { // Пример инициализации ^угловым разрешением и порогом point_cloud_sub = nh.subscribe("point_cloud", 1000, &VFHPlusNode::pointCloudCallback, this);

state_sub = nh.subscribe("uav/state_estimate", 1000, &VFHPlusNode::stateCallback, this); // Подписка на оценки состояния nav_pub = nh.advertise("uav/navigation_cmd", 1600);

vfh_plus.setNavigationPublisher(nav_pub);

} void pointCloudCallback(const sensor_msgs::PointCloud2::ConstPtr& msg) { vfh_plus.process Pointcloud(msg);

// Используйте оценки состояния для улучшения планирования пути

Eigen::Vector3d position^msg->pose.position.х, msg->pose.position.у, msg->pose.position.z);

vfh_plus.updateState(position); // Метод для обновления состояния в 3DVFH+ private:

nos::Subscriber point_cloud_sub;

ros::Subscriber state_sub;

ros::Publisher nav_pub;

Adaptive3DVFHPlus vfh_plus;

Рис. 3. Листинг узла ROS для адаптивного алгоритма 3DVFH+

Узел ROS, использующий этот класс, подписывается на данные лидара и публикует навигационные команды. Лидар, благодаря высокой частоте обновления данных, обеспечивает актуальную информацию о ближайших препятствиях, что позволяет алгоритму 3DVFH+ эффективно выбирать безопасные направления движения.

Основные функции узла включают:

  • -    Обработку данных облака точек от лидара.

  • -    Построение и фильтрацию гистограммы направлений.

  • -    Выбор оптимального направления.

  • -    Публикацию навигационных команд.

Адаптивность алгоритма 3DVFH+ позволяет значительно улучшить качество планирования траектории, особенно в условиях плотной застройки или других сложных сред, где требуется высокая маневренность. Использование ROS для интеграции этого алгоритма обеспечивает возможность быстрого тестирования и улучшения его параметров.

Интеграция всех трех модулей в ROS обеспечивает их согласованное взаимодействие, что критически важно для выполнения задач автономной навигации. Лидар публикует данные облака точек на тему /point_cloud, которые затем используются адаптивным алгоритмом 3DVFH+ для построения гистограммы направлений. С помощью этой гистограм- мы алгоритм выбирает оптимальное направление, избегая обнаруженных препятствий.

Фильтр Калмана обрабатывает данные с IMU и других сенсоров, публикуя уточненные оценки состояния на тему /uav/state_estimate. Модуль DSM подписывается на оценки состояния, предсказывает будущее поведение БПЛА, корректирует управляющие воздействия и публикует модулированные команды управления на тему /uav/control. Адаптивный алгоритм 3DVFH+ использует данные облака точек и оценки состояния для выбора оптимального направления движения и публикации навигационных команд на тему /uav/navigation_cmd.

Заключение

В статье рассмотрена интеграция фильтра Калмана, динамической системной модуляции и адаптивного алгоритма 3DVFH+ в ROS, что позволяет создать эффективную и адаптивную систему управления для БПЛА. Модульная архитектура ROS способствует независимой разработке, тестированию и улучшению каждого компонента, что повышает гибкость и надежность всей системы. Согласованное взаимодействие модулей обеспечивает высокую точность оценки состояния, адаптивное управление и безопасное планирование пути, что делает систему пригодной для работы в сложных и динамичных условиях.

Планируется изучить возможности интеграции системы с другими робототехническими платформами и расширение функциональности системы для выполнения более в условиях ограниченной доступности данных. В перспективе, разработанная система управления может быть применена для решения широкого спектра задач, начиная от мо- сложных задач, таких как координация не- ниторинга и разведки и заканчивая доставкой скольких БПЛА в составе группы или работа грузов в труднодоступные районы.

Список литературы Интеграция авторской модификации алгоритма уклонения от препятствий БПЛА в систему ROS

  • Еремина В.В., Мокронос К.К. Модернизация типового алгоритма уклонения от препятствий. I // Информатика и системы управления. - 2022. - № 1(71). - С. 27-40. EDN: JGMSTL
  • Еремина В.В., Мокронос К.К. Модернизация типового алгоритма уклонения от препятствий. II // Информатика и системы управления. - 2023. - № 2(76). - С. 6-17. EDN: QQPEIT
  • Еремина В.В., Мокронос К.К. Модернизация типового алгоритма уклонения от препятствий. III // Информатика и системы управления. - 2024. - № 2(80). - С. 40-54. EDN: CYWZWB
Статья научная