Так как Parrot AR.Drone первоначально предназначен для iOS устройств, работать с ним очень просто. Однако, у этой простоты есть и обратная сторона - дрон создаёт открытую точку доступа, к которой может подключиться любой желающий и уронить (в прямом смысле!) или спереть дрон.
Однако, есть возможность избежать этого, вывернув схему подключения дрона наизнанку, то есть не подключаться к дрону, а наоборот, подключить дрона к защищённой точке доступа. Такое подключение, кроме того, позволит увеличить радиус действия дрона, если использовать внешнюю USB Wi-Fi карту с приличной антенной или точку доступа.
Есть два варианта такой настройки.
Можно вручную скопировать на дрон уже скомпилированные бинарники:
Включаем дрон, подключаемся к его точке доступа и цепляемся к нему по telnet:ap$ telnet 192.168.1.1
Для удобства рекомендую прописать запуск FTP сервера с доступом к корню файловой системы. Да, это серьёзная брешь в безопасности... была бы. В случае беспарольной точки доступа и такого же рутового открытого доступа через telnet говорить о безопасности смешно.drone$ echo "2121 stream tcp nowait root ftpd ftpd -w /" >>/etc/inetd.conf
Перезагружаем дрон (или перезапускаем initd).
Скачиваем и копируем куда следует бинарники ardrone-wpa2.ap$ wget https://github.com/daraosn/ardrone-wpa2/archive/master.zip
ap$ unzip ./master.zip
ap$ cd ./ardrone-wpa2-master/bin
ap$ ftp -n << EOF
open 10.0.0.100 2121
cd /sbin
put wpa_cli
put wpa_passphrase
put wpa_supplicant
EOF
Выставляем для бинарников нужные права:drone$ cd /sbin
drone$ chmod +x wpa_*
Если же Вы настроили Ваш дрон как описано в статье "Афропопугай или Ubuntu на AR.Drone", Вы можете установить нужный wpa_supplicant из репозиториев:
drone$ apt-get install wpasupplicant
Дальнейшая настройка одинакова для этих вариантов установки.
Создаём конфигурационный файл для подключения к точке доступа:drone$ wpa_passphrase DroneProxyAPESSID password >/etc/DroneProxyAPESSID.conf
Создаём скрипт для подключения к точке доступа. Теоретически, можно добавить его в автозагрузку, но я не рекомендую этого делать, так как есть шанс потерять вообще доступ к дрону.wpa_connect.sh
echo connecting to 'DroneProxyAPESSID'
killall udhcpd
killall udhcpc
echo `date` >>/var/wpa.log
ifconfig ath0 0.0.0.0 >> /var/wpa.log
wpa_supplicant -B -Dwext -iath0 -c/etc/DroneProxyAPESSID.conf >>/var/wpa.log
wait 5
/sbin/udhcpc -i ath0 >>/var/wpa.log
Исправляем права доступа:chmod +x ./wpa_connect.sh
Запускаем скрипт и видим подключение дрона к точке доступа.drone$ ./wpa_connect.sh
Это лишь подключение, для работы "родной" (и не родных, с настройками по умолчанию) программы управления дроном потребуется настройка точки доступа - дрону по DHCP должен выдаваться адрес 192.168.1.1.
После такого подключения к точке доступа мы получили:
- Защищённое (WPA2) подключение к точке доступа. Злоумышленнику гораздо сложнее уронить или увести дрон.
- Увеличение радиуса действия дрона.
- Дополнительную помехозащищённость (в некотором роде).
Есть и минусы.
- Родная программа управления(как, впрочем, и неофициальные) измеряют сигнал по данным планшета. Так как при такой настройке планшет всегда находится вблизи от точки доступа, она будет считать, что сигнал отличный, даже если дрон близок к потере сигнала. По этой же причине рекомендую использовать запись на USB носитель.