Linux 流畅安装 ROS2

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/YVfdF7fknRFpNUU5v7MV3A

环境准备

Linux 在国内运用得很广泛,尤其在嵌入式领域,而嵌入式在机器人开发方向用的比较多的还是基于 Ubuntu 发行版,虽然一般需要裁剪掉冗余的功能,而写作的时候主流版本集中在 16、18 这两个版本上。本文系统平台以 Ubuntu 18.04 x64 为例。

多亏了交叉编译器,开发的过程不需要依赖调试板,可以直接用虚拟机安装桌面版的 Ubuntu 并在其中编译调试程序,不建议物理主机安装多系统,因为容易弄坏主系统。我这里使用 VMware Workstation Payer,八戒介绍给大家的都是安全可靠的,关于版权问题无需担心,个人用户可以免费注册使用这套软件。

在虚拟机安装好 Ubuntu 系统之后,登录系统后先不要随意安装软件或者更新系统,有些软件版本可能和下面要安装的 ROS 系统有兼容性问题,为避免节外生枝,先搞定我们的 ROS2 安装过程,我们的目标是最大限度流畅体验!

切换安装源

在 Linux 生态下,有无数的个人和组织在贡献各种功能的软件,无论是源码或者可执行包,那么如此多的软件包,在用户端如何去下载使用和管理呢?

这需要有包管理系统的辅助,其中在 Ubuntu 这种基于 Debian 的 Linux 发行版或者直接就是 Debian 发行版,一般安装软件包都是倾向于使用包管理器 dpkg,而 apt 就是 dpkg 的前端命令行工具。为避免罗嗦,下面说的 apt 其实就是指 dpkg。

使用 apt 这类包管理系统下载或者更新已有软件包时,会从 apt 的服务器下载数据,官方 apt 服务器在墙外,由于众所周知的网络限制,相信墙内的小伙伴们都体验过跨墙的痛苦了。那么就有一批人为了墙内的同学们使用和学习方便,在墙内拷贝了一批 apt 服务器资源的镜像,镜像会定期从官方服务器拉取数据资源。当你的本地系统配置了包管理器的安装源为镜像源,那么使用包管理器安装软件包时,会自动改为从镜像源下载资源,免去了跨墙的网络阻滞。

而墙内使用率比较高的镜像源有清华大学镜像、阿里云镜像、中科大镜像等等。

经过以前的折腾(上一次是在本地安装 ROS1),最近项目需要切换到了 ROS2, 顺带摸清了使用包管理器可以最大化流畅安装 ROS2,但需要把包管理器的安装源切换到墙内的镜像。下面以清华的镜像源为例。

Ubuntu 的软件源配置文件是 /etc/apt/sources.list。先将系统自带的该文件做个备份,然后再将下面的内容覆盖原有文件内容,即可切换成功。

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

安装

字符支持 UTF-8

在本地化字符信息配置中,ROS2 要求必须支持 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

设置 ROS2 安装源

既然安装 ROS2 过程中选择使用包管理器 apt,那么需要将 apt 的 ROS2 的安装源路径添加到系统中。要做到这一点,首先为 apt 添加授权 ROS2 仓库的 GPG 密钥

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

关于第二条指令中需要访问域名 raw.githubusercontent.com,在墙内极有可能会失败,那么你可以在公众号后台回复关键词【ros.asc】,我已经帮你上传到云端,这样你就可以大概率地快速获取到文件 ros.asc。下载好该文件,存放到当前目录,可以把第二条指令改为

sudo apt-key add ./ros.asc

然后,把 ROS2 的仓库路径添加到 apt 的源列表中

sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'

有的同学会发现安装源信息不是被写到 /etc/apt/sources.list 了,而是存到目录 /etc/apt/sources.list.d/ 中的新添加文件 ros2-latest.list。

/etc/apt/sources.list.d/ 这目录有什么用?一切都是为了避免所有的安装源配置信息都集中记录在同一个文件(/etc/apt/sources.list)里,这样确实比较难管理,于是在较新版本的系统中就有了这个文件夹,根据不同的软件分别有对应的文件记录各自的安装源,并存放在该文件夹下。

