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

ROS2学习——Docker环境下安装于使用(1)

目录

一、简要

二、ROS2和ROS1区别

三、环境搭建与安装

(2)拉取ubuntu22.04镜像

(2)安装ROS2

1. 基本设置

2.设置源

3.安装ROS2功能包

4.测试

四、相关指令学习

1.小海龟测试

 2.ros2 node等指令

3.rqt


一、简要

        随着ROS2的逐渐普和应用,笔者也开始逐渐从ROS1转向ROS2的学习当中。本文主要介绍如何在docker环境中安装使用ROS2,并且也会介绍ROS2的有些优势和基本概念。

二、ROS2和ROS1区别

        ROS 1主要构建于Linux系统之上,主要支持Ubuntu。而ROS 2采用全新的架构,底层基于DDS(Data Distribution Service)通信机制,支持实时性、嵌入式、分布式、多操作系统。ROS 2支持的系统包括Linux、windows、Mac、RTOS,甚至是单片机等没有操作系统的裸机。
详细的对比见:ROS与ROS2比较_ros可以嵌入实时程序案例-CSDN博客

三、环境搭建与安装

docker的安装与使用可参考:

Ubuntu下使用docker_xhost +local:docker-CSDN博客

(2)拉取ubuntu22.04镜像

docker pull ubuntu:22.04

创建容器,这里将端口号,GPU和图显示都和宿主机相连。

xhost +local:root;
docker run -it --privileged=true  --net=host \--gpus all     \-p 11311:11311 \--env="DISPLAY" \--env="QT_X11_NO_MITSHM=1" \--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \--volume="/dev:/dev" \-v /home/root/contain:/root/dataset \--name useros2 ubuntu:22.04 /bin/bash

(2)安装ROS2

        其实可以在Dokcerhub上找别人安装好的22.04镜像,为了学习本文带大家在纯净的22.04上安装一遍。

安装步骤其实官网已有详细的步骤:

Ubuntu (Debian) — ROS 2 Documentation: Foxy documentation 这是ubuntu20.4安装

Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentation ubuntu22.4安装

1. 基本设置

docker进入默认是root用户所以不需要sudo指令

locale  # check for UTF-8apt update && apt install locales
locale-gen en_US en_US.UTF-8
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8locale  # verify settings

2.设置源

apt install software-properties-common
add-apt-repository universeapt update && apt install curl -y
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null

3.安装ROS2功能包

这里安装桌面版本的ROS2基本相关的功能包都安装。

apt update
apt upgrade#20.4
#apt install ros-foxy-desktop python3-argcomplete#22.04
sudo apt install ros-humble-desktop

中途会按照你选择的地区设定时间,可能和时间戳相关暂时可以随机设置。

4.测试

这里可以把这个句写到~/.bashrc中。

source /opt/ros/humble/setup.bash

话题发送者在终端中发送"hello word”

ros2 run demo_nodes_cpp talker

如果需要安装ROS可以参考之前写的博客:

Ubuntu18版本安装ROS_ubuntu18安装ros-CSDN博客

四、相关指令学习

1.小海龟测试

检测是否安装好小海龟功能包

ros2 pkg executables turtlesim#未安装则:
#apt install ros-humble-turtlesim

打开小海龟的仿真程序:

ros2 run turtlesim turtlesim_node

终端输入则显示如下: 

 在终端中会输出节点名称,小海龟的坐标和航向角。

使用键盘控制小海龟

ros2 run turtlesim turtle_teleop_key

在另一个终端输入指令则可以使用方向键控制小海龟的移动方向。

 2.ros2 node等指令

可以使用类似ROS中的rostopic 和rosbag等相同的指令,只不过ROS2将这些指令重新命名,终端中输入ros2也可以查看到帮助。

在小海龟的实例下输入:

ros2 topic list

显示出当前ROS中在发布的话题。 

3.rqt

在终端中直接输入rqt即可使用,如果显示没有则可以直接安装。

apt install ~nros-humble-rqt*

rqt中可以查看node,service,topice等信息,通过可视化的方法查看相关的信息。 

http://www.lryc.cn/news/344210.html

相关文章:

  • 数据仓库之Hologres
  • MacOS搭建docker本地私有镜像库
  • Unity Material(材质)、Texture(纹理)、Shader(着色器)简介
  • 《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法
  • VLM与基础分割模型的联合使用
  • JS数组去重的方法
  • Go实战训练之Web Server 与路由树
  • C#中接口设计相关原则
  • Pytorch学习笔记——卷积操作
  • 探索鸿蒙开发:鸿蒙系统如何引领嵌入式技术革新
  • chrome extension插件替换网络请求中的useragent
  • PHP基础【介绍,注释,更改编码,赋值,数据类型】
  • ASP.NET小型证券术语解释及翻译系统的设计与开发
  • 硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。
  • error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public: __cdecl ......
  • 邮箱Webhook API发送邮件的性能怎么优化?
  • 并发编程实现
  • 基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调)
  • 人大金仓数据库报com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM“ Password 认证失败
  • 文件加密软件哪个好?文件加密软件排行榜前十名(好用软件推荐)
  • Netty的第一个简单Demo实现
  • K8S 哲学 - 服务发现 services
  • Springboot工程创建
  • 日本站群服务器的优点以及适合该服务器的业务类型?
  • 堆的应用2——TOPK问题
  • leetcode-5. 最长回文子串
  • 【Flask 系统教程 1】入门及配置
  • 石家庄河北银行的
  • 【CCNP ENCOR OCG】CHAPTER 2》Spanning Tree Protocol
  • docker无法映射/挂载根目录