【番外】【Airsim in Windows & ROS in WSL2-Ubuntu20.04】环境配置大全

这篇具有很好参考价值的文章主要介绍了【番外】【Airsim in Windows & ROS in WSL2-Ubuntu20.04】环境配置大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【前言(可省略不看)】

AirSim的使用着实是一件麻烦事,我的配置过程可谓是坎坷重重。原因在于AirSim对于电脑要求较高,所以即使我手头有一个Interl mini PC,但是由于没有独立显卡,也没有办法实现在Ubuntu环境下使用AirSim。而电脑又不太想装双系统,并且在VMware虚拟机里面没有办法使用电脑的独立显卡,因此也不能使用AirSim。
所以我的方法是:在Windows上部署WSL2子系统,在WSL2上面安装Ubuntu系统(实际上WSL2就是一个虚拟机,但是它是由windows开发的一个基于windows的子系统,各种环境以及接口比vmware虚拟机要来的方便多了,也正因为如此,wsl2中可以使用到电脑的显卡资源),在Ubuntu上面运行ros程序,在windows上面运行airsim仿真,两者通过airsim官方给出的airsim-ros-wrapper内置的网络通信进行通信沟通,从而实现曲线救国,也是不太伤害电脑并且运行效果还不错的一种方案。
整体的安装流程如下:
我的环境版本如下:

windows10-wsl2-ubuntu20.04-ros noetic

1.在windows上面部署好UE4+AirSim联合仿真环境

具体配置方法看我上一篇文章:【番外】在Windows安装Airsim/UE4踩坑合集

2.在windows上面部署wsl2系统以及在wsl2上面部署ubuntu系统

一种办法是按照官方给出的方法,从头开始一步一步做,是比较省事的:
官方步骤:Windows系统安装WSL2
但是这个带来的问题是,官方这种方法只能将wsl2系统安装在C盘,也就是之后的ubuntu也要在C盘,那么之后想在WSL2上面装一些软件之类的或者安装包之类的,内存就会受很大限制,所以可以按照这位博主的操作安装到其他盘:
Win10自定义路径位置安装WSL2 (Ubuntu 20.04) 并配置CUDA

3.安装好ubuntu系统之后,目前只能在命令行操作,所以又需要安装图形界面

可以按照这个UP的步骤来:
WSL2 Ubuntu+gnome图形界面的安装血泪史(亲测有效)
按照他的步骤做完第三步和第四步就可以。
但是做完之后会发现gnome这个框架之下rviz打开后一般会卡死或者闪退。如果没有rviz需求的同学就可以这样不管了,但是如果要用rviz的话,就需要解决这个问题。
我的方法是换成Xfce4桌面环境。

这里插一句,这些东西之间是什么关系:
Xfce4和gnome都是一种桌面环境框架,是一种安装在wsl里面的为了显示ubuntu桌面的框架。而安装的VcXsrv 是一个显示软件,用于将Xfce4和gnome传输出来的显示信息显示在该软件上。所以无论wsl里面装的是gnome还是Xfce4,外部都用VcXsrv软件进行显示。

方法:
终端输入:

sudo apt-get install xfce4 

中间会跳出一个页面问你选择什么管理器,随便选哪个都行。我选择的是第一个。
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
我们需要知道本机地址,在powershell或者cmd中输入

ipconfig

此时有两种选择,将图像传输回WSL的虚拟地址或是直接的本机地址。如下是虚拟地址的版本,本机地址也是取相应的IPv4地址即可。
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
我们需要在.bashrc文件中添加一行输出地址. (在Ubuntu下输入)

echo "export DISPLAY=172.21.16.1:0.0" >> ~/.bashrc

其中 “172.21.16.1” 就是你刚刚得到的ipv4地址,不要忘记写后面的 :0.0

如果要修改这个IP参数的话,需要修改 ~/.bashrc 文件,有很多种可以在Terminal中编辑文件的方法,比如笔者使用的vim。

如果没有vim可以先安装vim。

sudo apt-get install vim

安装结束后就就可以打开了,输入

vim ~/.bashrc

按 i 进入编辑模式。

修改之后按下 Esc 在输入 :wq 就可以保存回到Terminal里。

