mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-30 06:49:32 +00:00
2.6 KiB
2.6 KiB
Олимпиада НТИ 2019
Работа с MQTT
Проверка
Публикация сообщений в топик для проверки может быть осуществлена с помощью команды hbmqtt_pub:
hbmqtt_pub --url mqtt://192.168.0.1:1883 -t /copters/copter1 -m 'сообщение'
Где 192.168.0.1 – IP-адрес MQTT-брокера, сообщение – сообщение для публикации, /copters/copter1 – необходимый топик для публикации.
Работа с Клевером
Для выполнения команд на Клевере:
- подключитесь в Wi-Fi сети NTI;
- подключитесь к вашему Клеверу по SSH по его IP-адресу (подробнее см. подключение по SSH);
Для редактирования файлов на Клевере вы можете использовать консольные редакторы nano или vim. Также вы можете загружать файлы используя PyCharm или WinSCP.
Для автономного полета используйте API модуля simple_offboard.
Пример программы, выполняющей взлет, полет в точку в системе координат площадки и посадку на Python:
# coding: utf8
import rospy
from clever import srv
from std_srvs.srv import Trigger
rospy.init_node('flight')
get_telemetry = rospy.ServiceProxy('get_telemetry', srv.GetTelemetry)
navigate = rospy.ServiceProxy('navigate', srv.Navigate)
land = rospy.ServiceProxy('land', Trigger)
# Взлет на 1 метр со скоростью 0.5 метров в секунду
navigate(x=0, y=0, z=1, speed=0.5, frame_id='body', auto_arm=True)
# Ждем 5 секунд
rospy.sleep(5)
# Полет на координаты x=3, y=2, z=1 площадки с углом по рысканью 3.14 радиан со скоростью 0.5 метров в секунду
navigate(x=3, y=2, z=1, yaw=3.14, speed=0.5, frame_id='aruco_map')
# Ждем 5 секунд
rospy.sleep(5)
# Посадка
land()
Пример взлета на высоту 1 метр из командной строки:
rosservice call /navigate "{x: 0.0, y: 0.0, z: 2, yaw: 0.0, yaw_rate: 0.0, speed: 0.5, frame_id: 'body', auto_arm: true}"
Для более подробной информации и описания других команд смотрите API simple_offboard и примеры кода.