问题标签 [dronekit-python]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dronekit-python - DroneKit - 设置 RTL 高度
我希望我的直升机返回到特定高度发射,现在我在 ArduPilot SITL 上运行一切。首先我尝试使用 simple_goto()
simple_goto() 适用于其他位置,但是当我使用 vehicle.home_location 时,它会导致直升机下降到高度 -7.5m。更重要的是直升机只是下降,它不会飞到finish_location。
所以我尝试使用 RTL 模式
它工作得很好,但我找不到将 RTL 高度设置为所需flight_altitude
参数的方法,它以默认 15m 运行。
raspberry-pi - RPi2 UART 设置和操作问题
我目前正忙于我的硕士项目,该项目涉及使用 Mavlink 协议在 Raspberry Pi Model 2 B V1.1 和 Pixhawk 飞行控制器之间的 UART 上设置通信。
当然,第一步是设置 UART 并使其正常工作。我不是一个在出现问题的第一个迹象时寻求帮助的人。我已经为此苦苦挣扎了好几天,这迫使我不止一次地怀疑我存在的目的。我感到愚蠢和沮丧。请看看您是否可以提供任何帮助。
我的第一个资源是本教程,它应该相对简单:
http://ardupilot.org/dev/docs/raspberry-pi-via-mavlink.html
本教程只是安装所有必要的包和依赖项,以及设置 UART。我按照步骤通过 raspi-config 禁用操作系统对串行端口的使用,但是在尝试测试连接后出现错误:
[Errno 2] 没有这样的文件或目录:'/dev/ttyAMA0'
这很奇怪。因此,在通过 rasp-config 禁用和启用操作系统对串行端口的使用几次并检查后,每次我禁用它时,/dev/ttyAMA0 文件都会消失。现在,如果禁用 UART 的操作系统使用会删除该文件,那么该死的东西应该如何在 UART 上工作!?尽管如此,我还是通过了。我启用了串行端口的 OS 使用,这将 ttyAMA0 文件留在原处并遵循另一个建议,即更改 /boot/cmdline.txt 并删除对 ttyAMA0 的所有引用,如以下链接所示:
http://www.raspberry-projects.com/pi/pi-operating-systems/raspbian/io-pins-raspbian/uart-pins
这似乎工作正常。我现在可以启动 RPi 和 Pixhawk 飞行控制器之间的通信,并获得一些看起来正确的信息。然后黑魔法开始了。第二天我测试了连接,它总是吐出完整的垃圾。但与前一天相比,一切都没有改变。在某个地方我一定会错过一些东西。我遵循所有相同的教程和步骤,试图获得前一天得到的更积极的结果。然而,这只会导致更不稳定的行为。将串行线连接到我的 Pixhawk 飞行控制器时,键盘/鼠标似乎时不时地被中断。一切都倒退了。我已经重新安装了 Raspbian Jessie,不顾一切地尝试让事情正常进行。
以下是我怀疑可能导致问题的几件事:
波特率不正确(与我的飞行控制器通信的波特率需要为 57600)。我发现设置此波特率的最佳方法是将“init_uart_baud=57600”附加到/boot/config.txt/。我还阅读了其他方法,例如在 /etc/crontab 中附加一行。有什么建议么?
Pixhawk 奇迹般地偶尔拒绝与 RPi 沟通。
任何帮助将不胜感激。谢谢你。
dronekit-python - Dronekit python 车辆连接超时
我正在尝试在我的单人无人机上使用dronekit 运行 helloworld.py。
我的环境是
当我尝试运行简单的 helloworld 示例时,vehicle.connect()
超时。
我也尝试将 pymavlink 降级到 1.1.73,但没有奏效。任何帮助深表感谢。
dronekit-python - DroneKit:在自动模式下改变地速/实现“MAV_CMD_DO_CHANGE_SPEED”
我需要帮助弄清楚如何在自动模式下设置地速(这显然是用 Mavlink 命令“MAV_CMD_DO_CHANGE_SPEED”实现的——但我找不到任何例子)。我认为会起作用的:
基于: https ://pixhawk.ethz.ch/mavlink/ 和 https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/common.xml
但它不起作用。
谁能帮我吗?
python - 使用dronekit-python(“滑翔机”作为车辆)“关闭”电机
我正在开展一个项目,该项目旨在使用 Raspberry Pi、Dronekit 和 PixHawk 构建从气象气球发射的自动滑翔机。
为了测试我们的导航算法,我们将遥控飞机飞行到 400 英尺(法定限制),然后切换到自动化软件。
有什么方法可以让 Dronekit 将我们的车辆视为滑翔机而不是飞机?也就是说,一旦我们切换到自动化软件,它只会控制副翼,而不是螺旋桨。这只是试飞的问题,至于正确的事情我们根本不会连接螺旋桨。
dronekit-python - 如何在 Dronekit 上使用 Arducopter 设置 GUIDED_NOGPS 模式?
如何命令 Arducopter 进入guided_nogps 模式?我计划在 gps 被拒绝的环境中操作,虽然其他帖子表明这可以通过guided-nogps 实现,但我看不到如何设置该模式。使用 Dronekit (python) vehicle.mode = VehicleMode("Guided_NoGPS") 返回一个错误,表明没有这种模式。
Mavlink 也拒绝承认该模式。
我的设置是运行 Arducopter 的 Pixhawk 和 Raspberry Pi 伴侣。DroneKit-SITL 上的固件是 v3.5 dev 和 v3.4(我为此编译了自己的 v3.4 二进制文件)。
其他一切都很好(例如,通过 set_attitude_target 进行控制,感谢这篇文章如何通过 DroneKit 设置直升机姿态 - SET_ATTITUDE_TARGET 不工作) - 我只需要能够进入室内!
另外 - 在发布 Arducopter v3.4控制没有 GPS 的运动之前,我确实在这篇文章中注意到可能需要光流传感器。这个要求实现了吗?
再次感谢!
欢迎所有建议。
感谢斯奎尔特的帮助。我创建了一个函数来改变飞行模式(20):
消息正确接收但未成功(返回结果 3)。我不确定的一件事是参数 2,规范表明它是特定于平台的。我放了 0,因为我不确定如何处理 Arducopter。
再次,欢迎任何建议,非常感谢!
python - 默认在python中浮动
我正在编写一些使用 GPS 坐标的代码,但我对 python 2 感到头疼。我正在使用dronekit python 库来具体说明。这是我正在尝试做的一个示例。
问题是 new_x 和 new_y 打印四舍五入的值,例如 41.0。我知道可以通过用 float() 包装数字来纠正这个问题,但这看起来真的很笨重。有没有办法告诉python所有数字都应该被视为浮点数?
dronekit-python - Dronekit 中 SYSTEM_TIME 和配套计算机时间之间的累积误差
与这个人类似,我一直在尝试将 GPS 时间从 Pixhawk 获取到 Raspberry Pi 配套计算机中。
在尝试该@vehicle.on_message('SYSTEM_TIME')
方法之前,我使用通配符来捕获所有消息并将结果转储到文件中。检查文件,我看到我从 GPS 获得的唯一类型的消息是GPS_RAW_INT。最重要的是,我没有收到SYSTEM_TIME_UTC消息,根据文档,该消息从 GPS 获取 UTC 时间。
现在,使用正常的@vehicle.on_message('SYSTEM_TIME')
作品,我得到了一些东西。然而,那是什么东西?文档声称它是:
系统时间是主时钟的时间,通常是主车载计算机的计算机时钟。
好的,我认为“主要车载计算机”是 Pixhawk。但是,如果没有包含它的 GPS 消息,它如何获取时间。GPS_RAW_INT不携带任何时间信息。
进一步调查,我编写了以下处理程序:
rpi_time来自 Raspberry Pi 并且是正确的,因为它是由 NTP 在启动时设置的。我想验证mavlink_time(我认为它必须是基于 GPS 的时间)会非常接近。我错了。
多次运行,我注意到,起初,GPS 时间总是提前两秒左右。随着时间的流逝,它落后了。样本输出:
在这种情况下,rpi_time(这是正确的)表示已经过去了 172 秒,mavlink_time 声称只有 30 秒。其他试验显示出巨大的变化(差异绝不是固定的)。
所以,我的问题是:
- SYSTEM_TIME消息基于什么?实际上,它只能是 GPS(这是 Pixhawk 唯一可用的时间数据),但如果是这样的话......
- 为什么它如此不准确,为什么我也没有收到SYSTEM_TIME_UTC消息?