其他vim的指令可以查阅: Linux vi/vim | 菜鸟教程 (runoob.com)

之后重新载入一下这个文件 (这个指令后面会用到很多次,因为这样就不需要重新打开个新的Terminal了)

source ~/.bashrc 

之后,在VcXsrv启动的状态下,在终端运行如下代码启动桌面:

startxfce4 

然后运行gazebo和rviz发现闪退的问题解决了。

如果无法正确输出并显示类似如下提示,可以添加 -ac 参数到 Xlaunch中

wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
我的Xlaunch配置是这样的:
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
之后保存就可以弹出VcXsrv窗口了。
但是还有新的问题,那就是两个软件中间都是黑屏的,没有任何显示,没有网格,也没有灰色的背景,并且会在运行时有如下的报错:

原因是:
windows端没有配置使得独立显卡可以作用于wsl2系统中,所以wsl2系统中所有需要图形渲染的软件都没有办法正常使用。解决方法是打开windows端独立显卡对于wsl2的权限:
WSL2 设置使用独显
之后就正常显示了。

如果还是有显示问题,尝试将下面两个代码加入你的bashrc文件中:

export LIBGL_ALWAYS_SOFTWARE=1
export LIBGL_ALWAYS_INDIRECT=0

是开启硬件加速和直接渲染。之后应该就没有问题了。

4.在WSL2-Ubuntu系统中安装ros系统

这一步老生常谈了,没什么问题,就不展开了。

5.在WSL2-Ubuntu系统中部署airsim:

参考官方文档:How to run Airsim on Windows and ROS wrapper on WSL
如果不想每次进入终端都输入一次export WSL_HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'),就把他加到你的bashrc文件中去。

题外话:这里如果你想用双机配置。即:一台电脑是windows-ue4-airsim仿真,一台电脑是ubuntu-ros作为控制,那么此处你在ubuntu系统上的操作就类似于wsl的操作,也就是在运行之前加一句:export WSL_HOST_IP=127.0.0.1即可。其中的IP地址是你的windows端电脑的IP,要保证两台电脑运行在同一个局域网之下并且可以ping通。理论上来说是没问题的。但是我这样试过了,没有成功,如果有大佬做成功了也麻烦踢我一下谢谢。

6.运行demo步骤

1.在windows端打开LandscapeMountains.sln工程文件,并且点击"开始调试",在UE4启动之后,点击开始仿真,则此时airsim插件已经开始运行,已经打开windows端的 41451 端口,并监听这个端口的需求。
你可以在开始仿真之后在cmd中运行如下命令,查看是否如此:

netstat -ano | findstr 端口号

比如该情境中我们输入:

netstat -ano | findstr 41451 

可以看到:
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
显示处于listening状态,也就是监听状态。
2.打开wsl2-Ubuntu系统
输入startxfce4 打开GUI界面
确保bashrc文件像我这样配置好(最后一行的IP一定要写你自己的IP):

export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export XDG_SESSION_TYPE=x11
export LIBGL_ALWAYS_SOFTWARE=1
export WSL_HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
source /opt/ros/noetic/setup.bash
export LIBGL_ALWAYS_INDIRECT=0
export DISPLAY=172.21.16.1:0.0

打开终端
进入根目录:

cd ~

进入AirSim工作空间:

cd AirSim/
cd ros

运行:

source devel/setup.bash
roslaunch airsim_ros_pkgs airsim_node.launch output:=screen host:=$WSL_HOST_IP
roslaunch airsim_ros_pkgs rviz.launch

成功运行界面如下:
WSL端:
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
UE4端:
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing
可以查看一下现有的rostopic:
wsl airsim,无人机,windows,ubuntu,机器人,ue4,无人机,simulated annealing文章来源地址https://www.toymoban.com/news/detail-827398.html

