安装ROS2
之前的开发是在ROS上进行的,说实话ROS用得也是挺舒服的
ROS2在一些方面上对ROS进行了改进,预计会是未来的主流,而且Autoware.Auto是基于ROS2的
新装了ubuntu系统,就下个ROS2来学习学习
本来是用ubuntu18.04的,发现ROS2目前支持的发行版都是ubuntu20.04以上的
所以新开了个虚拟机,安装了ubuntu20.04,确实方便
安装版本确定
ROS2和ROS一样,版本需要对应ubuntu版本,不过一个ubuntu版本有对应多个ROS2的版本
由官方文档可以知道,当前支持的ROS2发行版有三个
分别是Humble Hawksbill、Galactic Geochelone和Foxy Fitzroy,最终决定安装Foxy
文档链接:https://docs.ros.org/en/rolling/Releases.html
安装方式确定
从官方文档可以知道,有二进制包以及源构建两种安装方式,两种方式都可以安装齐全可用的ROS2
二进制包适合想要立即开始使用ROS2的人,源构建适用于希望更改或明确省略ROS2基础部分的开发人员
Linux的二进制包安装有两种方式,有root权限的建议安装其中的Debian包,那就按建议来
故最终确定安装Foxy的二进制包,并选择Debian包安装方式
文档链接:https://docs.ros.org/en/foxy/Installation.html
安装
安装就按照官方文档来,安装过程比较顺利,基本就是把官方文档翻译了一遍过来
文档链接:https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html
设置语言环境
locale # 查看系统语言
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 # 验证设置
设置源
通过下述命令检查确保启用了 Ubuntu Universe 存储库
apt-cache policy | grep universe
输出其中应该有一行类似
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64
我的输出都是阿里云的源,所以需要启用 Universe 存储库
sudo apt install software-properties-common
sudo add-apt-repository universe
启用后再检查一下
apt-cache policy | grep universe
确认启用后,将 ROS 2 apt 存储库添加到系统
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
会报错:curl: (6) Could not resolve host: raw.githubusercontent.com
参考博客解决:https://blog.csdn.net/qq_40584960/article/details/117963644
将存储库添加到源列表
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
安装ROS2包
更新源和包
sudo apt update
sudo apt upgrade
下载桌面完整版,这里要下载较久
sudo apt install ros-foxy-desktop
安装一些基础包,我这里输入完没有需要安装的,应该是上面已经装好了
sudo apt install ros-foxy-ros-base
写入环境变量
官方说通过下述命令设置环境变量
source /opt/ros/foxy/setup.bash
为了后续开发方便,直接写入.bashrc
每次用echo写入心都要咯噔一下,很怕少写一个>直接覆盖了
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc
其他
安装补全工具
sudo apt install python3-argcomplete
测试
开启一个终端,运行talker测试程序,会不断发出Hello World
ros2 run demo_nodes_cpp talker
开启另一个终端,运行listener测试程序,会不断接收talker发送的内容
ros2 run demo_nodes_py listener
如果两个终端输出都正常那么就表示安装成功了