mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-26 21:19:35 +00:00
docs: edit nti article
This commit is contained in:
@@ -2,9 +2,11 @@
|
||||
|
||||
## Работа с MQTT
|
||||
|
||||
### Работа с MQTT
|
||||
[MQTT](https://ru.wikipedia.org/wiki/MQTT) – протокол для обмена сообщениями между различными устройствами. Этот протокол используется для отправки команд дрону на Олимпиаде НТИ 2019. Для отправки сообщения оно публикуется в определенный топик; все подписчики этого топика получают это сообщение.
|
||||
|
||||
В образе Клевера предустановлена библиотека `paho-mqtt` для Python. Пример работы с этой библиотекой описан ниже:
|
||||
### Подписка на топики
|
||||
|
||||
В образе Клевера для Олимпиады НТИ 2019 предустановлена библиотека `paho-mqtt` для Python. Пример работы с этой библиотекой описан ниже:
|
||||
|
||||
```python
|
||||
import paho.mqtt.client as mqtt # Импортирование библиотеки mqtt
|
||||
@@ -22,7 +24,7 @@ def on_connect(client, userdata, flags, rc):
|
||||
def on_message(client, userdata, msg):
|
||||
# В объекте msg хранится топик, в который пришло сообщение (в поле topic)
|
||||
# и само сообщение (в поле payload)
|
||||
print (msg.topic+" "+str(msg.payload))
|
||||
print(msg.topic, str(msg.payload))
|
||||
|
||||
# Инициализация клиента MQTT
|
||||
client = mqtt.Client()
|
||||
@@ -33,7 +35,7 @@ client.on_message = on_message
|
||||
# Подключение к MQTT-брокеру. Первый параметр - имя или адрес брокера, второй - порт
|
||||
# (по умолчанию 1883), третий - максимальное время между сообщениями в секундах
|
||||
# (по умолчанию 60).
|
||||
client.connect("192.168.11.162", 1883, 60)
|
||||
client.connect('192.168.11.162', 1883, 60)
|
||||
|
||||
# Метод loop_start создаёт поток, в котором будет производиться опрос сервера и
|
||||
# вызов callback'ов.
|
||||
@@ -45,7 +47,7 @@ client.loop_start()
|
||||
|
||||
### Проверка
|
||||
|
||||
Публикация сообщений в топик для проверки может быть осуществлена с помощью команды `hbmqtt_pub`:
|
||||
Для проверки вы можете опубликовать любое сообщение в топик с помощью команды `hbmqtt_pub`:
|
||||
|
||||
```bash
|
||||
hbmqtt_pub --url mqtt://192.168.0.1:1883 -t /copters/copter1 -m 'сообщение'
|
||||
@@ -79,8 +81,8 @@ 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)
|
||||
# Взлет на 1 метр со скоростью 1 метр в секунду
|
||||
navigate(x=0, y=0, z=1, speed=1, frame_id='body', auto_arm=True)
|
||||
|
||||
# Ждем 5 секунд
|
||||
rospy.sleep(5)
|
||||
|
||||
Reference in New Issue
Block a user