一、简介
ROS2-foxy已经不再维护,ROS2-humble成为主角,因而该转变一下开发场景了。如何安装?官方文档没有错,然而,照着做却无法进行。实超中遇到的需要变通的地方,官网是不给你提供解决的,本文给出详细解答。
官网地址:https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
二、环境问题
2.1 关于版本
版本 | 安装建议 |
---|---|
ubuntu22.04 --jimmy | 安装建议:安装时后必须选择中文,否则后边需要手动安装。 |
ROS2 --humble | 采用debian pakage模式安装;千万不要采用源码编译安装,因为你根本编译不出正确结果。 |
2.2 虚拟机屏幕扩大
在虚拟机安装完成后,第一个事情就是扩大屏幕。否则无法干活!
1)给root用户追加密码
sudo passwd root
2)安装open-vm-tools
sudo apt update
su root
apt install open-vm-tools
apt install open-vm-tools-desktop
2.3 安装阿里云国内数据源
三、正式安装开始
3.1 安装语言系统locale
需要首先统一语言,避免乱码发生。
确保您有一个支持 UTF-8 的语言环境。如果您处于最小环境(例如 docker 容器)中,则语言环境可能是像 POSIX 这样的最小环境。我们使用以下设置进行测试。您使用的是不同的 UTF -8 支持的语言环境。
locale # check for UTF-8
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
locale # verify settings
在计算中, locale (语言环境)是一组参数,用于定义用户的语言、地区以及用户希望在其用户界面中看到的任何特殊变体偏好。通常,语言环境标识符至少包含语言代码和国家/地区代码语言环境是国际化的一个重要方面。 |
2.2 设置专业数据源
关于ubuntu下软件安装的仓库,参考地址:Repositories/Ubuntu - Community Help Wiki
注意:数据源有两种:
- 专 数据源
- 常规数据源。
专业数据源针对专业的一整套软件体系,比如:Docker有一套数据源,ROS2有一套数据源;而常规数据源是通过apt update && apt insatll完成安装的软件,这是常规软件的安装。
这里,您需要将 ROS 2 apt 存储库添加到您的系统。首先确保已启用 Ubuntu Universe 存储库。安装时,两种数据源将混合使用。
Ubuntu Universe:有数以千计的 Ubuntu 程序可以满足 Ubuntu 用户的需求。其中许多程序存储在通常称为存储库的软件档案中。该软件经过全面测试,专门为每个版本的 Ubuntu 构建。 |
安装add-apt-repository仓库数据源:
sudo apt install software-properties-common
sudo add-apt-repository universe
#sudo apt install software-properties-common
#sudo add-apt-repository universe
打开/etc/apt/sources.list文件,会发现多出以下内容:
2.3 设置GPG密钥
注意,GPG密钥是软件代码保护密钥,许多软件在下载前必须设置,因为对方(ROS开发者)已经设定了保密,所以你在下载前也需要设定密钥,否则无法解码。
sudo apt update && sudo apt install curl
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
这里用的是http访问,因此,需要安装curl软件。
这里如果出现了拒绝连接,如何继续呢?按我下面更改后操作就可以通过了。
sudo curl -sSL https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
要想知道为什么?参考文章:ROS知识:安装rosdep中出现time out的问题
2.4 添加仓库
此步将仓库的路径添加到本地数据源。
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" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
注意:这里源没有在/etc/apt/sources.list,而是在 /etc/apt/sources.list.d/ros2.list这是ros2专门的数据源。
2.5 安装ROS2的程序包
更新数据源,将ros2.list添加到路径上:
sudo apt update
sudo apt upgrade
此步需要一点时间,请耐心等候。
1)实质性安装,桌面安装(推荐):ROS、RViz、演示、教程。
sudo apt install ros-humble-desktop
2)实质性安装,ROS-Base Install (Bare Bones):通信库、消息包、命令行工具。没有 GUI 工具。 (如果上面安装后,自动有了ros-foxy-ros-base,此步忽略)
sudo apt install ros-humble-ros-base
3)实质性安装,开发工具:编译器和其他构建ROS包的工具
sudo apt install ros-dev-tools
到此ros2系统安装完成(时间2小时)。
四、安装gazabo库
官方文档没有提出gazebo安装,然而要想有仿真功能,gazebo是必须安装的。
而gazebo作为独立软件能够独立安装,注意,这里不要独立安装(对于ROS2没用),而是安装gazebo的parkage包,这样,ros2才能调用。
安装gazebo:假设您已经安装了一些humble debian 软件包,请按如下方式安装 gazebo_ros_pkgs:
sudo apt install ros-humble-gazebo-ros-pkgs
五、测试
安装过后,需要测试是否正确安装。
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/humble/setup.bash
此步必须有,这是为ros2进程提供环境路径,这里是系统自带的路径,如果客户编程,需要将客户自己的setup,bash也source出去。进入测试代码:
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
出现下面提示,表明安装顺利通过。
六、关于卸载
如果您需要卸载 ROS 2 或从二进制文件安装后切换到基于源的安装,请运行以下命令:
sudo apt remove ~nros-humble-* && sudo apt autoremove
您可能还想删除存储仓库、数据源:
sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
sudo apt upgrade