ROS1 22.04 gazebo仿真
时间: 2025-05-23 20:15:13 浏览: 26
### 关于在 Ubuntu 22.04 上使用 ROS1 和 Gazebo 的注意事项
需要注意的是,ROS1 主要支持的 Ubuntu 版本为 18.04 (Bionic Beaver) 或更早版本[^5]。对于 Ubuntu 22.04,官方推荐使用的 ROS 发行版是 ROS2 Humble Hawksbill 而不是 ROS1 Noetic Nitrogen。因此,在 Ubuntu 22.04 上运行 ROS1 可能会遇到兼容性和依赖项问题。
然而,如果确实需要在 Ubuntu 22.04 上尝试安装 ROS1 并配合 Gazebo 使用,则可以按照以下方法操作:
---
### 配置环境并安装必要的工具
#### 更新系统软件源
为了确保系统的最新状态以及后续安装顺利进行,需先更新 APT 缓存:
```bash
sudo apt-get update && sudo apt-get upgrade -y
```
接着安装一些基础开发工具和实用程序:
```bash
sudo apt-get install lsb-release gnupg curl wget build-essential cmake python3-pip git -y
```
上述命令包含了 `lsb-release` 和 `gnupg` 工具用于设置 ROS1 的软件源[^3]。
---
### 设置 ROS1 的软件源
由于 ROS1 默认不支持 Ubuntu 22.04,可以通过手动添加 ROS1 的旧版本软件源来实现安装。以下是具体步骤:
1. 添加 ROS1 的密钥到本地系统:
```bash
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
```
2. 导入 ROS 官方签名密钥以验证下载包的真实性:
```bash
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
```
3. 再次刷新 APT 缓存以便识别新增加的 ROS1 软件源:
```bash
sudo apt-get update
```
---
### 安装 ROS1 Base 系统
执行如下指令完成 ROS1 基础组件的安装:
```bash
sudo apt-get install ros-noetic-desktop-full -y
```
此命令将安装完整的桌面端功能集,包括 rviz、Gazebo 插件以及其他常用工具[^6]。
初始化 `rosdep` 来简化依赖管理流程:
```bash
sudo rosdep init
rosdep update
```
配置环境变量使得每次登录终端都能自动加载 ROS1 所需路径:
```bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
```
确认当前已成功切换至 ROS1 Noetic 下的工作模式:
```bash
roscore &
```
---
### 安装适配的 Gazebo 版本
鉴于 ROS1 Noetic 推荐搭配 Gazebo9 使用,而 Ubuntu 22.04 自带更高版本的 Gazebo(如 Gazebo11),可能引发插件冲突等问题。解决办法之一是从源码编译特定版本的 Gazebo;另一种方式则是降级现有 Gazebo 至匹配 ROS1 的稳定版本。
这里提供一种较为简便的方法——通过 Pinning 技术锁定指定版本号防止升级干扰正常运作:
编辑文件 `/etc/apt/preferences.d/pin-gazebo` 创建偏好策略规则:
```plaintext
Package: *
Pin: release o=OSRF,n=gazebo9,l=Gazebo Simulations,a=*.*
Pin-Priority: 1001
```
之后重新同步索引数据并单独指定安装目标版本即可:
```bash
sudo apt-mark hold gazebo9 libgazebo9*
sudo apt-get install gazebo9 ros-noetic-gazebo-plugins ros-noetic-gazebo-ros-pkgs -y
```
---
### 测试运行示例场景
最后一步便是验证整个集成平台能否协同工作无误。启动默认的世界模型作为初步测试手段:
```bash
export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:/opt/ros/noetic/lib/
gzserver --verbose worlds/simple_world.world &
gzclient &
```
或者利用 TurtleBot3 提供的标准样例进一步考察交互效果:
```bash
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
```
以上即完成了基于 Ubuntu 22.04 的 ROS1 Noetic 加载 Gazebo 模拟器的整体部署过程概述[^7]。
---
###
阅读全文
相关推荐


















