week45 无人机px4 Firmware仿真环境搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了week45 无人机px4 Firmware仿真环境搭建相关的知识,希望对你有一定的参考价值。

参考技术A 我们来看下Ubuntu各版本对应的gazebo关系,安装时要注意
各版本的对应关系如下:请注意ubuntu18对应melodic,ubuntu16对应kinetic
Ubuntu 14.04 Trusty Tahr - ROS Indigo Igloo - Gazebo 2.X 2014-2019
Ubuntu 16.04 Xenial Xerus - ROS Kinetic Kame - Gazebo 7.X 2016-2021
Ubuntu 18.04 Bionic Beaver - ROS Melodic Morenia - Gazebo 9.X 2018-2023
我采用的是Ubuntu18.04 安装ROS melodic
要先换源,包括source.list和source.list.d文件夹下面的ros-latest.list(没有就创建)
实测发现,Ubuntu的源用清华的,ROS源用中科大的,综合效果最好
换完源以后安装ROS,直接装的是desktop-full,这样自动装了gazebo9

ROS安装完毕,安装mavros,直接用二进制安装,最方便

mavros负责master和px4之间的通信,接下来安装编译px4,这是最慢也是最容易出错的一步,一定要确保网络良好,第一步一般要花一个多小时、后面稍微快一点

这时px4就安装好了,这个文件夹叫Firmware,但实际上编译以后会生成一个可执行文件叫px4,所以都是roslaunch px4 什么什么
接下来,修改环境变量

环境变量修改好了,source ~/.bashrc以后通过gazebo看看可不可以启动

第一行会弹出此时选择的px4的版本,建议用1.8.0,在前一个虚拟机上试过1.9.0但是跑不起来
如果成功出现gazebo,里面看上去是荒芜的一望无垠的世界停着一架小飞机,那么px4的仿真环境就安装完成了,可以关掉,然后roslaunch启动

在rostopic list里看到有个/mavros/state 用echo查看 connect为true 则mavros和px4通信成功

若添加权限以后仍报错,则考虑修改Cmakelist添加include包含库
打开CMakeList文件看看include_directories列表
include_directories(
include
../riki_msgs
$catkin_INCLUDE_DIRS
)

将riki_base.h中的分号位置做如下修改

这个是别人的报错,他的git网络配置出现问题,显示git拒绝连接
使用git config --global设置用户名和邮件

使用-l查看配置 --edit编辑配置

PX4APM无人机仿真连接QGC地面站记录

文章目录

本文仅记录仿真指令,搭建安装不在此…

一. PX4

首先给飞控源码和子目录权限

chmod -R 777 PX4-Autopilot

1. gazebo 仿真

PX4 中 使用 gazebo 仿真,一般对应机型的指令如下:

Quadrotor                                                  make px4_sitl gazebo
Quadrotor with Optical Flow                                make px4_sitl gazebo_iris_opt_flow
3DR Solo (Quadrotor)                                       make px4_sitl gazebo_solo
Typhoon H480 (Hexrotor) (supports video streaming)         make px4_sitl gazebo_typhoon_h480
Standard Plane                                             make px4_sitl gazebo_plane
Standard Plane (with catapult launch)                      make px4_sitl gazebo_plane_catapult
Standard VTOL                                              make px4_sitl gazebo_standard_vtol
Tailsitter VTOL                                            make px4_sitl gazebo_tailsitter
Ackerman vehicle (UGV/Rover)                               make px4_sitl gazebo_rover
HippoCampus TUHH (UUV: Unmanned Underwater Vehicle)        make px4_sitl gazebo_uuv_hippocampus
Boat (USV: Unmanned Surface Vehicle)                       make px4_sitl gazebo_boat
Cloudship (Airship)                                        make px4_sitl gazebo_cloudship

用最通用的旋翼测试:

make px4_sitl gazebo

执行后,将会直接弹出如下:

第一次可能会卡主,不行的话,重新执行一遍就好

2. 连接地面站

与APM连接相似,命令略有不同

① Ubuntu 平台

ubuntu 中运行QGC地面站软件,勾选了udp会自动连接的:

② Windows、Android 手机等平台(暂时没测试过不在同一网段的设备)

首先地面站也需要勾选udp的自动连接

然后创建Windows的 UDP 连接:(也可Android 手机等)

mavlink start -t 192.168.85.248 -u 14444

192.168.85.248 为Windows IP , 14444 为端口号,记得不能14550,因为会重复


QGC 连接后如下,截个双屏的:

官方参考的 http://docs.px4.io/master/zh/simulation/gazebo.html

二、APM 仿真

1. 执行仿真指令

在APM源码,ArduCopter 下:

../Tools/autotest/sim_vehicle.py -f X --console --map  
#加入-c是重新全部编译

执行后:

2. 连接地面站

① Ubuntu 平台

ubuntu 中运行QGC地面站软件,勾选了udp会自动连接的:


② Windows、Android 手机等平台(暂时没测试过不在同一网段的设备)

首先地面站也需要勾选udp的自动连接

然后创建 UDP 连接:(IP 为Windows、手机下的 IP 地址,端口号默认14550)

#output add 主机IP地址:UDP端口号
output add 192.168.85.148:14550


Windows下自动连接:

可以添加多个udp,同时连接多个地面站。

● 连接gazebo

记得都安装好后,

① 在APM源码中执行:

../Tools/autotest/sim_vehicle.py -f gazebo-iris --console --map
../Tools/autotest/sim_vehicle.py -f gazebo-iris --console --map

② 另开终端启动 gazebo:

gazebo --verbose worlds/iris_arducopter_runway.world

之后,QGC 会自动连接…

可以参考这个:

ArduPilot+mavros+gazebo+QGC 联合仿真初体验

以上是关于week45 无人机px4 Firmware仿真环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

PX4APM无人机仿真连接QGC地面站记录

ROS实验笔记之——PX4仿真

PX4APM无人机仿真连接QGC地面站记录(udp连接更改home点等)

PX4APM无人机仿真连接QGC地面站记录(udp连接更改home点等)

ROS学习笔记之——PX4位置环PID控制

技术分享 | ROS2下控制PX4仿真无人机