VirtualBox+Ubuntu22.10+Docker+ROS2

news2024/10/6 17:03:24

Docker

拉取ros2镜像

docker pull osrf/ros:foxy-desktop

运行

docker run -it --name=ros2 -p 50022:22 osrf/ros:foxy-desktop

进入容器安装组件

apt-get update
apt-get install vim
apt-get install git
apt-get install net-tools
# 安装ssh
apt-get install openssh-server
安装完成之后,还需要配置一下,否则不能正常连接。在容器的终端中输入:
# 修改sshd_config,开放22端口,并允许密码登录
echo "Port 22">>/etc/ssh/sshd_config
echo "PermitRootLogin yes">>/etc/ssh/sshd_config

# 启动ssh服务
service ssh start
# 查看ssh状态
service ssh status

# 进行修改容器的密码,否则之后使用ssh是连接不上的,在容器终端内输入:
# 此处是修改密码的指令
passwd
查看22端口是否处于监听状态。
netstat -ap | grep ssh

下载ssh工具MobaXterm free Xserver and tabbed SSH client for Windows

设置连接

端口为50022,host为虚拟机的ip,username为root,密码为刚才设置的密码

输入密码后我们就会进入到docker中了。
要直接显示还需要重要的一步,我们还要设置docker中ros2镜像的DISPLAY的环境变量的值(将显示映射出来)
# export DISPLAY=宿主主机IP:0.0 宿主主机IP指的是当前自己电脑的ip
# 举个例子,当前我的是:
export DISPLAY=本地机器的ip:0.0 (安装了那个SSH工具的ip)
值得一提的是,该方法还可以在局域网下和其他的linux主机进行可视化交互,宿主ip改为linux主机ip就可以了。

输入命令

root@a3919d23c03c:~# cd /opt/ros/foxy/setup.bash
-bash: cd: /opt/ros/foxy/setup.bash: Not a directory
root@a3919d23c03c:~# export DISPLAY=主机ip:0.0
root@a3919d23c03c:~# source /opt/ros/foxy/setup.bash
root@a3919d23c03c:~# ros run turtlesim_node
-bash: ros: command not found
root@a3919d23c03c:~# ros2 run turtlesim_node
usage: ros2 run [-h] [--prefix PREFIX] package_name executable_name ...
ros2 run: error: the following arguments are required: executable_name, argv
root@a3919d23c03c:~# ros2 run turtlesim  turtlesim_node
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[INFO] [1716269474.027870513] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [1716269474.076016003] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
^C[INFO] [1716269675.417040700] [rclcpp]: signal_handler(signal_value=2)
root@a3919d23c03c:~# pwd
/root
root@a3919d23c03c:~# ros2 run turtlesim  turtlesim_node
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[INFO] [1716269710.118161429] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [1716269710.122263683] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]


设置完,我们运行个小demo,出现小乌龟,如果想要控制这个小乌龟,再打开一个终端连接

root@a3919d23c03c:~# ll
total 32
drwx------ 1 root root 4096 May 21 05:26 ./
drwxr-xr-x 1 root root 4096 May 21 02:44 ../
-rw-r--r-- 1 root root 3106 Dec  5  2019 .bashrc
drwx------ 2 root root 4096 May 21 05:31 .cache/
drwxr-xr-x 4 root root 4096 Dec  9 03:58 .colcon/
-rw-r--r-- 1 root root  161 Dec  5  2019 .profile
drwxr-xr-x 1 root root 4096 May 21 05:31 .ros/
root@a3919d23c03c:~# export DISPLAY=主机ip:0.0
root@a3919d23c03c:~# source  /opt/ros/foxy/setup.bash
root@a3919d23c03c:~# ros2 run turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.


就可以用键盘的上下左右控制小乌龟走路了

可是实时查看消息传递信息 命令

ros2 topic echo /turtle1/cmd_vel

