ROS
[初探 ROS 2] 8個步驟,輕鬆完成 ROS 2 Dashing Diademata 安裝
<source : index.ros.org>
一、前言
因筆者使用 Ubuntu 18.04,並且已安裝 ROS melodic 的版本。目前 ROS 2 最新的版本為 Foxy,維護到 2023.5。Eloquent 維護到 2020.11。Dashing 維護到 2021.5。考量穩定性和維護期後,最後選擇安裝 Dashing 版本。
安裝 ROS 2 前,毋須移除 ROS 1,因 ROS 2 仍有許多套件仍需仰賴 ROS 1,並且ROS 1 和 ROS 2 可以透過 ROS bridge的套件進行溝通。
以下安裝步驟為參考官網和網路上ROS高手相關的除錯文章,整理而成。但因每個人的系統在應用時會有些許差異,若安裝上遇到問題,可參考文末所附的相關解決方式。
祝你成功完成安裝!
二、安裝步驟
步驟1. 設定 UTF-8 編碼
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 gnupg2 lsb-release curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
步驟3. 安裝ROS 2套件包
安裝資料庫後,更新你的 apt 資料庫快取
sudo apt update
安裝完整版 ,包含 ROS、RViz、demo、和教學。
sudo apt install ros-dashing-desktop
步驟4. 安裝 argcomplete 工具 (optional)
sudo apt install python3-argcomplete
步驟5. 設定環境變量
echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc
source /opt/ros/dashing/setup.bash
若出現以下的內容,是因為我們的系統已經有ROS 1了。
可以將以下內容加入 bashrc 的檔案中。
sudo gedit ~/.bashrc
echo "ros melodic(1) or ros2 dashing(2)?"
read edition
if [ "$edition" -eq "1" ];then
source /opt/ros/melodic/setup.bash
else
source /opt/ros/dashing/setup.bash
fi
如下圖
重新打開 terminal,就會看到以下畫面。輸入數字就會出現相對應版本。
步驟6. 安裝 RMW
預設安裝的 RMW 是 Fast RTPS,也可以用下列指令安裝 OpenSplice 或 RTI Connext
sudo apt update sudo apt install ros-dashing-rmw-opensplice-cpp # for OpenSplice sudo apt install ros-dashing-rmw-connext-cpp # for RTI Connext (requires license agreement)
在使用時,透過設定環境變量,即可更換
RMW_IMPLEMENTATION=rmw_opensplice_cpp
RMW_IMPLEMENTATION=rmw_connext_cpp
步驟7. 安裝相關開發工具
sudo apt update && sudo apt install -y \ build-essential \ cmake \ git \ python3-colcon-common-extensions \ python3-pip \ python-rosdep \ python3-vcstool \ wget # install some pip packages needed for testing python3 -m pip install -U \ argcomplete \ flake8 \ flake8-blind-except \ flake8-builtins \ flake8-class-newline \ flake8-comprehensions \ flake8-deprecated \ flake8-docstrings \ flake8-import-order \ flake8-quotes \ pytest-repeat \ pytest-rerunfailures \ pytest \ pytest-cov \ pytest-runner \ setuptools # install Fast-RTPS dependencies sudo apt install --no-install-recommends -y \ libasio-dev \ libtinyxml2-dev # install Cyclone DDS dependencies sudo apt install --no-install-recommends -y \ libcunit1-dev
步驟8. 安裝 ros1_bridge
由於ROS 2 的套件包還不是很全面,很多套件包仍須依賴 ROS 1,所以 ROS 1的仍需安裝 (若已安裝好,就更棒了)。安裝方法請見 輕鬆建置 ROS Melodic 開發環境的 4 個步驟。
而ROS 1 和 ROS 2 間的通訊,需透過 ros-bridge ,安裝指令如下 :
sudo apt update sudo apt install ros-dashing-ros1-bridge
到這邊,基本上就完成 ROS 2 的安裝。
最後,我們只要在為 ROS 2 創建工作空間,並進行編譯,就大功告成了。
特別要留意到,ROS 2 的編譯器為 colcon build,因此編譯的指令也改成 "colcon build" 。
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
編譯完的資料夾架構基本上和ROS 1 一樣,只是ROS 2 多了一個 log 資料夾,作為存放編譯過程中的日誌檔。編譯完成的可執行檔會放在 "install" 資料夾中。
三、測試
進到ROS2_ws的src中,下載官方demo
git clone https://github.com/ros2/demos.git
下載後,回到 ROS2_ws ,以colcon build指令進行編譯
cd ..
colcon build
在執行節點前,要記得更新環境變量
source install/setup.bash
啟動talker和listener節點
ros2 run demo_nodes_cpp listener
ros2 run demo_nodes_cpp talker
和 ROS 1不同之處在於不用啟動master,這也是 ROS 2 最大的改變,真正成為去中心的分散式系統。
---
參考資料 :
#ROS2 #DashingDiademata
0 留言