一、虚拟机安装
1.选择virtualbox软件
我们采用虚拟机安装 ubuntu,再安装 ROS 的话,大致流程如下:
- 安装虚拟机软件(比如:virtualbox 或 VMware);
- 使用虚拟机软件虚拟一台主机;
- 在虚拟主机上安装 ubuntu 20.04;
- 在 ubuntu 上安装 ROS;
- 测试 ROS 环境是否可以正常运行。
虚拟机软件选择上,对于我们学习而言 virtualbox 和 VMware 都可以满足需求,二者比较,前者免费,后者收费,所以本教程选用 virtualbox。
2.下载软件
Virtualbox官网:Downloads – Oracle VirtualBox
选择电脑版本直接下载即可!
Ubuntu下载(使用镜像下载):Index of /ubuntu-releases/22.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
3.安装Ubuntu
直接B站上搜索教程,手把手教你!
4.ROS2安装
整体而言,ROS2的安装步骤不算复杂,大致步骤如下。请注意:虽然安装比较简单,但是安装过程比较耗时,需要耐心等待。
1.准备1:设置语言环境
请先检查本地语言环境是否支持UTF-8编码,可调用如下指令检查并设置UTF-8编码:
locale # 检查是否支持 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 # 验证设置是否成果
注意:语言环境可以不同,但必须支持UTF-8编码。
2.准备2:启动Ubuntu universe存储库
sudo apt install software-properties-common
sudo add-apt-repository universe
3.设置软件源
先将ROS 2 apt存储库添加到系统,用apt授权我们的GPG密钥:
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
提示:如果抛出连接 raw.githubusercontent.com 失败的异常信息,请见后面的补充2。
然后将存储库添加到源列表:
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
4.安装ROS2
首先更新apt存储库缓存:
sudo apt update
然后升级已安装的软件(ROS2软件包建立在经常更新的Ubuntu系统上,在安装新软件包之前请确保您的系统是最新的):
sudo apt upgrade
安装桌面版ROS2(建议),包含:ROS、RViz、示例与教程,安装命令如下:
sudo apt install ros-humble-desktop
或者,也可以安装基础版ROS2,包含:通信库、消息包、命令行工具,但是没有 GUI 工具,安装命令如下:
sudo apt install ros-humble-ros-base
5.配置环境
终端下,执行ROS2程序时,需要调用如下命令配置环境:
source /opt/ros/humble/setup.bash
每次新开终端时,都得执行上述命令,或者也可以执行如下命令,将配置环境指令写入 ”~/.bashrc“ 文件,那么每次新启动终端时,不需要在手动配置环境:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
到目前为止,ROS2就已经安装且配置完毕了。
补充1:关于卸载(谨慎操作)
ROS2安装完毕之后,如果想卸载ROS2,可以执行如下命令:
sudo apt remove ~nros-humble-* && sudo apt autoremove
还可以再删除ROS2对应的存储库:
sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
sudo apt upgrade
补充2:关于 raw.githubusercontent.com 连接失败的处理
安装ROS2过程中,执行到步骤3也即设置软件源时,可能会抛出异常。
异常提示:curl: (7) Failed to connect to raw.githubusercontent.com port 443: 拒绝连接。
异常原因:DNS被污染。
解决思路:查询错误提示中域名的IP地址,然后修改 /etc/hosts 文件,添加域名与IP映射。
具体实现:
1.访问 https://www.ipaddress.com/ 并输入域名 raw.githubusercontent.com,查询 ip 地址。
2.修改/etc/hosts文件:
sudo gedit /etc/hosts
添加ip和域名映射到hosts文件,保存并退出。操作完毕后,终端再次运行安装指令即可正常执行。
5.测试ROS2
在ROS2中已经内置了一些案例,安装完毕之后,就可以运行这些案例,以测试ROS2的安装与配置是否正常,在此,我们选用ROS2内置的小乌龟案例,具体操作如下。
1.打开两个终端(可以使用快捷键Ctrl + Alt + T);
2.终端1中输入指令:
ros2 run turtlesim turtlesim_node //执行完毕,会启动一个绘有小乌龟的窗口;
3.终端2中输入指令:
ros2 run turtlesim turtle_teleop_key //执行完毕,可以在此终端中通过键盘控制乌龟运动。
运行结果示例如下:
现在就可以通过键盘控制小乌龟的运动方向了。注意:在使用键盘控制乌龟运动时,需要保证光标聚焦在终端2中,否则乌龟无响应。
6.安装ROS2包构建工具
colcon是一个命令行工具,用于改进编译,测试和使用多个软件包的工作流程。它实现过程自动化,处理需求并设置环境以便于使用软件包。ROS2中便是使用colcon作为包构建工具的,但是ROS2中没有默认安装colcon,需要自行安装,安装命令如下:
sudo apt install python3-colcon-common-extensions
安装完colcon之后,就可以在ROS2中编写应用程序了
二、ROS2上手体验
我们先实现工作空间的创建与编译,打开终端,输入如下指令:
mkdir -p ws00_helloworld/src #创建工作空间以及子级目录 src,工作空间名称可以自定义
cd ws00_helloworld #进入工作空间
colcon build #编译
上述指令执行完毕,将创建ws00_helloworld目录,且该目录下包含build、install、log、src共四个子级目录。
五步法:
1.创建功能包
终端下,进入ws00_helloworld/src目录,使用如下指令创建一个C++功能包:
//c++
ros2 pkg create pkg01_helloworld_cpp --build-type ament_cmake --dependencies rclcpp --node-name helloworld
//python
ros2 pkg create pkg02_helloworld_py --build-type ament_python --dependencies rclpy --node-name helloworld
执行完毕,在src目录下将生成一个名为pkg01_helloworld_cpp的目录,且目录中已经默认生成了一些子级文件与文件夹。
2.编辑源文件
编辑.cpp和.py文件,实现功能。
3.编辑配置文件
(c++)在步骤1创建功能包时所使用的指令已经默认生成且配置了配置文件,不过实际应用中经常需要自己编辑配置文件,所以在此对相关内容做简单介绍,所使用的配置文件主要有两个,分别是功能包下的package.xml与CMakeLists.txt。
(python)与C++类似的,在步骤1创建功能包时所使用的指令也已经默认生成且配置了配置文件,不过实际应用中经常需要自己编辑配置文件,所以在此对相关内容做简单介绍,所使用的配置文件主要有两个,分别是功能包下的package.xml与setup.py。
4.编译
终端下进入到工作空间,执行如下指令:
colcon build
5.执行
终端下进入到工作空间,执行如下指令:
. install/setup.bash
ros2 run pkg01_helloworld_cpp helloworld
三、Linux常用快捷键
Ctrl + H 显示隐藏文件
rm -rf + 路径/目录名 强制删除文件夹及其子文件
四、Linux常用软件安装
1.Chrome谷歌浏览器
(1)下载安装包,在终端中输入如下指令:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
(2)安装Chrome浏览器,执行命令(二选一、推荐使用第一个):
sudo apt install ./google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
2.代码编辑工具vscode
官网下载软件,安装操作如上。