利用DRONEKIT-SITL + MAVPROXY + QGroundControl模拟飞行

本文介绍了如何使用Python库DroneKit、本地仿真工具dronekit-sitl和mavproxy来控制无人机。步骤包括安装、配置SITL、启动数据转发、连接QGroundControl以及操控飞机进行简单导航。
1、安装dronekit,dronekit-sitl, mavproxy
pip install dronekit 
pip install dronekit-sitl 
pip install mavproxy  

dronekit: 一种用于无人机控制的python库。
dronekit-sitl:一种本地仿真工具,相当于本地虚拟化了一个无人机。
mavproxy:数据转发软件(类似于插线板的感觉,一个输入,多个相同的输出)。

2、启动SITL,并配置home点、机型:

打开一个Anaconda prompt
首先激活相应的环境

activate superglue

然后运行如下命令:

dronekit-sitl  copter --home=31.9386595,118.7898506,3,30 --model=quad

在这里插入图片描述

3、启动mavproxy数据转发服务

保持2中的Anaconda prompt处于运行状态,另打开一个Anaconda prompt窗口,运行如下命令:

python D:\Anaconda3\envs\superglue\Scripts\mavproxy.py  --master=tcp:127.0.0.1:5760  --out=127.0.0.1:14550  --out=127.0.0.1:14551

tcp:127.0.0.1:5760: SITL默认端口,作为mavproxy的输入,把输入数据转发到如下两个端口:
127.0.0.1:14550:本机地址14550端口,供本地python程序连接
127.0.0.1:14551:供QGroundControl连接
在这里插入图片描述

4、打开QGroundControl(可以用自己电脑的,也可以用另一台,但是需要修改参数),选择UDP连接,端口号选择14551

QGroundControl下载地址

https://github.com/mavlink/qgroundcontrol/releases/tag/v4.1.2

### 安装 PX4-SITL 与 ROS2 集成 对于希望在仿真环境中开发和测试无人机应用的研究人员和开发者来说,将 PX4 Software-In-The-Loop (SITL) 和 Robot Operating System 2 (ROS2) 结合起来是一个理想的选择。以下是详细的安装指导。 #### 准备工作环境 确保已经配置好 Ubuntu 操作系统的开发环境,并更新软件包列表: ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装依赖项 为了支持 PX4 SITL 的编译以及后续操作,在终端执行命令来获取必要的工具链和其他依赖库[^1]: ```bash sudo apt-get install git wget python3-pip build-essential cmake ninja-build \ qtbase5-dev python3-yamlcpp libyaml-cpp-dev libeigen3-dev clang-format \ doxygen graphviz cppcheck valgrind lcov pkg-config protobuf-compiler \ libprotobuf-dev libgoogle-perftools-dev google-mock googletest libc++-dev \ libc++abi-dev lsb-release software-properties-common gnupg2 dirmngr curl ``` #### 获取源码并初始化仓库 克隆 PX4-Autopilot 主仓库到本地计算机上: ```bash git clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot ``` #### 编译 PX4 firmware 使用 Ninja 构建系统来进行快速构建过程。这里选择 `px4_sitl_default` 目标作为默认设置: ```bash make px4_sitl_default ``` #### 设置 ROS2 环境 如果尚未安装 ROS2,则需按照官方文档完成 ROS2 发行版的安装流程。之后通过如下方式加载当前 shell session 中的 ROS2 工具路径变量: ```bash source /opt/ros/<ros2-distro>/setup.bash ``` 其中 `<ros2-distro>` 应替换为实际使用的 ROS2 版本名称,比如 foxy 或 humble。 #### 运行带有 MAVLink 节点桥接功能的 Gazebo 世界模拟器 启动包含 MAVLink 接口节点在内的整个仿真场景,以便能够无缝对接至 ROS2 生态圈内: ```bash make px4_sitl_rtps gazebo ``` 此命令会自动创建一个虚拟飞行器实例并与之通信,同时开启 RTPS(Real-Time Publish Subscribe Protocol)协议用于数据交换。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值