isaac sim 与 WLS2 ros2实现通信

Omniverse以及isaac还是windows下使用顺手一点,但是做跟ros相关的开发时候,基本就得迁移到ubuntu下了,windows下ros安装还是过于复杂,那不想用双系统或者ubuntu或者虚拟机,有啥别的好方法呢?这里想到了windows WLS2:

Windows Subsystem for Linux 2 (WSL2) 是微软在Windows操作系统上推出的第二代Linux子系统,它利用虚拟化技术提供了一个完整的Linux内核环境,让Windows用户能够无缝运行Linux应用与工具,显著提升性能与兼容性。

WSL2的优势在于其卓越的性能表现(特别是在文件I/O密集型操作上)和广泛的Linux发行版支持,为开发者、数据分析师及任何需要Linux环境的用户提供了强大而灵活的工具。

参考教程1:nvidia isaac sim中关于ros安装和配置

ROS 和 ROS 2 安装 — Omniverse IsaacSim 最新文档 --- ROS and ROS 2 Installation — Omniverse IsaacSim latest documentation (nvidia.com)icon-default.png?t=N7T8https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_ros.html最新的isaac sim4.0推荐支持ros2 humble版本,ros2 foxy以及ros1都将被废弃了,不建议尝试;


 ​​​​​​WLS2安装Ubuntu22.04

这部分网上教程很多,重点讲一下,win11自带wsl 2,但在安装前,建议还是升级wsl到最新,否则可能遇到问题。

wsl --update

wsl --update命令可以帮助保持WSL及其内核的最新状态,从而确保用户能够利用最新的功能和安全更新。

安装ROS2 Humble 

跟正常ubuntu上安装ros2 humble一样,

参考教程2:ros2官方Humble Ubuntu安装教程

Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentationicon-default.png?t=N7T8https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

如果ros.key添加不上,可以这样做: 

wget http://packages.ros.org/ros.key
sudo apt-key add ros.key
sudo mv ros.key /usr/share/keyrings/ros-archive-keyring.gpg
sudo apt-get update

添加清华ros源:

sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt-get update

windows isaac sim配置

这一步很简单,在这里之间这样选配即可,然后STRAT启动Isaac Sim

WLS2 ROS Humble配置

这一步也很简单,source 一下ros 环境即可

source /opt/ros/humble/setup.bash

验证

使用isaac action graph发布一个clock,可以参考下面教程:

ROS Clock — Omniverse IsaacSim latest documentation (nvidia.com)icon-default.png?t=N7T8https://docs.omniverse.nvidia.com/isaacsim/latest/ros_tutorials/tutorial_ros_clock.html

 在WLS ubuntu终端订阅该topic;

其它可能问题

我按照上面步骤安装和配置没有遇到问题,但之前配置docker ros遇到过网络问题,本以为WLS2也会遇到,因为发现WLS用了虚拟以太网,可能使得DDS发现不了,但是神奇的是本机直接就通了,但多机之间ROS还通不了。

如果遇到ros2 topic list 显示不出消息,那么可以检测防火墙,或者关闭防火墙,更高级的可以配置WSL的网络,默认情况下,WSL 使用基于 NAT(网络地址转换)的体系结构进行网络连接。 

使用 WSL 访问网络应用程序 |Microsoft 学习 --- Accessing network applications with WSL | Microsoft Learn


Isaac Lab开发不易,欢迎加QQ群一起交流学习:723139415

相关推荐

  1. Ubuntu 20.04 ROS1 ROS2 通讯

    2024-07-10 09:12:03       43 阅读
  2. 基于TCP技术在ROS1和ROS2实现多机通讯

    2024-07-10 09:12:03       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 09:12:03       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 09:12:03       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 09:12:03       90 阅读
  4. Python语言-面向对象

    2024-07-10 09:12:03       98 阅读

热门阅读

  1. linux:命令执行过程【图表】

    2024-07-10 09:12:03       26 阅读
  2. 系统架构设计师——网络设计

    2024-07-10 09:12:03       33 阅读
  3. SSL证书到期自动巡检脚本-推送钉钉告警

    2024-07-10 09:12:03       30 阅读
  4. 如何才能在Linux下编写驱动程序

    2024-07-10 09:12:03       28 阅读
  5. Tomcat打破双亲委派模型的方式

    2024-07-10 09:12:03       32 阅读
  6. C++惯用法: 通过std::decltype来SFINAE掉表达式

    2024-07-10 09:12:03       23 阅读
  7. HTTP 范围Range请求

    2024-07-10 09:12:03       28 阅读
  8. React 开发报错整理

    2024-07-10 09:12:03       36 阅读
  9. 微软 Edge 浏览器全解析

    2024-07-10 09:12:03       27 阅读
  10. 静态搜索iOS动态链接函数的调用位置

    2024-07-10 09:12:03       26 阅读