【机器人-开发工具】ROS 2 (2)Ubuntu20.04安装ROS 2 Foxy版本

1. 环境和安装版本

1.1. 本机环境

Ubuntu 20.04.6 LTS

1.2. ROS 2 Foxy 安装版本介绍

1. ROS 2 Foxy Desktop版本
  • 概述:这是为大多数用户推荐的安装选项,尤其是初学者。它包括了ROS 2的核心组件、构建工具、可视化工具如RViz、命令行工具等,以及一些示例程序。
  • 适用场景:这个版本适合那些希望快速开始开发和测试机器人应用的用户。如果你想要一个完整的开发环境,以便能够立即开始学习或开发机器人项目,那么Desktop版本是最好的选择。
2. ROS 2 Foxy Base版本
  • 概述:这是最小化的安装包,只包含运行ROS 2节点所需的最基础组件。
  • 适用场景:如果你打算从头构建自己的ROS 2环境,或者对系统资源有限制,可以选择Base版本。该版本不包含图形界面工具或示例代码,适用于需要定制化设置或资源受限的环境。
3. ROS 2 Foxy ROS-Base版本
  • 概述:类似于Base版本,但还包括了一些额外的库和工具,这些对于开发有用但不包含任何GUI工具。
  • 适用场景:这使得它比Base版本更全面,但仍比Desktop版本轻量。适合那些不需要完整桌面环境但希望拥有更多开发工具的用户。
4. 源码安装
  • 概述:对于那些想要体验最新特性或贡献代码给ROS 2项目的开发者来说,可以从源码编译ROS 2。
  • 适用场景:这种方式允许你获取最新的功能和修复,但也需要更多的配置工作,并可能遇到未解决的bug或兼容性问题。源码安装适合高级用户或开发者,他们需要访问最新的功能或是想参与到ROS 2的开发中去。

2. 设置系统环境

2.1. 更新和安装必要依赖

  • 安装命令:
    sudo apt update && sudo apt upgrade
    sudo apt install locales curl software-properties-common
    
  • 安装项说明:
    locales(用于设置系统的语言和区域设置)
    curl(用于下载文件)
    software-properties-common(提供添加额外仓库的能力)
    

2.2. 系统的语言和区域设置

  1. 目的:为了软件的正常运行,必要使用的语言和地区设置是英语(美国),并且使用UTF-8编码

  2. 查看本机设置: 使用 locale 命令,输出结果如下

    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC=zh_CN.UTF-8
    LC_TIME=zh_CN.UTF-8
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY=zh_CN.UTF-8
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER=zh_CN.UTF-8
    LC_NAME=zh_CN.UTF-8
    LC_ADDRESS=zh_CN.UTF-8
    LC_TELEPHONE=zh_CN.UTF-8
    LC_MEASUREMENT=zh_CN.UTF-8
    LC_IDENTIFICATION=zh_CN.UTF-8
    LC_ALL=
    
    • 如果本机设置输入正常(如上述输出所示),则不用更新当前环境(无需执行步骤3和4),调到步骤5
  3. 生成en_US.UTF-8区域设置并更新当前环境的语言设置

  • 命令:

    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
    
  • 说明:

    • locale-gen en_US en_US.UTF-8:此命令用于生成指定的语言和地区对应的locale数据。在这里,它为英语(美国)生成了两种编码格式的数据:默认编码和UTF-8编码。

    • sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8:这个命令用来更新全局的locale设置,使得所有的locale类别都使用en_US.UTF-8作为默认值。LC_ALL是一个覆盖所有locale类别的变量,而LANG则设置了默认的locale环境。

    • export LANG=en_US.UTF-8:临时地将当前shell会话中的LANG环境变量设置为en_US.UTF-8。这意味着在这个终端会话中,默认使用的语言和地区设置是英语(美国),并且使用UTF-8编码

  1. 验证语言设置结果:使用 locale 命令,输出结果如下
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

LC_ALL 为空是正常现象,它表示系统正在使用 LANG 和其他 LC_* 变量来决定各项区域设置,而不是被 LC_ALL 强制覆盖。
LC_ALL 是一个“临时覆盖”变量,用来强制设置所有区域设置(LC_)为同一个值。一般情况下,我们不需要一直设置它,而是让系统根据 LANG 和各个 LC_(如 LC_CTYPE、LC_TIME 等)来确定具体的区域设置。

  1. 启用Universe存储库
  • 确保启用了Universe存储库,命令:
   sudo add-apt-repository universe
   sudo apt update
  • 意义:
    Ubuntu默认提供了多个软件源,其中"Universe"包含由社区维护的免费开源软件。ROS 2依赖于一些位于Universe中的软件包,因此需要确保这个仓库被启用。

3. 添加ROS 2存储库

3.1. 添加ROS 2 GPG密钥

  • 意义:
    ROS 2通过GPG密钥验证下载的软件包的完整性和来源。这一步确保你从官方获取ROS 2包,避免潜在的安全风险。
  • 命令:
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    

3.2. 将ROS 2存储库添加到源列表

  • 意义:
    这一步骤将ROS 2的官方软件源添加到你的系统中,使得可以通过标准的apt命令来安装ROS 2的相关软件包。
  • 命令:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2-latest.list > /dev/null
    

命令添加到你的/etc/apt/sources.list.d/ros2-latest.list文件中

dpkg --print-architecture来确定系统的架构(例如amd64)
lsb_release -cs来确定当前Ubuntu的代号(对于20.04是"focal")
这样可以确保你添加的是正确的仓库地址,适用于你的特定系统配置。

4. 安装ROS 2 Foxy包

安装ROS 2 Foxy Desktop版本
推荐初学者安装Desktop版本,因为它包含了ROS、RViz、示例程序等:

sudo apt update
sudo apt install ros-foxy-desktop

5. 设置环境变量

每次打开新的终端时都需要加载ROS 2的环境变量。可以通过以下命令一次性设置它:

  • 对于Bash
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc
  • 对于Zsh
echo "source /opt/ros/foxy/setup.bash" >> ~/.zshrc
source ~/.zshrc

!注意!
如果之前装了ROS 1,需要注释掉.bashrc文件中的ROS Noetic环境变量设置来避免冲突
否则会报错:

ROS_DISTRO was set to 'noetic' before. Please make sure that the environment does not mix paths from different distributions.
  • 对于Bash

    vim ~/.bashrc
    

    注释noetic,找到下面行,前面添加#,保存修改:

    source /opt/ros/noetic/setup.bash
    
  • 对于Zsh

    vim ~/.zshrc
    

    注释noetic,找到下面行,前面添加#,保存修改:

    source /opt/ros/noetic/setup.zsh
    

6. 测试安装

为了验证ROS 2是否正确安装,可以运行简单的发布者和订阅者节点来测试通信是否正常工作:

  • 打开一个终端并运行C++的talker节点:
    ros2 run demo_nodes_cpp talker
    
  • 在另一个终端中运行Python的listener节点:
    ros2 run demo_nodes_py listener
    

如果一切正常,你应该会看到talker节点正在发布消息,而listener节点能够接收到这些消息。
结果示例如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值