飞控通讯协议 控制无人机飞行(MAVLink、MAVSDK) 您所在的位置:网站首页 gps无人机起飞教程图解 飞控通讯协议 控制无人机飞行(MAVLink、MAVSDK)

飞控通讯协议 控制无人机飞行(MAVLink、MAVSDK)

2024-07-11 06:01| 来源: 网络整理| 查看: 265

目录

前言

一、MAVSDK简介

二、编译安装MAVSDK

三、启动PX4的jMAVSim仿真环境无人机

四、飞行控制

1、例子:控制无人机 起飞着陆

2、例子:键盘方向键控制无人机 起飞着陆、飞行

3、其它例子

五、后续开发建议

前言

之前的文章,介绍过 PX4开源飞控仿真环境的搭建 及 MAVLink飞控通讯协议:

PX4开源飞控--开发环境搭建 编译仿真及烧录

MAVLink 飞控通讯协议开发详解

本章将介绍如何通过MAVSDK开发包控制仿真无人机飞行(间接使用MAVLink飞控通讯协议)。

飞行操作视频如下:

基于MAVSDK开发包使用键盘控制仿真无人机起飞着陆、飞行

一、MAVSDK简介

        MAVLink飞控通讯协议常用于无人机和地面站之间的通讯,直接通过底层MAVLink协议去控制无人机较为困难,容易失败,是因为无人机存在一些操控逻辑和细节。         因此,使用一些MAVLink协议相关的开源API,工程或SDK软件包去操作,无疑是最好的选择。MAVSDK是一个由开源社区 mavlink 开发的轻量级 SDK,用于与MAVLink系统的通讯接口。  它提供了一套现代多编程语言接口(c++、python、go、java等),处理了很多逻辑细节,使得开发者能够轻松地与飞行控制器、地面站以及其他 MAVLink 设备进行通信,从而构建复杂的无人机应用。  

MAVSDK官方指导文档:https://mavsdk.mavlink.io/main/en/MAVSDK-C++源码:https://gitcode.com/mavlink/MAVSDK 二、编译安装MAVSDK

1、下载MAVSDK-C++源码

git clone https://github.com/mavlink/MAVSDK.git --recursive cd MAVSDK

2、编译项目

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -Bbuild/default -H.

参数解析: -DCMAKE_INSTALL_PREFIX=install:指定安装路径为install,否则安装路径在系统默认的/usr/local或/usr/中 -Bbuild/default:指定编译路径设置为build/default

3、编译源码并安装(安装路径由上一步指定)

cmake --build build/default --target install 三、启动PX4的jMAVSim仿真环境无人机

1、搭建仿真环境(docker方式)参照之前的文章:

        https://blog.csdn.net/zhoubiaodi/article/details/138303475

2、编译启动 jMAVSim 仿真模拟器(也可选择启动 Gazebo 模拟器)

cd /home/px4/PX4-Autopilot make px4_sitl jmavsim

3、启动jMAVSim仿真模拟器的 mavlink通信,在局域网和外部UDP服务通信

例如UDP服务的ip:10.10.151.211 端口:14540

mavlink start -p -u 14557 -t 10.10.151.211 -o 14540

四、飞行控制 1、例子:控制无人机 起飞着陆

examples/takeoff_and_land

编译(指定之前安装的路径../../install) cd examples/takeoff_and_land cmake -Bbuild -DCMAKE_PREFIX_PATH=../../install -H. cmake --build build -j8 运行(启动udp通信,控制仿真模拟器无人机 起飞着陆) build/takeoff_and_land udp://:14540 2、例子:键盘方向键控制无人机 起飞着陆、飞行

examples/mavsdk_control

下载mavsdk_control放到examples目录下(mavsdk_control是本人自己编写的C++代码):

基于mavsdk写的一个c/c++例子:键盘方向键控制无人机 起飞着陆、飞行

编译(指定之前安装的路径../../install) cd examples/mavsdk_control cmake -Bbuild -DCMAKE_PREFIX_PATH=../../install -H. cmake --build build -j8 运行(启动udp通信,电脑方向键控制仿真模拟器无人机 起飞着陆、飞行) build/mavsdk_control

飞行操作视频如下: 

基于MAVSDK开发包使用键盘控制仿真无人机起飞着陆、飞行

3、其它例子

源码目录下其它例子,编译运行指令跟上诉例子一样。

examples/fly_mission:飞行航线任务

examples/battery:订阅电池状态

...

五、后续开发建议

MAVSDK支持TCP、UDP和串口通信方式和无人机进行通信,   串口通信方式可能因硬件系统环境存在差异,导致不适用,这时候可开发一个TCP或UDP客户端通信,透传串口数据到MAVSDK的TCP或UDP服务  。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有