记录 Docker 中安装 ROS2

目录

 1  安装 Docker

 2  安装 ROS2

 3  启动 Docker

 4  测试 ROS2 环境


1  安装 Docker

1. 更新软件包
   sudo apt update
   sudo apt upgrade

2. 安装 docker 依赖
   sudo apt-get install ca-certificates curl gnupg lsb-release

3. 添加 docker 官方 GPG 密钥
   curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

4. 添加 docker 软件源
   sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

5. 安装 docker
   sudo apt-get install docker-ce docker-ce-cli containerd.io

6. 配置用户级
   sudo usermod -aG docker $USER
   # 默认情况下,只有 root 用户和 docker 组的用户才能运行 docker 命令。
   # 可以将当前用户添加到 docker 组,以避免每次使用 docker 时都需要使用 sudo。

7. 激活对 docker 组的更改
   newgrp docker 
   groups

8. 测试 docker 是否安装成功
   docker image ls   # 查看 docker 中已有的镜像
   docker ps -a      # 查看 docker 中已有的容器

9. 查看 docker 安装的状态
   sudo systemctl status docker

 2  安装 ROS2

1. 搜索 ubuntu下的 ROS2 镜像
   docker search ubuntu22.04
   # 或者
   docker search ros2
   # 我的电脑搜索后,出现了如下满足我要求的条目:
   ryuichiueda/ubuntu22.04-ros2                                                                                               

2. 从 docker 仓库拉取镜像
   docker pull ryuichiueda/ubuntu22.04-ros2

3. 再次查看 docker 中已有的镜像
   docker image ls
   # 列表中出现了类似如以下一条信息,表示 ROS 拉取成功 :
   ryuichiueda/ubuntu22.04-ros2   latest    85a433146260   13 months ago   3.8GB

 3  启动 Docker

1. 进入需要与 docker 关联的目录
   cd ~/MyROS2

2. 启动 ROS2 命令行:
   xhost + sudo docker run -it -v$(pwd):/data \
           --device=/dev/dri \
           --group-add video \
           --volume=/tmp/.X11-unix:/tmp/.X11-unix \
           --env="DISPLAY=$DISPLAY" \
           --name=MyROS2 ryuichiueda/ubuntu22.04-ros2 /bin/bash
 
   '参数 -v$(pwd):/data 是指将 ‘当前目录’ 挂载到 ROS2 容器根目录 data 文件夹下,
    可以用来和宿主机进行文件交换'

 4  测试 ROS2 环境

# 启动 ROS2 之后,执行下面的命令,测试 ROS2 环境
  ros2 run turtlesim turtle_teleop_key

  输出结果如下所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/282726.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片

创建一个ArkTS卡片 在已有的应用工程中,创建ArkTS卡片,具体操作方式如下。 创建卡片。 根据实际业务场景,选择一个卡片模板。 在选择卡片的开发语言类型(Language)时,选择ArkTS选项,然后单…

mxxWechatBot微信机器人V2使用教程(图文)最全最详细

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 先看这里 mxxWechatBot功能列表一、前言二、适用人群三、准备工作四、获取账号五、下载资料 六、安装相关软件七、启动客户端八、注入并启动微信九、机器人的基本配置十、自定义接口开发 …

spring核心与思想

spring核心与思想 Spring 是什么?什么是容器?什么是 IoC?传统程序开发传统程序开发的缺陷解决传统开发中的缺陷控制反转式程序开发对⽐总结规律 理解 Spring IoCDI 概念说明 Spring 是什么? Spring 指的是 Spring Framework&…

子网划分问题(实战超详解)_主机分配地址

文章目录: 子网划分的核心思想 第一步,考虑借几位作为子网号 第二步,确定子网的网络地址 第三步,明确网络地址,广播地址,可用IP地址范围 一些可能出现的疑问 实战 题目一 子网划分的核心思想 网络号不变,借用主机号来产生新的网络 划分前的网络:网络号主机号 划分后的网络:原网…

MapboxGL请求加载512尺寸瓦片

作者:yx 文章目录 前言一、关键代码二、完整代码三、结果验证 前言 平常我们使用更多的是256* 256尺寸的瓦片出图,但有的客户需要以512* 512尺寸大小的瓦片出图,对于leaflet可以直接修改tilesize参数为512,例如: 但是…

网络通信-入门1

网口框架 100M 2. 物理层解读 2.1 同步的方法:编码 为了让接收方在没有外部时钟参考的情况也能确定每一位的起始、结束和中间位置,在传输信号时不直接采用二进制编码。在 10BASE-T 的传输方式中采用曼彻斯特编码,在 100BASE-T 中则采用 4B/…

