ROS2 (0) - 安裝ROS2 Dashing === [ROS2安裝教學](https://index.ros.org/doc/ros2/Installation/#installationguide) 本系列文章,採用以下系統配置: * Ubuntu 18.04 x64 * ROS 2 Dashing Diademata * C++ (rclcpp) * Build: colcon 本想說不寫的,但因為有一台乾淨的電腦需要重新建置環境。所以,就...紀錄一下好了 --- 第一步,為了讓你的系統支援UTF-8: ```Clike= 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 ``` 第二步,將ROS2的官方安裝來源和驗證金鑰放入系統中: * 安裝依賴: ```Clike= sudo apt update && sudo apt install curl gnupg2 lsb-release ``` * 將ROS2的官方安裝來源和驗證金鑰放入系統: ```Clike= curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' ``` 第三步,可以開始安裝ROS2了: * 更新套件庫清單 ```Clike= sudo apt update ``` * 完整版(包含GUI) ```Clike= sudo apt install ros-dashing-desktop ``` * 基本版 ```Clike= sudo apt install ros-dashing-ros-base ``` 這裡我會建議安裝完整版,因為透過可視化比較容易追蹤機器人行動和狀態。 換句話說,如果想要美美的 RVIZ 來觀察機器人,就裝完整版吧~~  第四步,將環境變數加入設定檔就安裝完成囉: ```Clike= echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc ``` --- 好了,寫到這裡ROS2就安裝完成了。但原本有安裝ROS1的朋友,需不需要將ROS1移除後,在安裝ROS2? 答案是不用。 --- 兩者所使用的指令名稱,完全不一樣。像是呼叫launch檔: ROS1: ```Clike= roslaunch ``` 到了 ROS2: ```Clike= ros2 launch ``` 但要注意的是,ROS2環境變數要比ROS1晚載入才行。像是: ```Clike= source /opt/ros/melodic/setup.bash source /opt/ros/dashing/setup.bash ``` --- 另一個不一樣的特點是ROS2在設定環境變數的時候,會自動載入core,也因此ROS1的 ```Clike roscore ``` 在ROS2是沒有對映的命令喔(都先幫你載入了)!! --- 看到這裡,你以為結束了嗎。ROS2還有一個跟ROS1很不一樣的地方是,ROS2的安裝並不包含安裝建置工具(很詭異對吧),原因是ROS2開放讓自己選擇去建置專案,至於有哪幾種工具,我就沒有研究了,我比較推薦colcon,方便且快速。 [colcon 官方安裝文件](https://index.ros.org/doc/ros2/Tutorials/Colcon-Tutorial/) * 安裝方法: ```Clike= sudo apt install python3-colcon-common-extensions ``` * 需要建置專案的時候,只需要到專案底下,輸入以下命令即可: ```Clike= colcon build ``` 詳細應用 請參考 [ROS2 (一) - 建立第一個專案](https://hackmd.io/AiYYiXN9QMGXvz68JouiwA)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.