ROS (The Robot Operating System, 機器人操作系統) 是一套用來構建機器人應用程序的軟件庫和工具。 從驅動到最先進的算法,再加上強大的開發工具,ROS 擁有機器人項目所需的一切。而且它全部開源。
ROS2充分利用了ROS1的優點並改進了它的不足。
一、安裝
1、系統要求
ROS2 支持在Linux、Windows、MacOS等多個平台上安裝運行,ROS2 galactic在linux上主流平台要求是Ubuntu 20.04 64位。我使用的就是ubuntu 20.04,所以以下記錄這個系統的安裝方式。
Ubuntu 20.04 ROS2 galactic的安裝可以下載源碼編譯安裝,可以下載預編譯包安裝,也可以使用包管理工具apt安裝,由於apt的方式最簡單,也比較類似ROS1的安裝方式,所以使用apt安裝。
安裝過程中可能會遇到由於國內網絡不可描述的原因引起的失敗情況,可以在網上搜索一下其他人的解決方式。
2、設置語言環境
確保有一個支持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
3、設置軟件源
(1)先確保啓用了Universe存儲庫
使用以下命令
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
(2)添加ROS2軟件源
先授權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
4、安裝ROS2軟件包
先更新一下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了。
5、安裝並初始化rosdep
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update
二、運行示例程序
如果安裝了ros-galactic-desktop,那麼可以玩一下示例程序。
每次新開一個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
接着就可以通過電腦鍵盤上的箭頭按鍵控制海龜移動了。
參考:
- ROS 2 Documentation:https://docs.ros.org/en/galactic/index.html