mirror of
https://github.com/CopterExpress/clover.git
synced 2026-06-05 09:09:33 +00:00
58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
# Олимпиада НТИ 2019
|
||
|
||
## Работа с MQTT
|
||
|
||
### Проверка
|
||
|
||
Публикация сообщений в топик для проверки может быть осуществлена с помощью команды `hbmqtt_pub`:
|
||
|
||
```bash
|
||
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](ssh.md));
|
||
|
||
Для редактирования файлов на Клевере вы можете использовать консольные редакторы `nano` или `vim`. Также вы можете загружать файлы используя PyCharm или WinSCP.
|
||
|
||
Для автономного полета используйте API модуля [simple_offboard](simple_offboard.md).
|
||
|
||
Пример программы, выполняющей взлет, полет в точку в системе координат площадки и посадку на Python:
|
||
|
||
```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 площадки со скоростью 0.5 метров в секунду
|
||
navigate(x=3, y=2, z=1, speed=0.5, frame_id='aruco_map')
|
||
|
||
# Ждем 5 секунд
|
||
rospy.sleep(5)
|
||
|
||
# Посадка
|
||
land()
|
||
```
|
||
|
||
Для более подробной информации и описания других команд смотрите [API simple_offboard](simple_offboad.md) и [примеры кода](snippets.md).
|