ROS (The Robot Operating System, 机器人操作系统) 是一套用来构建机器人应用程序的软件库和工具。 从驱动到最先进的算法,再加上强大的开发工具,ROS 拥有机器人项目所需的一切。而且它全部开源。
ROS2充分利用了ROS1的优点并改进了它的不足。
ROS2 支持在Linux、Windows、MacOS等多个平台上安装运行,ROS2 galactic在linux上主流平台要求是Ubuntu 20.04 64位。我使用的就是ubuntu 20.04,所以以下记录这个系统的安装方式。
Ubuntu 20.04 ROS2 galactic的安装可以下载源码编译安装,可以下载预编译包安装,也可以使用包管理工具apt安装,由于apt的方式最简单,也比较类似ROS1的安装方式,所以使用apt安装。
安装过程中可能会遇到由于国内网络不可描述的原因引起的失败情况,可以在网上搜索一下其他人的解决方式。
确保有一个支持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
使用以下命令
apt-cache policy | grep universe
若可以看到类似以下的打印信息,说明已经启用,可以继续做第二步(2)添加ROS2软件源的操作。
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
先授权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
然后就可以将ROS2 apt存储库添加到源列表
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
先更新一下apt存储库
sudo apt update
安装包有两种:desktop和ROS-base。ROS-base包含通信库、消息包、命令行工具等ROS2所有基础功能,但没有GUI工具。而desktop除了包含ROS-base外,还包含rqt、RVIZ等GUI工具,还有demo程序和教程。所以为了学习和调试方便,建议安装Desktop。
安装Desktop的命令为:
sudo apt install ros-galactic-desktop
安装ROS-base的命令为:
sudo apt install ros-galactic-ros-base
等待安装完成。
之后就可以正常运行ROS2了。
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update
每次新开一个Terminal,都需要设置一下环境,ROS2才能正常使用。使用以下命令:
source /opt/ros/galactic/setup.bash
当然,为了方便可以直接将命令写到.bashrc中,这样每次打开Terminal都会自动设置ROS2环境。
但是我不建议添加,因为如果同时安装了ROS1和ROS2或同时安装了多个ROS2版本,这样就会有冲突。也会影响到其它软件的使用。
**运行个talker和listener Demo试试,**可以运行C++版本,也可以运行python版本。
打开一个Terminal,运行talker
source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_cpp talker
再新开一个Terminal,运行listener
source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_cpp listener
可以看到以下效果
再来试一下海龟模拟器turtlesim
turtlesim是用于学习ROS2的轻量级模拟器,这里先试着运行它。
在一个terminal运行以下命令:
ros2 run turtlesim turtlesim_node
将会出现模拟器窗口,并在窗口中间生成一只小海龟
再打开一个terminal运行以下命令:
ros2 run turtlesim turtle_teleop_key
接着就可以通过电脑键盘上的箭头按键控制海龟移动了。