Файл: Реферат Выпускная.docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 1453

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Реферат

Оглавление

Определения и сокращения

Введение

Проблема охраны территорий от малогабаритных БПЛА

Обзор известных методов решения проблемы

Постановка задачи проектирования системы управления охранного квадрокоптера

Полетный контроллер

Характеристики центрального процессора (CPU)

Барометрический датчик давления

Электродвигатель

Электронный регулятор скорости (ESC)

Выбор пропеллеров

Принцип работы датчика с оптическим потоком

Дальномер Leddar One Lidar

Результат сборки квадрокоптера

Автопилот PX4

Программная среда Robot Operating System

MAVROS

Структура пакета MAVLink

Алгоритм управления автономным полетом охранного квадрокоптера

Финансовый менеджмент, ресурсоэффективность и ресурсосбережение

Продолжительность этапов работ

Расчет сметы затрат на выполнение проекта

Расчет заработной платы

Расчет затрат на электроэнергию

Расчет затрат на социальный налог

Расчет прочих (накладных) расходов

Производственная безопасность

Уровень шума

Электробезопасность

Безопасность в чрезвычайных ситуациях

Пожарная безопасность

Особенности законодательного регулирования проектных решений

Заключение

Список используемых источников

Приложение А

The problem of protecting territories from small-size UAVs

REFERENCES

Алгоритм управления автономным полетом охранного квадрокоптера



При разработке системы управления автономным охранным квадрокоптером был разработан алгоритм, представленный на рисунке 3.5 и

3.6. Данный алгоритм является универсальным решением для выполнения автономных полетных миссий. Его применение в квадрокоптерах схожей

конфигурации будет обоснован, так как этот алгоритм эффективен и прост в реализации, что несомненно является плюсом.

Алгоритм адаптирован под реализацию в ROS пакете MAVROS.

ROS пакет MAVROS предоставляет удобный фреймворк для работы с протоколом MAVLink, на котором «общается» установленный в квадрокоптере автопилот PX4.

MAVROS обменивается информацией с полетным контроллером создает топики ROS, в некоторых темах публикует данные, а на другие подписывается, то есть ждет поступления данных в тему. Для управления квадрокоптером с конфигурацией, выбранной выше достаточно публиковать и считывать несколько тем.

Язык С++ будет использован для написания программы по разработанному алгоритму.


Рисунок 3.5 – Алгоритм работы системы управления квадрокоптером (часть 1)



Рисунок 3.6 – Алгоритм работы системы управления квадрокоптером (часть 2)
Блок «Запрос данных о состоянии автопилота» помогает получить важную информацию о состоянии подключения к автопилоту, узнать режим
полета автопилота, проверить состояние установки защиты автопилота. Этими данными обеспечивает MAVROS тема «mavros/state», которая должна своевременно считываться.

После того как был запущен MAVROS и программа управления (узел ROS) необходимо дождаться подключения MAVROS к автопилоту PX4. Для этих целей присутствует блок проверки «Автопилот подключен?». Если автопилот подключен, то проверка завершается успешно и алгоритм выполняется дальше, а если неудачно, то проверки будут повторяться, и программа дальше не продвинется.

Особенность режима Offboard такова, что перед тем как войти в этот режим, необходимо запустить потоковое задание, то есть начать публиковать координаты в теме «mavros/setpoint_position/local». В противном случае переключение режима не произойдет. Описанную задачу решает блок

«Инициализация начальной точки».

Непосредственное включение режима Offboard, описанного в выше, происходит в блоке «Установка полетного режима OFFBOARD у автопилота». Так как переключения режимов полета в MAVROS реализовано

с помощью службы ROS, то нужно отправить запрос в службу на изменения режима.

Далее мы запрашиваем данные о состоянии автопилота и после их получения проверяем текущий режим полета блоком «Текущий режим OFFBOARD?». При успешном выполнении алгоритм продолжиться, а при неудаче произойдет повторное включение режима.

Для выполнения любых полетных миссий необходимо, чтобы квадрокоптер был снят с защиты охраны). Эта функция реализуется блоком «Снятие автопилота с защиты». В MAVROS это

реализовано с помощью служб «mavros/cmd/arming».

Далее производятся проверки успешной предыдущей операции.

Блок «Блок расчета координат полетной миссии» является ключевым местом алгоритма. Здесь производится расчет будущих координат, которые в дальнейшем по порядку будут отправлены автопилоту на исполнение. Преимущества данного блока в том, что в него можно встраивать различные алгоритмы расчета координат, даже использовать данные других узлов ROS, которые, к примеру, занимаются планированием траектории полета на основании полученных данных с карт, либо с камер.

На выходе блока «Блок расчета координат полетной миссии» должна быть координата, которую блок «Отправка координаты целевой точки автопилоту» отправит полетному контроллеру на исполнение.

После того как квадрокоптер начнет свое движение в сторону выполнения миссии будет запускаться проверка достижения целевой точки блоком «Достигли места назначения?». При успешно выполненной миссии алгоритм перейдет в стадию расчета новой путевой точки.

Программная реализация алгоритма представлена в листинге 3.1.

Листинг 3.1


#include

#include #include #include

#include




mavros_msgs::State current_state;

void state_cb(const mavros_msgs::State::ConstPtr& msg){ current_state = *msg;

}
geometry_msgs::PoseStamped current_pose;

