首页 > 系统相关 >Windows如何优雅的运行ROS2/linux

Windows如何优雅的运行ROS2/linux

时间:2024-04-03 14:04:50浏览次数:24  
标签:Windows sudo apt dev linux ros 安装 ROS2

Windows如何优雅的运行ROS2/linux

前言

在ROS/ROS2开发过程中,大家普遍使用到的分布式开发方法都是基于虚拟机/双系统进行,本质上是希望基于Ubuntu良好的生态环境进行,但是两种方式各有各自的好处,也有各自的弊端,例如虚拟机很大而且并不能运行GPU;又比如双系统会导致个人数据碎片化(如想在ubuntu下使用微信/qq/word);基于一系列的理由了,笔者想在windows下进行ROS/ROS2的开发,是否有比较好的方式呢?WSL,window下的子系统;

安装WSL

首先判断你的电脑是否支持 WSLg ,这里有一个链接:https://github.com/microsoft/wslg#pre-requisites, 一般而言,WSLg 在 Windows 11 和 Windows 10 上都受支持

支持WSLg

如果可以的话,点击 https://aka.ms/wslstorepage 该网址即可安装 WSLg;
安装 WSlg 之后,打开 powershell 并输入 wsl --install 即可;
如果你的电脑不支持 WSLg 请执行以下步骤

不支持WSLg

安装 WSL2 和 Ubuntu

  1. 安装 WSL2 和 Ubuntu

  2. 安装 vcxsrv,它将在您的桌面中创建一个快捷方式。

    • 下载文件到您的用户主目录: C:\Users\USERNAME\config.xlaunch
    • 点击并键入 XLaunch,点击 “在此处添加快捷方式”。
    • 打开 运行,键入 shell:startup,按 Enter。
    • 将快捷方式移至 C:\Program Files\VcXsrv\xlaunch.exe
    • 右键单击该快捷方式上的 “属性”,更改 Target 为: "C:\Program Files\VcXsrv\xlaunch.exe" -run C:\Users\USERNAME\config.xlaunch
  3. 在 WSL 中,将以下内容添加到末尾或等效项:~/.bashrc

     if [ -z $DISPLAY ]; then
       export DISPLAY="$(tail -1 /etc/resolv.conf | cut -d' ' -f2):0"
     fi
    
  4. 若要测试所有内容,请打开新的 WSL shell

     sudo apt install x11-apps && xcalc
    
    • 您可能会看到以下错误:Error: Can't open display: 172.20.192.1:0
    • 打开具有高级安全性的 Windows Defender 防火墙,检查入站规则并确保 VcXsrv Windows Server 不会阻止专用连接。

依赖下载

完成以上操作之后边已经能够在WSL中进行一些Linux操作了,接下来还需要下载一些依赖

sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3

再安装编译依赖项

sudo apt install python3 python-is-python3 libsecret-1-dev libxss1 libx11-dev libxkbfile-dev libasound2 libgtk-3-0 libgdk-pixbuf2.0-0 libnss3 libxtst6 libxi6 libxdamage1 libxcursor1 libxcomposite1 libx11-xcb1 libgbm1

基于Vsocde进行开发

如果只是基于终端进行一系列操作虽然也已经能够满足我们的需求了,但是依旧不够丝滑,接下来介绍如何基于Vsocde和WSL进行联动;

安装Vscode

此处推荐使用:Documentation for Visual Studio Code
点击该链接即可下载安装;

配置远程登录

点击该链接即可自动给 Vscode 配置 WSL :WSL - Visual Studio Marketplace

配置结果展示

安装ROS2

安装 ROS2 的方式很多,正巧现在各种一键安装ROS2的内容很火热,此处就摘选古月老师的教程了
《ROS2入门21讲图文教程 | 3、ROS2安装方法》 - 古月居

ROS2系统安装

安装步骤如下:

  1. 设置编码
    $ sudo apt update && 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. 添加源

    $ sudo apt update && sudo apt install curl gnupg 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
    

    如遇报错“Failed to connect to raw.githubusercontent.com”,可参考解决”Failed to connect to raw.githubusercontent.com“报错 - 古月居

  3. 安装ROS2

    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt install ros-humble-desktop
    
  4. 设置环境变量
    $ source /opt/ros/humble/setup.bash
    $ echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
    
    至此,ROS2就已经在系统中安装好了。

