开发环境
- 主机系统:Windows 11 25H2
- WSL2 发行版:Ubuntu 22.04 LTS
- ROS 2 版本:Humble
本文记录了一次在 WSL2 环境下为 Ubuntu 22.04 安装 ROS 2 Humble 的完整流程,并附带最简运行测试,确保安装成功。
1. 安装 ROS 2 Humble
官方文档给出了二进制包的安装方式,步骤如下1:
启用 universe 仓库并更新软件列表
sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update && sudo apt install curl -y获取并安装 ROS 2 的 apt 源
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/ ${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb" sudo dpkg -i /tmp/ros2-apt-source.deb sudo apt update安装桌面版与开发工具
sudo apt install -y ros-humble-desktop sudo apt install -y ros-dev-tools将环境变量写入
.bashrcecho "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc补齐 Python 依赖(PX4 开发推荐)
pip install --user -U empy==3.3.4 pyros-genmsg setuptools
至此,ROS 2 Humble 已就绪。
2. 运行海龟仿真验证
参考鱼香 ROS 入门教程2,启动经典 turtlesim 进行验证:
终端 1 启动仿真节点
ros2 run turtlesim turtlesim_node终端 2 启动键盘控制节点
ros2 run turtlesim turtle_teleop_key在此终端内使用方向键即可遥控海龟移动。

保持上述两节点运行,再开一个终端启动
rqt:rqt依次点击菜单栏 Plugins → Introspection → Node Graph,即可看到节点与话题的拓扑关系。

若海龟能正常移动且 Node Graph 显示完整,则安装无误,可进入后续开发,ROS2的架构与中间件理论参考资料3。
3. 编译并运行第一个节点
3.1 纯 g++ 手动编译(Makefile)
build:
g++ first_ros2_node.cpp \
-I/opt/ros/humble/include/rclcpp/ \
-I /opt/ros/humble/include/rcl/ \
-I /opt/ros/humble/include/rcutils/ \
-I /opt/ros/humble/include/rmw \
-I /opt/ros/humble/include/rcl_yaml_param_parser/ \
-I /opt/ros/humble/include/rosidl_runtime_c \
-I /opt/ros/humble/include/rosidl_typesupport_interface \
-I /opt/ros/humble/include/rcpputils \
-I /opt/ros/humble/include/builtin_interfaces \
-I /opt/ros/humble/include/rosidl_runtime_cpp \
-I /opt/ros/humble/include/tracetools \
-I /opt/ros/humble/include/rcl_interfaces \
-I /opt/ros/humble/include/libstatistics_collector \
-I /opt/ros/humble/include/statistics_msgs \
-L /opt/ros/humble/lib/ \
-lrclcpp -lrcutils \
-o first_node
clean:
rm first_node
执行编译:
make build
3.2 CMake 方式(推荐)
CMakeLists.txt:
cmake_minimum_required(VERSION 3.22)
project(first_node)
find_package(rclcpp REQUIRED)
add_executable(first_node first_ros2_node.cpp)
target_link_libraries(first_node rclcpp::rclcpp)
构建:
mkdir build && cd build
cmake ..
make
3.3 C++ 源码
first_ros2_node.cpp:
#include "rclcpp/rclcpp.hpp"
int main(int argc, char **argv)
{
rclcpp::init(argc, argv);
rclcpp::spin(std::make_shared<rclcpp::Node>("first_node"));
return 0;
}
运行:
./first_node
4. Python 版节点(单行脚本)
second_ros2_node.py:
import rclpy
from rclpy.node import Node
rclpy.init()
rclpy.spin(Node("second_node"))
启动:
python3 second_ros2_node.py
5. 验证节点列表
新终端执行:
ros2 node list
预期输出:
/first_node
/second_node
Python 打包工具理论知识参考资料4。