Я следую инструкциям по началу работы в DroneKit-Python, чтобы настроить DroneKit на виртуальной машине. Чтобы облегчить себе задачу, я начал с Настройка SITL с помощью Vagrant. Однако я не могу понять, как запустить SITL и поговорить с ним из примеров сценариев.
Что я сделал:
- Запустил бродячий скрипт SITL и заработал SITL (проверено подключение к Mission Planner, работающему в Windows).
Протестировано, как описано в разделе "Настройка в Linux", выполнив следующие действия:
загрузка параметров ../Инструменты/автотест/copter_params.parm
набор параметров ARMING_CHECK 0
ПРИМЕЧАНИЕ. В моем приглашении MAVProxy не отображается приглашение «STABILIZE>». Эти побежали (что оказалось) успешно
- Затем я нажал Ctrl+D, чтобы выйти из моделирования SITL, и
vagrant ssh
, чтобы открыть приглашение для виртуальной машины. Я установил зависимости, как описано здесь (после исправления спецификации pip):
sudo apt-get install python-pip python-numpy python-opencv python-serial python-pyparsing python-wxgtk2.8
Затем MAVProxy
sudo pip install MAVProxy
Затем Droneapi (обратите внимание, нужно было установить с помощью «sudo»)
sudo pip install droneapi
Затем из командной строки (vagrant@vagrant-ubuntu-trusty-32:/vagrant/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 на самом деле не работает.
Спасибо!