Ubuntu22.04配置ROS2+PX4仿真环境

Ubuntu22.04配置ROS2+PX4仿真环境


主要参考源:

https://blog.csdn.net/weixin_44174421/article/details/135827130

https://blog.csdn.net/Zecet/article/details/130474620

一、准备工作

  1. 确保网络能够连接到github,出错主要源自于此;
  2. 确保EmPy库的版本是3.3.4,否则会在colcon build的时候出错。现在安装ubuntu22.04更新后的EmPy版本为4.0,因而需要退回到3.3.4版本。在Ubuntu下,多种开源软件联合工作,各种版本不匹配而导致问题是非常常见的。
    1. Empy库是一个强大、稳健且成熟的模板系统,用于在模板文本中插入Python代码;
    2. 版本回退命令如下(先卸载再安装)
    pip3 uninstall empy
    pip3 install empy==3.3.4
    
  3. 安装git工具
    sudo apt update
    sudo apt upgrade
    sudo apt install git
    #查看git版本
    git --version
    

二、安装ROS2

推荐使用鱼香ROS安装。

wget http://fishros.com/install -O fishros & . fishros

三、安装ROS2相关依赖

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
pip3 install --user empy==3.3.4 pyros-genmsg setuptools
#安装colcon最容易出错,可以多参考博客
sudo apt install python3-colcon-common-extensions
sudo apt install ros-humble-desktop python3-argcomplete
sudo apt install ros-dev-tools

四、安装PX4固件

#下载源码 --recursive会递归下载二级及以下文件
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

# 进入PX4-Autopilot文件夹,确认源码是否下载完毕,如果因网络等未下载完全,则需要进一步下载更新
cd PX4-Autopilot
git submodule update --init --recursive

# 源码下载完毕后,执行下面操作
bash ./Tools/setup/ubuntu.sh

#显示 relogin or reboot when you attempting to install Nuttx
#即说明上一步成功

make px4_sitl gz_x500
#成功后将会显示Gazebo界面,并且里面有一架飞机

五、安装XRCE-DDS代理

XRCE-DDS是ROS2与PX4之间通信的桥梁。

#下载源码
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
#进入文件夹
cd Micro-XRCE-DDS-Agent
#新建文件夹build
mkdir build
#进入build文件夹
cd build
#执行cmake
cmake ..
#执行make
make
#安装?
sudo make install
#????
sudo ldconfig /usr/local/lib/
#安装完成后,启动代理,端口号为8888
MicroXRCEAgent udp4 -p 8888

六、创建ROS2工作空间并生成代码样例

此后的工作主要在此空间内进行

#创建工作空间路径
mkdir -p ~/ws_ros2/src/
#进入src文件夹,将下面的源码下载至src
cd ~/ws_ros2/src/
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git

#返回至工作空间根目录下进行编译
cd ..
#执行colcon编译
colcon build
#成功后,以上步骤在此后的工作中不需要再重复

source install/local_setup.bash
#执行代码样例
ros2 run px4_ros_com offboard_control

七、安装Mavros2

到第六部分为止,ROS2与PX4已经可以通过MicroXRCE通信并进行仿真,但在无人机中更常用的还是Mavros,因此还要安装Mavros2

mkdir -p ~/mavros2_ws/src
cd ~/mavros2_ws
rosinstall_generator --format repos mavlink | tee /tmp/mavlink.repos
rosinstall_generator --format repos --upstream mavros | tee -a /tmp/mavros.repos
vcs import src < /tmp/mavlink.repos
vcs import src < /tmp/mavros.repos
rosdep install --from-paths src --ignore-src -y
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
#注意:下面一行的路径与catkin build得到的不同
echo "source ~/mavros2_ws/install/setup.bash" >> ~/.bashrc

