1. 项目概述:ROS2与Gazebo机器人仿真入门
在机器人开发领域,仿真环境搭建是每个工程师的必修课。Ubuntu 20.04 + ROS2 Foxy + Gazebo的组合,已经成为当前最主流的机器人仿真开发环境之一。这个组合能让我们在虚拟世界中快速验证算法、测试硬件接口,甚至训练AI模型,而无需担心实体机器人可能带来的成本和风险。
我最近刚完成一个两轮差速驱动机器人的运动控制仿真项目,整个过程涉及环境配置、模型搭建、控制接口开发等多个环节。相比ROS1,ROS2在实时性、跨平台支持和分布式架构上都有显著提升,特别适合需要高可靠性的工业级应用。而Gazebo作为物理仿真引擎,可以模拟真实世界中的力学特性、传感器数据和环境交互。
提示:虽然官方推荐Ubuntu 20.04与ROS2 Foxy搭配使用,但如果你已经升级到Ubuntu 22.04,可以考虑切换至ROS2 Humble版本,避免兼容性问题。
2. 环境准备与安装指南
2.1 系统基础环境配置
在开始之前,请确保你的Ubuntu 20.04系统已经完成基础配置:
bash复制# 更新软件源并升级现有包
sudo apt update && sudo apt upgrade -y
# 安装基础编译工具
sudo apt install build-essential cmake git python3-colcon-common-extensions -y
# 设置区域设置(避免后续ROS安装报错)
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
2.2 ROS2 Foxy完整安装
官方提供了多种安装方式,我推荐使用鱼香ROS的一键安装脚本,它能自动处理依赖关系并配置环境变量:
bash复制wget http://fishros.com/install -O fishros && . fishros
选择"1.安装ROS"后,再选择"Foxy"版本即可。安装完成后,验证ROS2环境:
bash复制source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
另开终端运行:
bash复制source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener
如果能看到消息收发,说明ROS2核心功能正常。
2.3 Gazebo仿真环境安装
ROS2 Foxy默认集成了Gazebo 11,但我们需要额外安装ROS-Gazebo桥接接口:
bash复制sudo apt install ros-foxy-gazebo-ros-pkgs ros-foxy-gazebo-plugins ros-foxy-gazebo-ros
验证Gazebo安装:
bash复制gazebo --version
# 应该输出: gazebo 11.x.x
3. 创建机器人仿真项目
3.1 建立ROS2工作空间
使用colcon构建系统创建新工作空间:
bash复制mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
source
