松灵学院 | 在松灵 LIMO 上使用 Docker 进行 ROS2 开发

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

截至目前,Jetson Nano 平台官方仍不提供 Ubuntu 20.04 固件,所以使用 Jetson Nano 平台开发 ROS2 存在巨大的困难,但是好在 Docker 提供的容器技术,让我们能非常方便的虚拟出一个 Ubuntu 20.04 环境进行 ROS2 开发并通过云端快速分享自己的开发环境,本文我将以松灵 LIMO 为例向大家演示如何使用 Docker 进行 ROS2 开发以及这种开发模式的优越性。

此外,在 ROS 开发过程中(尤其是在多人团队协同中)你一定遇到过这样的问题:需要快速(在不同架构机器上)部署相同开发环境、别人电脑上可以编译但到了自己这里就会报错、无法复现别人的 Bug、经常会出现缺少支持库或者支持库冲突的情况,尤其是一台电脑上需要做多种任务的情况(比如 深度学习、QT 开发、ROS1、ROS2)则会更糟糕…… 这个时候我们就有必要使用 Docker 进行开发

本文分为两部分,1-6节讲解 使用 Docker+VSCode 开发方式,7 节将带领大家在 LIMO 平台进行实战

无论您之前使用什么样的方式进行开发,笔者在这里都推荐您尝试 Docker + VSCode,虽然这可能需要两三个下午的时间进行学习,但请相信这一切都是值得的!

