PX4学习笔记

本文详细介绍了如何在Windows和Ubuntu20.04系统间安装双系统,涉及启动盘格式选择、MBR和GPT分区的区别,以及如何配置PX4、ROS和MAVROS环境。最后提供了一个使用Python实现的无人机外部控制演示实例。
摘要由CSDN通过智能技术生成

1.安装Ubuntu 20.0.4与Windows双系统

首先使用Rufus工具制作Ubuntu启动盘设置ntfs,关于盘格式参考

·NTFS:优点:采用日志式,稳定安全,Windows系统使用友好,是主流格式。缺点:苹果电脑只支持读,想要写需要买驱动软件。

·ExFAT:优点:对Windows和MAC格式都兼容,对闪存SSD硬盘优化更好。缺点:机械硬盘用这格式数据容易丢。

数据安全可靠度:APFS=NTFS > ExFAT

数据传输便捷度:ExFAT > NTFS > APFS

启动盘格式不重要,但是安装ubuntu系统需要确定你的硬盘分区格式,关于MBR分区和GPT分区详细区别在下文列出,win11仅支持gpt分区。

MBR是Master Boot Record(主引导记录)的缩写,是存储在计算机硬盘的第一个扇区(通常是第0个扇区)中的一个特殊的引导扇区。MBR包含了启动计算机所需的信息,例如分区表、引导程序等。

当计算机开机时,BIOS将读取MBR中的引导程序,并将控制权交给引导程序,引导程序再根据分区表信息加载操作系统引导程序,最终启动操作系统。由于MBR的大小有限,MBR只能管理最多4个主分区 (最多4个主分区或3个主分区+1个扩展分区)。如果需要管理更多的分区,使用GUID分区表(GPT)来代替MBR分区。

GPT分区是指GUID分区表(GUID Partition Table),GPT分区表是基于GUID(全局唯一标识符)的分区表方式,每个分区都有一个唯一的GUID标识符,可以支持更多的分区和更大的磁盘容量。需要注意的是,GPT分区表只能在支持UEFI引导方式的计算机上使用,如果使用MBR引导方式则需要将硬盘转换为MBR分区表方式。

同时,GPT分区表也需要支持GPT的操作系统才能正常使用。常见的GPT分区格式有NTFS、FAT32、exFAT等。

准备安装ubuntu之前需先在硬盘中留出需要大小的空闲分区给ubunut系统,分区后请牢记分区的大小,方便安装时候寻找到对应分区位置。

安装引导一路下一步直到需要选择安装位置,找到前面记忆的分配给ubuntu的空间,选中。

我们首先需要确定我们的分区方案,下图是常规一种的分区方案

目录分区建议大小格式描述是否可选
/主分区100gext4根目录,用于存放系统,相当于c 盘 安装系统和软件必选
/home逻辑分区尽量大ext4相当于我的文档 存放一些个人数据必选
swap(相当于内存)逻辑分区物理内存(1~2)swap交换空间,类似Windows下的虚拟内存。空间大小,一般是等于电脑内存;如果容量足够,可以等于物理内存的2倍。必选
/boot(引导分区)逻辑分区4096MBext4主分区,Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;启动撞在文件存放位置,如kernels,initrd,grub。建议选
/usr逻辑分区ext4区,如果不分区则应把容量加给 / 根目录可选
efi系统分区逻辑分区4096MB它的作用和boot引导分区一样,但是boot引导默认grub引导,而efi是UEFI引导。不要按照那些老教程去选boot引导分区,否则就无法使用UEFI启动系统。容量大小给4096MB。

可选

有条件根挂载点可以尽量设置的大一些,以下是流程截图

 

接下来切记要选择安装启动引导器,不然重启后无法自动弹出选择双系统的界面。

首先找到刚才分配给ubuntu的efi分区,点击下面安装启动引导器设备的下拉菜单,列出选项中找到和efi分区名称一样的那一个分区,选中,结束。至此,ubuntu安装完成。

安装配置PX4环境

准备

首先,得把电脑上之前下载的PX4固件文件夹删除 or 先压缩文件再删除文件夹,然后进行以下内容。

1.下载源码

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

2.安装依赖

    切换到px4所git到的目录,进行依赖安装,此流程根据网速和梯子问题可能会有报错,请不断的重复运行bash脚本。或者 【确定导致报错的依赖包名,网上检索安装这个依赖包的方法】。我们只需要将导致报错的依赖包都安装好了,运行.sh文件时就能会跳过他们。

# 官网
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

# or 可以考虑先跳过nuttx 等(官网提示) -- 个人推荐
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

    检查代码是否下载完整 

git submodule update --init --recursive

3.测试PX4

    我们可以使用px4自带的jMAVsim模拟器测试一下px4编译是否成功

# 切换到 px4固件路径
cd PX4-Autopilot
# 编译px4,完成后将会打开jmavsim界面
make px4_sitl jmavsim

    之后,我们可以在刚才输入命令的终端中,enter一下,然后输入控制飞机动作的命令:

# 控制飞机起飞 
commander takeoff

    同时也测试一下gazebo启动。

make px4_sitl gazebo

    第一次启动时间较长,可能会出现模型下载报错。

安装ROS环境

1.ROS安装 

