1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shu-peixuan-UAVros

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

UAVros

Введение

UAVros содержит несколько пакетов ROS для симуляции и экспериментов PX4-gazebo. Тестирование было проведено для следующих версий дрона PX4:

— v1.11.3; — v1.12.0-beta3; — v1.13.3; — версия v1.14 находится в стадии тестирования.

Среда: Ubuntu 18.04 или Ubuntu 20.04 с ROS1.

Несколько примеров симуляций представлены в виде пакетов ROS в папке uavros_simulation/:

ROS-модуль Версия PX4 Функция
ARtagLanding_sitl v1.11.3, v1.12.0-beta3, v1.13.3 Одноместный БПЛА приземляется на AR-метку на основе визуального сервопривода с использованием направленной вниз камеры
kcffollow_simulation v1.11.3, v1.12.0-beta3, v1.13.3 Одноместный БПЛА отслеживает AR-метку с помощью направленной вниз камеры и алгоритма отслеживания KCF
uavros_uavugv_sitl v1.11.3, v1.12.0-beta3, v1.13.3 Два БПЛА летают вокруг UGV по кругу
uavros_wrzf_sitl v1.11.3, v1.12.0-beta3, v1.13.3 Одноместный БПЛА отслеживает заданные GPS-точки и движущийся UGV на основе обнаружения цвета с помощью направленной вниз камеры
uavros_multi_gimbal_sitl v1.13.3, v1.14 Многоместные БПЛА с камерами на подвесе совместно ищут и отслеживают цели
uavros_gazebo > v1.11.3 Модули симуляции Gazebo

Установка

Клонируйте этот проект:

cd ~
git clone https://gitee.com/shu-peixuan/UAVros.git
cd UAVros/

Установите ROS1, если у вас его нет:

# Установите ROS noetic для ubuntu20:
sudo ./install_ros_noetic.sh
# Установите ROS melodic для ubuntu18:
sudo ./install_ros_melodic.sh

Установите зависимости:

# минимальные зависимости для ubuntu20:
sudo ./install_dep_minimal_ubuntu20.sh
# минимальные зависимости для ubuntu18:
sudo ./install_dep_minimal_ubuntu18.sh
# установите numba для отслеживания KCF (необязательно):
sudo ./install_dep_kcf_tracking.sh

Установите проект автопилота PX4:

cd ~
git clone https://github.com/PX4/PX4-Autopilot.git
cd PX4-Autopilot
git checkout v1.13.3 # или другая версия
git submodule update --init --recursive
bash Tools/setup/ubuntu.sh # Этот шаг занимает некоторое время. Убедитесь, что все зависимости установлены успешно!
# Перелогиньтесь или перезагрузите компьютер, затем:
make px4_sitl gazebo

Скомпилируйте UAVros:

cd UAVros/
./compile_all.sh

Добавьте путь источника в ~/.bashrc:

### Добавьте путь пакета UAVros:
echo "source ~/UAVros/devel/setup.bash" >> ~/.bashrc

### Добавьте путь PX4:
# если вы используете версию px4 v1.13 или ниже:
echo "
source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=\$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=\$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo
" >> ~/.bashrc

# если вы используете версию px4 v1.14 (непроверенную):
echo "
source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=\$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=\$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
" >> ~/.bashrc

Использование

Посадка БПЛА на метку AR

  1. Запустите симуляцию sitl:

    roslaunch uavros_artaglanding_sitl singleLanding_sitl.launch

    В rqt_image_view выберите тему image_raw.

  2. Откройте QGroundControl. Нажмите левый верхний логотип Q -> Настройка параметров транспортного средства -> Параметры -> найдите «COM_RCL_EXCEPT» и измените его на 7. В противном случае БПЛА активирует режим возврата в безопасный режим, поскольку в симуляции нет ручного ввода с пульта дистанционного управления (ошибка в px4 1.13.3).

  3. В QGroundControl нажмите «Готов к полёту» -> Arm -> Сдвиньте нижнюю панель, чтобы подтвердить постановку на охрану. Затем щёлкните верхний текст режима и переключитесь в режим «offboard». Затем дрон взлетит.

  4. Начните отслеживание и посадку:

    rostopic pub /uav0/command std_msgs/Int32 "data: 1"

