2014-01-22 2 views
1

Я пишу программу для управления дроном с помощью программы на C++. Я использую команды AT для управления дроном. я был в состоянии получить навигационные данные, посылая небольшой пакет в порт 5554. Но программа застрять на взлетной функции дрон:Аргументы, которые должны быть переданы команде AT-AT в ar.drone

sprintfAT * REF = «%, х», Последовательность чисел.

Теперь мой вопрос, каково должно быть значение x? Только восьмой бит должен быть установлен на один для взлета. Таким образом, в этом случае его значение должно быть 11540100. Но я нашел много примеров, в которых его значение равно 290718208. Я попытался взломать дрон, используя оба значения, но беспилотный взлет. Какую ценность следует использовать?

ответ

1

От MAPGPS на arDrone апи форуме: https://projects.ardrone.org/boards/1/topics/show/852

параметры настройки по: AT * CONFIG = 1, \ "контроль: altitude_max \", \ "2000 \"

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

Взлет: AT * REF = 101,290718208

Приземление: AT * REF = 102,290717696

зависания: AT * PCMD = 201,1,0,0,0,0

Конечно первый параметр (101 102, и т.д ..) должен быть заменен с правильным номером последовательности.

+0

благодарит за ответ. вы знаете, как команда может быть отправлена ​​рекурсивно с помощью sprintf. Я пытаюсь, но drone не отвечает. –

+0

Вы должны добавить его в цикл while, который работает в отдельном потоке. Ключ - нить + мьютекс. И дважды проверьте, что вы действительно подключены к drone (SSID), и вы отправляете пакет в правый UDP-порт. – JosephITA

0

Из разделе AR.Drone Developer Guide «s на AT*REF:

Отправить эту команду для управления основного поведения гула. С SDK версии 1.5 в битовом поле управления используются только биты 8 и 9. Биты 18, 20, 22, 24 и 28 должны быть установлены в 1. Другие биты должны быть набор 0.

Это означает, что если биты 8 и 9 равны нулю, вы по-прежнему отправки (используя Python):

>>> (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28) 
290717696 

Если вы хотите, чтобы беспилотный взлетать, то вы также набор бит 9 (не 8 бит, как вы сказали, в вашем вопросе) на 1 и получить:

>>> (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28) | (1 << 9) 
290718208 

Так вот откуда номер 290718208.

Смежные вопросы