Я следую инструкциям getting started в DroneKit-Python для настройки DroneKit в виртуальной машине. Чтобы облегчить себе жизнь, я начал с Setting up SITL using Vagrant. Однако я не могу понять, как запустить SITL и поговорить с ним из сценариев примера.Как использовать dronekit с SITL vagrant VM от разработчика Wiki
Что я сделал:
- Ран Sitl бродячего сценарий и получил Sitl работает (проверено подключение к Планировщику миссия, работающее на Windows).
Испытано как описано в разделе "Setting up on Linux", выполнив:
пар нагрузки ../Tools/autotest/copter_params.parm
пары набор ARMING_CHECK 0
Примечания - не " STABILIZE> ", который отображается в моей подсказке MAVProxy. Этой RAN (казалось бы) успешно
- Тогда я сделал Ctrl + D, чтобы выйти из симулятора Sitl и
vagrant ssh
к открыть свой запрос на виртуальную машину. Я установил dependencies as described here (после того, как подправить спецификация пип):
Sudo APT-получить установку питона-пип питон-NumPy питон-OpenCV питон-серийный питон-Pyparsing питон-wxgtk2.8
Тогда MAVProxy
sudo pip install MAVProxy
Тогда droneapi (обратите внимание, должны были быть установлены с помощью "Суда")
sudo pip install droneapi
Затем из командной строки (бродяга @ бродяга-убунту-испытанный-32:/бродяга/ArduCopter $) Я получил клон GIT и переходите к демонстрации:
git clone http://github.com/diydrones/droneapi-python.git
cd droneapi-python/example/small_demo
Я начал MavProxy с помощью " mavproxy.py "(правильный тип для подключения виртуальной машины Linux через USB). Получено следующее:
Auto-detected serial ports are:
/dev/ttyS31
/dev/ttyS30
...
/dev/ttyS1
/dev/ttyS0
Logging to mav.tlog
libdc1394 error: Failed to initialize libdc1394
Наконец, несмотря на ошибку выше, я попытался загрузить и использовать модуль.
MAV> module load droneapi.module.api
MAV> DroneAPI loaded
Loaded module droneapi.module.api
api start small_demo.py
MAV> Exception in APIThread-0:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/droneapi/module/api.py", line 322, in run
self.fn()
File "/usr/local/lib/python2.7/dist-packages/droneapi/module/api.py", line 593, in <lambda>
APIThread(self, lambda: execfile(args[1], g), args[1])
...
ПРИМЕЧАНИЕ "MAV>" не указывает "MANUAL>", как указано в документах.
Вопрос: «Почему это не удалось, и что мне нужно, чтобы заставить его работать?» Я предполагаю, что проблема в том, что SITL на самом деле не работает.
Спасибо!
Недостающую часть картины была правильно начиная MAVProxy поговорить с Sitl (а также создание Sitl, так что я мог одновременно поговорить с Планировщиком миссий). Это достигается путем запуска mavproxy с использованием: mavproxy.py --master = 127.0.0.1: 14550 Я исправлю документы, чтобы они зафиксировали это на следующей неделе. –
@HamishWillee Должен ли я добавить что-то в свой ответ или это приемлемо? –
Это запускает droneapi внутри виртуальной машины SITL, пока я пытаюсь подключиться к виртуальной машине SITL с хоста. Подход работает, но он a) не совсем соответствует тому, что я пытаюсь сделать b) не рекомендуется практиковать (или, по крайней мере, это не будет, когда я обновляю документы). Это хороший ответ на вопрос «как мне запустить SITL и droneAPI в рамках одного и того же vagrant vm" –