• Ros2 学习02- ubuntu22.04 安装ros2


    ros2不同版本的差异 foxy galactic humble rolling

    ROS2的每个版本都有其特点和改进。以下是关于Foxy, Galactic, Humble和Rolling版本的一些关键差异:

    • Foxy Fitzroy (2020-06-05)
      针对LTS(长期支持)版本,支持时间为3年。
      引入了许多新的特性和改进,包括组件生命周期、许多新的质量等级1(Quality Level 1)的软件包以及对Windows平台的改进。
      支持Ubuntu 20.04 (Focal Fossa)、macOS 10.15 (Catalina) 和 Windows 10。

    • Galactic Geochelone (2021-05-23)
      非LTS版本,支持时间为1年。
      提供了对DDS中间件的更广泛支持,例如通过引入Cyclone DDS的默认支持。
      改进了跨平台兼容性,加强了许多质量等级1的软件包。
      支持Ubuntu 20.04 (Focal Fossa)、macOS 10.15 (Catalina) 和 Windows 10。

    • Humble Hawksbill (2022-11-18)
      针对LTS(长期支持)版本,支持时间为5年。
      更加稳定且易于维护,包括许多新的质量等级1的软件包,以及对不同平台和体系结构的改进。
      改进了安全性,引入了对DDS安全插件的支持。
      支持Ubuntu 22.04 (Jammy Jellyfish)、macOS 12 (Monterey) 和 Windows 11。

    • Rolling Ridley (持续更新)
      一种持续更新的开发分支,为开发者提供了最新的功能和改进。
      不推荐用于生产环境,因为它可能包含尚未完全测试的新功能。
      对于那些希望紧跟ROS2开发进度的用户来说,Rolling版本是一个很好的选择。

    根据您的需求(稳定性、新功能、支持时间等),您可以选择合适的ROS2版本。对于生产环境,建议选择LTS版本,如Foxy或Humble,因为它们提供了长期支持和更加稳定的性能。

    在这里插入图片描述

    设置镜像源

    sudo vim /etc/apt/sources.list
    
    • 1
    #阿里源
    deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    搞定,接下来执行这两个命令就完事啦。

    sudo apt-get update
    sudo apt-get upgrade
    
    • 1
    • 2

    1. 设置编码

    sudo apt install locales
    sudo locale-gen en_US en_US.UTF-8
    sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 
    export LANG=en_US.UTF-8
    
    • 1
    • 2
    • 3
    • 4

    2. 添加源

    sudo apt install curl gnupg lsb-release 
    
    • 1
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
    
    • 1
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    
    • 1

    3. 安装ROS2

    sudo apt update
    sudo apt upgrade
    
    • 1
    • 2
    sudo apt install ros-humble-desktop
    
    • 1

    ROS2安装的默认目录在/opt/ros/下,根据版本的名字进行区分。我们安装的是Humble版本的ROS2,所以安装目录在/opt/ros/humble下。

    第一次运行安装是正常的,换第二次安装居然报这个错,莫名其妙了。

    在这里插入图片描述
    于是打开百度查了下,第一个查到的说是 ubuntu 版本的原因,说ubuntu20.4 就是有这个问题,按照上面的版本对照图 的话确实可能,于是查了下版本号

    lsb release -a
    
    • 1

    在这里插入图片描述
    查了版本之后发现并不是这个问题。

    网上找了一圈还是没找到问题,那估计就是网络的问题了,所有把我本机电脑的vpn 打开,然后到我的虚拟机 继续执行了一下 2,3 两个步骤,
    发现可以正常安装了,记个坑
    在这里插入图片描述

    4. 设置环境变量

    source /opt/ros/humble/setup.bash
    
    • 1
    echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc 
    
    • 1

    至此,ROS2就已经在系统中安装好了。

    ROS2示例测试

    为了验证ROS2安装成功,我们可以通过以下示例进行测试。

    示例一:命令行示例
    先来试试ROS2最为重要的底层通信系统DDS是否正常吧。

    启动第一个终端,通过以下命令启动一个数据的发布者节点:

    ros2 run demo_nodes_cpp talker
    
    • 1

    在这里插入图片描述
    启动第二个终端,通过以下命令启动一个数据的订阅者节点:

    ros2 run demo_nodes_py listener
    
    • 1

    如果“Hello World”字符串在两个终端中正常传输,说明通信系统没有问题。

    示例二:小海龟仿真示例
    再来试一试ROS中的经典示例——小海龟仿真器。

    启动两个终端,分别运行如下指令:

    ros2 run turtlesim turtlesim_node
    ros2 run turtlesim turtle_teleop_key
    
    • 1
    • 2

    第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦。

    发布话题消息
    想要控制海龟动起来,我们还可以直接通过命令行发布话题指令:

    ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    POJ 3264 Balanced Lineup 线段树 / 平方分割
    RestTemplate发送http请求
    Gerrit lfs安装及配置
    深圳锐科达SV-X7 sip话机与海康威视摄像头联动设置方法
    几道面试题记录20231023
    浏览器输入www.baidu.com的请求过程是怎么样的? 响应的过程是怎样的呢?
    Linux MQTT智能家居项目(网络基础知识)
    vue项目 npm run build 打包项目防止浏览器缓存
    python程序打包——基础准备、源代码打包、二进制打包、setuptools基础
    No165.精选前端面试题,享受每天的挑战和学习
  • 原文地址:https://blog.csdn.net/hai411741962/article/details/133377976