八、问题汇总

  1. Gazebo-GL问题
    a. 错误信息: OpenGL 3.3 is not supported. Please update your graphics card drivers. 在这里插入图片描述

    b. 解决方法:

    export MESA_GL_VERSION_OVERRIDE=3.3
    
  2. Gazebo闪退
    a. 错误信息: 按上述步骤操作之后,将不再提示错误信息,但Gazebo还是会闪退
    b. 解决方法:

    #在PX4-Autopilot文件夹下搜索px4-rc.simulator文件,应该有两个。
    #在文件内添加一句,如下所示
    --render-engine ogre
    
    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/549568.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024/4/16 网络编程day4

/*TCP并发服务器端*/ #include <myhead.h> #define SER_IP "192.168.125.173" #define SER_PORT 8888 void sighanger(int signum){if(signumSIGCHLD){//子进程终止信号while(waitpid(-1,NULL,WNOHANG)>0);//循环回收僵尸进程} }int main(int argc, const c…

03_信号和槽

信号和槽 系统的信号和槽自定义信号和槽Lambda表达式 系统的信号和槽 下面我们完成一个小功能&#xff0c;上面我们已经学习了按钮的创建&#xff0c;但是还没有体现出按钮的功能&#xff0c;按钮最大的功能也就是点击后触发一些事情&#xff0c;比如我们点击按钮&#xff0c;…

12.哀家要长脑子了!

1.189. 轮转数组 - 力扣&#xff08;LeetCode&#xff09; ​ 方法一&#xff1a; 要注意这个k是可以大于0的&#xff0c;所以旋转数组的时候要一直保证是在1-n的范围内&#xff1a;%实现 把k个元素旋转放到前面&#xff0c;前面n-k个元素是向后移动的。 class Solution { …

【Phytium】飞腾D2000 UEFI/EDK2 适配 RTC(IIC SD3077)

文章目录 0. env1. 软件2. 硬件 10. 需求1. 硬件2. 软件 20. DatasheetCPURTC 30. 调试步骤1. 硬件环境搭建2. UEFI 开发环境搭建3. 修改步骤1. UEFI 中使能RTC驱动、配置RTC信息等1.1 使能RTC驱动1.2 修改RTC对应的IIC配置信息1.3 解决驱动冲突1.4 验证波形 2. 修改对应RTC驱动…

[lesson36]经典问题解析三

经典问题解析三 关于赋值的疑问 什么时候需要重载赋值操作符&#xff1f;编译器是否提供默认的赋值操作&#xff1f; 编译器为每个类默认重载了赋值操作符 默认的赋值操作符仅完成浅拷贝 当需要进行深拷贝时必须重载赋值操作符 赋值操作符与拷贝构造函数有相同的存在意义 …

零基础入门测试该学什么?超全整理,照着学就对了!

对于很多小白而言&#xff0c;想要转行软件测试岗位&#xff0c;却又怕自己从来没有接触过计算机&#xff0c;底子很薄弱&#xff0c;从而还没开始就打起了退堂鼓。也有许多初学者&#xff0c;在入门的过程中&#xff0c;苦于不知道该学什么&#xff0c;又该从何学起&#xff0…

代码随想录算法训练营第四十二天| 二维背包、一维背包、LeetCode 416.分割等和子集

一、二维背包 文章讲解/视频讲解&#xff1a;https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html 状态&#xff1a;已解决 1.背包问题介绍 背包问题实则是一类问题的集合&#xff0c;有好多不同小类型&#xff0c…

单位优秀信息宣传员告诉你向媒体投稿你不知道的好方法

作为基层社区信息宣传工作队伍中的一员,我刚开始接手单位的信息宣传投稿任务时,真的是一片茫然。没有任何媒体编辑的熟人朋友,我只能硬着头皮,一家家地去联系媒体,沟通投稿的事宜。这个过程真的是既费事又费力,每次投稿都像是在茫茫大海中寻找那一丝被认可的机会。 因为媒体对稿…

VLAN Mapping原理描述

