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

记录 Docker 中安装 ROS2

目录

 1  安装 Docker

 2  安装 ROS2

 3  启动 Docker

 4  测试 ROS2 环境


1  安装 Docker

1. 更新软件包sudo apt updatesudo apt upgrade2. 安装 docker 依赖sudo apt-get install ca-certificates curl gnupg lsb-release3. 添加 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. 安装 dockersudo apt-get install docker-ce docker-ce-cli containerd.io6. 配置用户级sudo usermod -aG docker $USER# 默认情况下,只有 root 用户和 docker 组的用户才能运行 docker 命令。# 可以将当前用户添加到 docker 组,以避免每次使用 docker 时都需要使用 sudo。7. 激活对 docker 组的更改newgrp docker groups8. 测试 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-ros23. 再次查看 docker 中已有的镜像docker image ls# 列表中出现了类似如以下一条信息,表示 ROS 拉取成功 :ryuichiueda/ubuntu22.04-ros2   latest    85a433146260   13 months ago   3.8GB

 3  启动 Docker

1. 进入需要与 docker 关联的目录cd ~/MyROS22. 启动 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

  输出结果如下所示:

相关文章:

  • 深入理解依赖反转原则(DIP)
  • DevOps持续交付之容器化CICD流水线
  • 用IDEA创建/同步到gitee(码云)远程仓库(保姆级详细)
  • 解除mobaxterm会话14个限制
  • C++每日一练(7):爬山
  • 数字孪生在能源电力行业的技术难点和应用场景
  • Flask 日志
  • 第十一章 Stream消息驱动
  • 5个用于构建Web应用程序的Go Web框架
  • 【记录】开始学习网络安全
  • go slice源码探索(切片、copy、扩容)和go编译源码分析
  • SASS循环
  • Qt+Opencv:人脸检测
  • Unity | 快速修复Animation missing错误
  • Android 跨进程之间通信(IPC)方式之ContentProvider
  • 网络传输文件的问题
  • Computed property XXX was assigned to but it has no setter
  • JavaScript异步流程控制的前世今生
  • Java比较器对数组,集合排序
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • mysql_config not found
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • php的插入排序,通过双层for循环
  • Python学习之路16-使用API
  • Spring Boot快速入门(一):Hello Spring Boot
  • ubuntu 下nginx安装 并支持https协议
  • vue 个人积累(使用工具,组件)
  • vue:响应原理
  • 产品三维模型在线预览
  • 程序员该如何有效的找工作?
  • 番外篇1:在Windows环境下安装JDK
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于组件的设计工作流与界面抽象
  • 聚类分析——Kmeans
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 使用 Docker 部署 Spring Boot项目
  • 手写一个CommonJS打包工具(一)
  • 正则表达式-基础知识Review
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $.each()与$(selector).each()
  • (4.10~4.16)
  • (52)只出现一次的数字III
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (论文阅读30/100)Convolutional Pose Machines
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)VC++中ondraw在什么时候调用的
  • (轉貼) UML中文FAQ (OO) (UML)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .net Signalr 使用笔记