ubuntu 22 安装 ros2 humble + Gazebo
ubuntu 22 安装 ros2 humble + Gazebo
1 ROS2 Humble 介绍
2 Gazebo 介绍
2.1 概述
Gazebo 是三维物理仿真平台,强调的是创建一个虚拟的仿真环境。只能在Linux系统下使用。
Gazebo 是一组开源软件库,旨在简化高性能应用程序的开发。Gazebo 的主要受众是机器人开发人员、设计师和教育工作者。但是,Gazebo 的结构可以满足许多不同的用例。Gazebo 中的每个库都具有最低限度的依赖性,因此它们可用于从解决数学变换到视频编码,再到模拟和流程管理等各种任务。只需为您的应用程序选择所需的库,而无需投入整个生态系统。
Gazebo 是一款开源2D/3D机器人模拟器,于 2002 年开始开发。2017 年,开发分为两个版本,称为“Gazebo”(原始单片架构)和“Ignition”(已转变为松散耦合库的现代化集合)。在 2022 年因使用“Ignition”名称而出现商标障碍后,Open Robotics借此机会更改了版本名称,将原始分支命名为“Gazebo Classic”,将新的现代分支命名为“Gazebo”。
Gazebo Classic 集成了ODE物理引擎、OpenGL渲染以及传感器模拟和执行器控制的支持代码。
Gazebo Classic 可以使用多种高性能物理引擎,例如ODE、Bullet等(默认为 ODE)。它提供包括高质量照明、阴影和纹理在内的逼真环境渲染。它可以模拟“看到”模拟环境的传感器,例如激光测距仪、相机(包括广角)、Kinect风格的传感器等。
对于 3D 渲染,Gazebo Classic 使用OGRE引擎。
2.2 发展历程
- 2002年~2011年,Gazebo 是Player 项目的一部分。
- 2011年,Gazebo 成为Willow Garage支持的独立项目。
- 2012年,开源机器人基金会(OSRF) 成为 Gazebo 项目的管理者。OSRF于 2018 年更名为Open Robotics。
- 2020年1月,Gazebo 11 发布,这是 Gazebo Classic 的最新也是最后一个主要版本,计划于 2025 年 1 月终止生命周期。Gazebo 之前发布的所有版本也都获得了长期支持,随着 Gazebo 11.0.0 的发布,Gazebo 9 和 10 也发布了小更新。
- Gazebo 11 发布后,Open Robotics 将重点转向开发 Ignition,这是一个“旨在简化高性能应用程序开发的开源软件库集合”,目标受众是机器人开发人员、设计师和教育工作者。
- 2019年2月,Ignition 的第一个版本发布。
- 2022年4月,在一场商标纠纷之后,Ignition 品牌名称退役,并恢复为 Gazebo。Gazebo 的网站将最初的独立 Gazebo 模拟器称为 Gazebo Classic,以区别于 Gazebo。Open Robotics 提到 Gazebo 的代码需要进行重大的现代化改造,同时有机会从单片架构转变为松散耦合库的集合。
2.3 Gazebo 开发遵循的核心原则
- 通用性:Gazebo 并不专注于某一类型的机器人。其功能旨在尽可能适用于机器人领域的多种用例。
- 稳定性:定期向社区提供稳定版本。稳定版本的后续改进力求保持 API、ABI 和行为的向后兼容性。重大更改将在即将发布的版本中发布。
- 更新:只要有可能,就会将新的向后兼容功能添加到稳定版本中。这样,用户就可以利用新功能,而无需升级到更高版本,并且可以推迟升级工作,直到需要进行重大更改为止。
- 易用性:默认行为应该对初学者友好。例如,默认情况下,Gazebo 会开始运行图形界面。高级用户可以无头运行,但需要额外的配置才能实现此行为。
- 模块化:Gazebo 软件包尽可能独立,以便它们可用于 Gazebo 之外的各种项目。例如,Gazebo Rendering 的用户不需要安装、编译,甚至不需要了解 Gazebo Physics。
- 可扩展性:用户无需分叉核心库或从源代码编译即可添加功能。例如,可以将新的渲染引擎作为插件加载。
- 灵活性:用户可以在合理的情况下选择启用或停用某些功能。例如,物理学作为插件集成到 Gazebo 中,因此用户可以根据需要加载不带物理学的模拟,或者加载带其他物理学的模拟。
- 可维护性:在开发过程中,我们会考虑代码的长期可维护性。为此,项目遵循严格的测试、文档、代码检查和样式标准。
- 可移植性:Gazebo 支持所有主流操作系统:Linux、macOS 和 Windows。这会影响依赖项的选择方式和功能的实现方式。
2.4 版本对应关系
https://gazebosim.org/docs/latest/ros_installation/
3 ubuntu 22 安装 ros2 humble
设置locale
首先要确保本地语言支持UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
设置源
sudo apt install software-properties-common
sudo add-apt-repository universe
添加ROS2密钥
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
添加软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
安装ROS
sudo apt update && sudo apt upgrade
// 完整安装
sudo apt install ros-humble-desktop
// 精简安装
sudo apt install ros-humble-ros-base
建议安装桌面版(desktop)最全最通用,但也可以选择基础版(基础版不包含图形界面库)
安装其他ROS工具
sudo apt install ros-dev-tools
配置rosdep
rosdep是 ROS2中的一个命令行工具,主要用于自动安装和管理软件包的系统依赖项,它帮助开发者避免手动安装各种库和依赖包。暂时不配置也不会影响ROS2的使用。
// 开始配置
sudo rosdep init
// 更新
rosdep update
配置环境
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
查看是否生效
grep "humble" ~/.bashrc
测试
终端一:
ros2 run demo_nodes_cpp talker
终端二:
ros2 run demo_nodes_py listener
4 ubuntu 22 安装 Gazebo
ros2 humble默认是使用 gazebo Fortress
https://gazebosim.org/docs/latest/ros_installation/
更新源+安装基础工具
sudo apt-get update
sudo apt-get install lsb-release wget gnupg
安装
// 官网最推荐的安装方式
sudo apt-get install ros-${ROS_DISTRO}-ros-gz
安装单独运行gz指令工具
sudo apt install ros-humble-gazebo-ros-pkgs
测试
ign gazebo shapes.sdf
报错处理
context mismatch in svga_surface_destroy
该问题可能是VMware对OpenGL3.3的支持存在问题导致的。
方法一:VMware中对相应虚拟机关闭 3D 加速
方法二:禁用OpenGL3.3,回退到使用OpenGL2.1【失败,放弃】
echo "export SVGA_VGPU10=0" >> ~/.bashrc
参考
1、官网–Gazebo
2、wiki–Gazebo (simulator)
3、物理引擎–Open Dynamics Engine(ODE)
4、机器人开发–常用仿真软件工具
5、Getting Started with Gazebo?
6、Getting Started with Gazebo?
7、系统ubuntu20.04-ROS2源码安装humble
8、ros2和gazebo
9、Ubuntu22.04安装ROS2 —— ROS2 humble 详细图文教程
10、ROS2-Gazebo
原文地址:https://blog.csdn.net/qq_38880380/article/details/145044996
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!