按照DroneKit的说明,我能够从其快速入门指南http://python.dronekit.io/guide/quick_start.html中运行hello.py代码。

但是,当我尝试运行其基本任务示例时,标题中出现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遥测套件获得相同的结果。我也尝试添加具有相同结果的波特率选项。



更新:使用陈昭宇提供的链接补丁解决了我的波特率问题;但是,我仍然有一个问题,那就是永远找不到心跳。此问题也是由于pyserial更新。 Tim Ryan使用较旧的pyserial解决方案解决了这两个问题。

最佳答案

好的,看起来pySerial 3.0是在过去一周内发布的,它更改了其API。 pymavlink(由DroneKit-Python使用)需要pySerial 2.0。我已经filed an issue并将努力解决该问题。

同时,尝试pip install "pySerial>=2.0,<=2.9999"看看是否可以解决您的问题。

关于python - DroneKit:无法连接到/dev/tty.usbmodem1411:'Serial'对象没有属性'setBaudrate',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34602168/

10-15 17:44