Ubuntu22.04 LTS 安装ROS2-Humble

Ubuntu22.04 LTS 安装ROS2-Humble

Humble Hawksbill (2022-11-18)

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

1.添加ROS2 apt仓库

1.1第一种下载方式(需要Ubuntu科学上网)
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
1.2第二种下载方式
# 科学上网先下载好ros.key
https://raw.githubusercontent.com/ros/rosdistro/master/ros.key
# 放到ubuntu22.04/home/用户名路径下
sudo cp ./ros.key /usr/share/keyrings/ros-archive-keyring.gpg

2.添加ROS仓库

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

3.安装ROS2包

humble支持ubuntu20.04和ubuntu22.04,但是ubuntu20.04需要从源码编译,ubuntu22.04则不用,ubuntu20.04可以退而安装Galactic,但它不是LTS长期支持版

sudo apt update
sudo apt upgrade
# 有gui tools
sudo apt install ros-humble-desktop
# 无gui tools
sudo apt install ros-humble-base

安装ros-humble-desktop是如报下面这个错,先卸载包重新下载一个,版本冲突了

The following packages have unmet dependencies:
 libusb-1.0-0-dev : Depends: libusb-1.0-0 (= 2:1.0.25-1ubuntu1) but 2:1.0.25-1ubuntu2 is to be installed
                    Recommends: libusb-1.0-doc but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
sudo apt remove libusb-1.0-0=2:1.0.25-1ubuntu2
sudo apt install libusb-1.0-0=2:1.0.25-1ubuntu1

然后再执行

sudo apt install ros-humble-desktop

4.环境设置

/opt/ros/humble/setup.bash是底层工作空间

# 更新环境
source /opt/ros/humble/setup.bash
# 将更新环境语句写入.bashrc,每次启动终端都会加载环境
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

5.测试安装是否成功

终端1:发布者节点

ros2 run demo_nodes_cpp talker

终端2:订阅者节点

ros2 run demo_nodes_cpp listener

6.启动小海龟仿真

终端1:启动小海龟节点

ros2 run turtlesim turtlesim_node

终端2:启动键盘

ros2 run turtlesim turtle_teleop_key

会出现一个小海龟,按上下左右键操作一下。

7.下载依赖软件包

7.1下载编译所需包
sudo apt install python3-pip
sudo apt install python3-rosdep2
sudo apt install python3-colcon-common-extensions
7.2 下载rosdep的rosdepc
sudo pip install rosdepc
sudo rosdepc init
sudo rosdepc update
sudo rosdepc install -i --from-path src --rosdistro humble -y

8.创建项目空间

mkdir -p ~/dev_ws/src
git clone https://github.com/ros/ros_tutorials.git -b humble
# rosdep install -i --from-path src --rosdistro humble -y
cd ~/dev_ws
rosdepc install -i --from-path src --rosdistro humble -y
# 编译
colcon build

终端显示如下消息表示编译成功

Starting >>> turtlesim
Finished <<< turtlesim [5.49s]

Summary: 1 package finished [5.58s]

colcon build

  • –packages-yp-to 编译指定的包及其所有依赖项而不是整个工作区
  • –symlink-install 避免了每次更改Python脚本时需要重新编译
  • –event-handlers console_direct+ 在编译时是否在控制台显示输出,不显示可在log文件查看

编译之后查看工作空间 dev_ws

ls ~/dev_ws

dev_ws

  • build:
  • install:存放当前工作空间的配置文件
  • log:编译日志
  • src:代码

9.加载工作空间(overlay)

我们首先来看工作空间的层叠

  • /opt/ros/humble/setup.bash 第一层
  • install/local_setup.bash 第二层
  • install/setup.bash == 第一层+第二层

install目录下有local_setup.bash和setup.bash两个文件。

local_setup.bash只会把当前工作空间中的可用包添加到环境当中

setup.bash会把新建该工作空间时的底层工作空间也加入到环境中,这样就有两个工作空间的软件包可以使用。这样的一个好处是你在使用底层工作空间的同时可以切换不同的工作空间,减少了多个工作空间的干扰。

一般的步骤就是:

  1. source底层工作空间
  2. source自己创建的工作空间

这时,同样一个包,在底层工作空间存在,在自己的工作空间也存在,修改自己的工作空间的包,会覆盖掉在底层工作空间的包,但是不会修改底层工作的包。

参考资料

【ROS2】带你避坑安装ROS2最新版本Humble Hawksbill(本人一个坑一个坑踩过来的)(unable to locate package ros-humble-desktop问题解决):https://blog.csdn.net/weixin_44458490/article/details/125447703

Ubuntu 22.04 LTS安装ROS2 (ros-humble-desktop):https://blog.csdn.net/toopoo/article/details/127178416

ros2不同版本的差异 foxy galactic humble rolling:https://blog.csdn.net/zyh821351004/article/details/130180172

ROS2 基于humble版本机器人仿真教程:https://blog.csdn.net/qq_20492531/article/details/126913096

ROS2学习笔记之创建工作空间篇:https://blog.csdn.net/qq_38649880/article/details/104408383

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值