Также в landing_service.cpp предоставляется услуга посадки для БПЛА, который находится в режиме offboard и имеет подходящую высоту для вызова посадки. Эта услуга используется в... Запуск sitl-симуляции Multi-UAV formation tracking UGV

  1. Запустите симуляцию sitl:

    roslaunch uavros_kcffollow_simulation KCF_track.launch
  2. Откройте QGroundControl. Нажмите на логотип Q в левом верхнем углу -> Vehicle Setup -> Parameters -> найдите «COM_RCL_EXCEPT» и измените его на 7. В противном случае БПЛА активирует режим аварийного возврата, так как в симуляции нет ручного ввода с пульта дистанционного управления (ошибка в px4 1.13.3).

  3. В QGroundControl нажмите «Ready To Fly» -> Arm -> Сдвиньте нижнюю панель, чтобы подтвердить постановку на охрану. Затем нажмите на верхний текст режима и переключитесь в режим «offboard». После этого дрон взлетит. Или вы можете использовать клавиатуру терминала для отправки 0 (поставить на охрану) и 2 (взлететь).

  4. Выберите область ROI в окне отслеживания, после чего БПЛА начнёт отслеживать цель ROI.

Отслеживание формирования Multi-БПЛА UGV

  1. Запустите sitl-симуляцию:

    roslaunch uavros_uavugv_sitl uavugv_sitl.launch # (два дрона и один гоночный автомобиль)
    roslaunch uavros_uavugv_sitl uavrover_sitl.launch # (два дрона и один вездеход)
    roslaunch uavros_uavugv_sitl uavrover_valley_sitl.launch # (два дрона и один вездеход в долине)

    В rqt_image_view выберите тему image_raw БПЛА.

  2. Откройте QGroundControl. Нажмите на логотип Q в левом верхнем углу -> Vehicle Setup -> Parameters -> найдите «COM_RCL_EXCEPT» и измените его на 7. Сделайте это для каждого БПЛА! В противном случае БПЛА активирует режим аварийного возврата, поскольку в симуляции отсутствует ручной ввод с пульта дистанционного управления (ошибка в px4 1.13.3).

  3. В QGroundControl нажмите «Ready To Fly» -> Arm -> сдвиньте нижнюю панель, чтобы подтвердить активацию. Затем нажмите верхний текст режима и переключите в режим «offboard». Повторите для каждого БПЛА. После этого дроны взлетят.

  4. Начните отслеживание и обнаружение AR-тегов (остановится, вернётся и приземлится на UGV с помощью модуля посадки AR-тега):

    rostopic pub /cmd std_msgs/Int32 "data: 1" # начать формирование
    rostopic pub /cmd std_msgs/Int32 "data: 0" # остановить формирование

    Видео с симуляцией ровера UGV и БПЛА: https://www.bilibili.com/video/BV1U44y1r7ey/

Отслеживание БПЛА GPS-точек и UGV

  1. Запустите sitl-симуляцию:

    roscd uavros_wrzf_sitl/launch/
    ./cam_track_sitl.sh
  2. Откройте QGroundControl. Нажмите на логотип Q в левом верхнем углу -> Vehicle Setup -> Parameters -> найдите «COM_RCL_EXCEPT» и измените его на 7. Сделайте это для каждого БПЛА! В противном случае БПЛА активирует режим аварийного возврата, поскольку в симуляции отсутствует ручной ввод с пульта дистанционного управления (ошибка в px4 1.13.3).

  3. В QGroundControl нажмите «Ready To Fly» -> Arm -> сдвиньте нижнюю панель, чтобы подтвердить активацию.

  4. Взлёт -> полёт к первой точке GPS -> начало отслеживания (если цель потеряна на некоторое время, автоматически летите к следующей точке GPS, определённой в config/tracking_param_sitl.yaml).

    rostopic pub /jc_cmd std_msgs/Int32 "data: 0" # БПЛА ждёт
    rostopic pub /jc_cmd std_msgs/Int32 "data: 1" # взлёт БПЛА
    rostopic pub /jc_cmd std_msgs/Int32 "data: 6" # возвращение БПЛА
  5. Переместите UGV, чтобы увидеть производительность отслеживания:

    rostopic pub /ugv0/cmd_vel geometry_msgs/Twist "linear:
      x: 1.0
      y: 1.0
      z: 0.0
    angular:
      x: 0.0
      y: 0.0
      z: 0.0" -r 10