到了这里,关于【番外】【Airsim in Windows & ROS in WSL2-Ubuntu20.04】环境配置大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows wsl2安装Ubuntu

    wsl(Windows Subsystem for Linux)即适用于Windows的Linux子系统,是一个实现在Windows 10 / 11上运行原生Linux的技术。 wsl2 为其迭代版本,可以更好的在Windows上运行Linux子系统。 这里以 Windows 11 安装Ubuntu作为示例。 按 Win 键,点击 设置 。 搜索 控制面板 。 点击 程序 。 点击启用或关闭

    2024年02月09日
    浏览(48)
  • windows10 安装WSL2, Ubuntu,docker

    阅读时长:10分钟 本文内容: window上安装ubuntu虚拟机,并在虚拟机中安装docker,通过docker部署数字人模型,通过vscode链接到虚拟机进行开发调试.调试完成后,直接部署在云端即可. WSL2(Windows Subsystem for Linux)是windows系统默认支持的功能,也就是Windows Linux子系统,类似于一台

    2024年02月12日
    浏览(60)
  • wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)

    ​ wsl2 中linux版本:ubuntu ​ windows版本: win10/win11 最近装了wsl2,使用vscode远程连接wsl2时遇到了如下问题: 1、wsl2的ip无法固定 2、wsl2的ssh服务不能自动开启。 尝试了网上许多方法,都不能解决,于是决定自己写python脚本解决。 如下方案可以自动将wsl2的ip同步到vscode remote s

    2024年02月03日
    浏览(59)
  • windows wsl2(ubuntu)使用xinference快速部署ai模型

    Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,

    2024年04月11日
    浏览(57)
  • Windows 10 安装配置WSL2(ubuntu20.04)教程 超详细

    超详细windows安装配置WSL2(ubuntu20.04)步骤 Windows上快速安装WSL2教程 windows wsl2安装 Windows Subsystem for Linux(简称WSL),Windows下的Linux子系统,是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubu

    2024年02月12日
    浏览(98)
  • 在Windows10中安装WSL2(Ubuntu 22.04.2 LTS)

    WSL 1 于 2016 首次发布,在 windows 系统中可以使用linux系统。 但是WSL1的缺点有: 文件 I/O 慢,尤其是在大量IO操作时,例如使用 git 克隆仓库; 不支持内核程序; WSL 2 针对以上两个缺点进行了修正: 相比较于 WSL 1 使用翻译层将 linux 系统调用转化成 windows 系统调用,WSL 2 使用了

    2024年02月14日
    浏览(51)
  • 手把手教学基于Windows11的wsl2使用ubuntu子系统

    打开“控制面板“-“程序“-“程序和功能“-“启用或关闭windows功能“(侧边栏)-勾选“hyper-v“、“适用于Linux的Windows子系统“、“虚拟机平台“ 控制面板:开始菜单中搜索打开即可 选择“程序”,进入后选择“程序和功能” 选择“启用或关闭windows功能” 勾选“Hyper-V“

    2024年01月20日
    浏览(52)
  • Windows系列(特别有参考意义):Windows 10 安装配置WSL2(ubuntu20.04)教程 超详细

    超详细windows安装配置WSL2(ubuntu20.04)步骤 Windows上快速安装WSL2教程 windows wsl2安装 1.什么是WSL? Windows Subsystem for Linux(简称WSL),Windows下的Linux子系统,是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是

    2024年04月16日
    浏览(54)
  • 【番外】在Windows安装Airsim/UE4踩坑合集

    具体步骤参考知乎大佬宁子安的文章: https://zhuanlan.zhihu.com/p/618440744 或者是airsim官方网站的步骤: https://microsoft.github.io/AirSim/build_windows/ 我这里写几个自己安装过程中踩的坑和报的错: 我运行正常的版本为: win10 vs2022 UE4(4.27.2) Airsim 1.8.1 问题在于没有关联虚幻引擎与Air

    2024年02月02日
    浏览(41)
  • 【Docker Desktop】Windows11家庭版安装docker desktop和WSl2(Ubuntu22.04)并完成迁移,配置国内镜像

    目录 一、准备工作 ① 安装Hyper-V ②开启电脑的虚拟化技术,如何确定是否开启了虚拟化技术 ③ 启动Windows功能 二、安装WSl 三、移动Ubuntu 22.04.2 LTS 四、迁移 WSL2 安装位置 五、安装Docker Desktop 六、配置Docker Desktop  七、测试 因为win11家庭版本身是不支持hyper-V的,需要手动安装

    2024年01月20日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包