root@a3919d23c03c:~# export DISPLAY=主机IP:0.0
root@a3919d23c03c:~# source /opt/ros/foxy/setup.bash
root@a3919d23c03c:~# ros2 topic echo /turtle1/cmd_vel
WARNING: topic [/turtle1/cmd_vel] does not appear to be published yet
Could not determine the type for the passed topic
root@a3919d23c03c:~# ros2 topic echo /turtle1/cmd_vel
linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
---
linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0
---
linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
---
linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0
---
linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0
---

也可以打开rqt工具实时跟踪节点发送日志

root@e864c4185be5:~# ros2 run rqt_console rqt_console

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

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

相关文章

企业如何防止数据泄密?大型企业必备的文件加密软件

随着信息化建设的大步推进,越来越多的企业资料以电子文件的形式保存,企业内部和企业之间的信息交流也主要依靠电子文件。近年来的泄密事件层出不穷,比如东软泄密案、HTC窃密案、力拓案等,给企业带来灾难性的经济损失及信誉重创。如…

Redis(十三) 事务

文章目录 前言事务的特性Redis事务的执行原理Redis中使用事务WATCH UNWATCH实现乐观锁 前言 前面我们学习 MySQL 的时候,肯定也学习了事务。事务是什么?给大家举个例子:假如我给朋友微信转账,我给他转了 100 块钱,当我…

ArcGIS中分割与按属性分割的区别

1、分割ArcGIS批量导出各个市的县级行政边界 视频教学: ArcGIS批量导出各个市的县级行政边界002 2、ArcGIS批量导出全国各省的边界 视频教学: ArcGIS导出全国各省的边界003 推荐学习: ArcGIS全系列实战视频教程——9个单一课程组合系列直播回…

RAG技术综述

RAG的基本架构。,生成器和检索器。 参考paper:https://arxiv.org/html/2402.19473v4 文中将rag的内容从文本扩展至多模态,打开了思路。 生成器:transformer,LSTM,扩散模型,gan 检索器&#xf…

怎么一键消除路人?教你三个消除方法

怎么一键消除路人?在数字时代,摄影已成为我们记录生活、表达情感的重要方式。然而,完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客,但却足以破坏你精心构图的美好瞬间。…

香农信息量/自信息、信息熵、相对熵/KL散度/信息散度、交叉熵

诸神缄默不语-个人CSDN博文目录 文章目录 1. 引言2. 什么是熵?3. 香农信息量/自信息香农信息量的定义香农信息量的含义香农信息量计算示例香农信息量与信息熵的关系 4. 信息熵信息熵的定义信息熵的计算公式信息熵计算示例 5. 衡量两个分布间的差异:相对熵…

Excel工作簿/表的合并/拆分全集(一文通关)

