2016-01-05 73 views
1

遵循DroneKit指令,我能夠從他們的快速入門指南運行hello.py代碼:http://python.dronekit.io/guide/quick_start.htmlDroneKit:無法連接到/dev/tty.usbmodem1411:'Serial'對象沒有屬性'setBaudrate'

但是,當我試圖運行它們的基本使命例子,我得到的setBaudrate錯誤標題:

$ python mission_basic.py --connect=/dev/tty.usbmodem1411 

Connecting to vehicle on: /dev/tty.usbmodem1411 
Traceback (most recent call last): 
    File "mission_basic.py", line 23, in <module> 
    vehicle = connect(args.connect, wait_ready=True) 
    File "/Library/Python/2.7/site-packages/dronekit/__init__.py", line 2344, in connect 
    handler = MAVConnection(ip, baud=baud, source_system=source_system) 
    File "/Library/Python/2.7/site-packages/dronekit/mavlink.py", line 37, in __init__ 
    self.master = mavutil.mavlink_connection(ip, baud=baud, source_system=source_system) 
    File "/Library/Python/2.7/site-packages/pymavlink/mavutil.py", line 1106, in mavlink_connection 
    return mavserial(device, baud=baud, source_system=source_system, autoreconnect=autoreconnect, use_native=use_native) 
    File "/Library/Python/2.7/site-packages/pymavlink/mavutil.py", line 735, in __init__ 
    self.set_baudrate(self.baud) 
    File "/Library/Python/2.7/site-packages/pymavlink/mavutil.py", line 746, in set_baudrate 
    self.port.setBaudrate(baudrate) 
AttributeError: 'Serial' object has no attribute 'setBaudrate' 

注:tty.usbmodem1411是我的USB線運行直接從我的Mac上運行的優勝美地到APM。我也嘗試過3DR遙測套件,結果相同。我也嘗試在波特率選項中添加相同的結果。


UPDATE:使用鏈接的補丁陳昭宇都給解決了我的波特率的問題;然而,我仍然有一個問題,從來沒有找到心跳。這個問題也是因爲pyserial更新。 Tim Ryan提供的較老的pyserial解決方案解決了這兩個問題。

回答

4

鰭,它看起來像pySerial 3.0在過去一週內改變其API被釋放。 pymavlink(由DroneKit-Python使用)需要pySerial 2.0。我已經filed an issue,並將努力解決它。

在此期間,嘗試pip install "pySerial>=2.0,<=2.9999",看看是否能解決您的問題。

+0

這似乎是問題所在。我選擇使用陳昭宇的上面的鏈接來修補它。感謝您的迴應。 – LBoeg

+0

請參閱上面的更新。新的pyserial產生的問題不僅僅是波特率問題。安裝此版本工作。 – LBoeg

-1

射擊這裏的黑暗,所以道歉,如果這不能解決您的問題,但我懷疑它會。

你需要安裝驅動程序FTDI (https://learn.sparkfun.com/tutorials/how-to-install-ftdi-drivers/mac

我創建了USB串行連接,使用python,我的Arduino和我的Mac上運行小牛,隨後埃爾卡皮坦之間類似的問題。 (如果你害怕混淆你喜歡的Mac,在Ubuntu上開箱即可)在OSX升級之後,預計這會中斷。 (謝謝Apple)它也只適用於您在此過程中指定的USB端口。所以明智的選擇;)

希望這有助於。我失去了這個問題的日子。

+0

感謝您的快速反應。不幸的是,我不認爲這是我的問題。我經常在我的Mac上使用Arduino,我從來沒有遇到過與驅動程序有關的問題。不過,我從來沒有使用python進行串口連接。所以爲了以防萬一,我按照教程中的步驟安裝了驅動程序,但我沒有運氣。與之前一樣的結果......再次感謝。 – LBoeg

1

在新的Python setBaudrate()看起來與SerialBase類中刪除。請參閱mavlink的類似issue

+0

謝謝!這工作! – LBoeg

+0

不幸的是,我仍然有心跳錯誤...請參閱上面的更新。 – LBoeg

相關問題