多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Windows PowerShell安装ROS2完整指南

Windows PowerShell安装ROS2完整指南 1. Windows PowerShell环境下ROS2安装全攻略在机器人开发领域ROS2已成为事实上的标准框架而Windows平台因其广泛的用户基础也成为不少开发者的首选环境。不同于Linux系统的一键安装Windows下通过PowerShell安装ROS2需要解决更多环境依赖和配置问题。本文将基于最新的ROS2 Humble版本详细解析在Windows 10/11系统上通过PowerShell完成完整安装的每个技术细节。2. 环境准备与系统要求2.1 硬件与软件基础配置ROS2 Humble官方推荐的最低系统配置为Windows 10版本1909或更高或Windows 11至少8GB RAM建议16GB以上50GB可用磁盘空间支持虚拟化的CPU需在BIOS中启用重要提示必须确保系统已安装所有最新更新补丁特别是与WSL2相关的系统组件。可通过PowerShell命令winver确认系统版本号。2.2 PowerShell环境配置推荐使用PowerShell 7.x而非传统的5.1版本# 检查当前PowerShell版本 $PSVersionTable.PSVersion # 安装PowerShell 7若未安装 winget install --id Microsoft.PowerShell --source winget配置执行策略以允许脚本运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser2.3 必要依赖安装通过PowerShell安装基础依赖组件# 安装Chocolatey包管理器 Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 iex ((New-Object System.Net.WebClient).DownloadString(https://community.chocolatey.org/install.ps1)) # 安装基础工具链 choco install -y git cmake python --version3.8.03. ROS2核心安装流程3.1 WSL2环境配置虽然ROS2支持原生Windows运行但推荐使用WSL2获得完整功能# 启用WSL功能 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 下载并安装WSL2内核更新包 Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile wsl_update.msi Start-Process msiexec.exe -Wait -ArgumentList /I wsl_update.msi /quiet # 设置WSL2为默认版本 wsl --set-default-version 23.2 Ubuntu子系统安装# 安装Ubuntu 22.04 LTS wsl --install -d Ubuntu-22.04 # 启动Ubuntu环境 wsl -d Ubuntu-22.04在WSL中继续执行# 设置软件源 sudo apt update sudo apt install -y curl gnupg2 lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null # 安装ROS2基础包 sudo apt update sudo apt install -y ros-humble-desktop # 环境变量配置 echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc3.3 Windows原生安装方案可选对于需要直接使用Windows环境的开发者# 下载ROS2安装包 Invoke-WebRequest -Uri https://github.com/ros2/ros2/releases/download/release-humble-20230526/ros2-humble-20230526-windows-amd64.zip -OutFile ros2-humble.zip # 解压到指定目录 Expand-Archive -Path ros2-humble.zip -DestinationPath C:\dev\ros2 # 设置环境变量 [System.Environment]::SetEnvironmentVariable(ROS_DOMAIN_ID, 0, [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable(PATH, $env:PATH;C:\dev\ros2\ros2-humble\Scripts, [System.EnvironmentVariableTarget]::User)4. 开发环境配置与验证4.1 构建工具链配置安装colcon构建系统pip install -U colcon-common-extensions vcstool配置Visual Studio编译环境以VS2022为例# 安装VS构建工具 choco install -y visualstudio2022buildtools --package-parameters --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended # 设置环境变量 $env:VSCMD_VER 17.0 $env:VSCMD_INSTALL_DIR C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build4.2 功能验证测试创建测试工作空间mkdir -p ~/ros2_ws/src cd ~/ros2_ws git clone https://github.com/ros2/examples src/examples -b humble colcon build运行示例节点# 终端1发布节点 . install/setup.ps1 ros2 run examples_rclcpp_minimal_publisher publisher_member_function # 终端2订阅节点 . install/setup.ps1 ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function4.3 可视化工具安装安装RQt和RVizchoco install -y python3-pyqt5 pip install pyqtgraph配置GUI显示WSL2环境下# 安装Windows X Server如VcXsrv choco install -y vcxsrv # 启动X Server后设置显示变量 $env:DISPLAY $(Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -like *WSL* }).IPAddress:0.05. 常见问题与深度优化5.1 网络连接问题解决方案当遇到包下载失败时# 设置代理如有需要 $env:HTTP_PROXY http://127.0.0.1:1080 $env:HTTPS_PROXY http://127.0.0.1:1080 # 更换APT镜像源WSL内 sudo sed -i s/archive.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list5.2 性能优化配置提升WSL2性能# 创建.wslconfig配置文件 [wsl2] memory8GB processors4 localhostForwardingtrue | Out-File -FilePath $env:USERPROFILE\.wslconfig -Encoding ASCII # 限制Vmmem内存占用 reg add HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management /v IoPageLockLimit /t REG_DWORD /d 268435456 /f5.3 开发环境集成配置VS Code开发环境# 安装VS Code及必要扩展 choco install -y vscode code --install-extension ms-vscode-remote.remote-wsl code --install-extension ms-iot.vscode-ros创建ROS2任务配置文件.vscode/tasks.json{ version: 2.0.0, tasks: [ { label: colcon build, type: shell, command: colcon build --symlink-install, group: build, problemMatcher: [] } ] }6. 高级应用场景6.1 与Windows原生应用集成通过ROS2的Windows原生版本可以实现与Win32应用的深度集成。例如创建C节点与DirectX交互# CMakeLists.txt关键配置 find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(d3d11 REQUIRED) add_executable(win32_demo src/win32_demo.cpp) target_link_libraries(win32_demo ${rclcpp_LIBRARIES} d3d11.lib )6.2 多机通信配置实现Windows与Linux机器间的ROS2通信# 设置多机通信参数 $env:ROS_DOMAIN_ID 42 $env:ROS_LOCALHOST_ONLY 0 # 防火墙规则配置 New-NetFirewallRule -DisplayName ROS2 DDS -Direction Inbound -Protocol UDP -LocalPort 7400-7500 -Action Allow6.3 容器化部署方案使用Docker for Windows运行ROS2容器# 拉取官方ROS2镜像 docker pull osrf/ros:humble-desktop # 启动带GUI支持的容器 docker run -it --rm -e DISPLAYhost.docker.internal:0 osrf/ros:humble-desktop7. 维护与更新策略保持ROS2环境更新的正确方式# WSL内更新ROS2 sudo apt update sudo apt upgrade ros-humble-* # Windows原生安装更新 python -m pip install -U rosdep rosdep update创建环境备份脚本backup_ros2.ps1$backupDir $env:USERPROFILE\ros2_backup_$(Get-Date -Format yyyyMMdd) mkdir $backupDir # 备份关键配置 Copy-Item -Path $env:USERPROFILE\.ros -Destination $backupDir -Recurse Copy-Item -Path $env:USERPROFILE\.ros2 -Destination $backupDir -Recurse # 导出环境变量 Get-ChildItem Env:ROS* | Export-Csv -Path $backupDir\env_vars.csv -NoTypeInformation
返回列表