# 如何用 Python 创建 MAVLink 命令发送航点？

> 原文链接：https://robotics.hellobike.com/pitfalls/2017-03-02-robotics-se-11721
> 频道：pitfalls | 更新日期：2017-03-02 | 标签：auto, stackexchange, python, ardupilot, mavlink
> 核心摘要：建议优先用 dronekit-python 连接飞控、切到 GUIDED 并用 simple_goto 发送航点。

# 如何用 Python 创建 MAVLink 命令发送航点？

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Creating MAVLink commands from python](https://robotics.stackexchange.com/questions/11721/creating-mavlink-commands-from-python)（Robotics Stack Exchange #11721）

**状态**：已解决

## 问题

提问者找不到清晰文档说明如何用 Python 创建 MAVLink 命令，想接收并保存 GPS 数据、导入 GPS 数据，并向 APM 发送航点经纬度和高度，目标是不依赖 GCS。

## 环境

Linux / ROS 机器人软件与控制通用开发环境

## 解决办法

1. 优先使用 `dronekit-python`，它会处理连接、接收包等底层细节；也可用 `pyMAVLink`。
2. 通过 `connect(connection_string, wait_ready=True)` 连接飞行器，示例连接串为 `127.0.0.1:14550`。
3. 将飞行器模式设为 `GUIDED`，解锁后用 `simple_takeoff(aTargetAltitude)` 起飞。
4. 设置 `vehicle.airspeed`，用 `LocationGlobalRelative(lat, lon, alt)` 构造航点，再调用 `vehicle.simple_goto(point1)`。
5. 若使用 `pymavlink`，用 `mavutil.mavlink_connection('udp:localhost:14551', ...)` 连接，并按 MAVLink 标准选择消息类型和填写参数。

原问题作者：car12398；采纳答案作者：Mark Omo。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #11721：Creating MAVLink commands from python](https://robotics.stackexchange.com/questions/11721/creating-mavlink-commands-from-python)