飞控通讯协议 控制无人机飞行(MAVLink、MAVSDK) | 您所在的位置:网站首页 › gps无人机起飞教程图解 › 飞控通讯协议 控制无人机飞行(MAVLink、MAVSDK) |
目录 前言 一、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 二、编译安装MAVSDK1、下载MAVSDK-C++源码 git clone https://github.com/mavlink/MAVSDK.git --recursive cd MAVSDK2、编译项目 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 jmavsim3、启动jMAVSim仿真模拟器的 mavlink通信,在局域网和外部UDP服务通信 例如UDP服务的ip:10.10.151.211 端口:14540 mavlink start -p -u 14557 -t 10.10.151.211 -o 14540examples/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 实验室设备网 版权所有 |