概述 在工作中,我们常会用到到Excel拆分/合并为多个工作表/簿,如全国的订单表,需要根据省份列拆分下发至对应的省、各省份数据需要汇总、...... 应该如何操作呢? 1. 传统方法(借助透视表、Power Query编辑器、VBA实现…

Alienware外星人笔记本m17 R3原厂OEM预装Win10系统包下载,恢复开箱状态电脑自带系统

适用型号:Alienware M17 R3 链接:https://pan.baidu.com/s/1m3RwLmIlih3iPn5AclpptQ?pwdmsef 提取码:msef 外星人原装W10系统自带所有驱动、出厂专用主题壁纸、系统属性专属联机支持标志、系统属性专属LOGO标志、Office办公软件、MyAlie…

k8s-helloword部署一个应用

k8s-helloword部署一个应用 快速部署一个pod命令 部署一个名为 test-nginx Pod 方式一:使用 kubectl run kubectl run test-nginx --imagenginx然后使用 kubectl get pod 查看,kubectl get pod 是查看默认名称空间下的Pod 如果想要跟详细的查看这个…

OpenAI模型GPT-4o、GPT-4、Gemini 1.5性能比较

大家好,OpenAI最新推出的GPT-4o,标志着人工智能语言模型和交互方式迈入了新纪元。最引人注目的是,GPT-4o支持实时互动和流畅的对话切换,让交流更加自然。 本文将对比分析GPT-4o、GPT 4以及谷歌的Gemini和Unicorn模型,…

java继承使用细节二

构造器 主类是无参构造器时会默认调用 public graduate() {// TODO Auto-generated constructor stub也就是说我这里要用构造器会直接调用父类。它是默认看不到的 ,System.out.println("graduate");} 但当主类是有参构造器如 public father_(int s,doubl…

2024最新私有化部署AI大模型,让每个人都有属于自己的AI助理

让每个人都拥有一个属于自己的本地大模型 下载Ollama 下载地址 ​ https://ollama.com/download ​ Ollama支持MacOS、Linux、Windows 解压 下载完成后,会得到一个Ollama-darwin.zip文件,解压后,以Mac为例是一个可运行文件:O…

鸿蒙HarmonyOS开发:tabs结合tabContent实现底部tabBar导航栏页面布局

文章目录 一、组件介绍1、Tabs参数属性事件TabsController 2、子组件属性说明 二、基础示例1、基础顶部导航2、效果3、可以滚动导航栏2、效果 三、扩展示例自定义导航栏1、代码2、效果 一、组件介绍 Tabs组件的页面组成包含两个部分,分别是TabContent和TabBar。Tab…

【CTF Web】NSSCTF 3868 [LitCTF 2023]这是什么?SQL !注一下 !Writeup(SQL注入+报错注入+括号闭合+DIOS)

[LitCTF 2023]这是什么?SQL !注一下 ! 为了安全起见多带了几个套罢了o(▽)q 出题人 探姬 解法 先试试这个: )))))) or 11 -- 有结果了,但是这个 flag 是假的。 flag 可能在其他表里。用 hackbar 上 DIOS payload。 …

2024-2030数据集成成熟度曲线(一)

作者 | 郭炜 导读:最新发布的《技术成熟度曲线2024》全面评估数据集成技术架构的7个维度,包括技术成熟度、技术难度、业务价值、技术成熟周期、管理协作难度、大模型结合等评估维度,报告篇幅较长,我们将报告分为3篇系列文章&#…

微信小程序源码-基于Java后端的会议发布与预约系统毕业设计(附源码+演示录像+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设…

一文通晓mysql

目录 1.mysql在centos7环境上的安装 2.数据库基础 1. 什么是数据库 2.基本认识 3.库的操作 1.创建数据库 2.查看数据库列表 3.删除数据库 4.修改数据库 5.库的备份与修复 4.表的操作 1.创建表 2.查看表 3.修改表 修改表名 给表增加属性。 修改表中的某个属性&…

【传知代码】用二维图像渲染3D场景视频-论文复现

文章目录 概述原理介绍模型介绍环境配置/部署方式安装环境准备数据训练(train)评估(eval)渲染(render) 小结 论文地址 本文涉及的源码可从用二维图像渲染3D场景视频该文章下方附件获取 概述 **NeRF&#…

第十九届全国环境友好科技竞赛(绿色创业类)正式启动

近日,第十九届全国环境友好科技竞赛(绿色创业类)正式拉开帷幕。本次竞赛由清华大学、同济大学、西安建筑科技大学及中国环境科学学会共同主办,旨在通过学科竞赛的方式鼓励全国高校学生积极参与到资源节约型和环境友好型的和谐社会…

【linux-IMX6ULL-LED字符驱动框架完善】

目录 1.简介2.前置知识2.1 重要函数及结构体2.2 程序框架流程 3. 代码详解: 1.简介 在上节,我对linux-IMX6ULL-字符设备驱动简单框架实验进行了说明和构建,但是也存在几个问题; 需要手动指定设备号,不能自…