Windows如何优雅的运行ROS2/linux

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 ]; thenexport 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 部署 nali 开源 IP 地理信息归属查询软件

前言 早前用到一个小巧开源的 IP 归属地查询软件,官方提供了 Dockerfile,使用了一段时间觉得还不错,非常简单便捷。 部署 docker 启动 由于该项目会在首次启动自动下载 IP 数据库,所以最好通过挂载目录的方式,将数据库目录挂在到本地,避免…

Java零基础入门到精通_Day 4

方法的重载 就是同一个类中的相同方法名的多个方法,但是他们的参数不同,类型不同或者参数个数不同。 (与返回值无关) package Base_One;public class Base_005 {public static void main(String[] args) {// Main method logic …

经久耐用耐强腐蚀PFA材质气体洗涤瓶全氟烷氧基树脂尾气吸收瓶

PFA洗气瓶是一种常用于净化和干燥各种气体的实验室器皿,以去除其中的水分、油脂、颗粒物等杂质,从而使需要用到的气体满足实验要求。 PFA气体吸收瓶 PFA洗气瓶的工作原理: 主要是通过液体吸收、溶解或发生化学反应来去除气体中的杂质。在洗气…

Python基础之pandas:文件读取与数据处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、文件读取1.以pd.read_csv()为例:2.数据查看 二、数据离散化、排序1.pd.cut()离散化,以按范围加标签为例2. pd.qcut()实现离散化3.排序4.…

新质生产力崛起,运营商前端运营如何跃升

“新质生产力”一个当前的热搜高频词,今年还被首次写进政府工作报告,是2024年十大工作任务的首位。那么什么是“新质生产力”?它对于我们的生活、学习、工作及未来发展有什么影响呢?今天小宝就抛砖引玉来讲一讲“新质生产力”对于…

整顿编剧市场:程序员提交测试流程的最佳实践

讲动人的故事,写懂人的代码 最近,一部去年推出的国产电视剧在IT圈子里引起了轰动。 引起关注的原因,并非剧中程序员的外形出众,而是她提交代码测试的方式——将写有代码的纸张放入文件夹,然后递给了对面的测试人员。如图1所示。 图1 程序员将写有代码的纸张放入文件夹,并…

信创(统信)系统上的软件安装及软件使用手册

一.各软件的安装文档 1.达梦数据库在统信系统上的安装 官方手册:https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html 1.1下载安装包 官网:https://www.dameng.com/list_103.html 点击”服务与合作”--> “下载中心” 这里选择对应的cpu和操作…

Git 核心知识

2024年4月2日更新 Git 安装 官网下载,Git 选择合适的版本,无脑下一步即可。 安装成功之后,鼠标右键任意的文件夹,会出现 Git GUI 的选项,即安装成功 安装注意事项 安装前,检查环境变量 , 如…

程序的编译、链接过程分析(简洁浓缩版)!

《嵌入式工程师自我修养/C语言》系列——程序的编译、链接过程分析(简洁浓缩版)! 一、程序的编译1.1 预编译指令 pragma1.2 编译过程概述1.3 符号表和重定位表 二、程序的链接2.1 分段组装2.2 符号决议2.2.1 强符号与弱符号2.2.2 GNU编译器的…

在线考试系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)高校远程网络考试,课程信息,在线考试,试题管理,习题管理课程信息,教师管理,学生管理

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

切换IP地址的软件的基本原理及相关知识

在数字化时代,IP地址作为网络设备的唯一标识,扮演着至关重要的角色。然而,在某些特定情况下,我们可能需要隐藏或更改自己的IP地址,以保护隐私、突破地域限制或进行网络测试等。这时,切换IP地址的软件就显得…

Harmony创建Page省事小技巧

在创建Page页面时,选择ArkTS File时,创建的文件不会自动生成基础代码,也不会自动在main_page.json中自动进行注册,如何解决问题呢,其实很简单创建Page页面时选择Page项后就会创建Page文件,创建完的页面会自…

放弃“颜值”,15年的美图开始拼“生产力”

文|郝 鑫 “美图是一家AI公司”,美图在2023年财报的一开头就迫不及待地重申了自己的“新身份”。 这背后源于美图去年到现在对AIGC的一连串疯狂押注。 2023年6月,美图一口气发布了美图视觉大模型MiracleVision和六款AI产品,…

护眼灯值不值得买?业界公认的护眼台灯十大排名盘点

在这个信息爆炸的时代,用眼时间不断延长,长时间用眼不仅易导致视觉疲劳,还可能对视力健康造成长远影响。因此,除了适时休息,确保所处光线环境健康同样重要。然而,灯光环境往往不尽如人意。此时,…

状态压缩DP

哈密顿路径问题: 一般设 表示 状态下,为最后一个最值情况 。 一般有两种稍微不同的写法,单纯就是写法不同,思路方法都相同。 第一个例题为第一种转移方法,有当前转移后面。 后面的都是由前面转移目前。 G. Shuff…

是谁?写的Java神作一出版就获Jolt图书大奖【抽奖赠书】

送书活动 1️⃣参与方式:点此参与抽书抽奖 2️⃣获奖方式:小程序随机 抽5位,每位小伙伴一本《Effective Java中文2024版》 3️⃣活动时间:截止到 2024-4-6 12:01:00 注:所有抽奖活动都是全国范围免费包邮到家&#xff…

MP4文件中h264的 SPS、PPS获取

MP4文件中h264的SPS、PPS获取 如下图所示,为avcC 1 【参考依据】ISO/IEC 14496-15 2 【综述】在H264中,SPS和PPS存在于NALU header中,而在MP4文件中,SPS和PPS存在于AVCDecoderConfigurationRecord, 首先要定位avcC. …

Ant Design Vue中的table与pagination的联合使用

效果&#xff1a; 代码&#xff1a; <a-table:dataSource"dataSource":columns"columns":pagination"pagination"change"handleTableChange":scroll"{ x: 100%, y: 600 }"> </a-table> export default defin…

kubernetes-Pod基于污点、容忍度、亲和性的多种调度策略(二)

Pod调度策略 一.污点-Taint二.容忍度-Tolerations三.Pod常见状态和重启策略1.Pod常见状态2.Pod的重启策略2.1测试Always重启策略2.2测试Never重启策略2.3测试OnFailure重启策略&#xff08;生产环境中常用&#xff09; 一.污点-Taint 在 Kubernetes 中&#xff0c;污点&#x…

Nginx在Kubernetes集群中的进阶应用

简介 在现代DevOps环境中&#xff0c;Nginx作为负载均衡器与Kubernetes的Ingress资源的结合&#xff0c;为应用程序提供了强大的路由和安全解决方案。本文将深入探讨如何利用Nginx的灵活性和功能&#xff0c;实现高效、安全的外部访问控制&#xff0c;以及如何配置Ingress以优…