---
tags : DIT 11th 教學 -- ROS
---
{%hackmd BJrTq20hE %}
# DAY 1 - ROS環境介紹與架設
## <font color="orange"> 01. ROS介紹</font>
ROS的全名是Robot Operating System,是一個為製作機器人所開發的軟體系統框架,雖然它的名子直翻是"機器人作業系統",但它並不是像Windows那樣的作業系統,ROS其實是安裝在Linux環境上的,作用像是作為機器人內各部分間溝通與操作的框架,讓你可以在其他機器人開發者的基礎上調用現成程式的工具,這樣我們就不用自己造輪子從頭做起。
至於ROS到底提供了那些功能呢?
簡單的說,ROS的功能是作為程式碼與系統之間的溝通媒介,功能主要包含以下幾個:
1. 硬體抽象
2. 底層設備控制
3. 常用涵式的調用
4. 程序(進程)間的消息傳遞
5. 套件管理
而在ROS官網,它將ROS的功能分成以下四點:
1. 框架
主要功能是提供一個訂定好的規範,方便我們管理所有的程式。
2. 套件
提供像是Rviz等可視化分析的開源工具。
4. 功能
提供可直接調用的基本函式庫。
6. 社群
如GitHub等網站可以找到許多其他人寫好的套件,通常都可以直接使用。
## <font color="orange"> 02. 虛擬機</font>
上面有說到ROS是安裝在Linux作業系統,而非現在大多數人使用的Windows上,所以我們需要提供一個安裝Linux系統的平台,這裡我們使用的方法是安裝**虛擬機(Virtual Machine)**。
:::info
環境的選擇上還有其他方式,例如安裝**雙作業系統**或是**WSL(Windows Subsystem for Linux)**,但因為在虛擬機內的操作不會影響到主系統,對於初學者來說相對安全,所以這裡先教大家如何使用虛擬機。
:::
### <font color='yellow'>1. 下載VMware虛擬機平台</font>
- [VMware官網](https://www.vmware.com/tw/products/workstation-player/workstation-player-evaluation.html)
---

### <font color='yellow'> 2. 下載Ubuntu 20.04 Desktop映像檔</font>
- [Ubuntu官網](https://releases.ubuntu.com/20.04.5/?_ga=2.57837423.456369234.1672653855-1006392852.1661434751)
Ubuntu 是Linux的發行版,分為Desktop、Server、Core三種版本。
:::warning
這裡要注意安裝的版本是Ubuntu 20.04.5 Desktop (64-bit),而不是最新的Ubuntu 22.10,因為ROS的很多資源包都不支援22.04版本,所以這邊要特別注意喔!
:::

### <font color='yellow'>3. 安裝 & 設定 VMware</font>
<font color='pink'>Step 1. 安裝完後打開VMware,選擇創建新的虛擬機 </font>

---
<font color='pink'>Step 2. 選第三個,稍後再設定.iso檔 </font>

---
<font color='pink'>Step 3. Linux, Ubuntu 64-bit</font>

---
<font color='pink'>Step 4. 幫虛擬機取名、選擇存取位置(通常維持預設就好)</font>

---
<font color='pink'>Step 5. 分配磁碟空間給虛擬機(至少要20GB)</font>

---
<font color='pink'>Step 6. 點選finish</font>

---
<font color='pink'>Step 7. 編輯虛擬機設定</font>

---
<font color='pink'>Step 8. 配置記憶體(至少2GB)</font>

---
<font color='pink'>Step 9. 點擊CD/DVD,選擇剛剛下載的Ubuntu映像檔,然後按OK</font>

---
<font color='pink'>Step 10. 執行虛擬機</font>
### <font color='yellow'>4. 安裝Ubuntu</font>
<font color='pink'>Step 1. 選擇語言,然後按"Install Ubuntu" ( 建議選英文 )</font>

---
<font color='pink'>Step 2.</font>

---
<font color='pink'>Step 3. 方框的地方可選可不選</font>

---
<font color='pink'>Step 4. 虛擬機才可以選這個的選項,雙系統需要另外配置磁碟區</font>

---
<font color='pink'>Step 5.選擇時區</font>

---
<font color='pink'>Step 6. 設定帳號密碼(密碼會常用到,可以設簡單點)</font>

---
<font color='pink'>Step 7. 進入Ubuntu後,調整螢幕大小到適合的尺寸(解析度)</font>

### <font color='yellow'>5. 安裝ROS</font>
:::info
使用ctrl + alt + t 開啟終端機,在終端機中使用複製快捷鍵是ctrl + shift + c,貼上是ctrl + shift + v
:::
<font color='pink'>Step 1. Setup your sources.list</font>
```=
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
```
<font color='pink'>Step 2. Setup your keys</font>
```=
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
```
<font color='pink'>Step 3. Installation</font>
```=
sudo apt update
sudo apt install ros-noetic-desktop-full
```
<font color='pink'>Step 4. Environment setup</font>
```=
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
```
<font color='pink'>Step 5. Dependencies for building packages</font>
```=
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
```
<font color='pink'>Step 6. 安裝完後輸入roscore檢查是否安裝正確,按 ctrl + c 可停止運行</font>

### <font color='yellow'>6. 介紹&安裝 IDE</font>
<font color='pink'>1. VScode(最好用)</font>
通常會選擇用VScode來編輯程式,
<font color='pink'>2. Vim & Nano</font>
* Vim
<font color='lightblue'>優點 :</font>
(1). 功能多、模式多、可以純靠鍵盤操作
(2). 開發速度快 ( 開啟速度、編輯速度比其他 IDE 快)
(3). 指令精準
<font color='lightblue'>缺點 : </font>
(1). 對初學者不友善、學習曲線陡峭
* Nano
<font color='lightblue'>優點 : </font>
(1). 簡單好上手
<font color='lightblue'>缺點 :</font>
(1). 功能較簡單
<font color='pink'>3. 記事本</font>
就是記事本( .txt ),單純打程式用的,功能簡單。
==下面介紹如何在 Ubuntu 中安裝 VScode :==
<font color='pink'>Step 1. 打開應用程式,找到 "Ubuntu Software"</font>

<font color='pink'>Step 2. 搜尋"vscode"並安裝</font>

:::info
之後要開啟VScode的話,只要在終端機輸入 `code` 就可以了!

:::
### <font color='yellow'>7.結語</font>
恭喜大家,到這邊就完成ROS環境的設置了!