在ubuntu22.04(LTS)上搭建ROS2+PX4+Gazebo的联合仿真环境

1 篇文章 0 订阅

说明:本案例仅仅是跑通了ROS2+PX4+Gazebo的联合仿真,还没有实现使用键盘控制无人机飞行(以后会补充)。

目录

1.准备工作

2.安装PX4仿真工具链

3.安装ROS2

4.安装ROS2的相关依赖

5.安装XRCE-DDS代理(AGENT)

6.创建ROS2工作空间并生成代码样例

7.运行XRCE代理

8.编译PX4固件并运行


1.准备工作

(1)确保网络能够顺畅连接到github;

(2)确保EmPy库的版本是3.3.4,否则会在colcon build的时候出现问题。现在安装ubuntu22.04更新后的EmPy版本是4.0。EmPy 是一个强大、稳健且成熟的模板系统,用于在模板文本中插入 Python 代码(详细介绍见empy · PyPI)。EmPy库从4.0退回到3.3.4版本的方法就是从ubuntu终端中卸载了重装,使用如下命令:

pip3 uninstall empy
pip3 install empy==3.3.4

在Ubuntu下多种开源软件联合工作,各种版本不匹配而导致问题是最常见的。

(3)已经安装好了git工具,检查方法是在终端输入如下命令:

git --version

如果反馈了git的版本号,则表示已经安装好了,如果反馈“command not found”或类似的错误消息,则表示还未安装git工具,可以使用如下命令安装:

sudo apt update
sudo apt upgrade
sudo apt install git

2.安装PX4仿真工具链

安装PX4仿真工具链使用如下命令:

git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
sudo reboot

reboot命令是重启电脑,执行该命令之前要做好资料保存工作。

到此,PX4的下载及环境设置工作完成。

3.安装ROS2

ROS2的安装过程详见:ubuntu操作系统下ROS2的安装和卸载-CSDN博客

4.安装ROS2的相关依赖

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
pip3 install --user empy==3.3.4 pyros-genmsg setuptools
sudo apt install python3-colcon-common-extensions
sudo apt install ros-humble-desktop python3-argcomplete
sudo apt install ros-dev-tools

到此,相关依赖安装完成。 

5.安装XRCE-DDS代理(AGENT)

XRCE-DDS是ROS2下节点之间的通信协议,使用如下命令进行安装:

git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/

到此,XRCE-DDS代理安装完成。

6.创建ROS2工作空间并生成代码样例

mkdir -p ~/ws_ros2/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 build

到此,工作空间及代码样例创建完成,如果编译出错,可能是网速不好导致中间下载不成功。可以尝试重新编译。

7.运行XRCE代理

MicroXRCEAgent udp4 -p 8888

8.编译PX4固件并运行

仿真用的PX4固件通常称为软在环固件(PX4 firmware for SITL),使用如下命令实现:

cd ~/PX4-Autopilot
make px4_sitl gz_x500

注意:不同的ubuntu操作系统,使用的参数可能不同,比如ubuntu20 下使用: make px4_sitl gazebo-classic。

到此,在ubuntu22.04(LTS)上搭建ROS2+PX4+Gazebo的联合仿真环境的目标实现。最终的界面如下图所示:

  • 32
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
ROS2编程基础课程文档 ROS 2(机器人操作系统2)是用于机器人应用的开源开发套件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易知世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值