如果您不会使用 docker 或者没有尝试过类似的操作,请您先阅读 《Docker 配合 VSC 开发最佳实践》(https://anthonysun256.github.io/docker-with-vsc_best-practice/)

1. 镜像选取

Docker 官方镜像服务器上有很多的 ROS 开发镜像,这里我们可以有如下选择(这几个镜像也是笔者常用的):

• ROS 官方镜像:https://hub.docker.com/_/ros 

内含所有 ROS 发行版的基础开发镜像,而且支持多种架构,非常适合在多种架构的机器上进行部署。

• althack 的开发镜像 https://hub.docker.com/u/althack

althack 提供了 VSCode 的开发工作环境模板:https://github.com/athackst/vscode_ros2_workspace

虽然模板是 ROS2 但是只要简单修改 Dockerfile 中引用的镜像名称即可改成 ROS1 环境

Dockerfile 源码:https://github.com/athackst/dockerfiles

这个镜像优点是提供了 ROS-desktop-full 的开发环境,省去了自行安装的麻烦,非常适合学习使用。缺点是只支持 PC,如果其他环境需要自己使用 Dockerfile 编译。

2. 开发环境搭建

我们新建的工作空间目录格式如下:

.
├── .devcontainer # docker 配置文件
│   ├── devcontainer.json
│   └── Dockerfile
└── src # ROS 源码目录

 VSCode 会自动读取 .devcontainer 中的配置文件。对于我个人学习而言我一直使用的是 https://hub.docker.com/u/althack 的镜像和配置,下面的配置文件也是改变于此,各位读者可以根据自己的需要进行修改:

Dockerfile

# 改编自 https://github.com/athackst/vscode_ros2_workspace
# 我使用的 ROS 学习镜像,根据您的喜好可以自行更改
FROM althack/ros:melodic-gazebo as gazebo 

# ** [可选] 取消注释安装其他组件 **
#
# ENV DEBIAN_FRONTEND=noninteractive
# RUN apt-get update \
#    && apt-get -y install --no-install-recommends <your-package-list-here> \
#    #
#    # Clean up
#    && apt-get autoremove -y \
#    && apt-get clean -y \
#    && rm -rf /var/lib/apt/lists/*
# ENV DEBIAN_FRONTEND=dialog

# 为 ros 用户配置自动 source
ARG WORKSPACE
RUN echo "if [ -f ${WORKSPACE}/install/setup.bash ]; then source ${WORKSPACE}/install/setup.bash; fi" >> /home/ros/.bashrc
基于docker搭建tx2ROS2交叉编译环境 基于docker搭建TX2ROS2交叉编译环境 概述 ROS2官方文档有交叉编译相关说明。本文使用TX2最新官方镜像JetPack4.4版本,自带ubuntu18.04。有现成的ubuntu18.04就可以使用apt-get install安装预编译的ROS2,从而避免从ROS2源代码安装可能引入的折腾。 ROS2在ubuntu18.04支持的版本有两个:dashing和eloquent。这里选择安装dashing,具体参照官方安装指引Installing ROS 2 via Debian Package 阅读详情

相关推荐

使用Docker安装ROS2 (ros-humble) 并开启对Wayland的支持

本教程介绍如何在Docker中安装ros-humble并开启对wayland的支持

sinat_21946723的博客 4353

ROS22026年 ROS2 机械臂开发:从零搭建最稳 Docker 环境指南

ROS2 机械臂的开发中,我们常说“真、智、看”三大核心。但在实际工程落地时,很多开发者往往陷入“死磕环境配置”的泥潭,试图在同一个宿主机上把所有依赖都配得完美无缺。结果往往是:改了一个 Python 包,导致整个系统崩溃;或者为了 Gazebo 的渲染,把显卡驱动折腾得面目全非。跳出这个泥潭,我们需要站在系统工程的高度来思考。。本文将深度拆解这一架构背后的逻辑,并为你提供一套在 2026 年实测可用的 Docker 安装与配置全流程。

qq_72758246的博客 165

松灵学院 | LIMO仿真指南

本文适合有 ROS1 基础和对 Gazebo 有了解的朋友松灵机器人 LIMO 是全球首款集四种运动模态于一体的 ROS 开发平台,提供了适应场景更广泛、更符合行业应用要求的学习平台,适用于机器人教育、功能研发、产品开发

AgileX的博客 2338

docker容器中安装ROS1/ROS2(不用配任何环境,10分钟搞定)

拉取完后创建容器,但是为了能在docker中能打开窗口,将使用以下参数,只需要修改名字即可,your_name 改成你想要的名字,必须英文。然后就可以运行容器啦,$containerId 换成容器名字也可以。运行下面这句,把 $containerId 替换为容器的 id。这个时候必然会报错,上步的目的是为了创建有对应参数的容器,然后把下面的3行指令按顺序分别执行在3个终端中。此时进入容器了,再在容器里面运行这句。每次进入容器前都需要先启动容器。查看刚刚创建的容器的 id。然后再运行以下进入容器

zysss_的博客 1万+

ROS2学习——Docker环境下安装于使用(1)

ROS 2采用全新的架构,底层基于DDS(Data Distribution Service)通信机制,支持实时性、嵌入式、分布式、多操作系统。ROS 2支持的系统包括Linux、windows、Mac、RTOS,甚至是单片机等没有操作系统的裸机。本文主要介绍如何在docker环境中安装使用ROS2,并且也会介绍ROS2的有些优势和基本概念。其实可以在Dokcerhub上找别人安装好的22.04镜像,为了学习本文带大家在纯净的22.04上安装一遍。这里安装桌面版本的ROS2基本相关的功能包都安装。

主要学习关于图像处理和SLAM领域 4067

机器人操作系统ROS2Docker安装

ROS官网:https://www.ros.org/机器人操作系统Robot Operating System (ROS)是一套开源的软件库和工具,可帮助你构建机器人应用程序。从驱动程序到最先进的算法,再到强大的开发人员工具,ROS可满足你下一个机器人项目的所有需求。ROS2官方Docker镜像osrf/ros是由开源机器人基金会Open Source Robotics Foundation (OSRF) 提供的,用于简化ROS2环境搭建和部署的一系列Docker镜像。

晨之清风 3584

记录 Docker 中安装 ROS2

记录 Docker 中安装 ROS2

wxl5018的专栏 1858

Ubuntu22.04安装Docker并搭建ros2环境

下面这句命令是创建一个容器,可以从下图中看出,我自定义容器的名字为do_humble,使用的镜像是刚下载的ryuichiueda/ubuntu22.04-ros2使用这句命令后,我们将直接创建容器,并进入到容器内。Docker安装完成时,是没有镜像的,当前有一个hello-woeld镜像,是因为我们在运行hello-world容器时,自动从Docker仓库中下载的镜像,因为容器运行的前提条件是镜像存在,如果不存在,就自动下载。请不要关闭已进入容器的终端,重新打开一个终端,在新打开的终端中运行小海龟节点。

Songqiang777的博客 5773

使用鱼香ros一键安装ros_docker或者ros2_docker时,挂载主机usb和使用主机网络

如何在docker安装ros的时候挂载主机的usb设备

2201_75594055的博客 4444

一、5分钟搞定ROS2开发环境!Docker+VS Code+GUI可视化全攻略(2025最新Kilted版)

本文详细介绍了在Windows系统下使用Docker快速搭建ROS2 Kilted(2025最新版)开发环境的方法。主要内容包括:通过Docker拉取ROS2镜像、配置容器环境、实现X11 GUI可视化(以小乌龟仿真为例),以及VS Code远程开发连接。该方案具有环境隔离、快速部署和跨平台一致三大优势,5分钟即可完成配置,无需安装双系统。文章还提供了常见问题解决方案和进阶环境保存技巧,是学习ROS2和企业级开发的实用指南。

携梦问道的博客 1168

Ubuntu安装Docker拉取ros2humble,并将自己的容器打包并在另一台电脑不同版本的Ubuntu上使用

结合以上多篇博客,自己动手操作并记录笔记一、安装docker二、ros2 docker镜像下载三、拉取完成使用下面的命令就可以进入已经安装好的镜像注意:每运行一次该指令,就会在本地生成一个新的容器,分配一个新的容器ID四、重启和关闭容器新开一个终端查看本地存在的容器:启动容器:进入刚刚生成的ros2容器,假设容器id前缀是fa647741f188 :再次进入容器启动ros2这是因为新终端没有自动添加环境变量,解决办法:直接输入下面的命令追加bashrc即可。

qq_41226644的博客 2591

如何用Docker部署ROS2

自身电脑ubuntu20.04由于工作需要humble,遂采用docker安装安装之前可以先用鱼香ROS的一键安装代码,里面又一键安装docker以及ROS docker版但是一键安装过程中有人可能出现报错,无法下载(比如我),所以整理一下安装的全过程。

weixin_61876315的博客 1300

运用dockerros2工程

此方法制作的镜像可以直接在docker容器的伪终端对ros2工程进行命令行操作,从而运行工程。避开dockerfile的繁琐学习。

weixin_45485619的博客 1243

Ubuntu系统使用DOCKERROS2从零开始配置开发环境-24年最新保姆级教程

如果你只是运行或容器因为exit而停止,容器的状态会变为“已停止”,此时容器数据仍然保留。当机器重启后,这些“已停止”的容器仍然存在,你可以用查看,并通过再次启动它。容器会丢失的唯一情况是,你明确地删除了容器(例如运行了或使用了--rm标志启动容器)。如果容器启动时用了 --rm,容器在退出时会被自动删除。此时,无论是否重启机器,容器都无法找回。

JeSuisDavid的博客 2482

Docker容器中安装 ROS2-Humble

volume=/dev/dri:/dev/dri:挂载卷,将宿主机的 /dev/dri 目录挂载到容器的相同路径,这个目录包含了 Direct Rendering Infrastructure (DRI) 设备文件,用于 GPU 硬件的直接访问。–volume=/tmp/.X11-unix:/tmp/.X11-unix:挂载卷,将宿主机的 /tmp/.X11-unix 目录挂载到容器的相同路径,这个目录包含了 X11 服务器的 UNIX 域套接字,用于图形界面的通信。

ZPC8210的博客 969

使用Docker创建开发ROS2容器(学习记录)

点击Images,在顶部搜索栏搜索fishros2/ros镜像(第一个应该就是),然后tag选择foxy-desktop版本的,然后pull这个镜像。然后应该就可以打开docker-desktop进行登录了(要不然好像会提示什么没有pass init)然后就能在终端里面进入你自己的容器了(这里我的容器名是foxy,其他的部分都是固定格式)打开docker-desktop,点击运行刚才新建的container。打开Docker-Desktop,注册并登录docker的账号。创建好之后打开自己电脑的终端。

qq_54907247的博客 1074

松灵学院 | Scout mini 仿真指南

本文适合有 ROS1 基础与了解 urdf语法 和 gazebo 的朋友 SCOUT MINI 是一款全地形高速Mini UGV,具有四轮差速驱动、独立悬挂、原地差速自转等特点,得益于自主研发的轻量级动力系统解决方案,SCOUT MINI最大速度高达10KM/H,专为前沿科学实验设计的全能型移动研究平台。 此外,松灵为用户提供了 SCOUT MINI 的完整 gazebo 仿真支持库,本文将带您逐步上手使用: 仓库地址:https://github.com/agilexrobotics/ugv_ga.

AgileX的博客 5224

一键部署ROS2开发环境!Docker run命令详解与实战

本文详细解析了两条关键Docker命令,帮助开发者快速搭建ROS2 Humble开发环境。第一条命令docker run -itd -v /root/home:/root/home --network host --name ros2_humble osrf/ros:humble-desktop创建并运行容器,包含交互模式、数据持久化挂载和主机网络配置。第二条命令docker exec -it ros2_humble bash用于进入运行中的容器

携梦问道的博客 1055
上一篇: 松灵学院 | Scout mini 仿真指南
下一篇: 松灵学院 | LIMO仿真指南
松灵机器人AgileX Robotics
博客等级 码龄6年 218粉丝 10原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值