1. 项目概述
在机器人开发领域,ROS2(Robot Operating System 2)已成为当前最主流的机器人开发框架。本文将带领读者从零开始构建一个完整的ROS2机器人工程项目,创建一个可通过键盘控制的两轮移动机器人。这个项目基于ROS2 Jazzy和Gazebo Harmonic环境,涵盖了从工程目录结构搭建到机器人物理仿真的全流程。
提示:本教程适合有一定Linux基础,想要入门ROS2机器人开发的初学者。如果你之前使用过ROS1,会发现ROS2在架构和工具链上有显著改进。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与工程创建
2.1 系统环境要求
在开始之前,请确保你的系统满足以下要求:
- Ubuntu 22.04 LTS(推荐)或更高版本
- 已安装ROS2 Jazzy发行版
- 已安装Gazebo Harmonic仿真环境
- 至少8GB内存(运行Gazebo仿真需要较多资源)
2.2 创建工作空间
ROS2工程的标准目录结构如下:
bash复制# 创建工作空间目录
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
# 创建ROS2功能包
ros2 pkg create --build-type ament_cmake my_robot_description
# 创建标准子目录
cd my_robot_description
mkdir urdf launch worlds config meshes models
创建完成后,你的工程目录结构应该如下:
code复制ros2_ws/
└── src/
└── my_robot_description/
├── CMakeLists.txt
├── package.xml
├── urdf/ # 机器人URDF/Xacro模型文件
├── launch/ # 启动文件
├── worlds/ # Gazebo场景文件
├── config/ # RViz配置文件
├── meshes/ # 3D网格模型
└── models/ # Gazebo模型
注意事项:
- 功能包必须放在src目录下,否则colcon build无法识别
- 使用--symlink-install参数编译,可以避免每次修改后重新编译
3. 机器人模型设计
3.1 URDF/Xacro基础
URDF(Unified Robot Description Format)是ROS中描述机器人模型的XML格式。Xacro是URDF的宏扩展版本,支持参数化设计和代码复用。
创建robot.urdf.xacro文件:
xml复制<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="my_robot">
<!-- 定义材料颜色 -->
<material name="white"><color rgba="1 1 1 1" /></material>
<!-- 基础链接 -->
<link name="base_link"/>
<!-- 底盘 -->
<joint name="chassis_joint" type="fixed