Многоцелевой БПЛА с кардановыми камерами

Чтобы запустить многоцелевой БПЛА с подвесными камерами, вам нужно использовать PX4 v1.14 (в стадии тестирования) или PX4 v1.13.3 со следующими изменениями:

# Если не в px4 v1.13.3, то сначала:
cd ~/PX4-Autopilot
git checkout v1.13.3
git submodule update --init --recursive

# 1. Замените gazebo_gimbal_controller_plugin.cpp (добавлен udp_gimbal_port_remote для различения карданов)
roscd uavros_gazebo
cp px4_modification/gazebo_gimbal_controller_plugin.cpp ~/PX4-Autopilot/Tools/sitl_gazebo/src/gazebo_gimbal_controller_plugin.cpp
# 2. Добавьте воздушные аппараты (8001_solo_gimbal с включённым карданом)
cp -r **Модификация PX4 / Airframes**

1. Удалите px4_sitl_default и создайте заново:  
   - cd ~/PX4-Autopilot  
   - rm -r build/px4_sitl_default/  
   - make px4_sitl_default gazebo

**Процедуры:**

1. Запустите симуляцию sitl:
   ```bash
   roslaunch uavros_multi_gimbal_sitl multi_gimbal_uav_ugv.launch
  1. Откройте QGroundControl. Нажмите на логотип Q в левом верхнем углу -> Vehicle Setup -> Parameters -> найдите «COM_RCL_EXCEPT» и измените его на 7. Сделайте это для каждого БПЛА! В противном случае БПЛА активирует режим аварийного возврата, так как в симуляции нет ручного ввода с пульта дистанционного управления (ошибка в px4 1.13.3).

  2. Состояниями карданов можно управлять и считывать их с помощью:

    # эхо угла кардана БПЛА0 (угол IMU следует FRD и угол ротора следует конфигурации BRD кардана)
    rostopic echo /uav0/amov_gimbal_ros/gimbal_state
    
    # управление углом кардана БПЛА0 (управление угловой скоростью недействительно):
    rostopic pub /uav0/amov_gimbal_ros/gimbal_control amov_gimbal_sdk_ros/GimbalControl "header:
       seq: 0
       stamp: {secs: 0, nsecs: 0}
       frame_id: ''
     mode: 2
     roll_angle: 0.0
     pitch_angle: 0.0
     yaw_angle: 60.0
     roll_rate: 0.0
     pitch_rate: 0.0
     yaw_rate: 0.0" -r 10
    
    # изображение кардана БПЛА0
    rostopic hz /uav0/amov_gimbal_ros/gimbal_image

    Угол кардана ограничен значениями по крену [-45, 45], тангажу [-90, 30] и рысканию [-80, 80] градусов, где крен и тангаж контролируются как инерциальный угол, а рыскание — как угол ротора.

    imu_angle в теме gimbal_state следует FRD (вперёд-вправо-вниз), правосторонней системе координат, и последовательность углов Эйлера — RPY (крен-тангаж-рыскание).

    rotor_angle в теме gimbal_state следует BRD (назад-вправо-вниз), правосторонней системе координат, и последовательность угла ротора соответствует конструкции кардана PRY (тангаж-крен-рыскание).

  3. Вы можете использовать QGroundControl для постановки на охрану и запуска транспортного средства или свои скрипты mavros для управления полётом БПЛА и карданами.

  4. Переместите UGV, чтобы увидеть характеристики отслеживания:

    rostopic pub /ugv0/cmd_vel geometry_msgs/Twist "linear:
       x: 0.5
       y: 0.0
       z: 0.0
     angular:
       x: 0.1
       y: 0.0
       z: 0.0" -r 10

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Беспилотный летательный аппарат с четырьмя винтами px4 под управлением программного обеспечения gazebo для имитационного моделирования полёта и контроля за формированием и выполнением команд. Поддерживает автономное наведение по двумерному коду, поиск беспилотных аппаратов и наземных транспортных средств в разнородных группах, отслеживание групп... Развернуть Свернуть
C++ и 6 других языков
BSD-3-Clause
Отмена

Обновления (2)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/shu-peixuan-UAVros.git
git@gitlife.ru:oschina-mirror/shu-peixuan-UAVros.git
oschina-mirror
shu-peixuan-UAVros
shu-peixuan-UAVros
main