效果展示

开发案例

更多内容请参考 Windows如何优雅的运行ROS2/linux - 古月居 (guyuehome.com)

标签:Windows,sudo,apt,dev,linux,ros,安装,ROS2
From: https://blog.csdn.net/qq_45488834/article/details/137343309

相关文章

  • Zabbix绝配!Linux用户密码过期预警与自动发现脚本大揭秘
    Zabbix绝配!Linux用户密码过期预警与自动发现脚本大揭秘原创 脚本家园 脚本家园 2024-04-0206:35 云南 1人听过在Linux系统管理中,用户密码的安全性和有效性是至关重要的。为了保持系统的安全性,管理员经常需要确保用户密码定期更换,并提前警告用户其密码即将过期。在这方面,Z......
  • linux sudo漏洞 可导致用户以 root 权限运行命令
    Sudo的全称是“superuserdo”,它是Linux系统管理指令,允许用户在不需要切换环境的前提下以其它用户的权限运行应用程序或命令,通常是以root用户身份运行命令,以减少root用户的登录和管理时间,同时提高安全性。该漏洞是sudo安全策略绕过问题,可导致恶意用户或程序在目标Linux系统......
  • Linux系统下安装MongoDB的详细步骤
    一、概述MongoDB由C++语言编写,是一个介于关系型数据库和非关系型数据之间的产品,是非关系型数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似与json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语......
  • Linux内核中的通用PHY驱动
    一. 简介前面一篇文章说明了有线网络的网络硬件方案。常用到的一种方案是:内部集成了MAC网络外设的SOC芯片(处理器),外接一个PHY网络芯片。前面文章也学习了Linux内核中的PHY子系统,也是为(上面这种方案)PHY网络芯片提供的驱动框架。Linux内核内部提供了通用的PHY驱动。本文来学......
  • PowerShell和DISM命令的组合用法,用于进行 Windows 映像的管理、部署和维护。通过结合
    PowerShell和DISM(DeploymentImageServicingandManagement)命令可以结合使用来进行Windows映像的部署、安装、更新和配置等操作。以下是一些常见的PowerShell和DISM命令的组合用法:安装和更新Windows功能:使用 Install-WindowsFeature cmdlet安装Windows功能,结合DISM......
  • 如何提高Linux RCU实时性
    简介     LinuxRCU(Read-Copy-Update)是一种同步机制,用于提高多处理器系统中读取频繁且写入少的数据结构的性能。在实时系统中,响应时间和预测性是非常重要的。实时性意味着系统能够在严格的时间限制内完成任务。RCU通过减少锁的需求和允许并行读取操作,提高了系统的实时性......
  • linux下mysql8.0更新密码报错解决方案(已知密码)
    先登录./mysql-uroot-p输入密码 然后更改密码直接执行ALTERUSER'root'@'localhost'IDENTIFIEDBY'密码';会失效会报:ERROR1396(HY000):OperationALTERUSERfailedfor'root'@'localhost'进行如下操作即可usemysql;updateuserset......
  • Linux中批量杀进程的方法(转)
    一、使用awk批量杀进程的命令:ps-ef|grephello|grep-vgrep|awk'{print"kill-9"$2}'|sh说明:ps-ef|grephello|grep-vgrep#列出了当前主机中运行的进程中包含hello关键字的进程ps-ef|grephello|grep-vgrep|awk'{print"kill-9"$2}'......
  • 查看Windows操作系统编码方式
    编码表:代码页国家(地区)或语言437美国708阿拉伯文(ASMO708)720阿拉伯文(DOS)850多语言(拉丁文I)852中欧(DOS)-斯拉夫语(拉丁文II)855西里尔文(俄语)857土耳其语860葡萄牙语861冰岛语862希伯来文(DOS)863加拿大-法语865日耳曼语866俄语-西里尔文(DOS)869......
  • linux 中 vim编辑器设置忽略大小写查找
     001、测试数据[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txteerootkkaaeedddeeROOTkkeeddRoot 002、方法1vim打开查找文件,在查找内容的后边增加\c,如果不在末尾增加\c,则表示的是不忽略大小写比如针对root忽略大小写查找:eerootkkaae......