我正在按照 DroneKit-Python 中的入门说明在 VM 中设置 DroneKit。为了让自己更轻松,我首先使用 Vagrant 设置 SITL。但是,我无法弄清楚如何让 SITL 运行并从示例脚本中与之对话。
我做了什么:
- 运行 SITL vagrant 脚本并让 SITL 正常工作(测试与在 Windows 上运行的 Mission Planner 的连接)。
按照“在 Linux 上设置”中讨论的方法对其进行了测试:
参数加载 ../Tools/autotest/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 clone 并导航到演示:
git clone http://github.com/diydrones/droneapi-python.git
cd droneapi-python/example/small_demo
我使用“mavproxy.py”(Linux VM 通过 USB 通信的正确类型)启动了 MavProxy。得到以下内容:
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 实际上没有运行。
谢谢!