rime中州韵 easyEnglish输入法

根据前面的几个自定义配置的练手,想必大家已经熟悉了所谓的 程序文件夹,用户文件夹,custom.yam 文档这几个概念了。在接下来的自定义配置讲述中,将默认大家是懂得所做的修改应该在哪个文件中进行的,讲述的速度将会有所加快。 今天…

基于QT开发的温室气体数据记录软件

1、概述 温室气体分析仪数据记录软件用于实现温室气体分析仪数据的获取与存储,阀箱数据的获取与存储、冷阱数据的获取与存储、采样单元数据的获取与存储、阀箱和采样单元的远程操作以及系统功能的管理。其主操作界面如下: 上述软件界面分为2各区域&…

数据结构与算法教程,数据结构C语言版教程!(第二部分、线性表详解:数据结构线性表10分钟入门)二

第二部分、线性表详解:数据结构线性表10分钟入门 线性表,数据结构中最简单的一种存储结构,专门用于存储逻辑关系为"一对一"的数据。 线性表,基于数据在实际物理空间中的存储状态,又可细分为顺序表&#xff…

使用anaconda创建爬虫spyder工程

1.由于每个工程使用的环境都可能不一样,因此一个好的习惯就是不同的工程都创建属于自己的环境,在anaconda中默认的环境是base,我们现在来创建一个名为spyder的环境,专门用于爬虫工程: //括号中名字,代表当…

shell编程一

shell 定义 Shell 也是一种程序设计语言,它有变量,关键字,各种控制语句,有自己的语法结构,利用shell程序设计语 可以编写功能强、代码简短的程序 #! Shebang 定义解释器 shell的分类和切换 # cat /etc/shells /bin/sh…

ZYNQ 7020 之 FPGA知识点重塑笔记一——串口通信

目录 一:串口通信简介 二:三种常见的数据通信方式—RS232串口通信 2.1 实验任务 2.2 串口接收模块的设计 2.2.1 代码设计 2.3 串口发送模块的设计 2.3.1 代码设计 2.4 顶层模块编写 2.4.1 代码设计 2.4.2 仿真验证代码 2.4.3 仿真结果 2.4.4…

门控循环单元(GRU)-多输入回归预测

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、部分程序: 四、全部代码数据分享: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译…

HR-net学习与实现

这里会用到预训练模型所以先了解一下预训练是什么以及它的作用是什么,详细内容可以参考教程 1.预训练是什么 深入理解:什么是预训练?预训练有什么作用?预训练和训练的本质区别???-CSDN博客 预…

机器学习、人工智能、深度学习的关系

人工智能(Artificial Intelligence,AI) 人工智能范围很广,它是一门新的科学与工程,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的技术科学,研究内容涵盖语音识别、图像识别、自然语言处理、智能搜索和…

【node-express】在commonjs的项目中使用esm和ts开发的sdk

在commonjs的项目中使用esm和ts开发的sdk 效果实现步骤 效果 在一些demo中, 大部分代码是commonjs规范开发的,但是要用到的sdk是ts开发的并且仅支持esm, 又不想配置很复杂的工程项目,可以这么做。如果你有更好的建议,希望能得到你…

系统账号注册

登录/注册地址:https://id.sf.163.com/login?hshufanqz&tshufanqz&localezh_CN&referrerhttps%3A%2F%2Fcommunity.codewave.163.com%2Frest%2Fcommunity%2Flogin注册成功并登录后,即可进入设计器中。低代码开发者可在设计器中按需要搭建一个…

List集合格式转换

最近遇到一个任务: 需要把A集合数据转成 B集合的形式: A集合: B集合: 代码: package com.example.juc.test;import com.example.juc.entity.Ld; import com.example.juc.entity.Student;import java.lang.reflect.F…

Vue-Vben-Admin:打造高效中大型项目后台解决方案

Vue-Vben-Admin:打造高效中大型项目后台解决方案 摘要: Vue-Vben-Admin是一个基于Vue3.0、Vite、Ant-Design-Vue和TypeScript的开源项目,旨在为开发中大型项目提供一站式的解决方案。它涵盖了组件封装、实用工具、钩子函数、动态菜单、权限验…

conda环境下face_alignment.LandmarksType._2D AttributeError: _2D解决方法

1 问题描述 运行retalking模型时&#xff0c;代码抛出异常&#xff0c;信息如下所示&#xff1a; Traceback (most recent call last):File "D:/ml/video-retalking/inference.py", line 345, in <module>main()File "D:/ml/video-retalking/inference.…