ROS从入门到精通4-2:Docker安装ROS、可视化仿真与终端复用

news2025/1/17 5:55:41

目录

  • 0 专栏介绍
  • 1 Docker安装ROS
  • 2 Docker可视化仿真
    • 2.1 显示配置
    • 2.2 启动容器
  • 3 终端复用工具
    • 3.1 `session`操作
    • 3.2 `window`操作
    • 3.3 `pane`操作
    • 3.4 其他操作

0 专栏介绍

本专栏旨在通过对ROS的系统学习,掌握ROS底层基本分布式原理,并具有机器人建模和应用ROS进行实际项目的开发和调试的工程能力。

🚀详情:《ROS从入门到精通》


1 Docker安装ROS

拉取ROS的官方镜像并查看

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

在这里插入图片描述
根据镜像创建容器

docker run -it osrf/ros:noetic-desktop-full bash

在容器内运行

roscore

即可启动ROS节点管理器

在这里插入图片描述

2 Docker可视化仿真

2.1 显示配置

运行

xhost +

使其他主机能够访问本机的X Server,若显示

access control disabled, clients can connect from any host

表示成功。当用户从host A登录到host B时,作为应用程序,host A是客户侧;作为图形界面而言,由于在host A上显示,需要使用host AX Server,此时host A是服务侧,因此需要在host A上开启其他host的访问权限。接着,Docker通过映射将对X Server的请求透传到主机端DISPALYDISPLAY对应主机端的显示接口,完成显示。关于xhost有如下的常用命令

  • xhost +:使所有用户都能访问X Server
  • xhost + ip:使ip上的用户能够访问X Server
  • xhost + nis:user@domain:使domain上的nis用户能够访问X Server
  • xhost + inet:user@domain:使domain上的inet用户能够访问X Server

2.2 启动容器

启动带GUI环境变量的Docker容器,配置了从容器到主机的显示映射

docker run -it \
    --env="DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    osrf/ros:noetic-desktop-full \
    /bin/bash

~/.bashrc中配置ROS的环境变量

source /opt/ros/noetic/setup.bash

接着通过

docker exec -it <container_name> /bin/bash

再启动两个连接该容器的终端,启动乌龟仿真器

  • 终端1
    rosrun turtlesim turtlesim_node
    
  • 终端2
    rosrun turtlesim turtle_teleop_key
    

即可操控乌龟运动

在这里插入图片描述
RvizGazebo也是同样的显示方法

在这里插入图片描述

3 终端复用工具

在运行容器时,可能需要再启动多个终端进入容器操作,这在远程连接等工作环境下并不方便,因此Docker需要配合终端复用工具Tmux使用

在这里插入图片描述

Tmux具有以下优势:

  • 会话持久性Tmux允许创建一个持久性会话,即使在断开连接后也可以重新连接到该会话。这对于长时间运行的任务或需要与容器进行交互的任务非常有用。

  • 分屏和窗格管理Tmux允许将终端窗口分割为多个窗格,每个窗格可以显示不同的命令行界面,而无需打开多个终端。

  • 快捷键和自定义配置Tmux提供了丰富的快捷键和配置选项,也可以自定义会话的行为和外观,以提高工作效率。

Tmux的基本概念如下所示:

  • session:会话(任务)
  • window:窗口
  • pane:窗格

一个Tmux会话可以包含多个窗口window。每个窗口可以分割为多个窗格pane,每个窗格可以显示不同的终端界面。因此,session包含多个 window,而每个 window可以包含多个pane。通过合理组织和使用sessionwindowpane,可以更有效地管理和控制不同任务和终端会话,提高工作效率和多任务处理能力

可以通过

sudo apt install tmux

安装Tmux

3.1 session操作

  • 启动

    新建session,自动生成一个id0session

    tmux
    

    若希望显式地说明session的名字,可以使用以下指令,这个名字可以用于解绑后快速的重新进入该session

    tmux new -s your-session-name
    
  • 分离
    使用快捷键ctrl+b d,会将当前session与终端分离,session转到后台执行:

  • 杀死

    tmux kill-session -t your-session-name
    
  • 解绑
    假设现在正处于session1,使用ctrl+b d分离操作就是将session1进行解绑

  • 绑定

    tmux attach -t your-session-name
    
  • 切换

    tmux switch -t your-session-name
    
  • 重命名

    tmux rename-session -t old-session new-session
    

