当前位置: 首页 > news >正文

docker安装ros2 并在windows中显示docker内ubuntu系统窗口并且vscode编程

这里包括docker desktop安装ros2 humble hawkshill , 安装xserver(用来在windows中显示ubuntu中窗口), vscode安装插件连接docker并配置python的一系列方法

1.安装xserver 为了能方便的在windows中显示ubuntu内的窗口,比如rqt窗口
参考文章:https://www.cnblogs.com/larva-zhh/p/10531824.html
需要安装vcxsrv软件,直接安装到windows主机即可.

2.下载镜像
在docker desktop的设置- dockerEngine中添加用于下载的 registry-mirrors,由于国内目前无法访问docker的相关服务器.当我们可以访问这里的镜像.

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [
 
  ],
  "registry-mirrors": [
    "https://hub.uuuadc.top",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu",
    "https://docker.ckyl.me",
    "https://docker.awsl9527.cn",
    "https://docker.m.daocloud.io",
    "https://docker.laoex.link",
    "https://dockerhub.icu",
    "https://a7snawvi.mirror.aliyuncs.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://reg-mirror.qiniu.com"
  ]
}

参考:https://blog.csdn.net/qq_39779233/article/details/142900876
下载指令如下

docker pull osrf/ros:humble-desktop-full-jammy

3.运行humble

docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=host.docker.internal:0.0 osrf/ros:humble-desktop-full-jammy bash

验证可以在windows中能够显示docker内窗口,在docker内执行

source ros_entrypoint.sh
rqt

之后会发现windows中出现了来自ubuntu的rqt窗口.

4.docker内安装vscode-server
参考文章 https://docs.ros.org/en/jazzy/How-To-Guides/Setup-ROS-2-with-VSCode-and-Docker-Container.html
参考文章 https://zhuanlan.zhihu.com/p/294933020
在windows内的vscode中安装插件 Remote Development 安装完成后即可进入docker内并可以进行文件操作.但是有可能会遇到登录docker时无法在docker内下载vscode-server的情况,这个时候我们要手动下载才可以
那么在服务器上离线安装VS Code Server,只需要在个人用户目录 H O M E 下新建 . v s c o d e − s e r v e r 文件夹,在其中建立 b i n 目录,放置“对应版本”的 V S C o d e S e r v e r 程序。点击菜单栏中的帮助 − > 关于,可以看到 C o m m i t I D ,刚好与 HOME下新建.vscode-server文件夹,在其中建立bin目录,放置“对应版本”的VS Code Server程序。点击菜单栏中的帮助->关于,可以看到Commit ID,刚好与 HOME下新建.vscodeserver文件夹,在其中建立bin目录,放置对应版本VSCodeServer程序。点击菜单栏中的帮助>关于,可以看到CommitID,刚好与HOME/.vscode-server/bin/中文件夹名称相同。其实只需要将这个文件夹打包,放到服务器上对应的位置,就已经安装成功了,这是最方便的做法。
下载server的地址

https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable(注意把:${commit_id}替换成对应的Commit ID)

运行命令 重新拷贝vscode-server到指定位置
运行下面两行命令,建立空的$HOME/.vscode-server/bin文件夹。

mkdir -p ~/.vscode-server/bin
rm ~/.vscode-server/bin/* -rf  #把$HOME/.vscode-server/bin下的内容删干净,防止出错

cd ~/.vscode-server/bin
tar -zxf vscode-server-linux-x64.tar.gz
mv vscode-server-linux-x64 ${commit_id} # 注意把:${commit_id}替换成对应的Commit ID

这个时候在运行windows中的vscode使用remote development即可.

5.python编程时遇到找不到ros2中的rclpy模块
rclpy 模块找不到,有两种可能,第一种是真的没有这个模块,可以使用rosdep来引过来,但是一般按配置好应该只vscode真的找不到,这个时候, 即便时通过vscodeserver 我们也可以在vscode打开-首选项-设置,在搜索框中填入"python.analysis.extrapaths 并添加rclpy在docker中存在的位置.这里是 /opt/ros/humble/local/lib/python3.10/dist-packages
这个位置可以在docker的ubuntu中 echo $PYTHONPATH ,会找到两个路径,rclpy应该会在第二个 /opt/ros/humble/local/lib/python3.10/dist-packages路径下.

注意:我们设置vscode的python.analysis.extrapaths实在windows里设置,但拿到的路径其实是ubuntu里 python的路径.

相关文章:

  • 获取每月最后一个工作日:考虑法定节假日与调休
  • IDEA中查询Maven项目的依赖树
  • 鸿蒙初学者学习手册(HarmonyOSNext_API14)_自定义动画API(@ohos.animator (动画) )
  • RabbitMQ的脑裂(网络分区)问题
  • 推荐一款AI大模型托管平台-OpenWebUI
  • Jenkins 部署在 Mac 并在局域网内通过 ip 访问
  • 【Spring AI】简单使用示例说明
  • SAP 代码扫描工具
  • selenium爬取苏宁易购平台某产品的评论
  • 架构学习第七周--Prometheus
  • Vue 3 中如何注册全局自定义组件:一个 SVG 图标的例子
  • Debezium连接器对比
  • Unity shader glsl着色器特效之 模拟海面海浪效果
  • Python 函数(传递实参)
  • 【工具】飞书个人知识库搭建(附详细步骤)
  • 【Linux探索学习】第二十八弹——信号(下):信号在内核中的处理及信号捕捉详解
  • 理解都远正态分布中指数项的精度矩阵(协方差逆矩阵)
  • Python 3 安装与环境配置完整教程
  • 实战:如何快速让新网站被百度收录?
  • python绘图之回归拟合图
  • 厦门 外贸商城网站制作/成都网站seo厂家
  • 做公司网站哪里好/seo快速排名工具
  • 网站优化排名如何做/百度竞价查询
  • 如何注册公司邮箱/中国seo第一人
  • 请人做网站需要注意什么条件/seo网络搜索引擎优化
  • 网站中的二级菜单怎么做23/网店推广培训