px4+mavros+ros+Prometheus
准备工作:
安装ubuntu
卸载双系统旧版本:
教你彻底卸载Ubuntu双系统,去污不残留_双系统删除ubuntu-CSDN博客
安装ubuntu20.04
Ubuntu 20.04.6 LTS (Focal Fossa)

修改源
https://blog.csdn.net/qq_73162098/article/details/144919374
安装搜狗
安装ros
ROS的最简单安装——鱼香一键安装_鱼香ros一键安装-CSDN博客
学习教程:
APT源,ROS的软件包应用商店_哔哩哔哩_bilibili
安装依赖
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
安装地面站
安装px_4
px_4地址
prometheus_px4配置 - Prometheus使用px
px_4学习教程:
第二讲【多旋翼飞行器入门】Gazebo仿真(1)_哔哩哔哩_bilibili
阅读相关源文件知道是什么意思,这一步防着结束出来后代表完成
安装Prometheus例程
安装之前必须安装mavros
mavros作用:
桥梁:连接ROS和硬件(ROS好比安卓,硬件好比不同种类的手机,这个手机遵循安卓协议),在 ROS 与基于 MAVLink 协议的无人机或其他自动驾驶载具之间搭建起沟通的桥梁。
在这里我对这里出现的一些东西进行简单的说明:
Prometheus
可类比为基于安卓系统开发的一款超级综合性应用商店,且这个应用商店专为特定领域定制。在安卓生态里,普通应用商店提供各种不同类型的应用以满足用户多样化的日常需求。而 Prometheus 针对无人机开发者,它集成了控制、规划及目标检测等多个研究方向的功能,就像这个特殊应用商店集合了一系列专门针对无人机开发的 “应用程序”,为开发者提供完整的解决方案,让他们能更便捷地实现无人机智能与自主飞行的开发,还配套了 Amovlab 仿真组件,类似于应用商店附带了应用测试和模拟运行的环境,方便开发者在开发过程中进行测试和验证。
PX4 开源飞控固件
类似于安卓系统里的手机硬件驱动集合。在安卓设备中,硬件驱动负责与手机的各种硬件(如摄像头、传感器、处理器等)进行交互,确保硬件能正常工作并与操作系统通信。PX4 开源飞控固件则是与无人机的硬件紧密相连,它控制着无人机的电机、传感器等硬件组件,实现无人机基本的飞行控制功能,是无人机稳定飞行的基础保障,如同硬件驱动对安卓设备正常运行的重要性一样。
ROS 机器人操作系统
和安卓操作系统本身类似。安卓操作系统为开发者提供了一套通用的开发平台,包含丰富的开发工具、库和框架,开发者利用这些资源能开发出各种不同功能的应用程序。ROS 同样为无人机(以及其他机器人)应用开发搭建了一个通用平台,具备多种工具、库和通信机制,方便开发者开发无人机的感知、决策、控制等不同功能模块,各个模块之间通过 ROS 的机制进行通信和协作,就像安卓系统上不同的应用程序和系统服务借助安卓框架进行交互。
prometheus_mavros
可以类比为安卓系统中的翻译器应用。在安卓系统中,当不同的应用程序需要交换数据,而它们的数据格式或通信协议不同时,可能需要一个翻译器来进行数据转换。prometheus_mavros 在 Prometheus、PX4 和 ROS 之间起到类似的作用。PX4 使用 MAVLink 协议进行通信,而 ROS 有自己的消息传递机制,prometheus_mavros 负责在这两者之间进行协议转换,使得基于 ROS 开发的程序能够与使用 PX4 飞控的无人机进行数据交互和通信,就像翻译器让不同语言的应用能够相互理解和交流。
Gazebo
类似于安卓系统中的应用模拟器。在安卓开发中,开发者在将应用发布到实际设备之前,通常会使用模拟器来测试应用的功能和性能,模拟不同的设备环境和使用场景。Gazebo 是一个机器人仿真环境,对于无人机开发者来说,他们可以在 Gazebo 中模拟无人机的飞行环境和各种任务场景,对基于 Prometheus、PX4 和 ROS 开发的无人机软件进行测试和验证,而无需在实际的无人机硬件上进行测试,降低了测试成本和风险,就如同安卓应用模拟器帮助开发者提前发现和解决应用在实际设备上可能出现的问题。
nlink_parser(UWB 驱动功能包)
类似于安卓系统中特定硬件外设(如蓝牙音箱、无线鼠标等)的驱动程序。在安卓设备连接这些外设时,需要对应的驱动程序来确保设备能被系统识别和正常使用。在无人机系统里,UWB(超宽带)设备可用于高精度定位等功能,nlink_parser这个驱动功能包的作用就是让无人机系统能够识别和使用 UWB 设备,处理 UWB 设备传来的数据,就如同安卓外设驱动程序处理外设与系统间的数据交互一样。
ubuntu
Ubuntu 是基于 Linux 内核开发的操作系统,为 ROS 提供了运行的基础环境,就像安卓手机底层的 Linux 内核为安卓系统提供运行基础一样。Ubuntu 系统包含了大量的硬件驱动程序,能够识别和管理各种硬件设备,这为运行在其上的 ROS 提供了与硬件交互的基础。类似地,安卓手机的 Linux 内核负责管理手机的硬件资源,使安卓系统能够与手机的摄像头、传感器、处理器等硬件进行通信。相当于更底层的东西。
安装方法:
git clone https://gitee.com/amovlab/Prometheus.git
cd Prometheus/Scripts/installation/prometheus_mavros
chmod +x install_prometheus_mavros.sh
./install_prometheus_mavros.sh
安装依赖项
jstest-gtk ,Gazebo等,需要注意的是nlink_parse(这个最傻逼)
https://blog.csdn.net/weixin_44388819/article/details/124174095
需要修改的是,不需要serial 就可以了
同时后续在做,现在不知道
配置串口权限(重要),如果后续仿真运行不了,在修改
确保用户有权限访问UWB设备对应的串口(如 /dev/ttyUSB0):
sudo usermod -a -G dialout $USER
sudo chmod 777 /dev/ttyUSB0 # 临时生效,重启后需重新设置
或永久生效(推荐):
sudo nano /etc/udev/rules.d/50-uwb.rules
添加以下内容:
KERNEL=="ttyUSB*", MODE="0666", GROUP="dialout"
保存后执行:
sudo udevadm control --reload-rules
sudo udevadm trigger
同时将setup.bash加入环境变量中
echo "source ~/uwb_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装相关软件
vscode
Download Visual Studio Code - Mac, Linux, Windows
cd ~/Downloads
sudo dpkg -i ***.deb
nomachine
NoMachine - Download Free Remote Desktop Access
cd ~/Downloads
sudo dpkg -i ***.deb
备份环境
我觉得很重要,要不然又得配环境半天
备份一个模板机,以后都可以直接使用
方法使用
第一种:直接使用项目已经有的
第二种:使用自己搭建好的,制作模板机
教程
第一步,制作U盘
# 查看U盘当前内容(确认无重要文件)
ls /media/uav-412/5E90-7B12
# 若需备份,复制到本地硬盘
cp -r /media/uav-412/5E90-7B12 ~/usb_backup/
卸载并格式化U盘为ext4
# 卸载U盘
sudo umount /dev/sda1
# 格式化为ext4(设置标签便于识别)
sudo mkfs.ext4 -L "Timeshift_Backup" /dev/sda1
重新挂载U盘
# 创建挂载点
sudo mkdir /mnt/timeshift
# 挂载U盘
sudo mount /dev/sda1 /mnt/timeshift
# 检查挂载
lsblk -f | grep sda1
第二步,下载软件
sudo apt update
sudo apt install timeshift
sudo timeshift-launcher
第三步,设置
-
备份类型:RSYNC(默认,兼容 ext4,推荐)
-
备份位置:外部硬盘/U盘(需提前挂载,如 /mnt/backup)
-
排除选项:勾选 Exclude
第四步,恢复
第一种,系统可以启动
直接运行 Timeshift,选择快照点击 Restore。
第二种,系统无法启动
制作Ubuntu Live USB--就是U盘启动工具,装双系统的时候用过
从U盘启动,选择 Try Ubuntu。
挂载原系统的根分区(示例):
sudo mkdir /mnt/root
sudo mount /dev/nvme0n1p2 /mnt/root # 替换为你的根分区
确定你自己的根分区
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
nvme0n1
├─nvme0n1p1 vfat A2E6-ADB5 /boot/efi
├─nvme0n1p2 ext4 7187dba9-a82c-481e-90cb-fcabe7c82bf1 # 根分区(/)
└─nvme0n1p3 swap 20adb2f5-c0cb-40d2-80b2-095b22a550dc [SWAP]
根分区:通常是 ext4 文件系统,且没有单独的 /home 分区时,MOUNTPOINT 会显示为 /
安装并运行 Timeshift:
sudo apt update
sudo apt install timeshift
sudo timeshift-launcher
选择原备份位置,恢复快照。
完美结束
备注:
有些仿真程序需要借助NVIDIA驱动来实现所以一定要安装好NIVIDIA驱动
更多推荐




所有评论(0)