windows 下使用docker搭建ROS

本文详细介绍了在Windows系统中如何安装Docker,并基于osrf/ros:melodic-desktop-full镜像拉取并运行ROS环境。通过Dockerfile创建自定义ROS镜像,添加额外依赖,并构建新镜像。接着,创建并运行ROS Docker容器,最后通过roscore验证ROS环境的正确设置。整个过程包括拉取镜像、创建Dockerfile、构建镜像、启动容器和测试ROS核心服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考1
步骤参考
参考
windows下安装docker参考这里

首先拉取docker官方提供的ros的镜像,在cmd+R中哈
在这里插入图片描述

拉取镜像:  docker pull osrf/ros:melodic-desktop-full


拉取并运行: docker run -it  -p 6000:22 -p 6001:8080 --name=base-ros-melodic osrf/ros:melodic-desktop-full  /bin/bash

成功后可在docker可视化窗口看到如下
在这里插入图片描述
第二步 通过Dockerfile 以官方镜像配置自己的ros镜像,新建一个 Dockerfile 文件后写入下面的

FROM osrf/ros:melodic-desktop-full
# nvidia-container-runtime
ENV NVIDIA_VISIBLE_DEVICES \
${NVIDIA_VISIBLE_DEVICES:-all}

ENV NVIDIA_DRIVER_CAPABILITIES \
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

在这里插入图片描述
然后在当前这个保存着Dockerfile文件的目录,下 Shift + 右键 打开 windows PowerShell 窗口
在这里插入图片描述
在通过dockerfile复制镜像的时候,也可通过如下写法,在复制时安装对应的依赖文件,建议在之后打开的容器的命令行中手动安装

RUN apt-get update && \
apt-get install -y \
build-essential \
libgl1-mesa-dev \
libglew-dev \
libsdl2-dev \
libsdl2-image-dev \
libglm-dev \
libfreetype6-dev \
libglfw3-dev \
libglfw3 \
libglu1-mesa-dev \
freeglut3-dev \
vim

然后输入下面这条语句,通过官方ros镜像为基础生成你自己的镜像文件,注意末尾是空格后的点!

docker build -t rocker .

运行完成后,可在docker可视化界面上看到生成的镜像文件如下
在这里插入图片描述
第三步,根据生成的镜像文件创建docker容器,运行如下命令, --name后面就是生成的镜像的名字,也可换成 镜像id ,成功运行后就可以进入容器了

docker run -it --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix  --env="DISPLAY=$DISPLAY"  --name=rocker osrf/ros:melodic-desktop-full  /bin/bash

在这里插入图片描述
第四步,通过命令行进入创建的docker容器(注意:通过docker视窗窗口那个CLI按钮进入打不开ros!)

win+R键打开windows命令行,然后输入

docker attach rocker

在这里插入图片描述
第五步,运行sh文件,运行上图绿色字体显示的 sh文件,自动配置ros环境

./ros_entrypoint.sh

最后,输入roscore来测试是否成功激活ros,如下就是成功了的

roscore

在这里插入图片描述

### 如何在Docker容器中安装ROS #### 准备工作 为了确保环境干净,在开始之前需移除任何已有的旧版Docker组件。这可以通过执行如下命令来完成: ```bash sudo apt-get remove docker docker-engine docker.io containerd runc ``` 此操作有助于防止新旧版本之间的冲突[^1]。 #### 安装必要的工具和支持包 在准备安装ROSDocker内之前,还需确认主机已经安装了一些基本的支持软件,比如`sudo`和`lsb_release`等工具。这些可以利用下面的命令进行安装: ```bash apt-get install sudo apt-get install -y vim sudo lsb-core sudo apt install -y python-pip python3-pip ``` 上述指令不仅能够提供后续可能需要用到的基础库文件,同时也为构建过程提供了支持[^4]。 #### 创建并配置Docker镜像用于ROS 对于希望快速启动带有预配置好的ROS环境的情况来说,可以直接拉取官方维护者所提供的包含特定版本ROSDocker镜像。例如要获取适用于ROS Humble Hawksbill的Micro-ROS静态库构建器,则应使用以下命令下载对应的镜像: ```bash docker pull microros/micro_ros_static_library_builder:humble ``` 该命令将会从Docker Hub上拉取指定标签名所指向的具体镜像资源[^3]。 #### 启动含有ROSDocker容器实例 一旦所需的一切都准备好之后,就可以通过定义好参数的方式轻松地启动一个新的Docker容器了。假设目标是要基于前面提到过的microros镜像创建一个交互式的shell会话,那么应该这样去做: ```bash docker run -it --rm microros/micro_ros_static_library_builder:humble /bin/bash ``` 这条语句中的选项解释如下: - `-i`: 保持STDIN开放即使没有附加也一样; - `-t`: 分配TTY终端给这个新的进程; - `--rm`: 当容器退出时自动删除它; - `/bin/bash`: 进入Bash shell作为入口点; 进入容器内部后即可按照常规方式继续安装额外依赖项或是直接开始编写节点程序等工作流程。 #### 使用Autoware提供的脚本简化部署过程 如果项目涉及到更复杂的场景如自动驾驶领域内的开发平台——Autoware的话,还可以考虑借助其自带的一键化解决方案来进行更为简便的操作。具体做法是在宿主机端执行位于`/path/to/AutowareAuto/docker/generic/run.sh`路径下的Shell脚本文件,从而实现自动化地建立容器以及初始化内部环境的目的[^2]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员进化不脱发!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值