void pose_lock(const geometry_msgs::PoseStamped::ConstPtr& msg){ current_pose = *msg;

}
// начальная точка

int pos_x = 0; //координата X int pos_y = 0; //координата Y int pos_z = 0; //координата Z

int main(int argc, char **argv)

{

ros::init(argc, argv, "offb_node"); ros::NodeHandle nh;
ros::Subscriber state_sub = nh.subscribe<:state> ("mavros/state", 10, state_cb);

ros::Subscriber local_pos_sub = nh.subscribe<:posestamped>

("mavros/local_position/pose", 10, pose_lock); ros::Publisher local_pos_pub =

nh.advertise<:posestamped>

("mavros/setpoint_position/local", 10); ros::ServiceClient arming_client =

nh.serviceClient<:commandbool> ("mavros/cmd/arming");

ros::ServiceClient set_mode_client = nh.serviceClient<:setmode>

("mavros/set_mode");
// скорость публикации заданных точек ДОЛЖНА быть быстрее, чем 2 Гц ros::Rate rate(20.0);
// ожидание подключения Pixhawk while(ros::ok() && !current_state.connected){

ros::spinOnce();

rate.sleep();

}
geometry_msgs::PoseStamped pose; pose.pose.position.x = pos_x; pose.pose.position.y = pos_y; pose.pose.position.z = pos_z;
// отправка некоторых заданных точек, для включения OFFBOARD for(int i = 100; ros::ok() && i > 0; --i){
local_pos_pub.publish(pose); ros::spinOnce();

rate.sleep();

}
// установка режима OFFBOARD mavros_msgs::SetMode offb_set_mode; offb_set_mode.request.custom_mode = "OFFBOARD";
mavros_msgs::CommandBool arm_cmd; arm_cmd.request.value = true;
ros::Time last_request = ros::Time::now(); bool count = true;

while(ros::ok()){

if( current_state.mode != "OFFBOARD" &&

(ros::Time::now() - last_request > ros::Duration(5.0))){ if( set_mode_client.call(offb_set_mode) &&

offb_set_mode.response.mode_sent){ ROS_INFO("Offboard ON!");

}

last_request = ros::Time::now();

} else {

if( !current_state.armed && (ros::Time::now() - last_request >

ros::Duration(5.0))){

if( arming_client.call(arm_cmd) && arm_cmd.response.success){ ROS_INFO("Quadrokopter arming!");

pos_z = 2; // отправим команду на взлет для

коптера
}

last_request = ros::Time::now();

}

}

if(current_pose.pose.position.x == pos_x && current_pose.pose.position.y == pos_y &&) {

if(count) {

pos_y = pos_y + 4; count = false; return;

}

pos_x = pos_x - 4; count = true;

}

pose.pose.position.x = pos_x; pose.pose.position.y = pos_y; pose.pose.position.z = pos_z;


В программной реализации алгоритма управления автономным охранным квадрокоптером в блоке «Блок расчета координат полетной миссии» для тестовых испытаний был реализован расчет точек, расположенных на «зигзаг» линии, и в результате квадрокоптер на основе этой полетной программы пролетает траекторию, показанную на рисунке 3.7.



Рисунок 3.7 – Тестовая траектория полета автономного охранного квадрокоптера

Результатом исследования является разработанные архитектуры аппаратного обеспечения и системы управления, включающей в себя алгоритмическое проектирование и программную реализацию. Архитектура аппаратного обеспечения, являющаяся конфигурацией автономного охранного квадрокоптера, соответствует предъявляемым требованиям и отвечает задачам проектирования автономных систем управления. Разработанный алгоритм позволяет автономно управлять передвижением охранного квадрокоптера в пространстве. Данный алгоритм позволяет расширять разработанную систему управления, добавляя в нее новые модули, например, распознавание объектов и расчет приблизительных координат детектируемого объекта в координатах спроектированного охранного квадрокоптера. Это позволит рассчитать траекторию полета охранного квадрокоптера к обнаруженной цели, а затем передать точки траектории в разработанную в этой работе систему управления.
  1. 1   ...   15   16   17   18   19   20   21   22   ...   35

Финансовый менеджмент, ресурсоэффективность и ресурсосбережение

  1. Организация и планирование работ




Для оценки процесса реализации проекта необходимо составить линейный график, исполнителями являются научный руководитель(НР) и студент(С). Для каждого из выделенных этапов определим его исполнителей и долю участия каждого из исполнителей в его выполнении. Полученные результаты сведем в таблицу 4.1.

Таблица 4.1 Перечень выполняемых работ с указанием доли участия исполнителей

Этапы работы

Исполнители

Загрузка

исполнителей

1. Постановка целей и задач

исследования

НР, С

НР 75%

С – 25%

2. Разработка и утверждение

технического задания (ТЗ)

НР, С

НР 35%

С – 65%

3. Разработка календарного плана выполнения работ


НР, С

НР 20%

С – 80%

4. Анализ готовых технических

решений

НР,С

НР 20%

С – 80%

5. Подбор компонентов устройства

С

С 100%

6. Поиск источников, изучение основ проектирования и программирования во фреймворке Robot Operating System

(ROS)

С

С –100%

7. Составление алгоритма работы

системы управления

НР, С

НР 30%

С – 70%