基本原理 路由器收到带Tag的数据报文后&#xff0c;根据配置的VLAN Mapping方式&#xff0c;决定替换外层Tag中的VLAN ID或优先级&#xff1b;然后进入MAC地址学习阶段&#xff0c;根据源MAC地址映射后的VLAN ID刷新MAC地址表项&#xff1b;根据目的MAC映射后VLAN ID查找MAC地…

T细胞耗竭

目录 T Cell Exhaustion T 细胞衰竭路径上的细胞和分子路标 研究起源 介绍 T 细胞耗竭的发生路径 耗尽的T细胞亚群的解剖分离和迁移 持续TCR刺激的收益递减 通过共调节受体进行发育微调 细胞因子介导的耗尽T细胞亚群的特异性 T细胞耗竭和表观遗传 T Cell Exhaustion…

面试问答之转账功能测试点详解

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

快速排序题目SelectK问题

力扣75.颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sor…

数据库(mysql)-连接嵌套查询-2

子查询 MySQL中的子查询&#xff08;Subquery&#xff09;是嵌套在其他SQL查询中的查询。子查询可以出现在SELECT、FROM或WHERE子句中&#xff0c;并用于返回将被用于外部查询的数据。子查询的结果可以是一个单一的值、一行、一列或多行多列的数据集。 单行单列查询 实例 #查…

一款挺不错网站维护页面HTML源码

一款挺不错网站维护页面源码&#xff0c;单HTML不需要数据库&#xff0c;上传到你的虚拟机就可以用做维护页面还不错&#xff0c;用处多。。 源码下载 一款挺不错网站维护页面源码

【智能算法】鱼鹰优化算法(OOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2023年&#xff0c;M Dehghani等人受到自然界鱼鹰狩猎行为启发&#xff0c;提出了鱼鹰优化算法&#xff08;Osprey Optimization Algorithm, OOA&#xff09;。 2.算法原理 2.1算法思想 OOA基本灵…

网络爬虫:定义、应用及法律道德考量

网络爬虫技术在当今数据驱动的世界中发挥着重要作用。本文将从网络爬虫的定义和主要功能&#xff0c;其在业界的应用实例&#xff0c;以及涉及的法律和道德问题三个方面进行深入探讨。 1. 爬虫的定义和主要功能 网络爬虫&#xff0c;也称为网页爬虫或蜘蛛&#xff0c;是一种…

苹果与印度深入洽谈,开启新业务 | 百能云芯

印度经济时报&#xff08;ET&#xff09;引述知情人士报导&#xff0c;苹果&#xff08;Apple&#xff09;正和 Murugappa 集团和塔塔集团旗下的Titan公司深入洽谈&#xff0c;将由这两家印度业者组装、甚至生产 iPhone 所用的相机模组。 苹果正将iPhone供应链向中国大陆以外地…

SpringBoot学习(三)数据访问、基础特性、核心原理

文章目录 数据访问示例自动配置原理jdbc场景自动配置数据源等基本信息MyBatisAutoConfiguration配置MyBatis整合流程 基础特性SpringApplication自定义banner自定义SpringApplicationFluentBuilder API Profiles使用指定环境环境激活环境包含 Profiles配置文件 外部化配置配置优…

JVM结构化体系

目录 目录 1.JVM 简介 1.1. 如何理解 JVM 呢&#xff1f; 1.2. 市场主流 JVM 分析&#xff1f; 1.3. 为什么要学习 JVM&#xff1f; 1.4. 字节码底层是如何执行呢&#xff1f; 如何理解 JIT 呢&#xff1f; 为什么 JVM 中解释执行与编译执行的并存&#xff08;混合模式&…

新手教程 | 2024年最新Vmware17安装教程及许可证(详细图文)

目录 前言&#xff1a; 一、VMware Workstation 17 Pro 简介 二、下载安装&#xff08;以Windows为例&#xff09; 三、许可证 四、检查是否安装成功 前言&#xff1a; 重新装电脑后&#xff0c;安装虚拟机 一、VMware Workstation 17 Pro 简介 VMware Workstation 17 …
最新文章