3.2 window操作

  • 新建

    tmux new-window -n your-window-name
    
  • 切换

    快捷键

    • ctrl+b c: 创建一个新窗口(状态栏会显示多个窗口的信息)
    • ctrl+b p: 切换到上一个窗口(按照状态栏的顺序)
    • ctrl+b n: 切换到下一个窗口
    • ctrl+b w: 从列表中选择窗口
  • 重命名

    tmux rename-window -t old_name new_name
    

3.3 pane操作

  • 划分

    # 划分为上下两个窗格
    tmux split-window
    
    # 划分左右两个窗格
    tmux split-window -h
    

    快捷键

    左右划分:ctrl+b %
    上下划分:ctrl+b "
    
  • 光标位置

    快捷键:ctrl+b arrow-key(方向键)

  • 窗格移动

    # 当前窗格往上移
    tmux swap-pane -U
    
    # 当前窗格往下移
    tmux swap-pane -D
    
  • 关闭窗格

    快捷键:ctrl+d

3.4 其他操作

  • 列出所有快捷键,及其对应的Tmux命令

    tmux list-keys
    
  • 列出所有Tmux命令及其参数

    tmux list-commands
    
  • 列出当前所有Tmux会话的信息

    tmux info
    
  • Tmux上下翻屏

    快捷键:ctrl+b [ ,就可以通过方向键上下移动实现上下翻页


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《机器人原理与技术》
  • 《机器学习强基计划》
  • 《计算机视觉教程》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

Outlook邮箱后缀如何修改?怎么添加后缀?

Outlook邮箱后缀是什么&#xff1f;Outlook邮箱后缀可以改吗&#xff1f; Outlook邮箱广泛应用于企业和个人用户之间。在使用过程中&#xff0c;有时我们可能会因为某些原因需要修改Outlook邮箱后缀。那么&#xff0c;Outlook邮箱后缀如何修改呢&#xff1f;下面&#xff0c;A…

应用程序并行配置不正确怎么办?

当出现应用程序的并行配置不正确的问题时&#xff0c;通常也无法打开目标应用程序了&#xff0c;应该如何解决此问题呢&#xff1f;下面我们一起来了解一下。 1、重装出现问题的应用 如果是某个应用程序出现问题&#xff0c;那么卸载它再进行重装是很好的方法。 具体步骤&…

手写分布式配置中心(三)增加实时刷新功能(短轮询)

要实现配置自动实时刷新&#xff0c;需要改造之前的代码。代码在https://gitee.com/summer-cat001/config-center​​​​​​​ 服务端改造 服务端增加一个版本号version&#xff0c;新增配置的时候为1&#xff0c;每次更新配置就加1。 Overridepublic long insertConfigDO(…

技术指标和振荡器大全(二)

原文&#xff1a;stockcharts.com/school/doku.php?idchart_school:technical_indicators 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 成交量加权平均价格&#xff08;VWAP&#xff09; 目录 成交量加权平均价格&#xff08;VWAP&#xff09; 介绍 Tick 与 Minu…

项目中spring security与jwt.腾讯面试分享

写这篇文章是为了记录我面试pcg时平时没有留意或者钻研的地方。 面试是根据项目问的问题&#xff1a; 为什么采用jwt存储token&#xff1f; 我的项目是微服务项目&#xff0c;里面部署了资源服务和认证服务&#xff0c;这里选择jwt作为token一方面是可以存储用户的信息&#…

【DPDK】基于dpdk实现用户态UDP网络协议栈

文章目录 一.背景及导言二.协议栈架构设计1. 数据包接收和发送引擎2. 协议解析3. 数据包处理逻辑 三.网络函数编写1.socket2.bind3.recvfrom4.sendto5.close 四.总结 一.背景及导言 在当今数字化的世界中&#xff0c;网络通信的高性能和低延迟对于许多应用至关重要。而用户态网…

C++指针(四)

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09; 本篇博客是介绍函数指针、函数指针数组、回调函数、指针函数的。 点赞破六…

文件批量重命名神器:按长度与区间智能管理,让文件整理更高效!

在数字化时代&#xff0c;电脑中堆积如山的文件常常让我们头疼不已。命名不规范、杂乱无章的文件不仅占用了大量的存储空间&#xff0c;更在关键时刻让我们难以迅速找到所需内容。现在&#xff0c;有了这款文件批量改名神器&#xff0c;一切烦恼将烟消云散&#xff01; 首先&a…

时隔n年再度会看Vue,Git

时隔n年再度会看Vue,Git 曾经沧海难为水&#xff0c;除却巫山不是云。不知道这句话用在这里合不合适&#xff0c;好多东西在记忆中都淡化了。但是互联网确是有记忆的。研究以前项目的时候&#xff0c;翻看到gitee码云上托管的项目&#xff0c;就像是自己的孩子重新又回来了一样…

观其大略之HybridCLR学习笔记

问题背景 1 现有热更方案的开发效率、性能没有到达极限&#xff0c;还有提升的空间 2 ios多平台政策导致热更新受限问题&#xff0c;ios禁止jit。根据我查找的资料&#xff0c;ios的代码段启动的时候就确定了&#xff0c;不能增加新的代码段。IOS封了内存&#xff08;或者堆&…

如何摆脱水印困扰?三款神器助您清爽无烦恼!

水印常常成为我们图片处理的一大难题&#xff0c;让我们苦恼不已。那么&#xff0c;如何能轻松摆脱这些烦人的水印呢&#xff1f;本文将向您推荐三款强大的去水印工具&#xff0c;让您清爽无烦恼&#xff0c;图片重焕光彩&#xff01; 1. 水印云 如何快速而准确地去除各类水印…

Stable Diffusion 解析:探寻 AI 绘画背后的科技神秘

AI 绘画发展史 在谈论 Stable Diffusion 之前&#xff0c;有必要先了解 AI 绘画的发展历程。 早在 2012 年&#xff0c;华人科学家吴恩达领导的团队训练出了当时世界上最大的深度学习网络。这个网络能够自主学习识别猫等物体&#xff0c;并在短短三天时间内绘制出了一张模糊但…

【RK3288 Android6, T8PRO 快捷按键 gpio 配置上拉输入】

文章目录 【RK3288 Android6&#xff0c; T8PRO 快捷按键 gpio 配置上拉输入】需求开发过程尝试找到没有用的上拉gpio尝试修改pwm1的gpio的默认上拉模式 改动 【RK3288 Android6&#xff0c; T8PRO 快捷按键 gpio 配置上拉输入】 需求 T8pro想要模仿T10 的 快捷按键&#xff…

嵌入式开发的常用软件、学习资源网站推荐

1、软件推荐 1.1、文本编辑软件 ——Notepad 1、适合编写和查看文本文件&#xff0c;也可以安装插件来查看二进制文件、对比文件 2、参考博客&#xff1a;《Notepad实用小技巧》&#xff1b; 1.2、PDF文件阅读软件——福昕PDF阅读器 福昕PDF阅读器&#xff0c;在官网就可以下载…

电商店群系统的搭建需要用到的官方接口如何申请?

电商电子商务企业往往都会需要再很多平台上面铺货&#xff0c;上传商品。 高科技的今天&#xff0c;我们已经不需要手动一个个品去上传了。那通过官方接口&#xff0c;如何实现快速铺货呢&#xff1f; 1688官方开放平台的API接口类型众多&#xff0c;并不是所有的企业都能申请…

springboot3.x集成nacos踩坑,并实现多环境配置

一、nacos安装部署 springboot3.x集成Nacos首先需要将Nacos从1.x升级到2.x&#xff0c;建议直接安装2.x版本&#xff0c;手动将1.x的配置信息迁移到2.x中&#xff0c;先并行一段时间&#xff0c;待全部迁移完成稳定运行之后再停掉1.x&#xff0c;升级和安装、操作请查看官方文…

HBuilder X删除之前登录的账号

打开目录 C:\Users\Administrator\AppData\Roaming\HBuilder X 用 HBuilder X 打开文件 prefs 将账号删除 保存文件 重启HBuilder X即可

开发手札:unity2022+vscode1.87联合开发

不得不说&#xff0c;时间的力量是很强大的&#xff0c;同时熵增理论适用于任何地方。 在现在的公司干了五年多了&#xff0c;五年前配置的内网开发机&#xff0c;i7 870016g1t hddgtx1080已经卡爆了&#xff0c;特别是硬盘掉速严重&#xff0c;开机开软件没有一两分钟都…

班主任管理班级的策略与措施

在教育的世界里&#xff0c;班主任不仅是知识的传递者&#xff0c;更是学生心灵的引路人。那么&#xff0c;如何在这个充满挑战和机遇的岗位上&#xff0c;舞动管理的翅膀&#xff0c;让班级飞得更高更远呢&#xff1f; 深入了解学生。这不仅仅是了解学生的姓名、成绩&#xff…

网络编程:TCP机械臂,UDP文件传输

1.TCP机械臂测试 程序代码&#xff1a; 1 #include<myhead.h>2 #define SER_IP "192.168.126.112" //服务器IP3 #define SER_PORT 8888 //服务器端口号4 5 #define CLI_IP "192.168.126.121" //客户端IP6 #define CLI_PORT 9999 //…