问题标签 [mavlink]

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.

0 投票
1 回答
1547 浏览

c++ - 从 popen 执行命令 shell 并设置其他命令 shell

我正在一个带有四旋翼和mavlink的项目中工作。我已经在我的 Ubuntu PC 中成功安装了 mavproxy,并且从终端运行它没有问题。当我mavproxy.py从终端运行并连接支持 mavlink(APM 自动驾驶仪)的四旋翼时,mavproxy 检测到四旋翼并且一切正常。

当您mavproxy.py在终端中执行程序时开始发送和接收几个参数。您可以在终端中写入一些参数以访问任何配置。例如,help终端中的命令:

我有一个mavlink.py要从 C++执行的代码

当我运行这个 C++ 程序时,终端显示的内容与我mavproxy.py从终端运行时会出现的相同,但我不知道如何发送helpC++ 代码中的命令。

如果您阅读程序,该while语句允许我捕获从程序mavproxy.pycout终端中生成的参数,但mavlink.py永远不会结束,直到您在终端退出或按CTRL+写一些东西,C所以while循环永远不会结束。

我一直在阅读有关 Popen 功能的信息,但我还没有找到正确的形式来执行此操作。

我知道我可以mavlink.h在我的程序中使用该库并将参数发送到四旋翼,但不想使用mavlink.h.

0 投票
2 回答
1494 浏览

c++ - 如何在 mavlink 协议中添加新消息?

我是 Mavlink 的新手,我想在 Mavlink 协议中添加一条新消息,并每秒定期发送一次。我该怎么做?

0 投票
2 回答
1005 浏览

c++ - 更改 Mavlink 消息速率 ArduPilotMega

我正在开发一个使用 Mavlink 协议(在 C++ 中)与 ArduPilotMega(2.6)通信的项目。
例如,我能够阅读诸如ATTITUDE之类的消息。当前的消息速率(所有消息)是 2Hz,我想提高这个速率。
我发现我应该设置MESSAGE_INTERVAL使用MAV_CMD_SET_MESSAGE_INTERVAL以更改它。

所以我的问题是:
如何在 c++ 中使用 mavlink 发送此命令消息?

我尝试使用下面的代码进行操作,但没有成功。我想我必须使用我上面提到的命令,但我不知道如何。

更新:我也在下面尝试了这段代码,也许我没有给它正确的系统 ID 或组件 ID。

也许我错过了target_system,target_componentsysid,之间的区别compid。我为每个尝试了几个值,但没有任何效果。
是否有任何 ACK 可以告诉我它是否收到了命令?

0 投票
2 回答
1949 浏览

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,不顾一切地尝试让事情正常进行。

以下是我怀疑可能导致问题的几件事:

  1. 波特率不正确(与我的飞行控制器通信的波特率需要为 57600)。我发现设置此波特率的最佳方法是将“init_uart_baud=57600”附加到/boot/config.txt/。我还阅读了其他方法,例如在 /etc/crontab 中附加一行。有什么建议么?

  2. Pixhawk 奇迹般地偶尔拒绝与 RPi 沟通。

任何帮助将不胜感激。谢谢你。

0 投票
2 回答
1751 浏览

dronekit-python - 这些尝试将 GPS 时间输入到 mavlink 中是否成功?

我正在尝试从 pixhawk 中获取 GPS 时间。我发现了很多关于此类的讨论,但似乎都没有解决。有更新吗?

这个人和这个人都被告知只使用系统时间(不是UTC)我也尝试获取GLOBAL_POSITION_INT_COV,但发现它不可用。

是一个关于从未解决的长期开发讨论(大约 2013 年)

另一个开发人员讨论引用了一堆这样的拉取请求 - 但看起来他们中的任何一个都没有进入过,或者我错了吗?

非常感谢!

0 投票
3 回答
1136 浏览

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

但它不起作用。

谁能帮我吗?

0 投票
3 回答
4450 浏览

ios - DJI SDK 是否与 MAVLink 协议通信?

我正在为 Auto Boat 系统制作应用程序,并且在阅读 Drone Kit API 文档时。此 API 不适用于 iOS。我已经搜索了另一个 DJI SDK 。

我正在使用 pixhawk 设备作为飞行控制器,它监听 MAVLink 协议。

我只想知道 DJI 是否可以与 MAVLink 协议进行通信。

提前致谢 。

0 投票
1 回答
1355 浏览

mavlink - 如何阅读mavlink包..在我的路上可以吗?

我阅读了有关 MAVlink 的信息,并尝试从 pixhawk fly 控制器中读取软件包。我想到了另一种打电话的方式,我想从这个讨论中了解读者是否可以,你怎么看

在我的阅读器上.. 我从 pixhawk 读取了两个第一个字节。

第二个字节需要是 PAYLOAD 长度 --> 所以新我知道我需要读取标题的 4 个字节 + PAYLOAD 长度字节 + 2 个 chcksub 字节。

因此,在读取 PAYLOAD 长度后,我定义了一个字节数组 -> 大小为
( PAYLOAD.length + 4 + 2 )并从串行读取到此缓冲区。可以吗?

0 投票
0 回答
121 浏览

python - 使用dronekit-python(“滑翔机”作为车辆)“关闭”电机

我正在开展一个项目,该项目旨在使用 Raspberry Pi、Dronekit 和 PixHawk 构建从气象气球发射的自动滑翔机。

为了测试我们的导航算法,我们将遥控飞机飞行到 400 英尺(法定限制),然后切换到自动化软件。

有什么方法可以让 Dronekit 将我们的车辆视为滑翔机而不是飞机?也就是说,一旦我们切换到自动化软件,它只会控制副翼,而不是螺旋桨。这只是试飞的问题,至于正确的事情我们根本不会连接螺旋桨。

0 投票
1 回答
1076 浏览

python - 如何将 pymavlink 安装到 Raspberry?

我写了这个命令来安装:

并得到这个错误: