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

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

默认电脑已经安装了docker,没安装看这篇文章Docker 安装 (完整详细版)

ROS和docker各种结合看官方文档 dockerTutorials
在OSRF中拉取想要的 ROS 版本 docker 镜像
网址为 拉取命令在这里
我是安装noetic版本,因为这个兼容比较多现有的工程

docker pull osrf/ros:noetic-desktop-full

拉取完后创建容器,但是为了能在docker中能打开窗口,将使用以下参数,只需要修改名字即可,your_name 改成你想要的名字,必须英文
如果想远程部署的,具体参数看这个链接Using GUI’s with Docker

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

这个时候必然会报错,上步的目的是为了创建有对应参数的容器,
错误内容正常应该为

Authorization required, but no authorization protocol specified
could not connect to display :1
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

然后

docker ps -a

查看刚刚创建的容器的 id
运行下面这句,把 $containerId 替换为容器的 id

xhost +local:`docker inspect --format='{{ .Config.Hostname }}' $containerId`

提示信息出现这个就是成功了

non-network local connections being added to access control list

然后就可以运行容器啦,$containerId 换成容器名字也可以

docker start $containerId

然后再运行以下进入容器

docker exec -it your_name /bin/bash

此时进入容器了,再在容器里面运行这句

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

然后

source ~/.bashrc 

这时候再开2个终端,每个终端都使用以下命令进入

docker exec -it your_name /bin/bash

然后把下面的3行指令按顺序分别执行在3个终端中

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

能用键盘控制就成功了

使用以下命令退出容器
exit

每次进入容器前都需要先启动容器

docker start $containerId

相关文章:

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

默认电脑已经安装了docker,没安装看这篇文章Docker 安装 (完整详细版) ROS和docker各种结合看官方文档 dockerTutorials 在OSRF中拉取想要的 ROS 版本 docker 镜像 网址为 拉取命令在这里 我是安装noetic版本,因为这个兼容比较多现有的工程 docker pul…...

如何解决ssh登录报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

原因: 当两个设备第一次进行链接时,会在~/.ssh/konwn_hosts 中将被连接设备的公钥信息进行保存,后续再次链接时OpenSSH会核对公钥来进行一个简单的验证 然而有时候被链接的那台设备系统被重装、IP 冲突等原因,会导致公钥信息没…...

Mysql5.7安装配置详细图文教程(msi版本)

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...

运行dl4j-examples的主要一些依赖

直接从git获取dl4j-examples后本地无法用IJ直接运行样例&#xff0c;于是自己新建了一个springboot项目&#xff0c;主要使用了下面的一些依赖用来运行官方样例 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache…...

PSRAM伪静态RAM芯片APS6404L

PSRAM伪静态RAM能结合SRAM和DRAM的优点&#xff0c;即容量大,又接口驱动简单&#xff0c;PSRAM接口和SRAM一样简单&#xff0c;驱动简单&#xff1b;而存储形式则和DRAM一样&#xff0c;容量远大于SRAM&#xff0c;介于SRAM和DRAM之间。 PSRAM厂家也有很多,以AP用的最多。最常…...

低级语言汇编真的各个面不如汇编吗?

今日话题&#xff0c;低级语言汇编真的各个面不如C语言吗&#xff1f;C语言因其可移植性、开发效率和可读性而在各领域广泛使用&#xff0c;市场占有率极高。然而&#xff0c;汇编语言在特定场景下仍然具有独特优势&#xff0c;稳固地占据一席之地。如果你对这方面感兴趣&#…...

PyG edge index 转换回 邻接矩阵

PyG的edge index形式是 [ ( n o d e 1 , n o d e 2 ) , ( n o d e 1 , n o d e 3 ) . . . ] [(node_1,node_2), (node_1, node_3)...] [(node1​,node2​),(node1​,node3​)...]这种edge pair。 naive 直接for循环&#xff0c;吧edge index里面的位置填充1&#xff1a; imp…...

JavaSE19——file文件类

file文件类 在 Java File 类是 java.io 包中唯一代表磁盘文件本身的对象 File 类不能访问文件内容本身&#xff0c;如果需要访问文件内容本身&#xff0c;则需要使用输入/输出流。 File(String path)&#xff1a;如果 path 是实际存在的路径&#xff0c;则该 File 对象表示的…...

mongodb记录

MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装&#xff0c;而是需要自己手动安装。 mongodump 不是内部或外部命令&#xff0c;也不是可运行的程序 下载mongodb命令工具 下载zip格式&#xff0c;解压后把bin目录下的文件全部复制粘贴到你MongoDB安…...

Go语言:数组和切片

Python中的数组(这里指的是List类型)及其切片Slice基本相同&#xff0c;但在Go语言中这两者差别很大。 1 数组 Go语言中的数组(Array)存放的是长度固定、类型固定并且存储位置连续的一系列元素。 1.1 声明 Go语言中数组的声明方式如下&#xff1a; arr1 : [5]string{"…...

OPENCV 闭运算实验示例代码morphologyEx()函数

void CrelaxMyFriendDlg::OnBnClickedOk() {hdc this->GetDC()->GetSafeHdc();// TODO: 在此添加控件通知处理程序代码string imAddr "c:/Users/actorsun/Pictures/";string imAddr1 imAddr"rice.png";Mat relax, positive;relax imread(imAddr1…...

UE4 体积云制作 学习笔记

首先Noise本来就是一张噪点图 云的扰动不能太大&#xff0c;将Scale调小&#xff0c;并将InputMin调整为0 形成这样一张扰动图 扰动需要根据材质在世界的位置进行调整&#xff0c;所以Position需要加上WorldPosition 材质在不同世界位置&#xff0c;噪点不同 除以一个数&#…...

visual studio编译QtAV

1.1 依赖环境 第一种方法: 下载编译好的ffmpeg-3.4.2-win64-dev和ffmpeg-3.4.2-win64-shared,解压得到 D:\qt-workspace\ffmpeg-3.4.2-win64-dev D:\qt-workspace\ffmpeg-3.4.2-win64-shared 第二种方法: QtAV官方有提供编译好的依赖库 QtAV-depends-windows-x86%2Bx64.7…...

喜报!CACTER邮件安全网关荣获2023鲲鹏应用创新大赛广东赛区三等奖

近期&#xff0c;2023鲲鹏应用创新大赛广东赛区暨广东省信息技术应用创新产业联盟创新大赛圆满落幕&#xff0c;Coremail凭借“基于鲲鹏CPU的邮件网关一体机解决方案”&#xff0c;荣获“金融行业方向”三等奖。 ​ 鲲鹏凌粤 展翅湾区 本届大赛广东区域赛以“鲲鹏凌粤 展翅湾…...

Spark On Hive原理和配置

目录 一、Spark On Hive原理 &#xff08;1&#xff09;为什么要让Spark On Hive&#xff1f; 二、MySQL安装配置&#xff08;root用户&#xff09; &#xff08;1&#xff09;安装MySQL &#xff08;2&#xff09;启动MySQL设置开机启动 &#xff08;3&#xff09;修改MySQL…...

驱动第十天

...

工作中常用的git命令,千万不能忘

1、设置当前分支为默认分支: git branch –set-upstream-toorigin/master 2、To push the current branch and set the remote as upstream, use: git push --set-upstream origin eds_enhancement 3、同步远程分支 git remote update --prune [remote] 4、Remo…...

计组之存储系统

存储器概述 分类 1.按在计算机中的作用&#xff08;层次&#xff09;分类 主存储器。CPU可以直接随机地对其进行访问&#xff0c;也可以和高速缓冲存储器&#xff08;Cache)及辅助存储器交换数据。辅助存储器。辅存的内容需要调入主存后才能被CPU访问。高速缓冲存储器。位于…...

【Jenkins】新建任务FAQ

问题1. 源码管理处填入Repository URL&#xff0c;报错&#xff1a;无法连接仓库&#xff1a;Error performing git command: ls-remote -h https://github.com/txy2023/GolangLearning.git HEAD 原因&#xff1a; jenkins全局工具配置里默认没有添加git的路径&#xff0c;如果…...

生产环境使用boost::fiber

简介 boost::fiber是一类用户级线程&#xff0c;也就是纤程。其提供的例子与实际生产环境相距较远&#xff0c;本文将对其进行一定的改造&#xff0c;将其能够投入到生产环境。 同时由于纤程是具有传染性的&#xff0c;使用纤程的代码里也全部要用纤程封装&#xff0c;本文将对…...

在PC上畅玩Switch游戏:Ryujinx模拟器完全指南

在PC上畅玩Switch游戏&#xff1a;Ryujinx模拟器完全指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说&#xff1a;旷野之息》的震撼冒险&#xff0c;或…...

FPGA开发实战:GT收发器配置避坑指南(附8B10B与64B66B编码对比)

FPGA开发实战&#xff1a;GT收发器配置避坑指南&#xff08;附8B10B与64B66B编码对比&#xff09; 在高速数字电路设计中&#xff0c;GT收发器作为FPGA与外部世界的高速数据通道&#xff0c;其配置的精确性直接决定了系统稳定性。本文将深入探讨GT收发器配置中的关键细节&#…...

Matlab与VeriStand无缝集成:开发环境配置全攻略

1. 环境准备&#xff1a;软件安装与版本匹配 搞过Matlab和VeriStand集成的朋友都知道&#xff0c;最头疼的不是写代码&#xff0c;而是环境配置。我当年第一次尝试时&#xff0c;光软件版本兼容性问题就折腾了两天。这里分享几个血泪教训&#xff1a; 首先Matlab和VeriStand的版…...

MySQL 数据恢复利器:my2sql 实战解析与应用场景

1. my2sql 是什么&#xff1f;为什么你需要它&#xff1f; 如果你负责过MySQL数据库运维&#xff0c;肯定遇到过这样的场景&#xff1a;开发同事不小心执行了DELETE FROM users WHERE id1&#xff0c;然后慌慌张张跑过来问你能不能恢复数据。这时候如果只有全量备份binlog的传统…...

LightOnOCR-2-1B部署指南:快速搭建你的私有OCR识别服务

LightOnOCR-2-1B部署指南&#xff1a;快速搭建你的私有OCR识别服务 1. 认识LightOnOCR-2-1B 你是否遇到过需要从大量图片中提取文字的场景&#xff1f;比如扫描的合同、拍照的会议记录&#xff0c;或者历史档案数字化&#xff1f;传统的OCR解决方案要么识别准确率不高&#x…...

Qwen3-TTS声音克隆入门指南:上传音频→选择语种→生成自然语音三步走

Qwen3-TTS声音克隆入门指南&#xff1a;上传音频→选择语种→生成自然语音三步走 想不想让AI用你自己的声音说话&#xff1f;或者&#xff0c;想不想用一段短短的录音&#xff0c;就克隆出能说十几种语言的“数字分身”&#xff1f;今天&#xff0c;我们就来手把手教你&#x…...

LangFlow小白也能玩转AI:无需代码基础,快速构建智能应用

LangFlow小白也能玩转AI&#xff1a;无需代码基础&#xff0c;快速构建智能应用 1. 什么是LangFlow&#xff1f; LangFlow是一款让普通人也能轻松玩转AI的神奇工具。想象一下&#xff0c;如果你能用拖拽的方式&#xff0c;像搭积木一样构建AI应用&#xff0c;是不是很酷&…...

Kronos金融市场基础模型:从技术原理到量化交易系统构建

Kronos金融市场基础模型&#xff1a;从技术原理到量化交易系统构建 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 金融市场的复杂性和波动性一直是投资者…...

Pixel Mind Decoder 效果对比视频:同一段文本在不同模型下的情绪解析差异

Pixel Mind Decoder 效果对比视频&#xff1a;同一段文本在不同模型下的情绪解析差异 1. 情绪解析技术的新突破 在自然语言处理领域&#xff0c;情绪识别一直是个充满挑战的任务。传统模型往往只能识别基本的喜怒哀乐&#xff0c;而人类情绪实际上要复杂得多。Pixel Mind Dec…...

Nunchaku-flux-1-dev极限测试:生成超高清与超大宽幅图像的效果边界

Nunchaku-flux-1-dev极限测试&#xff1a;生成超高清与超大宽幅图像的效果边界 最近在尝试一些新的图像生成模型&#xff0c;发现Nunchaku-flux-1-dev这个版本在社区里讨论度挺高&#xff0c;尤其是关于它处理高分辨率图像的能力。很多人都在问&#xff0c;这个模型到底能生成…...