问题标签 [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 投票
0 回答
317 浏览

python - Dronekit apm2.6 rpi3 未收到速度命令

目前有一个树莓派通过mavlink连接到一个运行arducopter 3.2.1的apm2.6。我可以运行一个可以武装和起飞无人机的 python 脚本,但是当我尝试发送速度命令以将四边形移动到一个方向时,它只会继续悬停在原地。发送速度命令时通过mavlink没有收到错误和ACK,起飞和改变模式时收到。降级到dronekit 1.5 以确保没有版本问题。代码:

任何帮助都会很棒!谢谢

0 投票
1 回答
486 浏览

python - mavROS、SITL ArduPlane:GUIDED 模式下的命令被拒绝

一个简单的 python 脚本将命令发布到连接到 arduplane SITL 实例的 mavros 节点。成功发布以将模式从 AUTO 更改为 GUIDED(因此没有连接或其他问题)。换机后,飞机在徘徊。

发布到服务~cmd/command~cmd/command_int命令被拒绝(返回代码 3)。

发布到主题~setpoint_raw/global没有任何效果。

发布的命令是一个简单的16 MAV_CMD_NAV_WAYPOINT

问题是:有什么方法可以使用 mavros 的任何主题/服务,以便简单地流式传输航路点(全球坐标对)供无人机跟随(在 GUIDED 或任何其他模式下)。

我认为在 AUTO 中清除并持续上传任务并不是一个完全可行的选择,因为它会显着延迟。

请注意,该解决方案适用于固定翼(又名飞机)。

版本:

ROS:动力学

ArduPilot:3.8.0beta5

在mavrosArdupilot集线器中也提出了这个问题。

0 投票
4 回答
1011 浏览

python - 使用单个 mavproxy 模拟两个 arducopter

我试图创建多个 mav 代理实例,但我对此一无所知。我的问题是关于如何在sitl 的单个地图中加载两个arducopter。我正在学习坐骑设置,我想知道是否可以在一张地图中加载两个 arducopter?

0 投票
1 回答
165 浏览

algorithm - 哪个是保护 MAVLink 协议的最佳加密算法?

我是 MAVLink 的新手。现在,我正在尝试检查无人机和 GCS 之间的数据丢失情况。之后,我想使用其中一种加密算法来保护 MAVLink 协议。哪一个是最好的?

感谢和问候

0 投票
1 回答
122 浏览

configuration - Mavlink 飞行前配置

我正在使用带有 pixhawk 飞行控制器的 mavlink。我从 heartbeat 收到消息,以为我不知道如何接收有关它的高度、俯仰、滚动或偏航的信息。当我通过 qgroundcontrol 应用程序连接 pixhawk 时,我立即连接并可以在指南针上看到方向,但我不知道如何复制它。可以通过从消息中获取返回来接收我特别要查找的信息:msg_vfr_hud.MAVLINK_MSG_ID_VFR_HUD、msg_ahrs2.MAVLINK_MSG_ID_AHRS2、msg_ahrs3.MAVLINK_MSG_ID_AHRS3。

我尝试像这样创建它们:

但我没有收到任何回复。我必须进行任何预检配置吗?任何帮助将不胜感激。

0 投票
1 回答
825 浏览

gps - 如何将消息类型 Float64 转换为 Float32

我正在尝试从主题 /mavros/global_position/compass_hdg 发布数据,该主题是 Float64 类型的消息(std_msgs/Float64),但 Float64 类型的主题都没有在我的 Nvidia Jetson TX1 上发布数据。

所以我想,既然 Float32 类型运行良好,我想将 ROS 节点的数据类型本身从 Float64 转换为 Float32。我尝试修改 C++ 代码并使用 catkin_make 重新编译,但没有运气。

有没有办法改变 ros 节点的类型。如果是这样,我是否必须从源代码重新构建以应用更改?

主题类型

0 投票
1 回答
362 浏览

mavlink - 使用没有 qgroundcontrol 的 mavlink

我正在尝试将我的 PX4Flow 传感器连接到树莓派。似乎几乎每个人都在使用 qgroundcontrol 来访问和控制它。但是因为我想将它集成到一些更大的程序中,如果可能的话,我想用一些自己编写的简单 python 代码来控制它。我的目标是:

  • 访问相机(测量速度 - 稍后)
  • 获取陀螺仪值

我不需要超声波传感器。

我发现我可以使用 MAVlink 在 px4flow 传感器和树莓派之间进行通信。我克隆了 git 存储库并按照https://github.com/mavlink/mavlink上的步骤操作,直到生成头文件 ( python -m mavgenerate)。有了它,我可以生成一个新的 python 文件。我不知道这是否正确,也不知道如何处理那个 python 文件。不再复制或生成文件(头文件)。我该如何继续?我如何使用图书馆?我什至如何测试连接?

0 投票
1 回答
4227 浏览

python - Dronekit python 车辆连接超时

我们在让 Dronekit 与我们的直升机一起工作时遇到了一些麻烦。到目前为止,我们已经使用 SITL 测试了所有东西,一切正常,但是这种成功并没有很好地转移到真实的东西上。

我们的设置是:运行 Mavproxy 的 Windows GCS(通过 COM9 主控,Dronekit 脚本和 Mission Planner 的 UDP 输出)和一个基本的 Dronekit 脚本(起飞和着陆)。请参阅图表以获得更清晰的解释。

在此处输入图像描述

我们在运行 MAVProxy 时使用以下命令:mavproxy.exe --master=com9,57600 --out=udp:127.0.0.1:14550 --out=udp:127.0.0.1:14551 --console

我们遇到的问题是连接到车辆(http://python.dronekit.io/guide/connecting_vehicle.html),我们能够连接到无人机并获取一些电路板信息。然而,我们在 30 秒内没有收到心跳消息,导致超时。

我们可以通过设置 wait_ready=False 来绕过超时。使用它,我们可以连接到车辆并武装无人机。在起飞时,它只在某些时候起作用。当我们重置 MAVProxy 时,我们发现它更有可能工作(起飞)。

我想确认使用带有 Mission Planner 的 udp 127.0.0.1:14550 连接到无人机可以正常工作。

任何关于我们可能做错了什么的见解将不胜感激,谢谢!

0 投票
0 回答
90 浏览

c - C - Mavlink 程序:sendto 失败并在连接到无人机时返回 EINVAL

我正在尝试使用 Parrot 开发的 mavlink 示例来控制使用 mavlink 协议的 Bebop2(链接在这里)。

为了向无人机发送消息,他们使用了 sendto 功能,但我遇到了一个我无法解决的问题:每次我尝试使程序正常工作时,我都会收到一个错误,经过一番调查,我发现它是'此代码中使用的sendto'(在mavlink_comm_send_msg函数中)返回EINVAL错误类型(代码位于src目录中的mavlink_comm.c文件中):

我查看了其他相关帖子并尝试了几件事来使其工作,但没有一个成功。演员表似乎是正确的,我验证了 dest_len论点,所以我很迷茫。

非常感谢你的帮助。

0 投票
1 回答
1019 浏览

python - 使用 pymavlink 或dronekit-python 的地理围栏

我正在尝试使用dronekit-python 为直升机设置围栏。我MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION此文档中找到了命令。

但是当我使用vehicle.message_factory.command_long_send(实际上是command_long_send文件 ardupilotmega.py 中的 MAVLink 类中的函数)时它不起作用,我也找不到mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION(所以我直接使用整数 5003)。

看了ardupilotmega.py的源码,发现里面有个函数叫fence_point_send,谁能告诉我怎么用?如何像Misson Planner 对python 所做的那样设置地理围栏?