目录
一、简要
随着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-8
apt 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-8
locale # verify settings
2.设置源
apt install software-properties-common
add-apt-repository universe
apt update && apt install curl -y
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "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可以参考之前写的博客: