文章目录
ROS2安装方法
Linux简介
- 与Windows系统收费,或MacOS硬件绑定的模式不同,Linux是一套免费并且开放源代码的操作系统,任何人都可以使用或者提交反馈,这就吸引了大量的开发者、爱好者,甚至很多企业,现在,每年对Linux系统提交的代码量已经成为衡量一个大公司技术实力的重要指标之一。
- Linux发展迅猛,已经成为了性能稳定的多用户操作系统,也是ROS2依赖的重要底层系统。虽然ROS2目前也支持Windows、MacOS,但对Linux系统的支持最好,在本教程中,我们主要讲解Linux之上的ROS2使用方法,其他系统原理也基本相同。
所以在使用ROS2之前,我们需要先安装Linux,此时会出现另外一个概念——发行版。 - 什么叫发行版呢?准确来讲,我们提到的Linux应该叫做操作系统内核,并没有可视化界面,发行版就是给这个内核加上华丽的外衣,把操作界面和各种应用软件放到一起,打包成我们安装系统的镜像。
- 所以一般情况下,我们常用到的Linux系统,都是各种各样的发行版,比如Ubuntu、Fedora、RedHat等等,每一个发行版都有其适用的场景,比如RedHat适合商业应用、CentOS适合服务器、Ubuntu、Fedora适合个人使用等,每一个版本的界面不太一样,但核心都是Linux,操作方法基本相同。
Ubuntu系统简介
-
ROS2二十一讲中使用到的Linux发行版就是ubuntu系统。
-
Ubuntu诞生于2004年10月份,每六个月发布一个新版本,用户可以一直免费升级使用,我们常用的浏览器、文件编辑器、通讯软件等一应俱全。在选择版本的时候,大家可以关注一下紧随其后的编号,比如Ubuntu22.04。22代表2022年,04表示2022年的4月份发布,除了04还可能会出现的是10,就是10月份发布,所以从数字编号上就可以看出各个版本发布的顺序。但是这样依然会有很多版本,为了让更多开发者有一个稳定的系统环境,Ubuntu每隔两年的4月份会发布一个长期支持版,后缀会加LTS,保证5年之内持续维护更新,比如Ubuntu20.04 LTS,Ubuntu22.04 LTS,除此之外的版本都是普通版,只维护18个月,所以大家在选择时,优先考虑长期支持版。
-
我们以Ubuntu22.04为例:
如果你是第一次接触Linux,建议在已有的windows上通过虚拟机安装,未来熟悉之后再考虑硬盘安装。
Ubuntu虚拟机安装
虚拟机是一个软件,可以在已有系统之上,构建另外一个虚拟的系统,让多个操作环境同时运行。
- 这里我们采用的虚拟机软件叫做vmware
- 安装教程可参考:安装虚拟机(VMware)保姆级教程(附安装包)
1. 下载系统镜像
最新版Ubuntu下载 | 往期版Ubuntu下载 |
---|
2. 在虚拟机中创建系统
3. 设置虚拟机硬盘大小
4. 设置Ubuntu镜像路径
5. 启动虚拟机
6. 设置用户名和密码
7. 等待系统安装
8. 完成安装
- 如果Windows中右击+复制的内容,在Ubuntu中无法右击+粘贴,可以尝试点击虚拟机(M)下 重新安装VMwareTools
可参考文章:VMware——VMware Tools的介绍及安装方法
- 其他方法还可以参考:解决虚拟机下 “Linux和Windows之间复制粘贴” 的问题
ROS2系统安装
接下来,我们就可以把ROS2安装到Ubuntu系统中了。安装步骤如下:
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. 添加源
$ 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
如遇报错“Failed to connect to raw.githubusercontent.com”,可参考https://www.guyuehome.com/37844
3. 安装ROS2
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ros-humble-desktop
4. 设置环境变量
$ source /opt/ros/humble/setup.bash
$ echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
至此,ROS2就已经在系统中安装好了。
ROS2示例测试
为了验证ROS2安装成功,我们可以通过以下示例进行测试。
示例一:命令行示例
先来试试ROS2最为重要的底层通信系统DDS是否正常吧。
启动第一个终端,通过以下命令启动一个数据的发布者节点:
$ ros2 run demo_nodes_cpp talker
启动第二个终端,通过以下命令启动一个数据的订阅者节点:
$ ros2 run demo_nodes_py listener
如果“Hello World”字符串在两个终端中正常传输,说明通信系统没有问题。
示例二:小海龟仿真示例
再来试一试ROS中的经典示例——小海龟仿真器。
启动两个终端,分别运行如下指令:
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key
第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦。
注意:如果小乌龟不动的话,点击一下第二个终端界面,再用键盘控制节点
至此,ROS2安装成功。
ROS2开发环境配置
Git
是一个分布式版本控制软件:
- git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。
- 实际上Linux内核开发团队决定开始开发和使用git来作为内核开发的版本控制系统的时候,世界上开源社群的反对声音不少,最大的理由是git太艰涩难懂,从git的内部工作机制来说,的确是这样。但是随着开发的深入,git的正常使用都由一些友善的命令来执行,使git变得非常好用。现在,越来越多的著名项目采用git来管理项目开发,例如:wine、U-boot等。
- 作为开源自由原教旨主义项目,git没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis、CodeBeamer MR。原本git的使用范围只适用于Linux/Unix平台,但在Windows平台下的使用也日渐成熟,这主要归功于Cygwin、msysgit环境,以及TortoiseGit这样易用的GUI工具。git的源代码中也已经加入了对Cygwin与MinGW编译环境的支持且逐渐完善,为Windows用户带来福音。
库目录:
- hooks:存储钩子的文件夾
- logs:存储日志的文件夾
- refs:存储指向各个分支的指针(SHA-1标识)文件
- objects:存放git对象
- config:存放各种設置文檔
- HEAD:指向当前所在分支的指针文件路径,一般指向refs下的某文件
Linux中安装git
$ sudo apt install git
下载教程源码
《ROS2入门21讲》课程源码的下载方式:
$ git clone https://gitee.com/guyuehome/ros2_21_tutorials.git