安装 ROS2 包

Ubuntu 18.04 能支持的 ROS2 最高版本是 crystal。下面以安装 ROS2 crystal 为例。为了方便后边的指令,先将版本信息 crystal 赋值到变量 CHOOSE_ROS_DISTRO

export CHOOSE_ROS_DISTRO=crystal

更新安装库缓存

sudo apt update

我这里安装桌面版,功能比较完整,其中包含了 ROS, RViz, demos, tutorials 等资源,和基础版的区别是多了 GUI 相关的模块

sudo apt install ros-$CHOOSE_ROS_DISTRO-desktop python3-argcomplete

如果你不想安装 GUI 相关的模块,可以换成下面这样,其中包含了通信组件、消息包和命令行工具等

sudo apt install ros-$CHOOSE_ROS_DISTRO-ros-base python3-argcomplete

还有开发工具,用于编译 ROS 包和其它的一些工具

sudo apt install ros-dev-tools

到这里整个安装 ROS2 就完成了,过程大概率是不会再报错了,除非你的网络状态真的太烂!还有在我的公众号是可以拿到相当多资源的。

卸载

本文的主题是安装 ROS2,但是这里也略带介绍一下卸载的指令,以后有需要可以使用

sudo apt remove ros-crystal-* && sudo apt autoremove

玩起来

启动环境

使用 ROS2 是通过指令 ros2 来操作,但是在打开命令行终端后,默认是找不到指令 ros2 的,需要先启动环境

source /opt/ros/crystal/setup.bash

如果你比较频繁依赖环境,可以把上面的操作追加到 ~/.bashrc 文件末尾,这样在当前用户打开命令行终端后就会自动启动环境。

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

试一下 demo 程序

ROS2 同时支持 C++ 和 Python,下面我们同时玩一下这两种语言的 demo,需要启动两个终端,分别运行 demo 程序,一个用于发送信息,另一个用于接收并显示信息。

启动 C++ 版本的 talker,发送信息

ros2 run demo_nodes_cpp talker

启动 Python 版本的 listener,接收信息

ros2 run demo_nodes_py listener
  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux安装ROS和Anaconda,可以按照以下步骤进行操作: 1. 首先,按照正确的顺序安装ROS和Anaconda。ROS是一个机器人操作系统,Anaconda是一个用于数据科学和机器学习的Python发行版。 2. 在安装ROS之前,需要先安装Anaconda。可以从Anaconda官方网站或清华镜像网站下载所需的Anaconda版本。 3. 下载并运行Anaconda安装脚本。可以使用bash或sh命令运行脚本,不需要使用sudo权限。例如,使用以下命令运行脚本: ```bash bash Anaconda3-xxx-Linux-x86_64.sh ``` 请注意,这里的"xxx"应该替换为下载的Anaconda版本号。 4. 安装Anaconda时,按照提示进行操作。可以选择安装路径和是否将Anaconda添加到系统环境变量中。 5. 完成Anaconda的安装后,可以继续安装ROS。根据你的需求和操作系统版本,可以选择安装所需的ROS发行版和软件包。 6. 安装ROS之前,确保已经设置好正确的软件源。可以参考ROS官方文档中的指南。 7. 安装ROS时,可以使用适当的命令,例如`apt-get`或`apt`命令,根据不同的Linux发行版。请参考ROS官方文档中的指南。 8. 安装ROS后,可以使用Anaconda创建和管理Python虚拟环境,以便在ROS环境中进行数据科学和机器学习的开发工作。 总结起来,为了在Linux安装ROS和Anaconda,首先安装Anaconda,然后安装ROS,并根据需要配置和管理Python虚拟环境。这样可以在Linux系统中同时使用ROS和Anaconda。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【原创】Anaconda的安装——基于使用ROS背景下](https://blog.csdn.net/qq_39429669/article/details/123338343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值