Ubuntu20.04+Docker+ROS Noetic 可视化容器管理工具Portainer

news2024/11/15 17:20:01

1. 安装docker

官网教学安装网址:Install Docker Engine on Ubuntu | Docker Documentation

2. 安装noetic镜像

ros镜像网址

https://hub.docker.com/r/osrf/ros

https://hub.docker.com/r/osrf/ros/tags

sudo docker pull osrf/ros:noetic-desktop-full

3. 创建容器

3.1 宿主机开启xhost,使得docker里面可视化界面(vscode rviz)

xhost(参数)
//+:关闭访问控制,允许任何主机访问本地的X服务器;
//-:打开访问控制,仅允许授权清单中的主机访问本地的X服务器。

 注意:每次重启容器,主机都得执行一遍,否则容器内可视化报错。

3.2 创建宿主机数据文件夹,作为与容器的数据容器卷

3.3 创建容器,挂载数据容器卷

创建容器

sudo docker run -it -v /home/nuc/noetic_container_data_1:/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix  --env="DISPLAY=$DISPLAY" --env="QT_X11_NO_MITSHM=1" --name=noetic_ros_2 osrf/ros:noetic-desktop-full  /bin/bash

必须加上:

--env="QT_X11_NO_MITSHM=1"

否则docker内部无法可视化(主机必须先执行 xhost + 命令)

查看容器
 

sudo docker ps //查看正在运行的容器

sudo docker ps -a //查看所有的容器

测试宿主机与容器数据是否同步

  • 初始状态 

  • 主机创建一个文件: 

容器出现该文件:

  • 容器创建一个文件 

主机出现该文件: 

3.4 退出容器及再次进入该容器

退出

查看容器ID

再次进入 

sudo docker start -ia [container_id]

关闭正在运行的容器

sudo docker stop id

4. ROS Noetic 测试

4.1 在容器内开终端(错误,环境没有同步)

sudo docker exec -it your-docker-id /bin/bash

4.2 利用tmux

(43条消息) tmux常用命令及快捷方式_放风筝的猪的博客-CSDN博客

安装

sudo apt-get update
sudo apt install tmux

使用tmux分屏

tmux

然后先按ctrl+b,紧接着按c,下方会出现两个bash

先按ctrl+b,紧接着按p,返回上一个bash;

先按ctrl+b,紧接着按n,返回下一个bash;

左边打开roscore,右边终端打开rviz

#left
roscore

#right
rviz

 关闭tmux的一个窗口

先按ctrl+b,紧接着按x,再按y;

4.2 查看小乌龟

按ctrl+b,紧接着按c,一共建3个窗口

第一个窗口输入

roscore

第二个窗口输入

rosrun turtlesim turtlesim_node

 第三个窗口输入

rosrun turtlesim turtle_teleop_key

然后就可以通过方向按键控制小乌龟

安装可视化容器管理工具Portainer 

sudo docker pull portainer/portainer

sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer

打开IE浏览器,输入ip:9000端口,新建账户和密码后,即可进入如下docker管理界面,有了该工具,可以省去我们再次学习docker相关的控制台命令,在可视化界面查看已安装的docker容器和运行中的docker镜像。

 至此安装成功!

参考:

Ubuntu20.04+Docker+ROS Noetic+LOAM环境配置

Ubuntu20.04如何搭建ROS开发环境_ubuntu20.04 ros docker_weixin_39563394的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效提升控制效率 | 基于ACM32 MCU的LED灯箱控制器方案

前言 LED灯箱上各种文字、图案有序跳跃、交替辉映,产生强烈的视觉冲击力,被广泛应用于商场、美容美发、宾馆、娱乐场所等地方。 锁存器的工作原理 在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其…

vant省市区引入@vant/area-data官方数据报错问题解决

我们依照官方流程引入数据 yarn add vant/area-dataimport { areaList } from vant/area-data;Page({data: {areaList,}, });我们正常引入后会发现报错为 module ‘node_File/area-data/dist/data1.js’ is not defined 按照网上的vant-weapp的Area 省市区选择组件无法显示进行…

Segmentation fault (core dumped)问题解决