使用鱼香Ros一键安装Ros,安装过程中需要我们根据提示信息,手动选择一下Ros的安装版本,以及是否需要自动换源(中科大源)。建议选择自动换源,除非你的系统已经手动换过。

# 选择1进行Ros的安装
wget http://fishros.com/install -O fishros && sudo bash fishros

安装完Ros后,建议再次运行该代码,以便配置rosdep

# 选择3配置rosdep
wget http://fishros.com/install -O fishros && sudo bash fishros

# 还需update
rosdepc update

配置成功后,测试一下是否可以使用

2.ROS测试

下面的内容即为,打开并使用键盘控制小乌龟运动。(需选中第三个键盘控制的终端)

roscore 
# 打开新的终端
rosrun turtlesim turtlesim_node
# 打开一个终端,控制乌龟运动
rosrun turtlesim turtle_teleop_key

安装MAVROS

mavros可以支持二进制安装或者源码安装,二进制安装比较方便,但对网络要求比较高。

二进制安装 (Debian/Ubuntu)

使用apt-get命令安装,在${ROS_DISTRO} 的位置填入你安装ROS的相应版本号,我安装的ros1版本是noetic。

Use apt-get for installation, where ${ROS_DISTRO} below should resolve to kinetic or noetic, depending on your version of ROS:

sudo apt-get install ros-${ROS_DISTRO}-mavros ros-${ROS_DISTRO}-mavros-extras ros-${ROS_DISTRO}-mavros-msgs

 然后打开新窗口安装GeographicLib datasets,bash命令遇到权限不够的情况需要更改相应文件的权限并使用sudo执行./命令。

Then install GeographicLib (opens new window) datasets by running the install_geographiclib_datasets.sh script:

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh

测试

# 如果可以跳转那就代表安装成功 
# 如果不行,重新执行配置环境这一步,记得将之前添加的删掉
roscd mavros

 测试成功如下

参考

(最新)ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装

MAVROS官方指南

安装QGC地面站

QGroundControl can be installed/run on Ubuntu LTS 20.04 (and later).

Ubuntu comes with a serial modem manager that interferes with any robotics related use of a serial port (or USB serial). Before installing QGroundControl you should remove the modem manager and grant yourself permissions to access the serial port. You also need to install GStreamer in order to support video streaming.

Before installing QGroundControl for the first time:

如果您最近刚完成PX4、Mavros、QGC、Gazebo等环境的配置,想必正在寻找一个可以验证一下这些环境是否安装成功的实例,而这正是此文的出发点。目前,网上比较普遍的实例是Offboard外部控制,即借助mavros控制gazebo中无人机起飞悬停。但是,此文主要内容则是介绍另外一个实例(源于YouTube),对于offboard的内容会在文章末尾提及(毕竟网上很多这个内容)。

此文主要内容:【Mavros配置】+使用PX4内部Python例程,实现无人机的外部控制演示,即控制无人机走一个矩形

如果环境没问题,可以直接进行下面的测试

# 需要打开三个终端 下面的命令需要【对应修改路径】

# 1)打开jmavsim  【PX4文件夹】
cd PX4-Autopilot/
make px4_sitl_default jmavsim

# 2)运行mavros
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" 

# 3)open qgroundcontrol   双击

#  4)运行示例程序   【对应修改路径: 名字/PX4文件夹】
cd /home/pzz/PX4-Autopilot/integrationtests/python_src/px4_it/mavros
python mission_test.py MC_mission_box.plan

  • 14
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PX4 Autopilot是一款开源的自动驾驶飞控软件。它具有强大的飞行控制和导航功能,可以应用于多种无人机平台,包括多旋翼、固定翼和车辆。PX4 Autopilot的开发历史可以追溯到Pixhawk项目,它是Pixhawk固件的一个分支。Pixhawk是一款流行的飞控硬件平台,而PX4 Autopilot则是为该硬件平台开发的软件。 与其他飞控系统相比,PX4 Autopilot具有许多优势。首先,它具有灵活的架构,可以根据不同的需求进行定制和扩展。其次,PX4 Autopilot支持多种传感器和导航系统,可以适应各种复杂的环境和任务需求。此外,PX4 Autopilot还提供了丰富的飞行模式和自动化功能,使得飞行操作更加简单和安全。 在使用PX4 Autopilot进行开发时,可以参考PX4 Autopilot User Guide和PX4学习笔记等文档,这些文档提供了详细的使用指南和教程。另外,可以在Github上找到PX4 Autopilot的源代码仓库,在这里可以查看最新的代码和提交贡献。 为了编译和构建PX4 Autopilot固件,可以根据不同的硬件平台选择相应的编译命令。例如,使用make px4_fmu-v2_default命令来构建适用于default.px4board的固件。类似地,可以使用make px4_fmu-v2_fixedwing命令构建适用于fixedwing.px4board的固件,使用make px4_fmu-v2_multicopter命令构建适用于multicopter.px4board的固件,使用make px4_fmu-v2_rover命令构建适用于rover.px4board的固件。 总而言之,PX4 Autopilot是一款功能强大的开源自动驾驶飞控软件,可以应用于多种无人机平台。通过参考相关文档和源代码,以及使用适用于不同硬件平台的编译命令,可以进行PX4 Autopilot的开发和定制。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值