Ubuntu 20.04下的ROS2安装

1. 准备好Ubuntu 20.04

(1) 20.04使用focal版本,检查修改/etc/apt/sources.list,如下:

ROS2 foxy版本与Ubuntu 20.04对应,我们使用focal细分版本

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

注意,如果Ubuntu 22.04 Jammy则对应ROS2 Humble,具体参考官方技术文档http://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html或者知乎ROS 21讲的第3节“ROS2安装方法”

(2) 然后执行系统更新

sudo apt update
sudo apt upgrade

2. ROS2安装前的基本环境准备

(1)设置编码

$ sudo apt update && 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

(2) 添加ROS2安装相关的源

首先要确保Ubuntu Universe repository可用,以下检查指令.

apt-cache policy | grep universe

输出应如下:

500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages
release v=20.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=universe,b=amd64

若没有看到像上面这样的输出行,依次执行如下命令:

sudo apt install software-properties-common
sudo add-apt-repository universe

继续执行指令写入ROS2安装源:

sudo apt update && sudo apt install curl gnupg lsb-release
sudo 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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

下载证书时提示无法连接的处理

在执行上述指令下载ros.key时,经常出现Failed to connect to raw.githubusercontent.com port 443类似提示,可参考https://www.guyuehome.com/37844解决,主要是解决网址的IP定义,在/etc/hots中增加相应解析定义,如下:

###增加下面的解析
185.199.108.133  raw.githubusercontent.com

修改/etc/hosts文件后注意刷新网址解析定义,如下:

sudo service network-manager restart

3. ROS2的安装

(1) 先更新系统

在前面安装环境准备完成后,先执行系统更新指令

sudo apt update
sudo apt upgrade

(2)安装ROS2

这里选择安装 ros-foxy-desktop版本,如下指令:

sudo apt install ros-foxy-desktop

(3) ROS2环境配置

source /opt/ros/foxy/setup.bash

如果希望每次启动直接进入该环境,则在.bashrc中添加上述语句

echo " source /opt/ros/foxy/setup.bash" >> ~/.bashrc

**注意,**如果要切换到ROS1环境,则执行noetic下的环境设置,如下:

source /opt/ros/noetic/setup.bash

4. ROS2测试

(1)底层通信系统的测试

在一个终端发送消息广播指令

ros2 run demo_nodes_cpp talker

正常将显示以下信息:
[INFO] [1698321815.944629572] [talker]: Publishing: ‘Hello World: 1’
[INFO] [1698321816.941064455] [talker]: Publishing: ‘Hello World: 2’
[INFO] [1698321817.948939308] [talker]: Publishing: ‘Hello World: 3’
[INFO] [1698321818.941491997] [talker]: Publishing: ‘Hello World: 4’

在另外一个终端发送消息订阅接收指令:

ros2 run demo_nodes_py listener

正常将显示以下类似信息(后面数字不一定相同):
INFO] [1698322064.923442132] [listener]: I heard: [Hello World: 1]
[INFO] [1698322065.924364078] [listener]: I heard: [Hello World: 2]
[INFO] [1698322066.921930626] [listener]: I heard: [Hello World: 3]
[INFO] [1698322067.935397647] [listener]: I heard: [Hello World: 4]
[INFO] [1698322068.925254484] [listener]: I heard: [Hello World: 5]

(2) 小海龟的测试

启动两个终端,分别执行以下指令:

# 启动海龟仿真器
ros2 run turtlesim turtlesim_node
# 启动键盘控制
ros2 run turtlesim turtle_teleop_key
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值