torch:1.10.0cu111 pandas:1.3.3 报错: 定位: df pd.DataFrame(columns[epoch, model.sigma1.cpu().detach().numpy(), model.sigma2.cpu().detach().numpy(),model.sigma3.cpu().detach().numpy(),iter,avg_ssim, avg_psnr,model.current…

LeetCode 75 —— 98. 验证二叉搜索树

LeetCode 75 —— 98. 验证二叉搜索树 一、题目描述: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子…

【MYSQL高级】Mysql的SQL性能分析【借助EXPLAIN分析】

性能分析 要说sql有问题,需要拿出证据,因此需要性能分析 Mysql查询优化器(Mysql Query Optimizer) Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息&#xf…

Mali Offline Compiler - 官方视频教学 - 笔录

文章目录 目的Mali Offline Compiler 使用实例视频分析 shadermalioc 命令制定你想要分析的 shader制定你想要分析的着色器对应的 GPU实例解析内容硬件结构 & 驱动 & Shader 类型信息寄存器、是否堆溢出、16-bit 算术占比寄存器的使用量减少浮点精度优化堆溢出与否16-b…

基于Java+vue前后端分离学习交流论坛设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

easyExcel实现动态导出需要的字段列

easyExcel实现动态导出需要的字段列 实体概况 package excel;import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.…

C++学习笔记-第11单元 标准模板库介绍

第11单元 标准模板库介绍 文章目录 第11单元 标准模板库介绍单元导读11.1 标准模板库(STL)基础11.2 STL容器简介11.3 STL迭代器简介11.3.1 使用迭代器访问容器中的元素11.3.2 迭代器类型11.3.3 迭代器支持的运算符操作 11.4 顺序容器11.4.1 顺序容器的逻辑结构11.4.2 代码展示s…

Vue组件库Element-快速入门

目录 什么是Element 快速入门 什么是Element Element:是饿了么团队研发的,一套为开发者、设计师和产品经理准备的基于Vue2.0的桌面端组件库组件:组成网页的部件,例如超链接、按钮、图片、表单、表格、分页条等官网:…

avoidLabelOverlap无效果,echarts环形标签重叠,echarts数据重叠

在开发echarts环形图时,会出现数据重叠的现象.比如下面这情况.不可能为了数据将环形图变得太小,这样环形图太小也不美观.后来在官网上查找有一个avoidLabelOverlap属性,结果加上去后也没啥用 解决方法: 除了加上面:avoidLabelOverlap:true以外,还要加另外一个属性:minAngle:1…

win10系统中Pensieve(Sigcomm17)算法部署与运行

win10系统中Pensieve算法部署与运行 一、环境配置1、Anaconda环境配置2、Pycharm安装3、Pensieve安装包配置4、Pensieve数据集生成5、Pensieve代码运行6、Pensieve代码修改 一、环境配置 1、Anaconda环境配置 下载并且安装 Anaconda 官网下载地址:https://www.ana…

【Java基础教程】(六)程序概念篇 · 末:全面讲解Java方法的定义及应用、方法重载及递归~

Java基础教程之程序概念 末 本节学习目标1️⃣ 方法的定义与使用1.1 概念🔍 在编写代码时,怎么判断什么情况下应该定义方法? 1.2 方法重载1.3 方法递归 🌾 总结 本节学习目标 掌握Java中方法的定义结构、方法重载的概念与应用;…

EulerOS2.0SP10操作系统Esxi虚拟机安装手记

本文记录了在 Esxi7.0平台上新建虚拟机安装华为EulerOS2.0SP10国产操作系统的过程,仅供参考。 一、新建虚拟机 1、在VCenter上选中集群,右键选择新建虚拟机 2、在新建虚拟机视图点NEXT 3、输入虚拟机名称(自定义),选…

Apikit 自学日记:如何引用全局变量

引用全局变量 一、什么是全局变量 全局变量可以在测试过程中动态取值以及赋值,比如:使用登录接口获取 token,将 token 值赋值给自定义全局变量 global_token,然后在另一个需要使用该token的接口中,使用 {{global_toke…

css,less,scss中的深度选择器,结合elementUi使用

css中深度选择器用到的是 >>>加类名 可以很方便的找到自己想要修改的样式 lees中用到 /deep/ 加类名 scss中用到::v-deep 加类名

【软件工具使用体验NFC】读取nfc里的内容和写入nfc的内容 tagInfo和TagWritter两款软件的使用和下载

教程目录 教程简介所需环境和版本资源免费下载执行过程tagInfo的使用:tagWritter的使用:my dataset的解释: 结束语 教程简介 这篇内容主要是前段时间开发了一个小程序的时候涉及到了通过小程序读写nfc标签的内容,当时还特地和我们…

特征模型仿真例1:参数辨识

题目 考虑被控对象 G ( s ) 3 s 4 s 4 5 s 3 10 s 2 6 s 4 G(s)\frac{3 s4}{s^{4}5 s^{3}10 s^{2}6 s4} G(s)s45s310s26s43s4​ 和特征模型 y ( k ) ϕ T ( k − 1 ) θ ( k ) y(k)\boldsymbol{\phi}^{\mathrm{T}}(k-1)\boldsymbol{\theta}(k) y(k)ϕT(k−1)θ(k) 其…

谁告诉我这是什么文件,怎么了?活不起了?得靠这个冲业绩?

TIM 从一年前就卸载了,今天整理磁盘才发现还有这么多文件,想着没什么用直接删掉得了,没想到他娘的死活删不掉,好多文件一个一个删才找到这玩意,所有能查找运行程序的地方都找遍了,死活没找到在哪打开了&…

第一章 系统服务监控-SpringBootAdmin

前言 本来想用一节就写完SpringBootAdmin的,但随着研究的深入发现一节应该是不够的,网上的资料也不会非常系统,官网的例子有些已经好几年没更新了,所以接下来还是系统性的来写下吧 第一节 完成基础配置,暴露所有端点…