当前位置: 首页 > 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的路径.

http://www.lryc.cn/news/540967.html

相关文章:

  • 【QT中的一些高级数据结构,持续更新中...】
  • 简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
  • 《95015网络安全应急响应分析报告(2024)》
  • TensorFlow v2.16 Overview
  • Udp发送和接收数据(python和QT)
  • element-plus 根据条件显示多选框
  • Ubuntu 22.04 Install deepseek
  • DeepSeek赋能智慧文旅:新一代解决方案,重构文旅发展的底层逻辑
  • 小程序的分包
  • RTSP场景下RTP协议详解及音视频打包全流程
  • 使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)
  • 如何基于transformers库通过训练Qwen/DeepSeek模型的传统分类能力实现文本分类任务
  • 开源一款I2C电机驱动扩展板-FreakStudio多米诺系列
  • FFmpeg+WebSocket+JsMpeg实时视频流实现方案
  • 【Linux】Linux 文件系统—— 探讨软链接(symbolic link)
  • 排序与算法:插入排序
  • HashMap 详解
  • DAY07 Collection、Iterator、泛型、数据结构
  • 计算机网络之物理层——基于《计算机网络》谢希仁第八版
  • 简讯:Rust 2024 edition and v1.85.0 已发布
  • DeepSeek写俄罗斯方块手机小游戏
  • uniapp中引入Vant Weapp的保姆级教学(包含错误处理)
  • 【Python爬虫(20)】解锁Python爬虫数据存储秘籍:文件存储全攻略
  • 关于Unity的一些基础知识点汇总
  • SpringCould+vue3项目的后台用户管理的CURD【Taurus教育平台】
  • 功能说明并准备静态结构
  • solidity之Foundry安装配置(一)
  • 请解释 Vue 中的生命周期钩子,不同阶段触发的钩子函数及其用途是什么?
  • C#上位机--选择语句(switch)
  • Hadoop初体验