赞
踩
目录
之前的文章,介绍过 PX4开源飞控仿真环境的搭建 及 MAVLink飞控通讯协议:
本章将介绍如何通过MAVSDK开发包控制仿真无人机飞行(间接使用MAVLink飞控通讯协议)。
飞行操作视频如下:
基于MAVSDK开发包使用键盘控制仿真无人机起飞着陆、飞行
MAVLink飞控通讯协议常用于无人机和地面站之间的通讯,直接通过底层MAVLink协议去控制无人机较为困难,容易失败,是因为无人机存在一些操控逻辑和细节。
因此,使用一些MAVLink协议相关的开源API,工程或SDK软件包去操作,无疑是最好的选择。MAVSDK是一个由开源社区 mavlink 开发的轻量级 SDK,用于与MAVLink系统的通讯接口。 它提供了一套现代多编程语言接口(c++、python、go、java等),处理了很多逻辑细节,使得开发者能够轻松地与飞行控制器、地面站以及其他 MAVLink 设备进行通信,从而构建复杂的无人机应用。
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
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
examples/takeoff_and_land
- cd examples/takeoff_and_land
- cmake -Bbuild -DCMAKE_PREFIX_PATH=../../install -H.
- cmake --build build -j8
build/takeoff_and_land udp://:14540
examples/mavsdk_control
基于mavsdk写的一个c/c++例子:键盘方向键控制无人机 起飞着陆、飞行
- cd examples/mavsdk_control
- cmake -Bbuild -DCMAKE_PREFIX_PATH=../../install -H.
- cmake --build build -j8
build/mavsdk_control
飞行操作视频如下:
基于MAVSDK开发包使用键盘控制仿真无人机起飞着陆、飞行
源码目录下其它例子,编译运行指令跟上诉例子一样。
examples/fly_mission:飞行航线任务
examples/battery:订阅电池状态
...
MAVSDK支持TCP、UDP和串口通信方式和无人机进行通信,
串口通信方式可能因硬件系统环境存在差异,导致不适用,这时候可开发一个TCP或UDP客户端通信,透传串口数据到MAVSDK的TCP或UDP服务 。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。