Win11 WSL2 + Ubuntu 18.04:手把手教你配置ROS开发环境,解决rosdep update失败
Win11 WSL2 Ubuntu 18.04ROS开发环境配置全攻略与疑难排解在机器人操作系统ROS的学习与开发过程中环境配置往往是新手面临的第一个挑战。本文将带你从零开始在Windows 11的WSL2环境中搭建Ubuntu 18.04系统并完整配置ROS Melodic开发环境特别针对国内开发者常见的rosdep update失败问题提供多种解决方案。1. 环境准备与基础配置1.1 WSL2环境搭建首先确保你的Windows 11系统已启用WSL2功能。以管理员身份打开PowerShell执行以下命令wsl --install wsl --set-default-version 2安装完成后重启系统使更改生效。验证WSL版本wsl --list --verbose注意如果输出显示版本为1可通过wsl --set-version Ubuntu-18.04 2转换。1.2 Ubuntu 18.04安装推荐通过Microsoft Store安装Ubuntu 18.04 LTS版本。安装完成后首次启动会提示创建用户名和密码。建议使用以下命令更新系统sudo apt update sudo apt upgrade -y为提高后续软件安装速度建议立即配置国内镜像源。编辑源列表文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s/archive.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list sudo apt update2. ROS Melodic安装核心步骤2.1 基础依赖安装执行以下命令准备ROS安装环境sudo apt install -y curl gnupg2 lsb-release sudo sh -c echo deb http://mirrors.ustc.edu.cn/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update2.2 完整ROS安装推荐安装桌面完整版包含ROS、rqt、rviz等常用工具sudo apt install -y ros-melodic-desktop-full安装完成后初始化rosdep时会遇到网络问题这是国内开发者普遍面临的挑战。3. rosdep初始化问题深度解决3.1 修改hosts方案这是最直接的解决方案通过修改DNS解析解决域名访问问题首先测试原始域名连通性ping raw.githubusercontent.com编辑hosts文件添加解析sudo nano /etc/hosts添加以下内容199.232.28.133 raw.githubusercontent.com 151.101.228.133 raw.github.com执行初始化sudo rosdep init rosdep update3.2 国内镜像源方案如果hosts修改仍不奏效可使用国内镜像源替代sudo rosdep init --rosdistro melodic --repository-url https://mirrors.tuna.tsinghua.edu.cn/git/ros/rosdistro/raw-data rosdep update --include-eol-distros3.3 离线模式终极方案当网络问题无法解决时离线方式是可靠选择下载rosdistro仓库git clone https://gitee.com/ros-mirrors/rosdistro.git ~/rosdistro修改Python脚本路径sudo sed -i s|https://raw.githubusercontent.com/ros/rosdistro/master|file://$HOME/rosdistro|g /usr/lib/python2.7/dist-packages/rosdep2/*.py sudo sed -i s|https://raw.githubusercontent.com/ros/rosdistro/master|file://$HOME/rosdistro|g /usr/lib/python2.7/dist-packages/rosdistro/*.py修改默认列表文件sudo nano /etc/ros/rosdep/sources.list.d/20-default.list将所有https://raw.githubusercontent.com替换为file:///home/yourname/rosdistro4. 环境验证与基础测试4.1 环境变量配置在.bashrc中添加ROS环境变量echo source /opt/ros/melodic/setup.bash ~/.bashrc source ~/.bashrc验证环境变量是否生效printenv | grep ROS4.2 基础功能测试启动ROS核心服务roscore新建终端运行小海龟仿真rosrun turtlesim turtlesim_node再开一个终端控制小海龟rosrun turtlesim turtle_teleop_key4.3 自定义节点测试创建简单发布-订阅测试创建工作空间mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make创建测试包cd ~/catkin_ws/src catkin_create_pkg test_pkg roscpp rospy std_msgs编写简单发布者(publisher.cpp)#include ros/ros.h #include std_msgs/String.h int main(int argc, char **argv) { ros::init(argc, argv, talker); ros::NodeHandle n; ros::Publisher pub n.advertisestd_msgs::String(chatter, 1000); ros::Rate loop_rate(10); while (ros::ok()) { std_msgs::String msg; msg.data hello world; pub.publish(msg); loop_rate.sleep(); } return 0; }编写简单订阅者(subscriber.cpp)#include ros/ros.h #include std_msgs/String.h void chatterCallback(const std_msgs::String::ConstPtr msg) { ROS_INFO(I heard: [%s], msg-data.c_str()); } int main(int argc, char **argv) { ros::init(argc, argv, listener); ros::NodeHandle n; ros::Subscriber sub n.subscribe(chatter, 1000, chatterCallback); ros::spin(); return 0; }修改CMakeLists.txt后编译运行cd ~/catkin_ws catkin_make source devel/setup.bash rosrun test_pkg publisher rosrun test_pkg subscriber5. 开发环境优化技巧5.1 VS Code集成配置安装WSL远程扩展在VS Code中搜索安装Remote - WSL扩展配置ROS开发环境安装C/C、Python、ROS插件配置.vscode/c_cpp_properties.json{ configurations: [ { name: Linux, includePath: [ /opt/ros/melodic/include/**, ${workspaceFolder}/** ], defines: [], compilerPath: /usr/bin/gcc, cStandard: c11, cppStandard: c17 } ], version: 4 }5.2 常用工具安装推荐安装以下开发工具sudo apt install -y \ python-rosinstall \ python-rosinstall-generator \ python-wstool \ build-essential \ ros-melodic-rqt* \ ros-melodic-ros-tutorials5.3 网络配置优化为改善WSL2网络性能可在Windows主机创建.wslconfig文件[wsl2] memory4GB processors2 localhostForwardingtrue注意此配置需放置于C:\Users\你的用户名\.wslconfig